{"Summary":"890 changed method listings; 890 examples across 72 assemblies.\n\nFound 165 files with textual diffs.\n\nSummary of Code Size diffs:\n(Lower is better)\n\nTotal bytes of base: 409592179\nTotal bytes of diff: 409520623\nTotal bytes of delta: -71556 (-0.02 % of base)\nTotal relative delta: -103.67\n    diff is an improvement.\n    relative diff is an improvement.\n\n\nTotal byte diff includes 45 bytes from reconciling methods\n\tBase had    0 unique methods,        0 unique bytes\n\tDiff had    1 unique methods,       45 unique bytes\n\nTop file regressions (bytes):\n         612 : System.Data.Common.dasm (0.04 % of base)\n          45 : SixLabors.ImageSharp.dasm (0.00 % of base)\n\nTop file improvements (bytes):\n      -23104 : MongoDB.Driver.dasm (-0.16 % of base)\n      -14322 : MathNet.Numerics.dasm (-0.28 % of base)\n       -8725 : EntityFramework.dasm (-0.12 % of base)\n       -5959 : Stripe.net.dasm (-0.27 % of base)\n       -2656 : LaunchDarkly.ServerSdk.dasm (-0.51 % of base)\n       -2472 : Microsoft.CodeAnalysis.Features.dasm (-0.06 % of base)\n       -2134 : Pomelo.EntityFrameworkCore.MySql.dasm (-0.31 % of base)\n       -1603 : System.CommandLine.dasm (-0.86 % of base)\n       -1041 : Microsoft.AspNetCore.OData.dasm (-0.09 % of base)\n        -936 : Nest.dasm (-0.02 % of base)\n        -876 : Microsoft.EntityFrameworkCore.dasm (-0.02 % of base)\n        -739 : CsvHelper.dasm (-0.12 % of base)\n        -728 : OpenAI.dasm (-0.01 % of base)\n        -678 : Microsoft.OpenApi.dasm (-0.08 % of base)\n        -634 : OpenTelemetry.Api.dasm (-0.42 % of base)\n        -493 : Microsoft.CodeAnalysis.AnalyzerUtilities.dasm (-0.01 % of base)\n        -353 : Microsoft.Identity.Client.dasm (-0.03 % of base)\n        -350 : Castle.Windsor.dasm (-0.07 % of base)\n        -343 : ClosedXML.dasm (-0.02 % of base)\n        -260 : MongoDB.Bson.dasm (-0.02 % of base)\n        -247 : Selenium.WebDriver.dasm (-0.01 % of base)\n        -189 : Consul.dasm (-0.04 % of base)\n        -181 : NetTopologySuite.IO.SqlServerBytes.dasm (-1.42 % of base)\n        -169 : App.Metrics.Core.dasm (-0.09 % of base)\n        -160 : SharpCompress.dasm (-0.01 % of base)\n        -157 : DnsClient.dasm (-0.09 % of base)\n        -157 : Microsoft.OData.Edm.dasm (-0.01 % of base)\n        -153 : FakeItEasy.dasm (-0.02 % of base)\n        -124 : Microsoft.CodeAnalysis.CSharp.Features.dasm (-0.00 % of base)\n        -120 : Npgsql.EntityFrameworkCore.PostgreSQL.dasm (-0.01 % of base)\n        -114 : Moq.dasm (-0.02 % of base)\n        -112 : AWSSDK.Core.dasm (-0.01 % of base)\n        -110 : NSwag.Core.dasm (-0.11 % of base)\n        -108 : System.Linq.Dynamic.Core.dasm (-0.03 % of base)\n        -101 : Azure.Storage.Files.Shares.dasm (-0.01 % of base)\n        -101 : NJsonSchema.dasm (-0.02 % of base)\n        -101 : Xunit.SkippableFact.dasm (-0.80 % of base)\n        -101 : Azure.Storage.Blobs.dasm (-0.00 % of base)\n         -88 : NuGet.Configuration.dasm (-0.04 % of base)\n         -83 : CommandLine.dasm (-0.01 % of base)\n         -70 : protobuf-net.dasm (-0.01 % of base)\n         -60 : AngleSharp.Css.dasm (-0.01 % of base)\n         -59 : Elasticsearch.Net.dasm (-0.00 % of base)\n         -56 : Microsoft.EntityFrameworkCore.Proxies.dasm (-0.02 % of base)\n         -56 : Confluent.Kafka.dasm (-0.01 % of base)\n         -55 : Microsoft.DotNet.Scaffolding.Shared.dasm (-0.05 % of base)\n         -55 : System.ComponentModel.Composition.dasm (-0.01 % of base)\n         -55 : HotChocolate.Types.dasm (-0.00 % of base)\n         -55 : Autofac.dasm (-0.01 % of base)\n         -55 : Azure.ResourceManager.dasm (-0.00 % of base)\n         -53 : System.Reflection.MetadataLoadContext.dasm (-0.02 % of base)\n         -53 : System.Private.CoreLib.dasm (-0.00 % of base)\n         -52 : Handlebars.dasm (-0.01 % of base)\n         -52 : Elastic.Apm.dasm (-0.00 % of base)\n         -52 : System.Linq.Queryable.dasm (-0.01 % of base)\n         -52 : Perfolizer.dasm (-0.02 % of base)\n         -49 : Octokit.dasm (-0.00 % of base)\n         -49 : NuGet.Packaging.dasm (-0.01 % of base)\n         -49 : PdfSharp.dasm (-0.01 % of base)\n         -48 : System.Linq.Expressions.dasm (-0.01 % of base)\n         -46 : Rebus.dasm (-0.01 % of base)\n\n63 total files with Code Size differences (61 improved, 2 regressed), 697 unchanged.\n\nTop method regressions (bytes):\n         102 (69.39 % of base) : System.Data.Common.dasm - System.Data.EnumerableRowCollectionExtensions:Select[byte,System.Nullable\u00601[int]](System.Data.EnumerableRowCollection\u00601[byte],System.Func\u00602[byte,System.Nullable\u00601[int]]):System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]] (FullOpts)\n         102 (69.39 % of base) : System.Data.Common.dasm - System.Data.EnumerableRowCollectionExtensions:Select[double,System.Nullable\u00601[int]](System.Data.EnumerableRowCollection\u00601[double],System.Func\u00602[double,System.Nullable\u00601[int]]):System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]] (FullOpts)\n         102 (69.39 % of base) : System.Data.Common.dasm - System.Data.EnumerableRowCollectionExtensions:Select[int,System.Nullable\u00601[int]](System.Data.EnumerableRowCollection\u00601[int],System.Func\u00602[int,System.Nullable\u00601[int]]):System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]] (FullOpts)\n         102 (69.39 % of base) : System.Data.Common.dasm - System.Data.EnumerableRowCollectionExtensions:Select[long,System.Nullable\u00601[int]](System.Data.EnumerableRowCollection\u00601[long],System.Func\u00602[long,System.Nullable\u00601[int]]):System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]] (FullOpts)\n         102 (69.39 % of base) : System.Data.Common.dasm - System.Data.EnumerableRowCollectionExtensions:Select[short,System.Nullable\u00601[int]](System.Data.EnumerableRowCollection\u00601[short],System.Func\u00602[short,System.Nullable\u00601[int]]):System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]] (FullOpts)\n         102 (69.39 % of base) : System.Data.Common.dasm - System.Data.EnumerableRowCollectionExtensions:Select[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]](System.Data.EnumerableRowCollection\u00601[System.Numerics.Vector\u00601[float]],System.Func\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]]):System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]] (FullOpts)\n          45 (Infinity of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.Memory.ByteMemoryOwner\u00601[int]:Dispose():this (FullOpts) (0 base, 1 diff methods)\n\nTop method improvements (bytes):\n       -1842 (-37.85 % of base) : LaunchDarkly.ServerSdk.dasm - LaunchDarkly.Sdk.Server.Integrations.TestData:MakeInitData():LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BFullDataSet\u00601[LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]:this (FullOpts)\n       -1120 (-45.05 % of base) : Microsoft.CodeAnalysis.Features.dasm - Microsoft.CodeAnalysis.EditAndContinue.PdbMatchingSourceTextProvider\u002BTestAccessor:GetDocumentsWithChangedLoaderByPath():System.Collections.Immutable.ImmutableDictionary\u00602[System.String,System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]:this (FullOpts)\n       -1062 (-50.21 % of base) : Microsoft.CodeAnalysis.Features.dasm - Microsoft.CodeAnalysis.PdbSourceDocument.PdbSourceDocumentMetadataAsSourceFileProvider\u002BTestAccessor:get_Documents():System.Collections.Immutable.ImmutableDictionary\u00602[System.String,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]:this (FullOpts)\n        -868 (-13.50 % of base) : EntityFramework.dasm - System.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher:MatchPartitionErrors():this (FullOpts)\n        -725 (-39.08 % of base) : LaunchDarkly.ServerSdk.dasm - LaunchDarkly.Sdk.Server.Integrations.EventProcessorBuilder:MakeEventsConfiguration(LaunchDarkly.Sdk.Server.Subsystems.LdClientContext,bool):LaunchDarkly.Sdk.Internal.Events.EventsConfiguration:this (FullOpts)\n        -634 (-32.09 % of base) : OpenTelemetry.Api.dasm - OpenTelemetry.Context.Propagation.CompositeTextMapPropagator:.ctor(System.Collections.Generic.IEnumerable\u00601[OpenTelemetry.Context.Propagation.TextMapPropagator]):this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:SameAs[double](MathNet.Numerics.LinearAlgebra.Matrix\u00601[double],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:SameAs[int](MathNet.Numerics.LinearAlgebra.Matrix\u00601[int],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:SameAs[long](MathNet.Numerics.LinearAlgebra.Matrix\u00601[long],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:SameAs[short](MathNet.Numerics.LinearAlgebra.Matrix\u00601[short],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:SameAs[System.Numerics.Vector\u00601[float]](MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:SameAs[byte](MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:SameAs[int](MathNet.Numerics.LinearAlgebra.Matrix\u00601[int],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:SameAs[long](MathNet.Numerics.LinearAlgebra.Matrix\u00601[long],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:SameAs[short](MathNet.Numerics.LinearAlgebra.Matrix\u00601[short],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:SameAs[System.Numerics.Vector\u00601[float]](MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:SameAs[byte](MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:SameAs[double](MathNet.Numerics.LinearAlgebra.Matrix\u00601[double],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:SameAs[long](MathNet.Numerics.LinearAlgebra.Matrix\u00601[long],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:SameAs[short](MathNet.Numerics.LinearAlgebra.Matrix\u00601[short],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:SameAs[System.Numerics.Vector\u00601[float]](MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:SameAs[byte](MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:SameAs[double](MathNet.Numerics.LinearAlgebra.Matrix\u00601[double],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:SameAs[int](MathNet.Numerics.LinearAlgebra.Matrix\u00601[int],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:SameAs[short](MathNet.Numerics.LinearAlgebra.Matrix\u00601[short],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:SameAs[System.Numerics.Vector\u00601[float]](MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:SameAs[byte](MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:SameAs[double](MathNet.Numerics.LinearAlgebra.Matrix\u00601[double],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:SameAs[int](MathNet.Numerics.LinearAlgebra.Matrix\u00601[int],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:SameAs[long](MathNet.Numerics.LinearAlgebra.Matrix\u00601[long],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:SameAs[System.Numerics.Vector\u00601[float]](MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:SameAs[byte](MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:SameAs[double](MathNet.Numerics.LinearAlgebra.Matrix\u00601[double],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:SameAs[int](MathNet.Numerics.LinearAlgebra.Matrix\u00601[int],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:SameAs[long](MathNet.Numerics.LinearAlgebra.Matrix\u00601[long],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:SameAs[short](MathNet.Numerics.LinearAlgebra.Matrix\u00601[short],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n        -399 (-10.27 % of base) : EntityFramework.dasm - System.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher:MatchConditionErrors():this (FullOpts)\n        -364 (-43.49 % of base) : Microsoft.CodeAnalysis.AnalyzerUtilities.dasm - Microsoft.CodeAnalysis.FlowAnalysis.DataFlow.DisposeAnalysis.DisposeAnalysis\u002BDisposeDataFlowOperationVisitor:get_TrackedInstanceFieldPointsToMap():System.Collections.Immutable.ImmutableDictionary\u00602[Microsoft.CodeAnalysis.IFieldSymbol,Microsoft.CodeAnalysis.FlowAnalysis.DataFlow.PointsToAnalysis.PointsToAbstractValue]:this (FullOpts)\n        -364 (-52.15 % of base) : MongoDB.Driver.dasm - MongoDB.Driver.BinaryVectorDriverExtensions:ToQueryVector[double](MongoDB.Bson.BinaryVector\u00601[double]):MongoDB.Driver.QueryVector (FullOpts)\n        -364 (-52.15 % of base) : MongoDB.Driver.dasm - MongoDB.Driver.BinaryVectorDriverExtensions:ToQueryVector[int](MongoDB.Bson.BinaryVector\u00601[int]):MongoDB.Driver.QueryVector (FullOpts)\n        -364 (-52.15 % of base) : MongoDB.Driver.dasm - MongoDB.Driver.BinaryVectorDriverExtensions:ToQueryVector[long](MongoDB.Bson.BinaryVector\u00601[long]):MongoDB.Driver.QueryVector (FullOpts)\n        -364 (-52.15 % of base) : MongoDB.Driver.dasm - MongoDB.Driver.BinaryVectorDriverExtensions:ToQueryVector[short](MongoDB.Bson.BinaryVector\u00601[short]):MongoDB.Driver.QueryVector (FullOpts)\n        -364 (-52.15 % of base) : MongoDB.Driver.dasm - MongoDB.Driver.BinaryVectorDriverExtensions:ToQueryVector[System.Numerics.Vector\u00601[float]](MongoDB.Bson.BinaryVector\u00601[System.Numerics.Vector\u00601[float]]):MongoDB.Driver.QueryVector (FullOpts)\n        -255 (-14.47 % of base) : EntityFramework.dasm - System.Data.Entity.Core.Metadata.Edm.EdmModelSemanticValidationRules\u002B\u003C\u003Ec:\u003C.cctor\u003Eb__52_4(System.Data.Entity.Core.Metadata.Edm.EdmModelValidationContext,System.Data.Entity.Core.Metadata.Edm.EntityContainer):this (FullOpts)\n        -242 (-8.76 % of base) : Microsoft.Identity.Client.dasm - Microsoft.Identity.Client.TokenCache:LogCacheContents(Microsoft.Identity.Client.Internal.Requests.AuthenticationRequestParameters):this (FullOpts)\n        -231 (-33.09 % of base) : MongoDB.Driver.dasm - MongoDB.Driver.BinaryVectorDriverExtensions:ToQueryVector[byte](MongoDB.Bson.BinaryVector\u00601[byte]):MongoDB.Driver.QueryVector (FullOpts)\n        -229 (-97.86 % of base) : System.CommandLine.dasm - System.CommandLine.Argument\u00601[byte]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,byte]:this (FullOpts)\n        -229 (-97.86 % of base) : System.CommandLine.dasm - System.CommandLine.Argument\u00601[double]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,double]:this (FullOpts)\n        -229 (-97.86 % of base) : System.CommandLine.dasm - System.CommandLine.Argument\u00601[int]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,int]:this (FullOpts)\n        -229 (-97.86 % of base) : System.CommandLine.dasm - System.CommandLine.Argument\u00601[long]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,long]:this (FullOpts)\n        -229 (-97.86 % of base) : System.CommandLine.dasm - System.CommandLine.Argument\u00601[short]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,short]:this (FullOpts)\n        -229 (-97.86 % of base) : System.CommandLine.dasm - System.CommandLine.Argument\u00601[System.Nullable\u00601[int]]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,System.Nullable\u00601[int]]:this (FullOpts)\n        -229 (-97.86 % of base) : System.CommandLine.dasm - System.CommandLine.Argument\u00601[System.Numerics.Vector\u00601[float]]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,System.Numerics.Vector\u00601[float]]:this (FullOpts)\n        -223 (-22.30 % of base) : EntityFramework.dasm - System.Data.Entity.ModelConfiguration.Conventions.StoreGeneratedIdentityKeyConvention:IsNonTableSplittingForeignKey(System.Data.Entity.Core.Metadata.Edm.AssociationType,System.Data.Entity.Core.Metadata.Edm.EdmProperty):bool (FullOpts)\n        -211 (-11.12 % of base) : EntityFramework.dasm - System.Data.Entity.Core.Metadata.Edm.StoreItemCollection:ConvertFunctionSignatureToCType(System.Data.Entity.Core.Metadata.Edm.EdmFunction):System.Data.Entity.Core.Metadata.Edm.EdmFunction (FullOpts)\n        -208 (-96.74 % of base) : Pomelo.EntityFrameworkCore.MySql.dasm - Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitJsonScalar(Microsoft.EntityFrameworkCore.Query.SqlExpressions.JsonScalarExpression):System.Linq.Expressions.Expression:this (FullOpts)\n        -205 (-7.11 % of base) : CsvHelper.dasm - CsvHelper.Configuration.ClassMap:AutoMapConstructorParameters(CsvHelper.Configuration.ClassMap,CsvHelper.CsvContext,System.Collections.Generic.LinkedList\u00601[System.Type],int):this (FullOpts)\n        -199 (-23.27 % of base) : Pomelo.EntityFrameworkCore.MySql.dasm - Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitIn(Microsoft.EntityFrameworkCore.Query.SqlExpressions.InExpression):System.Linq.Expressions.Expression:this (FullOpts)\n        -198 (-64.29 % of base) : Pomelo.EntityFrameworkCore.MySql.dasm - Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitSqlConstant(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlConstantExpression):System.Linq.Expressions.Expression:this (FullOpts)\n        -196 (-48.64 % of base) : Pomelo.EntityFrameworkCore.MySql.dasm - Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitExists(Microsoft.EntityFrameworkCore.Query.SqlExpressions.ExistsExpression):System.Linq.Expressions.Expression:this (FullOpts)\n        -196 (-49.00 % of base) : Pomelo.EntityFrameworkCore.MySql.dasm - Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitScalarSubquery(Microsoft.EntityFrameworkCore.Query.SqlExpressions.ScalarSubqueryExpression):System.Linq.Expressions.Expression:this (FullOpts)\n        -195 (-13.31 % of base) : Selenium.WebDriver.dasm - OpenQA.Selenium.DriverOptions:GenerateDesiredCapabilities(bool):OpenQA.Selenium.IWritableCapabilities:this (FullOpts)\n        -195 (-37.43 % of base) : Pomelo.EntityFrameworkCore.MySql.dasm - Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitLike(Microsoft.EntityFrameworkCore.Query.SqlExpressions.LikeExpression):System.Linq.Expressions.Expression:this (FullOpts)\n        -194 (-20.21 % of base) : Pomelo.EntityFrameworkCore.MySql.dasm - Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitCase(Microsoft.EntityFrameworkCore.Query.SqlExpressions.CaseExpression):System.Linq.Expressions.Expression:this (FullOpts)\n        -194 (-18.64 % of base) : Pomelo.EntityFrameworkCore.MySql.dasm - Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitRowNumber(Microsoft.EntityFrameworkCore.Query.SqlExpressions.RowNumberExpression):System.Linq.Expressions.Expression:this (FullOpts)\n        -192 (-49.36 % of base) : Pomelo.EntityFrameworkCore.MySql.dasm - Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitCollate(Microsoft.EntityFrameworkCore.Query.SqlExpressions.CollateExpression):System.Linq.Expressions.Expression:this (FullOpts)\n        -192 (-49.48 % of base) : Pomelo.EntityFrameworkCore.MySql.dasm - Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitDistinct(Microsoft.EntityFrameworkCore.Query.SqlExpressions.DistinctExpression):System.Linq.Expressions.Expression:this (FullOpts)\n        -182 (-2.74 % of base) : ClosedXML.dasm - ClosedXML.Excel.XLWorkbook:LoadConditionalFormatting(DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatting,ClosedXML.Excel.XLWorksheet,System.Collections.Generic.Dictionary\u00602[int,DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat],ClosedXML.Excel.IO.LoadContext):this (FullOpts)\n        -165 (-4.02 % of base) : MongoDB.Driver.dasm - MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToPipelineTranslators.LookupMethodToPipelineTranslator:Translate(MongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext,System.Linq.Expressions.MethodCallExpression):MongoDB.Driver.Linq.Linq3Implementation.Ast.TranslatedPipeline (FullOpts)\n        -160 (-14.80 % of base) : Nest.dasm - Nest.ExpressionExtensions:ComparisonValueFromExpression(System.Linq.Expressions.Expression,byref,byref):System.Object (FullOpts)\n        -160 (-15.38 % of base) : EntityFramework.dasm - System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation:CheckFunction(System.Data.Entity.Core.Metadata.Edm.EdmFunction) (FullOpts)\n        -156 (-28.78 % of base) : EntityFramework.dasm - System.Data.Entity.Core.Common.TypeHelpers:GetTvfReturnType(System.Data.Entity.Core.Metadata.Edm.EdmFunction):System.Data.Entity.Core.Metadata.Edm.RowType (FullOpts)\n        -155 (-3.83 % of base) : EntityFramework.dasm - System.Data.Entity.Core.Mapping.MappingItemLoader\u002BModificationFunctionMappingLoader:LoadScalarPropertyParameterBinding(System.Xml.XPath.XPathNavigator,System.Data.Entity.Core.Metadata.Edm.StructuralType,bool):System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding:this (FullOpts)\n        -152 (-2.93 % of base) : Microsoft.EntityFrameworkCore.dasm - Microsoft.EntityFrameworkCore.Query.Internal.NavigationExpandingExpressionVisitor\u002BIncludeExpandingExpressionVisitor:ExpandIncludesHelper(System.Linq.Expressions.Expression,Microsoft.EntityFrameworkCore.Query.Internal.NavigationExpandingExpressionVisitor\u002BEntityReference,Microsoft.EntityFrameworkCore.Metadata.INavigationBase):System.Linq.Expressions.Expression:this (FullOpts)\n        -151 (-8.72 % of base) : Microsoft.OpenApi.dasm - Microsoft.OpenApi.BaseOpenApiReference:ResolveRelativePointer(System.String,System.String):System.String (FullOpts)\n        -147 (-3.69 % of base) : Microsoft.EntityFrameworkCore.dasm - Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention:RemoveIncompatibleWithExistingRelationships(System.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate],Microsoft.EntityFrameworkCore.Metadata.Builders.IConventionEntityTypeBuilder):System.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate] (FullOpts)\n        -133 (-10.55 % of base) : CsvHelper.dasm - CsvHelper.CsvWriter:WriteHeader(System.Type):this (FullOpts)\n        -128 (-7.46 % of base) : NetTopologySuite.IO.SqlServerBytes.dasm - NetTopologySuite.IO.Serialization.Geography:WriteTo(System.IO.BinaryWriter):this (FullOpts)\n        -126 (-7.80 % of base) : EntityFramework.dasm - System.Data.Entity.Core.Mapping.FunctionImportMappingComposable:GetInternalTree(System.Data.Entity.Core.Query.InternalTrees.Command,System.Collections.Generic.IList\u00601[System.Data.Entity.Core.Query.InternalTrees.Node]):System.Data.Entity.Core.Query.InternalTrees.Node:this (FullOpts)\n        -121 (-14.22 % of base) : Microsoft.CodeAnalysis.Features.dasm - Microsoft.CodeAnalysis.AddPackage.InstallPackageDirectlyCodeActionOperation:.ctor(Microsoft.CodeAnalysis.Packaging.IPackageInstallerService,Microsoft.CodeAnalysis.Document,System.String,System.String,System.String,bool,bool):this (FullOpts)\n        -120 (-7.13 % of base) : Npgsql.EntityFrameworkCore.PostgreSQL.dasm - Npgsql.EntityFrameworkCore.PostgreSQL.Query.Internal.NpgsqlSetOperationTypingInjector:VisitSetOperation(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SetOperationBase):System.Linq.Expressions.Expression:this (FullOpts)\n        -119 (-7.44 % of base) : Microsoft.OpenApi.dasm - Microsoft.OpenApi.OpenApiOAuthFlows:SerializeInternal(Microsoft.OpenApi.IOpenApiWriter,int,System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]):this (FullOpts)\n        -119 (-10.77 % of base) : Pomelo.EntityFrameworkCore.MySql.dasm - Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlNonWorkingHavingExpressionVisitor:VisitSelectImmutable(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression):System.Linq.Expressions.Expression:this (FullOpts)\n        -119 (-4.30 % of base) : EntityFramework.dasm - System.Data.Entity.ModelConfiguration.Configuration.ModificationStoredProcedureConfiguration:ConfigureParameters(System.Data.Entity.Core.Mapping.ModificationFunctionMapping):this (FullOpts)\n        -118 (-10.23 % of base) : Castle.Windsor.dasm - Castle.Windsor.Proxy.DefaultProxyFactory:Create(Castle.MicroKernel.IKernel,System.Object,Castle.Core.ComponentModel,Castle.MicroKernel.Context.CreationContext,System.Object[]):System.Object:this (FullOpts)\n        -118 (-6.75 % of base) : EntityFramework.dasm - System.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher:MatchSplitErrors():this (FullOpts)\n        -114 (-27.08 % of base) : EntityFramework.dasm - System.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher:GetRightMemberPath(System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper):System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath (FullOpts)\n        -112 (-22.76 % of base) : CsvHelper.dasm - CsvHelper.TypeConversion.BooleanConverter:ConvertToString(System.Object,CsvHelper.IWriterRow,CsvHelper.Configuration.MemberMapData):System.String:this (FullOpts)\n        -112 (-14.91 % of base) : Microsoft.AspNetCore.OData.dasm - Microsoft.AspNetCore.OData.Formatter.Deserialization.ODataActionPayloadDeserializer:GetAction(Microsoft.AspNetCore.OData.Formatter.Deserialization.ODataDeserializerContext):Microsoft.OData.Edm.IEdmAction (FullOpts)\n        -110 (-6.11 % of base) : App.Metrics.Core.dasm - App.Metrics.MetricsBuilder:Build():App.Metrics.IMetricsRoot:this (FullOpts)\n        -110 (-12.66 % of base) : NSwag.Core.dasm - NSwag.OpenApiOperation:UpdateBodyParameter(NSwag.OpenApiParameter):this (FullOpts)\n        -110 (-17.27 % of base) : EntityFramework.dasm - System.Data.Entity.Core.Metadata.Edm.EdmSerializationVisitor:VisitFunctionImport(System.Data.Entity.Core.Metadata.Edm.EdmFunction):this (FullOpts)\n        -110 (-24.66 % of base) : EntityFramework.dasm - System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer:MappingTypesAreIdentical(System.Data.Entity.Core.Mapping.EntityTypeMapping,System.Data.Entity.Core.Mapping.EntityTypeMapping):bool (FullOpts)\n        -108 (-10.35 % of base) : DnsClient.dasm - DnsClient.LookupClient:HandleOptRecords(DnsClient.DnsQuerySettings,DnsClient.LookupClientAudit,DnsClient.NameServer,DnsClient.DnsResponseMessage):this (FullOpts)\n        -108 (-31.58 % of base) : EntityFramework.dasm - System.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher:CreateRightFragmentQuery(System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper):System.Data.Entity.Core.Mapping.ViewGeneration.QueryRewriting.FragmentQuery:this (FullOpts)\n        -108 (-11.24 % of base) : EntityFramework.dasm - System.Data.Entity.Core.Objects.ELinq.ExpressionConverter\u002BMethodCallTranslator\u002BStringConcatTranslator:Translate(System.Data.Entity.Core.Objects.ELinq.ExpressionConverter,System.Linq.Expressions.MethodCallExpression):System.Data.Entity.Core.Common.CommandTrees.DbExpression:this (FullOpts)\n        -107 (-6.50 % of base) : Microsoft.AspNetCore.OData.dasm - Microsoft.AspNetCore.OData.Routing.ODataPathExtensions:GetPropertyAndStructuredTypeFromPath(Microsoft.OData.UriParser.ODataPath):System.ValueTuple\u00603[Microsoft.OData.Edm.IEdmProperty,Microsoft.OData.Edm.IEdmStructuredType,System.String] (FullOpts)\n        -104 (-11.78 % of base) : FakeItEasy.dasm - FakeItEasy.Core.FakeManager\u002BPropertySetterRule\u002B\u003C\u003Ec__DisplayClass1_0:\u003CApply\u003Eb__0(System.Collections.Generic.LinkedList\u00601[FakeItEasy.Core.CallRuleMetadata]):this (FullOpts)\n        -104 (-15.45 % of base) : EntityFramework.dasm - System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation:ValidateFunction(System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression],byref):System.Data.Entity.Core.Metadata.Edm.TypeUsage (FullOpts)\n        -104 (-3.71 % of base) : EntityFramework.dasm - System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition:.ctor(System.Data.Common.DbProviderFactory,System.Data.Entity.Core.Common.CommandTrees.DbCommandTree,System.Data.Entity.Infrastructure.Interception.DbInterceptionContext,System.Data.Entity.Infrastructure.DependencyResolution.IDbDependencyResolver,System.Data.Entity.Core.Query.ResultAssembly.BridgeDataReaderFactory,System.Data.Entity.Core.Query.InternalTrees.ColumnMapFactory):this (FullOpts)\n\nTop method regressions (percentages):\n          45 (Infinity of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.Memory.ByteMemoryOwner\u00601[int]:Dispose():this (FullOpts) (0 base, 1 diff methods)\n         102 (69.39 % of base) : System.Data.Common.dasm - System.Data.EnumerableRowCollectionExtensions:Select[byte,System.Nullable\u00601[int]](System.Data.EnumerableRowCollection\u00601[byte],System.Func\u00602[byte,System.Nullable\u00601[int]]):System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]] (FullOpts)\n         102 (69.39 % of base) : System.Data.Common.dasm - System.Data.EnumerableRowCollectionExtensions:Select[double,System.Nullable\u00601[int]](System.Data.EnumerableRowCollection\u00601[double],System.Func\u00602[double,System.Nullable\u00601[int]]):System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]] (FullOpts)\n         102 (69.39 % of base) : System.Data.Common.dasm - System.Data.EnumerableRowCollectionExtensions:Select[int,System.Nullable\u00601[int]](System.Data.EnumerableRowCollection\u00601[int],System.Func\u00602[int,System.Nullable\u00601[int]]):System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]] (FullOpts)\n         102 (69.39 % of base) : System.Data.Common.dasm - System.Data.EnumerableRowCollectionExtensions:Select[long,System.Nullable\u00601[int]](System.Data.EnumerableRowCollection\u00601[long],System.Func\u00602[long,System.Nullable\u00601[int]]):System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]] (FullOpts)\n         102 (69.39 % of base) : System.Data.Common.dasm - System.Data.EnumerableRowCollectionExtensions:Select[short,System.Nullable\u00601[int]](System.Data.EnumerableRowCollection\u00601[short],System.Func\u00602[short,System.Nullable\u00601[int]]):System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]] (FullOpts)\n         102 (69.39 % of base) : System.Data.Common.dasm - System.Data.EnumerableRowCollectionExtensions:Select[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]](System.Data.EnumerableRowCollection\u00601[System.Numerics.Vector\u00601[float]],System.Func\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]]):System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]] (FullOpts)\n\nTop method improvements (percentages):\n        -229 (-97.86 % of base) : System.CommandLine.dasm - System.CommandLine.Argument\u00601[byte]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,byte]:this (FullOpts)\n        -229 (-97.86 % of base) : System.CommandLine.dasm - System.CommandLine.Argument\u00601[double]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,double]:this (FullOpts)\n        -229 (-97.86 % of base) : System.CommandLine.dasm - System.CommandLine.Argument\u00601[int]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,int]:this (FullOpts)\n        -229 (-97.86 % of base) : System.CommandLine.dasm - System.CommandLine.Argument\u00601[long]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,long]:this (FullOpts)\n        -229 (-97.86 % of base) : System.CommandLine.dasm - System.CommandLine.Argument\u00601[short]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,short]:this (FullOpts)\n        -229 (-97.86 % of base) : System.CommandLine.dasm - System.CommandLine.Argument\u00601[System.Nullable\u00601[int]]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,System.Nullable\u00601[int]]:this (FullOpts)\n        -229 (-97.86 % of base) : System.CommandLine.dasm - System.CommandLine.Argument\u00601[System.Numerics.Vector\u00601[float]]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,System.Numerics.Vector\u00601[float]]:this (FullOpts)\n        -208 (-96.74 % of base) : Pomelo.EntityFrameworkCore.MySql.dasm - Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitJsonScalar(Microsoft.EntityFrameworkCore.Query.SqlExpressions.JsonScalarExpression):System.Linq.Expressions.Expression:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:SameAs[double](MathNet.Numerics.LinearAlgebra.Matrix\u00601[double],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:SameAs[int](MathNet.Numerics.LinearAlgebra.Matrix\u00601[int],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:SameAs[long](MathNet.Numerics.LinearAlgebra.Matrix\u00601[long],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:SameAs[short](MathNet.Numerics.LinearAlgebra.Matrix\u00601[short],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:SameAs[System.Numerics.Vector\u00601[float]](MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:SameAs[byte](MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:SameAs[int](MathNet.Numerics.LinearAlgebra.Matrix\u00601[int],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:SameAs[long](MathNet.Numerics.LinearAlgebra.Matrix\u00601[long],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:SameAs[short](MathNet.Numerics.LinearAlgebra.Matrix\u00601[short],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:SameAs[System.Numerics.Vector\u00601[float]](MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:SameAs[byte](MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:SameAs[double](MathNet.Numerics.LinearAlgebra.Matrix\u00601[double],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:SameAs[long](MathNet.Numerics.LinearAlgebra.Matrix\u00601[long],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:SameAs[short](MathNet.Numerics.LinearAlgebra.Matrix\u00601[short],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:SameAs[System.Numerics.Vector\u00601[float]](MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:SameAs[byte](MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:SameAs[double](MathNet.Numerics.LinearAlgebra.Matrix\u00601[double],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:SameAs[int](MathNet.Numerics.LinearAlgebra.Matrix\u00601[int],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:SameAs[short](MathNet.Numerics.LinearAlgebra.Matrix\u00601[short],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:SameAs[System.Numerics.Vector\u00601[float]](MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:SameAs[byte](MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:SameAs[double](MathNet.Numerics.LinearAlgebra.Matrix\u00601[double],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:SameAs[int](MathNet.Numerics.LinearAlgebra.Matrix\u00601[int],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:SameAs[long](MathNet.Numerics.LinearAlgebra.Matrix\u00601[long],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:SameAs[System.Numerics.Vector\u00601[float]](MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:SameAs[byte](MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:SameAs[double](MathNet.Numerics.LinearAlgebra.Matrix\u00601[double],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:SameAs[int](MathNet.Numerics.LinearAlgebra.Matrix\u00601[int],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:SameAs[long](MathNet.Numerics.LinearAlgebra.Matrix\u00601[long],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n        -474 (-79.80 % of base) : MathNet.Numerics.dasm - MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:SameAs[short](MathNet.Numerics.LinearAlgebra.Matrix\u00601[short],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n        -198 (-64.29 % of base) : Pomelo.EntityFrameworkCore.MySql.dasm - Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitSqlConstant(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlConstantExpression):System.Linq.Expressions.Expression:this (FullOpts)\n         -83 (-57.64 % of base) : Microsoft.CodeAnalysis.AnalyzerUtilities.dasm - Microsoft.CodeAnalysis.ErrorReporting.FatalError\u002B\u003C\u003Ec__DisplayClass16_0:\u003CReportNonFatalErrorUnlessCancelledAsync\u003Eb__0(System.Threading.Tasks.Task):bool:this (FullOpts)\n        -364 (-52.15 % of base) : MongoDB.Driver.dasm - MongoDB.Driver.BinaryVectorDriverExtensions:ToQueryVector[double](MongoDB.Bson.BinaryVector\u00601[double]):MongoDB.Driver.QueryVector (FullOpts)\n        -364 (-52.15 % of base) : MongoDB.Driver.dasm - MongoDB.Driver.BinaryVectorDriverExtensions:ToQueryVector[int](MongoDB.Bson.BinaryVector\u00601[int]):MongoDB.Driver.QueryVector (FullOpts)\n        -364 (-52.15 % of base) : MongoDB.Driver.dasm - MongoDB.Driver.BinaryVectorDriverExtensions:ToQueryVector[long](MongoDB.Bson.BinaryVector\u00601[long]):MongoDB.Driver.QueryVector (FullOpts)\n        -364 (-52.15 % of base) : MongoDB.Driver.dasm - MongoDB.Driver.BinaryVectorDriverExtensions:ToQueryVector[short](MongoDB.Bson.BinaryVector\u00601[short]):MongoDB.Driver.QueryVector (FullOpts)\n        -364 (-52.15 % of base) : MongoDB.Driver.dasm - MongoDB.Driver.BinaryVectorDriverExtensions:ToQueryVector[System.Numerics.Vector\u00601[float]](MongoDB.Bson.BinaryVector\u00601[System.Numerics.Vector\u00601[float]]):MongoDB.Driver.QueryVector (FullOpts)\n       -1062 (-50.21 % of base) : Microsoft.CodeAnalysis.Features.dasm - Microsoft.CodeAnalysis.PdbSourceDocument.PdbSourceDocumentMetadataAsSourceFileProvider\u002BTestAccessor:get_Documents():System.Collections.Immutable.ImmutableDictionary\u00602[System.String,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]:this (FullOpts)\n        -192 (-49.48 % of base) : Pomelo.EntityFrameworkCore.MySql.dasm - Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitDistinct(Microsoft.EntityFrameworkCore.Query.SqlExpressions.DistinctExpression):System.Linq.Expressions.Expression:this (FullOpts)\n         -46 (-49.46 % of base) : Microsoft.CodeAnalysis.AnalyzerUtilities.dasm - Microsoft.CodeAnalysis.ErrorReporting.FatalError\u002B\u003C\u003Ec:\u003CReportNonFatalErrorAsync\u003Eb__15_0(System.Threading.Tasks.Task):bool:this (FullOpts)\n        -192 (-49.36 % of base) : Pomelo.EntityFrameworkCore.MySql.dasm - Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitCollate(Microsoft.EntityFrameworkCore.Query.SqlExpressions.CollateExpression):System.Linq.Expressions.Expression:this (FullOpts)\n        -196 (-49.00 % of base) : Pomelo.EntityFrameworkCore.MySql.dasm - Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitScalarSubquery(Microsoft.EntityFrameworkCore.Query.SqlExpressions.ScalarSubqueryExpression):System.Linq.Expressions.Expression:this (FullOpts)\n        -196 (-48.64 % of base) : Pomelo.EntityFrameworkCore.MySql.dasm - Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitExists(Microsoft.EntityFrameworkCore.Query.SqlExpressions.ExistsExpression):System.Linq.Expressions.Expression:this (FullOpts)\n       -1120 (-45.05 % of base) : Microsoft.CodeAnalysis.Features.dasm - Microsoft.CodeAnalysis.EditAndContinue.PdbMatchingSourceTextProvider\u002BTestAccessor:GetDocumentsWithChangedLoaderByPath():System.Collections.Immutable.ImmutableDictionary\u00602[System.String,System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]:this (FullOpts)\n        -364 (-43.49 % of base) : Microsoft.CodeAnalysis.AnalyzerUtilities.dasm - Microsoft.CodeAnalysis.FlowAnalysis.DataFlow.DisposeAnalysis.DisposeAnalysis\u002BDisposeDataFlowOperationVisitor:get_TrackedInstanceFieldPointsToMap():System.Collections.Immutable.ImmutableDictionary\u00602[Microsoft.CodeAnalysis.IFieldSymbol,Microsoft.CodeAnalysis.FlowAnalysis.DataFlow.PointsToAnalysis.PointsToAbstractValue]:this (FullOpts)\n         -51 (-42.15 % of base) : EntityFramework.dasm - System.Data.Entity.Core.Metadata.Edm.EdmFunction:get_ReturnParameter():System.Data.Entity.Core.Metadata.Edm.FunctionParameter:this (FullOpts)\n         -62 (-39.24 % of base) : Moq.dasm - Moq.MatcherObserver:TryGetLastMatch(byref):bool:this (FullOpts)\n         -54 (-39.13 % of base) : EntityFramework.dasm - System.Data.Entity.ModelConfiguration.Configuration.Types.StructuralTypeConfiguration\u002B\u003C\u003Ec:\u003Cget_ConfiguredProperties\u003Eb__8_0(System.Data.Entity.ModelConfiguration.Utilities.PropertyPath):System.Reflection.PropertyInfo:this (FullOpts)\n        -725 (-39.08 % of base) : LaunchDarkly.ServerSdk.dasm - LaunchDarkly.Sdk.Server.Integrations.EventProcessorBuilder:MakeEventsConfiguration(LaunchDarkly.Sdk.Server.Subsystems.LdClientContext,bool):LaunchDarkly.Sdk.Internal.Events.EventsConfiguration:this (FullOpts)\n       -1842 (-37.85 % of base) : LaunchDarkly.ServerSdk.dasm - LaunchDarkly.Sdk.Server.Integrations.TestData:MakeInitData():LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BFullDataSet\u00601[LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]:this (FullOpts)\n         -60 (-37.50 % of base) : MongoDB.Driver.dasm - MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToExecutableQueryTranslators.Finalizers.FirstOrDefaultFinalizer\u00601[System.Numerics.Vector\u00601[float]]:Finalize(MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]],System.Threading.CancellationToken):System.Numerics.Vector\u00601[float]:this (FullOpts)\n        -195 (-37.43 % of base) : Pomelo.EntityFrameworkCore.MySql.dasm - Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitLike(Microsoft.EntityFrameworkCore.Query.SqlExpressions.LikeExpression):System.Linq.Expressions.Expression:this (FullOpts)\n         -51 (-36.69 % of base) : Castle.Windsor.dasm - Castle.MicroKernel.ModelBuilder.Descriptors.DefaultsDescriptor:FirstService(Castle.Core.ComponentModel):System.Type:this (FullOpts)\n         -51 (-36.69 % of base) : EntityFramework.dasm - System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper:get_OnlyInputCell():System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell:this (FullOpts)\n         -59 (-36.65 % of base) : App.Metrics.Core.dasm - App.Metrics.MetricsReportingBuilder:UseUserConfiguredFormatter(App.Metrics.Reporting.IReportMetrics):this (FullOpts)\n         -52 (-36.11 % of base) : EntityFramework.dasm - System.Data.Entity.Core.Metadata.Edm.AssociationSet:get_SourceSet():System.Data.Entity.Core.Metadata.Edm.EntitySet:this (FullOpts)\n         -51 (-35.66 % of base) : EntityFramework.dasm - System.Data.Entity.Core.Mapping.StorageMappingItemCollection\u002B\u003C\u003Ec:\u003CFindInterestingFunctionMappingMembers\u003Eb__42_0(System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding):System.Data.Entity.Core.Metadata.Edm.EdmMember:this (FullOpts)\n         -59 (-35.12 % of base) : EntityFramework.dasm - System.Data.Entity.ModelConfiguration.Configuration.ModificationStoredProcedureConfiguration\u002B\u003C\u003Ec__DisplayClass30_0:\u003CConfigureParameters\u003Eb__4(System.Reflection.PropertyInfo):bool:this (FullOpts)\n         -63 (-34.24 % of base) : EntityFramework.dasm - System.Data.Entity.Core.Query.InternalTrees.AggregateOp:.ctor(System.Data.Entity.Core.Metadata.Edm.EdmFunction,bool):this (FullOpts)\n         -52 (-34.21 % of base) : Azure.Storage.Files.Shares.dasm - Azure.Storage.Shared.PooledMemoryStream:GetLatestBufferWithAvailableSpaceOrDefault():Azure.Storage.Shared.PooledMemoryStream\u002BBufferPartition:this (FullOpts)\n         -52 (-34.21 % of base) : Azure.Storage.Blobs.dasm - Azure.Storage.Shared.PooledMemoryStream:GetLatestBufferWithAvailableSpaceOrDefault():Azure.Storage.Shared.PooledMemoryStream\u002BBufferPartition:this (FullOpts)\n         -88 (-33.85 % of base) : NuGet.Configuration.dasm - NuGet.Configuration.Settings:LoadSettingsGivenSettingsFiles(System.Collections.Generic.List\u00601[NuGet.Configuration.SettingsFile]):NuGet.Configuration.ISettings (FullOpts)\n         -59 (-33.52 % of base) : EntityFramework.dasm - System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper:get_LeftExtent():System.Data.Entity.Core.Metadata.Edm.EntitySetBase:this (FullOpts)\n         -60 (-33.52 % of base) : MongoDB.Driver.dasm - MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToExecutableQueryTranslators.Finalizers.FirstFinalizer\u00601[System.Numerics.Vector\u00601[float]]:Finalize(MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]],System.Threading.CancellationToken):System.Numerics.Vector\u00601[float]:this (FullOpts)\n         -51 (-33.33 % of base) : EntityFramework.dasm - System.Data.Entity.Core.Metadata.Edm.AssociationType:get_SourceEnd():System.Data.Entity.Core.Metadata.Edm.AssociationEndMember:this (FullOpts)\n        -231 (-33.09 % of base) : MongoDB.Driver.dasm - MongoDB.Driver.BinaryVectorDriverExtensions:ToQueryVector[byte](MongoDB.Bson.BinaryVector\u00601[byte]):MongoDB.Driver.QueryVector (FullOpts)\n         -52 (-32.91 % of base) : EntityFramework.dasm - System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration:GetTableName():System.Data.Entity.Utilities.DatabaseName:this (FullOpts)\n         -52 (-32.10 % of base) : EntityFramework.dasm - System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration:get_SchemaName():System.String:this (FullOpts)\n         -52 (-32.10 % of base) : EntityFramework.dasm - System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration:get_TableName():System.String:this (FullOpts)\n        -634 (-32.09 % of base) : OpenTelemetry.Api.dasm - OpenTelemetry.Context.Propagation.CompositeTextMapPropagator:.ctor(System.Collections.Generic.IEnumerable\u00601[OpenTelemetry.Context.Propagation.TextMapPropagator]):this (FullOpts)\n         -53 (-31.74 % of base) : EntityFramework.dasm - System.Data.Entity.Core.Query.InternalTrees.FunctionOp:.ctor(System.Data.Entity.Core.Metadata.Edm.EdmFunction):this (FullOpts)\n        -108 (-31.58 % of base) : EntityFramework.dasm - System.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher:CreateRightFragmentQuery(System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper):System.Data.Entity.Core.Mapping.ViewGeneration.QueryRewriting.FragmentQuery:this (FullOpts)\n         -51 (-31.48 % of base) : EntityFramework.dasm - System.Data.Entity.ModelConfiguration.Edm.StorageEntityTypeMappingExtensions:GetPrimaryTable(System.Data.Entity.Core.Mapping.EntityTypeMapping):System.Data.Entity.Core.Metadata.Edm.EntityType (FullOpts)\n         -53 (-31.36 % of base) : ClosedXML.dasm - ClosedXML.Excel.XLDataValidations\u002B\u003C\u003Ec__DisplayClass19_0:\u003CConsolidate\u003Eb__1(ClosedXML.Excel.IXLDataValidation):bool:this (FullOpts)\n         -63 (-31.03 % of base) : EntityFramework.dasm - System.Data.Entity.Core.Query.InternalTrees.Command:CreateAggregateOp(System.Data.Entity.Core.Metadata.Edm.EdmFunction,bool):System.Data.Entity.Core.Query.InternalTrees.AggregateOp:this (FullOpts)\n         -57 (-30.16 % of base) : EntityFramework.dasm - System.Data.Entity.Core.Query.InternalTrees.Command:CreateFunctionOp(System.Data.Entity.Core.Metadata.Edm.EdmFunction):System.Data.Entity.Core.Query.InternalTrees.FunctionOp:this (FullOpts)\n         -52 (-30.06 % of base) : System.Linq.Dynamic.Core.dasm - System.Linq.Dynamic.Core.Parser.ExpressionHelper:GetMethodCallExpression(System.Linq.Expressions.MethodCallExpression):System.Linq.Expressions.Expression (FullOpts)\n        -156 (-28.78 % of base) : EntityFramework.dasm - System.Data.Entity.Core.Common.TypeHelpers:GetTvfReturnType(System.Data.Entity.Core.Metadata.Edm.EdmFunction):System.Data.Entity.Core.Metadata.Edm.RowType (FullOpts)\n         -70 (-28.23 % of base) : Castle.Windsor.dasm - Castle.MicroKernel.ModelBuilder.Descriptors.DefaultsDescriptor:BuildComponentModel(Castle.MicroKernel.IKernel,Castle.Core.ComponentModel):this (FullOpts)\n         -52 (-28.11 % of base) : EntityFramework.dasm - System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration:\u003CUpdateTableNameForSubTypes\u003Eb__62_2(System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration):System.Data.Entity.Utilities.DatabaseName:this (FullOpts)\n         -72 (-27.91 % of base) : Microsoft.CodeAnalysis.CSharp.Features.dasm - Microsoft.CodeAnalysis.CSharp.CodeRefactorings.InlineTemporary.CSharpInlineTemporaryCodeRefactoringProvider:FindDeclarator(Microsoft.CodeAnalysis.SyntaxNode):Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax (FullOpts)\n         -56 (-27.59 % of base) : Confluent.Kafka.dasm - Confluent.Kafka.Impl.SafeKafkaHandle:ListGroup(System.String,int):Confluent.Kafka.GroupInfo:this (FullOpts)\n         -70 (-27.34 % of base) : protobuf-net.dasm - ProtoBuf.Meta.AutoCompileTypeModel:GetSchema(ProtoBuf.Meta.SchemaGenerationOptions):System.String:this (FullOpts)\n        -114 (-27.08 % of base) : EntityFramework.dasm - System.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher:GetRightMemberPath(System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper):System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath (FullOpts)\n         -56 (-27.05 % of base) : Castle.Windsor.dasm - Castle.Core.ComponentModel:get_HasClassServices():bool:this (FullOpts)\n         -63 (-27.04 % of base) : AWSSDK.Core.dasm - Amazon.Runtime.CredentialManagement.Internal.CredentialProfileTypeDetector:GetPropertiesForProfileType(int):System.Collections.Generic.HashSet\u00601[System.String] (FullOpts)\n        -110 (-24.66 % of base) : EntityFramework.dasm - System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer:MappingTypesAreIdentical(System.Data.Entity.Core.Mapping.EntityTypeMapping,System.Data.Entity.Core.Mapping.EntityTypeMapping):bool (FullOpts)\n         -53 (-24.42 % of base) : EntityFramework.dasm - System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u002B\u003C\u003Ec__DisplayClass44_0:\u003CFindOrCreateTypeMappingFragment\u003Eb__1(System.Data.Entity.ModelConfiguration.Utilities.EdmPropertyPath):bool:this (FullOpts)\n         -66 (-24.26 % of base) : EntityFramework.dasm - System.Data.Entity.Core.Objects.Internal.ForeignKeyFactory:CreateKeyFromForeignKeyValues(System.Data.Entity.Core.Objects.EntityEntry,System.Data.Entity.Core.Objects.DataClasses.RelatedEnd):System.Data.Entity.Core.EntityKey (FullOpts)\n         -56 (-23.43 % of base) : EntityFramework.dasm - System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.DbExpressionBuilder:CreateFunctionAggregate(System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression],bool):System.Data.Entity.Core.Common.CommandTrees.DbFunctionAggregate (FullOpts)\n        -199 (-23.27 % of base) : Pomelo.EntityFrameworkCore.MySql.dasm - Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitIn(Microsoft.EntityFrameworkCore.Query.SqlExpressions.InExpression):System.Linq.Expressions.Expression:this (FullOpts)\n        -112 (-22.76 % of base) : CsvHelper.dasm - CsvHelper.TypeConversion.BooleanConverter:ConvertToString(System.Object,CsvHelper.IWriterRow,CsvHelper.Configuration.MemberMapData):System.String:this (FullOpts)\n\n810 total methods with Code Size differences (803 improved, 7 regressed), 2192259 unchanged.\n\n102 files had text diffs but no metric diffs.\nOpenTelemetry.dasm had 1976 diffs\nSkiaSharp.dasm had 592 diffs\nDistributedLock.Core.dasm had 128 diffs\nSystem.Net.Sockets.dasm had 120 diffs\nPipelines.Sockets.Unofficial.dasm had 24 diffs\nMicrosoft.NET.StringTools.dasm had 18 diffs\nSharpYaml.dasm had 12 diffs\nAsmResolver.dasm had 12 diffs\nZstdSharp.dasm had 8 diffs\nSystem.Web.dasm had 6 diffs\nmscorlib.dasm had 6 diffs\nHotChocolate.dasm had 6 diffs\nSystem.Reactive.Interfaces.dasm had 6 diffs\nSystem.Reactive.PlatformServices.dasm had 6 diffs\nSilk.NET.Assimp.dasm had 6 diffs\nnetstandard.dasm had 6 diffs\nSystem.Runtime.dasm had 6 diffs\nSystem.Runtime.Intrinsics.dasm had 6 diffs\nSystem.Data.dasm had 6 diffs\nSystem.Security.Cryptography.Algorithms.dasm had 6 diffs\nSystem.Xml.dasm had 6 diffs\nSystem.Threading.Tasks.dasm had 6 diffs\nSystem.Security.Cryptography.Cng.dasm had 6 diffs\nSystem.ServiceModel.Web.dasm had 6 diffs\nSystem.Configuration.dasm had 6 diffs\nSystem.Security.Cryptography.X509Certificates.dasm had 6 diffs\nSystem.Diagnostics.Tracing.dasm had 6 diffs\nSystem.Numerics.Vectors.dasm had 6 diffs\nSystem.Text.Encoding.dasm had 6 diffs\nSystem.Diagnostics.Contracts.dasm had 6 diffs\nSystem.ValueTuple.dasm had 6 diffs\nSystem.Globalization.dasm had 6 diffs\nSystem.Resources.ResourceManager.dasm had 6 diffs\nSystem.Threading.Overlapped.dasm had 6 diffs\nSystem.Globalization.Calendars.dasm had 6 diffs\nSystem.Runtime.Loader.dasm had 6 diffs\nMicrosoft.Bcl.Memory.dasm had 6 diffs\nSystem.Windows.dasm had 6 diffs\nSystem.IO.FileSystem.dasm had 6 diffs\nSystem.Runtime.Handles.dasm had 6 diffs\nSystem.Xml.XDocument.dasm had 6 diffs\nSystem.IO.FileSystem.Primitives.dasm had 6 diffs\nSystem.IO.UnmanagedMemoryStream.dasm had 6 diffs\nSystem.Xml.XPath.dasm had 6 diffs\nSystem.ServiceProcess.dasm had 6 diffs\nSystem.IO.dasm had 6 diffs\nSystem.Runtime.InteropServices.RuntimeInformation.dasm had 6 diffs\nSystem.Security.Cryptography.Csp.dasm had 6 diffs\nMicrosoft.Win32.Primitives.dasm had 6 diffs\nSystem.Xml.XmlDocument.dasm had 6 diffs\nSystem.Resources.Reader.dasm had 6 diffs\nSystem.Diagnostics.Tools.dasm had 6 diffs\nSystem.Numerics.dasm had 6 diffs\nSystem.IO.Abstractions.dasm had 6 diffs\nSystem.Reactive.Core.dasm had 6 diffs\nSystem.Reactive.Linq.dasm had 6 diffs\nSystem.Net.ServicePoint.dasm had 4 diffs\nMicrosoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore.dasm had 4 diffs\nSystem.Security.Cryptography.OpenSsl.dasm had 4 diffs\nSystem.Runtime.CompilerServices.Unsafe.dasm had 4 diffs\nSystem.Data.DataSetExtensions.dasm had 4 diffs\nSystem.dasm had 4 diffs\nSystem.Core.dasm had 4 diffs\nSystem.Runtime.Extensions.dasm had 4 diffs\nSystem.Xml.ReaderWriter.dasm had 4 diffs\nSystem.Xml.XmlSerializer.dasm had 4 diffs\nSystem.Runtime.Serialization.Xml.dasm had 4 diffs\nSystem.ComponentModel.DataAnnotations.dasm had 4 diffs\nSystem.Security.dasm had 4 diffs\nTestableIO.System.IO.Abstractions.dasm had 4 diffs\nSystem.Net.dasm had 4 diffs\nSystem.Drawing.dasm had 4 diffs\nMicrosoft.VisualBasic.dasm had 4 diffs\nSystem.Reflection.dasm had 4 diffs\nSystem.Reflection.Emit.Lightweight.dasm had 4 diffs\nSystem.Text.Encoding.Extensions.dasm had 4 diffs\nSystem.Dynamic.Runtime.dasm had 4 diffs\nSystem.Diagnostics.Debug.dasm had 4 diffs\nSystem.Transactions.dasm had 4 diffs\nSystem.Threading.Thread.dasm had 4 diffs\nSystem.Runtime.Serialization.dasm had 4 diffs\nSystem.Reflection.Emit.ILGeneration.dasm had 4 diffs\nSystem.Reflection.Primitives.dasm had 4 diffs\nSystem.Threading.ThreadPool.dasm had 4 diffs\nSystem.Xml.Serialization.dasm had 4 diffs\nSystem.Security.Cryptography.Encoding.dasm had 4 diffs\nSystem.Threading.Tasks.Extensions.dasm had 4 diffs\nSystem.Security.SecureString.dasm had 4 diffs\nSystem.AppContext.dasm had 4 diffs\nSystem.Threading.Timer.dasm had 4 diffs\nSystem.Buffers.dasm had 4 diffs\nSystem.Security.Cryptography.Primitives.dasm had 4 diffs\nSystem.IO.Compression.FileSystem.dasm had 4 diffs\nSystem.Globalization.Extensions.dasm had 4 diffs\nSystem.Xml.Linq.dasm had 4 diffs\nSystem.Security.Principal.dasm had 4 diffs\nSystem.Reflection.Extensions.dasm had 4 diffs\nSystem.Runtime.Serialization.Json.dasm had 4 diffs\nWindowsBase.dasm had 4 diffs\nAvalonia.dasm had 4 diffs\n\n--------------------------------------------------------------------------------","Notes":["Examples are interleaved across assemblies and change categories, ranked by absolute byte change within each group. Same-size examples have changed disassembly, not a size improvement or regression.","New/removed methods are excluded unless enabled with -includeNewMethodRegressions / -includeRemovedMethodImprovements.","Large methods use reduced context, and exceptionally large diffs omit their middle. Each affected example is marked. Use -uploadDasm for the complete JIT disassembly artifacts."],"Entries":[{"Assembly":"AWSSDK.Core.dasm","Method":"Amazon.Runtime.CredentialManagement.Internal.CredentialProfileTypeDetector:GetPropertiesForProfileType(int):System.Collections.Generic.HashSet\u00601[System.String] (FullOpts)","Category":"improvement","Description":"233 -\u003E 170 bytes (-63)","ExtraInfo":null,"Diff":"@@ -1,100 \u002B1,80 @@\n ; Assembly listing for method Amazon.Runtime.CredentialManagement.Internal.CredentialProfileTypeDetector:GetPropertiesForProfileType(int):System.Collections.Generic.HashSet\u00601[System.String] (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 3 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 arg0         [V00,T02] (  4,  3   )     int  -\u003E  rbx         single-def\n ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V02 tmp1         [V02,T00] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.String]\u003E\n-;  V03 tmp2         [V03,T03] (  4,  3.50)     ref  -\u003E  rbx         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Collections.Generic.HashSet\u00601[System.String]]\u003E\n\u002B;  V02 tmp1         [V02,T00] (  3,  6   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.String]\u003E\n\u002B;  V03 tmp2         [V03,T03] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Collections.Generic.HashSet\u00601[System.String]]\u003E\n ;  V04 tmp3         [V04,T01] (  3,  6   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[int,System.Collections.Generic.List\u00601[System.Collections.Generic.HashSet\u00601[System.String]]]\u003E\n-;  V05 tmp4         [V05,T05] (  3,  3   )   byref  -\u003E  rax         single-def \u0022Inline stloc first use temp\u0022\n\u002B;  V05 tmp4         [V05,T04] (  3,  3   )   byref  -\u003E  rax         single-def \u0022Inline stloc first use temp\u0022\n ;* V06 tmp5         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    ld-addr-op class-hnd \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Collections.Generic.HashSet\u00601[System.String]]\u003E\n-;  V07 tmp6         [V07    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V08 tmp7         [V08,T06] (  3,  2   )     ref  -\u003E  r15         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.String]\u003E\n-;  V09 tmp8         [V09,T04] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Collections.Generic.HashSet\u00601[System.String]]\u003E\n\u002B;  V07 tmp6         [V07    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V08 tmp7         [V08,T05] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.String]\u003E\n\u002B;* V09 tmp8         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Collections.Generic.HashSet\u00601[System.String]]\u003E\n ;\n ; Lcl frame size = 16\n \n G_M11206_IG01:\n        push     rbp\n        push     r15\n        push     rbx\n        sub      rsp, 16\n        lea      rbp, [rsp\u002B0x20]\n        mov      ebx, edi\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.00\n G_M11206_IG02:\n        mov      rdi, 0xD1FFAB1E      ; data for Amazon.Runtime.CredentialManagement.Internal.CredentialProfileTypeDetector:TypePropertyDictionary\n        mov      rdi, gword ptr [rdi]\n        cmp      byte  ptr [rdi], dil\n        mov      esi, ebx\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary\u00602[int,System.__Canon]:FindValue(int):byref:this\n        call     [rax]System.Collections.Generic.Dictionary\u00602[int,System.__Canon]:FindValue(int):byref:this\n        test     rax, rax\n-       je       G_M11206_IG07\n-       mov      rbx, gword ptr [rax]\n-       test     rbx, rbx\n-       je       G_M11206_IG08\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Collections.Generic.HashSet\u00601[System.String]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n        je       SHORT G_M11206_IG04\n-\t\t\t\t\t\t;; size=81 bbWeight=1 PerfScore 17.25\n-G_M11206_IG03:\n-       lea      rsi, [rbp-0x18]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      r15, rax\n-       jmp      SHORT G_M11206_IG05\n-\t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 5.00\n-G_M11206_IG04:\n\u002B       mov      rsi, gword ptr [rax]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M11206_IG05\n        lea      rdx, [rbp-0x18]\n-       mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Collections.Generic.HashSet\u00601[System.String]](System.Collections.Generic.IEnumerable\u00601[System.Collections.Generic.HashSet\u00601[System.String]],byref):System.Collections.Generic.HashSet\u00601[System.String]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      r15, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M11206_IG05:\n\u002B       mov      rbx, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.HashSet\u00601[System.String]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      rbx, rax\n-       mov      rdi, rbx\n-       mov      rsi, r15\n\u002B       mov      r15, rax\n\u002B       mov      rdi, r15\n\u002B       mov      rsi, rbx\n        xor      rdx, rdx\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.HashSet\u00601[System.__Canon]:.ctor(System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Collections.Generic.IEqualityComparer\u00601[System.__Canon]):this\n        call     [rax]System.Collections.Generic.HashSet\u00601[System.__Canon]:.ctor(System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Collections.Generic.IEqualityComparer\u00601[System.__Canon]):this\n-       mov      rax, rbx\n-\t\t\t\t\t\t;; size=41 bbWeight=1 PerfScore 5.75\n-G_M11206_IG06:\n\u002B       mov      rax, r15\n\u002B\t\t\t\t\t\t;; size=113 bbWeight=1 PerfScore 22.25\n\u002BG_M11206_IG03:\n        add      rsp, 16\n        pop      rbx\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 2.75\n-G_M11206_IG07:\n\u002BG_M11206_IG04:\n        mov      edi, ebx\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowKeyNotFoundException[int](int)\n        call     [rax]System.ThrowHelper:ThrowKeyNotFoundException[int](int)\n        int3     \n \t\t\t\t\t\t;; size=15 bbWeight=0 PerfScore 0.00\n-G_M11206_IG08:\n\u002BG_M11206_IG05:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 233, prolog size 13, PerfScore 37.00, instruction count 58, allocated bytes for code 233 (MethodHash=483fd439) for method Amazon.Runtime.CredentialManagement.Internal.CredentialProfileTypeDetector:GetPropertiesForProfileType(int):System.Collections.Generic.HashSet\u00601[System.String] (FullOpts)\n\u002B; Total bytes of code 170, prolog size 13, PerfScore 29.00, instruction count 44, allocated bytes for code 170 (MethodHash=483fd439) for method Amazon.Runtime.CredentialManagement.Internal.CredentialProfileTypeDetector:GetPropertiesForProfileType(int):System.Collections.Generic.HashSet\u00601[System.String] (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":233,"DiffBytes":170},{"Assembly":"AngleSharp.Css.dasm","Method":"AngleSharp.Css.Parser.CssParser\u002B\u003C\u003Ec__DisplayClass25_0:\u003CParseProperty\u003Eb__0(AngleSharp.Css.Parser.CssBuilder,AngleSharp.Css.Parser.Tokens.CssToken):System.Tuple\u00602[AngleSharp.Css.Dom.ICssProperty,AngleSharp.Css.Parser.Tokens.CssToken]:this (FullOpts)","Category":"improvement","Description":"265 -\u003E 205 bytes (-60)","ExtraInfo":null,"Diff":"@@ -1,110 \u002B1,92 @@\n ; Assembly listing for method AngleSharp.Css.Parser.CssParser\u002B\u003C\u003Ec__DisplayClass25_0:\u003CParseProperty\u003Eb__0(AngleSharp.Css.Parser.CssBuilder,AngleSharp.Css.Parser.Tokens.CssToken):System.Tuple\u00602[AngleSharp.Css.Dom.ICssProperty,AngleSharp.Css.Parser.Tokens.CssToken]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 6 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T02] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CAngleSharp.Css.Parser.CssParser\u002B\u003C\u003Ec__DisplayClass25_0\u003E\n\u002B;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CAngleSharp.Css.Parser.CssParser\u002B\u003C\u003Ec__DisplayClass25_0\u003E\n ;  V01 arg1         [V01,T05] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CAngleSharp.Css.Parser.CssBuilder\u003E\n ;  V02 arg2         [V02    ] (  2,  2   )  struct (24) [rbp\u002B0x10]  do-not-enreg[XS] addr-exposed ld-addr-op single-def \u003CAngleSharp.Css.Parser.Tokens.CssToken\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V04 tmp1         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CAngleSharp.Css.Dom.CssStyleDeclaration\u003E\n-;  V05 tmp2         [V05,T01] (  4,  7   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[AngleSharp.Css.Dom.ICssProperty]\u003E\n-;  V06 tmp3         [V06    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V07 tmp4         [V07,T07] (  3,  2   )     ref  -\u003E  r15         class-hnd \u0022Inline return value spill temp\u0022 \u003CAngleSharp.Css.Dom.ICssProperty\u003E\n-;  V08 tmp5         [V08,T06] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[AngleSharp.Css.Dom.ICssProperty]\u003E\n\u002B;  V05 tmp2         [V05,T02] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[AngleSharp.Css.Dom.ICssProperty]\u003E\n\u002B;  V06 tmp3         [V06    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V07 tmp4         [V07,T06] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CAngleSharp.Css.Dom.ICssProperty\u003E\n\u002B;* V08 tmp5         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[AngleSharp.Css.Dom.ICssProperty]\u003E\n ;  V09 tmp6         [V09,T04] (  3,  6   )  struct (24) [rbp-0x30]  do-not-enreg[S] must-init single-def \u0022Inlining Arg\u0022 \u003CAngleSharp.Css.Parser.Tokens.CssToken\u003E\n-;  V10 tmp7         [V10,T00] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Tuple\u00602[AngleSharp.Css.Dom.ICssProperty,AngleSharp.Css.Parser.Tokens.CssToken]\u003E\n-;  V11 rat0         [V11,T03] (  3,  6   )   byref  -\u003E  r15         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n\u002B;  V10 tmp7         [V10,T00] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Tuple\u00602[AngleSharp.Css.Dom.ICssProperty,AngleSharp.Css.Parser.Tokens.CssToken]\u003E\n\u002B;  V11 rat0         [V11,T03] (  3,  6   )   byref  -\u003E  rbx         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n ;\n ; Lcl frame size = 32\n \n G_M4653_IG01:\n        push     rbp\n        push     r15\n        push     rbx\n        sub      rsp, 32\n        lea      rbp, [rsp\u002B0x30]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqa  xmmword ptr [rbp-0x30], xmm8\n        xor      eax, eax\n        mov      qword ptr [rbp-0x20], rax\n        mov      rbx, rdi\n \t\t\t\t\t\t;; size=32 bbWeight=1 PerfScore 6.58\n G_M4653_IG02:\n        mov      rdx, gword ptr [rbx\u002B0x08]\n        lea      rcx, [rbp\u002B0x10]\n        mov      rdi, rsi\n        xor      rsi, rsi\n        mov      rax, 0xD1FFAB1E      ; code for AngleSharp.Css.Parser.CssBuilder:CreateDeclarationWith(AngleSharp.Css.Dom.ICssStyleSheet,AngleSharp.Css.Dom.ICssProperties,byref):this\n        cmp      dword ptr [rdi], edi\n        call     [rax]AngleSharp.Css.Parser.CssBuilder:CreateDeclarationWith(AngleSharp.Css.Dom.ICssStyleSheet,AngleSharp.Css.Dom.ICssProperties,byref):this\n-       mov      rsi, gword ptr [rbx\u002B0x08]\n-       mov      rbx, gword ptr [rsi\u002B0x08]\n-       test     rbx, rbx\n-       je       G_M4653_IG08\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[AngleSharp.Css.Dom.ICssProperty]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M4653_IG04\n-\t\t\t\t\t\t;; size=74 bbWeight=1 PerfScore 18.50\n-G_M4653_IG03:\n-       lea      rsi, [rbp-0x18]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      r15, rax\n-       jmp      SHORT G_M4653_IG05\n-\t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 5.00\n-G_M4653_IG04:\n\u002B       mov      rdx, gword ptr [rbx\u002B0x08]\n\u002B       mov      rsi, gword ptr [rdx\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M4653_IG06\n        lea      rdx, [rbp-0x18]\n-       mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[AngleSharp.Css.Dom.ICssProperty](System.Collections.Generic.IEnumerable\u00601[AngleSharp.Css.Dom.ICssProperty],byref):AngleSharp.Css.Dom.ICssProperty\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      r15, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M4653_IG05:\n\u002B       mov      rbx, rax\n\u002B\t\t\t\t\t\t;; size=69 bbWeight=1 PerfScore 17.75\n\u002BG_M4653_IG03:\n        vmovdqu  xmm0, xmmword ptr [rbp\u002B0x10]\n        vmovdqu  xmmword ptr [rbp-0x30], xmm0\n        mov      rdi, qword ptr [rbp\u002B0x20]\n        mov      qword ptr [rbp-0x20], rdi\n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.00\n-G_M4653_IG06:\n\u002BG_M4653_IG04:\n        mov      rdi, 0xD1FFAB1E      ; System.Tuple\u00602[AngleSharp.Css.Dom.ICssProperty,AngleSharp.Css.Parser.Tokens.CssToken]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      rbx, rax\n-       lea      rdi, bword ptr [rbx\u002B0x08]\n-       mov      rsi, r15\n\u002B       mov      r15, rax\n\u002B       lea      rdi, bword ptr [r15\u002B0x08]\n\u002B       mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      r15, bword ptr [rbx\u002B0x10]\n\u002B       lea      rbx, bword ptr [r15\u002B0x10]\n        mov      rsi, gword ptr [rbp-0x30]\n-       mov      rdi, r15\n\u002B       mov      rdi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        vmovups  xmm0, xmmword ptr [rbp-0x28]\n-       vmovups  xmmword ptr [r15\u002B0x08], xmm0\n-       mov      rax, rbx\n-\t\t\t\t\t\t;; size=60 bbWeight=1 PerfScore 8.25\n-G_M4653_IG07:\n\u002B       vmovups  xmmword ptr [rbx\u002B0x08], xmm0\n\u002B       mov      rax, r15\n\u002B\t\t\t\t\t\t;; size=59 bbWeight=1 PerfScore 8.25\n\u002BG_M4653_IG05:\n        add      rsp, 32\n        pop      rbx\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 2.75\n-G_M4653_IG08:\n\u002BG_M4653_IG06:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 265, prolog size 29, PerfScore 47.33, instruction count 66, allocated bytes for code 265 (MethodHash=b745edd2) for method AngleSharp.Css.Parser.CssParser\u002B\u003C\u003Ec__DisplayClass25_0:\u003CParseProperty\u003Eb__0(AngleSharp.Css.Parser.CssBuilder,AngleSharp.Css.Parser.Tokens.CssToken):System.Tuple\u00602[AngleSharp.Css.Dom.ICssProperty,AngleSharp.Css.Parser.Tokens.CssToken]:this (FullOpts)\n\u002B; Total bytes of code 205, prolog size 29, PerfScore 39.33, instruction count 52, allocated bytes for code 205 (MethodHash=b745edd2) for method AngleSharp.Css.Parser.CssParser\u002B\u003C\u003Ec__DisplayClass25_0:\u003CParseProperty\u003Eb__0(AngleSharp.Css.Parser.CssBuilder,AngleSharp.Css.Parser.Tokens.CssToken):System.Tuple\u00602[AngleSharp.Css.Dom.ICssProperty,AngleSharp.Css.Parser.Tokens.CssToken]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":265,"DiffBytes":205},{"Assembly":"App.Metrics.Core.dasm","Method":"App.Metrics.MetricsBuilder:Build():App.Metrics.IMetricsRoot:this (FullOpts)","Category":"improvement","Description":"1,799 -\u003E 1,689 bytes (-110)","ExtraInfo":null,"Diff":"@@ -30,54 \u002B30,54 @@\n ;  V19 tmp5         [V19,T12] (  3,  6   )     ref  -\u003E  [rbp-0x50]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CApp.Metrics.Internal.DefaultMetricValuesProvider\u003E\n ;  V20 tmp6         [V20,T13] (  3,  6   )     ref  -\u003E  [rbp-0x58]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CApp.Metrics.Internal.DefaultMetricsManager\u003E\n ;  V21 tmp7         [V21,T01] ( 10, 19   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CApp.Metrics.Internal.DefaultMetrics\u003E\n-;  V22 tmp8         [V22,T21] (  2,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CApp.Metrics.Formatters.IMetricsOutputFormatter\u003E\n-;  V23 tmp9         [V23,T25] (  4,  3.50)     ref  -\u003E  r14        \n-;  V24 tmp10        [V24,T22] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CApp.Metrics.Formatters.IEnvOutputFormatter\u003E\n-;  V25 tmp11        [V25,T26] (  4,  3.50)     ref  -\u003E  r13        \n\u002B;  V22 tmp8         [V22,T19] (  2,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CApp.Metrics.Formatters.IMetricsOutputFormatter\u003E\n\u002B;  V23 tmp9         [V23,T23] (  4,  3.50)     ref  -\u003E  r14        \n\u002B;  V24 tmp10        [V24,T20] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CApp.Metrics.Formatters.IEnvOutputFormatter\u003E\n\u002B;  V25 tmp11        [V25,T24] (  4,  3.50)     ref  -\u003E  r13        \n ;  V26 tmp12        [V26,T14] (  3,  6   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CApp.Metrics.MetricsRoot\u003E\n-;  V27 tmp13        [V27,T29] (  3,  3   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CApp.Metrics.Internal.DefaultMetricsReportRunner\u003E\n-;  V28 tmp14        [V28,T30] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CApp.Metrics.Formatters.Ascii.EnvInfoTextOutputFormatter\u003E\n\u002B;  V27 tmp13        [V27,T27] (  3,  3   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CApp.Metrics.Internal.DefaultMetricsReportRunner\u003E\n\u002B;  V28 tmp14        [V28,T28] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CApp.Metrics.Formatters.Ascii.EnvInfoTextOutputFormatter\u003E\n ;  V29 tmp15        [V29,T16] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CApp.Metrics.Formatters.EnvFormatterCollection\u003E\n-;  V30 tmp16        [V30,T31] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CApp.Metrics.Formatters.Ascii.MetricsTextOutputFormatter\u003E\n\u002B;  V30 tmp16        [V30,T29] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CApp.Metrics.Formatters.Ascii.MetricsTextOutputFormatter\u003E\n ;  V31 tmp17        [V31,T17] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CApp.Metrics.Formatters.MetricsFormatterCollection\u003E\n ;  V32 tmp18        [V32,T18] (  4,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.String,App.Metrics.Registry.IMetricContextRegistry]\u003E\n-;  V33 tmp19        [V33,T38] (  2,  2   )     ref  -\u003E  r15         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V34 tmp20        [V34,T39] (  2,  2   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CApp.Metrics.IClock\u003E\n-;  V35 tmp21        [V35,T32] (  3,  3   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CApp.Metrics.Internal.DefaultMetricsRegistry\u003E\n-;  V36 tmp22        [V36,T33] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CApp.Metrics.MetricFields\u003E\n-;  V37 tmp23        [V37,T34] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CApp.Metrics.MetricsOptions\u003E\n\u002B;  V33 tmp19        [V33,T36] (  2,  2   )     ref  -\u003E  r15         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V34 tmp20        [V34,T37] (  2,  2   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CApp.Metrics.IClock\u003E\n\u002B;  V35 tmp21        [V35,T30] (  3,  3   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CApp.Metrics.Internal.DefaultMetricsRegistry\u003E\n\u002B;  V36 tmp22        [V36,T31] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CApp.Metrics.MetricFields\u003E\n\u002B;  V37 tmp23        [V37,T32] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CApp.Metrics.MetricsOptions\u003E\n ;* V38 tmp24        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CApp.Metrics.MetricsOptions\u003E\n-;  V39 tmp25        [V39,T40] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CApp.Metrics.MetricsOptions\u003E\n\u002B;  V39 tmp25        [V39,T38] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CApp.Metrics.MetricsOptions\u003E\n ;* V40 tmp26        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CApp.Metrics.Formatters.MetricsFormatterCollection\u003E\n ;* V41 tmp27        [V41    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n ;* V42 tmp28        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CApp.Metrics.Formatters.MetricsFormatterCollection\u003E\n ;* V43 tmp29        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CApp.Metrics.Formatters.MetricsReporterCollection\u003E\n ;* V44 tmp30        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CApp.Metrics.Formatters.EnvFormatterCollection\u003E\n-;  V45 tmp31        [V45,T35] (  3,  3   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CApp.Metrics.Formatters.Ascii.MetricsTextOptions\u003E\n\u002B;  V45 tmp31        [V45,T33] (  3,  3   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CApp.Metrics.Formatters.Ascii.MetricsTextOptions\u003E\n ;* V46 tmp32        [V46    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n ;* V47 tmp33        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V48 tmp34        [V48,T41] (  2,  2   )     ref  -\u003E  rsi        \n\u002B;  V48 tmp34        [V48,T39] (  2,  2   )     ref  -\u003E  rsi        \n ;* V49 tmp35        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CApp.Metrics.Internal.NoOp.NullMetricsRegistry\u003E\n-;  V50 tmp36        [V50,T23] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CApp.Metrics.IClock\u003E\n\u002B;  V50 tmp36        [V50,T21] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CApp.Metrics.IClock\u003E\n ;* V51 tmp37        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V52 tmp38        [V52,T27] (  4,  3.50)     ref  -\u003E  rsi        \n-;  V53 tmp39        [V53,T24] (  2,  4   )     ref  -\u003E  [rbp-0x60]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CApp.Metrics.Filters.IFilterMetrics\u003E\n\u002B;  V52 tmp38        [V52,T25] (  4,  3.50)     ref  -\u003E  rsi        \n\u002B;  V53 tmp39        [V53,T22] (  2,  4   )     ref  -\u003E  [rbp-0x60]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CApp.Metrics.Filters.IFilterMetrics\u003E\n ;* V54 tmp40        [V54    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V55 tmp41        [V55,T28] (  4,  3.50)     ref  -\u003E  rsi        \n\u002B;  V55 tmp41        [V55,T26] (  4,  3.50)     ref  -\u003E  rsi        \n ;* V56 tmp42        [V56    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CApp.Metrics.Internal.NoOp.NullMetricsFilter\u003E\n ;* V57 tmp43        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CApp.Metrics.Infrastructure.StopwatchClock\u003E\n-;  V58 tmp44        [V58,T19] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CApp.Metrics.Formatters.MetricsFormatterCollection\u003E\n-;  V59 tmp45        [V59    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V60 tmp46        [V60,T44] (  3,  1.50)     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CApp.Metrics.Formatters.IMetricsOutputFormatter\u003E\n-;  V61 tmp47        [V61,T36] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[App.Metrics.Formatters.IMetricsOutputFormatter]\u003E\n-;  V62 tmp48        [V62,T20] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CApp.Metrics.Formatters.EnvFormatterCollection\u003E\n-;  V63 tmp49        [V63    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V64 tmp50        [V64,T45] (  3,  1.50)     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CApp.Metrics.Formatters.IEnvOutputFormatter\u003E\n-;  V65 tmp51        [V65,T37] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[App.Metrics.Formatters.IEnvOutputFormatter]\u003E\n-;  V66 tmp52        [V66,T42] (  2,  2   )     int  -\u003E  rsi         \u0022argument with side effect\u0022\n\u002B;  V58 tmp44        [V58,T34] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CApp.Metrics.Formatters.MetricsFormatterCollection\u003E\n... diff truncated; middle omitted ...\n ;  V68 tmp54        [V68,T08] (  2,  8   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n-;  V69 tmp55        [V69,T43] (  2,  2   )     int  -\u003E  rsi         \u0022argument with side effect\u0022\n\u002B;  V69 tmp55        [V69,T41] (  2,  2   )     int  -\u003E  rsi         \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 88\n \n@@ -217,7 \u002B217,7 @@ G_M55711_IG13:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_IsReadOnly():bool:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_IsReadOnly():bool:this\n        test     eax, eax\n-       jne      G_M55711_IG35\n\u002B       jne      G_M55711_IG33\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n@@ -310,7 \u002B310,7 @@ G_M55711_IG20:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_IsReadOnly():bool:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_IsReadOnly():bool:this\n        test     eax, eax\n-       jne      G_M55711_IG35\n\u002B       jne      G_M55711_IG33\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n@@ -407,73 \u002B407,41 @@ G_M55711_IG25:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      r14, gword ptr [rbx\u002B0x38]\n        test     r14, r14\n-       jne      SHORT G_M55711_IG28\n\u002B       jne      SHORT G_M55711_IG27\n \t\t\t\t\t\t;; size=80 bbWeight=1 PerfScore 15.00\n G_M55711_IG26:\n-       mov      r14, gword ptr [rbx\u002B0x18]\n-       test     r14, r14\n-       je       G_M55711_IG36\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[App.Metrics.Formatters.IMetricsOutputFormatter]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M55711_IG27\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      r14, rax\n-       jmp      SHORT G_M55711_IG28\n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 9.12\n-G_M55711_IG27:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x18]\n\u002B       test     rsi, rsi\n\u002B       je       G_M55711_IG34\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[App.Metrics.Formatters.IMetricsOutputFormatter](System.Collections.Generic.IEnumerable\u00601[App.Metrics.Formatters.IMetricsOutputFormatter],byref):App.Metrics.Formatters.IMetricsOutputFormatter\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        mov      r14, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M55711_IG28:\n\u002B\t\t\t\t\t\t;; size=42 bbWeight=0.50 PerfScore 3.75\n\u002BG_M55711_IG27:\n        mov      r13, gword ptr [rbx\u002B0x30]\n        test     r13, r13\n-       jne      SHORT G_M55711_IG31\n\u002B       jne      SHORT G_M55711_IG29\n \t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.25\n-G_M55711_IG29:\n-       mov      r13, gword ptr [rbx\u002B0x08]\n-       test     r13, r13\n-       je       G_M55711_IG36\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[App.Metrics.Formatters.IEnvOutputFormatter]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M55711_IG30\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      r13, rax\n-       jmp      SHORT G_M55711_IG31\n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 9.12\n-G_M55711_IG30:\n\u002BG_M55711_IG28:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M55711_IG34\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[App.Metrics.Formatters.IEnvOutputFormatter](System.Collections.Generic.IEnumerable\u00601[App.Metrics.Formatters.IEnvOutputFormatter],byref):App.Metrics.Formatters.IEnvOutputFormatter\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        mov      r13, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M55711_IG31:\n\u002B\t\t\t\t\t\t;; size=42 bbWeight=0.50 PerfScore 3.75\n\u002BG_M55711_IG29:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for App.Metrics.MetricsBuilder:CanReport():bool:this\n        call     [rax]App.Metrics.MetricsBuilder:CanReport():bool:this\n        test     eax, eax\n-       je       SHORT G_M55711_IG33\n\u002B       je       SHORT G_M55711_IG31\n \t\t\t\t\t\t;; size=19 bbWeight=1 PerfScore 4.75\n-G_M55711_IG32:\n\u002BG_M55711_IG30:\n        mov      rdi, 0xD1FFAB1E      ; App.Metrics.Internal.DefaultMetricsReportRunner\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n@@ -486,7 \u002B454,7 @@ G_M55711_IG32:\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n \t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 4.50\n-G_M55711_IG33:\n\u002BG_M55711_IG31:\n        mov      rdi, 0xD1FFAB1E      ; App.Metrics.MetricsRoot\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n@@ -511,7 \u002B479,7 @@ G_M55711_IG33:\n        mov      rax, 0xD1FFAB1E      ; data for App.Metrics.Metrics:\u003CInstance\u003Ek__BackingField\n        mov      rax, gword ptr [rax]\n \t\t\t\t\t\t;; size=113 bbWeight=1 PerfScore 25.25\n-G_M55711_IG34:\n\u002BG_M55711_IG32:\n        add      rsp, 88\n        pop      rbx\n        pop      r12\n@@ -521,52 \u002B489,52 @@ G_M55711_IG34:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M55711_IG35:\n\u002BG_M55711_IG33:\n        mov      edi, 8\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowNotSupportedException(int)\n        call     [rax]System.ThrowHelper:ThrowNotSupportedException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M55711_IG36:\n\u002BG_M55711_IG34:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M55711_IG37:\n\u002BG_M55711_IG35:\n        sub      rsp, 40\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M55711_IG38:\n\u002BG_M55711_IG36:\n        cmp      gword ptr [rbp-0x40], 0\n-       je       SHORT G_M55711_IG39\n\u002B       je       SHORT G_M55711_IG37\n        mov      rdi, gword ptr [rbp-0x40]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M55711_IG39:\n\u002BG_M55711_IG37:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M55711_IG40:\n\u002BG_M55711_IG38:\n        add      rsp, 40\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M55711_IG41:\n\u002BG_M55711_IG39:\n        sub      rsp, 40\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M55711_IG42:\n\u002BG_M55711_IG40:\n        cmp      gword ptr [rbp-0x48], 0\n-       je       SHORT G_M55711_IG43\n\u002B       je       SHORT G_M55711_IG41\n        mov      rdi, gword ptr [rbp-0x48]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M55711_IG43:\n\u002BG_M55711_IG41:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M55711_IG44:\n\u002BG_M55711_IG42:\n        add      rsp, 40\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1799, prolog size 35, PerfScore 405.50, instruction count 398, allocated bytes for code 1799 (MethodHash=05742660) for method App.Metrics.MetricsBuilder:Build():App.Metrics.IMetricsRoot:this (FullOpts)\n\u002B; Total bytes of code 1689, prolog size 35, PerfScore 390.25, instruction count 370, allocated bytes for code 1689 (MethodHash=05742660) for method App.Metrics.MetricsBuilder:Build():App.Metrics.IMetricsRoot:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1799,"DiffBytes":1689},{"Assembly":"AsmResolver.dasm","Method":"AsmResolver.Extensions:CreateEscapedString(System.String):System.String (FullOpts)","Category":"same-size","Description":"580 -\u003E 580 bytes (0)","ExtraInfo":null,"Diff":"@@ -59,10 \u002B59,10 @@ G_M35794_IG02:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       cmp      dword ptr [rax], 11\n\u002B       cmp      dword ptr [rax], 10\n        jle      G_M35794_IG31\n        mov      rdi, gword ptr [rax\u002B0x08]\n-       mov      r15, bword ptr [rdi\u002B0x58]\n\u002B       mov      r15, bword ptr [rdi\u002B0x50]\n        test     r15, r15\n        je       G_M35794_IG31\n \t\t\t\t\t\t;; size=48 bbWeight=1 PerfScore 11.75\n@@ -241,7 \u002B241,7 @@ G_M35794_IG30:\n        jmp      G_M35794_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=2 PerfScore 4.50\n G_M35794_IG31:\n-       mov      edi, 11\n\u002B       mov      edi, 10\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED\n        call     [rax]CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED\n        mov      r15, rax","Truncated":true,"BaseBytes":580,"DiffBytes":580},{"Assembly":"Autofac.dasm","Method":"Autofac.Core.Registration.ServiceRegistrationInfo:TryGetRegistration(byref):bool:this (FullOpts)","Category":"improvement","Description":"429 -\u003E 374 bytes (-55)","ExtraInfo":null,"Diff":"@@ -12,49 \u002B12,49 @@\n ;  V01 arg1         [V01,T01] (  4,  4   )   byref  -\u003E  r15         single-def\n ;* V02 loc0         [V02    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CAutofac.Core.IComponentRegistration\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V04 tmp1         [V04,T04] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022dup spill\u0022 \u003CAutofac.Core.IComponentRegistration\u003E\n\u002B;  V04 tmp1         [V04,T03] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022dup spill\u0022 \u003CAutofac.Core.IComponentRegistration\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V06 tmp3         [V06,T05] (  4,  3.50)     ref  -\u003E  rsi        \n-;  V07 tmp4         [V07,T13] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CAutofac.Core.IComponentRegistration\u003E\n\u002B;  V06 tmp3         [V06,T04] (  4,  3.50)     ref  -\u003E  rsi        \n\u002B;  V07 tmp4         [V07,T12] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CAutofac.Core.IComponentRegistration\u003E\n ;* V08 tmp5         [V08    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V09 tmp6         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;  V10 tmp7         [V10,T02] ( 10,  5   )     ref  -\u003E  r14        \n ;* V11 tmp8         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CAutofac.Core.IComponentRegistration\u003E\n-;  V12 tmp9         [V12,T06] (  3,  3   )     ref  -\u003E  rcx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Collections.Generic.List\u00601[Autofac.Core.IComponentRegistration]\u003E\n\u002B;  V12 tmp9         [V12,T05] (  3,  3   )     ref  -\u003E  rcx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Collections.Generic.List\u00601[Autofac.Core.IComponentRegistration]\u003E\n ;* V13 tmp10        [V13    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def\n ;* V14 tmp11        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V15 tmp12        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V16 tmp13        [V16    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def\n ;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V18 tmp15        [V18,T18] (  2,  1   )     int  -\u003E  rcx        \n\u002B;  V18 tmp15        [V18,T16] (  2,  1   )     int  -\u003E  rcx        \n ;* V19 tmp16        [V19    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def\n ;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V21 tmp18        [V21    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V22 tmp19        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V23 tmp20        [V23,T14] (  3,  1.50)     ref  -\u003E  r14        \n-;  V24 tmp21        [V24,T07] (  3,  3   )     ref  -\u003E  rcx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Collections.Generic.List\u00601[Autofac.Core.IComponentRegistration]\u003E\n\u002B;  V23 tmp20        [V23,T13] (  3,  1.50)     ref  -\u003E  r14        \n\u002B;  V24 tmp21        [V24,T06] (  3,  3   )     ref  -\u003E  rcx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Collections.Generic.List\u00601[Autofac.Core.IComponentRegistration]\u003E\n ;* V25 tmp22        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def\n ;* V26 tmp23        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V27 tmp24        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V28 tmp25        [V28    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def\n ;* V29 tmp26        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V30 tmp27        [V30,T19] (  2,  1   )     int  -\u003E  rcx        \n\u002B;  V30 tmp27        [V30,T17] (  2,  1   )     int  -\u003E  rcx        \n ;* V31 tmp28        [V31    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def\n ;* V32 tmp29        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V33 tmp30        [V33,T20] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n-;  V34 tmp31        [V34,T03] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Autofac.Core.IComponentRegistration]\u003E\n-;  V35 tmp32        [V35    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V36 tmp33        [V36,T15] (  3,  1.50)     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CAutofac.Core.IComponentRegistration\u003E\n-;  V37 tmp34        [V37,T12] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Autofac.Core.IComponentRegistration]\u003E\n\u002B;  V33 tmp30        [V33,T19] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V34 tmp31        [V34,T07] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Autofac.Core.IComponentRegistration]\u003E\n\u002B;  V35 tmp32        [V35    ] (  1,  0.50)   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V36 tmp33        [V36,T18] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CAutofac.Core.IComponentRegistration\u003E\n\u002B;* V37 tmp34        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Autofac.Core.IComponentRegistration]\u003E\n ;* V38 tmp35        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.__Canon]\u003E\n ;  V39 tmp36        [V39,T08] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Autofac.Core.IComponentRegistration]\u003E\n ;* V40 tmp37        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.__Canon]\u003E\n ;  V41 tmp38        [V41,T09] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Autofac.Core.IComponentRegistration]\u003E\n ;  V42 tmp39        [V42,T10] (  3,  3   )     ref  -\u003E  rax         single-def \u0022arr expr\u0022\n ;  V43 tmp40        [V43,T11] (  3,  3   )     ref  -\u003E  rax         single-def \u0022arr expr\u0022\n-;  V44 tmp41        [V44,T21] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V45 cse0         [V45,T16] (  3,  1.50)     ref  -\u003E  rax         \u0022CSE #01: moderate\u0022\n-;  V46 cse1         [V46,T17] (  3,  1.50)     ref  -\u003E  rax         \u0022CSE #03: moderate\u0022\n\u002B;  V44 tmp41        [V44,T20] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V45 cse0         [V45,T14] (  3,  1.50)     ref  -\u003E  rax         \u0022CSE #01: moderate\u0022\n\u002B;  V46 cse1         [V46,T15] (  3,  1.50)     ref  -\u003E  rax         \u0022CSE #03: moderate\u0022\n ;\n ; Lcl frame size = 8\n \n@@ -76,46 \u002B76,51 @@ G_M13814_IG02:\n \t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 3.00\n G_M13814_IG03:\n        cmp      byte  ptr [rbx\u002B0x54], 0\n-       je       G_M13814_IG14\n\u002B       je       G_M13814_IG12\n \t\t\t\t\t\t;; size=10 bbWeight=0.50 PerfScore 1.50\n G_M13814_IG04:\n        mov      rsi, gword ptr [rbx\u002B0x30]\n        test     rsi, rsi\n-       jne      G_M13814_IG12\n\u002B       jne      G_M13814_IG10\n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.25\n G_M13814_IG05:\n        mov      r14, gword ptr [rbx\u002B0x18]\n        test     r14, r14\n-       jne      G_M13814_IG11\n-       mov      r14, gword ptr [rbx\u002B0x08]\n-       test     r14, r14\n-       je       G_M13814_IG15\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[Autofac.Core.IComponentRegistration]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M13814_IG06\n-       lea      rsi, [rbp-0x20]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       mov      r14, rax\n-       jmp      SHORT G_M13814_IG07\n-\t\t\t\t\t\t;; size=78 bbWeight=0.50 PerfScore 10.75\n-G_M13814_IG06:\n\u002B       jne      G_M13814_IG09\n\u002B       mov      rsi, gword ptr [rbx\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M13814_IG13\n        lea      rdx, [rbp-0x20]\n-       mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[Autofac.Core.IComponentRegistration](System.Collections.Generic.IEnumerable\u00601[Autofac.Core.IComponentRegistration],byref):Autofac.Core.IComponentRegistration\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        mov      r14, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n\u002B       test     r14, r14\n\u002B       jne      SHORT G_M13814_IG09\n\u002B       mov      rax, gword ptr [rbx\u002B0x20]\n\u002B       mov      rcx, rax\n\u002B       test     rcx, rcx\n\u002B       je       SHORT G_M13814_IG06\n\u002B       cmp      dword ptr [rcx\u002B0x10], 0\n\u002B       setg     cl\n\u002B       movzx    rcx, cl\n\u002B       test     ecx, ecx\n\u002B       je       SHORT G_M13814_IG06\n\u002B       cmp      dword ptr [rax\u002B0x10], 0\n\u002B       je       G_M13814_IG14\n\u002B       mov      rax, gword ptr [rax\u002B0x08]\n\u002B       cmp      dword ptr [rax\u002B0x08], 0\n\u002B       jbe      G_M13814_IG15\n\u002B       mov      r14, gword ptr [rax\u002B0x10]\n\u002B       jmp      SHORT G_M13814_IG07\n\u002B\t\t\t\t\t\t;; size=116 bbWeight=0.50 PerfScore 15.75\n\u002BG_M13814_IG06:\n\u002B       xor      r14, r14\n\u002B\t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n G_M13814_IG07:\n        test     r14, r14\n-       jne      SHORT G_M13814_IG11\n-       mov      rax, gword ptr [rbx\u002B0x20]\n\u002B       jne      SHORT G_M13814_IG09\n\u002B       mov      rax, gword ptr [rbx\u002B0x28]\n        mov      rcx, rax\n        test     rcx, rcx\n        je       SHORT G_M13814_IG08\n@@ -125,10 \u002B130,10 @@ G_M13814_IG07:\n        test     ecx, ecx\n        je       SHORT G_M13814_IG08\n        cmp      dword ptr [rax\u002B0x10], 0\n-       je       G_M13814_IG16\n\u002B       je       G_M13814_IG14\n        mov      rax, gword ptr [rax\u002B0x08]\n        cmp      dword ptr [rax\u002B0x08], 0\n-       jbe      G_M13814_IG17\n\u002B       jbe      G_M13814_IG15\n        mov      r14, gword ptr [rax\u002B0x10]\n        jmp      SHORT G_M13814_IG09\n \t\t\t\t\t\t;; size=61 bbWeight=0.50 PerfScore 10.38\n@@ -136,42 \u002B141,19 @@ G_M13814_IG08:\n        xor      r14, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n G_M13814_IG09:\n-       test     r14, r14\n-       jne      SHORT G_M13814_IG11\n-       mov      rax, gword ptr [rbx\u002B0x28]\n-       mov      rcx, rax\n-       test     rcx, rcx\n-       je       SHORT G_M13814_IG10\n-       cmp      dword ptr [rcx\u002B0x10], 0\n-       setg     cl\n-       movzx    rcx, cl\n-       test     ecx, ecx\n-       je       SHORT G_M13814_IG10\n-       cmp      dword ptr [rax\u002B0x10], 0\n-       je       G_M13814_IG16\n-       mov      rax, gword ptr [rax\u002B0x08]\n-       cmp      dword ptr [rax\u002B0x08], 0\n-       jbe      G_M13814_IG17\n-       mov      r14, gword ptr [rax\u002B0x10]\n-       jmp      SHORT G_M13814_IG11\n-\t\t\t\t\t\t;; size=61 bbWeight=0.50 PerfScore 10.38\n-G_M13814_IG10:\n-       xor      r14, r14\n-\t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M13814_IG11:\n        lea      rdi, bword ptr [rbx\u002B0x30]\n        mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rsi, r14\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 1.00\n-G_M13814_IG12:\n\u002BG_M13814_IG10:\n        mov      rdi, r15\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n        cmp      gword ptr [r15], 0\n        setne    al\n        movzx    rax, al\n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.00\n-G_M13814_IG13:\n\u002BG_M13814_IG11:\n        add      rsp, 8\n        pop      rbx\n        pop      r14\n@@ -179,7 \u002B161,7 @@ G_M13814_IG13:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M13814_IG14:\n\u002BG_M13814_IG12:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -193,21 \u002B175,21 @@ G_M13814_IG14:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=57 bbWeight=0 PerfScore 0.00\n-G_M13814_IG15:\n\u002BG_M13814_IG13:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M13814_IG16:\n\u002BG_M13814_IG14:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M13814_IG17:\n\u002BG_M13814_IG15:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 429, prolog size 18, PerfScore 57.25, instruction count 116, allocated bytes for code 429 (MethodHash=b177ca09) for method Autofac.Core.Registration.ServiceRegistrationInfo:TryGetRegistration(byref):bool:this (FullOpts)\n\u002B; Total bytes of code 374, prolog size 18, PerfScore 49.62, instruction count 102, allocated bytes for code 374 (MethodHash=b177ca09) for method Autofac.Core.Registration.ServiceRegistrationInfo:TryGetRegistration(byref):bool:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":429,"DiffBytes":374},{"Assembly":"Azure.ResourceManager.dasm","Method":"Azure.ResourceManager.ArmClient:GetDefaultSubscription(System.Threading.CancellationToken):Azure.ResourceManager.Resources.SubscriptionResource:this (FullOpts)","Category":"improvement","Description":"1,072 -\u003E 1,017 bytes (-55)","ExtraInfo":null,"Diff":"@@ -11,11 \u002B11,11 @@\n ;  V00 this         [V00,T00] ( 12,  8.50)     ref  -\u003E  rbx         this class-hnd single-def \u003CAzure.ResourceManager.ArmClient\u003E\n ;* V01 arg1         [V01    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;  V02 loc0         [V02    ] (  8,  6   )  struct (16) [rbp-0x38]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CAzure.Core.Pipeline.DiagnosticScope\u003E\n-;  V03 loc1         [V03,T27] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u003CAzure.ResourceManager.Resources.SubscriptionResource\u003E\n\u002B;  V03 loc1         [V03,T26] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u003CAzure.ResourceManager.Resources.SubscriptionResource\u003E\n ;* V04 loc2         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Exception\u003E\n ;  V05 OutArgs      [V05    ] (  1,  1   )  struct ( 8) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V06 tmp1         [V06,T34] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n-;  V07 tmp2         [V07,T35] (  2,  0   )     ref  -\u003E  rsi         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V06 tmp1         [V06,T33] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V07 tmp2         [V07,T34] (  2,  0   )     ref  -\u003E  rsi         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n ;* V08 tmp3         [V08    ] (  0,  0   )  struct (16) zero-ref    \u0022Inline return value spill temp\u0022 \u003CAzure.Core.Pipeline.DiagnosticScope\u003E\n ;  V09 tmp4         [V09,T03] (  5,  7   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CAzure.Core.Pipeline.ClientDiagnostics\u003E\n ;  V10 tmp5         [V10    ] (  5,  2.50)  struct (16) [rbp-0x48]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CAzure.Core.Pipeline.DiagnosticScope\u003E\n@@ -26,8 \u002B26,8 @@\n ;  V15 tmp10        [V15,T01] (  8,  8   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CAzure.Core.Pipeline.DiagnosticScope\u002BActivityAdapter\u003E\n ;* V16 tmp11        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V17 tmp12        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CAzure.Core.Pipeline.DiagnosticScope\u002BActivityAdapter\u003E\n-;  V18 tmp13        [V18,T12] (  3,  3   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Diagnostics.ActivityTagsCollection\u003E\n-;  V19 tmp14        [V19,T13] (  3,  3   )     ref  -\u003E  [rbp-0x58]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Collections.Generic.KeyValuePair\u00602[System.String,System.Object]]\u003E\n\u002B;  V18 tmp13        [V18,T11] (  3,  3   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Diagnostics.ActivityTagsCollection\u003E\n\u002B;  V19 tmp14        [V19,T12] (  3,  3   )     ref  -\u003E  [rbp-0x58]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Collections.Generic.KeyValuePair\u00602[System.String,System.Object]]\u003E\n ;  V20 tmp15        [V20,T06] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Diagnostics.ActivityTagsCollection\u003E\n ;  V21 tmp16        [V21,T20] (  5,  2.50)     int  -\u003E  rax         single-def \u0022Inline stloc first use temp\u0022\n ;* V22 tmp17        [V22    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.KeyValuePair\u00602[System.String,System.Object]\u003E\n@@ -35,26 \u002B35,26 @@\n ;* V24 tmp19        [V24    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.KeyValuePair\u00602[System.String,System.Object]\u003E\n ;  V25 tmp20        [V25,T07] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Collections.Generic.KeyValuePair\u00602[System.String,System.Object]]\u003E\n ;* V26 tmp21        [V26    ] (  0,  0   )  struct (16) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.KeyValuePair\u00602[System.String,System.Object]\u003E\n-;  V27 tmp22        [V27,T31] (  3,  1.50)     ref  -\u003E  r13         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Generic.KeyValuePair\u00602[System.String,System.Object][]\u003E\n-;  V28 tmp23        [V28,T23] (  4,  2   )     int  -\u003E  r12         single-def \u0022Inline stloc first use temp\u0022\n\u002B;  V27 tmp22        [V27,T30] (  3,  1.50)     ref  -\u003E  r13         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Generic.KeyValuePair\u00602[System.String,System.Object][]\u003E\n\u002B;  V28 tmp23        [V28,T22] (  4,  2   )     int  -\u003E  r12         single-def \u0022Inline stloc first use temp\u0022\n ;* V29 tmp24        [V29    ] (  0,  0   )  struct (16) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.KeyValuePair\u00602[System.String,System.Object]\u003E\n ;  V30 tmp25        [V30,T08] (  3,  5   )     ref  -\u003E  rdi         class-hnd single-def \u0022dup spill\u0022 \u003CAzure.Core.Pipeline.DiagnosticScope\u002BActivityAdapter\u003E\n ;* V31 tmp26        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V32 tmp27        [V32,T21] (  4,  2   )     ref  -\u003E  rax        \n ;* V33 tmp28        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Diagnostics.Activity\u003E\n-;  V34 tmp29        [V34,T09] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CAzure.Pageable\u00601[Azure.ResourceManager.Resources.SubscriptionResource]\u003E\n-;  V35 tmp30        [V35    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x50]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V36 tmp31        [V36,T32] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CAzure.ResourceManager.Resources.SubscriptionResource\u003E\n-;  V37 tmp32        [V37,T22] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Azure.ResourceManager.Resources.SubscriptionResource]\u003E\n\u002B;  V34 tmp29        [V34,T13] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CAzure.Pageable\u00601[Azure.ResourceManager.Resources.SubscriptionResource]\u003E\n\u002B;  V35 tmp30        [V35    ] (  1,  0.50)   ubyte  -\u003E  [rbp-0x50]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V36 tmp31        [V36,T32] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CAzure.ResourceManager.Resources.SubscriptionResource\u003E\n\u002B;* V37 tmp32        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Azure.ResourceManager.Resources.SubscriptionResource]\u003E\n ;  V38 tmp33        [V38,T04] (  6,  5   )     ref  -\u003E  rdi         class-hnd \u0022dup spill\u0022 \u003CAzure.Core.Pipeline.DiagnosticScope\u002BActivityAdapter\u003E\n ;* V39 tmp34        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V40 tmp35        [V40,T10] (  3,  2   )     ref  -\u003E  r15         single-def \u0022field V01._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V40 tmp35        [V40,T09] (  3,  2   )     ref  -\u003E  r15         single-def \u0022field V01._source (fldOffset=0x0)\u0022 P-INDEP\n ;  V41 tmp36        [V41    ] (  5,  3   )     ref  -\u003E  [rbp-0x38]  do-not-enreg[X] addr-exposed \u0022field V02._activityAdapter (fldOffset=0x0)\u0022 P-DEP\n ;  V42 tmp37        [V42    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] addr-exposed \u0022field V02._suppressNestedClientActivities (fldOffset=0x8)\u0022 P-DEP\n ;  V43 tmp38        [V43    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x2F]  do-not-enreg[X] addr-exposed \u0022field V02.\u003CIsEnabled\u003Ek__BackingField (fldOffset=0x9)\u0022 P-DEP\n-;  V44 tmp39        [V44,T24] (  3,  2   )     ref  -\u003E  r14         \u0022field V08._activityAdapter (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp40        [V45,T25] (  3,  2   )   ubyte  -\u003E  r13         \u0022field V08._suppressNestedClientActivities (fldOffset=0x8)\u0022 P-INDEP\n-;  V46 tmp41        [V46,T26] (  3,  2   )   ubyte  -\u003E  r12         \u0022field V08.\u003CIsEnabled\u003Ek__BackingField (fldOffset=0x9)\u0022 P-INDEP\n\u002B;  V44 tmp39        [V44,T23] (  3,  2   )     ref  -\u003E  r14         \u0022field V08._activityAdapter (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp40        [V45,T24] (  3,  2   )   ubyte  -\u003E  r13         \u0022field V08._suppressNestedClientActivities (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V46 tmp41        [V46,T25] (  3,  2   )   ubyte  -\u003E  r12         \u0022field V08.\u003CIsEnabled\u003Ek__BackingField (fldOffset=0x9)\u0022 P-INDEP\n ;  V47 tmp42        [V47    ] (  3,  1.50)     ref  -\u003E  [rbp-0x48]  do-not-enreg[X] addr-exposed \u0022field V10._activityAdapter (fldOffset=0x0)\u0022 P-DEP\n ;  V48 tmp43        [V48    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] addr-exposed \u0022field V10._suppressNestedClientActivities (fldOffset=0x8)\u0022 P-DEP\n ;  V49 tmp44        [V49    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x3F]  do-not-enreg[X] addr-exposed \u0022field V10.\u003CIsEnabled\u003Ek__BackingField (fldOffset=0x9)\u0022 P-DEP\n@@ -69,17 \u002B69,17 @@\n ;* V58 tmp53        [V58    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V26.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V59 tmp54        [V59    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V29.key (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n ;  V65 tmp60        [V65,T16] (  3,  3   )   byref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V66 tmp61        [V66,T17] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V67 tmp62        [V67,T18] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V68 tmp63        [V68,T30] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V68 tmp63        [V68,T29] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;  V69 tmp64        [V69,T19] (  3,  3   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n-;  V70 cse0         [V70,T11] (  4,  3   )     ref  -\u003E  rsi         \u0022CSE #01: moderate\u0022\n-;  V71 cse1         [V71,T33] (  3,  1.50)     ref  -\u003E  r14         \u0022CSE #03: moderate\u0022\n\u002B;  V70 cse0         [V70,T10] (  4,  3   )     ref  -\u003E  rsi         \u0022CSE #01: moderate\u0022\n\u002B;  V71 cse1         [V71,T31] (  3,  1.50)     ref  -\u003E  r14         \u0022CSE #03: moderate\u0022\n ;\n ; Lcl frame size = 56\n \n@@ -150,7 \u002B150,7 @@ G_M22343_IG04:\n        mov      gword ptr [rbp-0x58], rax\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M22343_IG30\n\u002B       je       G_M22343_IG28\n \t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 5.00\n G_M22343_IG05:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.List\u00601[System.Collections.Generic.KeyValuePair\u00602[System.String,System.Object]]:s_emptyArray\n@@ -202,10 \u002B202,10 @@ G_M22343_IG07:\n G_M22343_IG08:\n        mov      r13, gword ptr [r13\u002B0x08]\n        cmp      eax, dword ptr [r13\u002B0x10]\n-       jae      G_M22343_IG31\n\u002B       jae      G_M22343_IG29\n        mov      rdi, gword ptr [r13\u002B0x08]\n        cmp      eax, dword ptr [rdi\u002B0x08]\n-       jae      G_M22343_IG32\n\u002B       jae      G_M22343_IG30\n        mov      esi, eax\n        shl      rsi, 4\n        lea      rdi, bword ptr [rdi\u002Brsi\u002B0x10]\n@@ -269,7 \u002B269,7 @@ G_M22343_IG18:\n        mov      rax, qword ptr [rax\u002B0x58]\n        call     [rax\u002B0x10]Azure.ResourceManager.Resources.SubscriptionResource:get_HasData():bool:this\n        test     eax, eax\n-       jne      G_M22343_IG23\n\u002B       jne      G_M22343_IG21\n        mov      rdi, gword ptr [rbx\u002B0x10]\n        mov      rsi, r15\n        mov      rax, qword ptr [rdi]\n@@ -282,8 \u002B282,8 @@ G_M22343_IG18:\n        mov      rsi, rax\n        lea      rdi, bword ptr [rbx\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M22343_IG22\n-\t\t\t\t\t\t;; size=81 bbWeight=0.50 PerfScore 13.50\n\u002B       jmp      SHORT G_M22343_IG20\n\u002B\t\t\t\t\t\t;; size=78 bbWeight=0.50 PerfScore 13.50\n G_M22343_IG19:\n        mov      rdi, rbx\n        mov      rax, qword ptr [rbx]\n@@ -294,49 \u002B294,32 @@ G_M22343_IG19:\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x18]Azure.ResourceManager.Resources.SubscriptionCollection:GetAll(System.Threading.CancellationToken):Azure.Pageable\u00601[Azure.ResourceManager.Resources.SubscriptionResource]:this\n-       mov      r15, rax\n-       test     r15, r15\n-       je       SHORT G_M22343_IG24\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[Azure.ResourceManager.Resources.SubscriptionResource]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M22343_IG20\n-       lea      rsi, [rbp-0x50]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M22343_IG21\n-\t\t\t\t\t\t;; size=86 bbWeight=0.50 PerfScore 15.50\n-G_M22343_IG20:\n\u002B       je       SHORT G_M22343_IG22\n        lea      rdx, [rbp-0x50]\n-       mov      rsi, r15\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[Azure.ResourceManager.Resources.SubscriptionResource](System.Collections.Generic.IEnumerable\u00601[Azure.ResourceManager.Resources.SubscriptionResource],byref):Azure.ResourceManager.Resources.SubscriptionResource\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M22343_IG21:\n        lea      rdi, bword ptr [rbx\u002B0x10]\n        mov      rsi, rax\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=12 bbWeight=0.50 PerfScore 0.88\n-G_M22343_IG22:\n\u002B\t\t\t\t\t\t;; size=75 bbWeight=0.50 PerfScore 11.00\n\u002BG_M22343_IG20:\n        cmp      gword ptr [rbx\u002B0x10], 0\n-       je       SHORT G_M22343_IG25\n\u002B       je       SHORT G_M22343_IG23\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.50\n-G_M22343_IG23:\n\u002BG_M22343_IG21:\n        mov      rbx, gword ptr [rbx\u002B0x10]\n-       jmp      SHORT G_M22343_IG26\n\u002B       jmp      SHORT G_M22343_IG24\n \t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 4.00\n-G_M22343_IG24:\n\u002BG_M22343_IG22:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M22343_IG25:\n\u002BG_M22343_IG23:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -348,19 \u002B331,19 @@ G_M22343_IG25:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M22343_IG26:\n\u002BG_M22343_IG24:\n        mov      rdi, gword ptr [rbp-0x38]\n        test     rdi, rdi\n-       je       SHORT G_M22343_IG28\n\u002B       je       SHORT G_M22343_IG26\n \t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 2.25\n-G_M22343_IG27:\n\u002BG_M22343_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for Azure.Core.Pipeline.DiagnosticScope\u002BActivityAdapter:Dispose():this\n        call     [rax]Azure.Core.Pipeline.DiagnosticScope\u002BActivityAdapter:Dispose():this\n \t\t\t\t\t\t;; size=12 bbWeight=0.50 PerfScore 1.62\n-G_M22343_IG28:\n\u002BG_M22343_IG26:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M22343_IG29:\n\u002BG_M22343_IG27:\n        add      rsp, 56\n        pop      rbx\n        pop      r12\n@@ -370,25 \u002B353,25 @@ G_M22343_IG29:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M22343_IG30:\n\u002BG_M22343_IG28:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.Collections.Generic.KeyValuePair\u00602[System.String,System.Object]]\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rcx]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M22343_IG05\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M22343_IG31:\n\u002BG_M22343_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M22343_IG32:\n\u002BG_M22343_IG30:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n-G_M22343_IG33:\n\u002BG_M22343_IG31:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M22343_IG34:\n\u002BG_M22343_IG32:\n        mov      rsi, rdi\n        lea      rdi, [rbp-0x38]\n        mov      rax, 0xD1FFAB1E      ; code for Azure.Core.Pipeline.DiagnosticScope:Failed(System.Exception):this\n@@ -396,23 \u002B379,23 @@ G_M22343_IG34:\n        call     CORINFO_HELP_RETHROW\n        int3     \n \t\t\t\t\t\t;; size=25 bbWeight=0 PerfScore 0.00\n-G_M22343_IG35:\n\u002BG_M22343_IG33:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M22343_IG36:\n\u002BG_M22343_IG34:\n        mov      rdi, gword ptr [rbp-0x38]\n        test     rdi, rdi\n-       je       SHORT G_M22343_IG37\n\u002B       je       SHORT G_M22343_IG35\n        mov      rax, 0xD1FFAB1E      ; code for Azure.Core.Pipeline.DiagnosticScope\u002BActivityAdapter:Dispose():this\n        call     [rax]Azure.Core.Pipeline.DiagnosticScope\u002BActivityAdapter:Dispose():this\n \t\t\t\t\t\t;; size=21 bbWeight=0 PerfScore 0.00\n-G_M22343_IG37:\n\u002BG_M22343_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M22343_IG38:\n\u002BG_M22343_IG36:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1072, prolog size 41, PerfScore 131.71, instruction count 254, allocated bytes for code 1072 (MethodHash=c3daa8b8) for method Azure.ResourceManager.ArmClient:GetDefaultSubscription(System.Threading.CancellationToken):Azure.ResourceManager.Resources.SubscriptionResource:this (FullOpts)\n\u002B; Total bytes of code 1017, prolog size 41, PerfScore 124.21, instruction count 241, allocated bytes for code 1017 (MethodHash=c3daa8b8) for method Azure.ResourceManager.ArmClient:GetDefaultSubscription(System.Threading.CancellationToken):Azure.ResourceManager.Resources.SubscriptionResource:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1072,"DiffBytes":1017},{"Assembly":"Azure.Storage.Blobs.dasm","Method":"Azure.Storage.Shared.PooledMemoryStream:GetLatestBufferWithAvailableSpaceOrDefault():Azure.Storage.Shared.PooledMemoryStream\u002BBufferPartition:this (FullOpts)","Category":"improvement","Description":"152 -\u003E 100 bytes (-52)","ExtraInfo":null,"Diff":"@@ -1,89 \u002B1,67 @@\n ; Assembly listing for method Azure.Storage.Shared.PooledMemoryStream:GetLatestBufferWithAvailableSpaceOrDefault():Azure.Storage.Shared.PooledMemoryStream\u002BBufferPartition:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 4 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T01] (  3,  3   )     ref  -\u003E  rdi         this class-hnd single-def \u003CAzure.Storage.Shared.PooledMemoryStream\u003E\n ;* V01 loc0         [V01    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CAzure.Storage.Shared.PooledMemoryStream\u002BBufferPartition\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V03 tmp1         [V03    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022impAppendStmt\u0022\n-;  V04 tmp2         [V04,T00] (  4,  7   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Azure.Storage.Shared.PooledMemoryStream\u002BBufferPartition]\u003E\n-;  V05 tmp3         [V05    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x10]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V06 tmp4         [V06,T02] (  6,  3.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CAzure.Storage.Shared.PooledMemoryStream\u002BBufferPartition\u003E\n-;  V07 tmp5         [V07,T03] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Azure.Storage.Shared.PooledMemoryStream\u002BBufferPartition]\u003E\n\u002B;  V04 tmp2         [V04,T00] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Azure.Storage.Shared.PooledMemoryStream\u002BBufferPartition]\u003E\n\u002B;  V05 tmp3         [V05    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x08]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V06 tmp4         [V06,T02] (  5,  3.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CAzure.Storage.Shared.PooledMemoryStream\u002BBufferPartition\u003E\n\u002B;* V07 tmp5         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Azure.Storage.Shared.PooledMemoryStream\u002BBufferPartition]\u003E\n ;\n-; Lcl frame size = 8\n\u002B; Lcl frame size = 16\n \n G_M14186_IG01:\n        push     rbp\n-       push     rbx\n-       push     rax\n\u002B       sub      rsp, 16\n        lea      rbp, [rsp\u002B0x10]\n        xor      eax, eax\n-       mov      qword ptr [rbp-0x10], rax\n-\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.75\n\u002B       mov      qword ptr [rbp-0x08], rax\n\u002B\t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 3.00\n G_M14186_IG02:\n-       mov      rbx, gword ptr [rdi\u002B0x18]\n-       test     rbx, rbx\n-       je       SHORT G_M14186_IG10\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[Azure.Storage.Shared.PooledMemoryStream\u002BBufferPartition]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M14186_IG04\n-\t\t\t\t\t\t;; size=39 bbWeight=1 PerfScore 8.25\n-G_M14186_IG03:\n-       lea      rsi, [rbp-0x10]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M14186_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M14186_IG04:\n-       lea      rdx, [rbp-0x10]\n-       mov      rsi, rbx\n\u002B       mov      rsi, gword ptr [rdi\u002B0x18]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M14186_IG07\n\u002B       lea      rdx, [rbp-0x08]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[Azure.Storage.Shared.PooledMemoryStream\u002BBufferPartition](System.Collections.Generic.IEnumerable\u00601[Azure.Storage.Shared.PooledMemoryStream\u002BBufferPartition],byref):Azure.Storage.Shared.PooledMemoryStream\u002BBufferPartition\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M14186_IG05:\n        test     rax, rax\n-       je       SHORT G_M14186_IG08\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M14186_IG06:\n\u002B       je       SHORT G_M14186_IG05\n\u002B\t\t\t\t\t\t;; size=40 bbWeight=1 PerfScore 8.50\n\u002BG_M14186_IG03:\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rcx, gword ptr [rax\u002B0x08]\n        cmp      edi, dword ptr [rcx\u002B0x08]\n-       jge      SHORT G_M14186_IG08\n\u002B       jge      SHORT G_M14186_IG05\n \t\t\t\t\t\t;; size=12 bbWeight=0.50 PerfScore 3.50\n-G_M14186_IG07:\n-       add      rsp, 8\n-       pop      rbx\n\u002BG_M14186_IG04:\n\u002B       add      rsp, 16\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M14186_IG08:\n\u002B\t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 0.88\n\u002BG_M14186_IG05:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M14186_IG09:\n-       add      rsp, 8\n-       pop      rbx\n\u002BG_M14186_IG06:\n\u002B       add      rsp, 16\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M14186_IG10:\n\u002B\t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 0.88\n\u002BG_M14186_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 152, prolog size 14, PerfScore 27.12, instruction count 45, allocated bytes for code 152 (MethodHash=a508c895) for method Azure.Storage.Shared.PooledMemoryStream:GetLatestBufferWithAvailableSpaceOrDefault():Azure.Storage.Shared.PooledMemoryStream\u002BBufferPartition:this (FullOpts)\n\u002B; Total bytes of code 100, prolog size 16, PerfScore 16.88, instruction count 29, allocated bytes for code 100 (MethodHash=a508c895) for method Azure.Storage.Shared.PooledMemoryStream:GetLatestBufferWithAvailableSpaceOrDefault():Azure.Storage.Shared.PooledMemoryStream\u002BBufferPartition:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":152,"DiffBytes":100},{"Assembly":"Azure.Storage.Files.Shares.dasm","Method":"Azure.Storage.Shared.PooledMemoryStream:GetLatestBufferWithAvailableSpaceOrDefault():Azure.Storage.Shared.PooledMemoryStream\u002BBufferPartition:this (FullOpts)","Category":"improvement","Description":"152 -\u003E 100 bytes (-52)","ExtraInfo":null,"Diff":"@@ -1,89 \u002B1,67 @@\n ; Assembly listing for method Azure.Storage.Shared.PooledMemoryStream:GetLatestBufferWithAvailableSpaceOrDefault():Azure.Storage.Shared.PooledMemoryStream\u002BBufferPartition:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 4 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T01] (  3,  3   )     ref  -\u003E  rdi         this class-hnd single-def \u003CAzure.Storage.Shared.PooledMemoryStream\u003E\n ;* V01 loc0         [V01    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CAzure.Storage.Shared.PooledMemoryStream\u002BBufferPartition\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V03 tmp1         [V03    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022impAppendStmt\u0022\n-;  V04 tmp2         [V04,T00] (  4,  7   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Azure.Storage.Shared.PooledMemoryStream\u002BBufferPartition]\u003E\n-;  V05 tmp3         [V05    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x10]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V06 tmp4         [V06,T02] (  6,  3.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CAzure.Storage.Shared.PooledMemoryStream\u002BBufferPartition\u003E\n-;  V07 tmp5         [V07,T03] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Azure.Storage.Shared.PooledMemoryStream\u002BBufferPartition]\u003E\n\u002B;  V04 tmp2         [V04,T00] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Azure.Storage.Shared.PooledMemoryStream\u002BBufferPartition]\u003E\n\u002B;  V05 tmp3         [V05    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x08]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V06 tmp4         [V06,T02] (  5,  3.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CAzure.Storage.Shared.PooledMemoryStream\u002BBufferPartition\u003E\n\u002B;* V07 tmp5         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Azure.Storage.Shared.PooledMemoryStream\u002BBufferPartition]\u003E\n ;\n-; Lcl frame size = 8\n\u002B; Lcl frame size = 16\n \n G_M14186_IG01:\n        push     rbp\n-       push     rbx\n-       push     rax\n\u002B       sub      rsp, 16\n        lea      rbp, [rsp\u002B0x10]\n        xor      eax, eax\n-       mov      qword ptr [rbp-0x10], rax\n-\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.75\n\u002B       mov      qword ptr [rbp-0x08], rax\n\u002B\t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 3.00\n G_M14186_IG02:\n-       mov      rbx, gword ptr [rdi\u002B0x18]\n-       test     rbx, rbx\n-       je       SHORT G_M14186_IG10\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[Azure.Storage.Shared.PooledMemoryStream\u002BBufferPartition]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M14186_IG04\n-\t\t\t\t\t\t;; size=39 bbWeight=1 PerfScore 8.25\n-G_M14186_IG03:\n-       lea      rsi, [rbp-0x10]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M14186_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M14186_IG04:\n-       lea      rdx, [rbp-0x10]\n-       mov      rsi, rbx\n\u002B       mov      rsi, gword ptr [rdi\u002B0x18]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M14186_IG07\n\u002B       lea      rdx, [rbp-0x08]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[Azure.Storage.Shared.PooledMemoryStream\u002BBufferPartition](System.Collections.Generic.IEnumerable\u00601[Azure.Storage.Shared.PooledMemoryStream\u002BBufferPartition],byref):Azure.Storage.Shared.PooledMemoryStream\u002BBufferPartition\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M14186_IG05:\n        test     rax, rax\n-       je       SHORT G_M14186_IG08\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M14186_IG06:\n\u002B       je       SHORT G_M14186_IG05\n\u002B\t\t\t\t\t\t;; size=40 bbWeight=1 PerfScore 8.50\n\u002BG_M14186_IG03:\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rcx, gword ptr [rax\u002B0x08]\n        cmp      edi, dword ptr [rcx\u002B0x08]\n-       jge      SHORT G_M14186_IG08\n\u002B       jge      SHORT G_M14186_IG05\n \t\t\t\t\t\t;; size=12 bbWeight=0.50 PerfScore 3.50\n-G_M14186_IG07:\n-       add      rsp, 8\n-       pop      rbx\n\u002BG_M14186_IG04:\n\u002B       add      rsp, 16\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M14186_IG08:\n\u002B\t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 0.88\n\u002BG_M14186_IG05:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M14186_IG09:\n-       add      rsp, 8\n-       pop      rbx\n\u002BG_M14186_IG06:\n\u002B       add      rsp, 16\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M14186_IG10:\n\u002B\t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 0.88\n\u002BG_M14186_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 152, prolog size 14, PerfScore 27.12, instruction count 45, allocated bytes for code 152 (MethodHash=a508c895) for method Azure.Storage.Shared.PooledMemoryStream:GetLatestBufferWithAvailableSpaceOrDefault():Azure.Storage.Shared.PooledMemoryStream\u002BBufferPartition:this (FullOpts)\n\u002B; Total bytes of code 100, prolog size 16, PerfScore 16.88, instruction count 29, allocated bytes for code 100 (MethodHash=a508c895) for method Azure.Storage.Shared.PooledMemoryStream:GetLatestBufferWithAvailableSpaceOrDefault():Azure.Storage.Shared.PooledMemoryStream\u002BBufferPartition:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":152,"DiffBytes":100},{"Assembly":"Castle.Windsor.dasm","Method":"Castle.Windsor.Proxy.DefaultProxyFactory:Create(Castle.MicroKernel.IKernel,System.Object,Castle.Core.ComponentModel,Castle.MicroKernel.Context.CreationContext,System.Object[]):System.Object:this (FullOpts)","Category":"improvement","Description":"1,153 -\u003E 1,035 bytes (-118)","ExtraInfo":null,"Diff":"@@ -15,48 \u002B15,48 @@\n ;  V04 arg4         [V04,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CCastle.MicroKernel.Context.CreationContext\u003E\n ;  V05 arg5         [V05,T06] (  4,  3.50)     ref  -\u003E  r12         class-hnd single-def \u003CSystem.Object[]\u003E\n ;  V06 loc0         [V06,T09] (  6,  4   )     ref  -\u003E  r12         class-hnd \u003CSystem.Object\u003E\n-;  V07 loc1         [V07,T14] (  5,  3   )     ref  -\u003E  [rbp-0x50]  class-hnd spill-single-def \u003CCastle.DynamicProxy.IInterceptor[]\u003E\n\u002B;  V07 loc1         [V07,T12] (  5,  3   )     ref  -\u003E  [rbp-0x50]  class-hnd spill-single-def \u003CCastle.DynamicProxy.IInterceptor[]\u003E\n ;  V08 loc2         [V08,T10] (  5,  4   )     ref  -\u003E  [rbp-0x58]  class-hnd spill-single-def \u003CCastle.MicroKernel.Proxy.ProxyOptions\u003E\n ;  V09 loc3         [V09,T03] (  9,  6.50)     ref  -\u003E  r13         class-hnd single-def \u003CCastle.DynamicProxy.ProxyGenerationOptions\u003E\n-;  V10 loc4         [V10,T26] (  3,  2   )     ref  -\u003E  [rbp-0x60]  class-hnd spill-single-def \u003CSystem.Type[]\u003E\n\u002B;  V10 loc4         [V10,T24] (  3,  2   )     ref  -\u003E  [rbp-0x60]  class-hnd spill-single-def \u003CSystem.Type[]\u003E\n ;* V11 loc5         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Type\u003E\n-;  V12 loc6         [V12,T21] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Type[]\u003E\n-;  V13 loc7         [V13,T34] (  3,  1.50)     ref  -\u003E  [rbp-0x68]  class-hnd \u003CSystem.Type\u003E\n-;  V14 loc8         [V14,T38] (  2,  1   )     ref  -\u003E  rdx         class-hnd single-def \u003CSystem.Type[]\u003E\n\u002B;  V12 loc6         [V12,T20] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Type[]\u003E\n\u002B;  V13 loc7         [V13,T32] (  3,  1.50)     ref  -\u003E  [rbp-0x68]  class-hnd \u003CSystem.Type\u003E\n\u002B;  V14 loc8         [V14,T35] (  2,  1   )     ref  -\u003E  rdx         class-hnd single-def \u003CSystem.Type[]\u003E\n ;# V15 OutArgs      [V15    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V16 tmp1         [V16,T27] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Type,bool]\u003E\n\u002B;  V16 tmp1         [V16,T25] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Type,bool]\u003E\n ;  V17 tmp2         [V17,T11] (  4,  4   )     ref  -\u003E  [rbp-0x70]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Type]\u003E\n ;* V18 tmp3         [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp4         [V19,T22] (  4,  2   )     ref  -\u003E  [rbp-0x78] \n\u002B;  V19 tmp4         [V19,T21] (  4,  2   )     ref  -\u003E  [rbp-0x78] \n ;  V20 tmp5         [V20,T07] (  5,  5   )     ref  -\u003E  [rbp-0x80]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Type,bool]\u003E\n-;  V21 tmp6         [V21,T12] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Type]\u003E\n-;  V22 tmp7         [V22    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V21 tmp6         [V21,T13] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Type]\u003E\n\u002B;  V22 tmp7         [V22    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V23 tmp8         [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V24 tmp9         [V24,T20] (  5,  2.50)     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Type\u003E\n-;  V25 tmp10        [V25,T23] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Type]\u003E\n-;  V26 tmp11        [V26,T13] (  4,  4   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Type]\u003E\n-;  V27 tmp12        [V27    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V24 tmp9         [V24,T22] (  4,  2   )     ref  -\u003E  r12         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Type\u003E\n\u002B;* V25 tmp10        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Type]\u003E\n\u002B;  V26 tmp11        [V26,T14] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Type]\u003E\n\u002B;  V27 tmp12        [V27    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V28 tmp13        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V29 tmp14        [V29,T35] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Type\u003E\n-;  V30 tmp15        [V30,T24] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Type]\u003E\n-;  V31 tmp16        [V31,T28] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CCastle.Windsor.Proxy.DefaultProxyFactory\u002B\u003C\u003Ec\u003E\n-;  V32 tmp17        [V32,T36] (  3,  1.50)     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Type]\u003E\n\u002B;  V29 tmp14        [V29,T36] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Type\u003E\n\u002B;* V30 tmp15        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Type]\u003E\n\u002B;  V31 tmp16        [V31,T26] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CCastle.Windsor.Proxy.DefaultProxyFactory\u002B\u003C\u003Ec\u003E\n\u002B;  V32 tmp17        [V32,T33] (  3,  1.50)     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Type]\u003E\n ;* V33 tmp18        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Type]\u003E\n ;* V34 tmp19        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[System.Type,bool]\u003E\n-;* V35 tmp20        [V35,T39] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V36 tmp21        [V36,T37] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Type[]\u003E\n-;  V37 tmp22        [V37,T04] (  6,  6   )     ref  -\u003E  [rbp-0x90]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Enumerable\u002B\u003CSkipWhileIterator\u003Ed__290\u00601[System.Type]\u003E\n-;  V38 tmp23        [V38,T29] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;* V35 tmp20        [V35,T37] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V36 tmp21        [V36,T34] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Type[]\u003E\n\u002B;  V37 tmp22        [V37,T04] (  6,  6   )     ref  -\u003E  [rbp-0x88]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Enumerable\u002B\u003CSkipWhileIterator\u003Ed__290\u00601[System.Type]\u003E\n\u002B;  V38 tmp23        [V38,T27] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;  V39 tmp24        [V39,T15] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V40 tmp25        [V40,T30] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V41 tmp26        [V41,T31] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V40 tmp25        [V40,T28] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V41 tmp26        [V41,T29] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;  V42 tmp27        [V42,T16] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V43 tmp28        [V43,T17] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V44 tmp29        [V44,T18] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V45 cse0         [V45,T19] (  3,  3   )    long  -\u003E  [rbp-0x40]  spill-single-def \u0022CSE #11: moderate\u0022\n-;  V46 cse1         [V46,T25] (  4,  2   )     ref  -\u003E  rax         \u0022CSE #03: conservative\u0022\n-;  V47 rat0         [V47,T32] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V48 rat1         [V48,T33] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V45 cse0         [V45,T19] (  3,  3   )    long  -\u003E  [rbp-0x40]  spill-single-def \u0022CSE #07: moderate\u0022\n\u002B;  V46 cse1         [V46,T23] (  4,  2   )     ref  -\u003E  rax         \u0022CSE #03: moderate\u0022\n\u002B;  V47 rat0         [V47,T30] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V48 rat1         [V48,T31] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 104\n \n@@ -118,57 \u002B118,39 @@ G_M56478_IG02:\n        cmp      dword ptr [rdi], edi\n        call     [rcx]Castle.Core.ComponentModel:get_HasClassServices():bool:this\n        test     eax, eax\n-       je       G_M56478_IG13\n\u002B       je       G_M56478_IG11\n \t\t\t\t\t\t;; size=157 bbWeight=1 PerfScore 37.75\n G_M56478_IG03:\n        mov      rax, gword ptr [rbx\u002B0x80]\n        test     rax, rax\n... diff truncated; middle omitted ...\n        mov      r8, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFARRAY\n        call     [r8]CORINFO_HELP_ISINSTANCEOFARRAY\n        test     rax, rax\n-       je       SHORT G_M56478_IG10\n\u002B       je       SHORT G_M56478_IG08\n        cmp      dword ptr [rax\u002B0x08], 0\n-       je       SHORT G_M56478_IG11\n\u002B       je       SHORT G_M56478_IG09\n \t\t\t\t\t\t;; size=54 bbWeight=0.50 PerfScore 5.62\n-G_M56478_IG10:\n\u002BG_M56478_IG08:\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002B\u003CSkipWhileIterator\u003Ed__290\u00601[System.Type]\n        call     CORINFO_HELP_NEWSFAST\n        mov      rsi, rax\n-       mov      gword ptr [rbp-0x90], rsi\n\u002B       mov      gword ptr [rbp-0x88], rsi\n        mov      dword ptr [rsi\u002B0x38], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rsi, gword ptr [rbp-0x90]\n\u002B       mov      rsi, gword ptr [rbp-0x88]\n        mov      dword ptr [rsi\u002B0x3C], edi\n        lea      rdi, bword ptr [rsi\u002B0x18]\n        mov      rsi, gword ptr [rbp-0x70]\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rsi, gword ptr [rbp-0x90]\n\u002B       mov      rsi, gword ptr [rbp-0x88]\n        lea      rdi, bword ptr [rsi\u002B0x28]\n        mov      rsi, gword ptr [rbp-0x78]\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rsi, gword ptr [rbp-0x90]\n-       jmp      SHORT G_M56478_IG12\n\u002B       mov      rsi, gword ptr [rbp-0x88]\n\u002B       jmp      SHORT G_M56478_IG10\n \t\t\t\t\t\t;; size=113 bbWeight=0.50 PerfScore 10.12\n-G_M56478_IG11:\n\u002BG_M56478_IG09:\n        mov      rsi, 0xD1FFAB1E      ; const ptr\n        mov      rsi, gword ptr [rsi]\n \t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 1.12\n-G_M56478_IG12:\n\u002BG_M56478_IG10:\n        mov      rdx, gword ptr [rbp-0x60]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:Concat[System.Type](System.Collections.Generic.IEnumerable\u00601[System.Type],System.Collections.Generic.IEnumerable\u00601[System.Type]):System.Collections.Generic.IEnumerable\u00601[System.Type]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:Concat[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.Collections.Generic.IEnumerable\u00601[System.__Canon]\n@@ -247,37 \u002B229,19 @@ G_M56478_IG12:\n        mov      rax, qword ptr [rax\u002B0x68]\n        call     [rax\u002B0x20]Castle.DynamicProxy.ProxyGenerator:CreateClassProxy(System.Type,System.Type[],Castle.DynamicProxy.ProxyGenerationOptions,System.Object[],Castle.DynamicProxy.IInterceptor[]):System.Object:this\n        mov      r12, rax\n-       jmp      G_M56478_IG18\n\u002B       jmp      G_M56478_IG14\n \t\t\t\t\t\t;; size=90 bbWeight=0.50 PerfScore 11.12\n-G_M56478_IG13:\n-       mov      r12, gword ptr [rbx\u002B0x20]\n-       test     r12, r12\n-       je       G_M56478_IG22\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Type]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M56478_IG14\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      r12, rax\n-       jmp      SHORT G_M56478_IG15\n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 9.12\n-G_M56478_IG14:\n\u002BG_M56478_IG11:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x20]\n\u002B       test     rsi, rsi\n\u002B       je       G_M56478_IG18\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Type](System.Collections.Generic.IEnumerable\u00601[System.Type],byref):System.Type\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        mov      r12, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M56478_IG15:\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M56478_IG23\n\u002B       je       G_M56478_IG19\n        mov      rsi, gword ptr [rbx\u002B0x20]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:Skip[System.Type](System.Collections.Generic.IEnumerable\u00601[System.Type],int):System.Collections.Generic.IEnumerable\u00601[System.Type]\n        mov      edx, 1\n@@ -294,9 \u002B258,9 @@ G_M56478_IG15:\n        call     [rax]System.Linq.Enumerable:ToArray[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.__Canon[]\n        mov      rdi, gword ptr [rbp-0x58]\n        cmp      byte  ptr [rdi\u002B0x31], 0\n-       jne      SHORT G_M56478_IG17\n\u002B       jne      SHORT G_M56478_IG13\n        cmp      byte  ptr [rdi\u002B0x30], 0\n-       jne      SHORT G_M56478_IG16\n\u002B       jne      SHORT G_M56478_IG12\n        mov      rdi, gword ptr [r15\u002B0x10]\n        mov      rsi, r12\n        mov      rdx, rax\n@@ -307,9 \u002B271,9 @@ G_M56478_IG15:\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x20]Castle.DynamicProxy.ProxyGenerator:CreateInterfaceProxyWithTarget(System.Type,System.Type[],System.Object,Castle.DynamicProxy.ProxyGenerationOptions,Castle.DynamicProxy.IInterceptor[]):System.Object:this\n        mov      r12, rax\n-       jmp      SHORT G_M56478_IG18\n-\t\t\t\t\t\t;; size=147 bbWeight=0.50 PerfScore 18.62\n-G_M56478_IG16:\n\u002B       jmp      SHORT G_M56478_IG14\n\u002B\t\t\t\t\t\t;; size=189 bbWeight=0.50 PerfScore 22.38\n\u002BG_M56478_IG12:\n        mov      rdi, gword ptr [r15\u002B0x10]\n        mov      rsi, r12\n        mov      rdx, rax\n@@ -320,9 \u002B284,9 @@ G_M56478_IG16:\n        mov      rax, qword ptr [rax\u002B0x50]\n        call     [rax\u002B0x10]Castle.DynamicProxy.ProxyGenerator:CreateInterfaceProxyWithTargetInterface(System.Type,System.Type[],System.Object,Castle.DynamicProxy.ProxyGenerationOptions,Castle.DynamicProxy.IInterceptor[]):System.Object:this\n        mov      r12, rax\n-       jmp      SHORT G_M56478_IG18\n\u002B       jmp      SHORT G_M56478_IG14\n \t\t\t\t\t\t;; size=36 bbWeight=0.50 PerfScore 7.00\n-G_M56478_IG17:\n\u002BG_M56478_IG13:\n        mov      rdi, gword ptr [r15\u002B0x10]\n        mov      rsi, r12\n        mov      rdx, rax\n@@ -333,7 \u002B297,7 @@ G_M56478_IG17:\n        call     [rax\u002B0x10]Castle.DynamicProxy.ProxyGenerator:CreateInterfaceProxyWithoutTarget(System.Type,System.Type[],Castle.DynamicProxy.ProxyGenerationOptions,Castle.DynamicProxy.IInterceptor[]):System.Object:this\n        mov      r12, rax\n \t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 5.50\n-G_M56478_IG18:\n\u002BG_M56478_IG14:\n        mov      rdi, r15\n        mov      rsi, r12\n        mov      rdx, r13\n@@ -342,18 \u002B306,18 @@ G_M56478_IG18:\n        mov      rbx, qword ptr [rbp-0x40]\n        call     [rbx\u002B0x08]Castle.Windsor.Proxy.DefaultProxyFactory:CustomizeProxy(System.Object,Castle.DynamicProxy.ProxyGenerationOptions,Castle.MicroKernel.IKernel,Castle.Core.ComponentModel):this\n        cmp      gword ptr [r13\u002B0x20], 0\n-       je       SHORT G_M56478_IG20\n\u002B       je       SHORT G_M56478_IG16\n \t\t\t\t\t\t;; size=29 bbWeight=1 PerfScore 8.25\n-G_M56478_IG19:\n\u002BG_M56478_IG15:\n        mov      rsi, gword ptr [r13\u002B0x20]\n        mov      rdi, r14\n        mov      r11, 0xD1FFAB1E      ; code for Castle.MicroKernel.IKernel:ReleaseComponent(System.Object):this\n        call     [r11]Castle.MicroKernel.IKernel:ReleaseComponent(System.Object):this\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 2.75\n-G_M56478_IG20:\n\u002BG_M56478_IG16:\n        mov      rax, r12\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M56478_IG21:\n\u002BG_M56478_IG17:\n        add      rsp, 104\n        pop      rbx\n        pop      r12\n@@ -363,17 \u002B327,17 @@ G_M56478_IG21:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M56478_IG22:\n\u002BG_M56478_IG18:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M56478_IG23:\n\u002BG_M56478_IG19:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1153, prolog size 32, PerfScore 162.12, instruction count 268, allocated bytes for code 1153 (MethodHash=5dac2361) for method Castle.Windsor.Proxy.DefaultProxyFactory:Create(Castle.MicroKernel.IKernel,System.Object,Castle.Core.ComponentModel,Castle.MicroKernel.Context.CreationContext,System.Object[]):System.Object:this (FullOpts)\n\u002B; Total bytes of code 1035, prolog size 32, PerfScore 146.12, instruction count 240, allocated bytes for code 1035 (MethodHash=5dac2361) for method Castle.Windsor.Proxy.DefaultProxyFactory:Create(Castle.MicroKernel.IKernel,System.Object,Castle.Core.ComponentModel,Castle.MicroKernel.Context.CreationContext,System.Object[]):System.Object:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1153,"DiffBytes":1035},{"Assembly":"Castle.Windsor.dasm","Method":"Castle.MicroKernel.DefaultKernel:Castle.MicroKernel.IKernelInternal.LoadHandlerByName(System.String,System.Type,Castle.MicroKernel.Arguments):Castle.MicroKernel.IHandler:this (FullOpts)","Category":"same-size","Description":"470 -\u003E 470 bytes (0)","ExtraInfo":null,"Diff":"@@ -74,7 \u002B74,7 @@ G_M10418_IG04:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        cmp      byte  ptr [rax\u002B0x10], 0\n        jne      G_M10418_IG10\n        mov      qword ptr [rbp-0x38], rax\n@@ -176,7 \u002B176,7 @@ G_M10418_IG16:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n G_M10418_IG17:\n-       mov      edi, 70\n\u002B       mov      edi, 68\n        call     CORINFO_HELP_GETDYNAMIC_NONGCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED2\n        mov      r14, rax\n        mov      byte  ptr [r14\u002B0x10], 0","Truncated":true,"BaseBytes":470,"DiffBytes":470},{"Assembly":"ClosedXML.dasm","Method":"ClosedXML.Excel.XLWorkbook:LoadConditionalFormatting(DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatting,ClosedXML.Excel.XLWorksheet,System.Collections.Generic.Dictionary\u00602[int,DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat],ClosedXML.Excel.IO.LoadContext):this (FullOpts)","Category":"improvement","Description":"6,648 -\u003E 6,466 bytes (-182)","ExtraInfo":null,"Diff":"@@ -10,15 \u002B10,15 @@\n ;\n ;  V00 this         [V00,T50] (  5,  8   )     ref  -\u003E  r14         this class-hnd single-def \u003CClosedXML.Excel.XLWorkbook\u003E\n ;  V01 arg1         [V01,T49] (  6,  9.50)     ref  -\u003E  r15         class-hnd single-def \u003CDocumentFormat.OpenXml.Spreadsheet.ConditionalFormatting\u003E\n-;  V02 arg2         [V02,T141] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CClosedXML.Excel.XLWorksheet\u003E\n-;  V03 arg3         [V03,T30] (  7, 12   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Collections.Generic.Dictionary\u00602[int,DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat]\u003E\n-;  V04 arg4         [V04,T123] (  3,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CClosedXML.Excel.IO.LoadContext\u003E\n-;  V05 loc0         [V05,T31] (  7, 14   )     ref  -\u003E  [rbp-0x98]  class-hnd exact spill-single-def \u003CClosedXML.Excel.XLWorkbook\u002B\u003C\u003Ec__DisplayClass333_0\u003E\n\u002B;  V02 arg2         [V02,T137] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CClosedXML.Excel.XLWorksheet\u003E\n\u002B;  V03 arg3         [V03,T29] (  7, 12   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Collections.Generic.Dictionary\u00602[int,DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat]\u003E\n\u002B;  V04 arg4         [V04,T119] (  3,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CClosedXML.Excel.IO.LoadContext\u003E\n\u002B;  V05 loc0         [V05,T30] (  7, 14   )     ref  -\u003E  [rbp-0x98]  class-hnd exact spill-single-def \u003CClosedXML.Excel.XLWorkbook\u002B\u003C\u003Ec__DisplayClass333_0\u003E\n ;  V06 loc1         [V06,T55] (  6,  8.50)     ref  -\u003E  [rbp-0xA0]  class-hnd EH-live spill-single-def \u003CSystem.Collections.Generic.IEnumerator\u00601[DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRule]\u003E\n ;  V07 loc2         [V07,T01] ( 31, 72   )     ref  -\u003E  r12         class-hnd \u003CDocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRule\u003E\n ;* V08 loc3         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CClosedXML.Excel.XLConditionalFormat\u003E\n ;* V09 loc4         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CSystem.Func\u00602[DocumentFormat.OpenXml.StringValue,ClosedXML.Excel.XLRange]\u003E\n-;  V10 loc5         [V10,T15] (  8, 16   )     ref  -\u003E  [rbp-0xA8]  class-hnd spill-single-def \u003CSystem.Collections.Generic.List\u00601[ClosedXML.Excel.XLFormula]\u003E\n\u002B;  V10 loc5         [V10,T37] (  6, 12   )     ref  -\u003E  [rbp-0xA8]  class-hnd spill-single-def \u003CSystem.Collections.Generic.List\u00601[ClosedXML.Excel.XLFormula]\u003E\n ;* V11 loc6         [V11    ] (  0,  0   )     int  -\u003E  zero-ref   \n ;* V12 loc7         [V12    ] (  0,  0   )   ubyte  -\u003E  zero-ref   \n ;  V13 loc8         [V13,T51] (  5, 10   )     ref  -\u003E  [rbp-0xB0]  class-hnd spill-single-def \u003CSystem.Collections.Generic.List\u00601[ClosedXML.Excel.XLFormula]\u003E\n@@ -31,159 \u002B31,159 @@\n ;* V20 loc15        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CDocumentFormat.OpenXml.Spreadsheet.IconSet\u003E\n ;# V21 OutArgs      [V21    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V22 tmp1         [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CClosedXML.Excel.XLWorkbook\u002B\u003C\u003Ec__DisplayClass333_0\u003E\n-;  V23 tmp2         [V23,T27] (  2, 16   )     ref  -\u003E  rdx         class-hnd \u0022dup spill\u0022 \u003CSystem.Func\u00602[DocumentFormat.OpenXml.StringValue,ClosedXML.Excel.XLRange]\u003E\n-;  V24 tmp3         [V24,T28] (  2, 16   )     ref  -\u003E  [rbp-0xB8]  class-hnd spill-single-def \u0022impSpillLclRefs\u0022 \u003CSystem.Collections.Generic.ICollection\u00601[DocumentFormat.OpenXml.StringValue]\u003E\n\u002B;  V23 tmp2         [V23,T26] (  2, 16   )     ref  -\u003E  rdx         class-hnd \u0022dup spill\u0022 \u003CSystem.Func\u00602[DocumentFormat.OpenXml.StringValue,ClosedXML.Excel.XLRange]\u003E\n\u002B;  V24 tmp3         [V24,T27] (  2, 16   )     ref  -\u003E  [rbp-0xB8]  class-hnd spill-single-def \u0022impSpillLclRefs\u0022 \u003CSystem.Collections.Generic.ICollection\u00601[DocumentFormat.OpenXml.StringValue]\u003E\n ;* V25 tmp4         [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V26 tmp5         [V26,T37] (  4, 14   )     ref  -\u003E  [rbp-0xC0] \n\u002B;  V26 tmp5         [V26,T36] (  4, 14   )     ref  -\u003E  [rbp-0xC0] \n ;  V27 tmp6         [V27,T00] ( 37,164   )     ref  -\u003E  [rbp-0xC8]  class-hnd exact \u0022NewObj constructor temp\u0022 \u003CClosedXML.Excel.XLConditionalFormat\u003E\n ;* V28 tmp7         [V28    ] (  0,  0   )  struct ( 8) zero-ref    \u0022spilled call-like call argument\u0022 \u003CDocumentFormat.OpenXml.Spreadsheet.ConditionalFormatValues\u003E\n ;  V29 tmp8         [V29,T39] (  3, 12   )     ref  -\u003E  rax         class-hnd \u0022dup spill\u0022 \u003CDocumentFormat.OpenXml.Int32Value\u003E\n ;* V30 tmp9         [V30    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V31 tmp10        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V32 tmp11        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V33 tmp12        [V33,T138] (  3,  6   )     int  -\u003E  rax        \n\u002B;  V33 tmp12        [V33,T134] (  3,  6   )     int  -\u003E  rax        \n ;  V34 tmp13        [V34,T40] (  3, 12   )     ref  -\u003E  rax         class-hnd \u0022dup spill\u0022 \u003CDocumentFormat.OpenXml.BooleanValue\u003E\n ;* V35 tmp14        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V36 tmp15        [V36,T147] (  2,  4   )     int  -\u003E  rax        \n\u002B;  V36 tmp15        [V36,T142] (  2,  4   )     int  -\u003E  rax        \n ;* V37 tmp16        [V37    ] (  0,  0   )  struct ( 8) zero-ref    \u0022spilled call-like call argument\u0022 \u003CDocumentFormat.OpenXml.Spreadsheet.IconSetValues\u003E\n ;  V38 tmp17        [V38,T07] (  6, 20   )     ref  -\u003E  [rbp-0xD0]  class-hnd exact spill-single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n ;* V39 tmp18        [V39    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Guid\u003E\n ;* V40 tmp19        [V40    ] (  0,  0   )  struct ( 8) zero-ref    \u0022spilled call-like call argument\u0022 \u003CDocumentFormat.OpenXml.Spreadsheet.TimePeriodValues\u003E\n-;  V41 tmp20        [V41,T16] (  4, 16   )     ref  -\u003E  [rbp-0xD8]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CClosedXML.Excel.XLDictionary\u00601[ClosedXML.Excel.XLFormula]\u003E\n-;  V42 tmp21        [V42,T17] (  4, 16   )     ref  -\u003E  [rbp-0xE0]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CClosedXML.Excel.XLDictionary\u00601[ClosedXML.Excel.XLFormula]\u003E\n-;  V43 tmp22        [V43,T73] (  2,  8   )     ref  -\u003E  rdx         class-hnd \u0022dup spill\u0022 \u003CSystem.Func\u00602[DocumentFormat.OpenXml.Spreadsheet.Formula,bool]\u003E\n-;  V44 tmp23        [V44,T74] (  2,  8   )     ref  -\u003E  [rbp-0xE8]  class-hnd spill-single-def \u0022impSpillLclRefs\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[DocumentFormat.OpenXml.Spreadsheet.Formula]\u003E\n\u002B;  V41 tmp20        [V41,T15] (  4, 16   )     ref  -\u003E  [rbp-0xD8]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CClosedXML.Excel.XLDictionary\u00601[ClosedXML.Excel.XLFormula]\u003E\n\u002B;  V42 tmp21        [V42,T16] (  4, 16   )     ref  -\u003E  [rbp-0xE0]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CClosedXML.Excel.XLDictionary\u00601[ClosedXML.Excel.XLFormula]\u003E\n\u002B;  V43 tmp22        [V43,T69] (  2,  8   )     ref  -\u003E  rdx         class-hnd \u0022dup spill\u0022 \u003CSystem.Func\u00602[DocumentFormat.OpenXml.Spreadsheet.Formula,bool]\u003E\n\u002B;  V44 tmp23        [V44,T70] (  2,  8   )     ref  -\u003E  [rbp-0xE8]  class-hnd spill-single-def \u0022impSpillLclRefs\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[DocumentFormat.OpenXml.Spreadsheet.Formula]\u003E\n ;* V45 tmp24        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;  V46 tmp25        [V46,T56] (  4,  8   )     ref  -\u003E  rdx        \n-;  V47 tmp26        [V47,T18] (  4, 16   )     ref  -\u003E  [rbp-0xF0]  class-hnd spill-single-def \u0022non-inline candidate call\u0022 \u003CClosedXML.Excel.XLDictionary\u00601[ClosedXML.Excel.XLFormula]\u003E\n\u002B;  V47 tmp26        [V47,T17] (  4, 16   )     ref  -\u003E  [rbp-0xF0]  class-hnd spill-single-def \u0022non-inline candidate call\u0022 \u003CClosedXML.Excel.XLDictionary\u00601[ClosedXML.Excel.XLFormula]\u003E\n ;  V48 tmp27        [V48,T08] (  5, 20   )     ref  -\u003E  [rbp-0xF8]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[DocumentFormat.OpenXml.Spreadsheet.Formula,bool]\u003E\n ;* V49 tmp28        [V49    ] (  0,  0   )  struct ( 8) zero-ref    \u0022spilled call-like call argument\u0022 \u003CDocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingOperatorValues\u003E\n-;  V50 tmp29        [V50,T75] (  2,  8   )     ref  -\u003E  rdx         class-hnd \u0022dup spill\u0022 \u003CSystem.Func\u00602[DocumentFormat.OpenXml.Spreadsheet.Formula,bool]\u003E\n-;  V51 tmp30        [V51,T76] (  2,  8   )     ref  -\u003E  [rbp-0x100]  class-hnd spill-single-def \u0022impSpillLclRefs\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[DocumentFormat.OpenXml.Spreadsheet.Formula]\u003E\n\u002B;  V50 tmp29        [V50,T71] (  2,  8   )     ref  -\u003E  rdx         class-hnd \u0022dup spill\u0022 \u003CSystem.Func\u00602[DocumentFormat.OpenXml.Spreadsheet.Formula,bool]\u003E\n\u002B;  V51 tmp30        [V51,T72] (  2,  8   )     ref  -\u003E  [rbp-0x100]  class-hnd spill-single-def \u0022impSpillLclRefs\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[DocumentFormat.OpenXml.Spreadsheet.Formula]\u003E\n ;* V52 tmp31        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;  V53 tmp32        [V53,T57] (  4,  8   )     ref  -\u003E  rdx        \n-;  V54 tmp33        [V54,T77] (  2,  8   )     ref  -\u003E  rdx         class-hnd \u0022dup spill\u0022 \u003CSystem.Func\u00602[DocumentFormat.OpenXml.Spreadsheet.Formula,ClosedXML.Excel.XLFormula]\u003E\n-;  V55 tmp34        [V55,T78] (  2,  8   )     ref  -\u003E  [rbp-0x108]  class-hnd spill-single-def \u0022impSpillLclRefs\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[DocumentFormat.OpenXml.Spreadsheet.Formula]\u003E\n... diff truncated; middle omitted ...\n        mov      rdi, gword ptr [rdi\u002B0x130]\n@@ -1604,13 \u002B1560,13 @@ G_M31922_IG81:\n        mov      rcx, gword ptr [rdi\u002B0x08]\n        mov      edx, dword ptr [rdi\u002B0x10]\n        cmp      dword ptr [rcx\u002B0x08], edx\n-       ja       SHORT G_M31922_IG82\n\u002B       ja       SHORT G_M31922_IG76\n        mov      rsi, r12\n        mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        call     [rcx]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        jmp      G_M31922_IG04\n \t\t\t\t\t\t;; size=57 bbWeight=2 PerfScore 45.00\n-G_M31922_IG82:\n\u002BG_M31922_IG76:\n        lea      esi, [rdx\u002B0x01]\n        mov      dword ptr [rdi\u002B0x10], esi\n        mov      esi, edx\n@@ -1620,7 \u002B1576,7 @@ G_M31922_IG82:\n        call     [rcx]CORINFO_HELP_ARRADDR_ST\n        jmp      G_M31922_IG04\n \t\t\t\t\t\t;; size=31 bbWeight=2 PerfScore 15.00\n-G_M31922_IG83:\n\u002BG_M31922_IG77:\n        mov      rax, gword ptr [rbp-0x98]\n        mov      rsi, gword ptr [rax\u002B0x08]\n        mov      rsi, gword ptr [rsi\u002B0xA0]\n@@ -1631,109 \u002B1587,103 @@ G_M31922_IG83:\n        call     [rcx]ClosedXML.Excel.IO.LoadContext:AddPivotTableCf(System.String,ClosedXML.Excel.XLConditionalFormat):this\n        jmp      G_M31922_IG04\n \t\t\t\t\t\t;; size=43 bbWeight=2 PerfScore 25.50\n-G_M31922_IG84:\n\u002BG_M31922_IG78:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[ClosedXML.Excel.XLFormula]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M31922_IG44\n\u002B       jmp      G_M31922_IG38\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M31922_IG85:\n-       mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[ClosedXML.Excel.XLFormula]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M31922_IG39\n-\t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M31922_IG86:\n\u002BG_M31922_IG79:\n        mov      edi, dword ptr [rbp-0x2C]\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowKeyNotFoundException[int](int)\n        call     [rax]System.ThrowHelper:ThrowKeyNotFoundException[int](int)\n        int3     \n \t\t\t\t\t\t;; size=16 bbWeight=0 PerfScore 0.00\n-G_M31922_IG87:\n\u002BG_M31922_IG80:\n        mov      edi, dword ptr [rbp-0x30]\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowKeyNotFoundException[int](int)\n        call     [rax]System.ThrowHelper:ThrowKeyNotFoundException[int](int)\n        int3     \n \t\t\t\t\t\t;; size=16 bbWeight=0 PerfScore 0.00\n-G_M31922_IG88:\n\u002BG_M31922_IG81:\n        mov      edi, dword ptr [rbp-0x34]\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowKeyNotFoundException[int](int)\n        call     [rax]System.ThrowHelper:ThrowKeyNotFoundException[int](int)\n        int3     \n \t\t\t\t\t\t;; size=16 bbWeight=0 PerfScore 0.00\n-G_M31922_IG89:\n\u002BG_M31922_IG82:\n        mov      edi, dword ptr [rbp-0x38]\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowKeyNotFoundException[int](int)\n        call     [rax]System.ThrowHelper:ThrowKeyNotFoundException[int](int)\n        int3     \n \t\t\t\t\t\t;; size=16 bbWeight=0 PerfScore 0.00\n-G_M31922_IG90:\n\u002BG_M31922_IG83:\n        mov      rdi, gword ptr [rbp-0x1C0]\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowKeyNotFoundException[DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatValues](DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatValues)\n        call     [rax]System.ThrowHelper:ThrowKeyNotFoundException[DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatValues](DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatValues)\n        int3     \n \t\t\t\t\t\t;; size=20 bbWeight=0 PerfScore 0.00\n-G_M31922_IG91:\n\u002BG_M31922_IG84:\n        mov      rdi, gword ptr [rbp-0x1D8]\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowKeyNotFoundException[DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingOperatorValues](DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingOperatorValues)\n        call     [rax]System.ThrowHelper:ThrowKeyNotFoundException[DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingOperatorValues](DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingOperatorValues)\n        int3     \n \t\t\t\t\t\t;; size=20 bbWeight=0 PerfScore 0.00\n-G_M31922_IG92:\n\u002BG_M31922_IG85:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M31922_IG93:\n\u002BG_M31922_IG86:\n        mov      rax, 0xD1FFAB1E      ; code for ClosedXML.Excel.IO.PartStructureException:IncorrectElementsCount():System.Exception\n        call     [rax]ClosedXML.Excel.IO.PartStructureException:IncorrectElementsCount():System.Exception\n        mov      rdi, rax\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=21 bbWeight=0 PerfScore 0.00\n-G_M31922_IG94:\n\u002BG_M31922_IG87:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M31922_IG95:\n\u002BG_M31922_IG88:\n        mov      rdi, gword ptr [rbp-0x1D0]\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowKeyNotFoundException[DocumentFormat.OpenXml.Spreadsheet.TimePeriodValues](DocumentFormat.OpenXml.Spreadsheet.TimePeriodValues)\n        call     [rax]System.ThrowHelper:ThrowKeyNotFoundException[DocumentFormat.OpenXml.Spreadsheet.TimePeriodValues](DocumentFormat.OpenXml.Spreadsheet.TimePeriodValues)\n        int3     \n \t\t\t\t\t\t;; size=20 bbWeight=0 PerfScore 0.00\n-G_M31922_IG96:\n\u002BG_M31922_IG89:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M31922_IG97:\n\u002BG_M31922_IG90:\n        mov      edx, dword ptr [r12\u002B0x08]\n        mov      edi, 1\n        mov      rax, 0xD1FFAB1E      ; code for System.String:ThrowSubstringArgumentOutOfRange(int,int,int)\n        call     [rax]System.String:ThrowSubstringArgumentOutOfRange(int,int,int)\n        int3     \n \t\t\t\t\t\t;; size=23 bbWeight=0 PerfScore 0.00\n-G_M31922_IG98:\n\u002BG_M31922_IG91:\n        mov      rdi, gword ptr [rbp-0x1C8]\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowKeyNotFoundException[DocumentFormat.OpenXml.Spreadsheet.IconSetValues](DocumentFormat.OpenXml.Spreadsheet.IconSetValues)\n        call     [rax]System.ThrowHelper:ThrowKeyNotFoundException[DocumentFormat.OpenXml.Spreadsheet.IconSetValues](DocumentFormat.OpenXml.Spreadsheet.IconSetValues)\n        int3     \n \t\t\t\t\t\t;; size=20 bbWeight=0 PerfScore 0.00\n-G_M31922_IG99:\n\u002BG_M31922_IG92:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n-G_M31922_IG100:\n\u002BG_M31922_IG93:\n        mov      rdi, gword ptr [rbp-0xA0]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 2.12\n-G_M31922_IG101:\n\u002BG_M31922_IG94:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M31922_IG102:\n\u002BG_M31922_IG95:\n        add      rsp, 440\n        pop      rbx\n        pop      r12\n@@ -1743,23 \u002B1693,23 @@ G_M31922_IG102:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M31922_IG103:\n\u002BG_M31922_IG96:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M31922_IG104:\n\u002BG_M31922_IG97:\n        cmp      gword ptr [rbp-0xA0], 0\n-       je       SHORT G_M31922_IG105\n\u002B       je       SHORT G_M31922_IG98\n        mov      rdi, gword ptr [rbp-0xA0]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=30 bbWeight=0 PerfScore 0.00\n-G_M31922_IG105:\n\u002BG_M31922_IG98:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M31922_IG106:\n\u002BG_M31922_IG99:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 6648, prolog size 65, PerfScore 2572.75, instruction count 1276, allocated bytes for code 6648 (MethodHash=d804834d) for method ClosedXML.Excel.XLWorkbook:LoadConditionalFormatting(DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatting,ClosedXML.Excel.XLWorksheet,System.Collections.Generic.Dictionary\u00602[int,DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat],ClosedXML.Excel.IO.LoadContext):this (FullOpts)\n\u002B; Total bytes of code 6466, prolog size 65, PerfScore 2497.25, instruction count 1240, allocated bytes for code 6466 (MethodHash=d804834d) for method ClosedXML.Excel.XLWorkbook:LoadConditionalFormatting(DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatting,ClosedXML.Excel.XLWorksheet,System.Collections.Generic.Dictionary\u00602[int,DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat],ClosedXML.Excel.IO.LoadContext):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":6648,"DiffBytes":6466},{"Assembly":"CommandLine.dasm","Method":"CommandLine.Text.TextWrapper:AddWordToLastLineOrCreateNewLineIfNecessary(System.Collections.Generic.List\u00601[System.Text.StringBuilder],System.String,int):System.Collections.Generic.List\u00601[System.Text.StringBuilder] (FullOpts)","Category":"improvement","Description":"757 -\u003E 674 bytes (-83)","ExtraInfo":null,"Diff":"@@ -8,7 \u002B8,7 @@\n ; 0 inlinees with PGO data; 8 single block inlinees; 11 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T00] ( 14, 27   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[System.Text.StringBuilder]\u003E\n\u002B;  V00 arg0         [V00,T00] ( 13, 26.50)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[System.Text.StringBuilder]\u003E\n ;  V01 arg1         [V01,T02] ( 11, 21.50)     ref  -\u003E  r15         class-hnd \u003CSystem.String\u003E\n ;  V02 arg2         [V02,T09] (  5,  8.50)     int  -\u003E  r14         single-def\n ;* V03 loc0         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.String\u003E\n@@ -17,18 \u002B17,18 @@\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022dup spill\u0022 \u003CSystem.Text.StringBuilder\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V09 tmp3         [V09,T23] (  3,  2   )     ref  -\u003E  r12        \n-;  V10 tmp4         [V10,T15] (  5,  4.50)     ref  -\u003E  r12        \n\u002B;  V09 tmp3         [V09,T19] (  3,  2   )     ref  -\u003E  r13        \n\u002B;  V10 tmp4         [V10,T15] (  5,  4.50)     ref  -\u003E  r13        \n ;* V11 tmp5         [V11    ] (  0,  0   )     int  -\u003E  zero-ref   \n ;  V12 tmp6         [V12,T01] (  4, 24   )     ref  -\u003E  [rbp-0x50]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Text.StringBuilder\u003E\n ;* V13 tmp7         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022non-inline candidate call\u0022 \u003CSystem.Text.StringBuilder\u003E\n-;  V14 tmp8         [V14    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V15 tmp9         [V15,T19] (  4,  2.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Text.StringBuilder\u003E\n-;  V16 tmp10        [V16,T18] (  4,  3   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Text.StringBuilder]\u003E\n-;  V17 tmp11        [V17    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V14 tmp8         [V14    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T18] (  3,  2.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Text.StringBuilder\u003E\n\u002B;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Text.StringBuilder]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T21] (  4,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Text.StringBuilder\u003E\n-;  V20 tmp14        [V20,T22] (  4,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Text.StringBuilder]\u003E\n\u002B;  V19 tmp13        [V19,T20] (  3,  1.50)     ref  -\u003E  r14         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Text.StringBuilder\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Text.StringBuilder]\u003E\n ;  V21 tmp15        [V21,T16] (  4,  4   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V22 tmp16        [V22,T03] ( 10, 22   )     int  -\u003E  r12         \u0022Inline return value spill temp\u0022\n ;  V23 tmp17        [V23,T05] (  3, 20   )     int  -\u003E  r12         \u0022Inlining Arg\u0022\n@@ -53,8 \u002B53,7 @@\n ;  V42 tmp36        [V42,T12] (  3,  8   )     ref  -\u003E  r13         class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n ;* V43 tmp37        [V43    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022field V28.m_asTAddr (fldOffset=0x0)\u0022 P-INDEP\n ;* V44 tmp38        [V44    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022field V30.m_asTAddr (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 cse0         [V45,T20] (  3,  2.50)     ref  -\u003E  r13         \u0022CSE #02: moderate\u0022\n-;  V46 cse1         [V46,T04] (  8, 22   )     int  -\u003E  r13         \u0022CSE #05: aggressive\u0022\n\u002B;  V45 cse0         [V45,T04] (  8, 22   )     int  -\u003E  r13         \u0022CSE #02: aggressive\u0022\n ;\n ; Lcl frame size = 56\n \n@@ -76,90 \u002B75,71 @@ G_M19679_IG01:\n \t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 9.75\n G_M19679_IG02:\n        test     rbx, rbx\n-       je       G_M19679_IG33\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Text.StringBuilder]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r13, rax\n-       mov      rdi, r13\n-       test     rdi, rdi\n-       je       SHORT G_M19679_IG04\n-\t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 6.75\n-G_M19679_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rax, qword ptr [rdi]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M19679_IG05\n-\t\t\t\t\t\t;; size=16 bbWeight=0.50 PerfScore 4.75\n-G_M19679_IG04:\n\u002B       je       G_M19679_IG28\n        lea      rdx, [rbp-0x30]\n        mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.Text.StringBuilder](System.Collections.Generic.IEnumerable\u00601[System.Text.StringBuilder],byref):System.Text.StringBuilder\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M19679_IG05:\n        test     rax, rax\n-       je       SHORT G_M19679_IG07\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M19679_IG06:\n\u002B       je       SHORT G_M19679_IG04\n\u002B\t\t\t\t\t\t;; size=43 bbWeight=1 PerfScore 6.75\n\u002BG_M19679_IG03:\n        mov      rdi, rax\n        mov      rax, 0xD1FFAB1E\n        mov      rax, qword ptr [rax]\n        call     [rax\u002B0x08]System.Object:ToString():System.String:this\n-       mov      r12, rax\n-       jmp      SHORT G_M19679_IG08\n\u002B       mov      r13, rax\n\u002B       jmp      SHORT G_M19679_IG05\n \t\t\t\t\t\t;; size=24 bbWeight=0.50 PerfScore 3.88\n-G_M19679_IG07:\n-       xor      r12, r12\n\u002BG_M19679_IG04:\n\u002B       xor      r13, r13\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M19679_IG08:\n\u002BG_M19679_IG05:\n        mov      rsi, 0xD1FFAB1E      ; \u0027\u0027\n-       test     r12, r12\n-       cmove    r12, rsi\n\u002B       test     r13, r13\n\u002B       cmove    r13, rsi\n        mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:Any[System.Text.StringBuilder](System.Collections.Generic.IEnumerable\u00601[System.Text.StringBuilder]):bool\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:Any[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):bool\n        call     [rax]System.Linq.Enumerable:Any[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):bool\n        test     eax, eax\n-       je       SHORT G_M19679_IG10\n\u002B       je       SHORT G_M19679_IG07\n \t\t\t\t\t\t;; size=46 bbWeight=1 PerfScore 6.00\n-G_M19679_IG09:\n\u002BG_M19679_IG06:\n        cmp      dword ptr [r15\u002B0x08], 0\n-       je       G_M19679_IG30\n-       mov      esi, dword ptr [r12\u002B0x08]\n\u002B       je       G_M19679_IG27\n\u002B       mov      esi, dword ptr [r13\u002B0x08]\n        add      esi, dword ptr [r15\u002B0x08]\n        cmp      esi, r14d\n-       jle      G_M19679_IG30\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 4.12\n-G_M19679_IG10:\n\u002B       jle      G_M19679_IG27\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=0.50 PerfScore 4.12\n\u002BG_M19679_IG07:\n        mov      r13d, dword ptr [r15\u002B0x08]\n        mov      r12d, r13d\n        cmp      r14d, r12d\n-       jg       SHORT G_M19679_IG12\n\u002B       jg       SHORT G_M19679_IG09\n \t\t\t\t\t\t;; size=12 bbWeight=4 PerfScore 14.00\n-G_M19679_IG11:\n\u002BG_M19679_IG08:\n        mov      r12d, r14d\n \t\t\t\t\t\t;; size=3 bbWeight=2 PerfScore 0.50\n\u002BG_M19679_IG09:\n\u002B       cmp      r13d, r12d\n\u002B       jle      SHORT G_M19679_IG11\n\u002B\t\t\t\t\t\t;; size=5 bbWeight=4 PerfScore 5.00\n\u002BG_M19679_IG10:\n\u002B       test     r13d, r13d\n\u002B       jne      SHORT G_M19679_IG12\n\u002B\t\t\t\t\t\t;; size=5 bbWeight=2 PerfScore 2.50\n\u002BG_M19679_IG11:\n\u002B       mov      rdi, r15\n\u002B       jmp      SHORT G_M19679_IG14\n\u002B\t\t\t\t\t\t;; size=5 bbWeight=2 PerfScore 4.50\n G_M19679_IG12:\n        cmp      r13d, r12d\n-       jle      SHORT G_M19679_IG14\n-\t\t\t\t\t\t;; size=5 bbWeight=4 PerfScore 5.00\n-G_M19679_IG13:\n-       test     r13d, r13d\n-       jne      SHORT G_M19679_IG15\n-\t\t\t\t\t\t;; size=5 bbWeight=2 PerfScore 2.50\n-G_M19679_IG14:\n-       mov      rdi, r15\n-       jmp      SHORT G_M19679_IG17\n-\t\t\t\t\t\t;; size=5 bbWeight=2 PerfScore 4.50\n-G_M19679_IG15:\n-       cmp      r13d, r12d\n-       jb       G_M19679_IG35\n\u002B       jb       G_M19679_IG30\n        test     r12d, r12d\n-       je       SHORT G_M19679_IG16\n\u002B       je       SHORT G_M19679_IG13\n        mov      eax, r12d\n        mov      qword ptr [rbp-0x40], rax\n        movsxd   rsi, r12d\n@@ -174,12 \u002B154,12 @@ G_M19679_IG15:\n        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,nuint)\n        call     [rax]System.SpanHelpers:Memmove(byref,byref,nuint)\n        mov      rdi, gword ptr [rbp-0x58]\n-       jmp      SHORT G_M19679_IG17\n\u002B       jmp      SHORT G_M19679_IG14\n \t\t\t\t\t\t;; size=79 bbWeight=2 PerfScore 29.50\n-G_M19679_IG16:\n\u002BG_M19679_IG13:\n        mov      rdi, 0xD1FFAB1E      ; \u0027\u0027\n \t\t\t\t\t\t;; size=10 bbWeight=2 PerfScore 0.50\n-G_M19679_IG17:\n\u002BG_M19679_IG14:\n        mov      rsi, 0xD1FFAB1E      ; \u0027 \u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Concat(System.String,System.String):System.String\n        call     [rax]System.String:Concat(System.String,System.String):System.String\n@@ -189,16 \u002B169,16 @@ G_M19679_IG17:\n        mov      gword ptr [rbp-0x50], rax\n        mov      rcx, gword ptr [rbp-0x48]\n        test     rcx, rcx\n-       je       SHORT G_M19679_IG19\n\u002B       je       SHORT G_M19679_IG16\n \t\t\t\t\t\t;; size=54 bbWeight=4 PerfScore 36.00\n-G_M19679_IG18:\n\u002BG_M19679_IG15:\n        mov      edx, dword ptr [rcx\u002B0x08]\n-       jmp      SHORT G_M19679_IG20\n\u002B       jmp      SHORT G_M19679_IG17\n \t\t\t\t\t\t;; size=5 bbWeight=2 PerfScore 8.00\n-G_M19679_IG19:\n\u002BG_M19679_IG16:\n        xor      edx, edx\n \t\t\t\t\t\t;; size=2 bbWeight=2 PerfScore 0.50\n-G_M19679_IG20:\n\u002BG_M19679_IG17:\n        mov      rdi, rax\n        mov      rsi, rcx\n        mov      ecx, edx\n@@ -210,16 \u002B190,16 @@ G_M19679_IG20:\n        mov      rax, gword ptr [rbx\u002B0x08]\n        mov      ecx, dword ptr [rbx\u002B0x10]\n        cmp      dword ptr [rax\u002B0x08], ecx\n-       ja       SHORT G_M19679_IG22\n\u002B       ja       SHORT G_M19679_IG19\n \t\t\t\t\t\t;; size=44 bbWeight=4 PerfScore 58.00\n-G_M19679_IG21:\n\u002BG_M19679_IG18:\n        mov      rdi, rbx\n        mov      rsi, gword ptr [rbp-0x50]\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n-       jmp      SHORT G_M19679_IG23\n\u002B       jmp      SHORT G_M19679_IG20\n \t\t\t\t\t\t;; size=21 bbWeight=2 PerfScore 13.00\n-G_M19679_IG22:\n\u002BG_M19679_IG19:\n        lea      edi, [rcx\u002B0x01]\n        mov      dword ptr [rbx\u002B0x10], edi\n        mov      edi, ecx\n@@ -227,34 \u002B207,34 @@ G_M19679_IG22:\n        mov      rsi, gword ptr [rbp-0x50]\n        call     CORINFO_HELP_ASSIGN_REF\n \t\t\t\t\t\t;; size=22 bbWeight=2 PerfScore 9.50\n-G_M19679_IG23:\n\u002BG_M19679_IG20:\n        cmp      r13d, r12d\n-       jle      SHORT G_M19679_IG25\n\u002B       jle      SHORT G_M19679_IG22\n \t\t\t\t\t\t;; size=5 bbWeight=4 PerfScore 5.00\n-G_M19679_IG24:\n\u002BG_M19679_IG21:\n        test     r13d, r13d\n-       jne      SHORT G_M19679_IG26\n\u002B       jne      SHORT G_M19679_IG23\n \t\t\t\t\t\t;; size=5 bbWeight=2 PerfScore 2.50\n-G_M19679_IG25:\n\u002BG_M19679_IG22:\n        mov      r13, 0xD1FFAB1E      ; \u0027\u0027\n-       jmp      SHORT G_M19679_IG27\n\u002B       jmp      SHORT G_M19679_IG24\n \t\t\t\t\t\t;; size=12 bbWeight=2 PerfScore 4.50\n-G_M19679_IG26:\n\u002BG_M19679_IG23:\n        mov      rdi, r15\n        mov      esi, r12d\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Substring(int):System.String:this\n        call     [rax]System.String:Substring(int):System.String:this\n        mov      r13, rax\n \t\t\t\t\t\t;; size=21 bbWeight=2 PerfScore 8.00\n-G_M19679_IG27:\n\u002BG_M19679_IG24:\n        mov      r15, r13\n        cmp      dword ptr [r15\u002B0x08], 0\n-       jne      G_M19679_IG10\n\u002B       jne      G_M19679_IG07\n \t\t\t\t\t\t;; size=14 bbWeight=4 PerfScore 13.00\n-G_M19679_IG28:\n\u002BG_M19679_IG25:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M19679_IG29:\n\u002BG_M19679_IG26:\n        add      rsp, 56\n        pop      rbx\n        pop      r12\n@@ -264,28 \u002B244,15 @@ G_M19679_IG29:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M19679_IG30:\n-       mov      rdi, r13\n-       test     rdi, rdi\n-       je       SHORT G_M19679_IG31\n-       lea      rsi, [rbp-0x38]\n-       mov      rax, qword ptr [rdi]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       mov      r14, rax\n-       jmp      SHORT G_M19679_IG32\n-\t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 5.62\n-G_M19679_IG31:\n\u002BG_M19679_IG27:\n        lea      rdx, [rbp-0x38]\n        mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.Text.StringBuilder](System.Collections.Generic.IEnumerable\u00601[System.Text.StringBuilder],byref):System.Text.StringBuilder\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        mov      r14, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M19679_IG32:\n        cmp      byte  ptr [rbp-0x38], 0\n-       je       SHORT G_M19679_IG34\n\u002B       je       SHORT G_M19679_IG29\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; \u0027 \u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Concat(System.String,System.String):System.String\n@@ -293,26 \u002B260,26 @@ G_M19679_IG32:\n        mov      rsi, rax\n        cmp      byte  ptr [r14], r14b\n        test     rsi, rsi\n-       je       SHORT G_M19679_IG28\n\u002B       je       SHORT G_M19679_IG25\n        mov      edx, dword ptr [rsi\u002B0x08]\n        add      rsi, 12\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:Append(byref,int):this\n        call     [rax]System.Text.StringBuilder:Append(byref,int):this\n-       jmp      G_M19679_IG28\n-\t\t\t\t\t\t;; size=69 bbWeight=0.50 PerfScore 8.50\n-G_M19679_IG33:\n\u002B       jmp      SHORT G_M19679_IG25\n\u002B\t\t\t\t\t\t;; size=98 bbWeight=0.50 PerfScore 10.75\n\u002BG_M19679_IG28:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M19679_IG34:\n\u002BG_M19679_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M19679_IG35:\n\u002BG_M19679_IG30:\n        mov      edx, r13d\n        mov      esi, r12d\n        xor      edi, edi\n@@ -321,5 \u002B288,5 @@ G_M19679_IG35:\n        int3     \n \t\t\t\t\t\t;; size=21 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 757, prolog size 29, PerfScore 274.12, instruction count 193, allocated bytes for code 757 (MethodHash=ce7bb320) for method CommandLine.Text.TextWrapper:AddWordToLastLineOrCreateNewLineIfNecessary(System.Collections.Generic.List\u00601[System.Text.StringBuilder],System.String,int):System.Collections.Generic.List\u00601[System.Text.StringBuilder] (FullOpts)\n\u002B; Total bytes of code 674, prolog size 29, PerfScore 260.38, instruction count 171, allocated bytes for code 674 (MethodHash=ce7bb320) for method CommandLine.Text.TextWrapper:AddWordToLastLineOrCreateNewLineIfNecessary(System.Collections.Generic.List\u00601[System.Text.StringBuilder],System.String,int):System.Collections.Generic.List\u00601[System.Text.StringBuilder] (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":757,"DiffBytes":674},{"Assembly":"Confluent.Kafka.dasm","Method":"Confluent.Kafka.Impl.SafeKafkaHandle:ListGroup(System.String,int):Confluent.Kafka.GroupInfo:this (FullOpts)","Category":"improvement","Description":"203 -\u003E 147 bytes (-56)","ExtraInfo":null,"Diff":"@@ -1,89 \u002B1,70 @@\n ; Assembly listing for method Confluent.Kafka.Impl.SafeKafkaHandle:ListGroup(System.String,int):Confluent.Kafka.GroupInfo:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  3,  3   )     ref  -\u003E  rdi         this class-hnd single-def \u003CConfluent.Kafka.Impl.SafeKafkaHandle\u003E\n-;  V01 arg1         [V01,T01] (  4,  4   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V01 arg1         [V01,T00] (  4,  4   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n ;  V02 arg2         [V02,T03] (  3,  3   )     int  -\u003E  rdx         single-def\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V04 tmp1         [V04,T06] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V05 tmp2         [V05,T00] (  4,  7   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Confluent.Kafka.GroupInfo]\u003E\n-;  V06 tmp3         [V06    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x10]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V07 tmp4         [V07,T05] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CConfluent.Kafka.GroupInfo\u003E\n-;  V08 tmp5         [V08,T04] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Confluent.Kafka.GroupInfo]\u003E\n\u002B;  V04 tmp1         [V04,T05] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V05 tmp2         [V05,T01] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Confluent.Kafka.GroupInfo]\u003E\n\u002B;  V06 tmp3         [V06    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x10]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V07 tmp4         [V07,T04] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CConfluent.Kafka.GroupInfo\u003E\n\u002B;* V08 tmp5         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Confluent.Kafka.GroupInfo]\u003E\n ;\n ; Lcl frame size = 8\n \n G_M64385_IG01:\n        push     rbp\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x10]\n \t\t\t\t\t\t;; size=8 bbWeight=1 PerfScore 3.50\n G_M64385_IG02:\n        test     rsi, rsi\n-       je       SHORT G_M64385_IG07\n\u002B       je       SHORT G_M64385_IG04\n        mov      rax, 0xD1FFAB1E      ; code for Confluent.Kafka.Impl.SafeKafkaHandle:ListGroupsImpl(System.String,int):System.Collections.Generic.List\u00601[Confluent.Kafka.GroupInfo]:this\n        call     [rax]Confluent.Kafka.Impl.SafeKafkaHandle:ListGroupsImpl(System.String,int):System.Collections.Generic.List\u00601[Confluent.Kafka.GroupInfo]:this\n-       mov      rbx, rax\n-       test     rbx, rbx\n-       je       G_M64385_IG08\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[Confluent.Kafka.GroupInfo]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M64385_IG04\n-\t\t\t\t\t\t;; size=59 bbWeight=1 PerfScore 11.00\n-G_M64385_IG03:\n-       lea      rsi, [rbp-0x10]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M64385_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M64385_IG04:\n\u002B       je       SHORT G_M64385_IG05\n        lea      rdx, [rbp-0x10]\n-       mov      rsi, rbx\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[Confluent.Kafka.GroupInfo](System.Collections.Generic.IEnumerable\u00601[Confluent.Kafka.GroupInfo],byref):Confluent.Kafka.GroupInfo\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M64385_IG05:\n        nop      \n-\t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M64385_IG06:\n\u002B\t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 10.25\n\u002BG_M64385_IG03:\n        add      rsp, 8\n        pop      rbx\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.25\n-G_M64385_IG07:\n\u002BG_M64385_IG04:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; \u0027group\u0027\n        mov      rdx, 0xD1FFAB1E      ; \u0027Argument \u0027group\u0027 must not be null.\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:.ctor(System.String,System.String):this\n        call     [rax]System.ArgumentNullException:.ctor(System.String,System.String):this\n        mov      rdi, rbx\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=62 bbWeight=0 PerfScore 0.00\n-G_M64385_IG08:\n\u002BG_M64385_IG05:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 203, prolog size 8, PerfScore 24.00, instruction count 48, allocated bytes for code 203 (MethodHash=a3ad047e) for method Confluent.Kafka.Impl.SafeKafkaHandle:ListGroup(System.String,int):Confluent.Kafka.GroupInfo:this (FullOpts)\n\u002B; Total bytes of code 147, prolog size 8, PerfScore 16.00, instruction count 35, allocated bytes for code 147 (MethodHash=a3ad047e) for method Confluent.Kafka.Impl.SafeKafkaHandle:ListGroup(System.String,int):Confluent.Kafka.GroupInfo:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":203,"DiffBytes":147},{"Assembly":"Consul.dasm","Method":"Consul.GetRequest\u00601\u002B\u003CExecuteStreaming\u003Ed__11[System.Nullable\u00601[int]]:MoveNext():this (FullOpts)","Category":"improvement","Description":"1,458 -\u003E 1,431 bytes (-27)","ExtraInfo":null,"Diff":"@@ -8,8 \u002B8,8 @@\n ; 0 inlinees with PGO data; 57 single block inlinees; 13 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 45, 39   )   byref  -\u003E  [rbp-0x68]  this EH-live single-def\n-;  V01 loc0         [V01,T33] (  3,  3   )     int  -\u003E  rdi         single-def\n\u002B;  V00 this         [V00,T00] ( 42, 36   )   byref  -\u003E  [rbp-0x68]  this EH-live single-def\n\u002B;  V01 loc0         [V01,T35] (  3,  3   )     int  -\u003E  rdi         single-def\n ;  V02 loc1         [V02,T02] ( 11, 11   )     ref  -\u003E  rbx         class-hnd single-def \u003CConsul.GetRequest\u00601[System.Nullable\u00601[int]]\u003E\n ;  V03 loc2         [V03,T14] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n ;* V04 loc3         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CSystem.Net.Http.HttpRequestMessage\u003E\n@@ -22,106 \u002B22,108 @@\n ;* V11 loc10        [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Exception\u003E\n ;  V12 OutArgs      [V12    ] (  1,  1   )  struct ( 8) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V13 tmp1         [V13    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;* V14 tmp2         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;  V14 tmp2         [V14,T16] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Net.Http.HttpResponseMessage\u003E\n ;* V15 tmp3         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n-;  V16 tmp4         [V16,T16] (  2,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n-;* V17 tmp5         [V17    ] (  0,  0   )  struct ( 8) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.TimeSpan\u003E\n-;  V18 tmp6         [V18,T39] (  3,  0   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Net.HttpStatusCode\u003E\n-;  V19 tmp7         [V19,T41] (  2,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V20 tmp8         [V20,T40] (  3,  0   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CConsul.ConsulRequestException\u003E\n-;* V21 tmp9         [V21    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n\u002B;* V16 tmp4         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;  V17 tmp5         [V17,T17] (  2,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;* V18 tmp6         [V18    ] (  0,  0   )  struct ( 8) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.TimeSpan\u003E\n\u002B;  V19 tmp7         [V19,T41] (  3,  0   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Net.HttpStatusCode\u003E\n\u002B;  V20 tmp8         [V20,T43] (  2,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V21 tmp9         [V21,T42] (  3,  0   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CConsul.ConsulRequestException\u003E\n ;* V22 tmp10        [V22    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;* V23 tmp11        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n-;  V24 tmp12        [V24,T17] (  2,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.Net.Http.HttpMethod\u003E\n-;  V25 tmp13        [V25,T18] (  2,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V26 tmp14        [V26,T01] (  8, 16   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Net.Http.HttpRequestMessage\u003E\n-;  V27 tmp15        [V27,T42] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n-;  V28 tmp16        [V28,T03] (  5, 10   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Diagnostics.Stopwatch\u003E\n-;  V29 tmp17        [V29,T19] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Uri\u003E\n-;* V30 tmp18        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CConsul.ConsulClient\u003E\n\u002B;* V23 tmp11        [V23    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n\u002B;* V24 tmp12        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;  V25 tmp13        [V25,T18] (  2,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.Net.Http.HttpMethod\u003E\n\u002B;  V26 tmp14        [V26,T19] (  2,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V27 tmp15        [V27,T01] (  8, 16   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Net.Http.HttpRequestMessage\u003E\n\u002B;  V28 tmp16        [V28,T44] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V29 tmp17        [V29,T03] (  5, 10   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Diagnostics.Stopwatch\u003E\n\u002B;  V30 tmp18        [V30,T20] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Uri\u003E\n ;* V31 tmp19        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CConsul.ConsulClient\u003E\n-;  V32 tmp20        [V32,T29] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Net.Http.HttpResponseMessage]\u003E\n-;  V33 tmp21        [V33,T04] (  5, 10   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Net.Http.HttpClient\u003E\n-;* V34 tmp22        [V34    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V35 tmp23        [V35,T08] (  4,  8   )  struct (24) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u0022dup spill\u0022 \u003CSystem.ValueTuple\u00603[System.Threading.CancellationTokenSource,bool,System.Threading.CancellationTokenSource]\u003E\n-;* V36 tmp24        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;* V37 tmp25        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n-;* V38 tmp26        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;* V39 tmp27        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;* V40 tmp28        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;* V41 tmp29        [V41    ] (  0,  0   )     int  -\u003E  zero-ref    single-def\n-;* V42 tmp30        [V42    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[System.Net.Http.HttpResponseMessage]\u003E\n-;* V43 tmp31        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Net.Http.HttpResponseMessage]\u003E\n-;* V44 tmp32        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.Net.Http.HttpResponseMessage]\u003E\n-;* V45 tmp33        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Net.Http.HttpResponseMessage]\u003E\n-;* V46 tmp34        [V46,T36] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V47 tmp35        [V47,T20] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n-;* V48 tmp36        [V48    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;* V49 tmp37        [V49    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n\u002B;* V32 tmp20        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CConsul.ConsulClient\u003E\n\u002B;  V33 tmp21        [V33,T28] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Net.Http.HttpResponseMessage]\u003E\n\u002B;  V34 tmp22        [V34,T04] (  5, 10   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Net.Http.HttpClient\u003E\n\u002B;* V35 tmp23        [V35    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;  V36 tmp24        [V36,T07] (  4,  8   )  struct (24) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u0022dup spill\u0022 \u003CSystem.ValueTuple\u00603[System.Threading.CancellationTokenSource,bool,System.Threading.CancellationTokenSource]\u003E\n\u002B;* V37 tmp25        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;* V38 tmp26        [V38    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n\u002B;* V39 tmp27        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;* V40 tmp28        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref   \n... diff truncated; middle omitted ...\n\u002B;  V84 tmp72        [V84,T15] (  4,  4   )    long  -\u003E  r13         \u0022Inline stloc first use temp\u0022\n\u002B;* V85 tmp73        [V85    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n\u002B;  V86 tmp74        [V86,T12] (  3,  6   )   byref  -\u003E  rbx         single-def \u0022Inlining Arg\u0022\n\u002B;  V87 tmp75        [V87,T29] (  3,  3   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[Consul.QueryResult\u00601[System.IO.Stream]]\u003E\n\u002B;* V88 tmp76        [V88    ] (  0,  0   )     ref  -\u003E  zero-ref    ld-addr-op class-hnd single-def \u0022Inlining Arg\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;  V89 tmp77        [V89,T06] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[Consul.QueryResult\u00601[System.IO.Stream]]\u003E\n\u002B;* V90 tmp78        [V90    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V91 tmp79        [V91    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;* V92 tmp80        [V92    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n\u002B;  V93 tmp81        [V93    ] (  7,  7   )     ref  -\u003E  [rbp-0x38]  do-not-enreg[X] addr-exposed \u0022field V06.m_task (fldOffset=0x0)\u0022 P-DEP\n\u002B;  V94 tmp82        [V94    ] (  5,  5   )     int  -\u003E  [rbp-0x30]  do-not-enreg[X] addr-exposed \u0022field V06.m_options (fldOffset=0x8)\u0022 P-DEP\n\u002B;  V95 tmp83        [V95    ] (  7,  7   )     ref  -\u003E  [rbp-0x48]  do-not-enreg[X] addr-exposed \u0022field V09.m_task (fldOffset=0x0)\u0022 P-DEP\n\u002B;  V96 tmp84        [V96    ] (  5,  5   )     int  -\u003E  [rbp-0x40]  do-not-enreg[X] addr-exposed \u0022field V09.m_options (fldOffset=0x8)\u0022 P-DEP\n\u002B;* V97 tmp85        [V97    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022field V18._ticks (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V98 tmp86        [V98,T30] (  3,  3   )     ref  -\u003E  r13         single-def \u0022field V35._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V99 tmp87        [V99    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V45.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V100 tmp88       [V100    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V45.m_options (fldOffset=0x8)\u0022 P-INDEP\n\u002B;* V101 tmp89       [V101    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V58._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V102 tmp90       [V102    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V59._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V103 tmp91       [V103    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V66.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V104 tmp92       [V104    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V66.m_options (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V105 tmp93       [V105,T36] (  2,  2   )    long  -\u003E  rsi         single-def \u0022field V83._ticks (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V106 tmp94       [V106    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V90._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V107 tmp95       [V107,T25] (  2,  4   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n ;  V108 tmp96       [V108,T26] (  2,  4   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V109 tmp97       [V109,T27] (  2,  4   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V110 cse0        [V110,T13] (  5,  4   )     int  -\u003E  r15         \u0022CSE #06: moderate\u0022\n-;  V111 cse1        [V111,T32] (  3,  3   )     ref  -\u003E  r15         \u0022CSE #04: conservative\u0022\n-;  V112 cse2        [V112,T28] (  2,  2   )     ref  -\u003E  rax         \u0022CSE #05: conservative\u0022\n-;  V113 rat0        [V113,T38] (  5, 10   )  simd16  -\u003E  mm0         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n\u002B;  V109 cse0        [V109,T13] (  5,  4   )     int  -\u003E  r15         \u0022CSE #06: moderate\u0022\n\u002B;  V110 cse1        [V110,T31] (  3,  3   )     ref  -\u003E  r15         \u0022CSE #04: moderate\u0022\n\u002B;  V111 cse2        [V111,T27] (  2,  2   )     ref  -\u003E  rax         \u0022CSE #05: moderate\u0022\n\u002B;  V112 cse3        [V112,T32] (  3,  3   )   byref  -\u003E  rdi         \u0022CSE #01: moderate\u0022\n\u002B;  V113 cse4        [V113,T33] (  3,  3   )   byref  -\u003E  rdi         \u0022CSE #03: moderate\u0022\n\u002B;  V114 cse5        [V114,T34] (  3,  3   )     ref  -\u003E  rsi         \u0022CSE #08: moderate\u0022\n\u002B;  V115 rat0        [V115,T40] (  5, 10   )  simd16  -\u003E  mm0         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n ;\n ; Lcl frame size = 72\n \n@@ -150,17 \u002B152,18 @@ G_M46157_IG02:\n G_M46157_IG03:\n        test     edi, edi\n        jne      G_M46157_IG09\n-\t\t\t\t\t\t;; size=8 bbWeight=1 PerfScore 1.25\n\u002B       lea      rdi, bword ptr [rsi\u002B0x38]\n\u002B\t\t\t\t\t\t;; size=12 bbWeight=1 PerfScore 1.75\n G_M46157_IG04:\n-       vmovdqu  xmm0, xmmword ptr [rsi\u002B0x38]\n\u002B       vmovdqu  xmm0, xmmword ptr [rdi]\n        vmovdqu  xmmword ptr [rbp-0x38], xmm0\n-\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.00\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.00\n G_M46157_IG05:\n-       xor      edi, edi\n-       mov      qword ptr [rsi\u002B0x38], rdi\n-       mov      qword ptr [rsi\u002B0x40], rdi\n\u002B       xor      eax, eax\n\u002B       mov      qword ptr [rdi], rax\n\u002B       mov      qword ptr [rdi\u002B0x08], rax\n        mov      dword ptr [rsi\u002B0x20], -1\n-\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 3.25\n\u002B\t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 3.25\n G_M46157_IG06:\n        mov      rsi, bword ptr [rbp-0x68]\n        mov      rdi, gword ptr [rbp-0x38]\n@@ -178,14 \u002B181,9 @@ G_M46157_IG07:\n        mov      r15, bword ptr [rbp-0x68]\n        lea      rdi, bword ptr [r15\u002B0x18]\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n-       mov      r14, gword ptr [r15\u002B0x18]\n-       mov      rsi, gword ptr [r15\u002B0x10]\n-       mov      rdi, 0xD1FFAB1E      ; Consul.QueryResult\u00601[System.Nullable\u00601[int]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      rdx, rax\n-       mov      rsi, r14\n\u002B       mov      rsi, gword ptr [r15\u002B0x18]\n        mov      rdi, rbx\n\u002B       xor      rdx, rdx\n        mov      rax, 0xD1FFAB1E      ; code for Consul.GetRequest\u00601[System.Nullable\u00601[int]]:ParseQueryHeaders(System.Net.Http.HttpResponseMessage,Consul.QueryResult\u00601[System.Nullable\u00601[int]]):this\n        call     [rax]Consul.GetRequest\u00601[System.Nullable\u00601[int]]:ParseQueryHeaders(System.Net.Http.HttpResponseMessage,Consul.QueryResult\u00601[System.Nullable\u00601[int]]):this\n        mov      rdi, gword ptr [r15\u002B0x10]\n@@ -210,7 \u002B208,7 @@ G_M46157_IG07:\n        mov      rdi, gword ptr [rbp-0x48]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M46157_IG12\n-\t\t\t\t\t\t;; size=157 bbWeight=1 PerfScore 47.25\n\u002B\t\t\t\t\t\t;; size=127 bbWeight=1 PerfScore 41.50\n G_M46157_IG08:\n        mov      r15, bword ptr [rbp-0x68]\n        mov      dword ptr [r15\u002B0x20], 1\n@@ -234,17 \u002B232,18 @@ G_M46157_IG08:\n G_M46157_IG09:\n        cmp      edi, 1\n        jne      G_M46157_IG16\n-\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 1.25\n\u002B       lea      rdi, bword ptr [rsi\u002B0x48]\n\u002B\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 1.75\n G_M46157_IG10:\n-       vmovdqu  xmm0, xmmword ptr [rsi\u002B0x48]\n\u002B       vmovdqu  xmm0, xmmword ptr [rdi]\n        vmovdqu  xmmword ptr [rbp-0x48], xmm0\n-\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.00\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.00\n G_M46157_IG11:\n-       xor      edi, edi\n-       mov      qword ptr [rsi\u002B0x48], rdi\n-       mov      qword ptr [rsi\u002B0x50], rdi\n\u002B       xor      eax, eax\n\u002B       mov      qword ptr [rdi], rax\n\u002B       mov      qword ptr [rdi\u002B0x08], rax\n        mov      dword ptr [rsi\u002B0x20], -1\n-\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 3.25\n\u002B\t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 3.25\n G_M46157_IG12:\n        mov      rdi, gword ptr [rbp-0x48]\n        mov      eax, dword ptr [rdi\u002B0x34]\n@@ -445,15 \u002B444,15 @@ G_M46157_IG22:\n G_M46157_IG23:\n        mov      gword ptr [rbx\u002B0x18], rsi\n        add      rbx, 40\n-       cmp      gword ptr [rbx], 0\n-       je       SHORT G_M46157_IG24\n        mov      rsi, gword ptr [rbx]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M46157_IG24\n        mov      rdx, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[Consul.QueryResult\u00601[System.IO.Stream]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        jmp      SHORT G_M46157_IG28\n-\t\t\t\t\t\t;; size=44 bbWeight=1 PerfScore 12.00\n\u002B\t\t\t\t\t\t;; size=43 bbWeight=1 PerfScore 10.25\n G_M46157_IG24:\n        test     r15, r15\n        je       SHORT G_M46157_IG25\n@@ -529,5 \u002B528,5 @@ RWD00  \tdq\t3F847AE147AE147Bh\t;         0.01\n RWD08  \tdq\t43E0000000000000h\n \n \n-; Total bytes of code 1458, prolog size 50, PerfScore 315.75, instruction count 330, allocated bytes for code 1458 (MethodHash=3d444bb2) for method Consul.GetRequest\u00601\u002B\u003CExecuteStreaming\u003Ed__11[System.Nullable\u00601[int]]:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 1431, prolog size 50, PerfScore 309.25, instruction count 327, allocated bytes for code 1431 (MethodHash=3d444bb2) for method Consul.GetRequest\u00601\u002B\u003CExecuteStreaming\u003Ed__11[System.Nullable\u00601[int]]:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1458,"DiffBytes":1431},{"Assembly":"CsvHelper.dasm","Method":"CsvHelper.Configuration.ClassMap:AutoMapConstructorParameters(CsvHelper.Configuration.ClassMap,CsvHelper.CsvContext,System.Collections.Generic.LinkedList\u00601[System.Type],int):this (FullOpts)","Category":"improvement","Description":"2,883 -\u003E 2,678 bytes (-205)","ExtraInfo":null,"Diff":"@@ -9,127 \u002B9,123 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T13] ( 12, 22   )     ref  -\u003E  r15         this class-hnd single-def \u003CCsvHelper.Configuration.ClassMap\u003E\n-;  V01 arg1         [V01,T15] ( 14, 21   )     ref  -\u003E  r14         class-hnd single-def \u003CCsvHelper.Configuration.ClassMap\u003E\n-;  V02 arg2         [V02,T16] ( 12, 21   )     ref  -\u003E  r13         class-hnd single-def \u003CCsvHelper.CsvContext\u003E\n\u002B;  V01 arg1         [V01,T14] ( 14, 21   )     ref  -\u003E  r14         class-hnd single-def \u003CCsvHelper.Configuration.ClassMap\u003E\n\u002B;  V02 arg2         [V02,T15] ( 11, 19   )     ref  -\u003E  r13         class-hnd single-def \u003CCsvHelper.CsvContext\u003E\n ;  V03 arg3         [V03,T00] ( 33,146   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Collections.Generic.LinkedList\u00601[System.Type]\u003E\n ;  V04 arg4         [V04,T25] (  7, 11   )     int  -\u003E  r12         single-def\n-;  V05 loc0         [V05,T44] (  5,  9   )     ref  -\u003E  [rbp-0x60]  class-hnd spill-single-def \u003CSystem.Type\u003E\n\u002B;  V05 loc0         [V05,T40] (  5,  9   )     ref  -\u003E  [rbp-0x60]  class-hnd spill-single-def \u003CSystem.Type\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u003CCsvHelper.GetConstructorArgs\u003E\n ;  V07 loc2         [V07,T26] (  3, 13   )     ref  -\u003E  [rbp-0x68]  class-hnd spill-single-def \u003CSystem.Reflection.ParameterInfo[]\u003E\n-;* V08 loc3         [V08,T86] (  0,  0   )     int  -\u003E  zero-ref   \n\u002B;* V08 loc3         [V08,T78] (  0,  0   )     int  -\u003E  zero-ref   \n ;  V09 loc4         [V09,T10] ( 14, 32   )     ref  -\u003E  [rbp-0x70]  class-hnd spill-single-def \u003CSystem.Reflection.ParameterInfo\u003E\n-;  V10 loc5         [V10,T19] (  9, 20   )     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CCsvHelper.Configuration.ParameterMap\u003E\n-;  V11 loc6         [V11,T14] ( 12, 24   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u003CSystem.Reflection.TypeInfo\u003E\n-;  V12 loc7         [V12,T82] (  2,  4   )   ubyte  -\u003E  rdi        \n-;  V13 loc8         [V13,T79] (  2,  4   )     ref  -\u003E  rsi         class-hnd \u003CSystem.Type\u003E\n-;  V14 loc9         [V14,T67] (  3,  6   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u003CCsvHelper.Configuration.ClassMap\u003E\n\u002B;  V10 loc5         [V10,T18] (  9, 20   )     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CCsvHelper.Configuration.ParameterMap\u003E\n\u002B;  V11 loc6         [V11,T23] (  8, 16   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u003CSystem.Reflection.TypeInfo\u003E\n\u002B;  V12 loc7         [V12,T74] (  2,  4   )   ubyte  -\u003E  rdi        \n\u002B;  V13 loc8         [V13,T71] (  2,  4   )     ref  -\u003E  rsi         class-hnd \u003CSystem.Type\u003E\n\u002B;  V14 loc9         [V14,T59] (  3,  6   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u003CCsvHelper.Configuration.ClassMap\u003E\n ;* V15 loc10        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CCsvHelper.Configuration.ParameterReferenceMap\u003E\n-;* V16 loc11        [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op \u003CCsvHelper.ReferenceHeaderPrefixArgs\u003E\n-;  V17 loc12        [V17,T80] (  2,  4   )     ref  -\u003E  rsi         class-hnd \u003CSystem.Type\u003E\n-;  V18 loc13        [V18,T68] (  3,  6   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u003CCsvHelper.Configuration.ClassMap\u003E\n\u002B;* V16 loc11        [V16    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u003CCsvHelper.ReferenceHeaderPrefixArgs\u003E\n\u002B;  V17 loc12        [V17,T72] (  2,  4   )     ref  -\u003E  rsi         class-hnd \u003CSystem.Type\u003E\n\u002B;  V18 loc13        [V18,T60] (  3,  6   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u003CCsvHelper.Configuration.ClassMap\u003E\n ;# V19 OutArgs      [V19    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V20 tmp1         [V20,T09] (  6, 36   )     ref  -\u003E  [rbp-0x98]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CCsvHelper.Configuration.ParameterMap\u003E\n ;* V21 tmp2         [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022non-inline candidate call\u0022 \u003CCsvHelper.TypeConversion.TypeConverterCache\u003E\n-;  V22 tmp3         [V22,T50] (  2,  8   )     ref  -\u003E  [rbp-0xA0]  class-hnd exact spill-single-def \u0022non-inline candidate call\u0022 \u003CSystem.RuntimeType\u003E\n-;  V23 tmp4         [V23,T20] (  5, 20   )     ref  -\u003E  [rbp-0xA8]  class-hnd exact spill-single-def \u0022NewArr temp\u0022 \u003CCsvHelper.TypeConversion.TypeConverterOptions[]\u003E\n\u002B;  V22 tmp3         [V22,T44] (  2,  8   )     ref  -\u003E  [rbp-0xA0]  class-hnd exact spill-single-def \u0022non-inline candidate call\u0022 \u003CSystem.RuntimeType\u003E\n\u002B;  V23 tmp4         [V23,T19] (  5, 20   )     ref  -\u003E  [rbp-0xA8]  class-hnd exact spill-single-def \u0022NewArr temp\u0022 \u003CCsvHelper.TypeConversion.TypeConverterOptions[]\u003E\n ;  V24 tmp5         [V24,T27] (  3, 12   )     ref  -\u003E  [rbp-0xB0]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CCsvHelper.Configuration.ParameterMapData\u003E\n ;  V25 tmp6         [V25,T28] (  3, 12   )     ref  -\u003E  [rbp-0xB8]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CCsvHelper.TypeConversion.TypeConverterOptions\u003E\n ;* V26 tmp7         [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022non-inline candidate call\u0022 \u003CCsvHelper.TypeConversion.TypeConverterOptionsCache\u003E\n-;  V27 tmp8         [V27,T51] (  2,  8   )     ref  -\u003E  rax         class-hnd \u0022Strict ordering of exceptions for Array store\u0022 \u003CCsvHelper.TypeConversion.TypeConverterOptions\u003E\n-;  V28 tmp9         [V28,T52] (  2,  8   )     ref  -\u003E  rax         class-hnd \u0022Strict ordering of exceptions for Array store\u0022 \u003CCsvHelper.TypeConversion.TypeConverterOptions\u003E\n\u002B;  V27 tmp8         [V27,T45] (  2,  8   )     ref  -\u003E  rax         class-hnd \u0022Strict ordering of exceptions for Array store\u0022 \u003CCsvHelper.TypeConversion.TypeConverterOptions\u003E\n\u002B;  V28 tmp9         [V28,T46] (  2,  8   )     ref  -\u003E  rax         class-hnd \u0022Strict ordering of exceptions for Array store\u0022 \u003CCsvHelper.TypeConversion.TypeConverterOptions\u003E\n ;* V29 tmp10        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022non-inline candidate call\u0022 \u003CCsvHelper.Configuration.ParameterMapData\u003E\n ;  V30 tmp11        [V30,T29] (  3, 12   )     ref  -\u003E  [rbp-0xC0]  class-hnd exact spill-single-def \u0022non-inline candidate call\u0022 \u003CCsvHelper.ShouldUseConstructorParameters\u003E\n ;* V31 tmp12        [V31    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CCsvHelper.ShouldUseConstructorParametersArgs\u003E\n ;  V32 tmp13        [V32,T30] (  3, 12   )     ref  -\u003E  [rbp-0xC8]  class-hnd exact spill-single-def \u0022NewArr temp\u0022 \u003CSystem.Type[]\u003E\n ;* V33 tmp14        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.RuntimeType\u003E\n-;  V34 tmp15        [V34,T53] (  2,  8   )     ref  -\u003E  rax         class-hnd \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.Type\u003E\n\u002B;  V34 tmp15        [V34,T47] (  2,  8   )     ref  -\u003E  rax         class-hnd \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.Type\u003E\n ;* V35 tmp16        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CCsvHelper.IObjectResolver\u003E\n ;  V36 tmp17        [V36,T31] (  3, 12   )     ref  -\u003E  [rbp-0xD0]  class-hnd exact spill-single-def \u0022NewArr temp\u0022 \u003CSystem.Type[]\u003E\n ;* V37 tmp18        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.RuntimeType\u003E\n-;  V38 tmp19        [V38,T54] (  2,  8   )     ref  -\u003E  rax         class-hnd \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.Type\u003E\n\u002B;  V38 tmp19        [V38,T48] (  2,  8   )     ref  -\u003E  rax         class-hnd \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.Type\u003E\n ;* V39 tmp20        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CCsvHelper.IObjectResolver\u003E\n-;  V40 tmp21        [V40,T21] (  5, 20   )     ref  -\u003E  [rbp-0xD8]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CCsvHelper.Configuration.ParameterReferenceMap\u003E\n-;  V41 tmp22        [V41,T32] (  3, 12   )     ref  -\u003E  [rbp-0xE0]  class-hnd \u0022non-inline candidate call\u0022 \u003CSystem.Type\u003E\n\u002B;  V40 tmp21        [V40,T24] (  4, 16   )     ref  -\u003E  [rbp-0xD8]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CCsvHelper.Configuration.ParameterReferenceMap\u003E\n\u002B;* V41 tmp22        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022non-inline candidate call\u0022 \u003CSystem.Type\u003E\n ;* V42 tmp23        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CCsvHelper.Configuration.ParameterReferenceMapData\u003E\n-;  V43 tmp24        [V43,T87] (  3,  0   )     ref  -\u003E  r12         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n-;  V44 tmp25        [V44,T88] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V43 tmp24        [V43,T79] (  3,  0   )     ref  -\u003E  r12         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V44 tmp25        [V44,T80] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V45 tmp26        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Type\u003E\n ;  V46 tmp27        [V46,T11] (  7, 28   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[CsvHelper.Configuration.ParameterMap]\u003E\n-;  V47 tmp28        [V47,T69] (  3,  6   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CCsvHelper.Configuration.ParameterMap[]\u003E\n... diff truncated; middle omitted ...\n        mov      edx, 1\n        mov      rax, 0xD1FFAB1E      ; code for System.Attribute:IsDefined(System.Reflection.ParameterInfo,System.Type,bool):bool\n        call     [rax]System.Attribute:IsDefined(System.Reflection.ParameterInfo,System.Type,bool):bool\n        test     eax, eax\n-       jne      G_M65324_IG39\n\u002B       jne      G_M65324_IG36\n        mov      rdi, r13\n        mov      rax, qword ptr [r13]\n        mov      rax, qword ptr [rax\u002B0x40]\n        mov      qword ptr [rbp-0x50], rax\n        call     [rax\u002B0x30]CsvHelper.CsvContext:get_TypeConverterCache():CsvHelper.TypeConversion.TypeConverterCache:this\n-       mov      gword ptr [rbp-0x138], rax\n\u002B       mov      gword ptr [rbp-0x128], rax\n        mov      rdi, gword ptr [rbp-0x70]\n        mov      rcx, qword ptr [rdi]\n        mov      rcx, qword ptr [rcx\u002B0x40]\n        mov      qword ptr [rbp-0x30], rcx\n        call     [rcx\u002B0x38]System.Reflection.ParameterInfo:get_ParameterType():System.Type:this\n        mov      rsi, rax\n-       mov      rdi, gword ptr [rbp-0x138]\n\u002B       mov      rdi, gword ptr [rbp-0x128]\n        mov      rax, 0xD1FFAB1E      ; code for CsvHelper.TypeConversion.TypeConverterCache:GetConverter(System.Type):CsvHelper.TypeConversion.ITypeConverter:this\n        cmp      dword ptr [rdi], edi\n        call     [rax]CsvHelper.TypeConversion.TypeConverterCache:GetConverter(System.Type):CsvHelper.TypeConversion.ITypeConverter:this\n@@ -637,9 \u002B583,9 @@ G_M65324_IG33:\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       G_M65324_IG36\n\u002B       je       G_M65324_IG33\n \t\t\t\t\t\t;; size=191 bbWeight=2 PerfScore 96.00\n-G_M65324_IG34:\n\u002BG_M65324_IG31:\n        mov      rdi, 0xD1FFAB1E      ; System.Type[]\n        xor      esi, esi\n        call     CORINFO_HELP_NEWARR_1_PTR\n@@ -661,12 \u002B607,12 @@ G_M65324_IG34:\n        mov      rax, qword ptr [rbp-0x40]\n        call     [rax\u002B0x08]System.Type:IsValueTypeImpl():bool:this\n        test     eax, eax\n-       je       SHORT G_M65324_IG35\n\u002B       je       SHORT G_M65324_IG32\n        mov      rdi, gword ptr [rbp-0x80]\n        mov      rax, qword ptr [rbp-0x40]\n        call     [rax]System.Type:IsPrimitiveImpl():bool:this\n        test     eax, eax\n-       jne      SHORT G_M65324_IG35\n\u002B       jne      SHORT G_M65324_IG32\n        mov      rdi, gword ptr [rbp-0x80]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x70]\n@@ -674,7 \u002B620,7 @@ G_M65324_IG34:\n        test     eax, eax\n        je       G_M65324_IG14\n \t\t\t\t\t\t;; size=119 bbWeight=2 PerfScore 74.00\n-G_M65324_IG35:\n\u002BG_M65324_IG32:\n        mov      rdi, gword ptr [r13\u002B0x38]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x90]\n@@ -690,7 \u002B636,7 @@ G_M65324_IG35:\n        test     eax, eax\n        jne      G_M65324_IG03\n \t\t\t\t\t\t;; size=60 bbWeight=2 PerfScore 45.00\n-G_M65324_IG36:\n\u002BG_M65324_IG33:\n        mov      rax, gword ptr [rbp-0x78]\n        mov      rcx, gword ptr [rax\u002B0x08]\n        mov      gword ptr [rbp-0xB0], rcx\n@@ -711,12 \u002B657,12 @@ G_M65324_IG36:\n        mov      rdi, r13\n        mov      rax, qword ptr [rbp-0x50]\n        call     [rax\u002B0x20]CsvHelper.CsvContext:get_TypeConverterOptionsCache():CsvHelper.TypeConversion.TypeConverterOptionsCache:this\n-       mov      gword ptr [rbp-0x140], rax\n\u002B       mov      gword ptr [rbp-0x130], rax\n        mov      rdi, gword ptr [rbp-0x70]\n        mov      rcx, qword ptr [rbp-0x30]\n        call     [rcx\u002B0x38]System.Reflection.ParameterInfo:get_ParameterType():System.Type:this\n        mov      rsi, rax\n-       mov      rdi, gword ptr [rbp-0x140]\n\u002B       mov      rdi, gword ptr [rbp-0x130]\n        mov      rax, 0xD1FFAB1E      ; code for CsvHelper.TypeConversion.TypeConverterOptionsCache:GetOptions(System.Type):CsvHelper.TypeConversion.TypeConverterOptions:this\n        cmp      dword ptr [rdi], edi\n        call     [rax]CsvHelper.TypeConversion.TypeConverterOptionsCache:GetOptions(System.Type):CsvHelper.TypeConversion.TypeConverterOptions:this\n@@ -730,7 \u002B676,7 @@ G_M65324_IG36:\n        mov      rcx, qword ptr [rcx\u002B0x50]\n        call     [rcx]CsvHelper.Configuration.ParameterMapData:get_TypeConverterOptions():CsvHelper.TypeConversion.TypeConverterOptions:this\n \t\t\t\t\t\t;; size=190 bbWeight=2 PerfScore 90.50\n-G_M65324_IG37:\n\u002BG_M65324_IG34:\n        mov      rcx, gword ptr [rbp-0xA8]\n        lea      rdi, bword ptr [rcx\u002B0x20]\n        mov      rsi, rax\n@@ -745,13 \u002B691,13 @@ G_M65324_IG37:\n        call     [rax\u002B0x08]CsvHelper.Configuration.ParameterMapData:set_TypeConverterOptions(CsvHelper.TypeConversion.TypeConverterOptions):this\n        mov      rax, gword ptr [rbp-0x78]\n        mov      rcx, gword ptr [rax\u002B0x08]\n-       mov      gword ptr [rbp-0x148], rcx\n\u002B       mov      gword ptr [rbp-0x138], rcx\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rdx, qword ptr [rbp-0x38]\n        call     [rdx]CsvHelper.Configuration.ClassMap:GetMaxIndex(bool):int:this\n        lea      esi, [rax\u002B0x01]\n-       mov      rdi, gword ptr [rbp-0x148]\n\u002B       mov      rdi, gword ptr [rbp-0x138]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x18]CsvHelper.Configuration.ParameterMapData:set_Index(int):this\n@@ -760,18 \u002B706,18 @@ G_M65324_IG37:\n        mov      rax, qword ptr [r15]\n        mov      rax, qword ptr [rax\u002B0x50]\n        call     [rax\u002B0x30]CsvHelper.Configuration.ClassMap:ApplyAttributes(CsvHelper.Configuration.ParameterMap):this\n-       jmp      G_M65324_IG29\n\u002B       jmp      G_M65324_IG26\n \t\t\t\t\t\t;; size=129 bbWeight=2 PerfScore 85.00\n-G_M65324_IG38:\n\u002BG_M65324_IG35:\n        lea      esi, [rcx\u002B0x01]\n        mov      dword ptr [rax\u002B0x10], esi\n        mov      esi, ecx\n        mov      rdx, gword ptr [rbp-0x78]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST\n        call     [rax]CORINFO_HELP_ARRADDR_ST\n-       jmp      G_M65324_IG30\n\u002B       jmp      G_M65324_IG27\n \t\t\t\t\t\t;; size=29 bbWeight=2 PerfScore 16.00\n-G_M65324_IG39:\n\u002BG_M65324_IG36:\n        mov      rdi, r15\n        mov      rsi, gword ptr [rbp-0x98]\n        mov      rax, qword ptr [r15]\n@@ -785,31 \u002B731,31 @@ G_M65324_IG39:\n        mov      rdi, gword ptr [rax\u002B0x08]\n        mov      ecx, dword ptr [rax\u002B0x10]\n        cmp      dword ptr [rdi\u002B0x08], ecx\n-       ja       SHORT G_M65324_IG40\n\u002B       ja       SHORT G_M65324_IG37\n        mov      rdi, rax\n        mov      rsi, gword ptr [rbp-0x98]\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n-       jmp      G_M65324_IG30\n\u002B       jmp      G_M65324_IG27\n \t\t\t\t\t\t;; size=75 bbWeight=2 PerfScore 64.00\n-G_M65324_IG40:\n\u002BG_M65324_IG37:\n        lea      esi, [rcx\u002B0x01]\n        mov      dword ptr [rax\u002B0x10], esi\n        mov      esi, ecx\n        mov      rdx, gword ptr [rbp-0x98]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST\n        call     [rax]CORINFO_HELP_ARRADDR_ST\n-       jmp      G_M65324_IG30\n\u002B       jmp      G_M65324_IG27\n \t\t\t\t\t\t;; size=32 bbWeight=2 PerfScore 16.00\n-G_M65324_IG41:\n\u002BG_M65324_IG38:\n        mov      rdi, r14\n        mov      esi, r12d\n        mov      rbx, qword ptr [rbp-0x38]\n        call     [rbx\u002B0x08]CsvHelper.Configuration.ClassMap:ReIndex(int):int:this\n        nop      \n \t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.75\n-G_M65324_IG42:\n-       add      rsp, 296\n\u002BG_M65324_IG39:\n\u002B       add      rsp, 280\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -818,7 \u002B764,7 @@ G_M65324_IG42:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M65324_IG43:\n\u002BG_M65324_IG40:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -830,7 \u002B776,7 @@ G_M65324_IG43:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M65324_IG44:\n\u002BG_M65324_IG41:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n@@ -850,7 \u002B796,7 @@ G_M65324_IG44:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=91 bbWeight=0 PerfScore 0.00\n-G_M65324_IG45:\n\u002BG_M65324_IG42:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -863,5 \u002B809,5 @@ G_M65324_IG45:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 2883, prolog size 40, PerfScore 1870.50, instruction count 641, allocated bytes for code 2883 (MethodHash=b3a700d3) for method CsvHelper.Configuration.ClassMap:AutoMapConstructorParameters(CsvHelper.Configuration.ClassMap,CsvHelper.CsvContext,System.Collections.Generic.LinkedList\u00601[System.Type],int):this (FullOpts)\n\u002B; Total bytes of code 2678, prolog size 40, PerfScore 1736.00, instruction count 597, allocated bytes for code 2678 (MethodHash=b3a700d3) for method CsvHelper.Configuration.ClassMap:AutoMapConstructorParameters(CsvHelper.Configuration.ClassMap,CsvHelper.CsvContext,System.Collections.Generic.LinkedList\u00601[System.Type],int):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":2883,"DiffBytes":2678},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.CompositeDistributedLockHandleExtensions\u002B\u003C\u003Ec:\u003CTryAcquireAllLocksInternalAsync\u003Eb__2_1(Medallion.Threading.IDistributedLock,System.TimeSpan,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask\u00601[Medallion.Threading.IDistributedSynchronizationHandle]:this (FullOpts)","Category":"same-size","Description":"153 -\u003E 153 bytes (0)","ExtraInfo":null,"Diff":"@@ -1,91 \u002B1,91 @@\n ; Assembly listing for method Medallion.Threading.CompositeDistributedLockHandleExtensions\u002B\u003C\u003Ec:\u003CTryAcquireAllLocksInternalAsync\u003Eb__2_1(Medallion.Threading.IDistributedLock,System.TimeSpan,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask\u00601[Medallion.Threading.IDistributedSynchronizationHandle]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; fully interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;* V00 this         [V00    ] (  0,  0   )     ref  -\u003E  zero-ref    this class-hnd single-def \u003CMedallion.Threading.CompositeDistributedLockHandleExtensions\u002B\u003C\u003Ec\u003E\n ;  V01 RetBuf       [V01,T00] (  8,  5   )    long  -\u003E  rbx         single-def\n ;  V02 arg1         [V02,T01] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CMedallion.Threading.IDistributedLock\u003E\n ;* V03 arg2         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.TimeSpan\u003E\n ;* V04 arg3         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V06 tmp1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMedallion.Threading.IDistributedSynchronizationHandle\u003E\n ;* V07 tmp2         [V07    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.ValueTask\u00601[Medallion.Threading.IDistributedSynchronizationHandle]\u003E\n ;  V08 tmp3         [V08,T03] (  3,  2   )    long  -\u003E  r13         single-def \u0022field V03._ticks (fldOffset=0x0)\u0022 P-INDEP\n ;  V09 tmp4         [V09,T02] (  3,  2   )     ref  -\u003E  r14         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n ;* V10 tmp5         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V07._obj (fldOffset=0x0)\u0022 P-INDEP\n ;  V11 tmp6         [V11,T06] (  2,  1   )     ref  -\u003E  rax         single-def \u0022field V07._result (fldOffset=0x8)\u0022 P-INDEP\n ;* V12 tmp7         [V12    ] (  0,  0   )   short  -\u003E  zero-ref    \u0022field V07._token (fldOffset=0x10)\u0022 P-INDEP\n ;* V13 tmp8         [V13    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022field V07._continueOnCapturedContext (fldOffset=0x12)\u0022 P-INDEP\n ;  V14 rat0         [V14,T04] (  2,  4   )    long  -\u003E  rax         \u0022TLS field access\u0022\n ;  V15 rat1         [V15,T05] (  2,  4   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 0\n \n G_M26948_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     rbx\n        lea      rbp, [rsp\u002B0x20]\n        mov      rbx, rsi\n        mov      r15, rdx\n        mov      r13, rcx\n        mov      r14, r8\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 6.50\n G_M26948_IG02:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        cmp      byte  ptr [rax\u002B0x10], 0\n        je       SHORT G_M26948_IG05\n \t\t\t\t\t\t;; size=32 bbWeight=1 PerfScore 6.75\n G_M26948_IG03:\n        mov      rdi, r15\n        mov      rdx, r14\n        mov      rsi, r13\n        mov      r11, 0xD1FFAB1E      ; code for Medallion.Threading.IDistributedLock:TryAcquire(System.TimeSpan,System.Threading.CancellationToken):Medallion.Threading.IDistributedSynchronizationHandle:this\n        call     [r11]Medallion.Threading.IDistributedLock:TryAcquire(System.TimeSpan,System.Threading.CancellationToken):Medallion.Threading.IDistributedSynchronizationHandle:this\n        xor      rdi, rdi\n        mov      gword ptr [rbx], rdi\n        lea      rdi, [rbx\u002B0x08]\n        mov      rsi, rax\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n        mov      word  ptr [rbx\u002B0x10], 0\n        mov      byte  ptr [rbx\u002B0x12], 1\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 4.62\n G_M26948_IG04:\n        pop      rbx\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 1.75\n G_M26948_IG05:\n        mov      rdi, r15\n        mov      rcx, r14\n        mov      rsi, rbx\n        mov      rdx, r13\n        mov      r11, 0xD1FFAB1E      ; code for Medallion.Threading.IDistributedLock:TryAcquireAsync(System.TimeSpan,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask\u00601[Medallion.Threading.IDistributedSynchronizationHandle]:this\n        cmp      dword ptr [rdi], edi\n \t\t\t\t\t\t;; size=24 bbWeight=0.50 PerfScore 1.62\n G_M26948_IG06:\n        pop      rbx\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        tail.jmp [r11]Medallion.Threading.IDistributedLock:TryAcquireAsync(System.TimeSpan,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask\u00601[Medallion.Threading.IDistributedSynchronizationHandle]:this\n \t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 2.25\n \n ; Total bytes of code 153, prolog size 25, PerfScore 23.50, instruction count 47, allocated bytes for code 153 (MethodHash=460a96bb) for method Medallion.Threading.CompositeDistributedLockHandleExtensions\u002B\u003C\u003Ec:\u003CTryAcquireAllLocksInternalAsync\u003Eb__2_1(Medallion.Threading.IDistributedLock,System.TimeSpan,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask\u00601[Medallion.Threading.IDistributedSynchronizationHandle]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":153,"DiffBytes":153},{"Assembly":"DnsClient.dasm","Method":"DnsClient.LookupClient:HandleOptRecords(DnsClient.DnsQuerySettings,DnsClient.LookupClientAudit,DnsClient.NameServer,DnsClient.DnsResponseMessage):this (FullOpts)","Category":"improvement","Description":"1,043 -\u003E 935 bytes (-108)","ExtraInfo":null,"Diff":"@@ -14,48 \u002B14,48 @@\n ;  V03 arg3         [V03,T04] (  5,  3.50)     ref  -\u003E  r13         class-hnd single-def \u003CDnsClient.NameServer\u003E\n ;  V04 arg4         [V04,T00] (  7,  4.50)     ref  -\u003E  rbx         class-hnd single-def \u003CDnsClient.DnsResponseMessage\u003E\n ;* V05 loc0         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CDnsClient.Protocol.DnsResourceRecord\u003E\n-;  V06 loc1         [V06,T10] (  7,  3.50)     ref  -\u003E  r12         class-hnd single-def \u003CDnsClient.Protocol.Options.OptRecord\u003E\n\u002B;  V06 loc1         [V06,T08] (  7,  3.50)     ref  -\u003E  r12         class-hnd single-def \u003CDnsClient.Protocol.Options.OptRecord\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V08 tmp1         [V08    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n ;  V09 tmp2         [V09,T03] (  6,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n-;  V10 tmp3         [V10,T11] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CDnsClient.Internal.ILogger\u003E\n-;  V11 tmp4         [V11,T12] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Int32\u003E\n\u002B;  V10 tmp3         [V10,T09] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CDnsClient.Internal.ILogger\u003E\n\u002B;  V11 tmp4         [V11,T10] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Int32\u003E\n ;* V12 tmp5         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Strict ordering of exceptions for Array store\u0022 \u003CDnsClient.DnsQuestion\u003E\n-;  V13 tmp6         [V13,T13] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Int16\u003E\n-;  V14 tmp7         [V14,T22] (  2,  2   )     int  -\u003E  [rbp-0x2C]  spill-single-def \u0022impAppendStmt\u0022\n-;  V15 tmp8         [V15,T23] (  2,  2   )     int  -\u003E  [rbp-0x30]  spill-single-def \u0022impAppendStmt\u0022\n\u002B;  V13 tmp6         [V13,T11] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Int16\u003E\n\u002B;  V14 tmp7         [V14,T20] (  2,  2   )     int  -\u003E  [rbp-0x2C]  spill-single-def \u0022impAppendStmt\u0022\n\u002B;  V15 tmp8         [V15,T21] (  2,  2   )     int  -\u003E  [rbp-0x30]  spill-single-def \u0022impAppendStmt\u0022\n ;* V16 tmp9         [V16    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022impAppendStmt\u0022\n ;  V17 tmp10        [V17,T06] (  4,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n-;  V18 tmp11        [V18,T14] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CDnsClient.Internal.ILogger\u003E\n-;  V19 tmp12        [V19,T15] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Int32\u003E\n\u002B;  V18 tmp11        [V18,T12] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CDnsClient.Internal.ILogger\u003E\n\u002B;  V19 tmp12        [V19,T13] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Int32\u003E\n ;* V20 tmp13        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Strict ordering of exceptions for Array store\u0022 \u003CDnsClient.DnsQuestion\u003E\n ;  V21 tmp14        [V21,T07] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[DnsClient.Protocol.DnsResourceRecord]\u003E\n ;  V22 tmp15        [V22    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;  V23 tmp16        [V23,T16] (  4,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CDnsClient.Protocol.DnsResourceRecord\u003E\n ;  V24 tmp17        [V24,T17] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[DnsClient.Protocol.DnsResourceRecord]\u003E\n-;  V25 tmp18        [V25,T20] (  2,  2   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CDnsClient.DnsResponseHeader\u003E\n-;  V26 tmp19        [V26,T08] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[DnsClient.DnsQuestion]\u003E\n-;  V27 tmp20        [V27    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V28 tmp21        [V28,T26] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CDnsClient.DnsQuestion\u003E\n-;  V29 tmp22        [V29,T18] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[DnsClient.DnsQuestion]\u003E\n-;  V30 tmp23        [V30,T30] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V25 tmp18        [V25,T18] (  2,  2   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CDnsClient.DnsResponseHeader\u003E\n\u002B;  V26 tmp19        [V26,T14] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[DnsClient.DnsQuestion]\u003E\n\u002B;  V27 tmp20        [V27    ] (  1,  0.50)   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V28 tmp21        [V28,T25] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CDnsClient.DnsQuestion\u003E\n\u002B;* V29 tmp22        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[DnsClient.DnsQuestion]\u003E\n\u002B;  V30 tmp23        [V30,T28] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n ;* V31 tmp24        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n ;* V32 tmp25        [V32    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V33 tmp26        [V33    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n-;  V34 tmp27        [V34,T21] (  2,  2   )     ref  -\u003E  [rbp-0x58]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CDnsClient.DnsResponseHeader\u003E\n-;  V35 tmp28        [V35,T09] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[DnsClient.DnsQuestion]\u003E\n-;  V36 tmp29        [V36    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V37 tmp30        [V37,T27] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CDnsClient.DnsQuestion\u003E\n-;  V38 tmp31        [V38,T19] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[DnsClient.DnsQuestion]\u003E\n-;  V39 tmp32        [V39,T31] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V34 tmp27        [V34,T19] (  2,  2   )     ref  -\u003E  [rbp-0x58]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CDnsClient.DnsResponseHeader\u003E\n\u002B;  V35 tmp28        [V35,T15] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[DnsClient.DnsQuestion]\u003E\n\u002B;  V36 tmp29        [V36    ] (  1,  0.50)   ubyte  -\u003E  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V37 tmp30        [V37,T26] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CDnsClient.DnsQuestion\u003E\n\u002B;* V38 tmp31        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[DnsClient.DnsQuestion]\u003E\n\u002B;  V39 tmp32        [V39,T29] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n ;* V40 tmp33        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n ;* V41 tmp34        [V41    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V08.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp35        [V42,T29] (  2,  1   )     int  -\u003E  rdi         single-def \u0022field V08.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V42 tmp35        [V42,T27] (  2,  1   )     int  -\u003E  rdi         single-def \u0022field V08.value (fldOffset=0x4)\u0022 P-INDEP\n ;* V43 tmp36        [V43    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022field V33.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V44 tmp37        [V44    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V33.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V45 tmp38        [V45,T24] (  2,  2   )     int  -\u003E   r8         \u0022argument with side effect\u0022\n-;  V46 tmp39        [V46,T25] (  2,  2   )     int  -\u003E  [rbp-0x4C]  spill-single-def \u0022argument with side effect\u0022\n-;  V47 cse0         [V47,T28] (  3,  1.50)     int  -\u003E  rax         \u0022CSE #01: moderate\u0022\n\u002B;  V45 tmp38        [V45,T22] (  2,  2   )     int  -\u003E   r8         \u0022argument with side effect\u0022\n\u002B;  V46 tmp39        [V46,T23] (  2,  2   )     int  -\u003E  [rbp-0x4C]  spill-single-def \u0022argument with side effect\u0022\n\u002B;  V47 cse0         [V47,T24] (  3,  1.50)     int  -\u003E  rax         \u0022CSE #01: moderate\u0022\n ;\n ; Lcl frame size = 56\n \n@@ -83,7 \u002B83,7 @@ G_M23688_IG02:\n        cmp      dword ptr [rdi], edi\n        call     [rax]DnsClient.DnsQuerySettings:get_UseExtendedDns():bool:this\n        test     eax, eax\n-       je       G_M23688_IG13\n\u002B       je       G_M23688_IG09\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 6.75\n G_M23688_IG03:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n@@ -92,7 \u002B92,7 @@ G_M23688_IG03:\n        call     [rax]System.Linq.RecordCollectionExtension:OfRecordType(System.Collections.Generic.IEnumerable\u00601[DnsClient.Protocol.DnsResourceRecord],int):System.Collections.Generic.IEnumerable\u00601[DnsClient.Protocol.DnsResourceRecord]\n        mov      r12, rax\n        test     r12, r12\n-       je       G_M23688_IG15\n\u002B       je       G_M23688_IG11\n        mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[DnsClient.Protocol.DnsResourceRecord]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n@@ -115,14 \u002B115,14 @@ G_M23688_IG04:\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n G_M23688_IG05:\n        test     rax, rax\n-       je       G_M23688_IG10\n\u002B       je       G_M23688_IG08\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; DnsClient.Protocol.Options.OptRecord\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        mov      r12, rax\n        test     r12, r12\n-       je       G_M23688_IG13\n\u002B       je       G_M23688_IG09\n        test     r14, r14\n        je       SHORT G_M23688_IG06\n        mov      rdi, r14\n@@ -162,7 \u002B162,7 @@ G_M23688_IG07:\n        mov      esi, 1\n        call     [r11]DnsClient.Internal.ILogger:IsEnabled(int):bool:this\n        test     eax, eax\n-       je       G_M23688_IG13\n\u002B       je       G_M23688_IG09\n        mov      r15, gword ptr [r15\u002B0x20]\n        mov      rdi, 0xD1FFAB1E      ; System.Object[]\n        mov      esi, 4\n@@ -178,30 \u002B178,13 @@ G_M23688_IG07:\n        lea      rdi, bword ptr [r14\u002B0x10]\n        mov      rsi, rax\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbx\u002B0x28]\n-       test     rbx, rbx\n-       je       G_M23688_IG15\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[DnsClient.DnsQuestion]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M23688_IG08\n-       lea      rsi, [rbp-0x48]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M23688_IG09\n-\t\t\t\t\t\t;; size=164 bbWeight=0.50 PerfScore 19.25\n-G_M23688_IG08:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x28]\n\u002B       test     rsi, rsi\n\u002B       je       G_M23688_IG11\n        lea      rdx, [rbp-0x48]\n-       mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[DnsClient.DnsQuestion](System.Collections.Generic.IEnumerable\u00601[DnsClient.DnsQuestion],byref):DnsClient.DnsQuestion\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M23688_IG09:\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rax\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -216,7 \u002B199,7 @@ G_M23688_IG09:\n        mov      rsi, rax\n        call     CORINFO_HELP_ASSIGN_REF\n        test     r15, r15\n-       je       G_M23688_IG17\n\u002B       je       G_M23688_IG13\n        mov      rdi, r15\n        mov      r9, r14\n        mov      r11, 0xD1FFAB1E      ; code for DnsClient.Internal.ILogger:Log(int,int,System.Exception,System.String,System.Object[]):this\n@@ -225,15 \u002B208,15 @@ G_M23688_IG09:\n        xor      rcx, rcx\n        mov      r8, 0xD1FFAB1E      ; \u0027Response {0} =\u003E {1} opt record sets buffer of {2} to {3}.\u0027\n        call     [r11]DnsClient.Internal.ILogger:Log(int,int,System.Exception,System.String,System.Object[]):this\n-       jmp      G_M23688_IG13\n-\t\t\t\t\t\t;; size=116 bbWeight=0.50 PerfScore 8.75\n-G_M23688_IG10:\n\u002B       jmp      G_M23688_IG09\n\u002B\t\t\t\t\t\t;; size=257 bbWeight=0.50 PerfScore 22.62\n\u002BG_M23688_IG08:\n        mov      rdi, gword ptr [r15\u002B0x20]\n        mov      r11, 0xD1FFAB1E      ; code for DnsClient.Internal.ILogger:IsEnabled(int):bool:this\n        mov      esi, 2\n        call     [r11]DnsClient.Internal.ILogger:IsEnabled(int):bool:this\n        test     eax, eax\n-       je       G_M23688_IG13\n\u002B       je       G_M23688_IG09\n        mov      r15, gword ptr [r15\u002B0x20]\n        mov      rdi, 0xD1FFAB1E      ; System.Object[]\n        mov      esi, 2\n@@ -247,35 \u002B230,18 @@ G_M23688_IG10:\n        lea      rdi, bword ptr [r14\u002B0x10]\n        mov      rsi, rax\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbx\u002B0x28]\n-       test     rbx, rbx\n-       je       G_M23688_IG15\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[DnsClient.DnsQuestion]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n\u002B       mov      rsi, gword ptr [rbx\u002B0x28]\n\u002B       test     rsi, rsi\n        je       SHORT G_M23688_IG11\n-       lea      rsi, [rbp-0x40]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M23688_IG12\n-\t\t\t\t\t\t;; size=157 bbWeight=0.50 PerfScore 18.25\n-G_M23688_IG11:\n        lea      rdx, [rbp-0x40]\n-       mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[DnsClient.DnsQuestion](System.Collections.Generic.IEnumerable\u00601[DnsClient.DnsQuestion],byref):DnsClient.DnsQuestion\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M23688_IG12:\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rax\n        call     CORINFO_HELP_ASSIGN_REF\n        test     r15, r15\n-       je       SHORT G_M23688_IG16\n\u002B       je       SHORT G_M23688_IG12\n        mov      rdi, r15\n        mov      r9, r14\n        mov      r11, 0xD1FFAB1E      ; code for DnsClient.Internal.ILogger:Log(int,int,System.Exception,System.String,System.Object[]):this\n@@ -284,11 \u002B250,11 @@ G_M23688_IG12:\n        xor      rcx, rcx\n        mov      r8, 0xD1FFAB1E      ; \u0027Response {0} =\u003E {1} is missing the requested OPT record.\u0027\n        call     [r11]DnsClient.Internal.ILogger:Log(int,int,System.Exception,System.String,System.Object[]):this\n-\t\t\t\t\t\t;; size=58 bbWeight=0.50 PerfScore 3.88\n-G_M23688_IG13:\n\u002B\t\t\t\t\t\t;; size=188 bbWeight=0.50 PerfScore 16.75\n\u002BG_M23688_IG09:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M23688_IG14:\n\u002BG_M23688_IG10:\n        add      rsp, 56\n        pop      rbx\n        pop      r12\n@@ -298,13 \u002B264,13 @@ G_M23688_IG14:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M23688_IG15:\n\u002BG_M23688_IG11:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M23688_IG16:\n\u002BG_M23688_IG12:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -316,7 \u002B282,7 @@ G_M23688_IG16:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M23688_IG17:\n\u002BG_M23688_IG13:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -329,5 \u002B295,5 @@ G_M23688_IG17:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1043, prolog size 35, PerfScore 107.08, instruction count 235, allocated bytes for code 1043 (MethodHash=e3f4a377) for method DnsClient.LookupClient:HandleOptRecords(DnsClient.DnsQuerySettings,DnsClient.LookupClientAudit,DnsClient.NameServer,DnsClient.DnsResponseMessage):this (FullOpts)\n\u002B; Total bytes of code 935, prolog size 35, PerfScore 92.08, instruction count 209, allocated bytes for code 935 (MethodHash=e3f4a377) for method DnsClient.LookupClient:HandleOptRecords(DnsClient.DnsQuerySettings,DnsClient.LookupClientAudit,DnsClient.NameServer,DnsClient.DnsResponseMessage):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1043,"DiffBytes":935},{"Assembly":"Elastic.Apm.dasm","Method":"Elastic.Apm.Config.AbstractConfigurationReader:ParseServerUrls(Elastic.Apm.Config.ConfigurationKeyValue):System.Collections.Generic.IReadOnlyList\u00601[System.Uri]:this (FullOpts)","Category":"improvement","Description":"1,205 -\u003E 1,153 bytes (-52)","ExtraInfo":null,"Diff":"@@ -14,8 \u002B14,8 @@\n ;* V03 loc1         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CSystem.String[]\u003E\n ;* V04 loc2         [V04    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[SF] ld-addr-op \u003CSystem.Nullable\u00601[Elastic.Apm.Logging.LoggingExtensions\u002BMaybeLogger]\u003E\n ;* V05 loc3         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u003CElastic.Apm.Logging.LoggingExtensions\u002BMaybeLogger\u003E\n-;  V06 loc4         [V06,T38] (  3,  1.50)     ref  -\u003E  rax         class-hnd exact single-def \u003CSystem.String[]\u003E\n-;* V07 loc5         [V07,T48] (  0,  0   )     int  -\u003E  zero-ref   \n\u002B;  V06 loc4         [V06,T37] (  3,  1.50)     ref  -\u003E  rax         class-hnd exact single-def \u003CSystem.String[]\u003E\n\u002B;* V07 loc5         [V07,T47] (  0,  0   )     int  -\u003E  zero-ref   \n ;  V08 loc6         [V08,T07] (  3, 10   )     ref  -\u003E  r12         class-hnd exact \u003CSystem.String\u003E\n ;  V09 loc7         [V09    ] (  2,  6   )     ref  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003CSystem.Uri\u003E\n ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n@@ -30,20 \u002B30,20 @@\n ;* V19 tmp9         [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V20 tmp10        [V20    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;  V21 tmp11        [V21,T12] (  6,  6   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n-;  V22 tmp12        [V22,T31] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n-;  V23 tmp13        [V23,T32] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n-;  V24 tmp14        [V24,T33] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n\u002B;  V22 tmp12        [V22,T30] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n\u002B;  V23 tmp13        [V23,T31] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n\u002B;  V24 tmp14        [V24,T32] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n ;* V25 tmp15        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.Uri\u003E\n ;  V26 tmp16        [V26,T17] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CElastic.Apm.Logging.IApmLogger\u003E\n ;* V27 tmp17        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V28 tmp18        [V28    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;  V29 tmp19        [V29,T18] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n-;  V30 tmp20        [V30,T34] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n-;  V31 tmp21        [V31,T35] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n-;* V32 tmp22        [V32,T49] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V33 tmp23        [V33,T22] (  3,  3   )     ref  -\u003E  rdi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V34 tmp24        [V34,T23] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Uri]\u003E\n-;  V35 tmp25        [V35,T24] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Uri]\u003E\n\u002B;  V30 tmp20        [V30,T33] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n\u002B;  V31 tmp21        [V31,T34] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n\u002B;* V32 tmp22        [V32,T48] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V33 tmp23        [V33,T21] (  3,  3   )     ref  -\u003E  rdi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V34 tmp24        [V34,T22] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Uri]\u003E\n\u002B;  V35 tmp25        [V35,T23] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Uri]\u003E\n ;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CElastic.Apm.Logging.IApmLogger\u003E\n ;* V37 tmp27        [V37    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[S] \u0022Inline return value spill temp\u0022 \u003CSystem.Nullable\u00601[Elastic.Apm.Logging.LoggingExtensions\u002BMaybeLogger]\u003E\n ;* V38 tmp28        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CElastic.Apm.Logging.IApmLogger\u003E\n@@ -53,7 \u002B53,7 @@\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CElastic.Apm.Logging.IApmLogger\u003E\n ;* V43 tmp33        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022Inline stloc first use temp\u0022\n ;* V44 tmp34        [V44    ] (  0,  0   )  struct (16) zero-ref    \u0022Inlining Arg\u0022 \u003CElastic.Apm.Logging.LoggingExtensions\u002BMaybeLogger\u003E\n-;  V45 tmp35        [V45,T25] (  3,  3   )     ref  -\u003E  rdi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V45 tmp35        [V45,T24] (  3,  3   )     ref  -\u003E  rdi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V46 tmp36        [V46    ] (  2,  2   )  ushort  -\u003E  [rbp-0x44]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inlining Arg\u0022\n ;* V47 tmp37        [V47    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ReadOnlySpan\u00601[char]\u003E\n ;  V48 tmp38        [V48,T00] (  7, 28   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Uri]\u003E\n@@ -69,7 \u002B69,7 @@\n ;* V58 tmp48        [V58    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CElastic.Apm.Logging.IApmLogger\u003E\n ;* V59 tmp49        [V59    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n ;* V60 tmp50        [V60    ] (  0,  0   )  struct (16) zero-ref    \u0022Inlining Arg\u0022 \u003CElastic.Apm.Logging.LoggingExtensions\u002BMaybeLogger\u003E\n-;  V61 tmp51        [V61,T36] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Uri]\u003E\n\u002B;  V61 tmp51        [V61,T35] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Uri]\u003E\n ;* V62 tmp52        [V62    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CElastic.Apm.Logging.IApmLogger\u003E\n ;* V63 tmp53        [V63    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[S] \u0022Inline return value spill temp\u0022 \u003CSystem.Nullable\u00601[Elastic.Apm.Logging.LoggingExtensions\u002BMaybeLogger]\u003E\n ;* V64 tmp54        [V64    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CElastic.Apm.Logging.IApmLogger\u003E\n@@ -79,12 \u002B79,12 @@\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CElastic.Apm.Logging.IApmLogger\u003E\n ;* V69 tmp59        [V69    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022Inline stloc first use temp\u0022\n ;* V70 tmp60        [V70    ] (  0,  0   )  struct (16) zero-ref    \u0022Inlining Arg\u0022 \u003CElastic.Apm.Logging.LoggingExtensions\u002BMaybeLogger\u003E\n-;  V71 tmp61        [V71,T19] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Uri]\u003E\n-;  V72 tmp62        [V72    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x50]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V71 tmp61        [V71,T25] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Uri]\u003E\n\u002B;  V72 tmp62        [V72    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x50]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V73 tmp63        [V73    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V74 tmp64        [V74,T39] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Uri\u003E\n-;  V75 tmp65        [V75,T30] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Uri]\u003E\n-;  V76 tmp66        [V76,T37] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Uri]\u003E\n\u002B;  V74 tmp64        [V74,T43] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Uri\u003E\n\u002B;* V75 tmp65        [V75    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Uri]\u003E\n... diff truncated; middle omitted ...\n ;* V122 tmp112      [V122    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022V41.[016..020)\u0022\n@@ -137,7 \u002B137,7 @@\n ;* V126 tmp116      [V126    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022V67.[000..001)\u0022\n ;* V127 tmp117      [V127    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022V67.[008..016)\u0022\n ;* V128 tmp118      [V128    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022V67.[016..020)\u0022\n-;  V129 cse0        [V129,T44] (  3,  1.50)     int  -\u003E  r14         \u0022CSE #03: moderate\u0022\n\u002B;  V129 cse0        [V129,T42] (  3,  1.50)     int  -\u003E  r14         \u0022CSE #03: moderate\u0022\n ;  V130 rat0        [V130,T04] (  4, 12.50)   byref  -\u003E  r13         \u0022Strength reduced derived IV\u0022\n ;  V131 rat1        [V131,T05] (  4, 12.50)     int  -\u003E  r14         \u0022Trip count IV\u0022\n ;\n@@ -166,7 \u002B166,7 @@ G_M30230_IG02:\n        mov      r14, rax\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M30230_IG22\n\u002B       je       G_M30230_IG20\n \t\t\t\t\t\t;; size=41 bbWeight=1 PerfScore 5.75\n G_M30230_IG03:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.List\u00601[System.Uri]:s_emptyArray\n@@ -175,14 \u002B175,14 @@ G_M30230_IG03:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [rbp-0x38], r14\n        test     rbx, rbx\n-       je       G_M30230_IG20\n\u002B       je       G_M30230_IG18\n \t\t\t\t\t\t;; size=35 bbWeight=1 PerfScore 6.00\n G_M30230_IG04:\n        mov      rdi, gword ptr [rbx\u002B0x18]\n        test     rdi, rdi\n-       je       G_M30230_IG20\n\u002B       je       G_M30230_IG18\n        cmp      dword ptr [rdi\u002B0x08], 0\n-       je       G_M30230_IG20\n\u002B       je       G_M30230_IG18\n        cmp      dword ptr [rbx\u002B0x24], 44\n        jne      G_M30230_IG05\n        mov      r14, gword ptr [r15\u002B0x08]\n@@ -310,10 \u002B310,10 @@ G_M30230_IG10:\n G_M30230_IG11:\n        mov      rdi, gword ptr [rbp-0x38]\n        cmp      dword ptr [rdi\u002B0x10], 1\n-       jle      G_M30230_IG16\n\u002B       jle      G_M30230_IG14\n        mov      r14, gword ptr [r15\u002B0x08]\n        test     r14, r14\n-       je       G_M30230_IG16\n\u002B       je       G_M30230_IG14\n        mov      rdi, r14\n        mov      r11, 0xD1FFAB1E      ; code for Elastic.Apm.Logging.IApmLogger:IsEnabled(int):bool:this\n        mov      esi, 3\n@@ -331,7 \u002B331,7 @@ G_M30230_IG12:\n \t\t\t\t\t\t;; size=8 bbWeight=0.50 PerfScore 0.38\n G_M30230_IG13:\n        test     edi, edi\n-       je       G_M30230_IG16\n\u002B       je       G_M30230_IG14\n        mov      rdi, 0xD1FFAB1E      ; System.Object[]\n        mov      esi, 4\n        call     CORINFO_HELP_NEWARR_1_PTR\n@@ -345,32 \u002B345,15 @@ G_M30230_IG13:\n        mov      rsi, gword ptr [rbx\u002B0x18]\n        lea      rdi, bword ptr [r12\u002B0x20]\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       test     rbx, rbx\n-       je       G_M30230_IG23\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Uri]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M30230_IG14\n-       lea      rsi, [rbp-0x50]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M30230_IG15\n-\t\t\t\t\t\t;; size=135 bbWeight=0.50 PerfScore 15.25\n-G_M30230_IG14:\n\u002B       mov      rsi, gword ptr [rbp-0x38]\n\u002B       test     rsi, rsi\n\u002B       je       G_M30230_IG21\n        lea      rdx, [rbp-0x50]\n-       mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Uri](System.Collections.Generic.IEnumerable\u00601[System.Uri],byref):System.Uri\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M30230_IG15:\n        cmp      byte  ptr [rbp-0x50], 0\n-       je       G_M30230_IG24\n\u002B       je       G_M30230_IG22\n        lea      rdi, bword ptr [r12\u002B0x28]\n        mov      rsi, rax\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -381,11 \u002B364,11 @@ G_M30230_IG15:\n        xor      rcx, rcx\n        mov      rax, 0xD1FFAB1E      ; code for Elastic.Apm.Logging.LoggingExtensions:DoLog(Elastic.Apm.Logging.IApmLogger,int,System.String,System.Exception,System.Object[])\n        call     [rax]Elastic.Apm.Logging.LoggingExtensions:DoLog(Elastic.Apm.Logging.IApmLogger,int,System.String,System.Exception,System.Object[])\n-\t\t\t\t\t\t;; size=56 bbWeight=0.50 PerfScore 4.12\n-G_M30230_IG16:\n\u002B\t\t\t\t\t\t;; size=168 bbWeight=0.50 PerfScore 14.00\n\u002BG_M30230_IG14:\n        mov      rsi, gword ptr [rbp-0x38]\n        cmp      dword ptr [rsi\u002B0x10], 0\n-       jne      SHORT G_M30230_IG18\n\u002B       jne      SHORT G_M30230_IG16\n        lea      rsi, [rbp-0x38]\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for Elastic.Apm.Config.AbstractConfigurationReader:\u003CParseServerUrls\u003Eg__LogAndReturnDefault|28_0(byref):System.Collections.Generic.List\u00601[System.Uri]:this\n@@ -400,6 \u002B383,27 @@ G_M30230_IG16:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=68 bbWeight=0.50 PerfScore 6.88\n\u002BG_M30230_IG15:\n\u002B       add      rsp, 72\n\u002B       pop      rbx\n\u002B       pop      r12\n\u002B       pop      r13\n\u002B       pop      r14\n\u002B       pop      r15\n\u002B       pop      rbp\n\u002B       ret      \n\u002B\t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n\u002BG_M30230_IG16:\n\u002B       mov      rbx, gword ptr [rbp-0x38]\n\u002B       cmp      byte  ptr [rbx], bl\n\u002B       mov      rdi, 0xD1FFAB1E      ; System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Uri]\n\u002B       call     CORINFO_HELP_NEWSFAST\n\u002B       mov      r15, rax\n\u002B       lea      rdi, bword ptr [r15\u002B0x08]\n\u002B       mov      rsi, rbx\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       mov      rax, r15\n\u002B\t\t\t\t\t\t;; size=39 bbWeight=0.50 PerfScore 3.25\n G_M30230_IG17:\n        add      rsp, 72\n        pop      rbx\n@@ -411,27 \u002B415,6 @@ G_M30230_IG17:\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n G_M30230_IG18:\n-       mov      rbx, gword ptr [rbp-0x38]\n-       cmp      byte  ptr [rbx], bl\n-       mov      rdi, 0xD1FFAB1E      ; System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Uri]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r15, rax\n-       lea      rdi, bword ptr [r15\u002B0x08]\n-       mov      rsi, rbx\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rax, r15\n-\t\t\t\t\t\t;; size=39 bbWeight=0.50 PerfScore 3.25\n-G_M30230_IG19:\n-       add      rsp, 72\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       ret      \n-\t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M30230_IG20:\n        lea      rsi, [rbp-0x38]\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for Elastic.Apm.Config.AbstractConfigurationReader:\u003CParseServerUrls\u003Eg__LogAndReturnDefault|28_0(byref):System.Collections.Generic.List\u00601[System.Uri]:this\n@@ -446,7 \u002B429,7 @@ G_M30230_IG20:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rax, r15\n \t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 4.88\n-G_M30230_IG21:\n\u002BG_M30230_IG19:\n        add      rsp, 72\n        pop      rbx\n        pop      r12\n@@ -456,23 \u002B439,23 @@ G_M30230_IG21:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M30230_IG22:\n\u002BG_M30230_IG20:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.Uri]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M30230_IG03\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M30230_IG23:\n\u002BG_M30230_IG21:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M30230_IG24:\n\u002BG_M30230_IG22:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1205, prolog size 35, PerfScore 243.46, instruction count 282, allocated bytes for code 1205 (MethodHash=301989e9) for method Elastic.Apm.Config.AbstractConfigurationReader:ParseServerUrls(Elastic.Apm.Config.ConfigurationKeyValue):System.Collections.Generic.IReadOnlyList\u00601[System.Uri]:this (FullOpts)\n\u002B; Total bytes of code 1153, prolog size 35, PerfScore 235.96, instruction count 269, allocated bytes for code 1153 (MethodHash=301989e9) for method Elastic.Apm.Config.AbstractConfigurationReader:ParseServerUrls(Elastic.Apm.Config.ConfigurationKeyValue):System.Collections.Generic.IReadOnlyList\u00601[System.Uri]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1205,"DiffBytes":1153},{"Assembly":"Elasticsearch.Net.dasm","Method":"Elasticsearch.Net.ElasticsearchClientException:get_DebugInformation():System.String:this (FullOpts)","Category":"improvement","Description":"2,036 -\u003E 1,977 bytes (-59)","ExtraInfo":null,"Diff":"@@ -10,116 \u002B10,116 @@\n ;\n ;  V00 this         [V00,T01] ( 25, 18   )     ref  -\u003E  rbx         this class-hnd single-def \u003CElasticsearch.Net.ElasticsearchClientException\u003E\n ;* V01 loc0         [V01    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CSystem.Text.StringBuilder\u003E\n-;  V02 loc1         [V02,T10] (  5,  3.50)     ref  -\u003E  r14         class-hnd \u003CSystem.String\u003E\n\u002B;  V02 loc1         [V02,T09] (  5,  3.50)     ref  -\u003E  r14         class-hnd \u003CSystem.String\u003E\n ;* V03 loc2         [V03    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u003CSystem.Nullable\u00601[int]\u003E\n ;* V04 loc3         [V04    ] (  0,  0   )     int  -\u003E  zero-ref   \n ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V06 tmp1         [V06,T00] ( 63, 76   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Text.StringBuilder\u003E\n ;* V07 tmp2         [V07    ] (  0,  0   )  struct ( 8) zero-ref    \u0022location for address-of(RValue)\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n-;  V08 tmp3         [V08,T56] (  3,  1.50)     ref  -\u003E  rdi         class-hnd exact single-def \u0022obj nullable box\u0022 \u003CElasticsearch.Net.PipelineFailure\u003E\n-;  V09 tmp4         [V09,T15] (  3,  3   )     ref  -\u003E  rdi         class-hnd exact \u0022spilling qmarkNullableBox\u0022 \u003CElasticsearch.Net.PipelineFailure\u003E\n\u002B;  V08 tmp3         [V08,T55] (  3,  1.50)     ref  -\u003E  rdi         class-hnd exact single-def \u0022obj nullable box\u0022 \u003CElasticsearch.Net.PipelineFailure\u003E\n\u002B;  V09 tmp4         [V09,T14] (  3,  3   )     ref  -\u003E  rdi         class-hnd exact \u0022spilling qmarkNullableBox\u0022 \u003CElasticsearch.Net.PipelineFailure\u003E\n ;* V10 tmp5         [V10    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022impAppendStmt\u0022\n ;* V11 tmp6         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022non-inline candidate call\u0022 \u003CSystem.Text.StringBuilder\u003E\n ;* V12 tmp7         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.Text.StringBuilder\u003E\n ;* V13 tmp8         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.Text.StringBuilder\u003E\n-;  V14 tmp9         [V14,T16] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CElasticsearch.Net.HttpMethod\u003E\n\u002B;  V14 tmp9         [V14,T15] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CElasticsearch.Net.HttpMethod\u003E\n ;* V15 tmp10        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.Text.StringBuilder\u003E\n-;  V16 tmp11        [V16,T17] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CElasticsearch.Net.HttpMethod\u003E\n-;  V17 tmp12        [V17,T18] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CElasticsearch.Net.AuditEvent\u003E\n\u002B;  V16 tmp11        [V16,T16] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CElasticsearch.Net.HttpMethod\u003E\n\u002B;  V17 tmp12        [V17,T17] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CElasticsearch.Net.AuditEvent\u003E\n ;* V18 tmp13        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cchar[]\u003E\n-;  V19 tmp14        [V19,T83] (  2,  1   )   ubyte  -\u003E  rax         \u0022Inline return value spill temp\u0022\n-;  V20 tmp15        [V20,T19] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Elasticsearch.Net.Audit]\u003E\n-;  V21 tmp16        [V21,T03] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Elasticsearch.Net.Audit]\u003E\n-;  V22 tmp17        [V22    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V19 tmp14        [V19,T82] (  2,  1   )   ubyte  -\u003E  rax         \u0022Inline return value spill temp\u0022\n\u002B;  V20 tmp15        [V20,T18] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Elasticsearch.Net.Audit]\u003E\n\u002B;  V21 tmp16        [V21,T19] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Elasticsearch.Net.Audit]\u003E\n\u002B;  V22 tmp17        [V22    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V23 tmp18        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V24 tmp19        [V24,T57] (  3,  1.50)     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CElasticsearch.Net.Audit\u003E\n-;  V25 tmp20        [V25,T36] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Elasticsearch.Net.Audit]\u003E\n\u002B;  V24 tmp19        [V24,T81] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CElasticsearch.Net.Audit\u003E\n\u002B;* V25 tmp20        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Elasticsearch.Net.Audit]\u003E\n ;* V26 tmp21        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CElasticsearch.Net.Audit\u003E\n ;  V27 tmp22        [V27,T32] (  3,  2.50)     ref  -\u003E  r13         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003Cchar[]\u003E\n-;  V28 tmp23        [V28,T11] (  4,  3   )     int  -\u003E  r12         single-def \u0022Inline stloc first use temp\u0022\n\u002B;  V28 tmp23        [V28,T10] (  4,  3   )     int  -\u003E  r12         single-def \u0022Inline stloc first use temp\u0022\n ;  V29 tmp24        [V29,T28] (  2,  3   )   byref  -\u003E  rsi         single-def \u0022Inlining Arg\u0022\n ;* V30 tmp25        [V30    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n ;  V31 tmp26        [V31,T33] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003Cchar[]\u003E\n-;  V32 tmp27        [V32,T12] (  4,  3   )     int  -\u003E  r13         single-def \u0022Inline stloc first use temp\u0022\n\u002B;  V32 tmp27        [V32,T11] (  4,  3   )     int  -\u003E  r13         single-def \u0022Inline stloc first use temp\u0022\n ;  V33 tmp28        [V33,T29] (  2,  3   )   byref  -\u003E  rsi         single-def \u0022Inlining Arg\u0022\n ;* V34 tmp29        [V34    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n-;  V35 tmp30        [V35,T37] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CElasticsearch.Net.RequestData\u003E\n-;  V36 tmp31        [V36,T04] (  4,  4   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V37 tmp32        [V37,T58] (  3,  1.50)     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003Cchar[]\u003E\n-;  V38 tmp33        [V38,T66] (  3,  1.50)     int  -\u003E  r13         single-def \u0022Inline stloc first use temp\u0022\n-;  V39 tmp34        [V39,T38] (  2,  2   )   byref  -\u003E  rsi         single-def \u0022Inlining Arg\u0022\n\u002B;  V35 tmp30        [V35,T36] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CElasticsearch.Net.RequestData\u003E\n\u002B;  V36 tmp31        [V36,T03] (  4,  4   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V37 tmp32        [V37,T56] (  3,  1.50)     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003Cchar[]\u003E\n\u002B;  V38 tmp33        [V38,T64] (  3,  1.50)     int  -\u003E  r13         single-def \u0022Inline stloc first use temp\u0022\n\u002B;  V39 tmp34        [V39,T37] (  2,  2   )   byref  -\u003E  rsi         single-def \u0022Inlining Arg\u0022\n ;* V40 tmp35        [V40    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n ;* V41 tmp36        [V41    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V42 tmp37        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Uri\u003E\n-;  V43 tmp38        [V43,T05] (  4,  4   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V44 tmp39        [V44,T59] (  3,  1.50)     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003Cchar[]\u003E\n-;  V45 tmp40        [V45,T67] (  3,  1.50)     int  -\u003E  r13         single-def \u0022Inline stloc first use temp\u0022\n-;  V46 tmp41        [V46,T39] (  2,  2   )   byref  -\u003E  rsi         single-def \u0022Inlining Arg\u0022\n\u002B;  V43 tmp38        [V43,T04] (  4,  4   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V44 tmp39        [V44,T57] (  3,  1.50)     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003Cchar[]\u003E\n\u002B;  V45 tmp40        [V45,T65] (  3,  1.50)     int  -\u003E  r13         single-def \u0022Inline stloc first use temp\u0022\n\u002B;  V46 tmp41        [V46,T38] (  2,  2   )   byref  -\u003E  rsi         single-def \u0022Inlining Arg\u0022\n ;* V47 tmp42        [V47    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n ;* V48 tmp43        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CElasticsearch.Net.RequestData\u003E\n-;  V49 tmp44        [V49,T06] (  4,  4   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V50 tmp45        [V50,T60] (  3,  1.50)     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003Cchar[]\u003E\n... diff truncated; middle omitted ...\n-       jmp      G_M14172_IG37\n\u002B       jmp      G_M14172_IG35\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 2.12\n-G_M14172_IG32:\n\u002BG_M14172_IG30:\n        mov      rdx, gword ptr [rbx\u002B0x78]\n        mov      rsi, gword ptr [rdx\u002B0x78]\n        test     rsi, rsi\n-       je       SHORT G_M14172_IG33\n\u002B       je       SHORT G_M14172_IG31\n        mov      edx, dword ptr [rsi\u002B0x08]\n        add      rsi, 12\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:Append(byref,int):this\n        call     [rax]System.Text.StringBuilder:Append(byref,int):this\n \t\t\t\t\t\t;; size=35 bbWeight=0.50 PerfScore 5.50\n-G_M14172_IG33:\n\u002BG_M14172_IG31:\n        mov      rsi, 0xD1FFAB1E\n        mov      r14, gword ptr [r15\u002B0x08]\n        mov      r13d, dword ptr [r15\u002B0x18]\n        lea      r12d, [r13\u002B0x57]\n        cmp      dword ptr [r14\u002B0x08], r12d\n-       jae      SHORT G_M14172_IG34\n\u002B       jae      SHORT G_M14172_IG32\n        mov      rdi, r15\n        mov      edx, 87\n        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this\n        call     [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this\n-       jmp      SHORT G_M14172_IG35\n\u002B       jmp      SHORT G_M14172_IG33\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 6.75\n-G_M14172_IG34:\n\u002BG_M14172_IG32:\n        movsxd   rdi, r13d\n        lea      rdi, bword ptr [r14\u002B2*rdi\u002B0x10]\n        vmovups  zmm0, zmmword ptr [reloc @RWD128]\n@@ -504,29 \u002B486,29 @@ G_M14172_IG34:\n        mov      word  ptr [rdi\u002B0xAC], 115\n        mov      dword ptr [r15\u002B0x18], r12d\n \t\t\t\t\t\t;; size=96 bbWeight=0.50 PerfScore 9.25\n-G_M14172_IG35:\n\u002BG_M14172_IG33:\n        mov      rsi, 0xD1FFAB1E\n        mov      r14, gword ptr [r15\u002B0x08]\n        mov      r13d, dword ptr [r15\u002B0x18]\n        lea      r12d, [r13\u002B0x01]\n        cmp      dword ptr [r14\u002B0x08], r12d\n-       jae      SHORT G_M14172_IG36\n\u002B       jae      SHORT G_M14172_IG34\n        mov      rdi, r15\n        mov      edx, 1\n        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this\n        call     [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this\n-       jmp      SHORT G_M14172_IG37\n\u002B       jmp      SHORT G_M14172_IG35\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 6.75\n-G_M14172_IG36:\n\u002BG_M14172_IG34:\n        movsxd   rdi, r13d\n        mov      word  ptr [r14\u002B2*rdi\u002B0x10], 10\n        mov      dword ptr [r15\u002B0x18], r12d\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 1.12\n-G_M14172_IG37:\n\u002BG_M14172_IG35:\n        cmp      gword ptr [rbx\u002B0x80], 0\n-       jne      SHORT G_M14172_IG39\n\u002B       jne      SHORT G_M14172_IG37\n \t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.00\n-G_M14172_IG38:\n\u002BG_M14172_IG36:\n        mov      rdi, gword ptr [rbx\u002B0x70]\n        mov      rsi, r15\n        mov      rax, 0xD1FFAB1E      ; code for Elasticsearch.Net.ResponseStatics:DebugAuditTrail(System.Collections.Generic.List\u00601[Elasticsearch.Net.Audit],System.Text.StringBuilder)\n@@ -535,32 \u002B517,32 @@ G_M14172_IG38:\n        mov      rsi, r15\n        mov      rax, 0xD1FFAB1E      ; code for Elasticsearch.Net.ResponseStatics:DebugAuditTrailExceptions(System.Collections.Generic.List\u00601[Elasticsearch.Net.Audit],System.Text.StringBuilder)\n        call     [rax]Elasticsearch.Net.ResponseStatics:DebugAuditTrailExceptions(System.Collections.Generic.List\u00601[Elasticsearch.Net.Audit],System.Text.StringBuilder)\n-       jmp      SHORT G_M14172_IG40\n\u002B       jmp      SHORT G_M14172_IG38\n \t\t\t\t\t\t;; size=40 bbWeight=0.50 PerfScore 6.50\n-G_M14172_IG39:\n\u002BG_M14172_IG37:\n        mov      rdi, gword ptr [rbx\u002B0x80]\n        mov      rsi, r15\n        mov      rax, 0xD1FFAB1E      ; code for Elasticsearch.Net.ResponseStatics:DebugInformationBuilder(Elasticsearch.Net.IApiCallDetails,System.Text.StringBuilder):System.String\n        call     [rax]Elasticsearch.Net.ResponseStatics:DebugInformationBuilder(Elasticsearch.Net.IApiCallDetails,System.Text.StringBuilder):System.String\n \t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 2.75\n-G_M14172_IG40:\n\u002BG_M14172_IG38:\n        cmp      gword ptr [rbx\u002B0x20], 0\n-       je       G_M14172_IG44\n\u002B       je       G_M14172_IG42\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.00\n-G_M14172_IG41:\n\u002BG_M14172_IG39:\n        mov      rsi, 0xD1FFAB1E\n        mov      r14, gword ptr [r15\u002B0x08]\n        mov      r13d, dword ptr [r15\u002B0x18]\n        lea      r12d, [r13\u002B0x13]\n        cmp      dword ptr [r14\u002B0x08], r12d\n-       jae      SHORT G_M14172_IG42\n\u002B       jae      SHORT G_M14172_IG40\n        mov      rdi, r15\n        mov      edx, 19\n        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this\n        call     [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this\n-       jmp      SHORT G_M14172_IG43\n\u002B       jmp      SHORT G_M14172_IG41\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 6.75\n-G_M14172_IG42:\n\u002BG_M14172_IG40:\n        movsxd   rdi, r13d\n        lea      rdi, bword ptr [r14\u002B2*rdi\u002B0x10]\n        vmovups  ymm0, ymmword ptr [reloc @RWD288]\n@@ -569,7 \u002B551,7 @@ G_M14172_IG42:\n        mov      word  ptr [rdi\u002B0x24], 32\n        mov      dword ptr [r15\u002B0x18], r12d\n \t\t\t\t\t\t;; size=37 bbWeight=0.50 PerfScore 3.62\n-G_M14172_IG43:\n\u002BG_M14172_IG41:\n        mov      rdi, gword ptr [rbx\u002B0x20]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x40]\n@@ -589,22 \u002B571,22 @@ G_M14172_IG43:\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.Text.StringBuilder:AppendLine(System.String):System.Text.StringBuilder:this\n \t\t\t\t\t\t;; size=69 bbWeight=0.50 PerfScore 13.88\n-G_M14172_IG44:\n\u002BG_M14172_IG42:\n        mov      rsi, 0xD1FFAB1E\n        mov      r14, gword ptr [r15\u002B0x08]\n        mov      r13d, dword ptr [r15\u002B0x18]\n        lea      edi, [r13\u002B0x0C]\n        cmp      dword ptr [r14\u002B0x08], edi\n-       jae      SHORT G_M14172_IG46\n\u002B       jae      SHORT G_M14172_IG44\n \t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 7.75\n-G_M14172_IG45:\n\u002BG_M14172_IG43:\n        mov      rdi, r15\n        mov      edx, 12\n        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this\n        call     [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this\n-       jmp      SHORT G_M14172_IG47\n\u002B       jmp      SHORT G_M14172_IG45\n \t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 2.88\n-G_M14172_IG46:\n\u002BG_M14172_IG44:\n        movsxd   rdi, r13d\n        lea      rdi, bword ptr [r14\u002B2*rdi\u002B0x10]\n        vmovups  xmm0, xmmword ptr [reloc @RWD320]\n@@ -614,28 \u002B596,28 @@ G_M14172_IG46:\n        add      r13d, 12\n        mov      dword ptr [r15\u002B0x18], r13d\n \t\t\t\t\t\t;; size=42 bbWeight=0.50 PerfScore 2.88\n-G_M14172_IG47:\n\u002BG_M14172_IG45:\n        mov      rsi, 0xD1FFAB1E\n        mov      r14, gword ptr [r15\u002B0x08]\n        mov      r13d, dword ptr [r15\u002B0x18]\n        lea      edi, [r13\u002B0x01]\n        cmp      dword ptr [r14\u002B0x08], edi\n-       jae      SHORT G_M14172_IG49\n\u002B       jae      SHORT G_M14172_IG47\n \t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 7.75\n-G_M14172_IG48:\n\u002BG_M14172_IG46:\n        mov      rdi, r15\n        mov      edx, 1\n        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this\n        call     [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this\n-       jmp      SHORT G_M14172_IG50\n\u002B       jmp      SHORT G_M14172_IG48\n \t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 2.88\n-G_M14172_IG49:\n\u002BG_M14172_IG47:\n        movsxd   rdi, r13d\n        mov      word  ptr [r14\u002B2*rdi\u002B0x10], 10\n        inc      r13d\n        mov      dword ptr [r15\u002B0x18], r13d\n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 1.25\n-G_M14172_IG50:\n\u002BG_M14172_IG48:\n        mov      rdi, rbx\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x40]\n@@ -649,7 \u002B631,7 @@ G_M14172_IG50:\n        call     [rax]System.Text.StringBuilder:ToString():System.String:this\n        nop      \n \t\t\t\t\t\t;; size=47 bbWeight=1 PerfScore 14.75\n-G_M14172_IG51:\n\u002BG_M14172_IG49:\n        vzeroupper \n        add      rsp, 8\n        pop      rbx\n@@ -660,13 \u002B642,13 @@ G_M14172_IG51:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 5.25\n-G_M14172_IG52:\n\u002BG_M14172_IG50:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M14172_IG53:\n\u002BG_M14172_IG51:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n@@ -681,5 \u002B663,5 @@ RWD288 \tdq\t006E004900200023h, 002000720065006Eh, 0065006300780045h, 006F00690074\n RWD320 \tdq\t0078004500200023h, 0074007000650063h\n \n \n-; Total bytes of code 2036, prolog size 22, PerfScore 290.56, instruction count 441, allocated bytes for code 2036 (MethodHash=6d70c8a3) for method Elasticsearch.Net.ElasticsearchClientException:get_DebugInformation():System.String:this (FullOpts)\n\u002B; Total bytes of code 1977, prolog size 22, PerfScore 282.94, instruction count 427, allocated bytes for code 1977 (MethodHash=6d70c8a3) for method Elasticsearch.Net.ElasticsearchClientException:get_DebugInformation():System.String:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":2036,"DiffBytes":1977},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher:MatchPartitionErrors():this (FullOpts)","Category":"improvement","Description":"6,432 -\u003E 5,564 bytes (-868)","ExtraInfo":null,"Diff":"@@ -9,64 \u002B9,64 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T00] ( 35,596   )     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher\u003E\n-;  V01 loc0         [V01,T127] (  6, 27   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n-;  V02 loc1         [V02,T128] (  4, 25   )     int  -\u003E  r14        \n\u002B;  V01 loc0         [V01,T117] (  6, 27   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n\u002B;  V02 loc1         [V02,T118] (  4, 25   )     int  -\u003E  r14        \n ;* V03 loc2         [V03    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n ;  V04 loc3         [V04,T02] ( 24,379   )     ref  -\u003E  [rbp-0xF0]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper\u003E\n-;  V05 loc4         [V05,T30] (  6,114   )     ref  -\u003E  [rbp-0xF8]  do-not-enreg[Z] class-hnd EH-live \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n\u002B;  V05 loc4         [V05,T20] (  6,114   )     ref  -\u003E  [rbp-0xF8]  do-not-enreg[Z] class-hnd EH-live \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n ;  V06 loc5         [V06,T01] ( 22,401   )     ref  -\u003E  [rbp-0x100]  class-hnd \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper\u003E\n ;  V07 loc6         [V07,T11] (  9,192   )     ref  -\u003E  [rbp-0x108]  class-hnd \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.QueryRewriting.FragmentQuery\u003E\n ;  V08 loc7         [V08,T12] (  9,192   )     ref  -\u003E  [rbp-0x110]  class-hnd \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.QueryRewriting.FragmentQuery\u003E\n-;  V09 loc8         [V09,T52] (  4, 80   )   ubyte  -\u003E  [rbp-0x2C] \n\u002B;  V09 loc8         [V09,T50] (  4, 80   )   ubyte  -\u003E  [rbp-0x2C] \n ;  V10 loc9         [V10,T13] (  8,128   )   ubyte  -\u003E  [rbp-0x30] \n ;  V11 loc10        [V11,T14] (  8,128   )   ubyte  -\u003E  [rbp-0x34] \n-;  V12 loc11        [V12,T77] (  4, 64   )   ubyte  -\u003E  [rbp-0x38] \n-;  V13 loc12        [V13,T78] (  4, 64   )   ubyte  -\u003E  rax        \n-;  V14 loc13        [V14,T51] (  5, 80   )   ubyte  -\u003E  [rbp-0x3C] \n\u002B;  V12 loc11        [V12,T67] (  4, 64   )   ubyte  -\u003E  [rbp-0x38] \n\u002B;  V13 loc12        [V13,T68] (  4, 64   )   ubyte  -\u003E  rax        \n\u002B;  V14 loc13        [V14,T49] (  5, 80   )   ubyte  -\u003E  [rbp-0x3C] \n ;* V15 loc14        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CSystem.Text.StringBuilder\u003E\n ;* V16 loc15        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CSystem.Text.StringBuilder\u003E\n ;  V17 loc16        [V17    ] (  2, 32   )   ubyte  -\u003E  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op\n ;  V18 loc17        [V18    ] (  4, 49   )     ref  -\u003E  [rbp-0x50]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Metadata.Edm.EdmType]\u003E\n ;  V19 loc18        [V19    ] (  2, 32   )   ubyte  -\u003E  [rbp-0x58]  do-not-enreg[X] must-init addr-exposed ld-addr-op\n ;  V20 loc19        [V20    ] (  4, 49   )     ref  -\u003E  [rbp-0x60]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Metadata.Edm.EdmType]\u003E\n-;  V21 loc20        [V21,T164] (  2,  2   )     ref  -\u003E  r15         class-hnd \u003CSystem.Collections.Generic.IEnumerable\u00601[System.String]\u003E\n\u002B;  V21 loc20        [V21,T149] (  2,  2   )     ref  -\u003E  r15         class-hnd \u003CSystem.Collections.Generic.IEnumerable\u00601[System.String]\u003E\n ;* V22 loc21        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CSystem.Text.StringBuilder\u003E\n ;  V23 OutArgs      [V23    ] (  1,  1   )  struct (16) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V24 tmp1         [V24,T126] (  2, 32   )     int  -\u003E  r14         \u0022dup spill\u0022\n-;  V25 tmp2         [V25,T29] (  2,128   )     int  -\u003E  [rbp-0x64]  spill-single-def \u0022impAppendStmt\u0022\n\u002B;  V24 tmp1         [V24,T116] (  2, 32   )     int  -\u003E  r14         \u0022dup spill\u0022\n\u002B;  V25 tmp2         [V25,T19] (  2,128   )     int  -\u003E  [rbp-0x64]  spill-single-def \u0022impAppendStmt\u0022\n ;  V26 tmp3         [V26,T04] (  8,256   )     ref  -\u003E  [rbp-0x118]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Text.StringBuilder\u003E\n-;  V27 tmp4         [V27,T82] (  2, 64   )     ref  -\u003E  [rbp-0x120]  class-hnd spill-single-def \u0022non-inline candidate call\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.ErrorLog\u003E\n-;  V28 tmp5         [V28,T83] (  2, 64   )     ref  -\u003E  [rbp-0x128]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V27 tmp4         [V27,T72] (  2, 64   )     ref  -\u003E  [rbp-0x120]  class-hnd spill-single-def \u0022non-inline candidate call\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.ErrorLog\u003E\n\u002B;  V28 tmp5         [V28,T73] (  2, 64   )     ref  -\u003E  [rbp-0x128]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n ;* V29 tmp6         [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\u003E\n ;  V30 tmp7         [V30,T15] (  4,128   )     ref  -\u003E  [rbp-0x130]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.ErrorLog\u002BRecord\u003E\n ;  V31 tmp8         [V31,T03] (  9,288   )     ref  -\u003E  [rbp-0x138]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Text.StringBuilder\u003E\n-;  V32 tmp9         [V32,T84] (  2, 64   )     ref  -\u003E  [rbp-0x140]  class-hnd spill-single-def \u0022non-inline candidate call\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.ErrorLog\u003E\n-;  V33 tmp10        [V33,T85] (  2, 64   )     ref  -\u003E  [rbp-0x148]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V32 tmp9         [V32,T74] (  2, 64   )     ref  -\u003E  [rbp-0x140]  class-hnd spill-single-def \u0022non-inline candidate call\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.ErrorLog\u003E\n\u002B;  V33 tmp10        [V33,T75] (  2, 64   )     ref  -\u003E  [rbp-0x148]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n ;* V34 tmp11        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\u003E\n ;  V35 tmp12        [V35,T16] (  4,128   )     ref  -\u003E  [rbp-0x150]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.ErrorLog\u002BRecord\u003E\n-;  V36 tmp13        [V36,T53] (  3, 80   )     ref  -\u003E  rsi         \u0022ISINST eval op1\u0022\n\u002B;  V36 tmp13        [V36,T51] (  3, 80   )     ref  -\u003E  rdx         \u0022ISINST eval op1\u0022\n ;* V37 tmp14        [V37    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling qmarkNull\u0022\n-;  V38 tmp15        [V38,T54] (  3, 80   )     ref  -\u003E  rax         \u0022ISINST eval op1\u0022\n\u002B;  V38 tmp15        [V38,T52] (  3, 80   )     ref  -\u003E  rax         \u0022ISINST eval op1\u0022\n ;* V39 tmp16        [V39    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling qmarkNull\u0022\n-;  V40 tmp17        [V40,T31] (  3, 96   )     ref  -\u003E  [rbp-0x158]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySetBase\u003E\n-;  V41 tmp18        [V41,T148] (  2,  4   )     ref  -\u003E  rdx         class-hnd \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Metadata.Edm.EdmType,System.String]\u003E\n-;  V42 tmp19        [V42,T165] (  2,  2   )     ref  -\u003E  r15        \n-;  V43 tmp20        [V43,T142] (  4,  4   )     ref  -\u003E  rdx        \n-;  V44 tmp21        [V44,T149] (  2,  4   )     ref  -\u003E  rdx         class-hnd \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Metadata.Edm.EdmType,System.String]\u003E\n-;  V45 tmp22        [V45,T150] (  2,  4   )     ref  -\u003E  r15         class-hnd \u0022impSpillLclRefs\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.__Canon]\u003E\n\u002B;  V40 tmp17        [V40,T21] (  3, 96   )     ref  -\u003E  [rbp-0x158]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySetBase\u003E\n\u002B;  V41 tmp18        [V41,T135] (  2,  4   )     ref  -\u003E  rdx         class-hnd \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Metadata.Edm.EdmType,System.String]\u003E\n\u002B;  V42 tmp19        [V42,T150] (  2,  2   )     ref  -\u003E  r15        \n\u002B;  V43 tmp20        [V43,T131] (  4,  4   )     ref  -\u003E  rdx        \n\u002B;  V44 tmp21        [V44,T136] (  2,  4   )     ref  -\u003E  rdx         class-hnd \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Metadata.Edm.EdmType,System.String]\u003E\n\u002B;  V45 tmp22        [V45,T137] (  2,  4   )     ref  -\u003E  r15         class-hnd \u0022impSpillLclRefs\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.__Canon]\u003E\n ;* V46 tmp23        [V46    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V47 tmp24        [V47,T166] (  2,  2   )     ref  -\u003E  r14        \n-;  V48 tmp25        [V48,T143] (  4,  4   )     ref  -\u003E  rdx        \n-;  V49 tmp26        [V49,T151] (  2,  4   )     ref  -\u003E  rbx         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.ErrorLog\u003E\n... diff truncated; middle omitted ...\n-       mov      rdx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rdx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M12196_IG78\n-       lea      rsi, [rbp-0xC0]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      gword ptr [rbp-0x208], rax\n-       jmp      SHORT G_M12196_IG79\n-\t\t\t\t\t\t;; size=99 bbWeight=16 PerfScore 368.00\n-G_M12196_IG78:\n\u002B       mov      rsi, gword ptr [rcx\u002B0x28]\n\u002B       test     rsi, rsi\n\u002B       je       G_M12196_IG60\n        lea      rdx, [rbp-0xC0]\n-       mov      rsi, gword ptr [rbp-0x200]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell],byref):System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\n-       mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      gword ptr [rbp-0x208], rax\n-\t\t\t\t\t\t;; size=43 bbWeight=16 PerfScore 96.00\n-G_M12196_IG79:\n\u002B       mov      rcx, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n\u002B       call     [rcx]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n\u002B       mov      gword ptr [rbp-0x1C8], rax\n        cmp      byte  ptr [rbp-0xC0], 0\n-       je       G_M12196_IG83\n\u002B       je       G_M12196_IG61\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Mapping.ViewGeneration.Structures.ErrorLog\u002BRecord\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x150], rax\n-       mov      rdi, gword ptr [rbp-0x1F8]\n-       mov      rsi, gword ptr [rbp-0x208]\n\u002B       mov      rdi, gword ptr [rbp-0x1C0]\n\u002B       mov      rsi, gword ptr [rbp-0x1C8]\n        mov      rcx, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher:ToIEnum(System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell):System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\n        call     [rcx]System.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher:ToIEnum(System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell):System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\n        mov      rcx, rax\n@@ -1667,6 \u002B1434,8 @@ G_M12196_IG79:\n        mov      rdx, gword ptr [rbp-0x148]\n        mov      esi, 0xBDA\n        mov      r8, 0xD1FFAB1E      ; \u0027\u0027\n\u002B\t\t\t\t\t\t;; size=256 bbWeight=16 PerfScore 656.00\n\u002BG_M12196_IG57:\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Mapping.ViewGeneration.Structures.ErrorLog\u002BRecord:Init(int,System.String,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell],System.String):this\n        call     [rax]System.Data.Entity.Core.Mapping.ViewGeneration.Structures.ErrorLog\u002BRecord:Init(int,System.String,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell],System.String):this\n        mov      rdi, gword ptr [rbp-0x140]\n@@ -1675,13 \u002B1444,13 @@ G_M12196_IG79:\n        mov      rax, gword ptr [rdi\u002B0x08]\n        mov      ecx, dword ptr [rdi\u002B0x10]\n        cmp      dword ptr [rax\u002B0x08], ecx\n-       ja       SHORT G_M12196_IG80\n\u002B       ja       SHORT G_M12196_IG58\n        mov      rsi, gword ptr [rbp-0x150]\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n-       jmp      SHORT G_M12196_IG81\n-\t\t\t\t\t\t;; size=152 bbWeight=16 PerfScore 556.00\n-G_M12196_IG80:\n\u002B       jmp      SHORT G_M12196_IG59\n\u002B\t\t\t\t\t\t;; size=59 bbWeight=16 PerfScore 360.00\n\u002BG_M12196_IG58:\n        lea      esi, [rcx\u002B0x01]\n        mov      dword ptr [rdi\u002B0x10], esi\n        mov      esi, ecx\n@@ -1690,7 \u002B1459,7 @@ G_M12196_IG80:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST\n        call     [rax]CORINFO_HELP_ARRADDR_ST\n \t\t\t\t\t\t;; size=30 bbWeight=16 PerfScore 100.00\n-G_M12196_IG81:\n\u002BG_M12196_IG59:\n        mov      rdi, gword ptr [rbx\u002B0x18]\n        mov      rdi, gword ptr [rdi\u002B0x08]\n        mov      edi, dword ptr [rdi\u002B0x10]\n@@ -1698,37 \u002B1467,37 @@ G_M12196_IG81:\n        add      r11d, 5\n        cmp      edi, r11d\n        jle      G_M12196_IG05\n-       jmp      SHORT G_M12196_IG89\n\u002B       jmp      SHORT G_M12196_IG67\n \t\t\t\t\t\t;; size=30 bbWeight=16 PerfScore 184.00\n-G_M12196_IG82:\n\u002BG_M12196_IG60:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M12196_IG83:\n\u002BG_M12196_IG61:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M12196_IG84:\n\u002BG_M12196_IG62:\n        mov      edi, 4\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M12196_IG85:\n\u002BG_M12196_IG63:\n        mov      edi, 14\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M12196_IG86:\n-       call     G_M12196_IG93\n\u002BG_M12196_IG64:\n\u002B       call     G_M12196_IG71\n        nop      \n \t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 1.25\n-G_M12196_IG87:\n-       add      rsp, 536\n\u002BG_M12196_IG65:\n\u002B       add      rsp, 456\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -1737,44 \u002B1506,44 @@ G_M12196_IG87:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M12196_IG88:\n-       call     G_M12196_IG93\n-       jmp      SHORT G_M12196_IG87\n\u002BG_M12196_IG66:\n\u002B       call     G_M12196_IG71\n\u002B       jmp      SHORT G_M12196_IG65\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 3.00\n-G_M12196_IG89:\n-       call     G_M12196_IG93\n-       jmp      SHORT G_M12196_IG87\n\u002BG_M12196_IG67:\n\u002B       call     G_M12196_IG71\n\u002B       jmp      SHORT G_M12196_IG65\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 3.00\n-G_M12196_IG90:\n-       call     G_M12196_IG93\n-       jmp      SHORT G_M12196_IG87\n\u002BG_M12196_IG68:\n\u002B       call     G_M12196_IG71\n\u002B       jmp      SHORT G_M12196_IG65\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 3.00\n-G_M12196_IG91:\n\u002BG_M12196_IG69:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M12196_IG92:\n\u002BG_M12196_IG70:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n-G_M12196_IG93:\n\u002BG_M12196_IG71:\n        sub      rsp, 24\n \t\t\t\t\t\t;; size=4 bbWeight=1 PerfScore 0.25\n-G_M12196_IG94:\n\u002BG_M12196_IG72:\n        cmp      gword ptr [rbp-0xF8], 0\n-       je       SHORT G_M12196_IG95\n\u002B       je       SHORT G_M12196_IG73\n        mov      rdi, gword ptr [rbp-0xF8]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=30 bbWeight=1 PerfScore 6.25\n-G_M12196_IG95:\n\u002BG_M12196_IG73:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M12196_IG96:\n\u002BG_M12196_IG74:\n        add      rsp, 24\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n \n-; Total bytes of code 6432, prolog size 58, PerfScore 19428.33, instruction count 1303, allocated bytes for code 6432 (MethodHash=5867d05b) for method System.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher:MatchPartitionErrors():this (FullOpts)\n\u002B; Total bytes of code 5564, prolog size 58, PerfScore 16606.83, instruction count 1116, allocated bytes for code 5564 (MethodHash=5867d05b) for method System.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher:MatchPartitionErrors():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":6432,"DiffBytes":5564},{"Assembly":"FakeItEasy.dasm","Method":"FakeItEasy.Core.FakeManager\u002BPropertySetterRule\u002B\u003C\u003Ec__DisplayClass1_0:\u003CApply\u003Eb__0(System.Collections.Generic.LinkedList\u00601[FakeItEasy.Core.CallRuleMetadata]):this (FullOpts)","Category":"improvement","Description":"883 -\u003E 779 bytes (-104)","ExtraInfo":null,"Diff":"@@ -14,42 \u002B14,42 @@\n ;* V03 loc1         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CSystem.Func\u00602[FakeItEasy.Core.FakeManager\u002BPropertyBehaviorRule,bool]\u003E\n ;* V04 loc2         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CFakeItEasy.Core.CallRuleMetadata\u003E\n ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V06 tmp1         [V06,T09] (  2,  4   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[FakeItEasy.Core.CallRuleMetadata,FakeItEasy.Core.IFakeObjectCallRule]\u003E\n\u002B;  V06 tmp1         [V06,T07] (  2,  4   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[FakeItEasy.Core.CallRuleMetadata,FakeItEasy.Core.IFakeObjectCallRule]\u003E\n ;* V07 tmp2         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V08 tmp3         [V08,T13] (  4,  3.50)     ref  -\u003E  rdx        \n-;  V09 tmp4         [V09,T10] (  2,  4   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[FakeItEasy.Core.FakeManager\u002BPropertyBehaviorRule,bool]\u003E\n-;  V10 tmp5         [V10,T11] (  2,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[FakeItEasy.Core.FakeManager\u002BPropertyBehaviorRule]\u003E\n\u002B;  V08 tmp3         [V08,T11] (  4,  3.50)     ref  -\u003E  rdx        \n\u002B;  V09 tmp4         [V09,T08] (  2,  4   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[FakeItEasy.Core.FakeManager\u002BPropertyBehaviorRule,bool]\u003E\n\u002B;  V10 tmp5         [V10,T09] (  2,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[FakeItEasy.Core.FakeManager\u002BPropertyBehaviorRule]\u003E\n ;* V11 tmp6         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V12 tmp7         [V12,T14] (  4,  3.50)     ref  -\u003E  rdx        \n\u002B;  V12 tmp7         [V12,T12] (  4,  3.50)     ref  -\u003E  rdx        \n ;  V13 tmp8         [V13,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CFakeItEasy.Core.FakeManager\u002BPropertyBehaviorRule\u003E\n ;  V14 tmp9         [V14,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022non-inline candidate call\u0022 \u003CFakeItEasy.Configuration.ArgumentCollection\u003E\n ;  V15 tmp10        [V15,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[FakeItEasy.Core.FakeManager\u002BPropertyBehaviorRule,bool]\u003E\n ;  V16 tmp11        [V16,T04] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[FakeItEasy.Core.CallRuleMetadata,FakeItEasy.Core.IFakeObjectCallRule]\u003E\n-;  V17 tmp12        [V17,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CFakeItEasy.Core.FakeManager\u002BPropertySetterRule\u002B\u003C\u003Ec\u003E\n\u002B;  V17 tmp12        [V17,T17] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CFakeItEasy.Core.FakeManager\u002BPropertySetterRule\u002B\u003C\u003Ec\u003E\n ;* V18 tmp13        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[FakeItEasy.Core.FakeManager\u002BPropertyBehaviorRule]\u003E\n ;* V19 tmp14        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[FakeItEasy.Core.FakeManager\u002BPropertyBehaviorRule,bool]\u003E\n ;  V20 tmp15        [V20    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V21 tmp16        [V21,T06] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CFakeItEasy.Configuration.ArgumentCollection\u003E\n-;  V22 tmp17        [V22    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V21 tmp16        [V21,T13] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CFakeItEasy.Configuration.ArgumentCollection\u003E\n\u002B;  V22 tmp17        [V22    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V23 tmp18        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V24 tmp19        [V24,T21] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Object\u003E\n-;  V25 tmp20        [V25,T17] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Object]\u003E\n\u002B;  V24 tmp19        [V24,T21] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Object\u003E\n\u002B;* V25 tmp20        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Object]\u003E\n ;* V26 tmp21        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Object\u003E\n ;* V27 tmp22        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CFakeItEasy.Configuration.ArgumentCollection\u003E\n-;  V28 tmp23        [V28,T22] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Object]\u003E\n\u002B;  V28 tmp23        [V28,T19] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Object]\u003E\n ;  V29 tmp24        [V29,T15] (  3,  3   )     int  -\u003E  r12         \u0022Inlining Arg\u0022\n-;* V30 tmp25        [V30,T25] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V31 tmp26        [V31,T23] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Object[]\u003E\n\u002B;* V30 tmp25        [V30,T23] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V31 tmp26        [V31,T20] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Object[]\u003E\n ;* V32 tmp27        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.__Canon[]\u003E\n-;  V33 tmp28        [V33,T07] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CFakeItEasy.Configuration.ArgumentCollection\u003E\n-;  V34 tmp29        [V34    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V33 tmp28        [V33,T14] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CFakeItEasy.Configuration.ArgumentCollection\u003E\n\u002B;  V34 tmp29        [V34    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V35 tmp30        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V36 tmp31        [V36,T24] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Object\u003E\n-;  V37 tmp32        [V37,T18] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Object]\u003E\n\u002B;  V36 tmp31        [V36,T22] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Object\u003E\n\u002B;* V37 tmp32        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Object]\u003E\n ;* V38 tmp33        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Object\u003E\n-;  V39 tmp34        [V39,T08] (  4,  4   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CFakeItEasy.Core.CallRuleMetadata\u003E\n-;  V40 tmp35        [V40,T12] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V41 tmp36        [V41,T20] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V39 tmp34        [V39,T06] (  4,  4   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CFakeItEasy.Core.CallRuleMetadata\u003E\n\u002B;  V40 tmp35        [V40,T10] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V41 tmp36        [V41,T18] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 24\n \n@@ -126,7 \u002B126,7 @@ G_M8810_IG06:\n        call     [rax]System.Linq.Enumerable:TryGetLast[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Func\u00602[System.__Canon,bool],byref):System.__Canon\n        mov      r14, rax\n        test     r14, r14\n-       jne      G_M8810_IG13\n\u002B       jne      G_M8810_IG11\n \t\t\t\t\t\t;; size=41 bbWeight=1 PerfScore 5.75\n G_M8810_IG07:\n        mov      rdi, 0xD1FFAB1E      ; FakeItEasy.Core.FakeManager\u002BPropertyBehaviorRule\n@@ -150,7 \u002B150,7 @@ G_M8810_IG07:\n        mov      r12d, dword ptr [rsi\u002B0x08]\n        dec      r12d\n        test     r13, r13\n-       je       G_M8810_IG18\n\u002B       je       G_M8810_IG14\n        test     r12d, r12d\n        jle      SHORT G_M8810_IG09\n        mov      rsi, r13\n@@ -185,32 \u002B185,15 @@ G_M8810_IG10:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for FakeItEasy.Core.IFakeObjectCall:get_Arguments():FakeItEasy.Configuration.ArgumentCollection:this\n        call     [r11]FakeItEasy.Core.IFakeObjectCall:get_Arguments():FakeItEasy.Configuration.ArgumentCollection:this\n-       mov      rbx, rax\n-       test     rbx, rbx\n-       je       G_M8810_IG18\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Object]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M8810_IG11\n-       lea      rsi, [rbp-0x40]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M8810_IG12\n-\t\t\t\t\t\t;; size=115 bbWeight=0.50 PerfScore 13.50\n-G_M8810_IG11:\n\u002B       je       G_M8810_IG14\n        lea      rdx, [rbp-0x40]\n-       mov      rsi, rbx\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.Object](System.Collections.Generic.IEnumerable\u00601[System.Object],byref):System.Object\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M8810_IG12:\n        cmp      byte  ptr [rbp-0x40], 0\n-       je       G_M8810_IG19\n\u002B       je       G_M8810_IG15\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rax\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -226,46 \u002B209,29 @@ G_M8810_IG12:\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.LinkedList\u00601[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode\u00601[System.__Canon]:this\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.Collections.Generic.LinkedList\u00601[System.__Canon]:AddLast(System.__Canon):System.Collections.Generic.LinkedListNode\u00601[System.__Canon]:this\n-       jmp      SHORT G_M8810_IG16\n-\t\t\t\t\t\t;; size=81 bbWeight=0.50 PerfScore 7.88\n-G_M8810_IG13:\n\u002B       jmp      SHORT G_M8810_IG12\n\u002B\t\t\t\t\t\t;; size=173 bbWeight=0.50 PerfScore 16.00\n\u002BG_M8810_IG11:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for FakeItEasy.Core.IFakeObjectCall:get_Arguments():FakeItEasy.Configuration.ArgumentCollection:this\n        call     [r11]FakeItEasy.Core.IFakeObjectCall:get_Arguments():FakeItEasy.Configuration.ArgumentCollection:this\n-       mov      rbx, rax\n-       test     rbx, rbx\n-       je       SHORT G_M8810_IG18\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Object]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n        je       SHORT G_M8810_IG14\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M8810_IG15\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 10.75\n-G_M8810_IG14:\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, rbx\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.Object](System.Collections.Generic.IEnumerable\u00601[System.Object],byref):System.Object\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M8810_IG15:\n        cmp      byte  ptr [rbp-0x38], 0\n-       je       SHORT G_M8810_IG19\n\u002B       je       SHORT G_M8810_IG15\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rax\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 1.88\n-G_M8810_IG16:\n\u002B\t\t\t\t\t\t;; size=69 bbWeight=0.50 PerfScore 7.25\n\u002BG_M8810_IG12:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M8810_IG17:\n\u002BG_M8810_IG13:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -275,17 \u002B241,17 @@ G_M8810_IG17:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M8810_IG18:\n\u002BG_M8810_IG14:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M8810_IG19:\n\u002BG_M8810_IG15:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 883, prolog size 35, PerfScore 102.33, instruction count 195, allocated bytes for code 883 (MethodHash=f1dcdd95) for method FakeItEasy.Core.FakeManager\u002BPropertySetterRule\u002B\u003C\u003Ec__DisplayClass1_0:\u003CApply\u003Eb__0(System.Collections.Generic.LinkedList\u00601[FakeItEasy.Core.CallRuleMetadata]):this (FullOpts)\n\u002B; Total bytes of code 779, prolog size 35, PerfScore 87.33, instruction count 169, allocated bytes for code 779 (MethodHash=f1dcdd95) for method FakeItEasy.Core.FakeManager\u002BPropertySetterRule\u002B\u003C\u003Ec__DisplayClass1_0:\u003CApply\u003Eb__0(System.Collections.Generic.LinkedList\u00601[FakeItEasy.Core.CallRuleMetadata]):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":883,"DiffBytes":779},{"Assembly":"Handlebars.dasm","Method":"HandlebarsDotNet.Compiler.ConditionalBlockAccumulatorContext:IsClosingElement(System.Linq.Expressions.Expression):bool:this (FullOpts)","Category":"improvement","Description":"493 -\u003E 441 bytes (-52)","ExtraInfo":null,"Diff":"@@ -17,25 \u002B17,25 @@\n ;* V06 tmp3         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n ;* V07 tmp4         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n ;  V08 tmp5         [V08,T01] (  7,  7   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Linq.Expressions.ConditionalExpression]\u003E\n-;  V09 tmp6         [V09,T11] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V10 tmp7         [V10,T12] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V11 tmp8         [V11,T05] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Expressions.DefaultExpression\u003E\n-;  V12 tmp9         [V12,T17] (  3,  1.50)     ref  -\u003E  rdi         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Expressions.ConditionalExpression[]\u003E\n-;  V13 tmp10        [V13,T10] (  4,  2   )     int  -\u003E  rbx         single-def \u0022Inline stloc first use temp\u0022\n-;  V14 tmp11        [V14,T06] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Linq.Expressions.ConditionalExpression\u003E\n-;  V15 tmp12        [V15,T04] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Linq.Expressions.ConditionalExpression]\u003E\n-;  V16 tmp13        [V16    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V09 tmp6         [V09,T09] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;  V10 tmp7         [V10,T10] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;  V11 tmp8         [V11,T04] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Expressions.DefaultExpression\u003E\n\u002B;  V12 tmp9         [V12,T15] (  3,  1.50)     ref  -\u003E  rdi         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Expressions.ConditionalExpression[]\u003E\n\u002B;  V13 tmp10        [V13,T08] (  4,  2   )     int  -\u003E  rbx         single-def \u0022Inline stloc first use temp\u0022\n\u002B;  V14 tmp11        [V14,T05] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Linq.Expressions.ConditionalExpression\u003E\n\u002B;  V15 tmp12        [V15,T06] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Linq.Expressions.ConditionalExpression]\u003E\n\u002B;  V16 tmp13        [V16    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V18 tmp15        [V18,T08] (  4,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.ConditionalExpression\u003E\n-;  V19 tmp16        [V19,T09] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ConditionalExpression]\u003E\n\u002B;  V18 tmp15        [V18,T16] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.ConditionalExpression\u003E\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ConditionalExpression]\u003E\n ;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Linq.Expressions.ConditionalExpression]\u003E\n ;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V22 tmp19        [V22,T13] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Linq.Expressions.ConditionalExpression\u003E\n-;  V23 tmp20        [V23,T14] (  2,  2   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V24 tmp21        [V24,T15] (  2,  2   )     ref  -\u003E  r12         single-def \u0022argument with side effect\u0022\n-;  V25 tmp22        [V25,T16] (  2,  2   )     ref  -\u003E  r13         single-def \u0022argument with side effect\u0022\n-;  V26 cse0         [V26,T18] (  3,  1.50)     ref  -\u003E  r15         \u0022CSE #01: moderate\u0022\n-;  V27 cse1         [V27,T19] (  3,  1.50)     ref  -\u003E  rdi         \u0022CSE #04: moderate\u0022\n\u002B;  V22 tmp19        [V22,T11] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Linq.Expressions.ConditionalExpression\u003E\n\u002B;  V23 tmp20        [V23,T12] (  2,  2   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;  V24 tmp21        [V24,T13] (  2,  2   )     ref  -\u003E  r12         single-def \u0022argument with side effect\u0022\n\u002B;  V25 tmp22        [V25,T14] (  2,  2   )     ref  -\u003E  r13         single-def \u0022argument with side effect\u0022\n\u002B;  V26 cse0         [V26,T17] (  3,  1.50)     ref  -\u003E  r15         \u0022CSE #01: moderate\u0022\n\u002B;  V27 cse1         [V27,T18] (  3,  1.50)     ref  -\u003E  rdi         \u0022CSE #04: moderate\u0022\n ;\n ; Lcl frame size = 8\n \n@@ -75,33 \u002B75,16 @@ G_M59831_IG04:\n G_M59831_IG05:\n        mov      r15, gword ptr [rbx\u002B0x18]\n        test     r15, r15\n-       jne      G_M59831_IG08\n-       mov      r15, gword ptr [rbx\u002B0x10]\n-       test     r15, r15\n-       je       G_M59831_IG12\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ConditionalExpression]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M59831_IG06\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M59831_IG07\n-\t\t\t\t\t\t;; size=75 bbWeight=0.50 PerfScore 10.62\n-G_M59831_IG06:\n\u002B       jne      G_M59831_IG06\n\u002B       mov      rsi, gword ptr [rbx\u002B0x10]\n\u002B       test     rsi, rsi\n\u002B       je       G_M59831_IG10\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.Linq.Expressions.ConditionalExpression](System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.ConditionalExpression],byref):System.Linq.Expressions.ConditionalExpression\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M59831_IG07:\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M59831_IG13\n\u002B       je       G_M59831_IG11\n        mov      rdi, gword ptr [rbx\u002B0x10]\n        mov      r15, rdi\n        mov      r14d, dword ptr [rdi\u002B0x10]\n@@ -119,15 \u002B102,15 @@ G_M59831_IG07:\n        call     [rax]System.Linq.Expressions.Expression:Condition(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Type):System.Linq.Expressions.ConditionalExpression\n        mov      rdx, rax\n        cmp      r14d, dword ptr [r15\u002B0x10]\n-       jae      G_M59831_IG14\n\u002B       jae      G_M59831_IG12\n        mov      rdi, gword ptr [r15\u002B0x08]\n        movsxd   rsi, r14d\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST\n        call     [rax]CORINFO_HELP_ARRADDR_ST\n        inc      dword ptr [r15\u002B0x14]\n-       jmp      G_M59831_IG10\n-\t\t\t\t\t\t;; size=120 bbWeight=0.50 PerfScore 16.88\n-G_M59831_IG08:\n\u002B       jmp      G_M59831_IG08\n\u002B\t\t\t\t\t\t;; size=172 bbWeight=0.50 PerfScore 22.12\n\u002BG_M59831_IG06:\n        mov      r14, gword ptr [rbx\u002B0x10]\n        mov      rdi, gword ptr [rbx\u002B0x20]\n        mov      rax, 0xD1FFAB1E      ; code for HandlebarsDotNet.Compiler.ConditionalBlockAccumulatorContext:SinglifyExpressions(System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.Expression]):System.Linq.Expressions.Expression\n@@ -147,14 \u002B130,14 @@ G_M59831_IG08:\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      ebx, dword ptr [r14\u002B0x10]\n        cmp      dword ptr [rdi\u002B0x08], ebx\n-       ja       SHORT G_M59831_IG09\n\u002B       ja       SHORT G_M59831_IG07\n        mov      rdi, r14\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n-       jmp      SHORT G_M59831_IG10\n\u002B       jmp      SHORT G_M59831_IG08\n \t\t\t\t\t\t;; size=120 bbWeight=0.50 PerfScore 15.00\n-G_M59831_IG09:\n\u002BG_M59831_IG07:\n        lea      esi, [rbx\u002B0x01]\n        mov      dword ptr [r14\u002B0x10], esi\n        mov      esi, ebx\n@@ -162,10 \u002B145,10 @@ G_M59831_IG09:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST\n        call     [rax]CORINFO_HELP_ARRADDR_ST\n \t\t\t\t\t\t;; size=24 bbWeight=0.50 PerfScore 2.62\n-G_M59831_IG10:\n\u002BG_M59831_IG08:\n        mov      eax, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 0.12\n-G_M59831_IG11:\n\u002BG_M59831_IG09:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n@@ -175,22 \u002B158,22 @@ G_M59831_IG11:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M59831_IG12:\n\u002BG_M59831_IG10:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M59831_IG13:\n\u002BG_M59831_IG11:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M59831_IG14:\n\u002BG_M59831_IG12:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 493, prolog size 22, PerfScore 65.50, instruction count 124, allocated bytes for code 493 (MethodHash=7d6c1648) for method HandlebarsDotNet.Compiler.ConditionalBlockAccumulatorContext:IsClosingElement(System.Linq.Expressions.Expression):bool:this (FullOpts)\n\u002B; Total bytes of code 441, prolog size 22, PerfScore 58.00, instruction count 111, allocated bytes for code 441 (MethodHash=7d6c1648) for method HandlebarsDotNet.Compiler.ConditionalBlockAccumulatorContext:IsClosingElement(System.Linq.Expressions.Expression):bool:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":493,"DiffBytes":441},{"Assembly":"HotChocolate.Types.dasm","Method":"HotChocolate.Fetching.BatchDispatcher:EvaluateOpenBatches(System.Collections.Generic.PriorityQueue\u00602[GreenDonut.Batch,long],System.Collections.Generic.List\u00601[System.Threading.Tasks.Task]):this (FullOpts)","Category":"improvement","Description":"1,322 -\u003E 1,267 bytes (-55)","ExtraInfo":null,"Diff":"@@ -11,18 \u002B11,18 @@\n ;  V00 this         [V00,T34] (  6,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CHotChocolate.Fetching.BatchDispatcher\u003E\n ;  V01 arg1         [V01,T13] ( 13, 34.50)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Collections.Generic.PriorityQueue\u00602[GreenDonut.Batch,long]\u003E\n ;  V02 arg2         [V02,T39] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[System.Threading.Tasks.Task]\u003E\n-;  V03 loc0         [V03,T43] (  4,  3   )     ref  -\u003E  r13         class-hnd \u003CGreenDonut.Batch\u003E\n\u002B;  V03 loc0         [V03,T42] (  4,  3   )     ref  -\u003E  r13         class-hnd \u003CGreenDonut.Batch\u003E\n ;  V04 loc1         [V04,T46] (  4,  2   )     ref  -\u003E  [rbp-0xA0]  class-hnd EH-live spill-single-def \u003CSystem.Collections.Generic.HashSet\u00601[GreenDonut.Batch]\u003E\n-;  V05 loc2         [V05,T48] (  3,  2   )   ubyte  -\u003E  [rbp-0x2C]  do-not-enreg[M] ld-addr-op EH-live\n\u002B;  V05 loc2         [V05,T47] (  3,  2   )   ubyte  -\u003E  [rbp-0x2C]  do-not-enreg[M] ld-addr-op EH-live\n ;  V06 loc3         [V06    ] (  6, 10   )  struct (24) [rbp-0x48]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Collections.Generic.HashSet\u00601\u002BEnumerator[GreenDonut.Batch]\u003E\n ;  V07 loc4         [V07,T21] (  5, 16   )     ref  -\u003E  r12         class-hnd \u003CGreenDonut.Batch\u003E\n ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V09 tmp1         [V09,T35] (  3,  6   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[GreenDonut.Batch]\u003E\n-;  V10 tmp2         [V10,T40] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[GreenDonut.Batch]\u003E\n-;  V11 tmp3         [V11    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x50]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V10 tmp2         [V10,T44] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[GreenDonut.Batch]\u003E\n\u002B;  V11 tmp3         [V11    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x50]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V12 tmp4         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V13 tmp5         [V13,T49] (  3,  1.50)     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CGreenDonut.Batch\u003E\n-;  V14 tmp6         [V14,T47] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[GreenDonut.Batch]\u003E\n\u002B;  V13 tmp5         [V13,T48] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CGreenDonut.Batch\u003E\n\u002B;* V14 tmp6         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[GreenDonut.Batch]\u003E\n ;  V15 tmp7         [V15,T45] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[GreenDonut.Batch]\u003E\n ;* V16 tmp8         [V16    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.HashSet\u00601\u002BEnumerator[GreenDonut.Batch]\u003E\n ;  V17 tmp9         [V17,T19] (  6, 18   )     int  -\u003E  [rbp-0x54]  spill-single-def \u0022Inline stloc first use temp\u0022\n@@ -65,7 \u002B65,7 @@\n ;  V54 tmp46        [V54    ] (  2,  4.50)     int  -\u003E  [rbp-0x34]  do-not-enreg[X] addr-exposed \u0022field V06._index (fldOffset=0x14)\u0022 P-DEP\n ;* V55 tmp47        [V55    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V16._hashSet (fldOffset=0x0)\u0022 P-INDEP\n ;* V56 tmp48        [V56    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V16._current (fldOffset=0x8)\u0022 P-INDEP\n-;  V57 tmp49        [V57,T50] (  2,  1   )     int  -\u003E  rdi         single-def \u0022field V16._version (fldOffset=0x10)\u0022 P-INDEP\n\u002B;  V57 tmp49        [V57,T49] (  2,  1   )     int  -\u003E  rdi         single-def \u0022field V16._version (fldOffset=0x10)\u0022 P-INDEP\n ;* V58 tmp50        [V58    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V16._index (fldOffset=0x14)\u0022 P-INDEP\n ;* V59 tmp51        [V59    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V19.Item1 (fldOffset=0x0)\u0022 P-INDEP\n ;* V60 tmp52        [V60    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022field V19.Item2 (fldOffset=0x8)\u0022 P-INDEP\n@@ -73,11 \u002B73,11 @@\n ;* V62 tmp54        [V62    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022field V20.Item2 (fldOffset=0x8)\u0022 P-INDEP\n ;  V63 tmp55        [V63,T14] (  2, 32   )     ref  -\u003E  rsi         \u0022field V39.Item1 (fldOffset=0x0)\u0022 P-INDEP\n ;  V64 tmp56        [V64,T11] (  3, 48   )    long  -\u003E  [rbp-0x78]  spill-single-def \u0022field V39.Item2 (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp57        [V65,T41] (  2,  4   )     ref  -\u003E  r12         \u0022field V40.Item1 (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V65 tmp57        [V65,T40] (  2,  4   )     ref  -\u003E  r12         \u0022field V40.Item1 (fldOffset=0x0)\u0022 P-INDEP\n ;  V66 tmp58        [V66,T17] (  3, 20   )    long  -\u003E  [rbp-0x80]  spill-single-def \u0022field V40.Item2 (fldOffset=0x8)\u0022 P-INDEP\n ;  V67 tmp59        [V67,T15] (  2, 32   )     ref  -\u003E  [rbp-0xD8]  spill-single-def \u0022field V49.Item1 (fldOffset=0x0)\u0022 P-INDEP\n ;  V68 tmp60        [V68,T12] (  3, 48   )    long  -\u003E  [rbp-0x88]  spill-single-def \u0022field V49.Item2 (fldOffset=0x8)\u0022 P-INDEP\n-;  V69 tmp61        [V69,T42] (  2,  4   )     ref  -\u003E  r12         \u0022field V50.Item1 (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V69 tmp61        [V69,T41] (  2,  4   )     ref  -\u003E  r12         \u0022field V50.Item1 (fldOffset=0x0)\u0022 P-INDEP\n ;  V70 tmp62        [V70,T18] (  3, 20   )    long  -\u003E  [rbp-0x90]  spill-single-def \u0022field V50.Item2 (fldOffset=0x8)\u0022 P-INDEP\n ;  V71 tmp63        [V71,T03] (  3, 96   )   byref  -\u003E  rdi         \u0022BlockOp address local\u0022\n ;  V72 tmp64        [V72,T04] (  3, 96   )   byref  -\u003E  [rbp-0xE0]  spill-single-def \u0022BlockOp address local\u0022\n@@ -86,7 \u002B86,7 @@\n ;  V75 tmp67        [V75,T06] (  3, 96   )   byref  -\u003E  [rbp-0xF0]  spill-single-def \u0022BlockOp address local\u0022\n ;  V76 tmp68        [V76,T29] (  3, 12   )   byref  -\u003E  [rbp-0xF8]  spill-single-def \u0022BlockOp address local\u0022\n ;  V77 cse0         [V77,T25] (  4, 12   )     ref  -\u003E  rsi         \u0022CSE #02: conservative\u0022\n-;  V78 cse1         [V78,T44] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: conservative\u0022\n\u002B;  V78 cse1         [V78,T43] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: conservative\u0022\n ;  V79 cse2         [V79,T02] ( 10,104   )     int  -\u003E  [rbp-0x94]  multi-def \u0022CSE #07: aggressive\u0022\n ;\n ; Lcl frame size = 216\n@@ -148,7 \u002B148,7 @@ G_M44459_IG08:\n        lea      r8, bword ptr [rbx\u002B0x08]\n        mov      bword ptr [rbp-0xA8], r8\n        test     edx, edx\n-       jl       G_M44459_IG38\n\u002B       jl       G_M44459_IG36\n        mov      r9, gword ptr [r8]\n        mov      gword ptr [rbp-0xB0], r9\n        test     r9, r9\n@@ -236,7 \u002B236,7 @@ G_M44459_IG18:\n G_M44459_IG19:\n        mov      eax, dword ptr [rbp-0x6C]\n        cmp      eax, dword ptr [rbp-0x94]\n-       jae      G_M44459_IG39\n\u002B       jae      G_M44459_IG37\n        mov      edi, eax\n        shl      rdi, 4\n        mov      rcx, gword ptr [rbp-0xD0]\n@@ -267,7 \u002B267,7 @@ G_M44459_IG21:\n        mov      r11d, dword ptr [r9\u002B0x08]\n        mov      dword ptr [rbp-0x94], r11d\n        cmp      r10d, r11d\n-       jae      G_M44459_IG39\n\u002B       jae      G_M44459_IG37\n        mov      edi, r10d\n        shl      rdi, 4\n        lea      rdi, bword ptr [r9\u002Brdi\u002B0x10]\n@@ -290,7 \u002B290,7 @@ G_M44459_IG23:\n        mov      r11d, dword ptr [rsi\u002B0x08]\n        mov      eax, r11d\n        cmp      edi, eax\n-       jae      G_M44459_IG39\n\u002B       jae      G_M44459_IG37\n        mov      edi, edi\n        shl      rdi, 4\n        lea      rax, bword ptr [rsi\u002Brdi\u002B0x10]\n@@ -308,7 \u002B308,7 @@ G_M44459_IG24:\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.HashSet\u00601\u002BEnumerator[System.__Canon]:MoveNext():bool:this\n        call     [rax]System.Collections.Generic.HashSet\u00601\u002BEnumerator[System.__Canon]:MoveNext():bool:this\n        test     eax, eax\n-       je       G_M44459_IG40\n\u002B       je       G_M44459_IG38\n        mov      r12, gword ptr [rbp-0x40]\n        mov      rdi, r12\n        mov      rax, qword ptr [r12]\n@@ -350,7 \u002B350,7 @@ G_M44459_IG28:\n \t\t\t\t\t\t;; size=2 bbWeight=1 PerfScore 2.00\n G_M44459_IG29:\n        cmp      ecx, r9d\n-       jae      G_M44459_IG39\n\u002B       jae      G_M44459_IG37\n        mov      edi, ecx\n        shl      rdi, 4\n        lea      rcx, bword ptr [rdx\u002Brdi\u002B0x10]\n@@ -375,7 \u002B375,7 @@ G_M44459_IG31:\n        mov      edi, dword ptr [rdx\u002B0x08]\n        mov      r9d, edi\n        cmp      r8d, r9d\n-       jae      G_M44459_IG39\n\u002B       jae      G_M44459_IG37\n        mov      edi, r8d\n        shl      rdi, 4\n        lea      rdi, bword ptr [rdx\u002Brdi\u002B0x10]\n@@ -390,7 \u002B390,7 @@ G_M44459_IG32:\n        mov      r9d, dword ptr [rdi\u002B0x08]\n        mov      esi, r9d\n        cmp      ecx, esi\n-       jae      G_M44459_IG39\n\u002B       jae      G_M44459_IG37\n        mov      esi, ecx\n        shl      rsi, 4\n        lea      rax, bword ptr [rdi\u002Brsi\u002B0x10]\n@@ -404,84 \u002B404,66 @@ G_M44459_IG32:\n        jmp      G_M44459_IG24\n \t\t\t\t\t\t;; size=72 bbWeight=2 PerfScore 27.50\n G_M44459_IG33:\n-       mov      r13, r12\n-       test     r13, r13\n-       je       SHORT G_M44459_IG36\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[GreenDonut.Batch]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n\u002B       mov      rsi, r12\n\u002B       test     rsi, rsi\n        je       SHORT G_M44459_IG34\n-       lea      rsi, [rbp-0x50]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      r13, rax\n-       jmp      SHORT G_M44459_IG35\n-\t\t\t\t\t\t;; size=60 bbWeight=0.50 PerfScore 8.25\n-G_M44459_IG34:\n        lea      rdx, [rbp-0x50]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[GreenDonut.Batch](System.Collections.Generic.IEnumerable\u00601[GreenDonut.Batch],byref):GreenDonut.Batch\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        mov      r13, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M44459_IG35:\n        cmp      byte  ptr [rbp-0x50], 0\n-       je       SHORT G_M44459_IG37\n-       jmp      SHORT G_M44459_IG40\n-\t\t\t\t\t\t;; size=8 bbWeight=0.50 PerfScore 2.00\n-G_M44459_IG36:\n\u002B       je       SHORT G_M44459_IG35\n\u002B       jmp      SHORT G_M44459_IG38\n\u002B\t\t\t\t\t\t;; size=45 bbWeight=0.50 PerfScore 4.88\n\u002BG_M44459_IG34:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M44459_IG37:\n\u002BG_M44459_IG35:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M44459_IG38:\n\u002BG_M44459_IG36:\n        mov      edi, 69\n        mov      esi, 13\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int,int)\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int,int)\n        int3     \n \t\t\t\t\t\t;; size=23 bbWeight=0 PerfScore 0.00\n-G_M44459_IG39:\n\u002BG_M44459_IG37:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n-G_M44459_IG40:\n\u002BG_M44459_IG38:\n        mov      rdi, gword ptr [rbp-0xA0]\n        mov      rax, 0xD1FFAB1E      ; code for System.Threading.Monitor:Exit(System.Object)\n        call     [rax]System.Threading.Monitor:Exit(System.Object)\n        test     r13, r13\n-       jne      SHORT G_M44459_IG42\n\u002B       jne      SHORT G_M44459_IG40\n \t\t\t\t\t\t;; size=24 bbWeight=1 PerfScore 5.50\n-G_M44459_IG41:\n\u002BG_M44459_IG39:\n        mov      rdi, r15\n        mov      rsi, rbx\n        mov      rdx, r14\n        mov      rax, 0xD1FFAB1E      ; code for HotChocolate.Fetching.BatchDispatcher:EvaluateMultipleOpenBatches(System.Collections.Generic.PriorityQueue\u00602[GreenDonut.Batch,long],System.Collections.Generic.List\u00601[System.Threading.Tasks.Task]):this\n        call     [rax]HotChocolate.Fetching.BatchDispatcher:EvaluateMultipleOpenBatches(System.Collections.Generic.PriorityQueue\u00602[GreenDonut.Batch,long],System.Collections.Generic.List\u00601[System.Threading.Tasks.Task]):this\n-       jmp      SHORT G_M44459_IG43\n\u002B       jmp      SHORT G_M44459_IG41\n \t\t\t\t\t\t;; size=23 bbWeight=0.50 PerfScore 3.00\n-G_M44459_IG42:\n\u002BG_M44459_IG40:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, r14\n        mov      rax, 0xD1FFAB1E      ; code for HotChocolate.Fetching.BatchDispatcher:EvaluateSingleOpenBatches(GreenDonut.Batch,System.Collections.Generic.List\u00601[System.Threading.Tasks.Task]):this\n        call     [rax]HotChocolate.Fetching.BatchDispatcher:EvaluateSingleOpenBatches(GreenDonut.Batch,System.Collections.Generic.List\u00601[System.Threading.Tasks.Task]):this\n \t\t\t\t\t\t;; size=21 bbWeight=0.50 PerfScore 2.00\n-G_M44459_IG43:\n\u002BG_M44459_IG41:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M44459_IG44:\n\u002BG_M44459_IG42:\n        add      rsp, 216\n        pop      rbx\n        pop      r12\n@@ -491,23 \u002B473,23 @@ G_M44459_IG44:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M44459_IG45:\n\u002BG_M44459_IG43:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M44459_IG46:\n\u002BG_M44459_IG44:\n        cmp      dword ptr [rbp-0x2C], 0\n-       je       SHORT G_M44459_IG47\n\u002B       je       SHORT G_M44459_IG45\n        mov      rdi, gword ptr [rbp-0xA0]\n        mov      rax, 0xD1FFAB1E      ; code for System.Threading.Monitor:Exit(System.Object)\n        call     [rax]System.Threading.Monitor:Exit(System.Object)\n \t\t\t\t\t\t;; size=25 bbWeight=0 PerfScore 0.00\n-G_M44459_IG47:\n\u002BG_M44459_IG45:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M44459_IG48:\n\u002BG_M44459_IG46:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1322, prolog size 44, PerfScore 1374.96, instruction count 321, allocated bytes for code 1322 (MethodHash=460d5254) for method HotChocolate.Fetching.BatchDispatcher:EvaluateOpenBatches(System.Collections.Generic.PriorityQueue\u00602[GreenDonut.Batch,long],System.Collections.Generic.List\u00601[System.Threading.Tasks.Task]):this (FullOpts)\n\u002B; Total bytes of code 1267, prolog size 44, PerfScore 1367.33, instruction count 307, allocated bytes for code 1267 (MethodHash=460d5254) for method HotChocolate.Fetching.BatchDispatcher:EvaluateOpenBatches(System.Collections.Generic.PriorityQueue\u00602[GreenDonut.Batch,long],System.Collections.Generic.List\u00601[System.Threading.Tasks.Task]):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1322,"DiffBytes":1267},{"Assembly":"LaunchDarkly.ServerSdk.dasm","Method":"LaunchDarkly.Sdk.Server.Integrations.TestData:MakeInitData():LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BFullDataSet\u00601[LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]:this (FullOpts)","Category":"improvement","Description":"4,867 -\u003E 3,025 bytes (-1842)","ExtraInfo":null,"Diff":"@@ -8,294 \u002B8,279 @@\n ; 0 inlinees with PGO data; 150 single block inlinees; 76 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T11] (  5,  5   )     ref  -\u003E  rbx         this class-hnd single-def \u003CLaunchDarkly.Sdk.Server.Integrations.TestData\u003E\n-;  V01 loc0         [V01,T61] (  4,  2   )     ref  -\u003E  [rbp-0x58]  class-hnd EH-live spill-single-def \u003CSystem.Object\u003E\n-;  V02 loc1         [V02,T78] (  3,  2   )   ubyte  -\u003E  [rbp-0x2C]  do-not-enreg[M] ld-addr-op EH-live\n\u002B;  V00 this         [V00,T06] (  5,  5   )     ref  -\u003E  rbx         this class-hnd single-def \u003CLaunchDarkly.Sdk.Server.Integrations.TestData\u003E\n\u002B;  V01 loc0         [V01,T46] (  4,  2   )     ref  -\u003E  [rbp-0x48]  class-hnd EH-live spill-single-def \u003CSystem.Object\u003E\n\u002B;  V02 loc1         [V02,T53] (  3,  2   )   ubyte  -\u003E  [rbp-0x2C]  do-not-enreg[M] ld-addr-op EH-live\n ;* V03 loc2         [V03    ] (  0,  0   )  struct ( 8) zero-ref    \u003CLaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BFullDataSet\u00601[LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V05 tmp1         [V05    ] (  0,  0   )    long  -\u003E  zero-ref    class-hnd exact \u0022dup spill\u0022 \u003CSystem.Collections.Immutable.ImmutableList\u00601\u002BBuilder[System.Collections.Generic.KeyValuePair\u00602[LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BDataKind,LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BKeyedItems\u00601[LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]]]\u003E\n-;  V06 tmp2         [V06,T34] (  3,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CLaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BDataKind\u003E\n\u002B;  V06 tmp2         [V06,T25] (  3,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CLaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BDataKind\u003E\n ;* V07 tmp3         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CLaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BKeyedItems\u00601[LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]\u003E\n ;* V08 tmp4         [V08    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.KeyValuePair\u00602[LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BDataKind,LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BKeyedItems\u00601[LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]]\u003E\n-;  V09 tmp5         [V09,T35] (  3,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CLaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BDataKind\u003E\n\u002B;  V09 tmp5         [V09,T26] (  3,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CLaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BDataKind\u003E\n ;* V10 tmp6         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CLaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BKeyedItems\u00601[LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]\u003E\n ;* V11 tmp7         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.KeyValuePair\u00602[LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BDataKind,LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BKeyedItems\u00601[LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]]\u003E\n ;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CLaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BFullDataSet\u00601[LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]\u003E\n-;  V13 tmp9         [V13,T08] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Immutable.ImmutableList\u00601[System.Collections.Generic.KeyValuePair\u00602[LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BDataKind,LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BKeyedItems\u00601[LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]]]\u003E\n\u002B;  V13 tmp9         [V13,T05] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Immutable.ImmutableList\u00601[System.Collections.Generic.KeyValuePair\u00602[LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BDataKind,LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BKeyedItems\u00601[LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]]]\u003E\n ;* V14 tmp10        [V14    ] (  0,  0   )    long  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Immutable.ImmutableList\u00601\u002BBuilder[System.Collections.Generic.KeyValuePair\u00602[LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BDataKind,LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BKeyedItems\u00601[LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]]]\u003E\n-;  V15 tmp11        [V15,T06] (  5,  8   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]\u003E\n-;  V16 tmp12        [V16,T76] (  3,  2   )     ref  -\u003E  r12         class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]\u003E\n-;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]\u003E\n-;  V18 tmp14        [V18,T40] (  6,  3   )     ref  -\u003E  r12         class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]\u003E\n-;  V19 tmp15        [V19,T62] (  4,  2   )     ref  -\u003E  r12         class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]\u003E\n-;  V20 tmp16        [V20,T48] (  3,  3   )     ref  -\u003E  [rbp-0x60]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEqualityComparer\u00601[System.String]\u003E\n-;  V21 tmp17        [V21,T23] (  5,  5   )     ref  -\u003E  [rbp-0x68]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEqualityComparer\u00601[LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]\u003E\n-;  V22 tmp18        [V22,T01] ( 12, 12   )     ref  -\u003E  [rbp-0x70]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]\u003E\n-;* V23 tmp19        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602\u002BComparers[System.String,LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]\u003E\n-;  V24 tmp20        [V24,T13] (  6,  6   )     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]\u003E\n\u002B;  V15 tmp11        [V15,T14] (  3,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]\u003E\n\u002B;  V16 tmp12        [V16,T54] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]\u003E\n\u002B;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]\u003E\n\u002B;* V18 tmp14        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]\u003E\n\u002B;* V19 tmp15        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEqualityComparer\u00601[System.String]\u003E\n\u002B;* V20 tmp16        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEqualityComparer\u00601[LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]\u003E\n\u002B;* V21 tmp17        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]\u003E\n\u002B;* V22 tmp18        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602\u002BComparers[System.String,LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]\u003E\n\u002B;* V23 tmp19        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]\u003E\n... diff truncated; middle omitted ...\n-       mov      rax, gword ptr [rbp-0x88]\n-       jmp      G_M55737_IG37\n-\t\t\t\t\t\t;; size=28 bbWeight=0 PerfScore 0.00\n-G_M55737_IG89:\n-       mov      rdi, 0xD1FFAB1E      ; System.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableDictionary\u00602\u002BHashBucket[System.String,LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M55737_IG25\n-\t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M55737_IG90:\n-       mov      rdi, qword ptr [rbp-0x48]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M55737_IG30\n-\t\t\t\t\t\t;; size=21 bbWeight=0 PerfScore 0.00\n-G_M55737_IG91:\n-       mov      rdi, rax\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rcx]CORINFO_HELP_GET_GCSTATIC_BASE\n-       mov      rax, qword ptr [rbp-0x48]\n-       jmp      G_M55737_IG07\n-\t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M55737_IG92:\n-       mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.EqualityComparer\u00601[LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]\n-       mov      rsi, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rsi]CORINFO_HELP_GET_GCSTATIC_BASE\n-       mov      rax, qword ptr [rbp-0x48]\n-       jmp      G_M55737_IG08\n-\t\t\t\t\t\t;; size=31 bbWeight=0 PerfScore 0.00\n-G_M55737_IG93:\n\u002BG_M55737_IG63:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableDictionary\u00602\u002BHashBucket[System.String,LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M55737_IG19\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M55737_IG94:\n\u002BG_M55737_IG64:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableDictionary\u00602\u002BHashBucket[System.String,LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M55737_IG10\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M55737_IG95:\n\u002BG_M55737_IG65:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[System.Collections.Generic.KeyValuePair\u00602[System.String,LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]]\n-       mov      rdx, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rdx]CORINFO_HELP_GET_GCSTATIC_BASE\n-       mov      rax, qword ptr [rbp-0x48]\n-       jmp      G_M55737_IG40\n-\t\t\t\t\t\t;; size=31 bbWeight=0 PerfScore 0.00\n-G_M55737_IG96:\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n\u002B       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n\u002B       jmp      G_M55737_IG23\n\u002B\t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n\u002BG_M55737_IG66:\n        mov      rdi, 0xD1FFAB1E      ; \u0027left\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)\n        call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)\n        int3     \n \t\t\t\t\t\t;; size=23 bbWeight=0 PerfScore 0.00\n-G_M55737_IG97:\n\u002BG_M55737_IG67:\n        call     CORINFO_HELP_OVERFLOW\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n-G_M55737_IG98:\n\u002BG_M55737_IG68:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableDictionary\u00602\u002BHashBucket[System.String,LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M55737_IG62\n\u002B       jmp      G_M55737_IG37\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M55737_IG99:\n-       mov      rdi, qword ptr [rbp-0x48]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rcx]CORINFO_HELP_GET_GCSTATIC_BASE\n-       mov      rax, gword ptr [rbp-0x118]\n-       jmp      G_M55737_IG63\n-\t\t\t\t\t\t;; size=28 bbWeight=0 PerfScore 0.00\n-G_M55737_IG100:\n\u002BG_M55737_IG69:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableDictionary\u00602\u002BHashBucket[System.String,LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M55737_IG60\n\u002B       jmp      G_M55737_IG35\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M55737_IG101:\n-       mov      rdi, rax\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rcx]CORINFO_HELP_GET_GCSTATIC_BASE\n-       mov      rax, qword ptr [rbp-0x48]\n-       jmp      G_M55737_IG51\n-\t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M55737_IG102:\n-       mov      rdi, 0xD1FFAB1E      ; System.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableDictionary\u00602\u002BHashBucket[System.String,LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M55737_IG55\n-\t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M55737_IG103:\n-       mov      rdi, 0xD1FFAB1E      ; System.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableDictionary\u00602\u002BHashBucket[System.String,LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M55737_IG53\n-\t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M55737_IG104:\n\u002BG_M55737_IG70:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[System.Collections.Generic.KeyValuePair\u00602[System.String,LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M55737_IG66\n\u002B       jmp      G_M55737_IG41\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M55737_IG105:\n\u002BG_M55737_IG71:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[System.Collections.Generic.KeyValuePair\u00602[LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BDataKind,LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BKeyedItems\u00601[LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M55737_IG79\n\u002B       jmp      G_M55737_IG54\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M55737_IG106:\n-       mov      rdi, gword ptr [rbp-0x58]\n\u002BG_M55737_IG72:\n\u002B       mov      rdi, gword ptr [rbp-0x48]\n        mov      rax, 0xD1FFAB1E      ; code for System.Threading.Monitor:Exit(System.Object)\n        call     [rax]System.Threading.Monitor:Exit(System.Object)\n        mov      rax, r15\n \t\t\t\t\t\t;; size=19 bbWeight=1 PerfScore 4.50\n-G_M55737_IG107:\n-       add      rsp, 376\n\u002BG_M55737_IG73:\n\u002B       add      rsp, 232\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -1467,23 \u002B1037,23 @@ G_M55737_IG107:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M55737_IG108:\n\u002BG_M55737_IG74:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M55737_IG109:\n\u002BG_M55737_IG75:\n        cmp      dword ptr [rbp-0x2C], 0\n-       je       SHORT G_M55737_IG110\n-       mov      rdi, gword ptr [rbp-0x58]\n\u002B       je       SHORT G_M55737_IG76\n\u002B       mov      rdi, gword ptr [rbp-0x48]\n        mov      rax, 0xD1FFAB1E      ; code for System.Threading.Monitor:Exit(System.Object)\n        call     [rax]System.Threading.Monitor:Exit(System.Object)\n \t\t\t\t\t\t;; size=22 bbWeight=0 PerfScore 0.00\n-G_M55737_IG110:\n\u002BG_M55737_IG76:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M55737_IG111:\n\u002BG_M55737_IG77:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 4867, prolog size 28, PerfScore 465.25, instruction count 967, allocated bytes for code 4867 (MethodHash=56812646) for method LaunchDarkly.Sdk.Server.Integrations.TestData:MakeInitData():LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BFullDataSet\u00601[LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]:this (FullOpts)\n\u002B; Total bytes of code 3025, prolog size 28, PerfScore 335.25, instruction count 618, allocated bytes for code 3025 (MethodHash=56812646) for method LaunchDarkly.Sdk.Server.Integrations.TestData:MakeInitData():LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BFullDataSet\u00601[LaunchDarkly.Sdk.Server.Subsystems.DataStoreTypes\u002BItemDescriptor]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":4867,"DiffBytes":3025},{"Assembly":"MathNet.Numerics.dasm","Method":"MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:SameAs[byte](MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)","Category":"improvement","Description":"594 -\u003E 120 bytes (-474)","ExtraInfo":null,"Diff":"@@ -1,214 \u002B1,65 @@\n ; Assembly listing for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:SameAs[byte](MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n-; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data\n\u002B; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 12,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V01 arg1         [V01,T03] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]\u003E\n-;  V02 arg2         [V02,T01] ( 11,  6.50)     int  -\u003E  r15         single-def\n-;  V03 arg3         [V03,T02] ( 11,  6.50)     int  -\u003E  r14         single-def\n-;  V04 arg4         [V04,T04] (  3,  2.50)   ubyte  -\u003E  r13         single-def\n-;  V05 loc0         [V05,T08] (  4,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]\u003E\n\u002B;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V01 arg1         [V01,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  4   )     int  -\u003E  r15         single-def\n\u002B;  V03 arg3         [V03,T04] (  4,  4   )     int  -\u003E  r14         single-def\n\u002B;* V04 arg4         [V04    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def\n\u002B;* V05 loc0         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V07 tmp1         [V07,T00] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003CSystem.Numerics.Vector\u00601[float][]\u003E\n-;  V09 tmp3         [V09,T06] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003CSystem.Numerics.Vector\u00601[float][]\u003E\n-;  V11 tmp5         [V11,T11] (  2,  1   )     int  -\u003E  rsi         \u0022Inline return value spill temp\u0022\n-;  V12 tmp6         [V12,T09] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V13 tmp7         [V13,T10] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V14 tmp8         [V14,T07] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003CSystem.Numerics.Vector\u00601[float][]\u003E\n-;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022Single return block return value\u0022\n ;\n ; Lcl frame size = 8\n \n G_M27420_IG01:\n-       push     rbp\n        push     r15\n        push     r14\n        push     r13\n-       push     r12\n        push     rbx\n        push     rax\n-       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n        mov      r15d, edx\n        mov      r14d, ecx\n-       mov      r13d, r8d\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.75\n G_M27420_IG02:\n-       mov      r12, gword ptr [rsi\u002B0x08]\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M27420_IG11\n-\t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 7.00\n-G_M27420_IG03:\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M27420_IG07\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      SHORT G_M27420_IG05\n\u002B       cmp      byte  ptr [rsi], sil\n        mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        mov      rdi, r13\n        mov      esi, r15d\n        mov      edx, r14d\n        mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n        call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n        imul     r15d, r14d\n        movsxd   rsi, r15d\n        mov      rdi, 0xD1FFAB1E      ; System.Numerics.Vector\u00601[float][]\n        call     CORINFO_HELP_NEWARR_1_VC\n        mov      rsi, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, rbx\n        mov      rsi, r13\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=150 bbWeight=0.50 PerfScore 12.62\n-G_M27420_IG04:\n\u002B\t\t\t\t\t\t;; size=89 bbWeight=1 PerfScore 17.25\n\u002BG_M27420_IG03:\n        add      rsp, 8\n        pop      rbx\n-       pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n-       pop      rbp\n        tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M27420_IG05:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 5.00\n-G_M27420_IG06:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M27420_IG07:\n-       test     r13b, r13b\n-       je       SHORT G_M27420_IG09\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 5.62\n-G_M27420_IG08:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M27420_IG09:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       cmp      r15d, r14d\n-       mov      esi, r14d\n-       cmovle   esi, r15d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; System.Numerics.Vector\u00601[float][]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 7.12\n-G_M27420_IG10:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x10]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:Diagonal(MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M27420_IG11:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       mov      esi, r15d\n-       imul     esi, r14d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; System.Numerics.Vector\u00601[float][]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=89 bbWeight=0.50 PerfScore 7.75\n-G_M27420_IG12:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n\u002B\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 594, prolog size 16, PerfScore 66.75, instruction count 157, allocated bytes for code 594 (MethodHash=3f2294e3) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:SameAs[byte](MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n\u002B; Total bytes of code 120, prolog size 8, PerfScore 27.25, instruction count 34, allocated bytes for code 120 (MethodHash=3f2294e3) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:SameAs[byte](MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":594,"DiffBytes":120},{"Assembly":"Microsoft.AspNetCore.OData.dasm","Method":"Microsoft.AspNetCore.OData.Formatter.Deserialization.ODataActionPayloadDeserializer:GetAction(Microsoft.AspNetCore.OData.Formatter.Deserialization.ODataDeserializerContext):Microsoft.OData.Edm.IEdmAction (FullOpts)","Category":"improvement","Description":"751 -\u003E 639 bytes (-112)","ExtraInfo":null,"Diff":"@@ -11,38 \u002B11,38 @@\n ;  V00 arg0         [V00,T00] (  4,  4   )     ref  -\u003E  rdi         class-hnd single-def \u003CMicrosoft.AspNetCore.OData.Formatter.Deserialization.ODataDeserializerContext\u003E\n ;  V01 loc0         [V01,T01] (  6,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003CMicrosoft.OData.UriParser.ODataPath\u003E\n ;  V02 loc1         [V02,T02] (  5,  4   )     ref  -\u003E  r15         class-hnd \u003CMicrosoft.OData.Edm.IEdmAction\u003E\n-;  V03 loc2         [V03,T15] (  2,  1   )     ref  -\u003E  rsi         class-hnd exact \u003CMicrosoft.OData.UriParser.OperationImportSegment\u003E\n-;  V04 loc3         [V04,T12] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u003CMicrosoft.OData.Edm.IEdmActionImport\u003E\n-;  V05 loc4         [V05,T16] (  2,  1   )     ref  -\u003E  rax         class-hnd exact \u003CMicrosoft.OData.UriParser.OperationSegment\u003E\n-;  V06 loc5         [V06,T21] (  2,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CSystem.String\u003E\n\u002B;  V03 loc2         [V03,T11] (  2,  1   )     ref  -\u003E  rdx         class-hnd exact \u003CMicrosoft.OData.UriParser.OperationImportSegment\u003E\n\u002B;  V04 loc3         [V04,T10] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u003CMicrosoft.OData.Edm.IEdmActionImport\u003E\n\u002B;  V05 loc4         [V05,T12] (  2,  1   )     ref  -\u003E  rax         class-hnd exact \u003CMicrosoft.OData.UriParser.OperationSegment\u003E\n\u002B;  V06 loc5         [V06,T19] (  2,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CSystem.String\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V08 tmp1         [V08,T17] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.Serialization.SerializationException\u003E\n-;  V09 tmp2         [V09,T05] (  4,  3.50)     ref  -\u003E  rax         single-def \u0022ISINST eval op1\u0022\n\u002B;  V08 tmp1         [V08,T15] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.Serialization.SerializationException\u003E\n\u002B;  V09 tmp2         [V09,T03] (  4,  3.50)     ref  -\u003E  rax         single-def \u0022ISINST eval op1\u0022\n ;* V10 tmp3         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CMicrosoft.OData.UriParser.OperationSegment\u003E\n-;  V11 tmp4         [V11,T18] (  3,  0   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n-;  V12 tmp5         [V12,T22] (  2,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V13 tmp6         [V13,T23] (  2,  0   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n-;  V14 tmp7         [V14,T19] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.Serialization.SerializationException\u003E\n\u002B;  V11 tmp4         [V11,T16] (  3,  0   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n\u002B;  V12 tmp5         [V12,T20] (  2,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V13 tmp6         [V13,T21] (  2,  0   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n\u002B;  V14 tmp7         [V14,T17] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.Serialization.SerializationException\u003E\n ;* V15 tmp8         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022ISINST eval op1\u0022\n ;* V16 tmp9         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CMicrosoft.OData.UriParser.OperationImportSegment\u003E\n-;  V17 tmp10        [V17,T20] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V17 tmp10        [V17,T18] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n ;* V18 tmp11        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.OData.UriParser.ODataPathSegment]\u003E\n ;* V19 tmp12        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.OData.UriParser.ODataPathSegment]\u003E\n-;  V20 tmp13        [V20,T11] (  4,  1.75)     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CMicrosoft.OData.UriParser.ODataPathSegment\u003E\n\u002B;  V20 tmp13        [V20,T09] (  4,  1.75)     ref  -\u003E  rdx         class-hnd \u0022Inline return value spill temp\u0022 \u003CMicrosoft.OData.UriParser.ODataPathSegment\u003E\n ;* V21 tmp14        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.OData.UriParser.ODataPathSegment]\u003E\n-;  V22 tmp15        [V22,T10] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.OData.UriParser.ODataPathSegment]\u003E\n-;  V23 tmp16        [V23,T03] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[Microsoft.OData.Edm.IEdmOperationImport]\u003E\n-;  V24 tmp17        [V24    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V22 tmp15        [V22,T08] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.OData.UriParser.ODataPathSegment]\u003E\n\u002B;  V23 tmp16        [V23,T04] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[Microsoft.OData.Edm.IEdmOperationImport]\u003E\n\u002B;  V24 tmp17        [V24    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V25 tmp18        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V26 tmp19        [V26,T13] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMicrosoft.OData.Edm.IEdmOperationImport\u003E\n-;  V27 tmp20        [V27,T08] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Microsoft.OData.Edm.IEdmOperationImport]\u003E\n-;  V28 tmp21        [V28,T04] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[Microsoft.OData.Edm.IEdmOperation]\u003E\n-;  V29 tmp22        [V29    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V26 tmp19        [V26,T13] (  2,  1   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMicrosoft.OData.Edm.IEdmOperationImport\u003E\n\u002B;* V27 tmp20        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Microsoft.OData.Edm.IEdmOperationImport]\u003E\n\u002B;  V28 tmp21        [V28,T05] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[Microsoft.OData.Edm.IEdmOperation]\u003E\n\u002B;  V29 tmp22        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V30 tmp23        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V31 tmp24        [V31,T14] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMicrosoft.OData.Edm.IEdmOperation\u003E\n-;  V32 tmp25        [V32,T09] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Microsoft.OData.Edm.IEdmOperation]\u003E\n-;  V33 tmp26        [V33,T06] (  3,  3   )     ref  -\u003E  rsi         single-def \u0022arr expr\u0022\n-;  V34 tmp27        [V34,T24] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V31 tmp24        [V31,T14] (  2,  1   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMicrosoft.OData.Edm.IEdmOperation\u003E\n\u002B;* V32 tmp25        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Microsoft.OData.Edm.IEdmOperation]\u003E\n\u002B;  V33 tmp26        [V33,T06] (  3,  3   )     ref  -\u003E  rdx         single-def \u0022arr expr\u0022\n\u002B;  V34 tmp27        [V34,T22] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;  V35 cse0         [V35,T07] (  3,  3   )     int  -\u003E  rdi         \u0022CSE #02: moderate\u0022\n ;\n ; Lcl frame size = 24\n@@ -60,122 \u002B60,88 @@ G_M2222_IG01:\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 7.00\n G_M2222_IG02:\n        test     rdi, rdi\n-       je       G_M2222_IG15\n\u002B       je       G_M2222_IG11\n        mov      rbx, gword ptr [rdi\u002B0x18]\n        test     rbx, rbx\n-       je       G_M2222_IG16\n\u002B       je       G_M2222_IG12\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      edi, dword ptr [rdi\u002B0x10]\n        test     edi, edi\n-       je       G_M2222_IG16\n\u002B       je       G_M2222_IG12\n        xor      r15, r15\n        cmp      edi, 1\n-       je       G_M2222_IG08\n\u002B       je       G_M2222_IG06\n \t\t\t\t\t\t;; size=49 bbWeight=1 PerfScore 11.25\n G_M2222_IG03:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.OData.UriParser.ODataPath:get_LastSegment():Microsoft.OData.UriParser.ODataPathSegment:this\n        call     [rax]Microsoft.OData.UriParser.ODataPath:get_LastSegment():Microsoft.OData.UriParser.ODataPathSegment:this\n        test     rax, rax\n-       je       G_M2222_IG13\n\u002B       je       G_M2222_IG09\n \t\t\t\t\t\t;; size=24 bbWeight=0.50 PerfScore 2.38\n G_M2222_IG04:\n-       mov      rsi, 0xD1FFAB1E      ; Microsoft.OData.UriParser.OperationSegment\n-       cmp      qword ptr [rax], rsi\n-       jne      G_M2222_IG13\n\u002B       mov      rdx, 0xD1FFAB1E      ; Microsoft.OData.UriParser.OperationSegment\n\u002B       cmp      qword ptr [rax], rdx\n\u002B       jne      G_M2222_IG09\n \t\t\t\t\t\t;; size=19 bbWeight=0.25 PerfScore 0.81\n G_M2222_IG05:\n-       mov      r15, gword ptr [rax\u002B0x28]\n-       test     r15, r15\n-       je       G_M2222_IG17\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[Microsoft.OData.Edm.IEdmOperation]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M2222_IG06\n-       lea      rsi, [rbp-0x28]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M2222_IG07\n-\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 9.00\n-G_M2222_IG06:\n\u002B       mov      rsi, gword ptr [rax\u002B0x28]\n\u002B       test     rsi, rsi\n\u002B       je       G_M2222_IG13\n        lea      rdx, [rbp-0x28]\n-       mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[Microsoft.OData.Edm.IEdmOperation](System.Collections.Generic.IEnumerable\u00601[Microsoft.OData.Edm.IEdmOperation],byref):Microsoft.OData.Edm.IEdmOperation\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M2222_IG07:\n-       cmp      byte  ptr [rbp-0x28], 0\n-       je       G_M2222_IG18\n        mov      rsi, rax\n\u002B       cmp      byte  ptr [rbp-0x28], 0\n\u002B       je       G_M2222_IG14\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.OData.Edm.IEdmAction\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFINTERFACE\n        call     [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE\n        mov      r15, rax\n-       jmp      G_M2222_IG13\n-\t\t\t\t\t\t;; size=43 bbWeight=0.50 PerfScore 4.00\n\u002B       jmp      G_M2222_IG09\n\u002B\t\t\t\t\t\t;; size=82 bbWeight=0.50 PerfScore 7.62\n\u002BG_M2222_IG06:\n\u002B       mov      rdx, gword ptr [rbx\u002B0x08]\n\u002B       mov      rdx, gword ptr [rdx\u002B0x08]\n\u002B       cmp      dword ptr [rdx\u002B0x08], 0\n\u002B       jbe      G_M2222_IG16\n\u002B       mov      rdx, gword ptr [rdx\u002B0x10]\n\u002B       test     rdx, rdx\n\u002B       je       SHORT G_M2222_IG09\n\u002B\t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 5.12\n\u002BG_M2222_IG07:\n\u002B       mov      rsi, 0xD1FFAB1E      ; Microsoft.OData.UriParser.OperationImportSegment\n\u002B       cmp      qword ptr [rdx], rsi\n\u002B       jne      SHORT G_M2222_IG09\n\u002B\t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n G_M2222_IG08:\n-       mov      rsi, gword ptr [rbx\u002B0x08]\n-       mov      rsi, gword ptr [rsi\u002B0x08]\n-       cmp      dword ptr [rsi\u002B0x08], 0\n-       jbe      G_M2222_IG20\n-       mov      rsi, gword ptr [rsi\u002B0x10]\n\u002B       mov      rsi, gword ptr [rdx\u002B0x28]\n        test     rsi, rsi\n        je       G_M2222_IG13\n-\t\t\t\t\t\t;; size=31 bbWeight=0.50 PerfScore 5.12\n-G_M2222_IG09:\n-       mov      rdi, 0xD1FFAB1E      ; Microsoft.OData.UriParser.OperationImportSegment\n-       cmp      qword ptr [rsi], rdi\n-       jne      G_M2222_IG13\n-\t\t\t\t\t\t;; size=19 bbWeight=0.25 PerfScore 0.81\n-G_M2222_IG10:\n-       mov      r14, gword ptr [rsi\u002B0x28]\n-       test     r14, r14\n-       je       G_M2222_IG17\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[Microsoft.OData.Edm.IEdmOperationImport]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M2222_IG11\n-       lea      rsi, [rbp-0x20]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M2222_IG12\n-\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 9.00\n-G_M2222_IG11:\n        lea      rdx, [rbp-0x20]\n-       mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[Microsoft.OData.Edm.IEdmOperationImport](System.Collections.Generic.IEnumerable\u00601[Microsoft.OData.Edm.IEdmOperationImport],byref):Microsoft.OData.Edm.IEdmOperationImport\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M2222_IG12:\n-       cmp      byte  ptr [rbp-0x20], 0\n-       je       G_M2222_IG18\n        mov      rsi, rax\n\u002B       cmp      byte  ptr [rbp-0x20], 0\n\u002B       je       G_M2222_IG14\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.OData.Edm.IEdmActionImport\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFINTERFACE\n        call     [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE\n        test     rax, rax\n-       je       SHORT G_M2222_IG13\n\u002B       je       SHORT G_M2222_IG09\n        mov      rdi, rax\n        mov      r11, 0xD1FFAB1E      ; code for Microsoft.OData.Edm.IEdmActionImport:get_Action():Microsoft.OData.Edm.IEdmAction:this\n        call     [r11]Microsoft.OData.Edm.IEdmActionImport:get_Action():Microsoft.OData.Edm.IEdmAction:this\n        mov      r15, rax\n-\t\t\t\t\t\t;; size=59 bbWeight=0.50 PerfScore 5.38\n-G_M2222_IG13:\n\u002B\t\t\t\t\t\t;; size=98 bbWeight=0.50 PerfScore 9.00\n\u002BG_M2222_IG09:\n        test     r15, r15\n-       je       G_M2222_IG19\n\u002B       je       G_M2222_IG15\n        mov      rax, r15\n \t\t\t\t\t\t;; size=12 bbWeight=1 PerfScore 1.50\n-G_M2222_IG14:\n\u002BG_M2222_IG10:\n        add      rsp, 24\n        pop      rbx\n        pop      r14\n@@ -183,7 \u002B149,7 @@ G_M2222_IG14:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M2222_IG15:\n\u002BG_M2222_IG11:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -195,7 \u002B161,7 @@ G_M2222_IG15:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M2222_IG16:\n\u002BG_M2222_IG12:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.Serialization.SerializationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -209,18 \u002B175,18 @@ G_M2222_IG16:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=57 bbWeight=0 PerfScore 0.00\n-G_M2222_IG17:\n\u002BG_M2222_IG13:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M2222_IG18:\n\u002BG_M2222_IG14:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M2222_IG19:\n\u002BG_M2222_IG15:\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.AspNetCore.OData.SRResources:get_RequestNotActionInvocation():System.String\n        call     [rax]Microsoft.AspNetCore.OData.SRResources:get_RequestNotActionInvocation():System.String\n        mov      r15, rax\n@@ -250,10 \u002B216,10 @@ G_M2222_IG19:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=131 bbWeight=0 PerfScore 0.00\n-G_M2222_IG20:\n\u002BG_M2222_IG16:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 751, prolog size 25, PerfScore 63.75, instruction count 167, allocated bytes for code 751 (MethodHash=ca45f751) for method Microsoft.AspNetCore.OData.Formatter.Deserialization.ODataActionPayloadDeserializer:GetAction(Microsoft.AspNetCore.OData.Formatter.Deserialization.ODataDeserializerContext):Microsoft.OData.Edm.IEdmAction (FullOpts)\n\u002B; Total bytes of code 639, prolog size 25, PerfScore 48.75, instruction count 141, allocated bytes for code 639 (MethodHash=ca45f751) for method Microsoft.AspNetCore.OData.Formatter.Deserialization.ODataActionPayloadDeserializer:GetAction(Microsoft.AspNetCore.OData.Formatter.Deserialization.ODataDeserializerContext):Microsoft.OData.Edm.IEdmAction (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":751,"DiffBytes":639},{"Assembly":"Microsoft.CodeAnalysis.AnalyzerUtilities.dasm","Method":"Microsoft.CodeAnalysis.FlowAnalysis.DataFlow.DisposeAnalysis.DisposeAnalysis\u002BDisposeDataFlowOperationVisitor:get_TrackedInstanceFieldPointsToMap():System.Collections.Immutable.ImmutableDictionary\u00602[Microsoft.CodeAnalysis.IFieldSymbol,Microsoft.CodeAnalysis.FlowAnalysis.DataFlow.PointsToAnalysis.PointsToAbstractValue]:this (FullOpts)","Category":"improvement","Description":"837 -\u003E 473 bytes (-364)","ExtraInfo":null,"Diff":"@@ -3,75 \u002B3,70 @@\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n-; fully interruptible\n\u002B; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 29 single block inlinees; 20 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T04] (  3,  3   )     ref  -\u003E  rdi         this class-hnd single-def \u003CMicrosoft.CodeAnalysis.FlowAnalysis.DataFlow.DisposeAnalysis.DisposeAnalysis\u002BDisposeDataFlowOperationVisitor\u003E\n\u002B;  V00 this         [V00,T02] (  3,  3   )     ref  -\u003E  rdi         this class-hnd single-def \u003CMicrosoft.CodeAnalysis.FlowAnalysis.DataFlow.DisposeAnalysis.DisposeAnalysis\u002BDisposeDataFlowOperationVisitor\u003E\n ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V02 tmp1         [V02,T28] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n-;  V03 tmp2         [V03,T01] (  6,  8   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[Microsoft.CodeAnalysis.IFieldSymbol,Microsoft.CodeAnalysis.FlowAnalysis.DataFlow.PointsToAnalysis.PointsToAbstractValue]\u003E\n\u002B;  V02 tmp1         [V02,T17] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V03 tmp2         [V03,T04] (  2,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[Microsoft.CodeAnalysis.IFieldSymbol,Microsoft.CodeAnalysis.FlowAnalysis.DataFlow.PointsToAnalysis.PointsToAbstractValue]\u003E\n ;* V04 tmp3         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[Microsoft.CodeAnalysis.IFieldSymbol,Microsoft.CodeAnalysis.FlowAnalysis.DataFlow.PointsToAnalysis.PointsToAbstractValue]\u003E\n-;* V05 tmp4         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[Microsoft.CodeAnalysis.IFieldSymbol,Microsoft.CodeAnalysis.FlowAnalysis.DataFlow.PointsToAnalysis.PointsToAbstractValue]\u003E\n-;  V06 tmp5         [V06,T22] (  2,  1   )     ref  -\u003E  rdi         class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[Microsoft.CodeAnalysis.IFieldSymbol,Microsoft.CodeAnalysis.FlowAnalysis.DataFlow.PointsToAnalysis.PointsToAbstractValue]\u003E\n-;  V07 tmp6         [V07,T00] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.__Canon,System.__Canon]\u003E\n-;* V08 tmp7         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[Microsoft.CodeAnalysis.IFieldSymbol,Microsoft.CodeAnalysis.FlowAnalysis.DataFlow.PointsToAnalysis.PointsToAbstractValue]\u003E\n-;* V09 tmp8         [V09    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602\u002BMutationInput[Microsoft.CodeAnalysis.IFieldSymbol,Microsoft.CodeAnalysis.FlowAnalysis.DataFlow.PointsToAnalysis.PointsToAbstractValue]\u003E\n-;* V10 tmp9         [V10    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602\u002BMutationResult[Microsoft.CodeAnalysis.IFieldSymbol,Microsoft.CodeAnalysis.FlowAnalysis.DataFlow.PointsToAnalysis.PointsToAbstractValue]\u003E\n-;* V11 tmp10        [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602\u002BMutationResult[Microsoft.CodeAnalysis.IFieldSymbol,Microsoft.CodeAnalysis.FlowAnalysis.DataFlow.PointsToAnalysis.PointsToAbstractValue]\u003E\n-;  V12 tmp11        [V12,T23] (  2,  1   )     ref  -\u003E  rdi         ld-addr-op class-hnd \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[Microsoft.CodeAnalysis.IFieldSymbol,Microsoft.CodeAnalysis.FlowAnalysis.DataFlow.PointsToAnalysis.PointsToAbstractValue]\u003E\n-;* V13 tmp12        [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[Microsoft.CodeAnalysis.IFieldSymbol,Microsoft.CodeAnalysis.FlowAnalysis.DataFlow.PointsToAnalysis.PointsToAbstractValue]\u003E\n-;* V14 tmp13        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEqualityComparer\u00601[Microsoft.CodeAnalysis.IFieldSymbol]\u003E\n-;* V15 tmp14        [V15    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V16 tmp15        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[Microsoft.CodeAnalysis.IFieldSymbol,Microsoft.CodeAnalysis.FlowAnalysis.DataFlow.PointsToAnalysis.PointsToAbstractValue]\u003E\n-;* V17 tmp16        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602\u002BBuilder[Microsoft.CodeAnalysis.IFieldSymbol,Microsoft.CodeAnalysis.FlowAnalysis.DataFlow.PointsToAnalysis.PointsToAbstractValue]\u003E\n-;  V18 tmp17        [V18,T07] (  6,  3   )     ref  -\u003E  rbx         class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602\u002BBuilder[Microsoft.CodeAnalysis.IFieldSymbol,Microsoft.CodeAnalysis.FlowAnalysis.DataFlow.PointsToAnalysis.PointsToAbstractValue]\u003E\n-;* V19 tmp18        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[Microsoft.CodeAnalysis.IFieldSymbol,Microsoft.CodeAnalysis.FlowAnalysis.DataFlow.PointsToAnalysis.PointsToAbstractValue]\u003E\n-;  V20 tmp19        [V20,T15] (  2,  2   )     ref  -\u003E  rdi         class-hnd exact single-def \u0022dup spill\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.__Canon,System.__Canon]\u003E\n-;  V21 tmp20        [V21,T13] (  4,  2   )     ref  -\u003E  rdi        \n-;* V22 tmp21        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022dup spill\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[Microsoft.CodeAnalysis.IFieldSymbol,Microsoft.CodeAnalysis.FlowAnalysis.DataFlow.PointsToAnalysis.PointsToAbstractValue]\u003E\n-;* V23 tmp22        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[Microsoft.CodeAnalysis.IFieldSymbol,Microsoft.CodeAnalysis.FlowAnalysis.DataFlow.PointsToAnalysis.PointsToAbstractValue]\u003E\n-;  V24 tmp23        [V24,T06] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableDictionary\u00602\u002BHashBucket[System.__Canon,System.__Canon]]\u003E\n-;  V25 tmp24        [V25,T09] (  3,  3   )     ref  -\u003E  r12         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602\u002BComparers[System.__Canon,System.__Canon]\u003E\n-;  V26 tmp25        [V26,T12] (  3,  3   )     int  -\u003E  [rbp-0x2C]  spill-single-def \u0022Inlining Arg\u0022\n-;  V27 tmp26        [V27,T02] (  7,  7   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[Microsoft.CodeAnalysis.IFieldSymbol,Microsoft.CodeAnalysis.FlowAnalysis.DataFlow.PointsToAnalysis.PointsToAbstractValue]\u003E\n-;* V28 tmp27        [V28    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;* V29 tmp28        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;* V30 tmp29        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;* V31 tmp30        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.ObjectEqualityComparer\u00601[Microsoft.CodeAnalysis.IFieldSymbol]\u003E\n-;* V32 tmp31        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602\u002BComparers[System.__Canon,System.__Canon]\u003E\n-;* V33 tmp32        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602\u002BComparers[System.__Canon,System.__Canon]\u003E\n-;* V34 tmp33        [V34    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602\u002BMutationInput[Microsoft.CodeAnalysis.IFieldSymbol,Microsoft.CodeAnalysis.FlowAnalysis.DataFlow.PointsToAnalysis.PointsToAbstractValue]\u003E\n-;* V35 tmp34        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableDictionary\u00602\u002BHashBucket[Microsoft.CodeAnalysis.IFieldSymbol,Microsoft.CodeAnalysis.FlowAnalysis.DataFlow.PointsToAnalysis.PointsToAbstractValue]]\u003E\n-;* V36 tmp35        [V36    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022impAppendStmt\u0022\n... diff truncated; middle omitted ...\n-G_M20229_IG09:\n-       add      rsp, 24\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax]System.Collections.Immutable.ImmutableDictionary\u00602[System.__Canon,System.__Canon]:WithComparers(System.Collections.Generic.IEqualityComparer\u00601[System.__Canon],System.Collections.Generic.IEqualityComparer\u00601[System.__Canon]):System.Collections.Immutable.ImmutableDictionary\u00602[System.__Canon,System.__Canon]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M20229_IG10:\n\u002B       mov      edx, dword ptr [r14\u002B0x18]\n        mov      rdx, gword ptr [r14\u002B0x08]\n        mov      rcx, gword ptr [r14\u002B0x10]\n        mov      rsi, rbx\n@@ -197,21 \u002B108,23 @@ G_M20229_IG10:\n        mov      r13d, dword ptr [r14\u002B0x18]\n        lea      r12d, [rdx\u002Br13]\n        test     rbx, rbx\n-       je       G_M20229_IG15\n\u002B       je       G_M20229_IG09\n\u002B\t\t\t\t\t\t;; size=90 bbWeight=1 PerfScore 22.25\n\u002BG_M20229_IG04:\n        cmp      gword ptr [r14\u002B0x08], rbx\n-       je       G_M20229_IG16\n\u002B       je       G_M20229_IG10\n        cmp      gword ptr [rbx\u002B0x08], 0\n-       jne      SHORT G_M20229_IG13\n\u002B       jne      SHORT G_M20229_IG07\n        test     r13d, r13d\n-       je       G_M20229_IG16\n-\t\t\t\t\t\t;; size=78 bbWeight=0.50 PerfScore 9.62\n-G_M20229_IG11:\n\u002B       je       G_M20229_IG10\n\u002B\t\t\t\t\t\t;; size=26 bbWeight=0.50 PerfScore 3.62\n\u002BG_M20229_IG05:\n        mov      rsi, gword ptr [r14\u002B0x10]\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableDictionary\u00602[System.__Canon,System.__Canon]:EmptyWithComparers(System.Collections.Immutable.ImmutableDictionary\u00602\u002BComparers[System.__Canon,System.__Canon]):System.Collections.Immutable.ImmutableDictionary\u00602[System.__Canon,System.__Canon]\n \t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 1.25\n-G_M20229_IG12:\n-       add      rsp, 24\n\u002BG_M20229_IG06:\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -220,45 \u002B133,45 @@ G_M20229_IG12:\n        pop      rbp\n        tail.jmp [rax]System.Collections.Immutable.ImmutableDictionary\u00602[System.__Canon,System.__Canon]:EmptyWithComparers(System.Collections.Immutable.ImmutableDictionary\u00602\u002BComparers[System.__Canon,System.__Canon]):System.Collections.Immutable.ImmutableDictionary\u00602[System.__Canon,System.__Canon]\n \t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M20229_IG13:\n\u002BG_M20229_IG07:\n        mov      rdi, r15\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r15, rax\n        mov      rsi, gword ptr [r14\u002B0x10]\n        test     rsi, rsi\n-       je       G_M20229_IG21\n-       lea      rdi, bword ptr [rax\u002B0x10]\n\u002B       je       G_M20229_IG14\n\u002B       lea      rdi, bword ptr [r15\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M20229_IG24\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 5.12\n-G_M20229_IG14:\n\u002B       je       G_M20229_IG15\n\u002B\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 4.75\n\u002BG_M20229_IG08:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableDictionary\u00602\u002BHashBucket[Microsoft.CodeAnalysis.IFieldSymbol,Microsoft.CodeAnalysis.FlowAnalysis.DataFlow.PointsToAnalysis.PointsToAbstractValue]]:EmptyNode\n        mov      rsi, gword ptr [rdi]\n-       mov      r14, gword ptr [rbp-0x38]\n-       lea      rdi, bword ptr [r14\u002B0x08]\n\u002B       lea      rdi, bword ptr [r15\u002B0x08]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rsi, 0xD1FFAB1E      ; data for System.Collections.Immutable.ImmutableDictionary\u00602[Microsoft.CodeAnalysis.IFieldSymbol,Microsoft.CodeAnalysis.FlowAnalysis.DataFlow.PointsToAnalysis.PointsToAbstractValue]:s_FreezeBucketAction\n        mov      rsi, gword ptr [rsi]\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableDictionary\u00602\u002BHashBucket[System.__Canon,System.__Canon]]:Freeze(System.Action\u00601[System.Collections.Generic.KeyValuePair\u00602[int,System.Collections.Immutable.ImmutableDictionary\u00602\u002BHashBucket[System.__Canon,System.__Canon]]]):this\n        call     [rax]System.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableDictionary\u00602\u002BHashBucket[System.__Canon,System.__Canon]]:Freeze(System.Action\u00601[System.Collections.Generic.KeyValuePair\u00602[int,System.Collections.Immutable.ImmutableDictionary\u00602\u002BHashBucket[System.__Canon,System.__Canon]]]):this\n-       lea      rdi, bword ptr [r14\u002B0x08]\n\u002B       lea      rdi, bword ptr [r15\u002B0x08]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      dword ptr [r14\u002B0x18], r12d\n-       jmp      SHORT G_M20229_IG16\n-\t\t\t\t\t\t;; size=72 bbWeight=0.50 PerfScore 7.62\n-G_M20229_IG15:\n\u002B       mov      dword ptr [r15\u002B0x18], r12d\n\u002B       mov      rax, r15\n\u002B       jmp      SHORT G_M20229_IG11\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 7.25\n\u002BG_M20229_IG09:\n        test     r13d, r13d\n-       jne      G_M20229_IG11\n\u002B       jne      G_M20229_IG05\n \t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 0.62\n-G_M20229_IG16:\n\u002BG_M20229_IG10:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M20229_IG17:\n-       add      rsp, 24\n\u002BG_M20229_IG11:\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -267,7 \u002B180,7 @@ G_M20229_IG17:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M20229_IG18:\n\u002BG_M20229_IG12:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -278,43 \u002B191,24 @@ G_M20229_IG18:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=42 bbWeight=0 PerfScore 0.00\n-G_M20229_IG19:\n\u002BG_M20229_IG13:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M20229_IG06\n\u002B       jmp      G_M20229_IG03\n \t\t\t\t\t\t;; size=20 bbWeight=0 PerfScore 0.00\n-G_M20229_IG20:\n-       mov      rdi, 0xD1FFAB1E      ; \u0027root\u0027\n-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)\n-       call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)\n-       int3     \n-\t\t\t\t\t\t;; size=23 bbWeight=0 PerfScore 0.00\n-G_M20229_IG21:\n\u002BG_M20229_IG14:\n        mov      rdi, 0xD1FFAB1E      ; \u0027comparers\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)\n        call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)\n        int3     \n \t\t\t\t\t\t;; size=23 bbWeight=0 PerfScore 0.00\n-G_M20229_IG22:\n-       mov      rdi, 0xD1FFAB1E      ; \u0027count\u0027\n-       xor      rsi, rsi\n-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailRange(System.String,System.String)\n-       call     [rax]System.Collections.Immutable.Requires:FailRange(System.String,System.String)\n-       int3     \n-\t\t\t\t\t\t;; size=25 bbWeight=0 PerfScore 0.00\n-G_M20229_IG23:\n\u002BG_M20229_IG15:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableDictionary\u00602\u002BHashBucket[Microsoft.CodeAnalysis.IFieldSymbol,Microsoft.CodeAnalysis.FlowAnalysis.DataFlow.PointsToAnalysis.PointsToAbstractValue]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M20229_IG07\n-\t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M20229_IG24:\n-       mov      rdi, 0xD1FFAB1E      ; System.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableDictionary\u00602\u002BHashBucket[Microsoft.CodeAnalysis.IFieldSymbol,Microsoft.CodeAnalysis.FlowAnalysis.DataFlow.PointsToAnalysis.PointsToAbstractValue]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M20229_IG14\n\u002B       jmp      G_M20229_IG08\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 837, prolog size 19, PerfScore 78.00, instruction count 194, allocated bytes for code 837 (MethodHash=55bcb0fa) for method Microsoft.CodeAnalysis.FlowAnalysis.DataFlow.DisposeAnalysis.DisposeAnalysis\u002BDisposeDataFlowOperationVisitor:get_TrackedInstanceFieldPointsToMap():System.Collections.Immutable.ImmutableDictionary\u00602[Microsoft.CodeAnalysis.IFieldSymbol,Microsoft.CodeAnalysis.FlowAnalysis.DataFlow.PointsToAnalysis.PointsToAbstractValue]:this (FullOpts)\n\u002B; Total bytes of code 473, prolog size 16, PerfScore 58.88, instruction count 111, allocated bytes for code 473 (MethodHash=55bcb0fa) for method Microsoft.CodeAnalysis.FlowAnalysis.DataFlow.DisposeAnalysis.DisposeAnalysis\u002BDisposeDataFlowOperationVisitor:get_TrackedInstanceFieldPointsToMap():System.Collections.Immutable.ImmutableDictionary\u00602[Microsoft.CodeAnalysis.IFieldSymbol,Microsoft.CodeAnalysis.FlowAnalysis.DataFlow.PointsToAnalysis.PointsToAbstractValue]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":837,"DiffBytes":473},{"Assembly":"Microsoft.CodeAnalysis.CSharp.Features.dasm","Method":"Microsoft.CodeAnalysis.CSharp.CodeRefactorings.InlineTemporary.CSharpInlineTemporaryCodeRefactoringProvider:FindDeclarator(Microsoft.CodeAnalysis.SyntaxNode):Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax (FullOpts)","Category":"improvement","Description":"258 -\u003E 186 bytes (-72)","ExtraInfo":null,"Diff":"@@ -1,120 \u002B1,95 @@\n ; Assembly listing for method Microsoft.CodeAnalysis.CSharp.CodeRefactorings.InlineTemporary.CSharpInlineTemporaryCodeRefactoringProvider:FindDeclarator(Microsoft.CodeAnalysis.SyntaxNode):Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 1 single block inlinees; 3 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T03] (  3,  3   )     ref  -\u003E  rdi         class-hnd single-def \u003CMicrosoft.CodeAnalysis.SyntaxNode\u003E\n\u002B;  V00 arg0         [V00,T02] (  3,  3   )     ref  -\u003E  rdi         class-hnd single-def \u003CMicrosoft.CodeAnalysis.SyntaxNode\u003E\n ;* V01 loc0         [V01    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CMicrosoft.CodeAnalysis.SyntaxNodeOrToken\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V03 tmp1         [V03,T00] (  4,  7   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.CodeAnalysis.SyntaxNodeOrToken]\u003E\n-;  V04 tmp2         [V04    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x10]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V03 tmp1         [V03,T01] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.CodeAnalysis.SyntaxNodeOrToken]\u003E\n\u002B;  V04 tmp2         [V04    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x08]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V05 tmp3         [V05    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[S] \u003CMicrosoft.CodeAnalysis.SyntaxNodeOrToken\u003E\n-;  V06 tmp4         [V06,T02] (  4,  3   )  struct (24) [rbp-0x28]  do-not-enreg[DAS] must-init defined-via-address \u0022Inline return value spill temp\u0022 \u003CMicrosoft.CodeAnalysis.SyntaxNodeOrToken\u003E\n-;  V07 tmp5         [V07,T04] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Microsoft.CodeAnalysis.SyntaxNodeOrToken]\u003E\n-;  V08 tmp6         [V08,T05] (  3,  2   )     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CMicrosoft.CodeAnalysis.SyntaxNode\u003E\n\u002B;  V06 tmp4         [V06,T03] (  3,  3   )  struct (24) [rbp-0x20]  do-not-enreg[DAS] must-init defined-via-address \u0022Inline return value spill temp\u0022 \u003CMicrosoft.CodeAnalysis.SyntaxNodeOrToken\u003E\n\u002B;* V07 tmp5         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Microsoft.CodeAnalysis.SyntaxNodeOrToken]\u003E\n\u002B;  V08 tmp6         [V08,T04] (  3,  2   )     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CMicrosoft.CodeAnalysis.SyntaxNode\u003E\n ;* V09 tmp7         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V01._nodeOrParent (fldOffset=0x0)\u0022 P-INDEP\n ;* V10 tmp8         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V01._token (fldOffset=0x8)\u0022 P-INDEP\n ;* V11 tmp9         [V11    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V01._position (fldOffset=0x10)\u0022 P-INDEP\n ;* V12 tmp10        [V12    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V01._tokenIndex (fldOffset=0x14)\u0022 P-INDEP\n-;  V13 tmp11        [V13,T07] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022V05.[000..008)\u0022\n-;  V14 tmp12        [V14,T08] (  2,  2   )     ref  -\u003E  rax         single-def \u0022V05.[008..016)\u0022\n-;* V15 tmp13        [V15,T09] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022V05.[016..020)\u0022\n-;* V16 tmp14        [V16,T10] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022V05.[020..024)\u0022\n-;  V17 rat0         [V17,T01] (  4,  7   )     ref  -\u003E  rax         \u0022replacement local\u0022\n-;  V18 rat1         [V18,T06] (  3,  2   )    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n\u002B;  V13 tmp11        [V13,T06] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022V05.[000..008)\u0022\n\u002B;  V14 tmp12        [V14,T07] (  2,  2   )     ref  -\u003E  rax         single-def \u0022V05.[008..016)\u0022\n\u002B;* V15 tmp13        [V15    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022V05.[016..020)\u0022\n\u002B;* V16 tmp14        [V16    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022V05.[020..024)\u0022\n\u002B;  V17 rat0         [V17,T00] (  4,  7   )     ref  -\u003E  rax         \u0022replacement local\u0022\n\u002B;  V18 rat1         [V18,T05] (  3,  2   )    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n ;\n-; Lcl frame size = 40\n\u002B; Lcl frame size = 32\n \n G_M19101_IG01:\n        push     rbp\n-       push     rbx\n-       sub      rsp, 40\n-       lea      rbp, [rsp\u002B0x30]\n-       xor      eax, eax\n-       mov      qword ptr [rbp-0x28], rax\n\u002B       sub      rsp, 32\n\u002B       lea      rbp, [rsp\u002B0x20]\n        vxorps   xmm8, xmm8, xmm8\n-       vmovdqa  xmmword ptr [rbp-0x20], xmm8\n-       mov      qword ptr [rbp-0x10], rax\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 6.33\n\u002B       vmovdqu  ymmword ptr [rbp-0x20], ymm8\n\u002B\t\t\t\t\t\t;; size=20 bbWeight=1 PerfScore 3.08\n G_M19101_IG02:\n        mov      rsi, 0xD1FFAB1E      ; const ptr\n        mov      rsi, gword ptr [rsi]\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.CodeAnalysis.SyntaxNode:GetAnnotatedNodesAndTokens(Microsoft.CodeAnalysis.SyntaxAnnotation):System.Collections.Generic.IEnumerable\u00601[Microsoft.CodeAnalysis.SyntaxNodeOrToken]:this\n        cmp      dword ptr [rdi], edi\n        call     [rax]Microsoft.CodeAnalysis.SyntaxNode:GetAnnotatedNodesAndTokens(Microsoft.CodeAnalysis.SyntaxAnnotation):System.Collections.Generic.IEnumerable\u00601[Microsoft.CodeAnalysis.SyntaxNodeOrToken]:this\n        mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:ToList[Microsoft.CodeAnalysis.SyntaxNodeOrToken](System.Collections.Generic.IEnumerable\u00601[Microsoft.CodeAnalysis.SyntaxNodeOrToken]):System.Collections.Generic.List\u00601[Microsoft.CodeAnalysis.SyntaxNodeOrToken]\n        call     [rax]System.Linq.Enumerable:ToList[Microsoft.CodeAnalysis.SyntaxNodeOrToken](System.Collections.Generic.IEnumerable\u00601[Microsoft.CodeAnalysis.SyntaxNodeOrToken]):System.Collections.Generic.List\u00601[Microsoft.CodeAnalysis.SyntaxNodeOrToken]\n-       mov      rbx, rax\n-       test     rbx, rbx\n-       je       G_M19101_IG08\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[Microsoft.CodeAnalysis.SyntaxNodeOrToken]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M19101_IG04\n-\t\t\t\t\t\t;; size=84 bbWeight=1 PerfScore 17.50\n-G_M19101_IG03:\n-       lea      rdx, [rbp-0x10]\n-       lea      rsi, [rbp-0x28]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[Microsoft.CodeAnalysis.SyntaxNodeOrToken]:TryGetFirst(byref):Microsoft.CodeAnalysis.SyntaxNodeOrToken:this\n-       jmp      SHORT G_M19101_IG05\n-\t\t\t\t\t\t;; size=23 bbWeight=0.50 PerfScore 5.12\n-G_M19101_IG04:\n-       lea      rdi, [rbp-0x28]\n-       lea      rdx, [rbp-0x10]\n-       mov      rsi, rbx\n\u002B       je       SHORT G_M19101_IG05\n\u002B       lea      rdi, [rbp-0x20]\n\u002B       lea      rdx, [rbp-0x08]\n\u002B       mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[Microsoft.CodeAnalysis.SyntaxNodeOrToken](System.Collections.Generic.IEnumerable\u00601[Microsoft.CodeAnalysis.SyntaxNodeOrToken],byref):Microsoft.CodeAnalysis.SyntaxNodeOrToken\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[Microsoft.CodeAnalysis.SyntaxNodeOrToken](System.Collections.Generic.IEnumerable\u00601[Microsoft.CodeAnalysis.SyntaxNodeOrToken],byref):Microsoft.CodeAnalysis.SyntaxNodeOrToken\n-\t\t\t\t\t\t;; size=23 bbWeight=0.50 PerfScore 2.25\n-G_M19101_IG05:\n-       mov      rsi, gword ptr [rbp-0x28]\n-       mov      rax, gword ptr [rbp-0x20]\n-       cmp      byte  ptr [rbp-0x10], 0\n-       je       SHORT G_M19101_IG09\n\u002B       mov      rsi, gword ptr [rbp-0x20]\n\u002B       mov      rax, gword ptr [rbp-0x18]\n\u002B       cmp      byte  ptr [rbp-0x08], 0\n\u002B       je       SHORT G_M19101_IG06\n        xor      rdi, rdi\n        test     rax, rax\n        cmovne   rsi, rdi\n        mov      rax, rsi\n        test     rax, rax\n-       je       SHORT G_M19101_IG07\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 6.50\n-G_M19101_IG06:\n\u002B       je       SHORT G_M19101_IG04\n\u002B\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 23.25\n\u002BG_M19101_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax\n        cmp      qword ptr [rax], rdi\n-       jne      SHORT G_M19101_IG10\n\u002B       jne      SHORT G_M19101_IG07\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 1.62\n-G_M19101_IG07:\n-       add      rsp, 40\n-       pop      rbx\n\u002BG_M19101_IG04:\n\u002B       add      rsp, 32\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.25\n-G_M19101_IG08:\n\u002B\t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 1.75\n\u002BG_M19101_IG05:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M19101_IG09:\n\u002BG_M19101_IG06:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M19101_IG10:\n\u002BG_M19101_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rax]CORINFO_HELP_CHKCASTCLASS\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 258, prolog size 31, PerfScore 41.58, instruction count 65, allocated bytes for code 258 (MethodHash=783db562) for method Microsoft.CodeAnalysis.CSharp.CodeRefactorings.InlineTemporary.CSharpInlineTemporaryCodeRefactoringProvider:FindDeclarator(Microsoft.CodeAnalysis.SyntaxNode):Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax (FullOpts)\n\u002B; Total bytes of code 186, prolog size 20, PerfScore 29.71, instruction count 46, allocated bytes for code 186 (MethodHash=783db562) for method Microsoft.CodeAnalysis.CSharp.CodeRefactorings.InlineTemporary.CSharpInlineTemporaryCodeRefactoringProvider:FindDeclarator(Microsoft.CodeAnalysis.SyntaxNode):Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":258,"DiffBytes":186},{"Assembly":"Microsoft.CodeAnalysis.Features.dasm","Method":"Microsoft.CodeAnalysis.EditAndContinue.PdbMatchingSourceTextProvider\u002BTestAccessor:GetDocumentsWithChangedLoaderByPath():System.Collections.Immutable.ImmutableDictionary\u00602[System.String,System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]:this (FullOpts)","Category":"improvement","Description":"2,486 -\u003E 1,366 bytes (-1120)","ExtraInfo":null,"Diff":"@@ -8,173 \u002B8,160 @@\n ; 0 inlinees with PGO data; 93 single block inlinees; 53 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T12] (  4,  4   )   byref  -\u003E  rbx         this single-def\n-;  V01 loc0         [V01,T35] (  4,  2   )     ref  -\u003E  [rbp-0x40]  class-hnd EH-live spill-single-def \u003CSystem.Object\u003E\n-;  V02 loc1         [V02,T46] (  3,  2   )   ubyte  -\u003E  [rbp-0x2C]  do-not-enreg[M] ld-addr-op EH-live\n\u002B;  V00 this         [V00,T08] (  4,  4   )   byref  -\u003E  rbx         this single-def\n\u002B;  V01 loc0         [V01,T22] (  4,  2   )     ref  -\u003E  [rbp-0x38]  class-hnd EH-live spill-single-def \u003CSystem.Object\u003E\n\u002B;  V02 loc1         [V02,T25] (  3,  2   )   ubyte  -\u003E  [rbp-0x2C]  do-not-enreg[M] ld-addr-op EH-live\n ;* V03 loc2         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V05 tmp1         [V05,T03] (  7, 10   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]\u003E\n-;  V06 tmp2         [V06,T45] (  3,  2   )     ref  -\u003E  rbx         class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]\u003E\n-;* V07 tmp3         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]\u003E\n-;  V08 tmp4         [V08,T18] (  6,  3   )     ref  -\u003E  rbx         class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]\u003E\n-;  V09 tmp5         [V09,T36] (  4,  2   )     ref  -\u003E  rbx         class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]\u003E\n-;  V10 tmp6         [V10,T25] (  3,  3   )     ref  -\u003E  r14         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEqualityComparer\u00601[System.String]\u003E\n-;  V11 tmp7         [V11,T13] (  5,  5   )     ref  -\u003E  r12         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEqualityComparer\u00601[System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]\u003E\n-;  V12 tmp8         [V12,T00] ( 12, 12   )     ref  -\u003E  [rbp-0x48]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]\u003E\n-;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602\u002BComparers[System.String,System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]\u003E\n-;  V14 tmp10        [V14,T07] (  6,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]\u003E\n\u002B;  V05 tmp1         [V05,T09] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]\u003E\n\u002B;* V06 tmp2         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]\u003E\n\u002B;* V07 tmp3         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]\u003E\n\u002B;* V08 tmp4         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]\u003E\n\u002B;* V09 tmp5         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEqualityComparer\u00601[System.String]\u003E\n\u002B;* V10 tmp6         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEqualityComparer\u00601[System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]\u003E\n\u002B;* V12 tmp8         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602\u002BComparers[System.String,System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]\u003E\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]\u003E\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602\u002BComparers[System.__Canon,System.ValueTuple\u00602[System.__Canon,int]]\u003E\n ;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602\u002BComparers[System.__Canon,System.ValueTuple\u00602[System.__Canon,int]]\u003E\n-;* V16 tmp12        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602\u002BComparers[System.__Canon,System.ValueTuple\u00602[System.__Canon,int]]\u003E\n-;  V17 tmp13        [V17,T65] (  3,  1.50)     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602\u002BComparers[System.String,System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]\u003E\n-;  V18 tmp14        [V18,T47] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602\u002BComparers[System.__Canon,System.ValueTuple\u00602[System.__Canon,int]]\u003E\n-;  V19 tmp15        [V19,T15] (  4,  4   )     ref  -\u003E  r12         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableDictionary\u00602\u002BHashBucket[System.__Canon,System.ValueTuple\u00602[System.__Canon,int]]]\u003E\n-;  V20 tmp16        [V20,T60] (  2,  2   )     int  -\u003E  rbx         \u0022Inlining Arg\u0022\n-;* V21 tmp17        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;* V22 tmp18        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;* V23 tmp19        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.StringEqualityComparer\u003E\n-;  V24 tmp20        [V24,T48] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602\u002BComparers[System.__Canon,System.ValueTuple\u00602[System.__Canon,int]]\u003E\n-;* V25 tmp21        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V26 tmp22        [V26,T37] (  4,  2   )     ref  -\u003E  rsi        \n-;* V27 tmp23        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.StringEqualityComparer\u003E\n-;* V28 tmp24        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]\u003E\n-;* V29 tmp25        [V29    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602\u002BMutationInput[System.String,System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]\u003E\n-;* V30 tmp26        [V30    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602\u002BMutationResult[System.String,System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]\u003E\n-;* V31 tmp27        [V31    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602\u002BMutationResult[System.String,System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]\u003E\n-;* V32 tmp28        [V32    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602\u002BMutationInput[System.String,System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]\u003E\n... diff truncated; middle omitted ...\n-       lea      rdi, bword ptr [r13\u002B0x08]\n-       mov      rsi, r12\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      dword ptr [r13\u002B0x18], ebx\n-       mov      rbx, r13\n-\t\t\t\t\t\t;; size=47 bbWeight=0.50 PerfScore 4.38\n-G_M48937_IG50:\n-       jmp      G_M48937_IG67\n-\t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 1.00\n-G_M48937_IG51:\n\u002BG_M48937_IG30:\n        mov      rdi, 0xD1FFAB1E      ; \u0027source\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)\n        call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)\n        int3     \n \t\t\t\t\t\t;; size=23 bbWeight=0 PerfScore 0.00\n-G_M48937_IG52:\n\u002BG_M48937_IG31:\n\u002B       mov      rdi, r15\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n\u002B       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n\u002B       jmp      G_M48937_IG04\n\u002B\t\t\t\t\t\t;; size=20 bbWeight=0 PerfScore 0.00\n\u002BG_M48937_IG32:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.EqualityComparer\u00601[System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M48937_IG35\n\u002B       jmp      G_M48937_IG05\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M48937_IG53:\n\u002BG_M48937_IG33:\n        mov      rdi, 0xD1FFAB1E      ; \u0027valueComparer\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)\n        call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)\n        int3     \n \t\t\t\t\t\t;; size=23 bbWeight=0 PerfScore 0.00\n-G_M48937_IG54:\n\u002BG_M48937_IG34:\n        mov      rdi, 0xD1FFAB1E      ; \u0027comparers\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)\n        call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)\n        int3     \n \t\t\t\t\t\t;; size=23 bbWeight=0 PerfScore 0.00\n-G_M48937_IG55:\n-       mov      rdi, 0xD1FFAB1E      ; System.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableDictionary\u00602\u002BHashBucket[System.String,System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M48937_IG48\n-\t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M48937_IG56:\n\u002BG_M48937_IG35:\n        mov      rdi, 0xD1FFAB1E      ; \u0027root\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)\n        call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)\n        int3     \n \t\t\t\t\t\t;; size=23 bbWeight=0 PerfScore 0.00\n-G_M48937_IG57:\n-       mov      rdi, r15\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M48937_IG49\n-\t\t\t\t\t\t;; size=20 bbWeight=0 PerfScore 0.00\n-G_M48937_IG58:\n-       mov      rdi, 0xD1FFAB1E      ; System.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableDictionary\u00602\u002BHashBucket[System.String,System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M48937_IG37\n-\t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M48937_IG59:\n-       mov      rdi, r15\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M48937_IG42\n-\t\t\t\t\t\t;; size=20 bbWeight=0 PerfScore 0.00\n-G_M48937_IG60:\n-       mov      rdi, r15\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M48937_IG05\n-\t\t\t\t\t\t;; size=20 bbWeight=0 PerfScore 0.00\n-G_M48937_IG61:\n-       mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.EqualityComparer\u00601[System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M48937_IG06\n-\t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M48937_IG62:\n\u002BG_M48937_IG36:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableDictionary\u00602\u002BHashBucket[System.String,System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M48937_IG18\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M48937_IG63:\n\u002BG_M48937_IG37:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableDictionary\u00602\u002BHashBucket[System.String,System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M48937_IG08\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M48937_IG64:\n-       mov      rdi, 0xD1FFAB1E      ; \u0027count\u0027\n-       xor      rsi, rsi\n-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailRange(System.String,System.String)\n-       call     [rax]System.Collections.Immutable.Requires:FailRange(System.String,System.String)\n-       int3     \n-\t\t\t\t\t\t;; size=25 bbWeight=0 PerfScore 0.00\n-G_M48937_IG65:\n\u002BG_M48937_IG38:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableDictionary\u00602\u002BHashBucket[System.String,System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M48937_IG21\n\u002B       jmp      G_M48937_IG26\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M48937_IG66:\n-       mov      rdi, 0xD1FFAB1E      ; System.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableDictionary\u00602\u002BHashBucket[System.String,System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M48937_IG28\n-\t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M48937_IG67:\n-       mov      rdi, gword ptr [rbp-0x40]\n\u002BG_M48937_IG39:\n\u002B       mov      rdi, gword ptr [rbp-0x38]\n        mov      rax, 0xD1FFAB1E      ; code for System.Threading.Monitor:Exit(System.Object)\n        call     [rax]System.Threading.Monitor:Exit(System.Object)\n-       mov      rax, rbx\n\u002B       mov      rax, r13\n \t\t\t\t\t\t;; size=19 bbWeight=1 PerfScore 4.50\n-G_M48937_IG68:\n-       add      rsp, 56\n\u002BG_M48937_IG40:\n\u002B       add      rsp, 40\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -838,23 \u002B533,23 @@ G_M48937_IG68:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M48937_IG69:\n\u002BG_M48937_IG41:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M48937_IG70:\n\u002BG_M48937_IG42:\n        cmp      dword ptr [rbp-0x2C], 0\n-       je       SHORT G_M48937_IG71\n-       mov      rdi, gword ptr [rbp-0x40]\n\u002B       je       SHORT G_M48937_IG43\n\u002B       mov      rdi, gword ptr [rbp-0x38]\n        mov      rax, 0xD1FFAB1E      ; code for System.Threading.Monitor:Exit(System.Object)\n        call     [rax]System.Threading.Monitor:Exit(System.Object)\n \t\t\t\t\t\t;; size=22 bbWeight=0 PerfScore 0.00\n-G_M48937_IG71:\n\u002BG_M48937_IG43:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M48937_IG72:\n\u002BG_M48937_IG44:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 2486, prolog size 22, PerfScore 242.62, instruction count 536, allocated bytes for code 2486 (MethodHash=090340d6) for method Microsoft.CodeAnalysis.EditAndContinue.PdbMatchingSourceTextProvider\u002BTestAccessor:GetDocumentsWithChangedLoaderByPath():System.Collections.Immutable.ImmutableDictionary\u00602[System.String,System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]:this (FullOpts)\n\u002B; Total bytes of code 1366, prolog size 22, PerfScore 158.62, instruction count 299, allocated bytes for code 1366 (MethodHash=090340d6) for method Microsoft.CodeAnalysis.EditAndContinue.PdbMatchingSourceTextProvider\u002BTestAccessor:GetDocumentsWithChangedLoaderByPath():System.Collections.Immutable.ImmutableDictionary\u00602[System.String,System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentState,int]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":2486,"DiffBytes":1366},{"Assembly":"Microsoft.DotNet.Scaffolding.Shared.dasm","Method":"Microsoft.DotNet.Scaffolding.Shared.Cli.Utils.DotnetCommands:GetDotnetCommandVersion(Microsoft.DotNet.Scaffolding.Shared.ILogger):System.String (FullOpts)","Category":"improvement","Description":"634 -\u003E 579 bytes (-55)","ExtraInfo":null,"Diff":"@@ -23,25 \u002B23,25 @@\n ;  V12 tmp7         [V12,T03] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u00601[System.String]\u003E\n ;* V13 tmp8         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.Extensions.Internal.Command\u003E\n ;* V14 tmp9         [V14    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CMicrosoft.Extensions.Internal.CommandResult\u003E\n-;* V15 tmp10        [V15,T17] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String[]\u003E\n-;* V16 tmp11        [V16,T19] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022Inline stloc first use temp\u0022\n\u002B;* V15 tmp10        [V15,T16] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String[]\u003E\n\u002B;* V16 tmp11        [V16,T18] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022Inline stloc first use temp\u0022\n ;  V17 tmp12        [V17,T06] (  3,  6   )     ref  -\u003E  rax         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.String[]\u003E\n ;* V18 tmp13        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V19 tmp14        [V19,T11] (  2,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon[]\u003E\n\u002B;  V19 tmp14        [V19,T10] (  2,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon[]\u003E\n ;* V20 tmp15        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022dup spill\u0022 \u003CSystem.String\u003E\n ;* V21 tmp16        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V22 tmp17        [V22,T12] (  2,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.__Canon]\u003E\n\u002B;  V22 tmp17        [V22,T11] (  2,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.__Canon]\u003E\n ;  V23 tmp18        [V23,T01] (  7, 14   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.Extensions.Internal.Command\u003E\n-;  V24 tmp19        [V24,T09] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.String]\u003E\n-;  V25 tmp20        [V25    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V26 tmp21        [V26,T16] (  3,  1.50)     ref  -\u003E  r15         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n-;  V27 tmp22        [V27,T14] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n-;  V28 tmp23        [V28,T18] (  1,  1   )     ref  -\u003E  rax         \u0022field V04.\u003CStartInfo\u003Ek__BackingField (fldOffset=0x0)\u0022 P-INDEP\n-;  V29 tmp24        [V29,T15] (  2,  2   )     int  -\u003E  rdx         \u0022field V04.\u003CExitCode\u003Ek__BackingField (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V24 tmp19        [V24,T12] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.String]\u003E\n\u002B;  V25 tmp20        [V25    ] (  1,  0.50)   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V26 tmp21        [V26,T15] (  2,  1   )     ref  -\u003E  r15         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n\u002B;* V27 tmp22        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n\u002B;  V28 tmp23        [V28,T17] (  1,  1   )     ref  -\u003E  rax         \u0022field V04.\u003CStartInfo\u003Ek__BackingField (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V29 tmp24        [V29,T14] (  2,  2   )     int  -\u003E  rdx         \u0022field V04.\u003CExitCode\u003Ek__BackingField (fldOffset=0x8)\u0022 P-INDEP\n ;* V30 tmp25        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V14.\u003CStartInfo\u003Ek__BackingField (fldOffset=0x0)\u0022 P-DEP\n ;* V31 tmp26        [V31    ] (  0,  0   )     int  -\u003E  zero-ref    do-not-enreg[] \u0022field V14.\u003CExitCode\u003Ek__BackingField (fldOffset=0x8)\u0022 P-DEP\n ;  V32 cse0         [V32,T08] (  4,  4   )     ref  -\u003E  r12         \u0022CSE #02: moderate\u0022\n-;  V33 cse1         [V33,T10] (  4,  4   )    long  -\u003E  r14         \u0022CSE #01: moderate\u0022\n\u002B;  V33 cse1         [V33,T09] (  4,  4   )    long  -\u003E  r14         \u0022CSE #01: moderate\u0022\n ;\n ; Lcl frame size = 8\n \n@@ -153,38 \u002B153,22 @@ G_M29622_IG03:\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.Extensions.Internal.Command:Execute():Microsoft.Extensions.Internal.CommandResult:this\n        call     [rax]Microsoft.Extensions.Internal.Command:Execute():Microsoft.Extensions.Internal.CommandResult:this\n        test     edx, edx\n-       jne      SHORT G_M29622_IG06\n\u002B       jne      SHORT G_M29622_IG05\n \t\t\t\t\t\t;; size=166 bbWeight=1 PerfScore 23.50\n G_M29622_IG04:\n-       mov      r15, gword ptr [rbx\u002B0x10]\n-       test     r15, r15\n-       je       SHORT G_M29622_IG08\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.String]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M29622_IG05\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      r15, rax\n-       jmp      SHORT G_M29622_IG06\n-\t\t\t\t\t\t;; size=61 bbWeight=0.50 PerfScore 9.12\n-G_M29622_IG05:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x10]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M29622_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.String](System.Collections.Generic.IEnumerable\u00601[System.String],byref):System.String\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        mov      r15, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M29622_IG06:\n\u002B\t\t\t\t\t\t;; size=38 bbWeight=0.50 PerfScore 3.75\n\u002BG_M29622_IG05:\n        mov      rax, r15\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M29622_IG07:\n\u002BG_M29622_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n@@ -194,12 \u002B178,12 @@ G_M29622_IG07:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M29622_IG08:\n\u002BG_M29622_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 634, prolog size 22, PerfScore 89.88, instruction count 139, allocated bytes for code 634 (MethodHash=96498c49) for method Microsoft.DotNet.Scaffolding.Shared.Cli.Utils.DotnetCommands:GetDotnetCommandVersion(Microsoft.DotNet.Scaffolding.Shared.ILogger):System.String (FullOpts)\n\u002B; Total bytes of code 579, prolog size 22, PerfScore 82.25, instruction count 125, allocated bytes for code 579 (MethodHash=96498c49) for method Microsoft.DotNet.Scaffolding.Shared.Cli.Utils.DotnetCommands:GetDotnetCommandVersion(Microsoft.DotNet.Scaffolding.Shared.ILogger):System.String (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":634,"DiffBytes":579},{"Assembly":"Microsoft.EntityFrameworkCore.Proxies.dasm","Method":"Microsoft.EntityFrameworkCore.Utilities.Multigraph\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]]:ThrowCycle(System.Collections.Generic.List\u00601[System.Numerics.Vector\u00601[float]],System.Func\u00602[System.Collections.Generic.IReadOnlyList\u00601[System.Tuple\u00603[System.Numerics.Vector\u00601[float],System.Numerics.Vector\u00601[float],System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]]],System.String],System.Func\u00602[System.String,System.String]):this (FullOpts)","Category":"improvement","Description":"894 -\u003E 838 bytes (-56)","ExtraInfo":null,"Diff":"@@ -9,44 \u002B9,44 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T06] (  5, 10   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Utilities.Multigraph\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]]\u003E\n-;  V01 arg1         [V01,T07] (  7,  6   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V01 arg1         [V01,T07] (  6,  5   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V02 arg2         [V02,T09] (  5,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Func\u00602[System.Collections.Generic.IReadOnlyList\u00601[System.Tuple\u00603[System.Numerics.Vector\u00601[float],System.Numerics.Vector\u00601[float],System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]]],System.String]\u003E\n ;  V03 arg3         [V03,T10] (  5,  2   )     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Func\u00602[System.String,System.String]\u003E\n-;  V04 loc0         [V04,T16] (  4,  0   )     ref  -\u003E  rdi         class-hnd \u003CSystem.String\u003E\n-;  V05 loc1         [V05,T14] (  4, 25   )  simd32  -\u003E  [rbp-0x50]  \u003CSystem.Numerics.Vector\u00601[float]\u003E\n\u002B;  V04 loc0         [V04,T15] (  4,  0   )     ref  -\u003E  rdi         class-hnd \u003CSystem.String\u003E\n\u002B;  V05 loc1         [V05,T13] (  4, 25   )  simd32  -\u003E  [rbp-0x50]  \u003CSystem.Numerics.Vector\u00601[float]\u003E\n ;  V06 loc2         [V06,T01] (  8, 41   )     ref  -\u003E  r12         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.Tuple\u00603[System.Numerics.Vector\u00601[float],System.Numerics.Vector\u00601[float],System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]]]\u003E\n ;  V07 loc3         [V07,T05] (  6, 16   )     ref  -\u003E  [rbp-0xB8]  class-hnd EH-live single-def \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V08 loc4         [V08,T13] (  4, 32   )  simd32  -\u003E  [rbp-0x70]  do-not-enreg[DAS] defined-via-address \u003CSystem.Numerics.Vector\u00601[float]\u003E\n\u002B;  V08 loc4         [V08,T12] (  4, 32   )  simd32  -\u003E  [rbp-0x70]  do-not-enreg[DAS] defined-via-address \u003CSystem.Numerics.Vector\u00601[float]\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (64) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;  V10 tmp1         [V10,T08] (  3,  6   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Tuple\u00603[System.Numerics.Vector\u00601[float],System.Numerics.Vector\u00601[float],System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]]]\u003E\n-;  V11 tmp2         [V11,T19] (  3,  0   )     ref  -\u003E  rbx        \n-;  V12 tmp3         [V12,T20] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n-;  V13 tmp4         [V13,T17] (  4,  0   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Numerics.Vector\u00601[float],System.String]\u003E\n-;  V14 tmp5         [V14,T23] (  2,  0   )     ref  -\u003E  rbx         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.__Canon]\u003E\n-;  V15 tmp6         [V15,T18] (  4,  0   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V11 tmp2         [V11,T18] (  3,  0   )     ref  -\u003E  rbx        \n\u002B;  V12 tmp3         [V12,T19] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V13 tmp4         [V13,T16] (  4,  0   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Numerics.Vector\u00601[float],System.String]\u003E\n\u002B;  V14 tmp5         [V14,T22] (  2,  0   )     ref  -\u003E  rbx         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.__Canon]\u003E\n\u002B;  V15 tmp6         [V15,T17] (  4,  0   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V16 tmp7         [V16    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.ReadOnlySpan\u00601[char]\u003E\n ;* V17 tmp8         [V17    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022Inline return value spill temp\u0022 \u003CSystem.ReadOnlySpan\u00601[char]\u003E\n ;* V18 tmp9         [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ReadOnlySpan\u00601[char]\u003E\n ;* V19 tmp10        [V19    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.ReadOnlySpan\u00601[char]\u003E\n-;  V20 tmp11        [V20,T24] (  2,  0   )   byref  -\u003E  rsi         single-def \u0022Inlining Arg\u0022\n-;  V21 tmp12        [V21,T25] (  2,  0   )     int  -\u003E  rdx         \u0022Inlining Arg\u0022\n-;  V22 tmp13        [V22    ] (  3,  3   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V20 tmp11        [V20,T23] (  2,  0   )   byref  -\u003E  rsi         single-def \u0022Inlining Arg\u0022\n\u002B;  V21 tmp12        [V21,T24] (  2,  0   )     int  -\u003E  rdx         \u0022Inlining Arg\u0022\n\u002B;  V22 tmp13        [V22    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V23 tmp14        [V23    ] (  0,  0   )  simd32  -\u003E  zero-ref    single-def\n-;  V24 tmp15        [V24,T15] (  3,  3   )  simd32  -\u003E  [rbp-0xB0]  do-not-enreg[DAS] defined-via-address \u0022Inline return value spill temp\u0022 \u003CSystem.Numerics.Vector\u00601[float]\u003E\n-;  V25 tmp16        [V25,T11] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V24 tmp15        [V24,T14] (  2,  2   )  simd32  -\u003E  [rbp-0xB0]  do-not-enreg[DAS] defined-via-address \u0022Inline return value spill temp\u0022 \u003CSystem.Numerics.Vector\u00601[float]\u003E\n\u002B;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V26 tmp17        [V26,T02] (  2, 32   )     ref  -\u003E  r15         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]\u003E\n ;  V27 tmp18        [V27,T00] (  6, 80   )     ref  -\u003E  [rbp-0xC0]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Tuple\u00603[System.Numerics.Vector\u00601[float],System.Numerics.Vector\u00601[float],System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]]\u003E\n ;  V28 tmp19        [V28,T04] (  3, 20   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Tuple\u00603[System.Numerics.Vector\u00601[float],System.Numerics.Vector\u00601[float],System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]][]\u003E\n ;  V29 tmp20        [V29,T03] (  4, 24   )     int  -\u003E  r15         \u0022Inline stloc first use temp\u0022\n ;* V30 tmp21        [V30    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022field V16._reference (fldOffset=0x0)\u0022 P-INDEP\n ;* V31 tmp22        [V31    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V16._length (fldOffset=0x8)\u0022 P-INDEP\n-;  V32 tmp23        [V32,T21] (  3,  0   )   byref  -\u003E  rsi         \u0022field V17._reference (fldOffset=0x0)\u0022 P-INDEP\n-;  V33 tmp24        [V33,T22] (  3,  0   )     int  -\u003E  rdx         \u0022field V17._length (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V32 tmp23        [V32,T20] (  3,  0   )   byref  -\u003E  rsi         \u0022field V17._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V33 tmp24        [V33,T21] (  3,  0   )     int  -\u003E  rdx         \u0022field V17._length (fldOffset=0x8)\u0022 P-INDEP\n ;* V34 tmp25        [V34    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V18._reference (fldOffset=0x0)\u0022 P-INDEP\n ;* V35 tmp26        [V35    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V18._length (fldOffset=0x8)\u0022 P-INDEP\n ;* V36 tmp27        [V36    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V19._reference (fldOffset=0x0)\u0022 P-INDEP\n ;* V37 tmp28        [V37    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V19._length (fldOffset=0x8)\u0022 P-INDEP\n-;  V38 tmp29        [V38,T12] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V38 tmp29        [V38,T11] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 216\n \n@@ -68,33 \u002B68,16 @@ G_M35902_IG01:\n \t\t\t\t\t\t;; size=43 bbWeight=1 PerfScore 9.00\n G_M35902_IG02:\n        test     r14, r14\n-       je       G_M35902_IG10\n\u002B       je       G_M35902_IG08\n        test     r15, r15\n-       je       G_M35902_IG14\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Numerics.Vector\u00601[float]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M35902_IG03\n-       lea      rdx, [rbp-0x78]\n-       lea      rsi, [rbp-0xB0]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.Numerics.Vector\u00601[float]]:TryGetFirst(byref):System.Numerics.Vector\u00601[float]:this\n-       jmp      SHORT G_M35902_IG04\n-\t\t\t\t\t\t;; size=74 bbWeight=1 PerfScore 17.75\n-G_M35902_IG03:\n\u002B       je       G_M35902_IG12\n        lea      rdi, [rbp-0xB0]\n        lea      rdx, [rbp-0x78]\n        mov      rsi, r15\n... diff truncated; middle omitted ...\n-\t\t\t\t\t\t;; size=60 bbWeight=1 PerfScore 9.75\n-G_M35902_IG05:\n\u002B       je       G_M35902_IG14\n\u002B\t\t\t\t\t\t;; size=104 bbWeight=1 PerfScore 16.75\n\u002BG_M35902_IG03:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.List\u00601[System.Tuple\u00603[System.Numerics.Vector\u00601[float],System.Numerics.Vector\u00601[float],System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]]]:s_emptyArray\n        mov      rsi, gword ptr [rdi]\n        lea      rdi, bword ptr [r12\u002B0x08]\n@@ -118,12 \u002B101,12 @@ G_M35902_IG05:\n        call     [r11]System.Collections.Generic.IEnumerable\u00601[System.Numerics.Vector\u00601[float]]:GetEnumerator():System.Collections.Generic.IEnumerator\u00601[System.Numerics.Vector\u00601[float]]:this\n        mov      gword ptr [rbp-0xB8], rax\n \t\t\t\t\t\t;; size=66 bbWeight=1 PerfScore 12.00\n-G_M35902_IG06:\n\u002BG_M35902_IG04:\n        mov      rdi, gword ptr [rbp-0xB8]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():bool:this\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n-       je       G_M35902_IG17\n\u002B       je       G_M35902_IG15\n        lea      rsi, [rbp-0x70]\n        mov      rdi, gword ptr [rbp-0xB8]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEnumerator\u00601[System.Numerics.Vector\u00601[float]]:get_Current():System.Numerics.Vector\u00601[float]:this\n@@ -150,16 \u002B133,16 @@ G_M35902_IG06:\n        mov      rdi, gword ptr [r12\u002B0x08]\n        mov      r15d, dword ptr [r12\u002B0x10]\n        cmp      dword ptr [rdi\u002B0x08], r15d\n-       ja       SHORT G_M35902_IG08\n\u002B       ja       SHORT G_M35902_IG06\n \t\t\t\t\t\t;; size=166 bbWeight=8 PerfScore 320.00\n-G_M35902_IG07:\n\u002BG_M35902_IG05:\n        mov      rdi, r12\n        mov      rsi, gword ptr [rbp-0xC0]\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n-       jmp      SHORT G_M35902_IG09\n\u002B       jmp      SHORT G_M35902_IG07\n \t\t\t\t\t\t;; size=24 bbWeight=4 PerfScore 26.00\n-G_M35902_IG08:\n\u002BG_M35902_IG06:\n        lea      esi, [r15\u002B0x01]\n        mov      dword ptr [r12\u002B0x10], esi\n        mov      esi, r15d\n@@ -167,22 \u002B150,22 @@ G_M35902_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST\n        call     [rax]CORINFO_HELP_ARRADDR_ST\n \t\t\t\t\t\t;; size=31 bbWeight=4 PerfScore 24.00\n-G_M35902_IG09:\n\u002BG_M35902_IG07:\n        vmovups  ymm0, ymmword ptr [rbp-0x70]\n        vmovups  ymmword ptr [rbp-0x50], ymm0\n-       jmp      G_M35902_IG06\n\u002B       jmp      G_M35902_IG04\n \t\t\t\t\t\t;; size=15 bbWeight=8 PerfScore 40.00\n-G_M35902_IG10:\n\u002BG_M35902_IG08:\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[System.Numerics.Vector\u00601[float],System.String]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        test     rbx, rbx\n-       jne      SHORT G_M35902_IG11\n\u002B       jne      SHORT G_M35902_IG09\n        mov      rax, 0xD1FFAB1E      ; code for System.Delegate:ThrowNullThisInDelegateToInstance()\n        call     [rax]System.Delegate:ThrowNullThisInDelegateToInstance()\n        int3     \n \t\t\t\t\t\t;; size=36 bbWeight=0 PerfScore 0.00\n-G_M35902_IG11:\n\u002BG_M35902_IG09:\n        lea      rdi, bword ptr [r14\u002B0x10]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -199,41 \u002B182,41 @@ G_M35902_IG11:\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Concat(System.String,System.String):System.String\n        call     [rax]System.String:Concat(System.String,System.String):System.String\n        test     rax, rax\n-       jne      SHORT G_M35902_IG12\n\u002B       jne      SHORT G_M35902_IG10\n        xor      rsi, rsi\n        xor      edx, edx\n-       jmp      SHORT G_M35902_IG13\n\u002B       jmp      SHORT G_M35902_IG11\n \t\t\t\t\t\t;; size=100 bbWeight=0 PerfScore 0.00\n-G_M35902_IG12:\n\u002BG_M35902_IG10:\n        lea      rsi, bword ptr [rax\u002B0x0C]\n        mov      edx, dword ptr [rax\u002B0x08]\n \t\t\t\t\t\t;; size=7 bbWeight=0 PerfScore 0.00\n-G_M35902_IG13:\n\u002BG_M35902_IG11:\n        mov      rcx, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.String:JoinCore[System.Object](System.ReadOnlySpan\u00601[char],System.Collections.Generic.IEnumerable\u00601[System.Object]):System.String\n        mov      rax, 0xD1FFAB1E      ; code for System.String:JoinCore[System.__Canon](System.ReadOnlySpan\u00601[char],System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.String\n        call     [rax]System.String:JoinCore[System.__Canon](System.ReadOnlySpan\u00601[char],System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.String\n        mov      rdi, rax\n-       jmp      SHORT G_M35902_IG18\n\u002B       jmp      SHORT G_M35902_IG16\n \t\t\t\t\t\t;; size=30 bbWeight=0 PerfScore 0.00\n-G_M35902_IG14:\n\u002BG_M35902_IG12:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M35902_IG15:\n\u002BG_M35902_IG13:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M35902_IG16:\n\u002BG_M35902_IG14:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.Tuple\u00603[System.Numerics.Vector\u00601[float],System.Numerics.Vector\u00601[float],System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M35902_IG05\n\u002B       jmp      G_M35902_IG03\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M35902_IG17:\n\u002BG_M35902_IG15:\n        mov      rdi, gword ptr [rbp-0xB8]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n@@ -242,21 \u002B225,21 @@ G_M35902_IG17:\n        call     [r14\u002B0x18]System.Func\u00602[System.__Canon,System.__Canon]:Invoke(System.__Canon):System.__Canon:this\n        mov      rdi, rax\n \t\t\t\t\t\t;; size=34 bbWeight=0 PerfScore 0.00\n-G_M35902_IG18:\n\u002BG_M35902_IG16:\n        test     r13, r13\n-       je       SHORT G_M35902_IG19\n\u002B       je       SHORT G_M35902_IG17\n        mov      rsi, rdi\n        mov      rdi, gword ptr [r13\u002B0x10]\n        call     [r13\u002B0x18]System.Func\u00602[System.__Canon,System.__Canon]:Invoke(System.__Canon):System.__Canon:this\n        mov      rbx, rax\n-       jmp      SHORT G_M35902_IG20\n\u002B       jmp      SHORT G_M35902_IG18\n \t\t\t\t\t\t;; size=21 bbWeight=0 PerfScore 0.00\n-G_M35902_IG19:\n\u002BG_M35902_IG17:\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Diagnostics.CoreStrings:CircularDependency(System.Object):System.String\n        call     [rax]Microsoft.EntityFrameworkCore.Diagnostics.CoreStrings:CircularDependency(System.Object):System.String\n        mov      rbx, rax\n \t\t\t\t\t\t;; size=15 bbWeight=0 PerfScore 0.00\n-G_M35902_IG20:\n\u002BG_M35902_IG18:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -268,24 \u002B251,24 @@ G_M35902_IG20:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=45 bbWeight=0 PerfScore 0.00\n-G_M35902_IG21:\n\u002BG_M35902_IG19:\n        sub      rsp, 72\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M35902_IG22:\n\u002BG_M35902_IG20:\n        cmp      gword ptr [rbp-0xB8], 0\n-       je       SHORT G_M35902_IG23\n\u002B       je       SHORT G_M35902_IG21\n        mov      rdi, gword ptr [rbp-0xB8]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=30 bbWeight=0 PerfScore 0.00\n-G_M35902_IG23:\n\u002BG_M35902_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M35902_IG24:\n\u002BG_M35902_IG22:\n        vzeroupper \n        add      rsp, 72\n        ret      \n \t\t\t\t\t\t;; size=8 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 894, prolog size 43, PerfScore 463.00, instruction count 188, allocated bytes for code 894 (MethodHash=6a4473c1) for method Microsoft.EntityFrameworkCore.Utilities.Multigraph\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]]:ThrowCycle(System.Collections.Generic.List\u00601[System.Numerics.Vector\u00601[float]],System.Func\u00602[System.Collections.Generic.IReadOnlyList\u00601[System.Tuple\u00603[System.Numerics.Vector\u00601[float],System.Numerics.Vector\u00601[float],System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]]],System.String],System.Func\u00602[System.String,System.String]):this (FullOpts)\n\u002B; Total bytes of code 838, prolog size 43, PerfScore 447.75, instruction count 175, allocated bytes for code 838 (MethodHash=6a4473c1) for method Microsoft.EntityFrameworkCore.Utilities.Multigraph\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]]:ThrowCycle(System.Collections.Generic.List\u00601[System.Numerics.Vector\u00601[float]],System.Func\u00602[System.Collections.Generic.IReadOnlyList\u00601[System.Tuple\u00603[System.Numerics.Vector\u00601[float],System.Numerics.Vector\u00601[float],System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]]],System.String],System.Func\u00602[System.String,System.String]):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":894,"DiffBytes":838},{"Assembly":"Microsoft.EntityFrameworkCore.dasm","Method":"Microsoft.EntityFrameworkCore.Query.Internal.NavigationExpandingExpressionVisitor\u002BIncludeExpandingExpressionVisitor:ExpandIncludesHelper(System.Linq.Expressions.Expression,Microsoft.EntityFrameworkCore.Query.Internal.NavigationExpandingExpressionVisitor\u002BEntityReference,Microsoft.EntityFrameworkCore.Metadata.INavigationBase):System.Linq.Expressions.Expression:this (FullOpts)","Category":"improvement","Description":"5,184 -\u003E 5,032 bytes (-152)","ExtraInfo":null,"Diff":"@@ -9,45 \u002B9,45 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T08] ( 10, 18   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.Internal.NavigationExpandingExpressionVisitor\u002BIncludeExpandingExpressionVisitor\u003E\n-;  V01 arg1         [V01,T112] (  4,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;  V01 arg1         [V01,T108] (  4,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Linq.Expressions.Expression\u003E\n ;  V02 arg2         [V02,T28] (  8, 13   )     ref  -\u003E  r15         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.Internal.NavigationExpandingExpressionVisitor\u002BEntityReference\u003E\n ;  V03 arg3         [V03,T57] (  4,  6   )     ref  -\u003E  r14         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Metadata.INavigationBase\u003E\n-;  V04 loc0         [V04,T111] (  5,  7   )     ref  -\u003E  r12         class-hnd \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V05 loc1         [V05,T113] (  4,  7   )     ref  -\u003E  [rbp-0xB8]  class-hnd \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;  V04 loc0         [V04,T107] (  5,  7   )     ref  -\u003E  r12         class-hnd \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;  V05 loc1         [V05,T109] (  4,  7   )     ref  -\u003E  [rbp-0xB8]  class-hnd \u003CSystem.Linq.Expressions.Expression\u003E\n ;  V06 loc2         [V06    ] (  8, 21   )  struct (40) [rbp-0x50]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Collections.Generic.Dictionary\u00602\u002BEnumerator[Microsoft.EntityFrameworkCore.Metadata.INavigationBase,Microsoft.EntityFrameworkCore.Query.Internal.NavigationExpandingExpressionVisitor\u002BIncludeTreeNode]\u003E\n ;* V07 loc3         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMicrosoft.EntityFrameworkCore.Metadata.INavigationBase\u003E\n ;* V08 loc4         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CMicrosoft.EntityFrameworkCore.Query.Internal.NavigationExpandingExpressionVisitor\u002BIncludeTreeNode\u003E\n ;* V09 loc5         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.KeyValuePair\u00602[Microsoft.EntityFrameworkCore.Metadata.INavigationBase,Microsoft.EntityFrameworkCore.Query.Internal.NavigationExpandingExpressionVisitor\u002BIncludeTreeNode]\u003E\n ;* V10 loc6         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    ld-addr-op class-hnd \u003CMicrosoft.EntityFrameworkCore.Metadata.INavigationBase\u003E\n ;* V11 loc7         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    ld-addr-op class-hnd \u003CMicrosoft.EntityFrameworkCore.Query.Internal.NavigationExpandingExpressionVisitor\u002BIncludeTreeNode\u003E\n-;  V12 loc8         [V12,T66] (  4,  8   )   ubyte  -\u003E  [rbp-0x54] \n\u002B;  V12 loc8         [V12,T62] (  4,  8   )   ubyte  -\u003E  [rbp-0x54] \n ;  V13 loc9         [V13,T30] (  8, 14.50)     ref  -\u003E  [rbp-0xC0]  class-hnd \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V14 loc10        [V14,T115] (  3,  6   )     ref  -\u003E  rcx         class-hnd \u003CMicrosoft.EntityFrameworkCore.Metadata.INavigation\u003E\n-;  V15 loc11        [V15,T116] (  3,  6   )     ref  -\u003E  rax         class-hnd \u003CMicrosoft.EntityFrameworkCore.Metadata.ISkipNavigation\u003E\n\u002B;  V14 loc10        [V14,T111] (  3,  6   )     ref  -\u003E  rcx         class-hnd \u003CMicrosoft.EntityFrameworkCore.Metadata.INavigation\u003E\n\u002B;  V15 loc11        [V15,T112] (  3,  6   )     ref  -\u003E  rax         class-hnd \u003CMicrosoft.EntityFrameworkCore.Metadata.ISkipNavigation\u003E\n ;  V16 loc12        [V16,T53] (  5, 10   )     ref  -\u003E  [rbp-0xC8]  class-hnd \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V17 loc13        [V17,T139] (  2,  4   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u003CMicrosoft.EntityFrameworkCore.Query.MaterializeCollectionNavigationExpression\u003E\n\u002B;  V17 loc13        [V17,T133] (  2,  4   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u003CMicrosoft.EntityFrameworkCore.Query.MaterializeCollectionNavigationExpression\u003E\n ;  V18 loc14        [V18,T02] ( 12, 24   )     ref  -\u003E  [rbp-0xD8]  class-hnd \u003CSystem.Linq.Expressions.Expression\u003E\n ;  V19 loc15        [V19,T34] (  6, 12   )     ref  -\u003E  [rbp-0xE0]  class-hnd spill-single-def \u003CMicrosoft.EntityFrameworkCore.Metadata.INavigation\u003E\n-;  V20 loc16        [V20,T17] (  9, 18   )     ref  -\u003E  [rbp-0xE8]  class-hnd spill-single-def \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n-;  V21 loc17        [V21,T18] (  9, 18   )     ref  -\u003E  [rbp-0xF0]  class-hnd spill-single-def \u003CSystem.Linq.Expressions.LambdaExpression\u003E\n-;  V22 loc18        [V22,T117] (  3,  6   )     ref  -\u003E  [rbp-0xF8]  class-hnd spill-single-def \u003CMicrosoft.EntityFrameworkCore.Metadata.ISkipNavigation\u003E\n\u002B;  V20 loc16        [V20,T15] (  9, 18   )     ref  -\u003E  [rbp-0xE8]  class-hnd spill-single-def \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n\u002B;  V21 loc17        [V21,T16] (  9, 18   )     ref  -\u003E  [rbp-0xF0]  class-hnd spill-single-def \u003CSystem.Linq.Expressions.LambdaExpression\u003E\n\u002B;  V22 loc18        [V22,T113] (  3,  6   )     ref  -\u003E  [rbp-0xF8]  class-hnd spill-single-def \u003CMicrosoft.EntityFrameworkCore.Metadata.ISkipNavigation\u003E\n ;  V23 loc19        [V23,T09] ( 10, 20   )     ref  -\u003E  [rbp-0x100]  class-hnd spill-single-def \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n ;  V24 loc20        [V24,T31] (  7, 14   )     ref  -\u003E  [rbp-0x108]  class-hnd spill-single-def \u003CSystem.Linq.Expressions.LambdaExpression\u003E\n-;  V25 loc21        [V25,T19] (  8, 16   )     ref  -\u003E  rdi         class-hnd \u003CSystem.Reflection.MethodInfo\u003E\n\u002B;  V25 loc21        [V25,T17] (  8, 16   )     ref  -\u003E  rdi         class-hnd \u003CSystem.Reflection.MethodInfo\u003E\n ;  V26 loc22        [V26,T56] (  6,  9   )     ref  -\u003E  [rbp-0x110]  class-hnd \u003CMicrosoft.EntityFrameworkCore.Query.Internal.NavigationExpandingExpressionVisitor\u002BEntityReference\u003E\n-;  V27 loc23        [V27,T140] (  2,  4   )     ref  -\u003E  rax         class-hnd exact \u003CMicrosoft.EntityFrameworkCore.Query.Internal.NavigationExpandingExpressionVisitor\u002BNavigationExpansionExpression\u003E\n-;  V28 loc24        [V28,T118] (  3,  6   )     ref  -\u003E  rax         class-hnd exact \u003CSystem.Linq.Expressions.UnaryExpression\u003E\n\u002B;  V27 loc23        [V27,T134] (  2,  4   )     ref  -\u003E  rax         class-hnd exact \u003CMicrosoft.EntityFrameworkCore.Query.Internal.NavigationExpandingExpressionVisitor\u002BNavigationExpansionExpression\u003E\n\u002B;  V28 loc24        [V28,T114] (  3,  6   )     ref  -\u003E  rax         class-hnd exact \u003CSystem.Linq.Expressions.UnaryExpression\u003E\n ;  V29 loc25        [V29,T06] ( 11, 22   )     ref  -\u003E  [rbp-0x118]  class-hnd spill-single-def \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n ;  V30 loc26        [V30,T07] ( 11, 22   )     ref  -\u003E  [rbp-0x120]  class-hnd spill-single-def \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n-;  V31 loc27        [V31,T119] (  3,  6   )     ref  -\u003E  [rbp-0x128]  class-hnd exact spill-single-def \u003CSystem.Linq.Expressions.UnaryExpression\u003E\n\u002B;  V31 loc27        [V31,T115] (  3,  6   )     ref  -\u003E  [rbp-0x128]  class-hnd exact spill-single-def \u003CSystem.Linq.Expressions.UnaryExpression\u003E\n ;  V32 loc28        [V32,T10] ( 10, 20   )     ref  -\u003E  [rbp-0x130]  class-hnd spill-single-def \u003CSystem.Type\u003E\n-;  V33 loc29        [V33,T120] (  3,  6   )     ref  -\u003E  [rbp-0x138]  class-hnd spill-single-def \u003CSystem.Reflection.FieldInfo\u003E\n-;  V34 loc30        [V34,T121] (  3,  6   )     ref  -\u003E  [rbp-0x140]  class-hnd spill-single-def \u003CSystem.Reflection.FieldInfo\u003E\n-;  V35 loc31        [V35,T122] (  3,  6   )     ref  -\u003E  [rbp-0x148]  class-hnd exact spill-single-def \u003CSystem.Linq.Expressions.UnaryExpression\u003E\n-;  V36 loc32        [V36,T123] (  3,  6   )     ref  -\u003E  [rbp-0x150]  class-hnd spill-single-def \u003CSystem.Type[]\u003E\n\u002B;  V33 loc29        [V33,T116] (  3,  6   )     ref  -\u003E  [rbp-0x138]  class-hnd spill-single-def \u003CSystem.Reflection.FieldInfo\u003E\n\u002B;  V34 loc30        [V34,T117] (  3,  6   )     ref  -\u003E  [rbp-0x140]  class-hnd spill-single-def \u003CSystem.Reflection.FieldInfo\u003E\n\u002B;  V35 loc31        [V35,T118] (  3,  6   )     ref  -\u003E  [rbp-0x148]  class-hnd exact spill-single-def \u003CSystem.Linq.Expressions.UnaryExpression\u003E\n\u002B;  V36 loc32        [V36,T119] (  3,  6   )     ref  -\u003E  [rbp-0x150]  class-hnd spill-single-def \u003CSystem.Type[]\u003E\n ;  V37 loc33        [V37,T54] (  5, 10   )     ref  -\u003E  [rbp-0x158]  class-hnd spill-single-def \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n-;  V38 loc34        [V38,T124] (  3,  6   )     ref  -\u003E  [rbp-0x160]  class-hnd spill-single-def \u003CSystem.Linq.Expressions.MemberExpression\u003E\n-;  V39 loc35        [V39,T141] (  2,  4   )     ref  -\u003E  [rbp-0x168]  class-hnd exact spill-single-def \u003CSystem.Linq.Expressions.UnaryExpression\u003E\n\u002B;  V38 loc34        [V38,T120] (  3,  6   )     ref  -\u003E  [rbp-0x160]  class-hnd spill-single-def \u003CSystem.Linq.Expressions.MemberExpression\u003E\n\u002B;  V39 loc35        [V39,T135] (  2,  4   )     ref  -\u003E  [rbp-0x168]  class-hnd exact spill-single-def \u003CSystem.Linq.Expressions.UnaryExpression\u003E\n ;# V40 OutArgs      [V40    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V41 tmp1         [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022non-inline candidate call\u0022 \u003CMicrosoft.EntityFrameworkCore.Metadata.IEntityType\u003E\n ;  V42 tmp2         [V42,T01] (  8, 32   )     ref  -\u003E  [rbp-0x170]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.IncludeExpression\u003E\n@@ -60,47 \u002B60,47 @@\n ;* V49 tmp9         [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CSystem.Linq.Expressions.UnaryExpression\u003E\n... diff truncated; middle omitted ...\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x170], rax\n@@ -1215,12 \u002B1171,12 @@ G_M33921_IG63:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      edi, dword ptr [rbp-0x90]\n        mov      byte  ptr [r12\u002B0x28], dil\n-       jmp      SHORT G_M33921_IG69\n\u002B       jmp      SHORT G_M33921_IG63\n \t\t\t\t\t\t;; size=133 bbWeight=2 PerfScore 57.50\n-G_M33921_IG64:\n\u002BG_M33921_IG58:\n        mov      rax, r12\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M33921_IG65:\n\u002BG_M33921_IG59:\n        vzeroupper \n        add      rsp, 584\n        pop      rbx\n@@ -1231,42 \u002B1187,42 @@ G_M33921_IG65:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=21 bbWeight=1 PerfScore 5.25\n-G_M33921_IG66:\n\u002BG_M33921_IG60:\n        test     r14, r14\n-       je       SHORT G_M33921_IG67\n\u002B       je       SHORT G_M33921_IG61\n        mov      rdi, r14\n        mov      r11, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Metadata.INavigationBase:get_Inverse():Microsoft.EntityFrameworkCore.Metadata.INavigationBase:this\n        call     [r11]Microsoft.EntityFrameworkCore.Metadata.INavigationBase:get_Inverse():Microsoft.EntityFrameworkCore.Metadata.INavigationBase:this\n-       jmp      SHORT G_M33921_IG68\n\u002B       jmp      SHORT G_M33921_IG62\n \t\t\t\t\t\t;; size=23 bbWeight=2 PerfScore 13.50\n-G_M33921_IG67:\n\u002BG_M33921_IG61:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=2 PerfScore 0.50\n-G_M33921_IG68:\n\u002BG_M33921_IG62:\n        mov      rcx, gword ptr [rbp-0x240]\n        cmp      rax, rcx\n-       jne      G_M33921_IG72\n\u002B       jne      G_M33921_IG66\n        mov      gword ptr [rbp-0x240], rcx\n        mov      rdi, gword ptr [rbp-0x240]\n        mov      r11, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Metadata.IReadOnlyNavigationBase:get_IsEagerLoaded():bool:this\n        call     [r11]Microsoft.EntityFrameworkCore.Metadata.IReadOnlyNavigationBase:get_IsEagerLoaded():bool:this\n        test     eax, eax\n-       jne      SHORT G_M33921_IG69\n\u002B       jne      SHORT G_M33921_IG63\n        mov      rcx, gword ptr [rbp-0x240]\n        mov      rdi, gword ptr [rbx\u002B0x28]\n        mov      rsi, rcx\n        mov      rcx, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Diagnostics.CoreLoggerExtensions:NavigationBaseIncludeIgnored(Microsoft.EntityFrameworkCore.Diagnostics.IDiagnosticsLogger\u00601[Microsoft.EntityFrameworkCore.DbLoggerCategory\u002BQuery],Microsoft.EntityFrameworkCore.Metadata.INavigationBase)\n        call     [rcx]Microsoft.EntityFrameworkCore.Diagnostics.CoreLoggerExtensions:NavigationBaseIncludeIgnored(Microsoft.EntityFrameworkCore.Diagnostics.IDiagnosticsLogger\u00601[Microsoft.EntityFrameworkCore.DbLoggerCategory\u002BQuery],Microsoft.EntityFrameworkCore.Metadata.INavigationBase)\n \t\t\t\t\t\t;; size=73 bbWeight=2 PerfScore 30.50\n-G_M33921_IG69:\n\u002BG_M33921_IG63:\n        lea      rdi, [rbp-0x50]\n        mov      rsi, 0xD1FFAB1E      ; System.Collections.Generic.Dictionary\u00602\u002BEnumerator[Microsoft.EntityFrameworkCore.Metadata.INavigationBase,Microsoft.EntityFrameworkCore.Query.Internal.NavigationExpandingExpressionVisitor\u002BIncludeTreeNode]\n        mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary\u00602\u002BEnumerator[System.__Canon,System.__Canon]:MoveNext():bool:this\n        call     [rcx]System.Collections.Generic.Dictionary\u00602\u002BEnumerator[System.__Canon,System.__Canon]:MoveNext():bool:this\n        test     eax, eax\n-       je       G_M33921_IG64\n\u002B       je       G_M33921_IG58\n \t\t\t\t\t\t;; size=34 bbWeight=8 PerfScore 42.00\n-G_M33921_IG70:\n\u002BG_M33921_IG64:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      rcx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbp-0x248], rcx\n@@ -1275,12 \u002B1231,12 @@ G_M33921_IG70:\n        mov      r11, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Metadata.IReadOnlyPropertyBase:get_IsCollection():bool:this\n        call     [r11]Microsoft.EntityFrameworkCore.Metadata.IReadOnlyPropertyBase:get_IsCollection():bool:this\n        test     eax, eax\n-       je       G_M33921_IG66\n\u002B       je       G_M33921_IG60\n \t\t\t\t\t\t;; size=46 bbWeight=4 PerfScore 35.00\n-G_M33921_IG71:\n\u002BG_M33921_IG65:\n        mov      rcx, gword ptr [rbp-0x240]\n \t\t\t\t\t\t;; size=7 bbWeight=2 PerfScore 2.00\n-G_M33921_IG72:\n\u002BG_M33921_IG66:\n        xor      eax, eax\n        mov      dword ptr [rbp-0x54], eax\n        mov      rdx, gword ptr [r15\u002B0x08]\n@@ -1290,7 \u002B1246,7 @@ G_M33921_IG72:\n        mov      r11, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Metadata.INavigationBase:get_DeclaringEntityType():Microsoft.EntityFrameworkCore.Metadata.IEntityType:this\n        call     [r11]Microsoft.EntityFrameworkCore.Metadata.INavigationBase:get_DeclaringEntityType():Microsoft.EntityFrameworkCore.Metadata.IEntityType:this\n        cmp      gword ptr [rbp-0x270], rax\n-       je       G_M33921_IG73\n\u002B       je       G_M33921_IG67\n        mov      rax, gword ptr [r15\u002B0x08]\n        mov      gword ptr [rbp-0x250], rax\n        mov      rdi, gword ptr [rbp-0x240]\n@@ -1301,7 \u002B1257,7 @@ G_M33921_IG72:\n        mov      r11, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Metadata.IReadOnlyEntityType:IsAssignableFrom(Microsoft.EntityFrameworkCore.Metadata.IReadOnlyEntityType):bool:this\n        call     [r11]Microsoft.EntityFrameworkCore.Metadata.IReadOnlyEntityType:IsAssignableFrom(Microsoft.EntityFrameworkCore.Metadata.IReadOnlyEntityType):bool:this\n        test     eax, eax\n-       je       SHORT G_M33921_IG73\n\u002B       je       SHORT G_M33921_IG67\n        mov      dword ptr [rbp-0x54], 1\n        mov      rdi, gword ptr [rbp-0x240]\n        mov      r11, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Metadata.INavigationBase:get_DeclaringEntityType():Microsoft.EntityFrameworkCore.Metadata.IEntityType:this\n@@ -1316,7 \u002B1272,7 @@ G_M33921_IG72:\n        call     [rax]System.Linq.Expressions.Expression:Convert(System.Linq.Expressions.Expression,System.Type,System.Reflection.MethodInfo):System.Linq.Expressions.UnaryExpression\n        mov      gword ptr [rbp-0xB8], rax\n \t\t\t\t\t\t;; size=180 bbWeight=2 PerfScore 75.00\n-G_M33921_IG73:\n\u002BG_M33921_IG67:\n        mov      rsi, gword ptr [rbp-0x240]\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.EntityFrameworkCore.Metadata.INavigation\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFINTERFACE\n@@ -1333,7 \u002B1289,7 @@ G_M33921_IG73:\n        call     [r9]Microsoft.EntityFrameworkCore.Query.Internal.NavigationExpandingExpressionVisitor\u002BExpandingExpressionVisitor:ExpandNavigation(System.Linq.Expressions.Expression,Microsoft.EntityFrameworkCore.Query.Internal.NavigationExpandingExpressionVisitor\u002BEntityReference,Microsoft.EntityFrameworkCore.Metadata.INavigation,bool):System.Linq.Expressions.Expression:this\n        jmp      G_M33921_IG06\n \t\t\t\t\t\t;; size=83 bbWeight=2 PerfScore 29.50\n-G_M33921_IG74:\n\u002BG_M33921_IG68:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n@@ -1351,24 \u002B1307,24 @@ G_M33921_IG74:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=79 bbWeight=0 PerfScore 0.00\n-G_M33921_IG75:\n\u002BG_M33921_IG69:\n        mov      rsi, gword ptr [rbp-0x240]\n        mov      rdi, 0xD1FFAB1E      ; System.ThrowHelper:ThrowKeyNotFoundException[Microsoft.EntityFrameworkCore.Metadata.INavigationBase](Microsoft.EntityFrameworkCore.Metadata.INavigationBase)\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowKeyNotFoundException[System.__Canon](System.__Canon)\n        call     [rax]System.ThrowHelper:ThrowKeyNotFoundException[System.__Canon](System.__Canon)\n        int3     \n \t\t\t\t\t\t;; size=30 bbWeight=0 PerfScore 0.00\n-G_M33921_IG76:\n\u002BG_M33921_IG70:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M33921_IG77:\n\u002BG_M33921_IG71:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 5184, prolog size 68, PerfScore 2190.71, instruction count 1002, allocated bytes for code 5184 (MethodHash=19bf7b7e) for method Microsoft.EntityFrameworkCore.Query.Internal.NavigationExpandingExpressionVisitor\u002BIncludeExpandingExpressionVisitor:ExpandIncludesHelper(System.Linq.Expressions.Expression,Microsoft.EntityFrameworkCore.Query.Internal.NavigationExpandingExpressionVisitor\u002BEntityReference,Microsoft.EntityFrameworkCore.Metadata.INavigationBase):System.Linq.Expressions.Expression:this (FullOpts)\n\u002B; Total bytes of code 5032, prolog size 68, PerfScore 2115.71, instruction count 970, allocated bytes for code 5032 (MethodHash=19bf7b7e) for method Microsoft.EntityFrameworkCore.Query.Internal.NavigationExpandingExpressionVisitor\u002BIncludeExpandingExpressionVisitor:ExpandIncludesHelper(System.Linq.Expressions.Expression,Microsoft.EntityFrameworkCore.Query.Internal.NavigationExpandingExpressionVisitor\u002BEntityReference,Microsoft.EntityFrameworkCore.Metadata.INavigationBase):System.Linq.Expressions.Expression:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":5184,"DiffBytes":5032},{"Assembly":"Microsoft.Identity.Client.dasm","Method":"Microsoft.Identity.Client.TokenCache:LogCacheContents(Microsoft.Identity.Client.Internal.Requests.AuthenticationRequestParameters):this (FullOpts)","Category":"improvement","Description":"2,761 -\u003E 2,519 bytes (-242)","ExtraInfo":null,"Diff":"@@ -11,8 \u002B11,8 @@\n ;  V00 this         [V00,T43] (  4,  3   )     ref  -\u003E  r15         this class-hnd single-def \u003CMicrosoft.Identity.Client.TokenCache\u003E\n ;  V01 arg1         [V01,T13] (  6, 11.50)     ref  -\u003E  rbx         class-hnd single-def \u003CMicrosoft.Identity.Client.Internal.Requests.AuthenticationRequestParameters\u003E\n ;  V02 loc0         [V02,T26] (  9, 11.50)     ref  -\u003E  r14         class-hnd exact single-def \u003CMicrosoft.Identity.Client.TokenCache\u002B\u003C\u003Ec__DisplayClass37_0\u003E\n-;  V03 loc1         [V03,T51] (  6,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[Microsoft.Identity.Client.Cache.Items.MsalAccessTokenCacheItem]\u003E\n-;  V04 loc2         [V04,T52] (  6,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem]\u003E\n\u002B;  V03 loc1         [V03,T53] (  5,  2.50)     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[Microsoft.Identity.Client.Cache.Items.MsalAccessTokenCacheItem]\u003E\n\u002B;  V04 loc2         [V04,T54] (  5,  2.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem]\u003E\n ;  V05 loc3         [V05,T55] (  4,  2   )     ref  -\u003E  r12         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[Microsoft.Identity.Client.Cache.Items.MsalAccessTokenCacheItem]\u003E\n ;  V06 loc4         [V06,T56] (  4,  2   )     ref  -\u003E  [rbp-0x58]  class-hnd spill-single-def \u003CSystem.Collections.Generic.List\u00601[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem]\u003E\n ;  V07 loc5         [V07,T00] ( 36, 52   )     ref  -\u003E  [rbp-0x60]  class-hnd \u003CSystem.Text.StringBuilder\u003E\n@@ -27,60 \u002B27,60 @@\n ;* V16 tmp3         [V16    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Text.StringBuilder\u002BAppendInterpolatedStringHandler\u003E\n ;* V17 tmp4         [V17    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Text.StringBuilder\u002BAppendInterpolatedStringHandler\u003E\n ;  V18 tmp5         [V18,T47] (  4,  4   )     ref  -\u003E  r15         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00601[System.String]\u003E\n-;  V19 tmp6         [V19,T61] (  2,  2   )     ref  -\u003E  rbx         class-hnd \u0022impAppendStmt\u0022 \u003CMicrosoft.Identity.Client.Core.ILoggerAdapter\u003E\n\u002B;  V19 tmp6         [V19,T57] (  2,  2   )     ref  -\u003E  rbx         class-hnd \u0022impAppendStmt\u0022 \u003CMicrosoft.Identity.Client.Core.ILoggerAdapter\u003E\n ;* V20 tmp7         [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMicrosoft.Identity.Client.Internal.RequestContext\u003E\n-;  V21 tmp8         [V21,T77] (  3,  1.50)     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.Identity.Client.Cache.Items.MsalAccessTokenCacheItem]\u003E\n-;* V22 tmp9         [V22,T118] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V23 tmp10        [V23,T78] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.Identity.Client.Cache.Items.MsalAccessTokenCacheItem[]\u003E\n-;  V24 tmp11        [V24,T79] (  3,  1.50)     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.Identity.Client.Cache.Items.MsalAccessTokenCacheItem]\u003E\n-;  V25 tmp12        [V25,T57] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Microsoft.Identity.Client.Cache.Items.MsalAccessTokenCacheItem]\u003E\n-;  V26 tmp13        [V26,T114] (  2,  1   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.Identity.Client.Cache.Items.MsalAccessTokenCacheItem]\u003E\n-;  V27 tmp14        [V27,T58] (  4,  2   )     ref  -\u003E  rax        \n\u002B;  V21 tmp8         [V21,T73] (  3,  1.50)     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.Identity.Client.Cache.Items.MsalAccessTokenCacheItem]\u003E\n\u002B;* V22 tmp9         [V22,T110] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V23 tmp10        [V23,T74] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.Identity.Client.Cache.Items.MsalAccessTokenCacheItem[]\u003E\n\u002B;* V24 tmp11        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.Identity.Client.Cache.Items.MsalAccessTokenCacheItem]\u003E\n\u002B;* V25 tmp12        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Microsoft.Identity.Client.Cache.Items.MsalAccessTokenCacheItem]\u003E\n\u002B;* V26 tmp13        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.Identity.Client.Cache.Items.MsalAccessTokenCacheItem]\u003E\n\u002B;* V27 tmp14        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V28 tmp15        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.Identity.Client.Cache.Items.MsalAccessTokenCacheItem]\u003E\n ;  V29 tmp16        [V29,T34] (  5,  5   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Enumerable\u002BIListSkipTakeIterator\u00601[Microsoft.Identity.Client.Cache.Items.MsalAccessTokenCacheItem]\u003E\n ;* V30 tmp17        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Enumerable\u002BIEnumerableSkipTakeIterator\u00601[Microsoft.Identity.Client.Cache.Items.MsalAccessTokenCacheItem]\u003E\n-;  V31 tmp18        [V31,T80] (  3,  1.50)     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem]\u003E\n-;* V32 tmp19        [V32,T119] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V33 tmp20        [V33,T81] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem[]\u003E\n-;  V34 tmp21        [V34,T82] (  3,  1.50)     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem]\u003E\n-;  V35 tmp22        [V35,T59] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem]\u003E\n-;  V36 tmp23        [V36,T115] (  2,  1   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem]\u003E\n-;  V37 tmp24        [V37,T60] (  4,  2   )     ref  -\u003E  rax        \n\u002B;  V31 tmp18        [V31,T75] (  3,  1.50)     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem]\u003E\n\u002B;* V32 tmp19        [V32,T111] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V33 tmp20        [V33,T76] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem[]\u003E\n\u002B;* V34 tmp21        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem]\u003E\n\u002B;* V35 tmp22        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem]\u003E\n\u002B;* V36 tmp23        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem]\u003E\n\u002B;* V37 tmp24        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V38 tmp25        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem]\u003E\n ;  V39 tmp26        [V39,T35] (  5,  5   )     ref  -\u003E  [rbp-0x70]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Enumerable\u002BIListSkipTakeIterator\u00601[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem]\u003E\n ;* V40 tmp27        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Enumerable\u002BIEnumerableSkipTakeIterator\u00601[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem]\u003E\n ;* V41 tmp28        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cchar[]\u003E\n ;  V42 tmp29        [V42,T36] (  5,  5   )     ref  -\u003E  rdi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Text.StringBuilder\u003E\n-;  V43 tmp30        [V43,T83] (  3,  1.50)     ref  -\u003E  rcx         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003Cchar[]\u003E\n... diff truncated; middle omitted ...\n        mov      edx, 1\n        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this\n        call     [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this\n-       jmp      SHORT G_M20982_IG51\n\u002B       jmp      SHORT G_M20982_IG43\n \t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.25\n-G_M20982_IG50:\n\u002BG_M20982_IG42:\n        movsxd   rdi, ecx\n        mov      word  ptr [rax\u002B2*rdi\u002B0x10], 10\n        mov      dword ptr [r12\u002B0x18], r8d\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 1.12\n-G_M20982_IG51:\n\u002BG_M20982_IG43:\n        mov      r12d, dword ptr [r15\u002B0x14]\n        xor      edi, edi\n-       jmp      G_M20982_IG62\n\u002B       jmp      G_M20982_IG54\n \t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 2.12\n-G_M20982_IG52:\n\u002BG_M20982_IG44:\n        mov      rsi, gword ptr [r15\u002B0x08]\n        cmp      edi, dword ptr [rsi\u002B0x08]\n-       jae      G_M20982_IG72\n\u002B       jae      G_M20982_IG62\n        mov      rax, gword ptr [rsi\u002B8*rdi\u002B0x10]\n        mov      gword ptr [rbp-0x80], rax\n        inc      edi\n@@ -774,15 \u002B718,15 @@ G_M20982_IG52:\n        mov      r10d, dword ptr [rdi\u002B0x18]\n        lea      edx, [r10\u002B0x0E]\n        cmp      dword ptr [r9\u002B0x08], edx\n-       jae      SHORT G_M20982_IG54\n\u002B       jae      SHORT G_M20982_IG46\n \t\t\t\t\t\t;; size=85 bbWeight=4 PerfScore 98.00\n-G_M20982_IG53:\n\u002BG_M20982_IG45:\n        mov      edx, 14\n        mov      r9, 0xD1FFAB1E      ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this\n        call     [r9]System.Text.StringBuilder:AppendWithExpansion(byref,int):this\n-       jmp      SHORT G_M20982_IG55\n\u002B       jmp      SHORT G_M20982_IG47\n \t\t\t\t\t\t;; size=20 bbWeight=2 PerfScore 11.00\n-G_M20982_IG54:\n\u002BG_M20982_IG46:\n        movsxd   r11, r10d\n        lea      r11, bword ptr [r9\u002B2*r11\u002B0x10]\n        vmovups  xmm0, xmmword ptr [reloc @RWD336]\n@@ -793,7 \u002B737,7 @@ G_M20982_IG54:\n        add      r10d, 14\n        mov      dword ptr [rdi\u002B0x18], r10d\n \t\t\t\t\t\t;; size=51 bbWeight=2 PerfScore 13.50\n-G_M20982_IG55:\n\u002BG_M20982_IG47:\n        mov      rdi, gword ptr [rbx\u002B0x28]\n        mov      rdi, gword ptr [rdi\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for Microsoft.Identity.Client.Core.ILoggerAdapter:get_PiiLoggingEnabled():bool:this\n@@ -805,58 \u002B749,58 @@ G_M20982_IG55:\n        call     [rax]Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem:ToLogString(bool):System.String:this\n        mov      rsi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       SHORT G_M20982_IG57\n\u002B       je       SHORT G_M20982_IG49\n \t\t\t\t\t\t;; size=50 bbWeight=4 PerfScore 64.00\n-G_M20982_IG56:\n\u002BG_M20982_IG48:\n        lea      rdi, [rbp-0x40]\n        mov      rdx, rsi\n        mov      rsi, 0xD1FFAB1E      ; System.Text.StringBuilder\u002BAppendInterpolatedStringHandler:AppendFormatted[System.String](System.String):this\n        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder\u002BAppendInterpolatedStringHandler:AppendFormatted[System.__Canon](System.__Canon):this\n        call     [rax]System.Text.StringBuilder\u002BAppendInterpolatedStringHandler:AppendFormatted[System.__Canon](System.__Canon):this\n-       jmp      SHORT G_M20982_IG58\n\u002B       jmp      SHORT G_M20982_IG50\n \t\t\t\t\t\t;; size=31 bbWeight=2 PerfScore 12.50\n-G_M20982_IG57:\n\u002BG_M20982_IG49:\n        mov      rdi, gword ptr [rbp-0x40]\n        cmp      byte  ptr [rdi], dil\n        test     rsi, rsi\n-       je       SHORT G_M20982_IG58\n\u002B       je       SHORT G_M20982_IG50\n        mov      edx, dword ptr [rsi\u002B0x08]\n        add      rsi, 12\n        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:Append(byref,int):this\n        call     [rax]System.Text.StringBuilder:Append(byref,int):this\n \t\t\t\t\t\t;; size=31 bbWeight=2 PerfScore 19.50\n-G_M20982_IG58:\n\u002BG_M20982_IG50:\n        mov      rsi, r13\n        mov      rax, gword ptr [rbp-0x60]\n        mov      rcx, gword ptr [rax\u002B0x08]\n        mov      r8d, dword ptr [rax\u002B0x18]\n        lea      edi, [r8\u002B0x01]\n        cmp      dword ptr [rcx\u002B0x08], edi\n-       jae      SHORT G_M20982_IG60\n\u002B       jae      SHORT G_M20982_IG52\n \t\t\t\t\t\t;; size=24 bbWeight=4 PerfScore 35.00\n-G_M20982_IG59:\n\u002BG_M20982_IG51:\n        mov      rdi, rax\n        mov      edx, 1\n        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this\n        call     [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this\n-       jmp      SHORT G_M20982_IG61\n\u002B       jmp      SHORT G_M20982_IG53\n \t\t\t\t\t\t;; size=22 bbWeight=2 PerfScore 11.50\n-G_M20982_IG60:\n\u002BG_M20982_IG52:\n        movsxd   rdi, r8d\n        mov      word  ptr [rcx\u002B2*rdi\u002B0x10], 10\n        inc      r8d\n        mov      dword ptr [rax\u002B0x18], r8d\n \t\t\t\t\t\t;; size=17 bbWeight=2 PerfScore 5.00\n-G_M20982_IG61:\n\u002BG_M20982_IG53:\n        cmp      r12d, dword ptr [r15\u002B0x14]\n        mov      rdi, qword ptr [rbp-0x50]\n-       jne      G_M20982_IG71\n\u002B       jne      G_M20982_IG61\n \t\t\t\t\t\t;; size=14 bbWeight=4 PerfScore 16.00\n-G_M20982_IG62:\n\u002BG_M20982_IG54:\n        cmp      edi, dword ptr [r15\u002B0x10]\n-       jb       G_M20982_IG52\n\u002B       jb       G_M20982_IG44\n \t\t\t\t\t\t;; size=10 bbWeight=4 PerfScore 12.00\n-G_M20982_IG63:\n\u002BG_M20982_IG55:\n        mov      rbx, gword ptr [rbx\u002B0x28]\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00601[System.String]\n        call     CORINFO_HELP_NEWSFAST\n@@ -872,10 \u002B816,10 @@ G_M20982_IG63:\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.Identity.Client.Core.MsalLoggerExtensions:Verbose(Microsoft.Identity.Client.Core.ILoggerAdapter,System.Func\u00601[System.String])\n        call     [rax]Microsoft.Identity.Client.Core.MsalLoggerExtensions:Verbose(Microsoft.Identity.Client.Core.ILoggerAdapter,System.Func\u00601[System.String])\n \t\t\t\t\t\t;; size=70 bbWeight=0.50 PerfScore 6.12\n-G_M20982_IG64:\n\u002BG_M20982_IG56:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M20982_IG65:\n\u002BG_M20982_IG57:\n        vzeroupper \n        add      rsp, 104\n        pop      rbx\n@@ -886,42 \u002B830,30 @@ G_M20982_IG65:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 5.25\n-G_M20982_IG66:\n\u002BG_M20982_IG58:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M20982_IG67:\n\u002BG_M20982_IG59:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[Microsoft.Identity.Client.Cache.Items.MsalAccessTokenCacheItem]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n\u002B       jmp      G_M20982_IG06\n\u002B\t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n\u002BG_M20982_IG60:\n\u002B       mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem]\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n\u002B       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M20982_IG10\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M20982_IG68:\n-       mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[Microsoft.Identity.Client.Cache.Items.MsalAccessTokenCacheItem]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M20982_IG05\n-\t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M20982_IG69:\n-       mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M20982_IG18\n-\t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M20982_IG70:\n-       mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M20982_IG13\n-\t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M20982_IG71:\n\u002BG_M20982_IG61:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M20982_IG72:\n\u002BG_M20982_IG62:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n@@ -937,5 \u002B869,5 @@ RWD320 \tdq\t0065006800630061h, 00790065006B0020h\n RWD336 \tdq\t0043002000540052h, 0065006800630061h\n \n \n-; Total bytes of code 2761, prolog size 38, PerfScore 822.33, instruction count 596, allocated bytes for code 2761 (MethodHash=1dd2ae09) for method Microsoft.Identity.Client.TokenCache:LogCacheContents(Microsoft.Identity.Client.Internal.Requests.AuthenticationRequestParameters):this (FullOpts)\n\u002B; Total bytes of code 2519, prolog size 38, PerfScore 800.83, instruction count 548, allocated bytes for code 2519 (MethodHash=1dd2ae09) for method Microsoft.Identity.Client.TokenCache:LogCacheContents(Microsoft.Identity.Client.Internal.Requests.AuthenticationRequestParameters):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":2761,"DiffBytes":2519},{"Assembly":"Microsoft.NET.StringTools.dasm","Method":"Microsoft.NET.StringTools.SpanBasedStringBuilder:Dispose():this (FullOpts)","Category":"same-size","Description":"132 -\u003E 132 bytes (0)","ExtraInfo":null,"Diff":"@@ -1,76 \u002B1,76 @@\n ; Assembly listing for method Microsoft.NET.StringTools.SpanBasedStringBuilder:Dispose():this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 3 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T01] (  5,  5   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMicrosoft.NET.StringTools.SpanBasedStringBuilder\u003E\n ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V02 tmp1         [V02,T00] (  6, 11   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.ReadOnlyMemory\u00601[char]]\u003E\n ;  V03 tmp2         [V03,T05] (  3,  2.50)     int  -\u003E  rdx         \u0022Inline stloc first use temp\u0022\n ;  V04 rat0         [V04,T04] (  3,  4   )   byref  -\u003E  rax         \u0022TLS field access\u0022\n ;  V05 rat1         [V05,T03] (  3,  6   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;  V06 rat2         [V06,T02] (  3,  6   )   byref  -\u003E  rax         \u0022ThreadStaticBlockBase access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M22968_IG01:\n        push     rbp\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x10]\n        mov      rbx, rdi\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.75\n G_M22968_IG02:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        inc      dword ptr [rdi\u002B0x14]\n        mov      edx, dword ptr [rdi\u002B0x10]\n        xor      esi, esi\n        mov      dword ptr [rdi\u002B0x10], esi\n        test     edx, edx\n        jle      SHORT G_M22968_IG04\n \t\t\t\t\t\t;; size=19 bbWeight=1 PerfScore 9.50\n G_M22968_IG03:\n        mov      rdi, gword ptr [rdi\u002B0x08]\n        xor      esi, esi\n        mov      rax, 0xD1FFAB1E      ; code for System.Array:Clear(System.Array,int,int)\n        call     [rax]System.Array:Clear(System.Array,int,int)\n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.75\n G_M22968_IG04:\n        xor      edi, edi\n        mov      dword ptr [rbx\u002B0x10], edi\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       cmp      dword ptr [rax], 11\n\u002B       cmp      dword ptr [rax], 10\n        jle      SHORT G_M22968_IG07\n        mov      rdi, gword ptr [rax\u002B0x08]\n-       mov      rax, bword ptr [rdi\u002B0x58]\n\u002B       mov      rax, bword ptr [rdi\u002B0x50]\n        test     rax, rax\n        je       SHORT G_M22968_IG07\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 13.00\n G_M22968_IG05:\n        lea      rdi, bword ptr [rax\u002B0x10]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        nop      \n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 2.00\n G_M22968_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.25\n G_M22968_IG07:\n-       mov      edi, 11\n\u002B       mov      edi, 10\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED\n        call     [rax]CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED\n        jmp      SHORT G_M22968_IG05\n \t\t\t\t\t\t;; size=19 bbWeight=0 PerfScore 0.00\n \n ; Total bytes of code 132, prolog size 8, PerfScore 33.25, instruction count 39, allocated bytes for code 132 (MethodHash=2773a647) for method Microsoft.NET.StringTools.SpanBasedStringBuilder:Dispose():this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":132,"DiffBytes":132},{"Assembly":"Microsoft.OData.Edm.dasm","Method":"Microsoft.OData.Edm.Validation.ValidationRules\u002B\u003C\u003Ec:\u003C.cctor\u003Eb__108_76(Microsoft.OData.Edm.Validation.ValidationContext,Microsoft.OData.Edm.IEdmOperation):this (FullOpts)","Category":"improvement","Description":"1,404 -\u003E 1,349 bytes (-55)","ExtraInfo":null,"Diff":"@@ -17,57 \u002B17,57 @@\n ;  V06 loc3         [V06    ] (  1,  1   )     ref  -\u003E  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.OData.Edm.Validation.EdmError]\u003E\n ;  V07 loc4         [V07,T09] (  7,  3.50)     ref  -\u003E  r14         class-hnd \u003CMicrosoft.OData.Edm.IEdmEntityType\u003E\n ;  V08 loc5         [V08,T10] (  6,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMicrosoft.OData.Edm.IEdmCollectionType\u003E\n-;  V09 loc6         [V09,T44] (  3,  1.50)   ubyte  -\u003E  rax        \n-;  V10 loc7         [V10,T15] (  3,  1.50)     ref  -\u003E  rdi         class-hnd \u003CMicrosoft.OData.Edm.IEdmNavigationProperty\u003E\n\u002B;  V09 loc6         [V09,T42] (  3,  1.50)   ubyte  -\u003E  rax        \n\u002B;  V10 loc7         [V10,T14] (  3,  1.50)     ref  -\u003E  rdi         class-hnd \u003CMicrosoft.OData.Edm.IEdmNavigationProperty\u003E\n ;* V11 loc8         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.KeyValuePair\u00602[Microsoft.OData.Edm.IEdmNavigationProperty,Microsoft.OData.Edm.IEdmPathExpression]\u003E\n ;# V12 OutArgs      [V12    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V13 tmp1         [V13,T20] (  2,  2   )     ref  -\u003E  r12         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.OData.Edm.EdmLocation\u003E\n\u002B;  V13 tmp1         [V13,T18] (  2,  2   )     ref  -\u003E  r12         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.OData.Edm.EdmLocation\u003E\n ;  V14 tmp2         [V14,T11] (  3,  3   )     ref  -\u003E  [rbp-0x58]  class-hnd exact spill-single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n-;  V15 tmp3         [V15,T21] (  2,  2   )     ref  -\u003E  [rbp-0x60]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V16 tmp4         [V16,T22] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n-;  V17 tmp5         [V17,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.OData.Edm.EdmLocation\u003E\n\u002B;  V15 tmp3         [V15,T19] (  2,  2   )     ref  -\u003E  [rbp-0x60]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V16 tmp4         [V16,T20] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n\u002B;  V17 tmp5         [V17,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.OData.Edm.EdmLocation\u003E\n ;  V18 tmp6         [V18,T08] (  5,  5   )     ref  -\u003E  [rbp-0x68]  class-hnd exact spill-single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n-;  V19 tmp7         [V19,T24] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V20 tmp8         [V20,T25] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n-;  V21 tmp9         [V21,T26] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n-;  V22 tmp10        [V22,T27] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n-;  V23 tmp11        [V23,T28] (  2,  2   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.OData.Edm.EdmLocation\u003E\n\u002B;  V19 tmp7         [V19,T22] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V20 tmp8         [V20,T23] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n\u002B;  V21 tmp9         [V21,T24] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n\u002B;  V22 tmp10        [V22,T25] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n\u002B;  V23 tmp11        [V23,T26] (  2,  2   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.OData.Edm.EdmLocation\u003E\n ;  V24 tmp12        [V24,T12] (  3,  3   )     ref  -\u003E  [rbp-0x70]  class-hnd exact spill-single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n-;  V25 tmp13        [V25,T29] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V26 tmp14        [V26,T30] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n-;  V27 tmp15        [V27,T31] (  2,  2   )     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V25 tmp13        [V25,T27] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V26 tmp14        [V26,T28] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n\u002B;  V27 tmp15        [V27,T29] (  2,  2   )     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V28 tmp16        [V28,T02] (  7,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.OData.Edm.Validation.EdmError\u003E\n ;  V29 tmp17        [V29,T03] (  7,  7   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.OData.Edm.Validation.EdmError]\u003E\n-;  V30 tmp18        [V30,T40] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.OData.Edm.Validation.EdmError[]\u003E\n-;  V31 tmp19        [V31,T17] (  4,  2   )     int  -\u003E  rcx         single-def \u0022Inline stloc first use temp\u0022\n-;  V32 tmp20        [V32,T13] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[Microsoft.OData.Edm.IEdmNavigationProperty,Microsoft.OData.Edm.IEdmPathExpression]\u003E\n-;  V33 tmp21        [V33    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x50]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;* V34 tmp22        [V34    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.KeyValuePair\u00602[Microsoft.OData.Edm.IEdmNavigationProperty,Microsoft.OData.Edm.IEdmPathExpression]\u003E\n-;  V35 tmp23        [V35,T16] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Collections.Generic.KeyValuePair\u00602[Microsoft.OData.Edm.IEdmNavigationProperty,Microsoft.OData.Edm.IEdmPathExpression]]\u003E\n\u002B;  V30 tmp18        [V30,T39] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.OData.Edm.Validation.EdmError[]\u003E\n\u002B;  V31 tmp19        [V31,T15] (  4,  2   )     int  -\u003E  rcx         single-def \u0022Inline stloc first use temp\u0022\n\u002B;  V32 tmp20        [V32,T30] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[Microsoft.OData.Edm.IEdmNavigationProperty,Microsoft.OData.Edm.IEdmPathExpression]\u003E\n\u002B;  V33 tmp21        [V33    ] (  1,  0.50)   ubyte  -\u003E  [rbp-0x50]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;* V34 tmp22        [V34    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.KeyValuePair\u00602[Microsoft.OData.Edm.IEdmNavigationProperty,Microsoft.OData.Edm.IEdmPathExpression]\u003E\n\u002B;* V35 tmp23        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Collections.Generic.KeyValuePair\u00602[Microsoft.OData.Edm.IEdmNavigationProperty,Microsoft.OData.Edm.IEdmPathExpression]]\u003E\n ;* V36 tmp24        [V36    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CSystem.Collections.Generic.KeyValuePair\u00602[Microsoft.OData.Edm.IEdmNavigationProperty,Microsoft.OData.Edm.IEdmPathExpression]\u003E\n-;  V37 tmp25        [V37,T32] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V37 tmp25        [V37,T31] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V38 tmp26        [V38,T04] (  7,  7   )     ref  -\u003E  [rbp-0x88]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.OData.Edm.Validation.EdmError\u003E\n ;  V39 tmp27        [V39,T05] (  7,  7   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.OData.Edm.Validation.EdmError]\u003E\n-;  V40 tmp28        [V40,T41] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.OData.Edm.Validation.EdmError[]\u003E\n-;  V41 tmp29        [V41,T18] (  4,  2   )     int  -\u003E  r12         single-def \u0022Inline stloc first use temp\u0022\n-;  V42 tmp30        [V42,T33] (  2,  2   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V40 tmp28        [V40,T40] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.OData.Edm.Validation.EdmError[]\u003E\n\u002B;  V41 tmp29        [V41,T16] (  4,  2   )     int  -\u003E  r12         single-def \u0022Inline stloc first use temp\u0022\n... diff truncated; middle omitted ...\n        call     [rax]Microsoft.OData.Edm.ExtensionMethods:TryGetRelativeEntitySetPath(Microsoft.OData.Edm.IEdmOperation,Microsoft.OData.Edm.IEdmModel,byref,byref,byref,byref):bool\n        test     eax, eax\n-       je       G_M21280_IG17\n\u002B       je       G_M21280_IG15\n \t\t\t\t\t\t;; size=43 bbWeight=1 PerfScore 8.75\n G_M21280_IG03:\n        mov      rdi, rbx\n        mov      r11, 0xD1FFAB1E      ; code for Microsoft.OData.Edm.IEdmOperation:get_ReturnType():Microsoft.OData.Edm.IEdmTypeReference:this\n        call     [r11]Microsoft.OData.Edm.IEdmOperation:get_ReturnType():Microsoft.OData.Edm.IEdmTypeReference:this\n        test     rax, rax\n-       je       G_M21280_IG17\n\u002B       je       G_M21280_IG15\n        mov      rdi, rbx\n        mov      r11, 0xD1FFAB1E      ; code for Microsoft.OData.Edm.IEdmOperation:get_ReturnType():Microsoft.OData.Edm.IEdmTypeReference:this\n        call     [r11]Microsoft.OData.Edm.IEdmOperation:get_ReturnType():Microsoft.OData.Edm.IEdmTypeReference:this\n@@ -232,39 \u002B232,21 @@ G_M21280_IG08:\n \t\t\t\t\t\t;; size=26 bbWeight=0.50 PerfScore 2.75\n G_M21280_IG09:\n        cmp      gword ptr [rbp-0x38], 0\n-       je       G_M21280_IG14\n-       mov      r12, gword ptr [rbp-0x38]\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Collections.Generic.KeyValuePair\u00602[Microsoft.OData.Edm.IEdmNavigationProperty,Microsoft.OData.Edm.IEdmPathExpression]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M21280_IG10\n-       lea      rsi, [rbp-0x50]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]]:TryGetLast(byref):System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]:this\n-       mov      rdi, rax\n-       jmp      SHORT G_M21280_IG11\n-\t\t\t\t\t\t;; size=67 bbWeight=0.50 PerfScore 9.00\n-G_M21280_IG10:\n\u002B       je       G_M21280_IG12\n\u002B       mov      rsi, gword ptr [rbp-0x38]\n        lea      rdx, [rbp-0x50]\n-       mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.Collections.Generic.KeyValuePair\u00602[Microsoft.OData.Edm.IEdmNavigationProperty,Microsoft.OData.Edm.IEdmPathExpression]](System.Collections.Generic.IEnumerable\u00601[System.Collections.Generic.KeyValuePair\u00602[Microsoft.OData.Edm.IEdmNavigationProperty,Microsoft.OData.Edm.IEdmPathExpression]],byref):System.Collections.Generic.KeyValuePair\u00602[Microsoft.OData.Edm.IEdmNavigationProperty,Microsoft.OData.Edm.IEdmPathExpression]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]](System.Collections.Generic.IEnumerable\u00601[System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]],byref):System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]](System.Collections.Generic.IEnumerable\u00601[System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]],byref):System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]\n        mov      rdi, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M21280_IG11:\n        test     rdi, rdi\n-       je       G_M21280_IG14\n\u002B       je       G_M21280_IG12\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.OData.Edm.ExtensionMethods:TargetMultiplicity(Microsoft.OData.Edm.IEdmNavigationProperty):int\n        call     [rax]Microsoft.OData.Edm.ExtensionMethods:TargetMultiplicity(Microsoft.OData.Edm.IEdmNavigationProperty):int\n        cmp      eax, 3\n-       je       G_M21280_IG14\n\u002B       je       G_M21280_IG12\n        test     r13, r13\n-       je       G_M21280_IG14\n\u002B       je       G_M21280_IG12\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.OData.Edm.ExtensionMethods:Location(Microsoft.OData.Edm.IEdmElement):Microsoft.OData.Edm.EdmLocation\n        call     [rax]Microsoft.OData.Edm.ExtensionMethods:Location(Microsoft.OData.Edm.IEdmElement):Microsoft.OData.Edm.EdmLocation\n@@ -295,6 \u002B277,8 @@ G_M21280_IG11:\n        mov      gword ptr [rbp-0x88], rax\n        lea      rdi, bword ptr [rax\u002B0x10]\n        mov      rsi, r13\n\u002B\t\t\t\t\t\t;; size=236 bbWeight=0.50 PerfScore 20.12\n\u002BG_M21280_IG10:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      r13, gword ptr [rbp-0x88]\n        mov      dword ptr [r13\u002B0x24], 254\n@@ -304,19 \u002B288,17 @@ G_M21280_IG11:\n        xor      edi, edi\n        mov      dword ptr [r13\u002B0x20], edi\n        mov      rdi, gword ptr [r15\u002B0x08]\n-\t\t\t\t\t\t;; size=234 bbWeight=0.50 PerfScore 20.50\n-G_M21280_IG12:\n        inc      dword ptr [rdi\u002B0x14]\n        mov      rax, gword ptr [rdi\u002B0x08]\n        mov      r12d, dword ptr [rdi\u002B0x10]\n        cmp      dword ptr [rax\u002B0x08], r12d\n-       ja       SHORT G_M21280_IG13\n\u002B       ja       SHORT G_M21280_IG11\n        mov      rsi, r13\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n-       jmp      SHORT G_M21280_IG14\n-\t\t\t\t\t\t;; size=34 bbWeight=0.50 PerfScore 7.75\n-G_M21280_IG13:\n\u002B       jmp      SHORT G_M21280_IG12\n\u002B\t\t\t\t\t\t;; size=76 bbWeight=0.50 PerfScore 11.75\n\u002BG_M21280_IG11:\n        lea      esi, [r12\u002B0x01]\n        mov      dword ptr [rdi\u002B0x10], esi\n        mov      esi, r12d\n@@ -325,17 \u002B307,17 @@ G_M21280_IG13:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST\n        call     [rax]CORINFO_HELP_ARRADDR_ST\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.75\n-G_M21280_IG14:\n\u002BG_M21280_IG12:\n        cmp      gword ptr [rbp-0x40], 0\n-       je       G_M21280_IG17\n\u002B       je       G_M21280_IG15\n        test     r14, r14\n-       je       G_M21280_IG17\n\u002B       je       G_M21280_IG15\n        mov      rdi, r14\n        mov      rsi, gword ptr [rbp-0x40]\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.OData.Edm.EdmTypeSemantics:IsOrInheritsFrom(Microsoft.OData.Edm.IEdmType,Microsoft.OData.Edm.IEdmType):bool\n        call     [rax]Microsoft.OData.Edm.EdmTypeSemantics:IsOrInheritsFrom(Microsoft.OData.Edm.IEdmType,Microsoft.OData.Edm.IEdmType):bool\n        test     eax, eax\n-       jne      G_M21280_IG17\n\u002B       jne      G_M21280_IG15\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.OData.Edm.ExtensionMethods:Location(Microsoft.OData.Edm.IEdmElement):Microsoft.OData.Edm.EdmLocation\n        call     [rax]Microsoft.OData.Edm.ExtensionMethods:Location(Microsoft.OData.Edm.IEdmElement):Microsoft.OData.Edm.EdmLocation\n@@ -369,7 \u002B351,7 @@ G_M21280_IG14:\n        mov      rdi, 0xD1FFAB1E      ; data for Microsoft.OData.Edm.SRResources:resourceCulture\n        mov      rdi, gword ptr [rdi]\n \t\t\t\t\t\t;; size=204 bbWeight=0.50 PerfScore 19.25\n-G_M21280_IG15:\n\u002BG_M21280_IG13:\n        mov      rsi, r12\n        mov      rdx, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Format(System.IFormatProvider,System.String,System.Object[]):System.String\n@@ -392,13 \u002B374,13 @@ G_M21280_IG15:\n        mov      rax, gword ptr [rdi\u002B0x08]\n        mov      ebx, dword ptr [rdi\u002B0x10]\n        cmp      dword ptr [rax\u002B0x08], ebx\n-       ja       SHORT G_M21280_IG16\n\u002B       ja       SHORT G_M21280_IG14\n        mov      rsi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n-       jmp      SHORT G_M21280_IG17\n\u002B       jmp      SHORT G_M21280_IG15\n \t\t\t\t\t\t;; size=113 bbWeight=0.50 PerfScore 14.38\n-G_M21280_IG16:\n\u002BG_M21280_IG14:\n        lea      esi, [rbx\u002B0x01]\n        mov      dword ptr [rdi\u002B0x10], esi\n        mov      esi, ebx\n@@ -407,10 \u002B389,10 @@ G_M21280_IG16:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST\n        call     [rax]CORINFO_HELP_ARRADDR_ST\n \t\t\t\t\t\t;; size=26 bbWeight=0.50 PerfScore 2.75\n-G_M21280_IG17:\n\u002BG_M21280_IG15:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M21280_IG18:\n\u002BG_M21280_IG16:\n        add      rsp, 104\n        pop      rbx\n        pop      r12\n@@ -421,5 \u002B403,5 @@ G_M21280_IG18:\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 1404, prolog size 38, PerfScore 163.33, instruction count 313, allocated bytes for code 1404 (MethodHash=e936acdf) for method Microsoft.OData.Edm.Validation.ValidationRules\u002B\u003C\u003Ec:\u003C.cctor\u003Eb__108_76(Microsoft.OData.Edm.Validation.ValidationContext,Microsoft.OData.Edm.IEdmOperation):this (FullOpts)\n\u002B; Total bytes of code 1349, prolog size 38, PerfScore 155.71, instruction count 299, allocated bytes for code 1349 (MethodHash=e936acdf) for method Microsoft.OData.Edm.Validation.ValidationRules\u002B\u003C\u003Ec:\u003C.cctor\u003Eb__108_76(Microsoft.OData.Edm.Validation.ValidationContext,Microsoft.OData.Edm.IEdmOperation):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1404,"DiffBytes":1349},{"Assembly":"Microsoft.OpenApi.dasm","Method":"Microsoft.OpenApi.BaseOpenApiReference:ResolveRelativePointer(System.String,System.String):System.String (FullOpts)","Category":"improvement","Description":"1,731 -\u003E 1,580 bytes (-151)","ExtraInfo":null,"Diff":"@@ -8,20 \u002B8,20 @@\n ; 0 inlinees with PGO data; 55 single block inlinees; 16 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T25] (  7,  5.50)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.String\u003E\n-;  V01 arg1         [V01,T27] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.String\u003E\n-;  V02 loc0         [V02,T07] ( 12, 20.50)     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[System.String]\u003E\n-;  V03 loc1         [V03,T10] (  5, 14   )     ref  -\u003E  r15         class-hnd exact single-def \u003CSystem.String[]\u003E\n\u002B;  V00 arg0         [V00,T23] (  7,  5.50)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V01 arg1         [V01,T25] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V02 loc0         [V02,T07] ( 10, 18   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[System.String]\u003E\n\u002B;  V03 loc1         [V03,T09] (  5, 14   )     ref  -\u003E  r15         class-hnd exact single-def \u003CSystem.String[]\u003E\n ;  V04 loc2         [V04,T05] (  6, 23   )     int  -\u003E  r13        \n-;  V05 loc3         [V05,T26] (  5,  7   )     ref  -\u003E  rax         class-hnd exact \u003CSystem.String[]\u003E\n\u002B;  V05 loc3         [V05,T24] (  5,  7   )     ref  -\u003E  rax         class-hnd exact \u003CSystem.String[]\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T28] (  3,  6   )     ref  -\u003E  rax         class-hnd exact single-def \u0022NewArr temp\u0022 \u003Cchar[]\u003E\n-;  V08 tmp2         [V08,T29] (  3,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V09 tmp3         [V09,T30] (  3,  6   )     ref  -\u003E  rax         class-hnd exact single-def \u0022NewArr temp\u0022 \u003Cchar[]\u003E\n-;  V10 tmp4         [V10,T31] (  3,  6   )     ref  -\u003E  r15         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V11 tmp5         [V11,T09] (  3, 16   )     ref  -\u003E  rdx         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.String]\u003E\n\u002B;  V07 tmp1         [V07,T26] (  3,  6   )     ref  -\u003E  rax         class-hnd exact single-def \u0022NewArr temp\u0022 \u003Cchar[]\u003E\n\u002B;  V08 tmp2         [V08,T27] (  3,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V09 tmp3         [V09,T28] (  3,  6   )     ref  -\u003E  rax         class-hnd exact single-def \u0022NewArr temp\u0022 \u003Cchar[]\u003E\n\u002B;  V10 tmp4         [V10,T29] (  3,  6   )     ref  -\u003E  r15         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V11 tmp5         [V11,T08] (  3, 16   )     ref  -\u003E  rdx         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.String]\u003E\n ;* V12 tmp6         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V13 tmp7         [V13,T56] (  2,  2   )     int  -\u003E  rsi         \u0022spilling unroll qmark\u0022\n\u002B;  V13 tmp7         [V13,T50] (  2,  2   )     int  -\u003E  rsi         \u0022spilling unroll qmark\u0022\n ;  V14 tmp8         [V14    ] (  2,  4   )  ushort  -\u003E  [rbp-0x30]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inlining Arg\u0022\n ;* V15 tmp9         [V15    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.ReadOnlySpan\u00601[char]\u003E\n ;* V16 tmp10        [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ReadOnlySpan\u00601[char]\u003E\n@@ -30,25 \u002B30,25 @@\n ;* V19 tmp13        [V19    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ReadOnlySpan\u00601[char]\u003E\n ;  V20 tmp14        [V20,T00] (  6, 30   )     ref  -\u003E  [rbp-0x48]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.__Canon]\u003E\n ;  V21 tmp15        [V21,T01] (  5, 28   )     int  -\u003E  [rbp-0x3C]  spill-single-def \u0022Inlining Arg\u0022\n-;* V22 tmp16        [V22,T61] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V23 tmp17        [V23,T32] (  3,  6   )     ref  -\u003E  rsi         class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.String[]\u003E\n-;  V24 tmp18        [V24,T33] (  3,  6   )     ref  -\u003E  rdx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.String]\u003E\n\u002B;* V22 tmp16        [V22,T55] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V23 tmp17        [V23,T30] (  3,  6   )     ref  -\u003E  rsi         class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.String[]\u003E\n\u002B;  V24 tmp18        [V24,T31] (  3,  6   )     ref  -\u003E  rdx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.String]\u003E\n ;  V25 tmp19        [V25,T15] (  4,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n ;  V26 tmp20        [V26,T11] (  5, 10   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.String]\u003E\n ;  V27 tmp21        [V27,T16] (  4,  8   )     ref  -\u003E  rax        \n-;  V28 tmp22        [V28,T34] (  3,  6   )     ref  -\u003E  [rbp-0x50]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Generic.IList\u00601[System.String]\u003E\n\u002B;  V28 tmp22        [V28,T32] (  3,  6   )     ref  -\u003E  [rbp-0x50]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Generic.IList\u00601[System.String]\u003E\n ;  V29 tmp23        [V29,T02] (  6, 24   )     ref  -\u003E  [rbp-0x58]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Enumerable\u002BIListSkipTakeIterator\u00601[System.String]\u003E\n ;  V30 tmp24        [V30,T03] (  6, 24   )     ref  -\u003E  [rbp-0x60]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Enumerable\u002BIEnumerableSkipTakeIterator\u00601[System.String]\u003E\n ;* V31 tmp25        [V31    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V32 tmp26        [V32    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V33 tmp27        [V33,T35] (  3,  6   )     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.String]\u003E\n-;  V34 tmp28        [V34,T08] (  4, 16   )     int  -\u003E  r12         \u0022Inlining Arg\u0022\n-;* V35 tmp29        [V35,T62] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V36 tmp30        [V36,T36] (  3,  6   )     ref  -\u003E  rsi         class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.String[]\u003E\n-;  V37 tmp31        [V37,T37] (  3,  6   )     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.String]\u003E\n-;  V38 tmp32        [V38,T17] (  4,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n-;  V39 tmp33        [V39,T39] (  2,  4   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.String]\u003E\n-;  V40 tmp34        [V40,T18] (  4,  8   )     ref  -\u003E  rax        \n\u002B;  V33 tmp27        [V33,T33] (  3,  6   )     ref  -\u003E  rdi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.String]\u003E\n\u002B;  V34 tmp28        [V34,T10] (  3, 12   )     int  -\u003E  r12         \u0022Inlining Arg\u0022\n\u002B;* V35 tmp29        [V35,T56] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V36 tmp30        [V36,T34] (  3,  6   )     ref  -\u003E  rdi         class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.String[]\u003E\n\u002B;* V37 tmp31        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.String]\u003E\n\u002B;* V38 tmp32        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n\u002B;* V39 tmp33        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.String]\u003E\n\u002B;* V40 tmp34        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V41 tmp35        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.String]\u003E\n ;  V42 tmp36        [V42,T04] (  6, 24   )     ref  -\u003E  [rbp-0x68]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Enumerable\u002BIListSkipTakeIterator\u00601[System.String]\u003E\n ;* V43 tmp37        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Enumerable\u002BIEnumerableSkipTakeIterator\u00601[System.String]\u003E\n@@ -58,62 \u002B58,62 @@\n ;* V47 tmp41        [V47    ] (  0,  0   )  struct (16) zero-ref    \u0022impAppendStmt\u0022 \u003CSystem.ReadOnlySpan\u00601[char]\u003E\n ;* V48 tmp42        [V48    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ReadOnlySpan\u00601[char]\u003E\n ;* V49 tmp43        [V49    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V50 tmp44        [V50,T63] (  3,  1.50)     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.String]\u003E\n-;* V51 tmp45        [V51,T75] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n... diff truncated; middle omitted ...\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:ToArray[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.__Canon[]\n        call     [rax]System.Linq.Enumerable:ToArray[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.__Canon[]\n@@ -388,8 \u002B365,8 @@ G_M53720_IG26:\n        je       G_M53720_IG03\n        cmp      dword ptr [rax\u002B0x08], 0\n        je       G_M53720_IG03\n-\t\t\t\t\t\t;; size=41 bbWeight=2 PerfScore 15.50\n-G_M53720_IG27:\n\u002B\t\t\t\t\t\t;; size=44 bbWeight=2 PerfScore 16.00\n\u002BG_M53720_IG24:\n        mov      rdi, 0xD1FFAB1E\n        lea      rdx, bword ptr [rax\u002B0x10]\n        mov      ecx, dword ptr [rax\u002B0x08]\n@@ -402,7 \u002B379,7 @@ G_M53720_IG27:\n        call     [rax]System.String:Concat(System.String,System.String):System.String\n        nop      \n \t\t\t\t\t\t;; size=60 bbWeight=0.50 PerfScore 5.12\n-G_M53720_IG28:\n\u002BG_M53720_IG25:\n        vzeroupper \n        add      rsp, 72\n        pop      rbx\n@@ -413,9 \u002B390,9 @@ G_M53720_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M53720_IG29:\n\u002BG_M53720_IG26:\n        cmp      dword ptr [rbx\u002B0x08], 21\n-       jl       SHORT G_M53720_IG30\n\u002B       jl       SHORT G_M53720_IG27\n        vmovups  ymm0, ymmword ptr [rbx\u002B0x0C]\n        vmovups  ymm1, ymmword ptr [reloc @RWD00]\n        vpternlogq ymm0, ymm1, ymmword ptr [reloc @RWD32], 86\n@@ -427,39 \u002B404,39 @@ G_M53720_IG29:\n        sete     sil\n        movzx    rsi, sil\n        test     esi, esi\n-       jne      G_M53720_IG37\n\u002B       jne      G_M53720_IG34\n \t\t\t\t\t\t;; size=80 bbWeight=0.50 PerfScore 14.67\n-G_M53720_IG30:\n\u002BG_M53720_IG27:\n        mov      ebx, r12d\n        mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; System.String[]\n        cmp      qword ptr [rsi], rdi\n-       je       SHORT G_M53720_IG32\n\u002B       je       SHORT G_M53720_IG29\n \t\t\t\t\t\t;; size=21 bbWeight=0.25 PerfScore 0.94\n-G_M53720_IG31:\n\u002BG_M53720_IG28:\n        xor      rsi, rsi\n \t\t\t\t\t\t;; size=2 bbWeight=0.12 PerfScore 0.03\n-G_M53720_IG32:\n\u002BG_M53720_IG29:\n        test     rsi, rsi\n-       je       SHORT G_M53720_IG33\n\u002B       je       SHORT G_M53720_IG30\n        cmp      dword ptr [rsi\u002B0x08], 0\n-       jne      SHORT G_M53720_IG33\n\u002B       jne      SHORT G_M53720_IG30\n        mov      rsi, 0xD1FFAB1E      ; const ptr\n        mov      rsi, gword ptr [rsi]\n-       jmp      G_M53720_IG35\n\u002B       jmp      G_M53720_IG32\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 4.25\n-G_M53720_IG33:\n\u002BG_M53720_IG30:\n        test     ebx, ebx\n-       jg       SHORT G_M53720_IG34\n\u002B       jg       SHORT G_M53720_IG31\n        mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:Skip[System.String](System.Collections.Generic.IEnumerable\u00601[System.String],int):System.Collections.Generic.IEnumerable\u00601[System.String]\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:Skip[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],int):System.Collections.Generic.IEnumerable\u00601[System.__Canon]\n        call     [rax]System.Linq.Enumerable:Skip[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],int):System.Collections.Generic.IEnumerable\u00601[System.__Canon]\n        mov      rsi, rax\n-       jmp      SHORT G_M53720_IG35\n\u002B       jmp      SHORT G_M53720_IG32\n \t\t\t\t\t\t;; size=36 bbWeight=0.50 PerfScore 3.75\n-G_M53720_IG34:\n\u002BG_M53720_IG31:\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002B\u003CTakeRangeFromEndIterator\u003Ed__325\u00601[System.String]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n@@ -480,7 \u002B457,7 @@ G_M53720_IG34:\n        mov      dword ptr [r13\u002B0x44], ebx\n        mov      rsi, r13\n \t\t\t\t\t\t;; size=94 bbWeight=0.50 PerfScore 7.75\n-G_M53720_IG35:\n\u002BG_M53720_IG32:\n        mov      rdx, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:Concat[System.String](System.Collections.Generic.IEnumerable\u00601[System.String],System.Collections.Generic.IEnumerable\u00601[System.String]):System.Collections.Generic.IEnumerable\u00601[System.String]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:Concat[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.Collections.Generic.IEnumerable\u00601[System.__Canon]\n@@ -495,7 \u002B472,7 @@ G_M53720_IG35:\n        call     [rax]System.String:Concat(System.String,System.String):System.String\n        nop      \n \t\t\t\t\t\t;; size=76 bbWeight=0.50 PerfScore 5.75\n-G_M53720_IG36:\n\u002BG_M53720_IG33:\n        vzeroupper \n        add      rsp, 72\n        pop      rbx\n@@ -506,40 \u002B483,22 @@ G_M53720_IG36:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M53720_IG37:\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.String[]\n-       cmp      qword ptr [rsi], rdi\n-       je       SHORT G_M53720_IG39\n\u002BG_M53720_IG34:\n\u002B       mov      rdi, r14\n\u002B       mov      rax, 0xD1FFAB1E      ; System.String[]\n\u002B       cmp      qword ptr [rdi], rax\n\u002B       je       SHORT G_M53720_IG36\n \t\t\t\t\t\t;; size=18 bbWeight=0.25 PerfScore 0.88\n-G_M53720_IG38:\n-       xor      rsi, rsi\n\u002BG_M53720_IG35:\n\u002B       xor      rdi, rdi\n \t\t\t\t\t\t;; size=2 bbWeight=0.12 PerfScore 0.03\n-G_M53720_IG39:\n-       test     rsi, rsi\n-       je       SHORT G_M53720_IG40\n-       cmp      dword ptr [rsi\u002B0x08], 0\n-       je       G_M53720_IG43\n-\t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M53720_IG40:\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.String]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M53720_IG41\n-       mov      rdi, rax\n-       mov      esi, 3\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x10]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:Take(int):System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:this\n-       mov      rdi, 0xD1FFAB1E      ; const ptr\n-       test     rax, rax\n-       cmove    rax, gword ptr [rdi]\n-       mov      rbx, rax\n-       jmp      SHORT G_M53720_IG42\n-\t\t\t\t\t\t;; size=70 bbWeight=0.50 PerfScore 8.62\n-G_M53720_IG41:\n\u002BG_M53720_IG36:\n\u002B       test     rdi, rdi\n\u002B       je       SHORT G_M53720_IG37\n\u002B       cmp      dword ptr [rdi\u002B0x08], 0\n\u002B       je       SHORT G_M53720_IG38\n\u002B\t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 2.12\n\u002BG_M53720_IG37:\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIListSkipTakeIterator\u00601[System.String]\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -554,16 \u002B513,14 @@ G_M53720_IG41:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdx, 0xD1FFAB1E\n        mov      qword ptr [rbx\u002B0x20], rdx\n-\t\t\t\t\t\t;; size=76 bbWeight=0.50 PerfScore 5.62\n-G_M53720_IG42:\n        mov      rsi, rbx\n-       jmp      SHORT G_M53720_IG44\n-\t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 1.12\n-G_M53720_IG43:\n\u002B       jmp      SHORT G_M53720_IG39\n\u002B\t\t\t\t\t\t;; size=81 bbWeight=0.50 PerfScore 6.75\n\u002BG_M53720_IG38:\n        mov      rsi, 0xD1FFAB1E      ; const ptr\n        mov      rsi, gword ptr [rsi]\n \t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 1.12\n-G_M53720_IG44:\n\u002BG_M53720_IG39:\n        mov      rdx, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:Concat[System.String](System.Collections.Generic.IEnumerable\u00601[System.String],System.Collections.Generic.IEnumerable\u00601[System.String]):System.Collections.Generic.IEnumerable\u00601[System.String]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:Concat[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.Collections.Generic.IEnumerable\u00601[System.__Canon]\n@@ -578,7 \u002B535,7 @@ G_M53720_IG44:\n        call     [rax]System.String:Concat(System.String,System.String):System.String\n        nop      \n \t\t\t\t\t\t;; size=76 bbWeight=0.50 PerfScore 5.75\n-G_M53720_IG45:\n\u002BG_M53720_IG40:\n        vzeroupper \n        add      rsp, 72\n        pop      rbx\n@@ -589,7 \u002B546,7 @@ G_M53720_IG45:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M53720_IG46:\n\u002BG_M53720_IG41:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n@@ -601,5 \u002B558,5 @@ RWD64  \tdq\t0020002000200020h, 0000002000200020h\n RWD96  \tdq\t0065006E006F0070h, 002F00730074006Eh, 0065006800630073h, 002F00730061006Dh\n \n \n-; Total bytes of code 1731, prolog size 19, PerfScore 483.42, instruction count 386, allocated bytes for code 1731 (MethodHash=675e2e27) for method Microsoft.OpenApi.BaseOpenApiReference:ResolveRelativePointer(System.String,System.String):System.String (FullOpts)\n\u002B; Total bytes of code 1580, prolog size 19, PerfScore 438.29, instruction count 353, allocated bytes for code 1580 (MethodHash=675e2e27) for method Microsoft.OpenApi.BaseOpenApiReference:ResolveRelativePointer(System.String,System.String):System.String (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1731,"DiffBytes":1580},{"Assembly":"MongoDB.Bson.dasm","Method":"MongoDB.Bson.Serialization.Conventions.ObjectDiscriminatorConvention:GetActualType(MongoDB.Bson.IO.IBsonReader,System.Type):System.Type:this (FullOpts)","Category":"improvement","Description":"986 -\u003E 926 bytes (-60)","ExtraInfo":null,"Diff":"@@ -11,43 \u002B11,43 @@\n ;  V00 this         [V00,T06] (  3,  2.50)     ref  -\u003E  r14         this class-hnd single-def \u003CMongoDB.Bson.Serialization.Conventions.ObjectDiscriminatorConvention\u003E\n ;  V01 arg1         [V01,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd single-def \u003CMongoDB.Bson.IO.IBsonReader\u003E\n ;  V02 arg2         [V02,T02] (  7,  4.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Type\u003E\n-;  V03 loc0         [V03,T13] (  4,  2.50)     int  -\u003E  r13         single-def\n\u002B;  V03 loc0         [V03,T12] (  4,  2.50)     int  -\u003E  r13         single-def\n ;  V04 loc1         [V04,T01] ( 14,  7   )     ref  -\u003E  r12         class-hnd \u003CSystem.Type\u003E\n-;  V05 loc2         [V05,T26] (  2,  1   )     ref  -\u003E  [rbp-0x40]  class-hnd spill-single-def \u003CMongoDB.Bson.IO.BsonReaderBookmark\u003E\n-;  V06 loc3         [V06,T24] (  3,  1.50)     int  -\u003E  rdi         single-def\n-;  V07 loc4         [V07,T27] (  2,  1   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Bson.IO.BsonReaderBookmark\u003E\n-;  V08 loc5         [V08,T21] (  3,  1.50)     ref  -\u003E  r13         class-hnd \u003CSystem.Type\u003E\n\u002B;  V05 loc2         [V05,T24] (  2,  1   )     ref  -\u003E  [rbp-0x40]  class-hnd spill-single-def \u003CMongoDB.Bson.IO.BsonReaderBookmark\u003E\n\u002B;  V06 loc3         [V06,T22] (  3,  1.50)     int  -\u003E  rdi         single-def\n\u002B;  V07 loc4         [V07,T25] (  2,  1   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Bson.IO.BsonReaderBookmark\u003E\n\u002B;  V08 loc5         [V08,T20] (  3,  1.50)     ref  -\u003E  r13         class-hnd \u003CSystem.Type\u003E\n ;* V09 loc6         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CMongoDB.Bson.Serialization.BsonDeserializationContext\u003E\n-;  V10 loc7         [V10,T11] (  7,  2.88)     ref  -\u003E  r14         class-hnd \u003CMongoDB.Bson.BsonValue\u003E\n\u002B;  V10 loc7         [V10,T10] (  7,  2.88)     ref  -\u003E  r14         class-hnd \u003CMongoDB.Bson.BsonValue\u003E\n ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V12 tmp1         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n ;* V13 tmp2         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.Serialization.BsonDeserializationContext\u003E\n ;  V14 tmp3         [V14,T03] (  6,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.Serialization.BsonDeserializationContext\u002BBuilder\u003E\n ;* V15 tmp4         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.Serialization.BsonDeserializationContext\u002BBuilder\u003E\n ;  V16 tmp5         [V16,T04] (  6,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.Serialization.BsonDeserializationContext\u003E\n-;  V17 tmp6         [V17,T16] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.IO.IBsonReader\u003E\n-;  V18 tmp7         [V18,T20] (  2,  2   )   ubyte  -\u003E  [rbp-0x2C]  spill-single-def \u0022Inlining Arg\u0022\n-;  V19 tmp8         [V19,T17] (  2,  2   )     ref  -\u003E  [rbp-0x48]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n-;  V20 tmp9         [V20,T18] (  2,  2   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n\u002B;  V17 tmp6         [V17,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.IO.IBsonReader\u003E\n\u002B;  V18 tmp7         [V18,T19] (  2,  2   )   ubyte  -\u003E  [rbp-0x2C]  spill-single-def \u0022Inlining Arg\u0022\n\u002B;  V19 tmp8         [V19,T15] (  2,  2   )     ref  -\u003E  [rbp-0x48]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n\u002B;  V20 tmp9         [V20,T16] (  2,  2   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n ;* V21 tmp10        [V21    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Bson.Serialization.BsonDeserializationArgs\u003E\n ;  V22 tmp11        [V22,T05] (  5,  5   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.Serialization.Serializers.BsonValueSerializer\u003E\n ;* V23 tmp12        [V23    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.Serialization.BsonDeserializationArgs\u003E\n-;  V24 tmp13        [V24,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.IO.IBsonReader\u003E\n\u002B;  V24 tmp13        [V24,T17] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.IO.IBsonReader\u003E\n ;* V25 tmp14        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V26 tmp15        [V26,T07] (  3,  3   )   byref  -\u003E  rdx         single-def \u0022Inlining Arg\u0022\n-;  V27 tmp16        [V27,T08] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonArray\u003E\n-;  V28 tmp17        [V28    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V27 tmp16        [V27,T18] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonArray\u003E\n\u002B;  V28 tmp17        [V28    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V29 tmp18        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V30 tmp19        [V30,T22] (  3,  1.50)     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n-;  V31 tmp20        [V31,T15] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonValue]\u003E\n\u002B;  V30 tmp19        [V30,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n\u002B;* V31 tmp20        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonValue]\u003E\n ;* V32 tmp21        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V21._nominalType (fldOffset=0x0)\u0022 P-INDEP\n ;* V33 tmp22        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V23._nominalType (fldOffset=0x0)\u0022 P-INDEP\n-;  V34 tmp23        [V34,T09] (  3,  3   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n-;  V35 cse0         [V35,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x50]  spill-single-def \u0022CSE #01: moderate\u0022\n-;  V36 rat0         [V36,T14] (  4,  2.25)     ref  -\u003E  r13         \u0022replacement local\u0022\n-;  V37 rat1         [V37,T25] (  3,  1.25)    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n-;  V38 rat2         [V38,T10] (  3,  2.90)     int  -\u003E  rdi         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n-;  V39 rat3         [V39,T12] (  3,  2.80)     int  -\u003E  rdi         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n\u002B;  V34 tmp23        [V34,T08] (  3,  3   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n\u002B;  V35 cse0         [V35,T21] (  3,  1.50)     ref  -\u003E  [rbp-0x50]  spill-single-def \u0022CSE #01: moderate\u0022\n\u002B;  V36 rat0         [V36,T13] (  4,  2.25)     ref  -\u003E  rsi         \u0022replacement local\u0022\n\u002B;  V37 rat1         [V37,T23] (  3,  1.25)    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n\u002B;  V38 rat2         [V38,T09] (  3,  2.90)     int  -\u003E  rdi         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n\u002B;  V39 rat3         [V39,T11] (  3,  2.80)     int  -\u003E  rdi         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n ;\n ; Lcl frame size = 40\n \n@@ -81,7 \u002B81,7 @@ G_M15731_IG03:\n        xor      r12, r12\n        lea      edi, [r13-0x01]\n        cmp      edi, 8\n-       ja       G_M15731_IG28\n\u002B       ja       G_M15731_IG26\n \t\t\t\t\t\t;; size=16 bbWeight=0.50 PerfScore 1.00\n G_M15731_IG04:\n        mov      edi, edi\n@@ -162,7 \u002B162,7 @@ G_M15731_IG14:\n \t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 0.62\n G_M15731_IG15:\n        cmp      r13d, 3\n-       jne      G_M15731_IG33\n\u002B       jne      G_M15731_IG31\n        mov      rdi, rbx\n        mov      r11, 0xD1FFAB1E      ; code for MongoDB.Bson.IO.IBsonReader:GetBookmark():MongoDB.Bson.IO.BsonReaderBookmark:this\n        call     [r11]MongoDB.Bson.IO.IBsonReader:GetBookmark():MongoDB.Bson.IO.BsonReaderBookmark:this\n@@ -176,7 \u002B176,7 @@ G_M15731_IG15:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.IO.IBsonReaderExtensions:FindElement(MongoDB.Bson.IO.IBsonReader,System.String):bool\n        call     [rax]MongoDB.Bson.IO.IBsonReaderExtensions:FindElement(MongoDB.Bson.IO.IBsonReader,System.String):bool\n        test     eax, eax\n-       je       G_M15731_IG24\n\u002B       je       G_M15731_IG22\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.Serialization.BsonDeserializationContext\u002BBuilder\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n@@ -217,7 \u002B217,7 @@ G_M15731_IG16:\n        mov      rsi, gword ptr [rbp-0x50]\n        lea      rdx, bword ptr [r13\u002B0x08]\n        cmp      byte  ptr [rdx], 0\n-       je       G_M15731_IG35\n\u002B       je       G_M15731_IG33\n        mov      edx, dword ptr [rdx\u002B0x04]\n        mov      rdi, r13\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.Serialization.Serializers.SerializerBase\u00601[System.__Canon]:EnsureBsonTypeEquals(MongoDB.Bson.IO.IBsonReader,int):this\n@@ -235,62 \u002B235,44 @@ G_M15731_IG17:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x20]MongoDB.Bson.BsonValue:get_BsonType():int:this\n        cmp      eax, 4\n-       jne      G_M15731_IG23\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 6.38\n\u002B       jne      SHORT G_M15731_IG21\n\u002B\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 6.38\n G_M15731_IG18:\n-       mov      r13, r14\n\u002B       mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonArray\n-       cmp      qword ptr [r13], rdi\n\u002B       cmp      qword ptr [rsi], rdi\n        je       SHORT G_M15731_IG20\n-\t\t\t\t\t\t;; size=19 bbWeight=0.25 PerfScore 0.88\n\u002B\t\t\t\t\t\t;; size=18 bbWeight=0.25 PerfScore 0.88\n G_M15731_IG19:\n        mov      rsi, r14\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL\n-       mov      r13, rax\n\u002B       mov      rsi, rax\n \t\t\t\t\t\t;; size=18 bbWeight=0.12 PerfScore 0.47\n G_M15731_IG20:\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonValue]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M15731_IG21\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       mov      r14, rax\n-       jmp      SHORT G_M15731_IG22\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 7.50\n-G_M15731_IG21:\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonValue](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonValue],byref):MongoDB.Bson.BsonValue\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        mov      r14, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M15731_IG22:\n        cmp      byte  ptr [rbp-0x38], 0\n-       je       G_M15731_IG36\n-\t\t\t\t\t\t;; size=10 bbWeight=0.50 PerfScore 1.00\n-G_M15731_IG23:\n\u002B       je       G_M15731_IG34\n\u002B\t\t\t\t\t\t;; size=39 bbWeight=0.50 PerfScore 3.12\n\u002BG_M15731_IG21:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.Serialization.BsonSerializer:LookupActualType(System.Type,MongoDB.Bson.BsonValue):System.Type\n        call     [rax]MongoDB.Bson.Serialization.BsonSerializer:LookupActualType(System.Type,MongoDB.Bson.BsonValue):System.Type\n        mov      r13, rax\n \t\t\t\t\t\t;; size=21 bbWeight=0.50 PerfScore 2.00\n-G_M15731_IG24:\n\u002BG_M15731_IG22:\n        mov      rdi, rbx\n        mov      rsi, r12\n        mov      r11, 0xD1FFAB1E      ; code for MongoDB.Bson.IO.IBsonReader:ReturnToBookmark(MongoDB.Bson.IO.BsonReaderBookmark):this\n        call     [r11]MongoDB.Bson.IO.IBsonReader:ReturnToBookmark(MongoDB.Bson.IO.BsonReaderBookmark):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 2.00\n-G_M15731_IG25:\n\u002BG_M15731_IG23:\n        add      rsp, 40\n        pop      rbx\n        pop      r12\n@@ -300,20 \u002B282,20 @@ G_M15731_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M15731_IG26:\n\u002BG_M15731_IG24:\n        mov      r12, 0xD1FFAB1E      ; \u0027System.String\u0027\n        jmp      G_M15731_IG06\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 1.12\n-G_M15731_IG27:\n\u002BG_M15731_IG25:\n        mov      r12, 0xD1FFAB1E      ; \u0027System.Double\u0027\n        jmp      G_M15731_IG06\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 1.12\n-G_M15731_IG28:\n\u002BG_M15731_IG26:\n        lea      edi, [r13-0x10]\n        cmp      edi, 3\n        ja       G_M15731_IG14\n \t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 0.88\n-G_M15731_IG29:\n\u002BG_M15731_IG27:\n        mov      edi, edi\n        lea      rsi, [reloc @RWD36]\n        mov      esi, dword ptr [rsi\u002B4*rdi]\n@@ -321,22 \u002B303,22 @@ G_M15731_IG29:\n        add      rsi, rax\n        jmp      rsi\n \t\t\t\t\t\t;; size=24 bbWeight=0.40 PerfScore 2.40\n-G_M15731_IG30:\n\u002BG_M15731_IG28:\n        mov      r12, 0xD1FFAB1E      ; \u0027MongoDB.Bson.Decimal128\u0027\n        jmp      G_M15731_IG06\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 1.12\n-G_M15731_IG31:\n\u002BG_M15731_IG29:\n        mov      r12, 0xD1FFAB1E      ; \u0027System.Int64\u0027\n        jmp      G_M15731_IG06\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 1.12\n-G_M15731_IG32:\n\u002BG_M15731_IG30:\n        mov      r12, 0xD1FFAB1E      ; \u0027System.Int32\u0027\n        jmp      G_M15731_IG06\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 1.12\n-G_M15731_IG33:\n\u002BG_M15731_IG31:\n        mov      rax, r15\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M15731_IG34:\n\u002BG_M15731_IG32:\n        add      rsp, 40\n        pop      rbx\n        pop      r12\n@@ -346,18 \u002B328,18 @@ G_M15731_IG34:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M15731_IG35:\n\u002BG_M15731_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_NoValue()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_NoValue()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M15731_IG36:\n\u002BG_M15731_IG34:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-RWD00  \tdd\tG_M15731_IG27 - G_M15731_IG02\n-       \tdd\tG_M15731_IG26 - G_M15731_IG02\n\u002BRWD00  \tdd\tG_M15731_IG25 - G_M15731_IG02\n\u002B       \tdd\tG_M15731_IG24 - G_M15731_IG02\n        \tdd\tG_M15731_IG14 - G_M15731_IG02\n        \tdd\tG_M15731_IG14 - G_M15731_IG02\n        \tdd\tG_M15731_IG11 - G_M15731_IG02\n@@ -365,11 \u002B347,11 @@ RWD00  \tdd\tG_M15731_IG27 - G_M15731_IG02\n        \tdd\tG_M15731_IG10 - G_M15731_IG02\n        \tdd\tG_M15731_IG09 - G_M15731_IG02\n        \tdd\tG_M15731_IG05 - G_M15731_IG02\n-RWD36  \tdd\tG_M15731_IG32 - G_M15731_IG02\n\u002BRWD36  \tdd\tG_M15731_IG30 - G_M15731_IG02\n        \tdd\tG_M15731_IG14 - G_M15731_IG02\n-       \tdd\tG_M15731_IG31 - G_M15731_IG02\n-       \tdd\tG_M15731_IG30 - G_M15731_IG02\n\u002B       \tdd\tG_M15731_IG29 - G_M15731_IG02\n\u002B       \tdd\tG_M15731_IG28 - G_M15731_IG02\n \n \n-; Total bytes of code 986, prolog size 25, PerfScore 107.82, instruction count 233, allocated bytes for code 986 (MethodHash=1e35c28c) for method MongoDB.Bson.Serialization.Conventions.ObjectDiscriminatorConvention:GetActualType(MongoDB.Bson.IO.IBsonReader,System.Type):System.Type:this (FullOpts)\n\u002B; Total bytes of code 926, prolog size 25, PerfScore 100.19, instruction count 219, allocated bytes for code 926 (MethodHash=1e35c28c) for method MongoDB.Bson.Serialization.Conventions.ObjectDiscriminatorConvention:GetActualType(MongoDB.Bson.IO.IBsonReader,System.Type):System.Type:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":986,"DiffBytes":926},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.BinaryVectorDriverExtensions:ToQueryVector[System.Numerics.Vector\u00601[float]](MongoDB.Bson.BinaryVector\u00601[System.Numerics.Vector\u00601[float]]):MongoDB.Driver.QueryVector (FullOpts)","Category":"improvement","Description":"698 -\u003E 334 bytes (-364)","ExtraInfo":null,"Diff":"@@ -8,52 \u002B8,46 @@\n ; 0 inlinees with PGO data; 8 single block inlinees; 6 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T00] ( 13,  6.25)     ref  -\u003E  rbx         class-hnd single-def \u003CMongoDB.Bson.BinaryVector\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V01 loc0         [V01,T11] (  2,  1   )     ref  -\u003E  rbx         class-hnd exact \u003CMongoDB.Bson.BinaryVectorFloat32\u003E\n-;  V02 loc1         [V02,T12] (  2,  1   )     ref  -\u003E  rbx         class-hnd exact \u003CMongoDB.Bson.BinaryVectorInt8\u003E\n-;  V03 loc2         [V03,T13] (  2,  1   )     ref  -\u003E  rbx         class-hnd exact \u003CMongoDB.Bson.BinaryVectorPackedBit\u003E\n-;  V04 loc3         [V04,T07] (  4,  2.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.QueryVector\u003E\n-;  V05 loc4         [V05    ] ( 15,  0   )  struct (40) [rbp-0x38]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.DefaultInterpolatedStringHandler\u003E\n\u002B;  V00 arg0         [V00,T00] (  4,  2   )     ref  -\u003E  rbx         class-hnd single-def \u003CMongoDB.Bson.BinaryVector\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;* V01 loc0         [V01    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Bson.BinaryVectorFloat32\u003E\n\u002B;* V02 loc1         [V02    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Bson.BinaryVectorInt8\u003E\n\u002B;* V03 loc2         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Bson.BinaryVectorPackedBit\u003E\n\u002B;* V04 loc3         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMongoDB.Driver.QueryVector\u003E\n\u002B;  V05 loc4         [V05    ] ( 14,  0   )  struct (40) [rbp-0x38]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.DefaultInterpolatedStringHandler\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CMongoDB.Bson.BinaryVectorFloat32\u003E\n-;  V08 tmp2         [V08,T01] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.QueryVector\u003E\n-;* V09 tmp3         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CMongoDB.Bson.BinaryVectorInt8\u003E\n-;  V10 tmp4         [V10,T02] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.QueryVector\u003E\n-;* V11 tmp5         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CMongoDB.Bson.BinaryVectorPackedBit\u003E\n-;  V12 tmp6         [V12,T03] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.QueryVector\u003E\n-;* V13 tmp7         [V13    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;* V14 tmp8         [V14    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V15 tmp9         [V15,T17] (  3,  0   )     ref  -\u003E  rax        \n-;  V16 tmp10        [V16,T18] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n-;  V17 tmp11        [V17,T04] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n-;  V18 tmp12        [V18,T05] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n-;  V19 tmp13        [V19,T06] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n-;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.Buffers.SharedArrayPool\u00601[char]\u003E\n-;  V21 tmp15        [V21,T14] (  5,  0   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003Cchar[]\u003E\n-;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003Cchar[]\u003E\n-;* V23 tmp17        [V23    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.QueryVector\u003E\n\u002B;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.QueryVector\u003E\n\u002B;* V09 tmp3         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.QueryVector\u003E\n\u002B;* V10 tmp4         [V10    ] (  0,  0   )   byref  -\u003E  zero-ref   \n\u002B;* V11 tmp5         [V11    ] (  0,  0   )   byref  -\u003E  zero-ref   \n\u002B;  V12 tmp6         [V12,T04] (  3,  0   )     ref  -\u003E  rax        \n\u002B;  V13 tmp7         [V13,T05] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;* V14 tmp8         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n\u002B;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n\u002B;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n\u002B;* V17 tmp11        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.Buffers.SharedArrayPool\u00601[char]\u003E\n\u002B;  V18 tmp12        [V18,T01] (  5,  0   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003Cchar[]\u003E\n\u002B;* V19 tmp13        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003Cchar[]\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V21 tmp15        [V21    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Span\u00601[char]\u003E\n\u002B;* V22 tmp16        [V22    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Span\u00601[char]\u003E\n\u002B;  V23 tmp17        [V23,T03] (  4,  0   )     int  -\u003E  rdi         \u0022Inlining Arg\u0022\n ;* V24 tmp18        [V24    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;* V25 tmp19        [V25    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;  V26 tmp20        [V26,T16] (  4,  0   )     int  -\u003E  rdi         \u0022Inlining Arg\u0022\n-;* V27 tmp21        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;  V28 tmp22        [V28,T15] (  5,  0   )   byref  -\u003E  r15         single-def \u0022Inlining Arg\u0022\n-;  V29 tmp23        [V29,T22] (  2,  0   )     int  -\u003E  rsi         \u0022Inlining Arg\u0022\n-;* V30 tmp24        [V30,T23] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n-;* V31 tmp25        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;* V32 tmp26        [V32    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;* V33 tmp27        [V33    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V34 tmp28        [V34,T19] (  3,  0   )   byref  -\u003E  rdi         \u0022field V24._reference (fldOffset=0x0)\u0022 P-INDEP\n-;  V35 tmp29        [V35,T20] (  3,  0   )     int  -\u003E  rsi         \u0022field V24._length (fldOffset=0x8)\u0022 P-INDEP\n-;* V36 tmp30        [V36    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022field V25._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V37 tmp31        [V37    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V25._length (fldOffset=0x8)\u0022 P-INDEP\n-;* V38 tmp32        [V38    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V27._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V39 tmp33        [V39    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V27._length (fldOffset=0x8)\u0022 P-INDEP\n-;* V40 tmp34        [V40    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V31._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V41 tmp35        [V41    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V31._length (fldOffset=0x8)\u0022 P-INDEP\n-;  V42 tmp36        [V42,T08] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V43 tmp37        [V43,T09] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V44 tmp38        [V44,T10] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V45 tmp39        [V45,T21] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V25 tmp19        [V25,T02] (  5,  0   )   byref  -\u003E  r15         single-def \u0022Inlining Arg\u0022\n\u002B;  V26 tmp20        [V26,T09] (  2,  0   )     int  -\u003E  rsi         \u0022Inlining Arg\u0022\n\u002B;* V27 tmp21        [V27,T10] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n\u002B;* V28 tmp22        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Span\u00601[char]\u003E\n\u002B;* V29 tmp23        [V29    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n\u002B;* V30 tmp24        [V30    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n\u002B;  V31 tmp25        [V31,T06] (  3,  0   )   byref  -\u003E  rdi         \u0022field V21._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V32 tmp26        [V32,T07] (  3,  0   )     int  -\u003E  rsi         \u0022field V21._length (fldOffset=0x8)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n ;\n ; Lcl frame size = 48\n \n@@ -68,110 \u002B62,8 @@ G_M58679_IG01:\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu  ymmword ptr [rbp-0x30], ymm8\n        mov      rbx, rdi\n-\t\t\t\t\t\t;; size=32 bbWeight=1 PerfScore 6.58\n\u002B\t\t\t\t\t\t;; size=32 bbWeight=0 PerfScore 0.00\n G_M58679_IG02:\n-       test     rbx, rbx\n-       je       SHORT G_M58679_IG05\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M58679_IG03:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BinaryVectorFloat32\n-       cmp      qword ptr [rbx], rdi\n-       jne      SHORT G_M58679_IG05\n-\t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M58679_IG04:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonBinaryData\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r15, rax\n-       mov      rdi, rbx\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[float](MongoDB.Bson.BinaryVector\u00601[float]):byte[]\n-       call     [rax]MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[float](MongoDB.Bson.BinaryVector\u00601[float]):byte[]\n-       mov      rsi, rax\n-       mov      rdi, r15\n-       mov      edx, 9\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.BsonBinaryData:.ctor(byte[],int):this\n-       call     [rax]MongoDB.Bson.BsonBinaryData:.ctor(byte[],int):this\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.QueryVector\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      rbx, rax\n-       mov      rdi, rbx\n-       mov      rsi, r15\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.QueryVector:.ctor(MongoDB.Bson.BsonBinaryData):this\n-       call     [rax]MongoDB.Driver.QueryVector:.ctor(MongoDB.Bson.BsonBinaryData):this\n-       jmp      G_M58679_IG11\n-\t\t\t\t\t\t;; size=97 bbWeight=0.50 PerfScore 8.12\n-G_M58679_IG05:\n-       test     rbx, rbx\n-       je       SHORT G_M58679_IG08\n-\t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 0.62\n-G_M58679_IG06:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BinaryVectorInt8\n-       cmp      qword ptr [rbx], rdi\n-       jne      SHORT G_M58679_IG08\n-\t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M58679_IG07:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonBinaryData\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r15, rax\n-       mov      rdi, rbx\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[sbyte](MongoDB.Bson.BinaryVector\u00601[sbyte]):byte[]\n-       call     [rax]MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[sbyte](MongoDB.Bson.BinaryVector\u00601[sbyte]):byte[]\n-       mov      rsi, rax\n-       mov      rdi, r15\n-       mov      edx, 9\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.BsonBinaryData:.ctor(byte[],int):this\n-       call     [rax]MongoDB.Bson.BsonBinaryData:.ctor(byte[],int):this\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.QueryVector\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      rbx, rax\n-       mov      rdi, rbx\n-       mov      rsi, r15\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.QueryVector:.ctor(MongoDB.Bson.BsonBinaryData):this\n-       call     [rax]MongoDB.Driver.QueryVector:.ctor(MongoDB.Bson.BsonBinaryData):this\n-       jmp      SHORT G_M58679_IG11\n-\t\t\t\t\t\t;; size=94 bbWeight=0.50 PerfScore 8.12\n-G_M58679_IG08:\n-       test     rbx, rbx\n-       je       SHORT G_M58679_IG13\n-\t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 0.62\n-G_M58679_IG09:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BinaryVectorPackedBit\n-       cmp      qword ptr [rbx], rdi\n-       jne      SHORT G_M58679_IG13\n-\t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M58679_IG10:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonBinaryData\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r15, rax\n-       mov      rdi, rbx\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[byte](MongoDB.Bson.BinaryVector\u00601[byte]):byte[]\n-       call     [rax]MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[byte](MongoDB.Bson.BinaryVector\u00601[byte]):byte[]\n-       mov      rsi, rax\n-       mov      rdi, r15\n-       mov      edx, 9\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.BsonBinaryData:.ctor(byte[],int):this\n-       call     [rax]MongoDB.Bson.BsonBinaryData:.ctor(byte[],int):this\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.QueryVector\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      rbx, rax\n-       mov      rdi, rbx\n-       mov      rsi, r15\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.QueryVector:.ctor(MongoDB.Bson.BsonBinaryData):this\n-       call     [rax]MongoDB.Driver.QueryVector:.ctor(MongoDB.Bson.BsonBinaryData):this\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 7.12\n-G_M58679_IG11:\n-       mov      rax, rbx\n-\t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M58679_IG12:\n-       vzeroupper \n-       add      rsp, 48\n-       pop      rbx\n-       pop      r15\n-       pop      rbp\n-       ret      \n-\t\t\t\t\t\t;; size=12 bbWeight=1 PerfScore 3.75\n-G_M58679_IG13:\n-       xor      rdi, rdi\n-       mov      gword ptr [rbp-0x38], rdi\n        mov      rdi, 0xD1FFAB1E      ; const ptr\n        mov      rdi, gword ptr [rdi]\n        mov      esi, 256\n@@ -179,16 \u002B71,16 @@ G_M58679_IG13:\n        call     [rax]System.Buffers.SharedArrayPool\u00601[char]:Rent(int):char[]:this\n        mov      gword ptr [rbp-0x30], rax\n        test     rax, rax\n-       jne      SHORT G_M58679_IG14\n\u002B       jne      SHORT G_M58679_IG03\n        xor      rdi, rdi\n        xor      esi, esi\n-       jmp      SHORT G_M58679_IG15\n-\t\t\t\t\t\t;; size=51 bbWeight=0 PerfScore 0.00\n-G_M58679_IG14:\n\u002B       jmp      SHORT G_M58679_IG04\n\u002B\t\t\t\t\t\t;; size=45 bbWeight=0 PerfScore 0.00\n\u002BG_M58679_IG03:\n        lea      rdi, bword ptr [rax\u002B0x10]\n        mov      esi, dword ptr [rax\u002B0x08]\n \t\t\t\t\t\t;; size=7 bbWeight=0 PerfScore 0.00\n-G_M58679_IG15:\n\u002BG_M58679_IG04:\n        mov      bword ptr [rbp-0x20], rdi\n        mov      dword ptr [rbp-0x18], esi\n        xor      edi, edi\n@@ -196,19 \u002B88,19 @@ G_M58679_IG15:\n        mov      byte  ptr [rbp-0x24], 0\n        mov      edi, dword ptr [rbp-0x28]\n        cmp      edi, dword ptr [rbp-0x18]\n-       jbe      SHORT G_M58679_IG16\n\u002B       jbe      SHORT G_M58679_IG05\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()\n        int3     \n \t\t\t\t\t\t;; size=37 bbWeight=0 PerfScore 0.00\n-G_M58679_IG16:\n\u002BG_M58679_IG05:\n        mov      rsi, bword ptr [rbp-0x20]\n        mov      eax, edi\n        lea      r15, bword ptr [rsi\u002B2*rax]\n        mov      esi, dword ptr [rbp-0x18]\n        sub      esi, edi\n        cmp      esi, 27\n-       jb       SHORT G_M58679_IG17\n\u002B       jb       SHORT G_M58679_IG06\n        vmovups  ymm0, ymmword ptr [reloc @RWD00]\n        vmovups  ymmword ptr [r15], ymm0\n        vmovups  xmm0, xmmword ptr [reloc @RWD32]\n@@ -218,26 \u002B110,26 @@ G_M58679_IG16:\n        mov      edi, dword ptr [rbp-0x28]\n        add      edi, 27\n        mov      dword ptr [rbp-0x28], edi\n-       jmp      SHORT G_M58679_IG18\n\u002B       jmp      SHORT G_M58679_IG07\n \t\t\t\t\t\t;; size=73 bbWeight=0 PerfScore 0.00\n-G_M58679_IG17:\n\u002BG_M58679_IG06:\n        lea      rdi, [rbp-0x38]\n        mov      rsi, 0xD1FFAB1E      ; \u0027Invalid binary vector type \u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this\n        call     [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this\n \t\t\t\t\t\t;; size=26 bbWeight=0 PerfScore 0.00\n-G_M58679_IG18:\n\u002BG_M58679_IG07:\n        test     rbx, rbx\n-       jne      SHORT G_M58679_IG19\n\u002B       jne      SHORT G_M58679_IG08\n        xor      rax, rax\n-       jmp      SHORT G_M58679_IG20\n\u002B       jmp      SHORT G_M58679_IG09\n \t\t\t\t\t\t;; size=9 bbWeight=0 PerfScore 0.00\n-G_M58679_IG19:\n\u002BG_M58679_IG08:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Object:GetType():System.Type:this\n        call     [rax]System.Object:GetType():System.Type:this\n \t\t\t\t\t\t;; size=15 bbWeight=0 PerfScore 0.00\n-G_M58679_IG20:\n\u002BG_M58679_IG09:\n        lea      rdi, [rbp-0x38]\n        mov      rdx, rax\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[System.Type](System.Type):this\n@@ -261,5 \u002B153,5 @@ RWD00  \tdq\t00610076006E0049h, 002000640069006Ch, 0061006E00690062h, 007600200079\n RWD32  \tdq\t006F007400630065h, 0079007400200072h\n \n \n-; Total bytes of code 698, prolog size 29, PerfScore 38.90, instruction count 160, allocated bytes for code 698 (MethodHash=fb181ac8) for method MongoDB.Driver.BinaryVectorDriverExtensions:ToQueryVector[System.Numerics.Vector\u00601[float]](MongoDB.Bson.BinaryVector\u00601[System.Numerics.Vector\u00601[float]]):MongoDB.Driver.QueryVector (FullOpts)\n\u002B; Total bytes of code 334, prolog size 29, PerfScore 0.00, instruction count 80, allocated bytes for code 334 (MethodHash=fb181ac8) for method MongoDB.Driver.BinaryVectorDriverExtensions:ToQueryVector[System.Numerics.Vector\u00601[float]](MongoDB.Bson.BinaryVector\u00601[System.Numerics.Vector\u00601[float]]):MongoDB.Driver.QueryVector (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":698,"DiffBytes":334},{"Assembly":"Moq.dasm","Method":"Moq.MatcherObserver:TryGetLastMatch(byref):bool:this (FullOpts)","Category":"improvement","Description":"158 -\u003E 96 bytes (-62)","ExtraInfo":null,"Diff":"@@ -1,104 \u002B1,84 @@\n ; Assembly listing for method Moq.MatcherObserver:TryGetLastMatch(byref):bool:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T01] (  3,  3   )     ref  -\u003E  rdi         this class-hnd single-def \u003CMoq.MatcherObserver\u003E\n ;  V01 arg1         [V01,T00] (  4,  3   )   byref  -\u003E  rbx         single-def\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V03 tmp1         [V03    ] (  0,  0   )  struct (16) zero-ref    \u0022location for address-of(RValue)\u0022 \u003CMoq.MatcherObserver\u002BObservation\u003E\n ;* V04 tmp2         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Moq.MatcherObserver\u002BObservation]\u003E\n-;  V05 tmp3         [V05,T03] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Moq.MatcherObserver\u002BObservation]\u003E\n-;  V06 tmp4         [V06    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V05 tmp3         [V05,T03] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Moq.MatcherObserver\u002BObservation]\u003E\n\u002B;  V06 tmp4         [V06    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x10]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V07 tmp5         [V07    ] (  0,  0   )  struct (16) zero-ref    \u003CMoq.MatcherObserver\u002BObservation\u003E\n ;* V08 tmp6         [V08    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest \u0022Inline return value spill temp\u0022 \u003CMoq.MatcherObserver\u002BObservation\u003E\n-;  V09 tmp7         [V09,T04] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Moq.MatcherObserver\u002BObservation]\u003E\n\u002B;* V09 tmp7         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Moq.MatcherObserver\u002BObservation]\u003E\n ;* V10 tmp8         [V10    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CMoq.MatcherObserver\u002BObservation\u003E\n ;* V11 tmp9         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V03.Match (fldOffset=0x0)\u0022 P-INDEP\n ;* V12 tmp10        [V12    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V03.Timestamp (fldOffset=0x8)\u0022 P-INDEP\n ;* V13 tmp11        [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V07.Match (fldOffset=0x0)\u0022 P-INDEP\n ;* V14 tmp12        [V14    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V07.Timestamp (fldOffset=0x8)\u0022 P-INDEP\n-;  V15 tmp13        [V15,T05] (  3,  1.50)     ref  -\u003E  rax         \u0022field V08.Match (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 tmp14        [V16,T06] (  2,  1   )     int  -\u003E  rdx         \u0022field V08.Timestamp (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V15 tmp13        [V15,T04] (  2,  1   )     ref  -\u003E  rax         \u0022field V08.Match (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V16 tmp14        [V16,T05] (  1,  0.50)     int  -\u003E  rdx         \u0022field V08.Timestamp (fldOffset=0x8)\u0022 P-INDEP\n ;* V17 tmp15        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V10.Match (fldOffset=0x0)\u0022 P-DEP\n ;* V18 tmp16        [V18    ] (  0,  0   )     int  -\u003E  zero-ref    do-not-enreg[] \u0022field V10.Timestamp (fldOffset=0x8)\u0022 P-DEP\n-;  V19 cse0         [V19,T02] (  4,  3   )     ref  -\u003E  r15         \u0022CSE #01: aggressive\u0022\n\u002B;  V19 cse0         [V19,T02] (  4,  3   )     ref  -\u003E  rdi         \u0022CSE #01: aggressive\u0022\n ;\n-; Lcl frame size = 16\n\u002B; Lcl frame size = 8\n \n G_M63042_IG01:\n        push     rbp\n-       push     r15\n        push     rbx\n-       sub      rsp, 16\n-       lea      rbp, [rsp\u002B0x20]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x10]\n        mov      rbx, rsi\n-\t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 4.00\n\u002B\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.75\n G_M63042_IG02:\n-       mov      r15, gword ptr [rdi\u002B0x08]\n-       test     r15, r15\n\u002B       mov      rdi, gword ptr [rdi\u002B0x08]\n\u002B       test     rdi, rdi\n        je       SHORT G_M63042_IG04\n \t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.25\n G_M63042_IG03:\n-       cmp      dword ptr [r15\u002B0x10], 0\n\u002B       cmp      dword ptr [rdi\u002B0x10], 0\n        jg       SHORT G_M63042_IG06\n-\t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.50\n\u002B\t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 1.50\n G_M63042_IG04:\n        xor      rax, rax\n        mov      gword ptr [rbx], rax\n \t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 0.62\n G_M63042_IG05:\n-       add      rsp, 16\n\u002B       add      rsp, 8\n        pop      rbx\n-       pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 1.38\n\u002B\t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n G_M63042_IG06:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[Moq.MatcherObserver\u002BObservation]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M63042_IG07\n-       lea      rsi, [rbp-0x18]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[Moq.MatcherObserver\u002BObservation]:TryGetLast(byref):Moq.MatcherObserver\u002BObservation:this\n-       jmp      SHORT G_M63042_IG08\n-\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.38\n-G_M63042_IG07:\n-       lea      rsi, [rbp-0x18]\n-       mov      rdi, r15\n\u002B       lea      rsi, [rbp-0x10]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[Moq.MatcherObserver\u002BObservation](System.Collections.Generic.IEnumerable\u00601[Moq.MatcherObserver\u002BObservation],byref):Moq.MatcherObserver\u002BObservation\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[Moq.MatcherObserver\u002BObservation](System.Collections.Generic.IEnumerable\u00601[Moq.MatcherObserver\u002BObservation],byref):Moq.MatcherObserver\u002BObservation\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 2.00\n-G_M63042_IG08:\n-       cmp      byte  ptr [rbp-0x18], 0\n-       je       SHORT G_M63042_IG10\n\u002B       cmp      byte  ptr [rbp-0x10], 0\n\u002B       je       SHORT G_M63042_IG08\n        mov      rdi, rbx\n        mov      rsi, rax\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n        mov      eax, 1\n-\t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 1.88\n-G_M63042_IG09:\n-       add      rsp, 16\n\u002B\t\t\t\t\t\t;; size=38 bbWeight=0.50 PerfScore 3.75\n\u002BG_M63042_IG07:\n\u002B       add      rsp, 8\n        pop      rbx\n-       pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 1.38\n-G_M63042_IG10:\n\u002B\t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n\u002BG_M63042_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 158, prolog size 13, PerfScore 23.38, instruction count 48, allocated bytes for code 158 (MethodHash=c4a109bd) for method Moq.MatcherObserver:TryGetLastMatch(byref):bool:this (FullOpts)\n\u002B; Total bytes of code 96, prolog size 8, PerfScore 15.12, instruction count 32, allocated bytes for code 96 (MethodHash=c4a109bd) for method Moq.MatcherObserver:TryGetLastMatch(byref):bool:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":158,"DiffBytes":96},{"Assembly":"NJsonSchema.dasm","Method":"NJsonSchema.SampleJsonSchemaGenerator:MergeAndAssignItemSchemas(NJsonSchema.JsonSchema,NJsonSchema.JsonSchema,System.Collections.Generic.List\u00601[NJsonSchema.JsonSchema],System.String) (FullOpts)","Category":"improvement","Description":"1,256 -\u003E 1,204 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,7 \u002B10,7 @@\n ;\n ;  V00 arg0         [V00,T17] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CNJsonSchema.JsonSchema\u003E\n ;  V01 arg1         [V01,T14] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CNJsonSchema.JsonSchema\u003E\n-;  V02 arg2         [V02,T08] (  7,  5.50)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[NJsonSchema.JsonSchema]\u003E\n\u002B;  V02 arg2         [V02,T08] (  6,  5   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[NJsonSchema.JsonSchema]\u003E\n ;  V03 arg3         [V03,T18] (  3,  2.50)     ref  -\u003E  r13         class-hnd single-def \u003CSystem.String\u003E\n ;* V04 loc0         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CNJsonSchema.JsonSchema\u003E\n ;  V05 loc1         [V05,T10] (  4,  6   )     ref  -\u003E  [rbp-0x40]  class-hnd exact spill-single-def \u003CNJsonSchema.JsonSchema\u003E\n@@ -20,37 \u002B20,37 @@\n ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V10 tmp1         [V10,T04] (  6, 10   )     ref  -\u003E  [rbp-0x50]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CNJsonSchema.JsonSchema\u003E\n ;  V11 tmp2         [V11,T06] (  7,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CNJsonSchema.JsonSchema\u003E\n-;  V12 tmp3         [V12,T25] (  2,  2   )     ref  -\u003E  r12         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[NJsonSchema.JsonSchema,System.Collections.Generic.IEnumerable\u00601[System.Collections.Generic.KeyValuePair\u00602[System.String,NJsonSchema.JsonSchemaProperty]]]\u003E\n\u002B;  V12 tmp3         [V12,T24] (  2,  2   )     ref  -\u003E  r12         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[NJsonSchema.JsonSchema,System.Collections.Generic.IEnumerable\u00601[System.Collections.Generic.KeyValuePair\u00602[System.String,NJsonSchema.JsonSchemaProperty]]]\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V14 tmp5         [V14,T23] (  4,  2   )     ref  -\u003E  r12        \n-;  V15 tmp6         [V15,T26] (  2,  2   )     ref  -\u003E  r12         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Collections.Generic.KeyValuePair\u00602[System.String,NJsonSchema.JsonSchemaProperty],System.String]\u003E\n\u002B;  V14 tmp5         [V14,T22] (  4,  2   )     ref  -\u003E  r12        \n\u002B;  V15 tmp6         [V15,T25] (  2,  2   )     ref  -\u003E  r12         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Collections.Generic.KeyValuePair\u00602[System.String,NJsonSchema.JsonSchemaProperty],System.String]\u003E\n ;  V16 tmp7         [V16,T16] (  5,  4.50)     ref  -\u003E  rbx         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Collections.Generic.KeyValuePair\u00602[System.String,NJsonSchema.JsonSchemaProperty]]\u003E\n ;* V17 tmp8         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V18 tmp9         [V18,T24] (  4,  2   )     ref  -\u003E  r12        \n\u002B;  V18 tmp9         [V18,T23] (  4,  2   )     ref  -\u003E  r12        \n ;  V19 tmp10        [V19,T00] (  3, 24   )     ref  -\u003E  [rbp-0x58]  class-hnd exact spill-single-def \u0022non-inline candidate call\u0022 \u003CNJsonSchema.Collections.ObservableDictionary\u00602[System.String,NJsonSchema.JsonSchemaProperty]\u003E\n ;  V20 tmp11        [V20,T01] (  2, 16   )     ref  -\u003E  [rbp-0x60]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.__Canon\u003E\n ;  V21 tmp12        [V21,T11] (  5,  5   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Collections.Generic.KeyValuePair\u00602[System.String,NJsonSchema.JsonSchemaProperty],System.String]\u003E\n ;  V22 tmp13        [V22,T12] (  5,  5   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[NJsonSchema.JsonSchema,System.Collections.Generic.IEnumerable\u00601[System.Collections.Generic.KeyValuePair\u00602[System.String,NJsonSchema.JsonSchemaProperty]]]\u003E\n-;  V23 tmp14        [V23    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V23 tmp14        [V23    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V24 tmp15        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V25 tmp16        [V25,T20] (  4,  3   )     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CNJsonSchema.JsonSchema\u003E\n-;  V26 tmp17        [V26,T21] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[NJsonSchema.JsonSchema]\u003E\n\u002B;  V25 tmp16        [V25,T20] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CNJsonSchema.JsonSchema\u003E\n\u002B;* V26 tmp17        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[NJsonSchema.JsonSchema]\u003E\n ;  V27 tmp18        [V27,T15] (  3,  5   )     int  -\u003E  rdi         \u0022Inlining Arg\u0022\n-;  V28 tmp19        [V28,T27] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CNJsonSchema.SampleJsonSchemaGenerator\u002B\u003C\u003Ec\u003E\n\u002B;  V28 tmp19        [V28,T26] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CNJsonSchema.SampleJsonSchemaGenerator\u002B\u003C\u003Ec\u003E\n ;* V29 tmp20        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[NJsonSchema.JsonSchema]\u003E\n ;* V30 tmp21        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[NJsonSchema.JsonSchema,System.Collections.Generic.IEnumerable\u00601[System.Collections.Generic.KeyValuePair\u00602[System.String,NJsonSchema.JsonSchemaProperty]]]\u003E\n ;  V31 tmp22        [V31,T13] (  5,  5   )     ref  -\u003E  [rbp-0x68]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Enumerable\u002BSelectManySingleSelectorIterator\u00602[NJsonSchema.JsonSchema,System.Collections.Generic.KeyValuePair\u00602[System.String,NJsonSchema.JsonSchemaProperty]]\u003E\n-;* V32 tmp23        [V32,T37] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V33 tmp24        [V33,T33] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CNJsonSchema.JsonSchema[]\u003E\n-;  V34 tmp25        [V34,T28] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CNJsonSchema.SampleJsonSchemaGenerator\u002B\u003C\u003Ec\u003E\n\u002B;* V32 tmp23        [V32,T36] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V33 tmp24        [V33,T32] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CNJsonSchema.JsonSchema[]\u003E\n\u002B;  V34 tmp25        [V34,T27] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CNJsonSchema.SampleJsonSchemaGenerator\u002B\u003C\u003Ec\u003E\n ;* V35 tmp26        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Collections.Generic.KeyValuePair\u00602[System.String,NJsonSchema.JsonSchemaProperty]]\u003E\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[System.Collections.Generic.KeyValuePair\u00602[System.String,NJsonSchema.JsonSchemaProperty],System.String]\u003E\n-;  V37 tmp28        [V37,T34] (  3,  1.50)     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Linq.IGrouping\u00602[System.String,System.Collections.Generic.KeyValuePair\u00602[System.String,NJsonSchema.JsonSchemaProperty]]]\u003E\n\u002B;  V37 tmp28        [V37,T33] (  3,  1.50)     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Linq.IGrouping\u00602[System.String,System.Collections.Generic.KeyValuePair\u00602[System.String,NJsonSchema.JsonSchemaProperty]]]\u003E\n ;* V38 tmp29        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Collections.Generic.KeyValuePair\u00602[System.String,NJsonSchema.JsonSchemaProperty]]\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[System.Collections.Generic.KeyValuePair\u00602[System.String,NJsonSchema.JsonSchemaProperty],System.String]\u003E\n ;  V40 tmp31        [V40,T09] (  6,  6   )     ref  -\u003E  [rbp-0x70]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Enumerable\u002BGroupByIterator\u00602[System.Collections.Generic.KeyValuePair\u00602[System.String,NJsonSchema.JsonSchemaProperty],System.String]\u003E\n-;* V41 tmp32        [V41,T38] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V42 tmp33        [V42,T35] (  3,  1.50)     ref  -\u003E  rdi         class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Generic.KeyValuePair\u00602[System.String,NJsonSchema.JsonSchemaProperty][]\u003E\n\u002B;* V41 tmp32        [V41,T37] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V42 tmp33        [V42,T34] (  3,  1.50)     ref  -\u003E  rdi         class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Generic.KeyValuePair\u00602[System.String,NJsonSchema.JsonSchemaProperty][]\u003E\n ;  V43 tmp34        [V43    ] (  3,  8   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n... diff truncated; middle omitted ...\n        mov      gword ptr [rbp-0x70], rax\n@@ -262,29 \u002B243,29 @@ G_M16329_IG19:\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      rdi, rdi\n        mov      gword ptr [rbx\u002B0x28], rdi\n-       jmp      SHORT G_M16329_IG22\n\u002B       jmp      SHORT G_M16329_IG19\n \t\t\t\t\t\t;; size=91 bbWeight=0.50 PerfScore 8.88\n-G_M16329_IG20:\n\u002BG_M16329_IG17:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M16329_IG35\n\u002B       je       G_M16329_IG32\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n-G_M16329_IG21:\n\u002BG_M16329_IG18:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Array\u002BEmptyArray\u00601[System.Linq.IGrouping\u00602[System.String,System.Collections.Generic.KeyValuePair\u00602[System.String,NJsonSchema.JsonSchemaProperty]]]:Value\n        mov      rbx, gword ptr [rdi]\n \t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 1.12\n-G_M16329_IG22:\n\u002BG_M16329_IG19:\n        mov      rdi, rbx\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEnumerable\u00601[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator\u00601[System.__Canon]:this\n        call     [r11]System.Collections.Generic.IEnumerable\u00601[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator\u00601[System.__Canon]:this\n        mov      gword ptr [rbp-0x48], rax\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 2.25\n-G_M16329_IG23:\n\u002BG_M16329_IG20:\n        mov      rdi, gword ptr [rbp-0x48]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():bool:this\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n-       je       G_M16329_IG28\n\u002B       je       G_M16329_IG25\n        mov      rdi, gword ptr [rbp-0x48]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEnumerator\u00601[System.__Canon]:get_Current():System.__Canon:this\n        call     [r11]System.Collections.Generic.IEnumerator\u00601[System.__Canon]:get_Current():System.__Canon:this\n@@ -301,17 \u002B282,17 @@ G_M16329_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n        call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M16329_IG25\n\u002B       je       SHORT G_M16329_IG22\n \t\t\t\t\t\t;; size=108 bbWeight=4 PerfScore 94.00\n-G_M16329_IG24:\n\u002BG_M16329_IG21:\n        lea      rsi, [rbp-0x38]\n        mov      rdi, rax\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x50]\n        call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]]:TryGetFirst(byref):System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]:this\n-       jmp      SHORT G_M16329_IG26\n\u002B       jmp      SHORT G_M16329_IG23\n \t\t\t\t\t\t;; size=19 bbWeight=2 PerfScore 19.50\n-G_M16329_IG25:\n\u002BG_M16329_IG22:\n        lea      rdx, [rbp-0x38]\n        mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Collections.Generic.KeyValuePair\u00602[System.String,NJsonSchema.JsonSchemaProperty]](System.Collections.Generic.IEnumerable\u00601[System.Collections.Generic.KeyValuePair\u00602[System.String,NJsonSchema.JsonSchemaProperty]],byref):System.Collections.Generic.KeyValuePair\u00602[System.String,NJsonSchema.JsonSchemaProperty]\n@@ -319,9 \u002B300,9 @@ G_M16329_IG25:\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]](System.Collections.Generic.IEnumerable\u00601[System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]],byref):System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]\n        nop      \n \t\t\t\t\t\t;; size=30 bbWeight=2 PerfScore 9.00\n-G_M16329_IG26:\n\u002BG_M16329_IG23:\n        cmp      byte  ptr [rbp-0x38], 0\n-       je       SHORT G_M16329_IG27\n\u002B       je       SHORT G_M16329_IG24\n        mov      rbx, gword ptr [rbp-0x58]\n        cmp      byte  ptr [rbx], bl\n        mov      rdi, rbx\n@@ -329,21 \u002B310,21 @@ G_M16329_IG26:\n        xor      ecx, ecx\n        mov      rax, 0xD1FFAB1E      ; code for NJsonSchema.Collections.ObservableDictionary\u00602[System.__Canon,System.__Canon]:Insert(System.__Canon,System.__Canon,bool):this\n        call     [rax]NJsonSchema.Collections.ObservableDictionary\u00602[System.__Canon,System.__Canon]:Insert(System.__Canon,System.__Canon,bool):this\n-       jmp      G_M16329_IG23\n\u002B       jmp      G_M16329_IG20\n \t\t\t\t\t\t;; size=38 bbWeight=4 PerfScore 47.00\n-G_M16329_IG27:\n\u002BG_M16329_IG24:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M16329_IG28:\n\u002BG_M16329_IG25:\n        mov      r12, gword ptr [rbp-0x40]\n        mov      rdi, gword ptr [rbp-0x48]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        mov      rax, r12\n \t\t\t\t\t\t;; size=24 bbWeight=0.50 PerfScore 2.75\n-G_M16329_IG29:\n\u002BG_M16329_IG26:\n        mov      rdi, r14\n        mov      rsi, rax\n        mov      rdx, r13\n@@ -360,14 \u002B341,14 @@ G_M16329_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for NJsonSchema.References.JsonReferenceBase\u00601[System.__Canon]:set_Reference(System.__Canon):this\n        call     [rax]NJsonSchema.References.JsonReferenceBase\u00601[System.__Canon]:set_Reference(System.__Canon):this\n        cmp      dword ptr [rbx\u002B0x118], 0\n-       je       SHORT G_M16329_IG30\n\u002B       je       SHORT G_M16329_IG27\n        xor      edi, edi\n        mov      dword ptr [rbx\u002B0x118], edi\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for NJsonSchema.JsonSchema:ResetTypeRaw():this\n        call     [rax]NJsonSchema.JsonSchema:ResetTypeRaw():this\n \t\t\t\t\t\t;; size=105 bbWeight=0.50 PerfScore 10.62\n-G_M16329_IG30:\n\u002BG_M16329_IG27:\n        mov      rdi, r15\n        mov      rsi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for NJsonSchema.JsonSchema:set_Item(NJsonSchema.JsonSchema):this\n@@ -375,7 \u002B356,7 @@ G_M16329_IG30:\n        call     [rax]NJsonSchema.JsonSchema:set_Item(NJsonSchema.JsonSchema):this\n        nop      \n \t\t\t\t\t\t;; size=21 bbWeight=1 PerfScore 6.00\n-G_M16329_IG31:\n\u002BG_M16329_IG28:\n        add      rsp, 72\n        pop      rbx\n        pop      r12\n@@ -385,46 \u002B366,46 @@ G_M16329_IG31:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M16329_IG32:\n\u002BG_M16329_IG29:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M16329_IG33:\n\u002BG_M16329_IG30:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M16329_IG34:\n\u002BG_M16329_IG31:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[System.Collections.Generic.KeyValuePair\u00602[System.String,NJsonSchema.JsonSchemaProperty]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M16329_IG13\n\u002B       jmp      G_M16329_IG10\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M16329_IG35:\n\u002BG_M16329_IG32:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[System.Linq.IGrouping\u00602[System.String,System.Collections.Generic.KeyValuePair\u00602[System.String,NJsonSchema.JsonSchemaProperty]]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M16329_IG21\n\u002B       jmp      G_M16329_IG18\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M16329_IG36:\n\u002BG_M16329_IG33:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M16329_IG37:\n\u002BG_M16329_IG34:\n        cmp      gword ptr [rbp-0x48], 0\n-       je       SHORT G_M16329_IG38\n\u002B       je       SHORT G_M16329_IG35\n        mov      rdi, gword ptr [rbp-0x48]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M16329_IG38:\n\u002BG_M16329_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M16329_IG39:\n\u002BG_M16329_IG36:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1256, prolog size 41, PerfScore 282.66, instruction count 273, allocated bytes for code 1256 (MethodHash=a79dc036) for method NJsonSchema.SampleJsonSchemaGenerator:MergeAndAssignItemSchemas(NJsonSchema.JsonSchema,NJsonSchema.JsonSchema,System.Collections.Generic.List\u00601[NJsonSchema.JsonSchema],System.String) (FullOpts)\n\u002B; Total bytes of code 1204, prolog size 41, PerfScore 274.91, instruction count 260, allocated bytes for code 1204 (MethodHash=a79dc036) for method NJsonSchema.SampleJsonSchemaGenerator:MergeAndAssignItemSchemas(NJsonSchema.JsonSchema,NJsonSchema.JsonSchema,System.Collections.Generic.List\u00601[NJsonSchema.JsonSchema],System.String) (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1256,"DiffBytes":1204},{"Assembly":"NSwag.Core.dasm","Method":"NSwag.OpenApiOperation:UpdateBodyParameter(NSwag.OpenApiParameter):this (FullOpts)","Category":"improvement","Description":"869 -\u003E 759 bytes (-110)","ExtraInfo":null,"Diff":"@@ -17,70 \u002B17,70 @@\n ;* V06 tmp3         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V07 tmp4         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V08 tmp5         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V09 tmp6         [V09,T31] (  3,  2   )     ref  -\u003E  rsi        \n\u002B;  V09 tmp6         [V09,T29] (  3,  2   )     ref  -\u003E  rsi        \n ;* V10 tmp7         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CNSwag.OpenApiMediaType\u003E\n ;* V11 tmp8         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V12 tmp9         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V13 tmp10        [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V14 tmp11        [V14,T32] (  3,  2   )     ref  -\u003E  rsi        \n\u002B;  V14 tmp11        [V14,T30] (  3,  2   )     ref  -\u003E  rsi        \n ;  V15 tmp12        [V15,T11] (  3,  5   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CNSwag.OpenApiOperation\u003E\n ;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V17 tmp14        [V17,T33] (  3,  2   )     ref  -\u003E  rdi         class-hnd \u0022Inline return value spill temp\u0022 \u003CNSwag.OpenApiRequestBody\u003E\n\u002B;  V17 tmp14        [V17,T31] (  3,  2   )     ref  -\u003E  rdi         class-hnd \u0022Inline return value spill temp\u0022 \u003CNSwag.OpenApiRequestBody\u003E\n ;  V18 tmp15        [V18,T03] (  5,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CNSwag.OpenApiRequestBody\u003E\n ;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CNSwag.OpenApiRequestBody\u003E\n-;  V21 tmp18        [V21,T39] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.__Canon\u003E\n-;  V22 tmp19        [V22,T23] (  5,  2.50)     ref  -\u003E  rax        \n\u002B;  V21 tmp18        [V21,T37] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.__Canon\u003E\n\u002B;  V22 tmp19        [V22,T21] (  5,  2.50)     ref  -\u003E  rax        \n ;* V23 tmp20        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V24 tmp21        [V24,T12] (  3,  5   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CNSwag.OpenApiOperation\u003E\n ;* V25 tmp22        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V26 tmp23        [V26,T34] (  3,  2   )     ref  -\u003E  rdi         class-hnd \u0022Inline return value spill temp\u0022 \u003CNSwag.OpenApiRequestBody\u003E\n\u002B;  V26 tmp23        [V26,T32] (  3,  2   )     ref  -\u003E  rdi         class-hnd \u0022Inline return value spill temp\u0022 \u003CNSwag.OpenApiRequestBody\u003E\n ;  V27 tmp24        [V27,T04] (  5,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CNSwag.OpenApiRequestBody\u003E\n ;* V28 tmp25        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V29 tmp26        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CNSwag.OpenApiRequestBody\u003E\n-;  V30 tmp27        [V30,T40] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.__Canon\u003E\n-;  V31 tmp28        [V31,T24] (  5,  2.50)     ref  -\u003E  rax        \n\u002B;  V30 tmp27        [V30,T38] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.__Canon\u003E\n\u002B;  V31 tmp28        [V31,T22] (  5,  2.50)     ref  -\u003E  rax        \n ;  V32 tmp29        [V32,T13] (  3,  5   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CNSwag.OpenApiOperation\u003E\n ;* V33 tmp30        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V34 tmp31        [V34,T35] (  3,  2   )     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CNSwag.OpenApiRequestBody\u003E\n\u002B;  V34 tmp31        [V34,T33] (  3,  2   )     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CNSwag.OpenApiRequestBody\u003E\n ;  V35 tmp32        [V35,T05] (  5,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CNSwag.OpenApiRequestBody\u003E\n ;* V36 tmp33        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V37 tmp34        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CNSwag.OpenApiRequestBody\u003E\n-;  V38 tmp35        [V38,T41] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.__Canon\u003E\n-;  V39 tmp36        [V39,T25] (  5,  2.50)     ref  -\u003E  rax        \n-;  V40 tmp37        [V40,T36] (  3,  2   )     ref  -\u003E  rdi         class-hnd \u0022Inline return value spill temp\u0022 \u003CNSwag.OpenApiRequestBody\u003E\n\u002B;  V38 tmp35        [V38,T39] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.__Canon\u003E\n\u002B;  V39 tmp36        [V39,T23] (  5,  2.50)     ref  -\u003E  rax        \n\u002B;  V40 tmp37        [V40,T34] (  3,  2   )     ref  -\u003E  rdi         class-hnd \u0022Inline return value spill temp\u0022 \u003CNSwag.OpenApiRequestBody\u003E\n ;  V41 tmp38        [V41,T06] (  5,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CNSwag.OpenApiRequestBody\u003E\n ;* V42 tmp39        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V43 tmp40        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CNSwag.OpenApiRequestBody\u003E\n-;  V44 tmp41        [V44,T42] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.__Canon\u003E\n-;  V45 tmp42        [V45,T26] (  5,  2.50)     ref  -\u003E  rax        \n\u002B;  V44 tmp41        [V44,T40] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.__Canon\u003E\n\u002B;  V45 tmp42        [V45,T24] (  5,  2.50)     ref  -\u003E  rax        \n ;* V46 tmp43        [V46    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V47 tmp44        [V47,T14] (  3,  5   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CNSwag.OpenApiOperation\u003E\n ;* V48 tmp45        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V49 tmp46        [V49,T37] (  3,  2   )     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CNSwag.OpenApiRequestBody\u003E\n\u002B;  V49 tmp46        [V49,T35] (  3,  2   )     ref  -\u003E  rdx         class-hnd \u0022Inline return value spill temp\u0022 \u003CNSwag.OpenApiRequestBody\u003E\n ;  V50 tmp47        [V50,T07] (  5,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CNSwag.OpenApiRequestBody\u003E\n ;* V51 tmp48        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V52 tmp49        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CNSwag.OpenApiRequestBody\u003E\n-;  V53 tmp50        [V53,T43] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.__Canon\u003E\n-;  V54 tmp51        [V54,T27] (  5,  2.50)     ref  -\u003E  rax        \n-;  V55 tmp52        [V55,T09] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CNSwag.Collections.ObservableDictionary\u00602[System.String,NSwag.OpenApiMediaType]\u003E\n-;  V56 tmp53        [V56    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;* V57 tmp54        [V57    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.KeyValuePair\u00602[System.String,NSwag.OpenApiMediaType]\u003E\n-;  V58 tmp55        [V58,T21] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Collections.Generic.KeyValuePair\u00602[System.String,NSwag.OpenApiMediaType]]\u003E\n\u002B;  V53 tmp50        [V53,T41] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.__Canon\u003E\n\u002B;  V54 tmp51        [V54,T25] (  5,  2.50)     ref  -\u003E  rax        \n\u002B;  V55 tmp52        [V55,T09] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CNSwag.Collections.ObservableDictionary\u00602[System.String,NSwag.OpenApiMediaType]\u003E\n\u002B;  V56 tmp53        [V56    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;* V57 tmp54        [V57    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.KeyValuePair\u00602[System.String,NSwag.OpenApiMediaType]\u003E\n\u002B;* V58 tmp55        [V58    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Collections.Generic.KeyValuePair\u00602[System.String,NSwag.OpenApiMediaType]]\u003E\n ;* V59 tmp56        [V59    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CSystem.Collections.Generic.KeyValuePair\u00602[System.String,NSwag.OpenApiMediaType]\u003E\n ;* V60 tmp57        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CNSwag.OpenApiMediaType\u003E\n ;* V61 tmp58        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CNJsonSchema.JsonSchema\u003E\n ;* V62 tmp59        [V62    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Object\u003E\n-;  V63 tmp60        [V63,T38] (  3,  2   )     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CNSwag.OpenApiRequestBody\u003E\n\u002B;  V63 tmp60        [V63,T36] (  3,  2   )     ref  -\u003E  rdx         class-hnd \u0022Inline return value spill temp\u0022 \u003CNSwag.OpenApiRequestBody\u003E\n... diff truncated; middle omitted ...\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M59529_IG27\n-\t\t\t\t\t\t;; size=43 bbWeight=1 PerfScore 8.25\n-G_M59529_IG26:\n-       lea      rsi, [rbp-0x28]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]]:TryGetFirst(byref):System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]:this\n-       jmp      SHORT G_M59529_IG28\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M59529_IG27:\n\u002B       mov      rsi, gword ptr [rdx\u002B0x30]\n\u002B       test     rsi, rsi\n\u002B       je       G_M59529_IG38\n        lea      rdx, [rbp-0x28]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Collections.Generic.KeyValuePair\u00602[System.String,NSwag.OpenApiMediaType]](System.Collections.Generic.IEnumerable\u00601[System.Collections.Generic.KeyValuePair\u00602[System.String,NSwag.OpenApiMediaType]],byref):System.Collections.Generic.KeyValuePair\u00602[System.String,NSwag.OpenApiMediaType]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]](System.Collections.Generic.IEnumerable\u00601[System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]],byref):System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]](System.Collections.Generic.IEnumerable\u00601[System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]],byref):System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]\n-       nop      \n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.25\n-G_M59529_IG28:\n        test     rdx, rdx\n-       je       SHORT G_M59529_IG30\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M59529_IG29:\n\u002B       je       SHORT G_M59529_IG27\n\u002B\t\t\t\t\t\t;; size=44 bbWeight=1 PerfScore 8.50\n\u002BG_M59529_IG26:\n        mov      rsi, gword ptr [rdx\u002B0x10]\n-       jmp      SHORT G_M59529_IG31\n\u002B       jmp      SHORT G_M59529_IG28\n \t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 2.00\n-G_M59529_IG30:\n\u002BG_M59529_IG27:\n        xor      rsi, rsi\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M59529_IG31:\n\u002BG_M59529_IG28:\n        lea      rdi, bword ptr [rbx\u002B0xC8]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      r15, gword ptr [r15\u002B0x10]\n        test     r15, r15\n-       je       SHORT G_M59529_IG33\n\u002B       je       SHORT G_M59529_IG30\n \t\t\t\t\t\t;; size=21 bbWeight=1 PerfScore 4.75\n-G_M59529_IG32:\n\u002BG_M59529_IG29:\n        mov      rdi, r15\n        mov      rax, qword ptr [r15]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax]NJsonSchema.References.JsonReferenceBase\u00601[System.__Canon]:get_Reference():System.__Canon:this\n        test     rax, rax\n        cmove    rax, r15\n-       mov      rsi, rax\n-       jmp      SHORT G_M59529_IG34\n\u002B       mov      rdx, rax\n\u002B       jmp      SHORT G_M59529_IG31\n \t\t\t\t\t\t;; size=24 bbWeight=0.50 PerfScore 5.12\n\u002BG_M59529_IG30:\n\u002B       xor      rdx, rdx\n\u002B\t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n\u002BG_M59529_IG31:\n\u002B       mov      rsi, gword ptr [rdx\u002B0x30]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M59529_IG38\n\u002B       lea      rdx, [rbp-0x30]\n\u002B       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Collections.Generic.KeyValuePair\u00602[System.String,NSwag.OpenApiMediaType]](System.Collections.Generic.IEnumerable\u00601[System.Collections.Generic.KeyValuePair\u00602[System.String,NSwag.OpenApiMediaType]],byref):System.Collections.Generic.KeyValuePair\u00602[System.String,NSwag.OpenApiMediaType]\n\u002B       mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]](System.Collections.Generic.IEnumerable\u00601[System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]],byref):System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]\n\u002B       call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]](System.Collections.Generic.IEnumerable\u00601[System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]],byref):System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]\n\u002B       test     rdx, rdx\n\u002B       je       SHORT G_M59529_IG33\n\u002B\t\t\t\t\t\t;; size=40 bbWeight=1 PerfScore 8.50\n\u002BG_M59529_IG32:\n\u002B       mov      rsi, gword ptr [rdx\u002B0x08]\n\u002B       jmp      SHORT G_M59529_IG34\n\u002B\t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 2.00\n G_M59529_IG33:\n        xor      rsi, rsi\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n G_M59529_IG34:\n-       mov      r15, gword ptr [rsi\u002B0x30]\n-       test     r15, r15\n-       je       G_M59529_IG44\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Collections.Generic.KeyValuePair\u00602[System.String,NSwag.OpenApiMediaType]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M59529_IG36\n-\t\t\t\t\t\t;; size=43 bbWeight=1 PerfScore 8.25\n-G_M59529_IG35:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]]:TryGetFirst(byref):System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]:this\n-       jmp      SHORT G_M59529_IG37\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M59529_IG36:\n-       lea      rdx, [rbp-0x30]\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Collections.Generic.KeyValuePair\u00602[System.String,NSwag.OpenApiMediaType]](System.Collections.Generic.IEnumerable\u00601[System.Collections.Generic.KeyValuePair\u00602[System.String,NSwag.OpenApiMediaType]],byref):System.Collections.Generic.KeyValuePair\u00602[System.String,NSwag.OpenApiMediaType]\n-       mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]](System.Collections.Generic.IEnumerable\u00601[System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]],byref):System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]\n-       call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]](System.Collections.Generic.IEnumerable\u00601[System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]],byref):System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]\n-       nop      \n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.25\n-G_M59529_IG37:\n-       test     rdx, rdx\n-       je       SHORT G_M59529_IG39\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M59529_IG38:\n-       mov      rsi, gword ptr [rdx\u002B0x08]\n-       jmp      SHORT G_M59529_IG40\n-\t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 2.00\n-G_M59529_IG39:\n-       xor      rsi, rsi\n-\t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M59529_IG40:\n        lea      rdi, bword ptr [rbx\u002B0x1D0]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, rbx\n@@ -398,18 \u002B358,18 @@ G_M59529_IG40:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M59529_IG42\n\u002B       je       SHORT G_M59529_IG36\n \t\t\t\t\t\t;; size=49 bbWeight=1 PerfScore 9.75\n-G_M59529_IG41:\n\u002BG_M59529_IG35:\n        mov      rdi, rax\n        mov      rsi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for NSwag.OpenApiOperation:UpdateRequestBody(NSwag.OpenApiParameter):this\n        call     [rax]NSwag.OpenApiOperation:UpdateRequestBody(NSwag.OpenApiParameter):this\n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 1.88\n-G_M59529_IG42:\n\u002BG_M59529_IG36:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M59529_IG43:\n\u002BG_M59529_IG37:\n        add      rsp, 16\n        pop      rbx\n        pop      r13\n@@ -418,12 \u002B378,12 @@ G_M59529_IG43:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n-G_M59529_IG44:\n\u002BG_M59529_IG38:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 869, prolog size 27, PerfScore 177.88, instruction count 228, allocated bytes for code 869 (MethodHash=593e1776) for method NSwag.OpenApiOperation:UpdateBodyParameter(NSwag.OpenApiParameter):this (FullOpts)\n\u002B; Total bytes of code 759, prolog size 27, PerfScore 161.62, instruction count 200, allocated bytes for code 759 (MethodHash=593e1776) for method NSwag.OpenApiOperation:UpdateBodyParameter(NSwag.OpenApiParameter):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":869,"DiffBytes":759},{"Assembly":"Nest.dasm","Method":"Nest.ExpressionExtensions:ComparisonValueFromExpression(System.Linq.Expressions.Expression,byref,byref):System.Object (FullOpts)","Category":"improvement","Description":"1,081 -\u003E 921 bytes (-160)","ExtraInfo":null,"Diff":"@@ -12,48 \u002B12,48 @@\n ;  V01 arg1         [V01,T01] (  6,  4.50)   byref  -\u003E  r15         single-def\n ;  V02 arg2         [V02,T02] (  4,  3.50)   byref  -\u003E  r14         single-def\n ;* V03 loc0         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CNest.ToStringExpressionVisitor\u003E\n-;  V04 loc1         [V04,T25] (  2,  1   )     ref  -\u003E  rax         class-hnd exact single-def \u003CSystem.String\u003E\n-;  V05 loc2         [V05,T15] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Linq.Expressions.LambdaExpression\u003E\n-;  V06 loc3         [V06,T16] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Linq.Expressions.LambdaExpression\u003E\n-;  V07 loc4         [V07,T17] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Linq.Expressions.MemberExpression\u003E\n\u002B;  V04 loc1         [V04,T21] (  2,  1   )     ref  -\u003E  rax         class-hnd exact single-def \u003CSystem.String\u003E\n\u002B;  V05 loc2         [V05,T13] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Linq.Expressions.LambdaExpression\u003E\n\u002B;  V06 loc3         [V06,T14] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Linq.Expressions.LambdaExpression\u003E\n\u002B;  V07 loc4         [V07,T15] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Linq.Expressions.MemberExpression\u003E\n ;  V08 loc5         [V08,T12] (  5,  2.50)     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V10 tmp1         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V13 tmp4         [V13    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def\n-;  V14 tmp5         [V14,T22] (  3,  1.50)     ref  -\u003E  rax        \n\u002B;  V14 tmp5         [V14,T19] (  3,  1.50)     ref  -\u003E  rax        \n ;  V15 tmp6         [V15,T03] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CNest.ToStringExpressionVisitor\u003E\n-;  V16 tmp7         [V16,T27] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Exception\u003E\n\u002B;  V16 tmp7         [V16,T24] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Exception\u003E\n ;* V17 tmp8         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n ;* V18 tmp9         [V18    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def\n ;* V19 tmp10        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V20 tmp11        [V20    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def\n-;  V21 tmp12        [V21,T23] (  3,  1.50)     ref  -\u003E  rax        \n-;  V22 tmp13        [V22,T28] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Exception\u003E\n-;  V23 tmp14        [V23,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V24 tmp15        [V24    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V25 tmp16        [V25,T13] (  5,  2.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n-;  V26 tmp17        [V26,T18] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V21 tmp12        [V21,T20] (  3,  1.50)     ref  -\u003E  rax        \n\u002B;  V22 tmp13        [V22,T25] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Exception\u003E\n\u002B;  V23 tmp14        [V23,T05] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V24 tmp15        [V24    ] (  1,  0.50)   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V25 tmp16        [V25,T16] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n\u002B;* V26 tmp17        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;* V27 tmp18        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V28 tmp19        [V28,T04] (  6,  4.75)     ref  -\u003E  rax         single-def \u0022spilling varStr\u0022\n-;  V29 tmp20        [V29,T21] (  2,  2   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n-;  V30 tmp21        [V30,T06] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V31 tmp22        [V31    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V32 tmp23        [V32,T24] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V33 tmp24        [V33,T19] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V34 tmp25        [V34,T07] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V35 tmp26        [V35    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V36 tmp27        [V36,T14] (  5,  2.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n-;  V37 tmp28        [V37,T20] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V29 tmp20        [V29,T18] (  2,  2   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V30 tmp21        [V30,T06] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V31 tmp22        [V31    ] (  1,  0.50)   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V32 tmp23        [V32,T22] (  2,  1   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;* V33 tmp24        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V34 tmp25        [V34,T07] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V35 tmp26        [V35    ] (  1,  0.50)   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V36 tmp27        [V36,T17] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n\u002B;* V37 tmp28        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;  V38 tmp29        [V38,T08] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Stack\u00601[System.String]\u003E\n ;  V39 tmp30        [V39,T09] (  3,  3   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n ;  V40 tmp31        [V40,T10] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V41 tmp32        [V41,T11] (  3,  3   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n-;  V42 tmp33        [V42,T29] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V43 tmp34        [V43,T30] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V44 tmp35        [V44,T31] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V45 rat0         [V45,T26] (  3,  3   )  simd64  -\u003E  mm0         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n\u002B;  V42 tmp33        [V42,T26] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V43 tmp34        [V43,T27] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V44 tmp35        [V44,T28] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n... diff truncated; middle omitted ...\n        test     rax, rax\n-       je       SHORT G_M57099_IG09\n\u002B       je       SHORT G_M57099_IG07\n        mov      rdi, rax\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x48]\n@@ -150,16 \u002B133,16 @@ G_M57099_IG08:\n        mov      rsi, rax\n        mov      rdi, r15\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n-       jmp      G_M57099_IG20\n\u002B       jmp      G_M57099_IG14\n \t\t\t\t\t\t;; size=72 bbWeight=0.50 PerfScore 11.50\n-G_M57099_IG09:\n\u002BG_M57099_IG07:\n        mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Expressions.MethodCallExpression\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        mov      r13, rax\n        test     r13, r13\n-       je       G_M57099_IG24\n\u002B       je       G_M57099_IG18\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x40]\n@@ -170,17 \u002B153,17 @@ G_M57099_IG09:\n        call     [rax\u002B0x20]System.Type:get_FullName():System.String:this\n        mov      rdi, 0xD1FFAB1E      ; \u0027Microsoft.FSharp.Core.FuncConvert\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M57099_IG13\n\u002B       je       SHORT G_M57099_IG11\n \t\t\t\t\t\t;; size=79 bbWeight=0.50 PerfScore 11.50\n-G_M57099_IG10:\n\u002BG_M57099_IG08:\n        test     rax, rax\n-       je       G_M57099_IG26\n\u002B       je       G_M57099_IG20\n \t\t\t\t\t\t;; size=9 bbWeight=0.25 PerfScore 0.31\n-G_M57099_IG11:\n\u002BG_M57099_IG09:\n        cmp      dword ptr [rax\u002B0x08], 33\n-       jne      G_M57099_IG26\n\u002B       jne      G_M57099_IG20\n \t\t\t\t\t\t;; size=10 bbWeight=0.12 PerfScore 0.38\n-G_M57099_IG12:\n\u002BG_M57099_IG10:\n        vmovups  zmm0, zmmword ptr [rax\u002B0x0C]\n        vmovups  zmm1, zmmword ptr [rax\u002B0x0E]\n        vpxord   zmm1, zmm1, zmmword ptr [reloc @RWD00]\n@@ -190,88 \u002B173,54 @@ G_M57099_IG12:\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       G_M57099_IG26\n\u002B       je       G_M57099_IG20\n \t\t\t\t\t\t;; size=67 bbWeight=0.50 PerfScore 11.00\n-G_M57099_IG13:\n\u002BG_M57099_IG11:\n        mov      rdi, r13\n        mov      rax, qword ptr [r13]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x20]System.Linq.Expressions.MethodCallExpression:GetOrMakeArguments():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]:this\n-       mov      r13, rax\n-       test     r13, r13\n-       je       G_M57099_IG25\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M57099_IG14\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M57099_IG15\n-\t\t\t\t\t\t;; size=75 bbWeight=0.50 PerfScore 11.75\n-G_M57099_IG14:\n\u002B       je       G_M57099_IG19\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Linq.Expressions.Expression](System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.Expression],byref):System.Linq.Expressions.Expression\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M57099_IG15:\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Expressions.LambdaExpression\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       G_M57099_IG26\n\u002B       je       G_M57099_IG20\n        mov      rdi, rax\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x30]System.Linq.Expressions.LambdaExpression:GetOrMakeParameters():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]:this\n-       mov      r13, rax\n-       test     r13, r13\n-       je       G_M57099_IG25\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ParameterExpression]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M57099_IG16\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M57099_IG17\n-\t\t\t\t\t\t;; size=108 bbWeight=0.50 PerfScore 14.25\n-G_M57099_IG16:\n\u002B       je       G_M57099_IG19\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r13\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Linq.Expressions.ParameterExpression](System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.ParameterExpression],byref):System.Linq.Expressions.ParameterExpression\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M57099_IG17:\n        test     rax, rax\n-       je       SHORT G_M57099_IG18\n\u002B       je       SHORT G_M57099_IG12\n        mov      rdi, rax\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x28]System.Linq.Expressions.Expression:get_Type():System.Type:this\n-       jmp      SHORT G_M57099_IG19\n-\t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 5.25\n-G_M57099_IG18:\n\u002B       jmp      SHORT G_M57099_IG13\n\u002B\t\t\t\t\t\t;; size=157 bbWeight=0.50 PerfScore 20.50\n\u002BG_M57099_IG12:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M57099_IG19:\n\u002BG_M57099_IG13:\n        mov      rdi, r15\n        mov      rsi, rax\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n \t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 0.75\n-G_M57099_IG20:\n\u002BG_M57099_IG14:\n        mov      rdi, 0xD1FFAB1E      ; Nest.ToStringExpressionVisitor\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -294,7 \u002B243,7 @@ G_M57099_IG20:\n        movzx    rdi, byte  ptr [r15\u002B0x10]\n        mov      byte  ptr [r14], dil\n \t\t\t\t\t\t;; size=103 bbWeight=0.50 PerfScore 8.25\n-G_M57099_IG21:\n\u002BG_M57099_IG15:\n        vzeroupper \n        add      rsp, 32\n        pop      rbx\n@@ -304,10 \u002B253,10 @@ G_M57099_IG21:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=16 bbWeight=0.50 PerfScore 2.38\n-G_M57099_IG22:\n\u002BG_M57099_IG16:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M57099_IG23:\n\u002BG_M57099_IG17:\n        vzeroupper \n        add      rsp, 32\n        pop      rbx\n@@ -317,7 \u002B266,7 @@ G_M57099_IG23:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=16 bbWeight=0.50 PerfScore 2.38\n-G_M57099_IG24:\n\u002BG_M57099_IG18:\n        mov      rdi, 0xD1FFAB1E      ; System.Exception\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -339,13 \u002B288,13 @@ G_M57099_IG24:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=100 bbWeight=0 PerfScore 0.00\n-G_M57099_IG25:\n\u002BG_M57099_IG19:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M57099_IG26:\n\u002BG_M57099_IG20:\n        mov      rdi, 0xD1FFAB1E      ; System.Exception\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -366,5 \u002B315,5 @@ RWD00  \tdq\t006F007200630069h, 00740066006F0073h, 006800530046002Eh, 002E00700072\n RWD64  \tdq\t007200630069004Dh, 0066006F0073006Fh, 00530046002E0074h, 0070007200610068h, 0072006F0043002Eh, 00750046002E0065h, 006F00430063006Eh, 007200650076006Eh\n \n \n-; Total bytes of code 1081, prolog size 33, PerfScore 120.27, instruction count 253, allocated bytes for code 1083 (MethodHash=cdd420f4) for method Nest.ExpressionExtensions:ComparisonValueFromExpression(System.Linq.Expressions.Expression,byref,byref):System.Object (FullOpts)\n\u002B; Total bytes of code 921, prolog size 33, PerfScore 97.77, instruction count 214, allocated bytes for code 923 (MethodHash=cdd420f4) for method Nest.ExpressionExtensions:ComparisonValueFromExpression(System.Linq.Expressions.Expression,byref,byref):System.Object (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1081,"DiffBytes":921},{"Assembly":"NetTopologySuite.IO.SqlServerBytes.dasm","Method":"NetTopologySuite.IO.Serialization.Geography:WriteTo(System.IO.BinaryWriter):this (FullOpts)","Category":"improvement","Description":"1,716 -\u003E 1,588 bytes (-128)","ExtraInfo":null,"Diff":"@@ -15,48 \u002B15,48 @@\n ;* V04 loc2         [V04    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[double]\u003E\n ;* V05 loc3         [V05    ] (  0,  0   )  double  -\u003E  zero-ref   \n ;* V06 loc4         [V06    ] (  0,  0   )  double  -\u003E  zero-ref   \n-;* V07 loc5         [V07,T91] (  0,  0   )     int  -\u003E  zero-ref   \n\u002B;* V07 loc5         [V07,T89] (  0,  0   )     int  -\u003E  zero-ref   \n ;  V08 loc6         [V08,T32] (  7, 18   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u003CNetTopologySuite.IO.Serialization.Shape\u003E\n ;  V09 loc7         [V09,T35] (  7, 14   )     int  -\u003E  rdi        \n ;  V10 loc8         [V10,T17] (  5, 38   )     int  -\u003E  [rbp-0x30]  spill-single-def\n-;  V11 loc9         [V11,T60] (  2,  4   )     int  -\u003E  rdi        \n-;  V12 loc10        [V12,T61] (  2,  4   )     int  -\u003E  rdi        \n\u002B;  V11 loc9         [V11,T58] (  2,  4   )     int  -\u003E  rdi        \n\u002B;  V12 loc10        [V12,T59] (  2,  4   )     int  -\u003E  rdi        \n ;* V13 loc11        [V13    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[NetTopologySuite.IO.Serialization.Figure]\u003E\n ;* V14 loc12        [V14    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[NetTopologySuite.IO.Serialization.Shape]\u003E\n ;* V15 loc13        [V15    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[NetTopologySuite.IO.Serialization.Segment]\u003E\n ;# V16 OutArgs      [V16    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V17 tmp1         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Single-def Box Helper\u0022 \u003CNetTopologySuite.IO.Serialization.SerializationProperties\u003E\n ;* V18 tmp2         [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Single-def Box Helper\u0022 \u003CNetTopologySuite.IO.Serialization.SerializationProperties\u003E\n-;* V19 tmp3         [V19,T88] (  0,  0   )     int  -\u003E  zero-ref    \u0022Enum:HasFlag this temp\u0022\n\u002B;* V19 tmp3         [V19,T86] (  0,  0   )     int  -\u003E  zero-ref    \u0022Enum:HasFlag this temp\u0022\n ;* V20 tmp4         [V20    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Enum:HasFlag flag temp\u0022\n ;* V21 tmp5         [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Single-def Box Helper\u0022 \u003CNetTopologySuite.IO.Serialization.SerializationProperties\u003E\n ;* V22 tmp6         [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Single-def Box Helper\u0022 \u003CNetTopologySuite.IO.Serialization.SerializationProperties\u003E\n-;* V23 tmp7         [V23,T89] (  0,  0   )     int  -\u003E  zero-ref    \u0022Enum:HasFlag this temp\u0022\n\u002B;* V23 tmp7         [V23,T87] (  0,  0   )     int  -\u003E  zero-ref    \u0022Enum:HasFlag this temp\u0022\n ;* V24 tmp8         [V24    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Enum:HasFlag flag temp\u0022\n ;* V25 tmp9         [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Single-def Box Helper\u0022 \u003CNetTopologySuite.IO.Serialization.SerializationProperties\u003E\n ;* V26 tmp10        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Single-def Box Helper\u0022 \u003CNetTopologySuite.IO.Serialization.SerializationProperties\u003E\n-;  V27 tmp11        [V27,T70] (  2,  2   )     int  -\u003E  rsi         \u0022Enum:HasFlag this temp\u0022\n\u002B;  V27 tmp11        [V27,T68] (  2,  2   )     int  -\u003E  rsi         \u0022Enum:HasFlag this temp\u0022\n ;* V28 tmp12        [V28    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Enum:HasFlag flag temp\u0022\n ;  V29 tmp13        [V29,T53] (  3,  6   )     int  -\u003E  rax        \n ;  V30 tmp14        [V30,T40] (  3, 12   )     ref  -\u003E  rsi         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[NetTopologySuite.IO.Serialization.Figure]\u003E\n ;* V31 tmp15        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Single-def Box Helper\u0022 \u003CNetTopologySuite.IO.Serialization.SerializationProperties\u003E\n ;* V32 tmp16        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Single-def Box Helper\u0022 \u003CNetTopologySuite.IO.Serialization.SerializationProperties\u003E\n-;* V33 tmp17        [V33,T90] (  0,  0   )     int  -\u003E  zero-ref    \u0022Enum:HasFlag this temp\u0022\n\u002B;* V33 tmp17        [V33,T88] (  0,  0   )     int  -\u003E  zero-ref    \u0022Enum:HasFlag this temp\u0022\n ;* V34 tmp18        [V34    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Enum:HasFlag flag temp\u0022\n ;* V35 tmp19        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[double]\u003E\n ;* V36 tmp20        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[double]\u003E\n-;  V37 tmp21        [V37,T58] (  4,  4   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[NetTopologySuite.IO.Serialization.Shape]\u003E\n-;  V38 tmp22        [V38    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V37 tmp21        [V37,T60] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[NetTopologySuite.IO.Serialization.Shape]\u003E\n\u002B;  V38 tmp22        [V38    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V39 tmp23        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V40 tmp24        [V40,T71] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CNetTopologySuite.IO.Serialization.Shape\u003E\n-;  V41 tmp25        [V41,T68] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[NetTopologySuite.IO.Serialization.Shape]\u003E\n\u002B;  V40 tmp24        [V40,T72] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CNetTopologySuite.IO.Serialization.Shape\u003E\n\u002B;* V41 tmp25        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[NetTopologySuite.IO.Serialization.Shape]\u003E\n ;* V42 tmp26        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CNetTopologySuite.IO.Serialization.Shape\u003E\n ;* V43 tmp27        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[NetTopologySuite.IO.Serialization.Point]\u003E\n-;  V44 tmp28        [V44,T59] (  4,  4   )     ref  -\u003E  [rbp-0x98]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[NetTopologySuite.IO.Serialization.Shape]\u003E\n-;  V45 tmp29        [V45    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V44 tmp28        [V44,T61] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[NetTopologySuite.IO.Serialization.Shape]\u003E\n\u002B;  V45 tmp29        [V45    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V46 tmp30        [V46    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V47 tmp31        [V47,T72] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CNetTopologySuite.IO.Serialization.Shape\u003E\n-;  V48 tmp32        [V48,T69] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[NetTopologySuite.IO.Serialization.Shape]\u003E\n\u002B;  V47 tmp31        [V47,T73] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CNetTopologySuite.IO.Serialization.Shape\u003E\n\u002B;* V48 tmp32        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[NetTopologySuite.IO.Serialization.Shape]\u003E\n ;* V49 tmp33        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CNetTopologySuite.IO.Serialization.Shape\u003E\n ;* V50 tmp34        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[NetTopologySuite.IO.Serialization.Point]\u003E\n ;* V51 tmp35        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[NetTopologySuite.IO.Serialization.Point]\u003E\n@@ -106,49 \u002B106,49 @@\n ;* V95 tmp79        [V95    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V96 tmp80        [V96    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V97 tmp81        [V97    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Generic.List\u00601[NetTopologySuite.IO.Serialization.Segment]\u003E\n-;  V98 tmp82        [V98,T36] (  4, 12.50)     ref  -\u003E  [rbp-0xA0]  spill-single-def \u0022field V03._list (fldOffset=0x0)\u0022 P-INDEP\n-;  V99 tmp83        [V99,T41] (  3, 12   )     ref  -\u003E  [rbp-0xA8]  spill-single-def \u0022field V03._current (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V98 tmp82        [V98,T36] (  4, 12.50)     ref  -\u003E  [rbp-0x90]  spill-single-def \u0022field V03._list (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V99 tmp83        [V99,T41] (  3, 12   )     ref  -\u003E  [rbp-0x98]  spill-single-def \u0022field V03._current (fldOffset=0x8)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n-       jae      G_M9822_IG53\n\u002B       jae      G_M9822_IG49\n        mov      qword ptr [rbp-0x70], rax\n        mov      rsi, gword ptr [rsi\u002B8*rax\u002B0x10]\n        mov      esi, dword ptr [rsi\u002B0x08]\n@@ -547,64 \u002B511,64 @@ G_M9822_IG33:\n        mov      eax, dword ptr [rbp-0x30]\n        cmp      edi, eax\n        mov      qword ptr [rbp-0x70], rdi\n-       jle      SHORT G_M9822_IG33\n\u002B       jle      SHORT G_M9822_IG29\n \t\t\t\t\t\t;; size=81 bbWeight=16 PerfScore 468.00\n-G_M9822_IG34:\n\u002BG_M9822_IG30:\n        inc      r12d\n \t\t\t\t\t\t;; size=3 bbWeight=4 PerfScore 1.00\n-G_M9822_IG35:\n\u002BG_M9822_IG31:\n        mov      rdi, gword ptr [r15\u002B0x28]\n        mov      eax, dword ptr [rdi\u002B0x10]\n        cmp      r12d, eax\n-       jge      G_M9822_IG42\n-       jae      G_M9822_IG52\n\u002B       jge      G_M9822_IG38\n\u002B       jae      G_M9822_IG48\n        mov      rdi, gword ptr [rdi\u002B0x08]\n        cmp      r12d, dword ptr [rdi\u002B0x08]\n-       jae      G_M9822_IG53\n\u002B       jae      G_M9822_IG49\n        mov      rax, gword ptr [rdi\u002B8*r12\u002B0x10]\n        mov      gword ptr [rbp-0x88], rax\n        cmp      dword ptr [rax\u002B0x0C], -1\n-       je       SHORT G_M9822_IG34\n\u002B       je       SHORT G_M9822_IG30\n \t\t\t\t\t\t;; size=54 bbWeight=4 PerfScore 69.00\n-G_M9822_IG36:\n\u002BG_M9822_IG32:\n        mov      rdi, rax\n        mov      rcx, 0xD1FFAB1E      ; code for NetTopologySuite.IO.Serialization.Shape:IsCollection():bool:this\n        call     [rcx]NetTopologySuite.IO.Serialization.Shape:IsCollection():bool:this\n        test     eax, eax\n-       jne      SHORT G_M9822_IG34\n\u002B       jne      SHORT G_M9822_IG30\n        lea      edi, [r12\u002B0x01]\n        mov      esi, edi\n        mov      rax, gword ptr [r15\u002B0x28]\n        mov      ecx, dword ptr [rax\u002B0x10]\n        cmp      esi, ecx\n-       jge      SHORT G_M9822_IG39\n\u002B       jge      SHORT G_M9822_IG35\n \t\t\t\t\t\t;; size=37 bbWeight=2 PerfScore 21.50\n-G_M9822_IG37:\n\u002BG_M9822_IG33:\n        mov      rdi, rax\n        cmp      esi, ecx\n-       jae      G_M9822_IG52\n\u002B       jae      G_M9822_IG48\n        mov      rdi, gword ptr [rdi\u002B0x08]\n        cmp      esi, dword ptr [rdi\u002B0x08]\n-       jae      G_M9822_IG53\n\u002B       jae      G_M9822_IG49\n        mov      rdi, gword ptr [rdi\u002B8*rsi\u002B0x10]\n        cmp      dword ptr [rdi\u002B0x0C], -1\n-       jne      SHORT G_M9822_IG38\n\u002B       jne      SHORT G_M9822_IG34\n        inc      esi\n        cmp      esi, ecx\n-       jl       SHORT G_M9822_IG37\n\u002B       jl       SHORT G_M9822_IG33\n \t\t\t\t\t\t;; size=41 bbWeight=16 PerfScore 208.00\n-G_M9822_IG38:\n\u002BG_M9822_IG34:\n        mov      edi, esi\n \t\t\t\t\t\t;; size=2 bbWeight=2 PerfScore 0.50\n-G_M9822_IG39:\n\u002BG_M9822_IG35:\n        cmp      edi, ecx\n-       jl       G_M9822_IG31\n\u002B       jl       G_M9822_IG27\n        mov      rax, gword ptr [r15\u002B0x20]\n        mov      eax, dword ptr [rax\u002B0x10]\n        dec      eax\n-       jmp      G_M9822_IG32\n\u002B       jmp      G_M9822_IG28\n \t\t\t\t\t\t;; size=22 bbWeight=2 PerfScore 15.00\n-G_M9822_IG40:\n\u002BG_M9822_IG36:\n        mov      rdi, rbx\n        mov      esi, 2\n        mov      rdx, qword ptr [r14\u002B0x48]\n@@ -613,10 \u002B577,10 @@ G_M9822_IG40:\n        mov      rax, gword ptr [rbp-0x88]\n        mov      edi, dword ptr [rax\u002B0x0C]\n        cmp      edi, dword ptr [rsi\u002B0x10]\n-       jae      G_M9822_IG52\n\u002B       jae      G_M9822_IG48\n        mov      rsi, gword ptr [rsi\u002B0x08]\n        cmp      edi, dword ptr [rsi\u002B0x08]\n-       jae      G_M9822_IG53\n\u002B       jae      G_M9822_IG49\n        mov      rsi, gword ptr [rsi\u002B8*rdi\u002B0x10]\n        mov      esi, dword ptr [rsi\u002B0x08]\n        mov      rdi, rbx\n@@ -628,9 \u002B592,9 @@ G_M9822_IG40:\n        mov      qword ptr [rbp-0x78], rax\n        mov      ecx, dword ptr [rbp-0x30]\n        cmp      eax, ecx\n-       jg       G_M9822_IG34\n\u002B       jg       G_M9822_IG30\n \t\t\t\t\t\t;; size=95 bbWeight=2 PerfScore 65.00\n-G_M9822_IG41:\n\u002BG_M9822_IG37:\n        mov      rdi, rbx\n        xor      esi, esi\n        mov      rdx, qword ptr [r14\u002B0x48]\n@@ -638,10 \u002B602,10 @@ G_M9822_IG41:\n        mov      rsi, gword ptr [r15\u002B0x20]\n        mov      rax, qword ptr [rbp-0x78]\n        cmp      eax, dword ptr [rsi\u002B0x10]\n-       jae      G_M9822_IG52\n\u002B       jae      G_M9822_IG48\n        mov      rsi, gword ptr [rsi\u002B0x08]\n        cmp      eax, dword ptr [rsi\u002B0x08]\n-       jae      G_M9822_IG53\n\u002B       jae      G_M9822_IG49\n        mov      qword ptr [rbp-0x78], rax\n        mov      rsi, gword ptr [rsi\u002B8*rax\u002B0x10]\n        mov      esi, dword ptr [rsi\u002B0x08]\n@@ -652,10 \u002B616,10 @@ G_M9822_IG41:\n        mov      ecx, dword ptr [rbp-0x30]\n        cmp      eax, ecx\n        mov      qword ptr [rbp-0x78], rax\n-       jle      SHORT G_M9822_IG41\n-       jmp      G_M9822_IG34\n\u002B       jle      SHORT G_M9822_IG37\n\u002B       jmp      G_M9822_IG30\n \t\t\t\t\t\t;; size=83 bbWeight=16 PerfScore 500.00\n-G_M9822_IG42:\n\u002BG_M9822_IG38:\n        mov      rsi, gword ptr [r15\u002B0x28]\n        mov      esi, dword ptr [rsi\u002B0x10]\n        mov      rdi, rbx\n@@ -664,12 \u002B628,12 @@ G_M9822_IG42:\n        mov      eax, dword ptr [r12\u002B0x14]\n        mov      dword ptr [rbp-0x54], eax\n        xor      edi, edi\n-       jmp      SHORT G_M9822_IG44\n\u002B       jmp      SHORT G_M9822_IG40\n \t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 7.25\n-G_M9822_IG43:\n\u002BG_M9822_IG39:\n        mov      rsi, gword ptr [r12\u002B0x08]\n        cmp      edi, dword ptr [rsi\u002B0x08]\n-       jae      G_M9822_IG53\n\u002B       jae      G_M9822_IG49\n        mov      rsi, gword ptr [rsi\u002B8*rdi\u002B0x10]\n        inc      edi\n        mov      qword ptr [rbp-0x80], rdi\n@@ -681,28 \u002B645,28 @@ G_M9822_IG43:\n        mov      esi, dword ptr [rbp-0x54]\n        cmp      esi, dword ptr [r12\u002B0x14]\n        mov      rdi, qword ptr [rbp-0x80]\n-       jne      G_M9822_IG51\n\u002B       jne      G_M9822_IG47\n \t\t\t\t\t\t;; size=63 bbWeight=4 PerfScore 76.00\n-G_M9822_IG44:\n\u002BG_M9822_IG40:\n        cmp      edi, dword ptr [r12\u002B0x10]\n-       jb       SHORT G_M9822_IG43\n\u002B       jb       SHORT G_M9822_IG39\n \t\t\t\t\t\t;; size=7 bbWeight=4 PerfScore 12.00\n-G_M9822_IG45:\n\u002BG_M9822_IG41:\n        mov      rsi, gword ptr [r15\u002B0x30]\n        mov      esi, dword ptr [rsi\u002B0x10]\n        test     esi, esi\n-       jle      SHORT G_M9822_IG48\n\u002B       jle      SHORT G_M9822_IG44\n        mov      rdi, rbx\n        call     [r13]System.IO.BinaryWriter:Write(int):this\n        mov      r15, gword ptr [r15\u002B0x30]\n        mov      r13d, dword ptr [r15\u002B0x14]\n        xor      r12d, r12d\n-       jmp      SHORT G_M9822_IG47\n\u002B       jmp      SHORT G_M9822_IG43\n \t\t\t\t\t\t;; size=31 bbWeight=0.50 PerfScore 7.38\n-G_M9822_IG46:\n\u002BG_M9822_IG42:\n        mov      rsi, gword ptr [r15\u002B0x08]\n        cmp      r12d, dword ptr [rsi\u002B0x08]\n-       jae      SHORT G_M9822_IG53\n\u002B       jae      SHORT G_M9822_IG49\n        mov      rsi, gword ptr [rsi\u002B8*r12\u002B0x10]\n        inc      r12d\n        movzx    rsi, byte  ptr [rsi\u002B0x08]\n@@ -710,14 \u002B674,14 @@ G_M9822_IG46:\n        mov      rax, qword ptr [r14\u002B0x48]\n        call     [rax\u002B0x28]System.IO.BinaryWriter:Write(byte):this\n        cmp      r13d, dword ptr [r15\u002B0x14]\n-       jne      SHORT G_M9822_IG51\n\u002B       jne      SHORT G_M9822_IG47\n \t\t\t\t\t\t;; size=39 bbWeight=4 PerfScore 70.00\n-G_M9822_IG47:\n\u002BG_M9822_IG43:\n        cmp      r12d, dword ptr [r15\u002B0x10]\n-       jb       SHORT G_M9822_IG46\n\u002B       jb       SHORT G_M9822_IG42\n \t\t\t\t\t\t;; size=6 bbWeight=4 PerfScore 12.00\n-G_M9822_IG48:\n-       add      rsp, 152\n\u002BG_M9822_IG44:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -726,31 \u002B690,31 @@ G_M9822_IG48:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M9822_IG49:\n\u002BG_M9822_IG45:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M9822_IG50:\n\u002BG_M9822_IG46:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M9822_IG51:\n\u002BG_M9822_IG47:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M9822_IG52:\n\u002BG_M9822_IG48:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M9822_IG53:\n\u002BG_M9822_IG49:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1716, prolog size 41, PerfScore 2160.62, instruction count 454, allocated bytes for code 1716 (MethodHash=2946d9a1) for method NetTopologySuite.IO.Serialization.Geography:WriteTo(System.IO.BinaryWriter):this (FullOpts)\n\u002B; Total bytes of code 1588, prolog size 41, PerfScore 2143.88, instruction count 426, allocated bytes for code 1588 (MethodHash=2946d9a1) for method NetTopologySuite.IO.Serialization.Geography:WriteTo(System.IO.BinaryWriter):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1716,"DiffBytes":1588},{"Assembly":"Npgsql.EntityFrameworkCore.PostgreSQL.dasm","Method":"Npgsql.EntityFrameworkCore.PostgreSQL.Query.Internal.NpgsqlSetOperationTypingInjector:VisitSetOperation(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SetOperationBase):System.Linq.Expressions.Expression:this (FullOpts)","Category":"improvement","Description":"1,683 -\u003E 1,563 bytes (-120)","ExtraInfo":null,"Diff":"@@ -11,17 \u002B11,17 @@\n ;  V00 this         [V00,T16] (  6,  7   )     ref  -\u003E  r15         this class-hnd single-def \u003CNpgsql.EntityFrameworkCore.PostgreSQL.Query.Internal.NpgsqlSetOperationTypingInjector\u003E\n ;  V01 arg1         [V01,T15] (  7,  7   )     ref  -\u003E  rbx         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SetOperationBase\u003E\n ;  V02 loc0         [V02,T06] ( 16, 19.50)     ref  -\u003E  r12         class-hnd \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression\u003E\n-;  V03 loc1         [V03,T39] (  3,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression\u003E\n-;  V04 loc2         [V04,T02] ( 13, 24.50)     ref  -\u003E  [rbp-0x38]  class-hnd \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression]\u003E\n-;  V05 loc3         [V05,T01] (  9, 25   )     int  -\u003E  [rbp-0x2C] \n-;  V06 loc4         [V06,T03] (  9, 24   )     ref  -\u003E  [rbp-0x40]  class-hnd spill-single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression\u003E\n\u002B;  V03 loc1         [V03,T36] (  3,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression\u003E\n\u002B;  V04 loc2         [V04,T01] ( 13, 24.50)     ref  -\u003E  [rbp-0x38]  class-hnd \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression]\u003E\n\u002B;  V05 loc3         [V05,T04] (  8, 23   )     int  -\u003E  [rbp-0x2C] \n\u002B;  V06 loc4         [V06,T02] (  9, 24   )     ref  -\u003E  [rbp-0x40]  class-hnd spill-single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression\u003E\n ;* V07 loc5         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression\u003E\n ;  V08 loc6         [V08,T05] (  8, 20   )     ref  -\u003E  rax         class-hnd \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlConstantExpression\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (24) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;  V10 tmp1         [V10,T12] (  5, 12   )     ref  -\u003E  [rbp-0x48] \n-;  V11 tmp2         [V11,T08] (  4, 16   )     ref  -\u003E  [rbp-0x50]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression]\u003E\n-;  V12 tmp3         [V12,T22] (  2,  8   )     ref  -\u003E  [rbp-0x58]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\u003E\n-;  V13 tmp4         [V13,T23] (  2,  8   )     ref  -\u003E  [rbp-0x60]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Type\u003E\n\u002B;  V11 tmp2         [V11,T07] (  4, 16   )     ref  -\u003E  [rbp-0x50]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression]\u003E\n\u002B;  V12 tmp3         [V12,T20] (  2,  8   )     ref  -\u003E  [rbp-0x58]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\u003E\n\u002B;  V13 tmp4         [V13,T21] (  2,  8   )     ref  -\u003E  [rbp-0x60]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Type\u003E\n ;  V14 tmp5         [V14,T00] (  7, 28   )     ref  -\u003E  [rbp-0x68]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlUnaryExpression\u003E\n ;* V15 tmp6         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.TableExpressionBase]\u003E\n ;* V16 tmp7         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\u003E\n@@ -30,54 \u002B30,54 @@\n ;* V19 tmp10        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.OrderingExpression]\u003E\n ;* V20 tmp11        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\u003E\n ;* V21 tmp12        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n-;  V22 tmp13        [V22,T24] (  2,  8   )     ref  -\u003E  [rbp-0x70]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.EntityFrameworkCore.Storage.RelationalTypeMapping\u003E\n-;  V23 tmp14        [V23,T51] (  3,  0   )     ref  -\u003E  r12         class-hnd exact \u0022Single-def Box Helper\u0022 \u003CSystem.Linq.Expressions.ExpressionType\u003E\n-;  V24 tmp15        [V24,T52] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V22 tmp13        [V22,T22] (  2,  8   )     ref  -\u003E  [rbp-0x70]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.EntityFrameworkCore.Storage.RelationalTypeMapping\u003E\n\u002B;  V23 tmp14        [V23,T47] (  3,  0   )     ref  -\u003E  r12         class-hnd exact \u0022Single-def Box Helper\u0022 \u003CSystem.Linq.Expressions.ExpressionType\u003E\n\u002B;  V24 tmp15        [V24,T48] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[int]\u003E\n-;  V26 tmp17        [V26,T31] (  3,  6   )     ref  -\u003E  rax         class-hnd exact \u0022Inline return value spill temp\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression\u003E\n-;  V27 tmp18        [V27,T09] (  4, 16   )     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression\u003E\n-;  V28 tmp19        [V28,T25] (  2,  8   )     ref  -\u003E  [rbp-0x80]  class-hnd exact spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V29 tmp20        [V29,T10] (  4, 16   )     int  -\u003E  rax         \u0022Inlining Arg\u0022\n\u002B;  V26 tmp17        [V26,T29] (  3,  6   )     ref  -\u003E  rax         class-hnd exact \u0022Inline return value spill temp\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression\u003E\n\u002B;  V27 tmp18        [V27,T08] (  4, 16   )     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression\u003E\n\u002B;  V28 tmp19        [V28,T23] (  2,  8   )     ref  -\u003E  [rbp-0x80]  class-hnd exact spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V29 tmp20        [V29,T09] (  4, 16   )     int  -\u003E  rax         \u0022Inlining Arg\u0022\n ;* V30 tmp21        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression[]\u003E\n-;  V31 tmp22        [V31,T32] (  3,  6   )     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression]\u003E\n-;  V32 tmp23        [V32,T07] (  5, 18   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression]\u003E\n-;* V33 tmp24        [V33,T50] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V34 tmp25        [V34,T33] (  3,  6   )     ref  -\u003E  rsi         class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression[]\u003E\n-;  V35 tmp26        [V35,T34] (  3,  6   )     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression]\u003E\n-;  V36 tmp27        [V36,T18] (  4,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression]\u003E\n-;  V37 tmp28        [V37,T43] (  2,  4   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression]\u003E\n-;  V38 tmp29        [V38,T19] (  4,  8   )     ref  -\u003E  rax        \n\u002B;  V31 tmp22        [V31,T30] (  3,  6   )     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression]\u003E\n\u002B;  V32 tmp23        [V32,T10] (  4, 14   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression]\u003E\n\u002B;* V33 tmp24        [V33,T46] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V34 tmp25        [V34,T31] (  3,  6   )     ref  -\u003E  rdi         class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression[]\u003E\n\u002B;* V35 tmp26        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression]\u003E\n... diff truncated; middle omitted ...\n        jg       G_M34845_IG07\n \t\t\t\t\t\t;; size=40 bbWeight=4 PerfScore 43.00\n-G_M34845_IG33:\n\u002BG_M34845_IG29:\n        mov      r15, gword ptr [rbp-0x38]\n        test     r15, r15\n-       je       SHORT G_M34845_IG35\n\u002B       je       SHORT G_M34845_IG31\n \t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 2.25\n-G_M34845_IG34:\n\u002BG_M34845_IG30:\n        mov      rsi, gword ptr [r12\u002B0x30]\n        mov      gword ptr [rsp], rsi\n        mov      rsi, gword ptr [r12\u002B0x98]\n@@ -370,7 \u002B342,7 @@ G_M34845_IG34:\n        call     [rax]Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression:Update(System.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.TableExpressionBase],Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,System.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression],Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,System.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression],System.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.OrderingExpression],Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression:this\n        mov      r12, rax\n \t\t\t\t\t\t;; size=82 bbWeight=0.50 PerfScore 10.50\n-G_M34845_IG35:\n\u002BG_M34845_IG31:\n        mov      rdi, rbx\n        mov      rsi, r12\n        mov      rdx, r14\n@@ -378,7 \u002B350,7 @@ G_M34845_IG35:\n        mov      r14, qword ptr [rax\u002B0x58]\n        mov      rax, r14\n \t\t\t\t\t\t;; size=19 bbWeight=1 PerfScore 5.00\n-G_M34845_IG36:\n\u002BG_M34845_IG32:\n        add      rsp, 136\n        pop      rbx\n        pop      r12\n@@ -388,19 \u002B360,19 @@ G_M34845_IG36:\n        pop      rbp\n        tail.jmp [rax\u002B0x10]Microsoft.EntityFrameworkCore.Query.SqlExpressions.SetOperationBase:Update(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression,Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SetOperationBase:this\n \t\t\t\t\t\t;; size=21 bbWeight=1 PerfScore 5.25\n-G_M34845_IG37:\n\u002BG_M34845_IG33:\n        mov      rdi, rax\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x30]Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlConstantExpression:get_Value():System.Object:this\n        test     rax, rax\n-       je       SHORT G_M34845_IG39\n\u002B       je       SHORT G_M34845_IG35\n \t\t\t\t\t\t;; size=18 bbWeight=2 PerfScore 17.00\n-G_M34845_IG38:\n\u002BG_M34845_IG34:\n        mov      rcx, gword ptr [rbp-0x40]\n        jmp      G_M34845_IG09\n \t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.00\n-G_M34845_IG39:\n\u002BG_M34845_IG35:\n        mov      rdi, gword ptr [r14\u002B0x18]\n        mov      esi, dword ptr [rbp-0x2C]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IReadOnlyList\u00601[System.__Canon]:get_Item(int):System.__Canon:this\n@@ -410,19 \u002B382,19 @@ G_M34845_IG39:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       jne      SHORT G_M34845_IG41\n\u002B       jne      SHORT G_M34845_IG37\n \t\t\t\t\t\t;; size=51 bbWeight=2 PerfScore 26.00\n-G_M34845_IG40:\n\u002BG_M34845_IG36:\n        mov      rcx, gword ptr [rbp-0x40]\n        jmp      G_M34845_IG09\n \t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.00\n-G_M34845_IG41:\n\u002BG_M34845_IG37:\n        mov      rdi, rax\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x30]Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlConstantExpression:get_Value():System.Object:this\n        test     rax, rax\n-       jne      G_M34845_IG45\n\u002B       jne      G_M34845_IG41\n        mov      rax, gword ptr [rbp-0x40]\n        mov      rdi, gword ptr [rax\u002B0x10]\n        mov      gword ptr [rbp-0x58], rdi\n@@ -453,18 \u002B425,18 @@ G_M34845_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.HashSet\u00601[int]:FindItemIndex(int):int:this\n        call     [rax]System.Collections.Generic.HashSet\u00601[int]:FindItemIndex(int):int:this\n        test     eax, eax\n-       jl       G_M34845_IG52\n\u002B       jl       G_M34845_IG47\n        mov      rax, gword ptr [rbp-0x68]\n        mov      dword ptr [rax\u002B0x20], 10\n        lea      rdi, bword ptr [rax\u002B0x18]\n \t\t\t\t\t\t;; size=176 bbWeight=2 PerfScore 100.50\n-G_M34845_IG42:\n\u002BG_M34845_IG38:\n        mov      rsi, gword ptr [rbp-0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rax, gword ptr [rbp-0x68]\n        mov      rcx, gword ptr [rbp-0x40]\n        cmp      rax, gword ptr [rcx\u002B0x10]\n-       je       SHORT G_M34845_IG43\n\u002B       je       SHORT G_M34845_IG39\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x78], rax\n@@ -480,57 \u002B452,51 @@ G_M34845_IG42:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rax, gword ptr [rbp-0x78]\n        mov      rcx, gword ptr [rbp-0x40]\n-       jmp      SHORT G_M34845_IG44\n\u002B       jmp      SHORT G_M34845_IG40\n \t\t\t\t\t\t;; size=94 bbWeight=2 PerfScore 46.50\n-G_M34845_IG43:\n\u002BG_M34845_IG39:\n        mov      rcx, gword ptr [rbp-0x40]\n        mov      rax, rcx\n \t\t\t\t\t\t;; size=7 bbWeight=2 PerfScore 2.50\n-G_M34845_IG44:\n\u002BG_M34845_IG40:\n        jmp      G_M34845_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=2 PerfScore 4.00\n-G_M34845_IG45:\n\u002BG_M34845_IG41:\n        mov      rcx, gword ptr [rbp-0x40]\n        jmp      G_M34845_IG09\n \t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.00\n-G_M34845_IG46:\n\u002BG_M34845_IG42:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rax]CORINFO_HELP_CHKCASTCLASS\n        int3     \n \t\t\t\t\t\t;; size=16 bbWeight=0 PerfScore 0.00\n-G_M34845_IG47:\n\u002BG_M34845_IG43:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rax]CORINFO_HELP_CHKCASTCLASS\n        int3     \n \t\t\t\t\t\t;; size=16 bbWeight=0 PerfScore 0.00\n-G_M34845_IG48:\n\u002BG_M34845_IG44:\n        mov      rsi, rax\n        mov      rdi, rcx\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rax]CORINFO_HELP_CHKCASTCLASS\n        int3     \n \t\t\t\t\t\t;; size=19 bbWeight=0 PerfScore 0.00\n-G_M34845_IG49:\n\u002BG_M34845_IG45:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M34845_IG15\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M34845_IG50:\n\u002BG_M34845_IG46:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression]\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rcx]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M34845_IG26\n\u002B       jmp      G_M34845_IG22\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M34845_IG51:\n-       mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M34845_IG21\n-\t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M34845_IG52:\n\u002BG_M34845_IG47:\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Expressions.ExpressionType\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n@@ -555,19 \u002B521,19 @@ G_M34845_IG52:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=116 bbWeight=0 PerfScore 0.00\n-G_M34845_IG53:\n\u002BG_M34845_IG48:\n        mov      edi, 22\n        mov      esi, 13\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int,int)\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int,int)\n        int3     \n \t\t\t\t\t\t;; size=23 bbWeight=0 PerfScore 0.00\n-G_M34845_IG54:\n\u002BG_M34845_IG49:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1683, prolog size 25, PerfScore 651.38, instruction count 379, allocated bytes for code 1683 (MethodHash=fdbd77e2) for method Npgsql.EntityFrameworkCore.PostgreSQL.Query.Internal.NpgsqlSetOperationTypingInjector:VisitSetOperation(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SetOperationBase):System.Linq.Expressions.Expression:this (FullOpts)\n\u002B; Total bytes of code 1563, prolog size 25, PerfScore 606.88, instruction count 355, allocated bytes for code 1563 (MethodHash=fdbd77e2) for method Npgsql.EntityFrameworkCore.PostgreSQL.Query.Internal.NpgsqlSetOperationTypingInjector:VisitSetOperation(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SetOperationBase):System.Linq.Expressions.Expression:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1683,"DiffBytes":1563},{"Assembly":"NuGet.Configuration.dasm","Method":"NuGet.Configuration.Settings:LoadSettingsGivenSettingsFiles(System.Collections.Generic.List\u00601[NuGet.Configuration.SettingsFile]):NuGet.Configuration.ISettings (FullOpts)","Category":"improvement","Description":"260 -\u003E 172 bytes (-88)","ExtraInfo":null,"Diff":"@@ -1,121 \u002B1,85 @@\n ; Assembly listing for method NuGet.Configuration.Settings:LoadSettingsGivenSettingsFiles(System.Collections.Generic.List\u00601[NuGet.Configuration.SettingsFile]):NuGet.Configuration.ISettings (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 4 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T00] (  7,  6   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[NuGet.Configuration.SettingsFile]\u003E\n\u002B;  V00 arg0         [V00,T00] (  6,  6   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[NuGet.Configuration.SettingsFile]\u003E\n ;  V01 OutArgs      [V01    ] (  1,  1   )  struct ( 8) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V02 tmp1         [V02,T01] (  2,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V03 tmp2         [V03    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V02 tmp1         [V02,T01] (  2,  4   )     ref  -\u003E  r15         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V03 tmp2         [V03    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V04 tmp3         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V05 tmp4         [V05,T05] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CNuGet.Configuration.SettingsFile\u003E\n-;  V06 tmp5         [V06,T02] (  4,  3   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[NuGet.Configuration.SettingsFile]\u003E\n\u002B;  V05 tmp4         [V05,T02] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CNuGet.Configuration.SettingsFile\u003E\n\u002B;* V06 tmp5         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[NuGet.Configuration.SettingsFile]\u003E\n ;* V07 tmp6         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CNuGet.Configuration.SettingsFile\u003E\n-;  V08 tmp7         [V08    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V08 tmp7         [V08    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V09 tmp8         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V10 tmp9         [V10,T06] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CNuGet.Configuration.SettingsFile\u003E\n-;  V11 tmp10        [V11,T03] (  4,  3   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[NuGet.Configuration.SettingsFile]\u003E\n\u002B;  V10 tmp9         [V10,T03] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CNuGet.Configuration.SettingsFile\u003E\n\u002B;* V11 tmp10        [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[NuGet.Configuration.SettingsFile]\u003E\n ;* V12 tmp11        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CNuGet.Configuration.SettingsFile\u003E\n-;  V13 cse0         [V13,T04] (  3,  3   )     ref  -\u003E  r15         \u0022CSE #01: aggressive\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 32\n \n G_M25766_IG01:\n        push     rbp\n        push     r15\n-       push     r14\n        push     rbx\n-       sub      rsp, 24\n\u002B       sub      rsp, 32\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-\t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 5.00\n\u002B\t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 4.00\n G_M25766_IG02:\n        test     rbx, rbx\n-       je       G_M25766_IG10\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[NuGet.Configuration.SettingsFile]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n-       mov      rdi, r15\n-       test     rdi, rdi\n        je       SHORT G_M25766_IG04\n-\t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 6.75\n-G_M25766_IG03:\n-       lea      rsi, [rbp-0x20]\n-       mov      rax, qword ptr [rdi]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M25766_IG05\n-\t\t\t\t\t\t;; size=16 bbWeight=0.50 PerfScore 4.75\n-G_M25766_IG04:\n\u002B       lea      rdx, [rbp-0x18]\n\u002B       mov      rsi, rbx\n\u002B       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[NuGet.Configuration.SettingsFile](System.Collections.Generic.IEnumerable\u00601[NuGet.Configuration.SettingsFile],byref):NuGet.Configuration.SettingsFile\n\u002B       mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n\u002B       call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n\u002B       cmp      byte  ptr [rbp-0x18], 0\n\u002B       je       SHORT G_M25766_IG05\n\u002B       mov      r15, gword ptr [rax\u002B0x10]\n        lea      rdx, [rbp-0x20]\n        mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[NuGet.Configuration.SettingsFile](System.Collections.Generic.IEnumerable\u00601[NuGet.Configuration.SettingsFile],byref):NuGet.Configuration.SettingsFile\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M25766_IG05:\n        cmp      byte  ptr [rbp-0x20], 0\n-       je       G_M25766_IG11\n-       mov      r14, gword ptr [rax\u002B0x10]\n-       mov      rdi, r15\n-       test     rdi, rdi\n-       je       SHORT G_M25766_IG07\n-\t\t\t\t\t\t;; size=22 bbWeight=1 PerfScore 5.50\n-G_M25766_IG06:\n-       lea      rsi, [rbp-0x28]\n-       mov      rax, qword ptr [rdi]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M25766_IG08\n-\t\t\t\t\t\t;; size=16 bbWeight=0.50 PerfScore 4.75\n-G_M25766_IG07:\n-       lea      rdx, [rbp-0x28]\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[NuGet.Configuration.SettingsFile](System.Collections.Generic.IEnumerable\u00601[NuGet.Configuration.SettingsFile],byref):NuGet.Configuration.SettingsFile\n-       mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M25766_IG08:\n-       cmp      byte  ptr [rbp-0x28], 0\n-       je       SHORT G_M25766_IG11\n\u002B       je       SHORT G_M25766_IG05\n        xor      rsi, rsi\n        mov      gword ptr [rsp], rsi\n        mov      rsi, gword ptr [rax\u002B0x18]\n-       mov      rdi, r14\n\u002B       mov      rdi, r15\n        mov      rdx, rbx\n        xor      rcx, rcx\n        xor      r8d, r8d\n        xor      r9d, r9d\n        mov      rax, 0xD1FFAB1E      ; code for NuGet.Configuration.Settings:LoadSettingsForSpecificConfigs(System.String,System.String,System.Collections.Generic.List\u00601[NuGet.Configuration.SettingsFile],NuGet.Configuration.IMachineWideSettings,bool,bool,NuGet.Configuration.SettingsLoadingContext):NuGet.Configuration.ISettings\n        call     [rax]NuGet.Configuration.Settings:LoadSettingsForSpecificConfigs(System.String,System.String,System.Collections.Generic.List\u00601[NuGet.Configuration.SettingsFile],NuGet.Configuration.IMachineWideSettings,bool,bool,NuGet.Configuration.SettingsLoadingContext):NuGet.Configuration.ISettings\n        nop      \n-\t\t\t\t\t\t;; size=43 bbWeight=1 PerfScore 10.00\n-G_M25766_IG09:\n-       add      rsp, 24\n\u002B\t\t\t\t\t\t;; size=116 bbWeight=1 PerfScore 23.75\n\u002BG_M25766_IG03:\n\u002B       add      rsp, 32\n        pop      rbx\n-       pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M25766_IG10:\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 2.75\n\u002BG_M25766_IG04:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M25766_IG11:\n\u002BG_M25766_IG05:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 260, prolog size 15, PerfScore 44.25, instruction count 69, allocated bytes for code 260 (MethodHash=f9909b59) for method NuGet.Configuration.Settings:LoadSettingsGivenSettingsFiles(System.Collections.Generic.List\u00601[NuGet.Configuration.SettingsFile]):NuGet.Configuration.ISettings (FullOpts)\n\u002B; Total bytes of code 172, prolog size 13, PerfScore 30.50, instruction count 46, allocated bytes for code 172 (MethodHash=f9909b59) for method NuGet.Configuration.Settings:LoadSettingsGivenSettingsFiles(System.Collections.Generic.List\u00601[NuGet.Configuration.SettingsFile]):NuGet.Configuration.ISettings (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":260,"DiffBytes":172},{"Assembly":"NuGet.Packaging.dasm","Method":"NuGet.Packaging.XElementExtensions:FindElement(System.Xml.Linq.XElement,System.Xml.Linq.XElement):System.Xml.Linq.XElement (FullOpts)","Category":"improvement","Description":"261 -\u003E 212 bytes (-49)","ExtraInfo":null,"Diff":"@@ -1,104 \u002B1,86 @@\n ; Assembly listing for method NuGet.Packaging.XElementExtensions:FindElement(System.Xml.Linq.XElement,System.Xml.Linq.XElement):System.Xml.Linq.XElement (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 5 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 arg0         [V00,T02] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Xml.Linq.XElement\u003E\n ;  V01 arg1         [V01,T03] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Xml.Linq.XElement\u003E\n ;  V02 loc0         [V02,T04] (  4,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u003CNuGet.Packaging.XElementExtensions\u002B\u003C\u003Ec__DisplayClass3_0\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V04 tmp1         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CNuGet.Packaging.XElementExtensions\u002B\u003C\u003Ec__DisplayClass3_0\u003E\n-;  V05 tmp2         [V05,T01] (  4,  7   )     ref  -\u003E  rbx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Xml.Linq.XElement]\u003E\n\u002B;  V05 tmp2         [V05,T01] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Xml.Linq.XElement]\u003E\n ;  V06 tmp3         [V06,T00] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Comparison\u00601[System.Xml.Linq.XElement]\u003E\n ;* V07 tmp4         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Xml.Linq.XElement\u003E\n-;  V08 tmp5         [V08    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V09 tmp6         [V09,T07] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Xml.Linq.XElement\u003E\n-;  V10 tmp7         [V10,T06] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Xml.Linq.XElement]\u003E\n\u002B;  V08 tmp5         [V08    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V09 tmp6         [V09,T06] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Xml.Linq.XElement\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Xml.Linq.XElement]\u003E\n ;  V11 tmp8         [V11,T05] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 8\n \n G_M40156_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x20]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x20], rax\n        mov      rbx, rdi\n        mov      r15, rsi\n \t\t\t\t\t\t;; size=24 bbWeight=1 PerfScore 7.25\n G_M40156_IG02:\n        mov      rdi, 0xD1FFAB1E      ; NuGet.Packaging.XElementExtensions\u002B\u003C\u003Ec__DisplayClass3_0\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        lea      rdi, bword ptr [r14\u002B0x08]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rsi, gword ptr [r14\u002B0x08]\n        mov      rsi, gword ptr [rsi\u002B0x28]\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Xml.Linq.XContainer:Elements(System.Xml.Linq.XName):System.Collections.Generic.IEnumerable\u00601[System.Xml.Linq.XElement]:this\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.Xml.Linq.XContainer:Elements(System.Xml.Linq.XName):System.Collections.Generic.IEnumerable\u00601[System.Xml.Linq.XElement]:this\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:ToList[System.Xml.Linq.XElement](System.Collections.Generic.IEnumerable\u00601[System.Xml.Linq.XElement]):System.Collections.Generic.List\u00601[System.Xml.Linq.XElement]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:ToList[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.Collections.Generic.List\u00601[System.__Canon]\n        call     [rax]System.Linq.Enumerable:ToList[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.Collections.Generic.List\u00601[System.__Canon]\n        mov      rbx, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Comparison\u00601[System.Xml.Linq.XElement]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        lea      rdi, bword ptr [r15\u002B0x10]\n        mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, 0xD1FFAB1E      ; code for NuGet.Packaging.XElementExtensions\u002B\u003C\u003Ec__DisplayClass3_0:\u003CFindElement\u003Eb__0(System.Xml.Linq.XElement,System.Xml.Linq.XElement):int:this\n        mov      qword ptr [r15\u002B0x18], rdi\n        mov      rdi, rbx\n        mov      rsi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:Sort(System.Comparison\u00601[System.__Canon]):this\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:Sort(System.Comparison\u00601[System.__Canon]):this\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Xml.Linq.XElement]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M40156_IG04\n-\t\t\t\t\t\t;; size=177 bbWeight=1 PerfScore 32.00\n-G_M40156_IG03:\n-       lea      rsi, [rbp-0x20]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M40156_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M40156_IG04:\n        lea      rdx, [rbp-0x20]\n        mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Xml.Linq.XElement](System.Collections.Generic.IEnumerable\u00601[System.Xml.Linq.XElement],byref):System.Xml.Linq.XElement\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M40156_IG05:\n        nop      \n-\t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M40156_IG06:\n\u002B\t\t\t\t\t\t;; size=177 bbWeight=1 PerfScore 31.50\n\u002BG_M40156_IG03:\n        add      rsp, 8\n        pop      rbx\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n \n-; Total bytes of code 261, prolog size 18, PerfScore 49.75, instruction count 64, allocated bytes for code 261 (MethodHash=83ae6323) for method NuGet.Packaging.XElementExtensions:FindElement(System.Xml.Linq.XElement,System.Xml.Linq.XElement):System.Xml.Linq.XElement (FullOpts)\n\u002B; Total bytes of code 212, prolog size 18, PerfScore 42.00, instruction count 52, allocated bytes for code 212 (MethodHash=83ae6323) for method NuGet.Packaging.XElementExtensions:FindElement(System.Xml.Linq.XElement,System.Xml.Linq.XElement):System.Xml.Linq.XElement (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":261,"DiffBytes":212},{"Assembly":"Octokit.dasm","Method":"Octokit.NewReference:GetReference(System.String):System.String (FullOpts)","Category":"improvement","Description":"594 -\u003E 545 bytes (-49)","ExtraInfo":null,"Diff":"@@ -9,22 \u002B9,22 @@\n ; Final local variable assignments\n ;\n ;  V00 arg0         [V00,T01] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.String\u003E\n-;  V01 loc0         [V01,T00] ( 14,  9.50)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[System.String]\u003E\n\u002B;  V01 loc0         [V01,T00] ( 13,  9   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[System.String]\u003E\n ;* V02 loc1         [V02    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CSystem.String\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T02] (  3,  6   )     ref  -\u003E  rax         class-hnd exact single-def \u0022NewArr temp\u0022 \u003Cchar[]\u003E\n-;  V05 tmp2         [V05,T15] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.FormatException\u003E\n\u002B;  V05 tmp2         [V05,T14] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.FormatException\u003E\n ;* V06 tmp3         [V06    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.ReadOnlySpan\u00601[char]\u003E\n ;* V07 tmp4         [V07    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ReadOnlySpan\u00601[char]\u003E\n-;  V08 tmp5         [V08    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V09 tmp6         [V09,T09] (  6,  2.69)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n-;  V10 tmp7         [V10,T07] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n\u002B;  V08 tmp5         [V08    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V09 tmp6         [V09,T08] (  5,  2.69)     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n ;* V11 tmp8         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;* V12 tmp9         [V12    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling unroll qmark\u0022\n-;  V13 tmp10        [V13,T12] (  3,  1.50)     int  -\u003E  rsi         single-def \u0022Inline stloc first use temp\u0022\n\u002B;  V13 tmp10        [V13,T11] (  3,  1.50)     int  -\u003E  rsi         single-def \u0022Inline stloc first use temp\u0022\n ;* V14 tmp11        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003CSystem.String[]\u003E\n-;  V15 tmp12        [V15,T11] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String[]\u003E\n-;  V16 tmp13        [V16,T13] (  3,  1.50)     int  -\u003E  rdi        \n\u002B;  V15 tmp12        [V15,T10] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String[]\u003E\n\u002B;  V16 tmp13        [V16,T12] (  3,  1.50)     int  -\u003E  rdi        \n ;  V17 tmp14        [V17,T03] (  8,  4   )     int  -\u003E  rdi         \u0022Inline stloc first use temp\u0022\n ;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.__Canon[]\u003E\n ;* V19 tmp16        [V19    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n@@ -33,12 \u002B33,12 @@\n ;* V22 tmp19        [V22    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V23 tmp20        [V23    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022field V06._reference (fldOffset=0x0)\u0022 P-INDEP\n ;* V24 tmp21        [V24    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V06._length (fldOffset=0x8)\u0022 P-INDEP\n-;  V25 tmp22        [V25,T10] (  2,  2   )   byref  -\u003E  rsi         single-def \u0022field V07._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V26 tmp23        [V26,T14] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V07._length (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V25 tmp22        [V25,T09] (  2,  2   )   byref  -\u003E  rsi         single-def \u0022field V07._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V26 tmp23        [V26,T13] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V07._length (fldOffset=0x8)\u0022 P-INDEP\n ;  V27 tmp24        [V27,T04] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V28 tmp25        [V28,T08] (  3,  3   )     ref  -\u003E  rsi         single-def \u0022arr expr\u0022\n\u002B;  V28 tmp25        [V28,T07] (  3,  3   )     ref  -\u003E  rsi         single-def \u0022arr expr\u0022\n ;  V29 cse0         [V29,T06] (  7,  3.50)     int  -\u003E  r15         \u0022CSE #01: aggressive\u0022\n-;  V30 cse1         [V30,T05] (  7,  3.50)     ref  -\u003E  r14         \u0022CSE #02: aggressive\u0022\n\u002B;  V30 cse1         [V30,T05] (  7,  3.50)     ref  -\u003E  r14         \u0022CSE #02: moderate\u0022\n ;\n ; Lcl frame size = 16\n \n@@ -73,54 \u002B73,36 @@ G_M53246_IG02:\n        call     [rax]System.Linq.Enumerable:ToList[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.Collections.Generic.List\u00601[System.__Canon]\n        mov      rbx, rax\n        test     rbx, rbx\n-       je       G_M53246_IG17\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.String]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M53246_IG04\n-\t\t\t\t\t\t;; size=127 bbWeight=1 PerfScore 19.50\n-G_M53246_IG03:\n-       lea      rsi, [rbp-0x28]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M53246_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M53246_IG04:\n\u002B       je       G_M53246_IG14\n        lea      rdx, [rbp-0x28]\n        mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.String](System.Collections.Generic.IEnumerable\u00601[System.String],byref):System.String\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M53246_IG05:\n        test     rax, rax\n-       je       G_M53246_IG15\n-\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 1.25\n-G_M53246_IG06:\n\u002B       je       G_M53246_IG12\n\u002B\t\t\t\t\t\t;; size=135 bbWeight=1 PerfScore 20.00\n\u002BG_M53246_IG03:\n        mov      rdi, 0xD1FFAB1E      ; \u0027refs\u0027\n        cmp      rax, rdi\n-       je       G_M53246_IG15\n\u002B       je       G_M53246_IG12\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 0.75\n-G_M53246_IG07:\n\u002BG_M53246_IG04:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M53246_IG09\n\u002B       jne      SHORT G_M53246_IG06\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M53246_IG08:\n\u002BG_M53246_IG05:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n-       je       G_M53246_IG15\n\u002B       je       G_M53246_IG12\n \t\t\t\t\t\t;; size=20 bbWeight=0.06 PerfScore 0.20\n-G_M53246_IG09:\n\u002BG_M53246_IG06:\n        mov      r15d, dword ptr [rbx\u002B0x10]\n        mov      r14, gword ptr [rbx\u002B0x08]\n        cmp      r15d, dword ptr [r14\u002B0x08]\n-       je       SHORT G_M53246_IG10\n\u002B       je       SHORT G_M53246_IG07\n        test     r15d, r15d\n-       jle      G_M53246_IG14\n\u002B       jle      G_M53246_IG11\n        mov      rdi, r14\n        mov      r8d, r15d\n        mov      rdx, r14\n@@ -129,22 \u002B111,22 @@ G_M53246_IG09:\n        xor      r9d, r9d\n        mov      rax, 0xD1FFAB1E      ; code for System.Array:Copy(System.Array,int,System.Array,int,int,bool)\n        call     [rax]System.Array:Copy(System.Array,int,System.Array,int,int,bool)\n-       jmp      SHORT G_M53246_IG14\n\u002B       jmp      SHORT G_M53246_IG11\n \t\t\t\t\t\t;; size=56 bbWeight=0.50 PerfScore 7.50\n-G_M53246_IG10:\n\u002BG_M53246_IG07:\n        mov      esi, r15d\n        add      esi, 1\n-       jo       G_M53246_IG19\n\u002B       jo       G_M53246_IG16\n        cmp      dword ptr [r14\u002B0x08], 0\n-       jne      SHORT G_M53246_IG11\n\u002B       jne      SHORT G_M53246_IG08\n        mov      edi, 4\n-       jmp      SHORT G_M53246_IG12\n\u002B       jmp      SHORT G_M53246_IG09\n \t\t\t\t\t\t;; size=26 bbWeight=0.50 PerfScore 3.38\n-G_M53246_IG11:\n\u002BG_M53246_IG08:\n        mov      edi, dword ptr [r14\u002B0x08]\n        add      edi, edi\n \t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 1.12\n-G_M53246_IG12:\n\u002BG_M53246_IG09:\n        mov      eax, 0xD1FFAB1E\n        cmp      edi, 0xD1FFAB1E\n        cmova    edi, eax\n@@ -155,7 \u002B137,7 @@ G_M53246_IG12:\n        call     CORINFO_HELP_NEWARR_1_PTR\n        mov      r13, rax\n        test     r15d, r15d\n-       je       SHORT G_M53246_IG13\n\u002B       je       SHORT G_M53246_IG10\n        mov      rdi, r14\n        mov      r8d, r15d\n        mov      rdx, r13\n@@ -165,31 \u002B147,31 @@ G_M53246_IG12:\n        mov      rax, 0xD1FFAB1E      ; code for System.Array:Copy(System.Array,int,System.Array,int,int,bool)\n        call     [rax]System.Array:Copy(System.Array,int,System.Array,int,int,bool)\n \t\t\t\t\t\t;; size=76 bbWeight=0.50 PerfScore 4.75\n-G_M53246_IG13:\n\u002BG_M53246_IG10:\n        lea      rdi, bword ptr [rbx\u002B0x08]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n \t\t\t\t\t\t;; size=12 bbWeight=0.50 PerfScore 0.88\n-G_M53246_IG14:\n\u002BG_M53246_IG11:\n        mov      rsi, gword ptr [rbx\u002B0x08]\n        mov      edi, dword ptr [rsi\u002B0x08]\n        test     rdi, rdi\n-       je       G_M53246_IG20\n\u002B       je       G_M53246_IG17\n        mov      rdi, 0xD1FFAB1E      ; \u0027refs\u0027\n        mov      gword ptr [rsi\u002B0x10], rdi\n        inc      dword ptr [rbx\u002B0x10]\n        inc      dword ptr [rbx\u002B0x14]\n \t\t\t\t\t\t;; size=36 bbWeight=0.50 PerfScore 6.25\n-G_M53246_IG15:\n\u002BG_M53246_IG12:\n        cmp      dword ptr [rbx\u002B0x10], 3\n-       jl       SHORT G_M53246_IG18\n\u002B       jl       SHORT G_M53246_IG15\n        mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; \u0027/\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Join(System.String,System.Collections.Generic.IEnumerable\u00601[System.String]):System.String\n        call     [rax]System.String:Join(System.String,System.Collections.Generic.IEnumerable\u00601[System.String]):System.String\n        nop      \n \t\t\t\t\t\t;; size=32 bbWeight=1 PerfScore 7.00\n-G_M53246_IG16:\n\u002BG_M53246_IG13:\n        add      rsp, 16\n        pop      rbx\n        pop      r13\n@@ -198,13 \u002B180,13 @@ G_M53246_IG16:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n-G_M53246_IG17:\n\u002BG_M53246_IG14:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M53246_IG18:\n\u002BG_M53246_IG15:\n        mov      rdi, 0xD1FFAB1E      ; System.FormatException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -216,14 \u002B198,14 @@ G_M53246_IG18:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M53246_IG19:\n\u002BG_M53246_IG16:\n        call     CORINFO_HELP_OVERFLOW\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n-G_M53246_IG20:\n\u002BG_M53246_IG17:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 594, prolog size 23, PerfScore 70.95, instruction count 142, allocated bytes for code 594 (MethodHash=a7623001) for method Octokit.NewReference:GetReference(System.String):System.String (FullOpts)\n\u002B; Total bytes of code 545, prolog size 23, PerfScore 63.20, instruction count 130, allocated bytes for code 545 (MethodHash=a7623001) for method Octokit.NewReference:GetReference(System.String):System.String (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":594,"DiffBytes":545},{"Assembly":"OpenAI.dasm","Method":"OpenAI.Embeddings.EmbeddingClient\u002B\u003CGenerateEmbeddingAsync\u003Ed__12:MoveNext():this (FullOpts)","Category":"improvement","Description":"975 -\u003E 923 bytes (-52)","ExtraInfo":null,"Diff":"@@ -9,10 \u002B9,10 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T00] ( 28, 25   )   byref  -\u003E  [rbp-0x48]  this EH-live single-def\n-;  V01 loc0         [V01,T03] (  7,  7   )     int  -\u003E  [rbp-0x24]  do-not-enreg[M] EH-live\n\u002B;  V01 loc0         [V01,T02] (  7,  7   )     int  -\u003E  [rbp-0x24]  do-not-enreg[M] EH-live\n ;  V02 loc1         [V02,T09] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003COpenAI.Embeddings.EmbeddingClient\u003E\n ;  V03 loc2         [V03,T10] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u00601[OpenAI.Embeddings.OpenAIEmbedding]\u003E\n-;  V04 loc3         [V04,T18] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u003E\n\u002B;  V04 loc3         [V04,T17] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u003E\n ;  V05 loc4         [V05    ] ( 10, 10   )  struct (16) [rbp-0x38]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.ClientModel.ClientResult]\u003E\n ;* V06 loc5         [V06    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[System.ClientModel.ClientResult]\u003E\n ;* V07 loc6         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Exception\u003E\n@@ -21,14 \u002B21,14 @@\n ;* V10 tmp2         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003COpenAI.Embeddings.OpenAIEmbedding\u003E\n ;* V11 tmp3         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.ClientModel.BinaryContent\u003E\n ;* V12 tmp4         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003COpenAI.Embeddings.EmbeddingGenerationOptions\u003E\n-;  V13 tmp5         [V13,T27] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n-;  V14 tmp6         [V14,T04] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Embeddings.EmbeddingGenerationOptions\u003E\n-;  V15 tmp7         [V15,T12] (  2,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.ClientModel.Primitives.ModelReaderWriterOptions\u003E\n\u002B;  V13 tmp5         [V13,T26] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V14 tmp6         [V14,T03] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Embeddings.EmbeddingGenerationOptions\u003E\n\u002B;  V15 tmp7         [V15,T11] (  2,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.ClientModel.Primitives.ModelReaderWriterOptions\u003E\n ;* V16 tmp8         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V17 tmp9         [V17,T25] (  2,  2   )     ref  -\u003E  r14        \n-;  V18 tmp10        [V18,T05] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ClientModel.BinaryContent\u002BModelBinaryContent\u00601[OpenAI.Embeddings.EmbeddingGenerationOptions]\u003E\n\u002B;  V17 tmp9         [V17,T23] (  2,  2   )     ref  -\u003E  r14        \n\u002B;  V18 tmp10        [V18,T04] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ClientModel.BinaryContent\u002BModelBinaryContent\u00601[OpenAI.Embeddings.EmbeddingGenerationOptions]\u003E\n ;* V19 tmp11        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V20 tmp12        [V20,T06] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult]\u003E\n\u002B;  V20 tmp12        [V20,T05] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult]\u003E\n ;* V21 tmp13        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V22 tmp14        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V23 tmp15        [V23    ] (  0,  0   )     int  -\u003E  zero-ref    single-def\n@@ -36,22 \u002B36,22 @@\n ;* V25 tmp17        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult]\u003E\n ;* V26 tmp18        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.ClientModel.ClientResult]\u003E\n ;* V27 tmp19        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult]\u003E\n-;* V28 tmp20        [V28,T26] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V29 tmp21        [V29,T13] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;* V28 tmp20        [V28,T25] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V29 tmp21        [V29,T12] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;* V30 tmp22        [V30    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V31 tmp23        [V31    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V32 tmp24        [V32    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V33 tmp25        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Runtime.CompilerServices.IAsyncStateMachineBox\u003E\n-;  V34 tmp26        [V34,T07] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n-;  V35 tmp27        [V35,T14] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n-;  V36 tmp28        [V36,T01] (  4,  8   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Embeddings.OpenAIEmbeddingCollection\u003E\n-;  V37 tmp29        [V37    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V38 tmp30        [V38,T19] (  3,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003COpenAI.Embeddings.OpenAIEmbedding\u003E\n-;  V39 tmp31        [V39,T11] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[OpenAI.Embeddings.OpenAIEmbedding]\u003E\n\u002B;  V34 tmp26        [V34,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;  V35 tmp27        [V35,T13] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;  V36 tmp28        [V36,T07] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Embeddings.OpenAIEmbeddingCollection\u003E\n\u002B;  V37 tmp29        [V37    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V38 tmp30        [V38,T24] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003COpenAI.Embeddings.OpenAIEmbedding\u003E\n\u002B;* V39 tmp31        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[OpenAI.Embeddings.OpenAIEmbedding]\u003E\n ;  V40 tmp32        [V40,T08] (  3,  6   )   byref  -\u003E  r15         single-def \u0022Inlining Arg\u0022\n-;  V41 tmp33        [V41,T20] (  3,  3   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Embeddings.OpenAIEmbedding]]\u003E\n\u002B;  V41 tmp33        [V41,T18] (  3,  3   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Embeddings.OpenAIEmbedding]]\u003E\n ;* V42 tmp34        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    ld-addr-op class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.ClientModel.ClientResult\u00601[OpenAI.Embeddings.OpenAIEmbedding]\u003E\n-;  V43 tmp35        [V43,T02] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Embeddings.OpenAIEmbedding]]\u003E\n\u002B;  V43 tmp35        [V43,T01] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Embeddings.OpenAIEmbedding]]\u003E\n ;* V44 tmp36        [V44    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n ;* V45 tmp37        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.ClientModel.ClientResult\u00601[OpenAI.Embeddings.OpenAIEmbedding]\u003E\n ;* V46 tmp38        [V46    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n@@ -60,13 \u002B60,13 @@\n ;* V49 tmp41        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V26.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;* V50 tmp42        [V50    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V26.m_options (fldOffset=0x8)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n\u002B       mov      rdx, gword ptr [rbx\u002B0x08]\n        mov      rdi, 0xD1FFAB1E      ; System.ClientModel.ClientResult:FromValue[OpenAI.Embeddings.OpenAIEmbedding](OpenAI.Embeddings.OpenAIEmbedding,System.ClientModel.Primitives.PipelineResponse):System.ClientModel.ClientResult\u00601[OpenAI.Embeddings.OpenAIEmbedding]\n        mov      rax, 0xD1FFAB1E      ; code for System.ClientModel.ClientResult:FromValue[System.__Canon](System.__Canon,System.ClientModel.Primitives.PipelineResponse):System.ClientModel.ClientResult\u00601[System.__Canon]\n        call     [rax]System.ClientModel.ClientResult:FromValue[System.__Canon](System.__Canon,System.ClientModel.Primitives.PipelineResponse):System.ClientModel.ClientResult\u00601[System.__Canon]\n        mov      rbx, rax\n-       jmp      G_M7089_IG16\n-\t\t\t\t\t\t;; size=37 bbWeight=1 PerfScore 8.00\n-G_M7089_IG12:\n\u002B       jmp      G_M7089_IG14\n\u002B\t\t\t\t\t\t;; size=98 bbWeight=1 PerfScore 20.00\n\u002BG_M7089_IG10:\n        mov      r15, gword ptr [rdi\u002B0x18]\n        mov      rdi, gword ptr [rdi\u002B0x30]\n        mov      rax, 0xD1FFAB1E      ; code for OpenAI.CancellationTokenExtensions:ToRequestOptions(System.Threading.CancellationToken):System.ClientModel.Primitives.RequestOptions\n@@ -214,16 \u002B197,16 @@ G_M7089_IG12:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x30], edi\n        test     byte  ptr [rbp-0x30], 4\n-       jne      SHORT G_M7089_IG13\n\u002B       jne      SHORT G_M7089_IG11\n        mov      rdi, gword ptr [rbp-0x38]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M7089_IG08\n \t\t\t\t\t\t;; size=73 bbWeight=1 PerfScore 25.25\n-G_M7089_IG13:\n\u002BG_M7089_IG11:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x24], edi\n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M7089_IG14:\n\u002BG_M7089_IG12:\n        mov      rbx, bword ptr [rbp-0x48]\n        mov      dword ptr [rbx\u002B0x20], edi\n        lea      rdi, bword ptr [rbx\u002B0x38]\n@@ -241,31 \u002B224,31 @@ G_M7089_IG14:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Embeddings.OpenAIEmbedding]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.ClientModel.ClientResult]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      SHORT G_M7089_IG17\n\u002B       jmp      SHORT G_M7089_IG15\n \t\t\t\t\t\t;; size=86 bbWeight=1 PerfScore 17.00\n-G_M7089_IG15:\n\u002BG_M7089_IG13:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M7089_IG16:\n\u002BG_M7089_IG14:\n        cmp      dword ptr [rbp-0x24], 0\n-       jge      SHORT G_M7089_IG18\n\u002B       jge      SHORT G_M7089_IG16\n        mov      rdi, bword ptr [rbp-0x48]\n        mov      r11, gword ptr [rdi\u002B0x18]\n        test     r11, r11\n-       je       SHORT G_M7089_IG18\n\u002B       je       SHORT G_M7089_IG16\n        mov      rdi, r11\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n-       jmp      SHORT G_M7089_IG18\n\u002B       jmp      SHORT G_M7089_IG16\n \t\t\t\t\t\t;; size=37 bbWeight=1 PerfScore 11.75\n-G_M7089_IG17:\n-       call     G_M7089_IG26\n-       jmp      G_M7089_IG23\n\u002BG_M7089_IG15:\n\u002B       call     G_M7089_IG24\n\u002B       jmp      G_M7089_IG21\n \t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.00\n-G_M7089_IG18:\n\u002BG_M7089_IG16:\n        mov      rdi, bword ptr [rbp-0x48]\n        mov      dword ptr [rdi\u002B0x20], -2\n        xor      rsi, rsi\n@@ -273,16 \u002B256,16 @@ G_M7089_IG18:\n        lea      r15, bword ptr [rdi\u002B0x28]\n        mov      rsi, gword ptr [r15]\n        test     rsi, rsi\n-       je       SHORT G_M7089_IG19\n\u002B       je       SHORT G_M7089_IG17\n        mov      rdx, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Embeddings.OpenAIEmbedding]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n-       jmp      SHORT G_M7089_IG23\n\u002B       jmp      SHORT G_M7089_IG21\n \t\t\t\t\t\t;; size=56 bbWeight=1 PerfScore 12.75\n-G_M7089_IG19:\n\u002BG_M7089_IG17:\n        test     rbx, rbx\n-       je       SHORT G_M7089_IG20\n\u002B       je       SHORT G_M7089_IG18\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Embeddings.OpenAIEmbedding]]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -290,26 \u002B273,26 @@ G_M7089_IG19:\n        lea      rdi, bword ptr [r14\u002B0x38]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      SHORT G_M7089_IG22\n\u002B       jmp      SHORT G_M7089_IG20\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 7.50\n-G_M7089_IG20:\n\u002BG_M7089_IG18:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       SHORT G_M7089_IG25\n\u002B       je       SHORT G_M7089_IG23\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 3.25\n-G_M7089_IG21:\n\u002BG_M7089_IG19:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Embeddings.OpenAIEmbedding]]:s_defaultResultTask\n        mov      r14, gword ptr [rdi]\n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 2.25\n-G_M7089_IG22:\n\u002BG_M7089_IG20:\n        mov      rdi, r15\n        mov      rsi, r14\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 1.50\n-G_M7089_IG23:\n\u002BG_M7089_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M7089_IG24:\n\u002BG_M7089_IG22:\n        add      rsp, 48\n        pop      rbx\n        pop      r13\n@@ -318,34 \u002B301,34 @@ G_M7089_IG24:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n-G_M7089_IG25:\n\u002BG_M7089_IG23:\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Embeddings.OpenAIEmbedding]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      SHORT G_M7089_IG21\n\u002B       jmp      SHORT G_M7089_IG19\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M7089_IG26:\n\u002BG_M7089_IG24:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 1.00\n-G_M7089_IG27:\n\u002BG_M7089_IG25:\n        cmp      dword ptr [rbp-0x24], 0\n-       jge      SHORT G_M7089_IG28\n\u002B       jge      SHORT G_M7089_IG26\n        mov      r15, bword ptr [rbp-0x48]\n        mov      rdi, gword ptr [r15\u002B0x18]\n        test     rdi, rdi\n-       je       SHORT G_M7089_IG28\n\u002B       je       SHORT G_M7089_IG26\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        nop      \n \t\t\t\t\t\t;; size=33 bbWeight=1 PerfScore 9.75\n-G_M7089_IG28:\n\u002BG_M7089_IG26:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M7089_IG29:\n\u002BG_M7089_IG27:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M7089_IG30:\n\u002BG_M7089_IG28:\n        mov      rdx, rdi\n        mov      r15, bword ptr [rbp-0x48]\n        mov      dword ptr [r15\u002B0x20], -2\n@@ -355,12 \u002B338,12 @@ G_M7089_IG30:\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Embeddings.OpenAIEmbedding]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n-       lea      rax, G_M7089_IG23\n\u002B       lea      rax, G_M7089_IG21\n \t\t\t\t\t\t;; size=54 bbWeight=0 PerfScore 0.00\n-G_M7089_IG31:\n\u002BG_M7089_IG29:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 975, prolog size 37, PerfScore 208.83, instruction count 229, allocated bytes for code 975 (MethodHash=14b9e44e) for method OpenAI.Embeddings.EmbeddingClient\u002B\u003CGenerateEmbeddingAsync\u003Ed__12:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 923, prolog size 37, PerfScore 193.83, instruction count 216, allocated bytes for code 923 (MethodHash=14b9e44e) for method OpenAI.Embeddings.EmbeddingClient\u002B\u003CGenerateEmbeddingAsync\u003Ed__12:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":975,"DiffBytes":923},{"Assembly":"OpenTelemetry.Api.dasm","Method":"OpenTelemetry.Context.Propagation.CompositeTextMapPropagator:.ctor(System.Collections.Generic.IEnumerable\u00601[OpenTelemetry.Context.Propagation.TextMapPropagator]):this (FullOpts)","Category":"improvement","Description":"1,976 -\u003E 1,342 bytes (-634)","ExtraInfo":null,"Diff":"@@ -9,117 \u002B9,114 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] ( 10, 14   )     ref  -\u003E  rbx         this class-hnd single-def \u003COpenTelemetry.Context.Propagation.CompositeTextMapPropagator\u003E\n-;  V01 arg1         [V01,T18] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.IEnumerable\u00601[OpenTelemetry.Context.Propagation.TextMapPropagator]\u003E\n\u002B;  V01 arg1         [V01,T13] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.IEnumerable\u00601[OpenTelemetry.Context.Propagation.TextMapPropagator]\u003E\n ;  V02 loc0         [V02,T05] (  8, 14   )     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[OpenTelemetry.Context.Propagation.TextMapPropagator]\u003E\n-;  V03 loc1         [V03,T06] (  6, 13   )     ref  -\u003E  [rbp-0x60]  class-hnd EH-live single-def \u003CSystem.Collections.Generic.IEnumerator\u00601[OpenTelemetry.Context.Propagation.TextMapPropagator]\u003E\n\u002B;  V03 loc1         [V03,T06] (  6, 13   )     ref  -\u003E  [rbp-0x50]  class-hnd EH-live single-def \u003CSystem.Collections.Generic.IEnumerator\u00601[OpenTelemetry.Context.Propagation.TextMapPropagator]\u003E\n ;  V04 loc2         [V04,T07] (  4, 12   )     ref  -\u003E  rax         class-hnd \u003COpenTelemetry.Context.Propagation.TextMapPropagator\u003E\n ;  V05 loc3         [V05,T08] (  6, 11.50)     ref  -\u003E  registers   class-hnd \u003CSystem.Collections.Generic.ISet\u00601[System.String]\u003E\n-;  V06 loc4         [V06,T23] (  7,  4.75)     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Collections.Generic.HashSet\u00601[System.String]\u003E\n-;* V07 loc5         [V07,T75] (  0,  0   )     int  -\u003E  zero-ref   \n\u002B;  V06 loc4         [V06,T19] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Collections.Generic.HashSet\u00601[System.String]\u003E\n\u002B;* V07 loc5         [V07,T51] (  0,  0   )     int  -\u003E  zero-ref   \n ;  V08 OutArgs      [V08    ] (  1,  1   )  struct (32) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V09 tmp1         [V09,T19] (  3,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[OpenTelemetry.Context.Propagation.TextMapPropagator]\u003E\n-;  V10 tmp2         [V10,T27] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.String]\u003E\n-;  V11 tmp3         [V11,T45] (  3,  1.50)     ref  -\u003E  r14        \n-;  V12 tmp4         [V12,T28] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.String]\u003E\n-;  V13 tmp5         [V13,T20] (  3,  6   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003COpenTelemetry.Context.Propagation.TextMapPropagator[]\u003E\n-;  V14 tmp6         [V14,T11] (  4,  8   )     int  -\u003E  r15         \u0022Inline stloc first use temp\u0022\n\u002B;  V09 tmp1         [V09,T14] (  3,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[OpenTelemetry.Context.Propagation.TextMapPropagator]\u003E\n\u002B;  V10 tmp2         [V10,T20] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.String]\u003E\n\u002B;  V11 tmp3         [V11,T31] (  3,  1.50)     ref  -\u003E  r14        \n\u002B;  V12 tmp4         [V12,T21] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.String]\u003E\n\u002B;  V13 tmp5         [V13,T15] (  3,  6   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003COpenTelemetry.Context.Propagation.TextMapPropagator[]\u003E\n\u002B;  V14 tmp6         [V14,T10] (  4,  8   )     int  -\u003E  r15         \u0022Inline stloc first use temp\u0022\n ;* V15 tmp7         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[OpenTelemetry.Context.Propagation.TextMapPropagator]\u003E\n-;  V16 tmp8         [V16,T44] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[OpenTelemetry.Context.Propagation.TextMapPropagator]\u003E\n\u002B;  V16 tmp8         [V16,T30] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[OpenTelemetry.Context.Propagation.TextMapPropagator]\u003E\n ;  V17 tmp9         [V17,T01] (  3, 24   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[OpenTelemetry.Context.Propagation.TextMapPropagator]\u003E\n ;* V18 tmp10        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[OpenTelemetry.Context.Propagation.TextMapPropagator]\u003E\n-;  V19 tmp11        [V19,T46] (  3,  1.50)     ref  -\u003E  r15         class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableHashSet\u00601[System.String]\u003E\n-;* V20 tmp12        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CSystem.Collections.Immutable.ImmutableHashSet\u00601[System.String]\u003E\n-;  V21 tmp13        [V21,T42] (  4,  2   )     ref  -\u003E  r14         class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Immutable.ImmutableHashSet\u00601[System.String]\u003E\n-;  V22 tmp14        [V22,T47] (  3,  1.50)     ref  -\u003E  r15         class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableHashSet\u00601[System.String]\u003E\n-;  V23 tmp15        [V23,T29] (  3,  3   )     ref  -\u003E  r13         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEqualityComparer\u00601[System.String]\u003E\n-;  V24 tmp16        [V24,T09] ( 10, 10   )     ref  -\u003E  [rbp-0x68]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Immutable.ImmutableHashSet\u00601[System.String]\u003E\n-;  V25 tmp17        [V25,T30] (  3,  3   )     ref  -\u003E  [rbp-0x70]  class-hnd exact spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableHashSet\u00601\u002BHashBucket[System.String]]\u003E\n-;* V26 tmp18        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEqualityComparer\u00601[System.Collections.Immutable.ImmutableHashSet\u00601\u002BHashBucket[System.String]]\u003E\n-;* V27 tmp19        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Immutable.ImmutableHashSet\u00601\u002BHashBucketByValueEqualityComparer[System.String]\u003E\n-;* V28 tmp20        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableHashSet\u00601[System.String]\u003E\n-;* V29 tmp21        [V29    ] (  0,  0   )  struct (32) zero-ref    do-not-enreg[S] \u0022spilled call-like call argument\u0022 \u003CSystem.Collections.Immutable.ImmutableHashSet\u00601\u002BMutationInput[System.String]\u003E\n-;* V30 tmp22        [V30    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CSystem.Collections.Immutable.ImmutableHashSet\u00601\u002BMutationResult[System.String]\u003E\n-;  V31 tmp23        [V31    ] (  8,  4   )  struct (16) [rbp-0x38]  do-not-enreg[SBRM] multireg-ret multireg-dest must-init ld-addr-op single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Immutable.ImmutableHashSet\u00601\u002BMutationResult[System.String]\u003E\n-;* V32 tmp24        [V32    ] (  0,  0   )  struct (32) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Immutable.ImmutableHashSet\u00601\u002BMutationInput[System.String]\u003E\n-;  V33 tmp25        [V33,T53] (  3,  1.50)     int  -\u003E  r14         \u0022Inline stloc first use temp\u0022\n-;  V34 tmp26        [V34,T48] (  3,  1.50)     ref  -\u003E  r15         class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableHashSet\u00601[System.String]\u003E\n-;* V35 tmp27        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableHashSet\u00601\u002BHashBucket[System.__Canon]]\u003E\n-;  V36 tmp28        [V36,T13] (  6,  6   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Immutable.ImmutableHashSet\u00601[System.String]\u003E\n-;  V37 tmp29        [V37,T31] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEqualityComparer\u00601[System.__Canon]\u003E\n-;* V38 tmp30        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEqualityComparer\u00601[System.Collections.Immutable.ImmutableHashSet\u00601\u002BHashBucket[System.String]]\u003E\n-;* V39 tmp31        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Immutable.ImmutableHashSet\u00601\u002BHashBucketByValueEqualityComparer[System.String]\u003E\n-;  V40 tmp32        [V40,T22] ( 11,  5.50)     ref  -\u003E  r13         class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableHashSet\u00601[System.String]\u003E\n-;  V41 tmp33        [V41,T32] (  3,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEqualityComparer\u00601[System.String]\u003E\n-;  V42 tmp34        [V42,T25] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Immutable.ImmutableHashSet\u00601[System.String]\u003E\n... diff truncated; middle omitted ...\n-       mov      gword ptr [rbp-0xA8], rcx\n-       mov      rdx, rcx\n-       mov      gword ptr [rbp-0x70], rdx\n-       mov      rsi, 0xD1FFAB1E      ; const ptr\n-       mov      rsi, gword ptr [rsi]\n-       mov      rdi, rdx\n-       mov      r8, 0xD1FFAB1E      ; code for System.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableHashSet\u00601\u002BHashBucket[System.__Canon]]:Freeze(System.Action\u00601[System.Collections.Generic.KeyValuePair\u00602[int,System.Collections.Immutable.ImmutableHashSet\u00601\u002BHashBucket[System.__Canon]]]):this\n-       call     [r8]System.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableHashSet\u00601\u002BHashBucket[System.__Canon]]:Freeze(System.Action\u00601[System.Collections.Generic.KeyValuePair\u00602[int,System.Collections.Immutable.ImmutableHashSet\u00601\u002BHashBucket[System.__Canon]]]):this\n-       mov      rax, gword ptr [rbp-0x68]\n-       lea      rdi, bword ptr [rax\u002B0x10]\n-       mov      rsi, gword ptr [rbp-0x70]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       xor      edi, edi\n-       mov      rax, gword ptr [rbp-0x68]\n-       mov      dword ptr [rax\u002B0x20], edi\n-       lea      rdi, bword ptr [rax\u002B0x08]\n-       mov      rsi, r13\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, 0xD1FFAB1E      ; const ptr\n-       mov      rdi, gword ptr [rdi]\n-       mov      r13, rdi\n-       mov      rax, gword ptr [rbp-0x68]\n-       lea      rdi, bword ptr [rax\u002B0x18]\n-       mov      rsi, r13\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rsi, gword ptr [rbp-0xA8]\n-       mov      rax, gword ptr [rbp-0x68]\n-       mov      edi, dword ptr [rax\u002B0x20]\n-       mov      rcx, r13\n-       mov      gword ptr [rsp], rsi\n-       mov      gword ptr [rsp\u002B0x08], r12\n-       mov      gword ptr [rsp\u002B0x10], rcx\n-       mov      dword ptr [rsp\u002B0x18], edi\n-       mov      rsi, r14\n-       mov      rdi, r15\n-       mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableHashSet\u00601[System.__Canon]:Union(System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Collections.Immutable.ImmutableHashSet\u00601\u002BMutationInput[System.__Canon]):System.Collections.Immutable.ImmutableHashSet\u00601\u002BMutationResult[System.__Canon]\n-       call     [rcx]System.Collections.Immutable.ImmutableHashSet\u00601[System.__Canon]:Union(System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Collections.Immutable.ImmutableHashSet\u00601\u002BMutationInput[System.__Canon]):System.Collections.Immutable.ImmutableHashSet\u00601\u002BMutationResult[System.__Canon]\n-\t\t\t\t\t\t;; size=220 bbWeight=0.50 PerfScore 21.50\n-G_M64323_IG30:\n-       mov      gword ptr [rbp-0x38], rax\n-       mov      qword ptr [rbp-0x30], rdx\n-       mov      r14d, dword ptr [rbp-0x30]\n-       cmp      dword ptr [rbp-0x2C], 0\n-       jne      SHORT G_M64323_IG31\n-       mov      r14d, dword ptr [rbp-0x30]\n-       mov      r12, gword ptr [rbp-0x68]\n-       add      r14d, dword ptr [r12\u002B0x20]\n-\t\t\t\t\t\t;; size=31 bbWeight=0.50 PerfScore 4.50\n-G_M64323_IG31:\n-       mov      rdi, gword ptr [rbp-0x38]\n-       mov      r12, gword ptr [rbp-0x68]\n-       cmp      rdi, gword ptr [r12\u002B0x10]\n-       je       SHORT G_M64323_IG32\n-       mov      rdi, r15\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r15, rax\n-       mov      r12, gword ptr [r12\u002B0x08]\n-       cmp      gword ptr [rbp-0x38], 0\n-       je       G_M64323_IG42\n-       test     r12, r12\n-       je       G_M64323_IG43\n-       mov      rsi, 0xD1FFAB1E      ; const ptr\n-       mov      rsi, gword ptr [rsi]\n-       mov      rdi, gword ptr [rbp-0x38]\n-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableHashSet\u00601\u002BHashBucket[System.__Canon]]:Freeze(System.Action\u00601[System.Collections.Generic.KeyValuePair\u00602[int,System.Collections.Immutable.ImmutableHashSet\u00601\u002BHashBucket[System.__Canon]]]):this\n-       call     [rax]System.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableHashSet\u00601\u002BHashBucket[System.__Canon]]:Freeze(System.Action\u00601[System.Collections.Generic.KeyValuePair\u00602[int,System.Collections.Immutable.ImmutableHashSet\u00601\u002BHashBucket[System.__Canon]]]):this\n-       lea      rdi, bword ptr [r15\u002B0x10]\n-       mov      rsi, gword ptr [rbp-0x38]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      dword ptr [r15\u002B0x20], r14d\n-       lea      rdi, bword ptr [r15\u002B0x08]\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r15\u002B0x18]\n\u002B       mov      r13, r14\n\u002B\t\t\t\t\t\t;; size=142 bbWeight=0.50 PerfScore 13.38\n\u002BG_M64323_IG22:\n\u002B       lea      rdi, bword ptr [rbx\u002B0x10]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      SHORT G_M64323_IG33\n-\t\t\t\t\t\t;; size=123 bbWeight=0.50 PerfScore 13.62\n-G_M64323_IG32:\n-       mov      r15, r12\n-\t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M64323_IG33:\n-       jmp      SHORT G_M64323_IG35\n-\t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 1.00\n-G_M64323_IG34:\n-       mov      r15, r14\n-\t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M64323_IG35:\n-       lea      rdi, bword ptr [rbx\u002B0x10]\n-       mov      rsi, r15\n-       call     CORINFO_HELP_ASSIGN_REF\n-       jmp      SHORT G_M64323_IG37\n\u002B       jmp      SHORT G_M64323_IG24\n \t\t\t\t\t\t;; size=14 bbWeight=0.50 PerfScore 1.88\n-G_M64323_IG36:\n\u002BG_M64323_IG23:\n        mov      rdi, 0xD1FFAB1E      ; const ptr\n        mov      rsi, gword ptr [rdi]\n        lea      rdi, bword ptr [rbx\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n \t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 1.88\n-G_M64323_IG37:\n\u002BG_M64323_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M64323_IG38:\n-       add      rsp, 168\n\u002BG_M64323_IG25:\n\u002B       add      rsp, 104\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -611,57 \u002B439,57 @@ G_M64323_IG38:\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M64323_IG39:\n\u002B\t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n\u002BG_M64323_IG26:\n        mov      rdi, 0xD1FFAB1E      ; \u0027propagators\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:Throw(System.String)\n        call     [rax]System.ArgumentNullException:Throw(System.String)\n        int3     \n \t\t\t\t\t\t;; size=23 bbWeight=0 PerfScore 0.00\n-G_M64323_IG40:\n\u002BG_M64323_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[OpenTelemetry.Context.Propagation.TextMapPropagator]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M64323_IG03\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M64323_IG41:\n\u002BG_M64323_IG28:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M64323_IG42:\n\u002BG_M64323_IG29:\n        mov      rdi, 0xD1FFAB1E      ; \u0027root\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)\n        call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)\n        int3     \n \t\t\t\t\t\t;; size=23 bbWeight=0 PerfScore 0.00\n-G_M64323_IG43:\n\u002BG_M64323_IG30:\n        mov      rdi, 0xD1FFAB1E      ; \u0027equalityComparer\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)\n        call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)\n        int3     \n \t\t\t\t\t\t;; size=23 bbWeight=0 PerfScore 0.00\n-G_M64323_IG44:\n\u002BG_M64323_IG31:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n-G_M64323_IG45:\n\u002BG_M64323_IG32:\n        sub      rsp, 40\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M64323_IG46:\n-       cmp      gword ptr [rbp-0x60], 0\n-       je       SHORT G_M64323_IG47\n-       mov      rdi, gword ptr [rbp-0x60]\n\u002BG_M64323_IG33:\n\u002B       cmp      gword ptr [rbp-0x50], 0\n\u002B       je       SHORT G_M64323_IG34\n\u002B       mov      rdi, gword ptr [rbp-0x50]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M64323_IG47:\n\u002BG_M64323_IG34:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M64323_IG48:\n\u002BG_M64323_IG35:\n        add      rsp, 40\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1976, prolog size 51, PerfScore 419.02, instruction count 446, allocated bytes for code 1976 (MethodHash=c08f04bc) for method OpenTelemetry.Context.Propagation.CompositeTextMapPropagator:.ctor(System.Collections.Generic.IEnumerable\u00601[OpenTelemetry.Context.Propagation.TextMapPropagator]):this (FullOpts)\n\u002B; Total bytes of code 1342, prolog size 48, PerfScore 352.33, instruction count 304, allocated bytes for code 1342 (MethodHash=c08f04bc) for method OpenTelemetry.Context.Propagation.CompositeTextMapPropagator:.ctor(System.Collections.Generic.IEnumerable\u00601[OpenTelemetry.Context.Propagation.TextMapPropagator]):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1976,"DiffBytes":1342},{"Assembly":"PdfSharp.dasm","Method":"PdfSharp.UniversalAccessibility.StructureBuilder:AddToParentTree(PdfSharp.Pdf.Structure.PdfStructureElement,int):this (FullOpts)","Category":"improvement","Description":"1,567 -\u003E 1,518 bytes (-49)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;* V02 arg2         [V02    ] (  0,  0   )     int  -\u003E  zero-ref    single-def\n ;  V03 loc0         [V03,T18] (  5,  4.50)     ref  -\u003E  r14         class-hnd exact single-def \u003CPdfSharp.UniversalAccessibility.StructureBuilder\u002B\u003C\u003Ec__DisplayClass27_0\u003E\n ;  V04 loc1         [V04,T33] (  4,  3.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CPdfSharp.Pdf.Structure.PdfStructureTreeRoot\u003E\n-;  V05 loc2         [V05,T41] (  5,  2.38)     ref  -\u003E  r12         class-hnd exact \u003CPdfSharp.Pdf.PdfNumberTreeNode\u003E\n\u002B;  V05 loc2         [V05,T40] (  5,  2.38)     ref  -\u003E  r12         class-hnd exact \u003CPdfSharp.Pdf.PdfNumberTreeNode\u003E\n ;  V06 loc3         [V06,T01] ( 10,  8   )     ref  -\u003E  [rbp-0x50]  class-hnd \u003CPdfSharp.Pdf.PdfArray\u003E\n-;  V07 loc4         [V07,T43] (  3,  2   )     int  -\u003E  [rbp-0x2C]  spill-single-def\n-;  V08 loc5         [V08,T34] (  4,  3.50)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[PdfSharp.Pdf.PdfInteger]\u003E\n\u002B;  V07 loc4         [V07,T41] (  3,  2   )     int  -\u003E  [rbp-0x2C]  spill-single-def\n\u002B;  V08 loc5         [V08,T34] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[PdfSharp.Pdf.PdfInteger]\u003E\n ;  V09 loc6         [V09,T21] (  4,  4   )     int  -\u003E  rbx         single-def\n-;  V10 loc7         [V10,T47] (  3,  1.50)     int  -\u003E  rbx         single-def\n\u002B;  V10 loc7         [V10,T46] (  3,  1.50)     int  -\u003E  rbx         single-def\n ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V12 tmp1         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CPdfSharp.UniversalAccessibility.StructureBuilder\u002B\u003C\u003Ec__DisplayClass27_0\u003E\n ;  V13 tmp2         [V13,T17] (  4,  4.75)     ref  -\u003E  r12         single-def \u0022ISINST eval op1\u0022\n@@ -30,21 \u002B30,21 @@\n ;  V19 tmp8         [V19,T23] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[PdfSharp.Pdf.PdfInteger]\u003E\n ;  V20 tmp9         [V20,T24] (  2,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CPdfSharp.Pdf.PdfArray\u002BArrayElements\u003E\n ;  V21 tmp10        [V21,T05] (  6,  6   )     ref  -\u003E  rax         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CPdfSharp.Pdf.PdfArray\u003E\n-;  V22 tmp11        [V22,T46] (  2,  2   )     int  -\u003E  rsi         \u0022impAppendStmt\u0022\n\u002B;  V22 tmp11        [V22,T45] (  2,  2   )     int  -\u003E  rsi         \u0022impAppendStmt\u0022\n ;* V23 tmp12        [V23    ] (  0,  0   )    long  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CPdfSharp.Pdf.PdfInteger\u003E\n ;  V24 tmp13        [V24,T06] (  6,  6   )     ref  -\u003E  rax         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CPdfSharp.Pdf.PdfArray\u003E\n ;* V25 tmp14        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CPdfSharp.UniversalAccessibility.UAManager\u003E\n ;  V26 tmp15        [V26,T07] (  3,  6   )     ref  -\u003E  r12         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CPdfSharp.Pdf.PdfDictionary\u002BDictionaryElements\u003E\n ;  V27 tmp16        [V27,T08] (  3,  6   )     ref  -\u003E  [rbp-0x58]  class-hnd exact spill-single-def \u0022Inlining Arg\u0022 \u003CPdfSharp.Pdf.PdfDictionary\u002BDictionaryElements\u003E\n-;  V28 tmp17        [V28,T36] (  3,  3   )     ref  -\u003E  [rbp-0x60]  class-hnd exact spill-single-def \u0022Inlining Arg\u0022 \u003CPdfSharp.Pdf.PdfDictionary\u002BDictionaryElements\u003E\n\u002B;  V28 tmp17        [V28,T35] (  3,  3   )     ref  -\u003E  [rbp-0x60]  class-hnd exact spill-single-def \u0022Inlining Arg\u0022 \u003CPdfSharp.Pdf.PdfDictionary\u002BDictionaryElements\u003E\n ;  V29 tmp18        [V29,T09] (  3,  6   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CPdfSharp.Pdf.PdfDictionary\u002BDictionaryElements\u003E\n ;  V30 tmp19        [V30    ] (  2,  2   )     int  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V31 tmp20        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CPdfSharp.UniversalAccessibility.UAManager\u003E\n ;  V32 tmp21        [V32,T10] (  3,  6   )     ref  -\u003E  [rbp-0x68]  class-hnd exact spill-single-def \u0022Inlining Arg\u0022 \u003CPdfSharp.Pdf.PdfDictionary\u002BDictionaryElements\u003E\n ;* V33 tmp22        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CPdfSharp.UniversalAccessibility.UAManager\u003E\n-;  V34 tmp23        [V34,T37] (  3,  3   )     ref  -\u003E  [rbp-0x70]  class-hnd exact spill-single-def \u0022Inlining Arg\u0022 \u003CPdfSharp.Pdf.PdfDictionary\u002BDictionaryElements\u003E\n\u002B;  V34 tmp23        [V34,T36] (  3,  3   )     ref  -\u003E  [rbp-0x70]  class-hnd exact spill-single-def \u0022Inlining Arg\u0022 \u003CPdfSharp.Pdf.PdfDictionary\u002BDictionaryElements\u003E\n ;  V35 tmp24        [V35,T14] (  5,  5   )     ref  -\u003E  rax         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CPdfSharp.Pdf.PdfInteger\u003E\n-;  V36 tmp25        [V36,T38] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CPdfSharp.Pdf.PdfDictionary\u002BDictionaryElements\u003E\n\u002B;  V36 tmp25        [V36,T37] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CPdfSharp.Pdf.PdfDictionary\u002BDictionaryElements\u003E\n ;* V37 tmp26        [V37    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V38 tmp27        [V38,T15] (  5,  5   )     ref  -\u003E  rax         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CPdfSharp.Pdf.PdfInteger\u003E\n ;* V39 tmp28        [V39    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n@@ -56,20 \u002B56,20 @@\n ;* V45 tmp34        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[PdfSharp.Pdf.PdfItem]\u003E\n ;* V46 tmp35        [V46    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CPdfSharp.Pdf.PdfArray\u002BArrayElements\u003E\n ;* V47 tmp36        [V47    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V48 tmp37        [V48,T40] (  3,  3   )     int  -\u003E  rbx         \u0022Inlining Arg\u0022\n-;  V49 tmp38        [V49,T39] (  3,  3   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[PdfSharp.Pdf.PdfItem]\u003E\n-;  V50 tmp39        [V50,T44] (  2,  2   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CPdfSharp.Pdf.PdfInteger\u003E\n-;  V51 tmp40        [V51    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V48 tmp37        [V48,T39] (  3,  3   )     int  -\u003E  rbx         \u0022Inlining Arg\u0022\n\u002B;  V49 tmp38        [V49,T38] (  3,  3   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[PdfSharp.Pdf.PdfItem]\u003E\n\u002B;  V50 tmp39        [V50,T42] (  2,  2   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CPdfSharp.Pdf.PdfInteger\u003E\n\u002B;  V51 tmp40        [V51    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V52 tmp41        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V53 tmp42        [V53,T42] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CPdfSharp.Pdf.PdfInteger\u003E\n-;  V54 tmp43        [V54,T35] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[PdfSharp.Pdf.PdfInteger]\u003E\n\u002B;  V53 tmp42        [V53,T43] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CPdfSharp.Pdf.PdfInteger\u003E\n\u002B;* V54 tmp43        [V54    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[PdfSharp.Pdf.PdfInteger]\u003E\n ;* V55 tmp44        [V55    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CPdfSharp.Pdf.PdfArray\u002BArrayElements\u003E\n ;  V56 tmp45        [V56,T12] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[PdfSharp.Pdf.PdfItem]\u003E\n ;* V57 tmp46        [V57    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[SF] \u0022stack allocated PdfSharp.Pdf.PdfInteger\u0022 \u003CPdfSharp.Pdf.PdfInteger\u003E\n ;  V58 tmp47        [V58,T25] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;  V59 tmp48        [V59,T26] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;  V60 tmp49        [V60,T27] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V61 tmp50        [V61,T45] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022arr expr\u0022\n\u002B;  V61 tmp50        [V61,T44] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022arr expr\u0022\n ;  V62 tmp51        [V62,T28] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;  V63 tmp52        [V63,T29] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;  V64 tmp53        [V64,T13] (  3,  6   )     ref  -\u003E  rsi         single-def \u0022arr expr\u0022\n@@ -327,10 \u002B327,10 @@ G_M12933_IG12:\n        mov      rdi, gword ptr [rax\u002B0x10]\n        add      ebx, -2\n        cmp      ebx, dword ptr [rdi\u002B0x10]\n-       jae      G_M12933_IG20\n\u002B       jae      G_M12933_IG17\n        mov      rdi, gword ptr [rdi\u002B0x08]\n        cmp      ebx, dword ptr [rdi\u002B0x08]\n-       jae      G_M12933_IG23\n\u002B       jae      G_M12933_IG20\n \t\t\t\t\t\t;; size=72 bbWeight=0.50 PerfScore 12.00\n G_M12933_IG13:\n        mov      rbx, gword ptr [r14\u002B0x08]\n@@ -378,36 \u002B378,18 @@ G_M12933_IG14:\n        call     [rax]PdfSharp.Pdf.PdfArray:get_Elements():PdfSharp.Pdf.PdfArray\u002BArrayElements:this\n        mov      r14, rax\n        test     rbx, rbx\n-       je       G_M12933_IG21\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[PdfSharp.Pdf.PdfInteger]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-\t\t\t\t\t\t;; size=200 bbWeight=1 PerfScore 30.50\n-G_M12933_IG15:\n-       je       SHORT G_M12933_IG17\n-\t\t\t\t\t\t;; size=2 bbWeight=1 PerfScore 1.00\n-G_M12933_IG16:\n-       lea      rsi, [rbp-0x48]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M12933_IG18\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M12933_IG17:\n\u002B       je       G_M12933_IG18\n        lea      rdx, [rbp-0x48]\n        mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[PdfSharp.Pdf.PdfInteger](System.Collections.Generic.IEnumerable\u00601[PdfSharp.Pdf.PdfInteger],byref):PdfSharp.Pdf.PdfInteger\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M12933_IG18:\n-       cmp      byte  ptr [rbp-0x48], 0\n-       je       G_M12933_IG22\n-       mov      rdi, r14\n        mov      rsi, rax\n\u002B       cmp      byte  ptr [rbp-0x48], 0\n\u002B\t\t\t\t\t\t;; size=208 bbWeight=1 PerfScore 32.00\n\u002BG_M12933_IG15:\n\u002B       je       G_M12933_IG19\n\u002B       mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for PdfSharp.Pdf.PdfArray\u002BArrayElements:IndexOf(PdfSharp.Pdf.PdfItem):int:this\n        cmp      dword ptr [rdi], edi\n        call     [rax]PdfSharp.Pdf.PdfArray\u002BArrayElements:IndexOf(PdfSharp.Pdf.PdfItem):int:this\n@@ -417,10 \u002B399,10 @@ G_M12933_IG18:\n        call     [rax]PdfSharp.Pdf.PdfArray:get_Elements():PdfSharp.Pdf.PdfArray\u002BArrayElements:this\n        mov      rsi, gword ptr [rax\u002B0x10]\n        cmp      ebx, dword ptr [rsi\u002B0x10]\n-       jae      SHORT G_M12933_IG20\n\u002B       jae      SHORT G_M12933_IG17\n        mov      rsi, gword ptr [rsi\u002B0x08]\n        cmp      ebx, dword ptr [rsi\u002B0x08]\n-       jae      G_M12933_IG23\n\u002B       jae      G_M12933_IG20\n        mov      edi, ebx\n        mov      rsi, gword ptr [rsi\u002B8*rdi\u002B0x10]\n        mov      rdi, 0xD1FFAB1E      ; PdfSharp.Pdf.PdfArray\n@@ -436,8 \u002B418,8 @@ G_M12933_IG18:\n        cmp      dword ptr [rdi], edi\n        call     [rax]PdfSharp.Pdf.PdfArray\u002BArrayElements:Add(PdfSharp.Pdf.PdfItem):this\n        nop      \n-\t\t\t\t\t\t;; size=138 bbWeight=1 PerfScore 39.75\n-G_M12933_IG19:\n\u002B\t\t\t\t\t\t;; size=131 bbWeight=1 PerfScore 38.50\n\u002BG_M12933_IG16:\n        add      rsp, 88\n        pop      rbx\n        pop      r12\n@@ -447,26 \u002B429,26 @@ G_M12933_IG19:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M12933_IG20:\n\u002BG_M12933_IG17:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M12933_IG21:\n\u002BG_M12933_IG18:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M12933_IG22:\n\u002BG_M12933_IG19:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M12933_IG23:\n\u002BG_M12933_IG20:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1567, prolog size 38, PerfScore 274.83, instruction count 341, allocated bytes for code 1567 (MethodHash=08fccd7a) for method PdfSharp.UniversalAccessibility.StructureBuilder:AddToParentTree(PdfSharp.Pdf.Structure.PdfStructureElement,int):this (FullOpts)\n\u002B; Total bytes of code 1518, prolog size 38, PerfScore 267.08, instruction count 329, allocated bytes for code 1518 (MethodHash=08fccd7a) for method PdfSharp.UniversalAccessibility.StructureBuilder:AddToParentTree(PdfSharp.Pdf.Structure.PdfStructureElement,int):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1567,"DiffBytes":1518},{"Assembly":"Perfolizer.dasm","Method":"Perfolizer.Perfonar.Tables.PerfonarRow:ToSample():Pragmastat.Sample:this (FullOpts)","Category":"improvement","Description":"301 -\u003E 249 bytes (-52)","ExtraInfo":null,"Diff":"@@ -1,123 \u002B1,104 @@\n ; Assembly listing for method Perfolizer.Perfonar.Tables.PerfonarRow:ToSample():Pragmastat.Sample:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 4 single block inlinees; 3 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CPerfolizer.Perfonar.Tables.PerfonarRow\u003E\n\u002B;  V00 this         [V00,T00] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CPerfolizer.Perfonar.Tables.PerfonarRow\u003E\n ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V02 tmp1         [V02,T03] (  2,  4   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[Pragmastat.Metrology.Measurement,double]\u003E\n ;  V03 tmp2         [V03,T04] (  2,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[Pragmastat.Metrology.Measurement]\u003E\n ;* V04 tmp3         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V05 tmp4         [V05,T06] (  4,  3.50)     ref  -\u003E  rdx        \n ;  V06 tmp5         [V06,T05] (  2,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[double]\u003E\n ;  V07 tmp6         [V07,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[Pragmastat.Metrology.Measurement,double]\u003E\n-;  V08 tmp7         [V08,T09] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CPerfolizer.Perfonar.Tables.PerfonarRow\u002B\u003C\u003Ec\u003E\n-;  V09 tmp8         [V09,T00] (  4,  7   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Pragmastat.Metrology.Measurement]\u003E\n-;  V10 tmp9         [V10    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V08 tmp7         [V08,T07] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CPerfolizer.Perfonar.Tables.PerfonarRow\u002B\u003C\u003Ec\u003E\n\u002B;  V09 tmp8         [V09,T01] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Pragmastat.Metrology.Measurement]\u003E\n\u002B;  V10 tmp9         [V10    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V11 tmp10        [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V12 tmp11        [V12,T08] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CPragmastat.Metrology.Measurement\u003E\n-;  V13 tmp12        [V13,T07] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Pragmastat.Metrology.Measurement]\u003E\n\u002B;  V12 tmp11        [V12,T08] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CPragmastat.Metrology.Measurement\u003E\n\u002B;* V13 tmp12        [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Pragmastat.Metrology.Measurement]\u003E\n ;* V14 tmp13        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CPragmastat.Metrology.Measurement\u003E\n ;\n ; Lcl frame size = 8\n \n G_M7751_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x20]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x20], rax\n        mov      rbx, rdi\n \t\t\t\t\t\t;; size=21 bbWeight=1 PerfScore 7.00\n G_M7751_IG02:\n        mov      r15, gword ptr [rbx\u002B0x18]\n        mov      rdi, 0xD1FFAB1E      ; data for Perfolizer.Perfonar.Tables.PerfonarRow\u002B\u003C\u003Ec:\u003C\u003E9__17_0\n        mov      rdx, gword ptr [rdi]\n        test     rdx, rdx\n        jne      SHORT G_M7751_IG04\n \t\t\t\t\t\t;; size=22 bbWeight=1 PerfScore 5.50\n G_M7751_IG03:\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[Pragmastat.Metrology.Measurement,double]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      rdi, 0xD1FFAB1E      ; const ptr\n        mov      rsi, gword ptr [rdi]\n        lea      rdi, bword ptr [r14\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, 0xD1FFAB1E      ; code for Perfolizer.Perfonar.Tables.PerfonarRow\u002B\u003C\u003Ec:\u003CToSample\u003Eb__17_0(Pragmastat.Metrology.Measurement):double:this\n        mov      qword ptr [r14\u002B0x18], rdi\n        mov      rdi, 0xD1FFAB1E      ; data for Perfolizer.Perfonar.Tables.PerfonarRow\u002B\u003C\u003Ec:\u003C\u003E9__17_0\n        mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdx, r14\n \t\t\t\t\t\t;; size=75 bbWeight=0.50 PerfScore 4.12\n G_M7751_IG04:\n        mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:Select[Pragmastat.Metrology.Measurement,double](System.Collections.Generic.IEnumerable\u00601[Pragmastat.Metrology.Measurement],System.Func\u00602[Pragmastat.Metrology.Measurement,double]):System.Collections.Generic.IEnumerable\u00601[double]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:Select[System.__Canon,double](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Func\u00602[System.__Canon,double]):System.Collections.Generic.IEnumerable\u00601[double]\n        call     [rax]System.Linq.Enumerable:Select[System.__Canon,double](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Func\u00602[System.__Canon,double]):System.Collections.Generic.IEnumerable\u00601[double]\n        mov      r15, rax\n-       mov      rbx, gword ptr [rbx\u002B0x18]\n-       test     rbx, rbx\n-       je       SHORT G_M7751_IG09\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[Pragmastat.Metrology.Measurement]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n\u002B       mov      rsi, gword ptr [rbx\u002B0x18]\n\u002B       test     rsi, rsi\n        je       SHORT G_M7751_IG06\n-\t\t\t\t\t\t;; size=67 bbWeight=1 PerfScore 12.25\n-G_M7751_IG05:\n-       lea      rsi, [rbp-0x20]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M7751_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M7751_IG06:\n        lea      rdx, [rbp-0x20]\n-       mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[Pragmastat.Metrology.Measurement](System.Collections.Generic.IEnumerable\u00601[Pragmastat.Metrology.Measurement],byref):Pragmastat.Metrology.Measurement\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M7751_IG07:\n        cmp      byte  ptr [rbp-0x20], 0\n-       je       SHORT G_M7751_IG10\n\u002B       je       SHORT G_M7751_IG07\n        mov      rsi, gword ptr [rax\u002B0x08]\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for Perfolizer.Collections.CollectionExtensions:ToSample(System.Collections.Generic.IEnumerable\u00601[double],Pragmastat.Metrology.MeasurementUnit):Pragmastat.Sample\n        call     [rax]Perfolizer.Collections.CollectionExtensions:ToSample(System.Collections.Generic.IEnumerable\u00601[double],Pragmastat.Metrology.MeasurementUnit):Pragmastat.Sample\n        nop      \n-\t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 7.75\n-G_M7751_IG08:\n\u002B\t\t\t\t\t\t;; size=89 bbWeight=1 PerfScore 19.00\n\u002BG_M7751_IG05:\n        add      rsp, 8\n        pop      rbx\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M7751_IG09:\n\u002BG_M7751_IG06:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M7751_IG10:\n\u002BG_M7751_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 301, prolog size 18, PerfScore 46.88, instruction count 72, allocated bytes for code 301 (MethodHash=8093e1b8) for method Perfolizer.Perfonar.Tables.PerfonarRow:ToSample():Pragmastat.Sample:this (FullOpts)\n\u002B; Total bytes of code 249, prolog size 18, PerfScore 38.88, instruction count 59, allocated bytes for code 249 (MethodHash=8093e1b8) for method Perfolizer.Perfonar.Tables.PerfonarRow:ToSample():Pragmastat.Sample:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":301,"DiffBytes":249},{"Assembly":"Pipelines.Sockets.Unofficial.dasm","Method":"Pipelines.Sockets.Unofficial.Threading.MutexSlim\u002BSyncPendingLockToken:GetNewPerThreadLockObject():Pipelines.Sockets.Unofficial.Threading.MutexSlim\u002BSyncPendingLockToken (FullOpts)","Category":"same-size","Description":"107 -\u003E 107 bytes (0)","ExtraInfo":null,"Diff":"@@ -1,59 \u002B1,59 @@\n ; Assembly listing for method Pipelines.Sockets.Unofficial.Threading.MutexSlim\u002BSyncPendingLockToken:GetNewPerThreadLockObject():Pipelines.Sockets.Unofficial.Threading.MutexSlim\u002BSyncPendingLockToken (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;# V00 OutArgs      [V00    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V01 tmp1         [V01,T00] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CPipelines.Sockets.Unofficial.Threading.MutexSlim\u002BSyncPendingLockToken\u003E\n ;  V02 rat0         [V02,T03] (  3,  4   )   byref  -\u003E  rax         \u0022TLS field access\u0022\n ;  V03 rat1         [V03,T02] (  3,  6   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;  V04 rat2         [V04,T01] (  3,  6   )   byref  -\u003E  rax         \u0022ThreadStaticBlockBase access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M55622_IG01:\n        push     rbp\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x10]\n \t\t\t\t\t\t;; size=8 bbWeight=1 PerfScore 3.50\n G_M55622_IG02:\n        mov      rdi, 0xD1FFAB1E      ; Pipelines.Sockets.Unofficial.Threading.MutexSlim\u002BSyncPendingLockToken\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       cmp      dword ptr [rax], 13\n\u002B       cmp      dword ptr [rax], 12\n        jle      SHORT G_M55622_IG05\n        mov      rdi, gword ptr [rax\u002B0x08]\n-       mov      rax, bword ptr [rdi\u002B0x68]\n\u002B       mov      rax, bword ptr [rdi\u002B0x60]\n        test     rax, rax\n        je       SHORT G_M55622_IG05\n \t\t\t\t\t\t;; size=58 bbWeight=1 PerfScore 13.25\n G_M55622_IG03:\n        lea      rdi, bword ptr [rax\u002B0x10]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 2.00\n G_M55622_IG04:\n        add      rsp, 8\n        pop      rbx\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.25\n G_M55622_IG05:\n-       mov      edi, 13\n\u002B       mov      edi, 12\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED\n        call     [rax]CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED\n        jmp      SHORT G_M55622_IG03\n \t\t\t\t\t\t;; size=19 bbWeight=0 PerfScore 0.00\n \n ; Total bytes of code 107, prolog size 8, PerfScore 21.00, instruction count 28, allocated bytes for code 107 (MethodHash=9d3326b9) for method Pipelines.Sockets.Unofficial.Threading.MutexSlim\u002BSyncPendingLockToken:GetNewPerThreadLockObject():Pipelines.Sockets.Unofficial.Threading.MutexSlim\u002BSyncPendingLockToken (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":107,"DiffBytes":107},{"Assembly":"Pomelo.EntityFrameworkCore.MySql.dasm","Method":"Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitJsonScalar(Microsoft.EntityFrameworkCore.Query.SqlExpressions.JsonScalarExpression):System.Linq.Expressions.Expression:this (FullOpts)","Category":"improvement","Description":"215 -\u003E 7 bytes (-208)","ExtraInfo":null,"Diff":"@@ -1,100 \u002B1,29 @@\n ; Assembly listing for method Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitJsonScalar(Microsoft.EntityFrameworkCore.Query.SqlExpressions.JsonScalarExpression):System.Linq.Expressions.Expression:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T01] (  4,  3.50)     ref  -\u003E  r15         this class-hnd single-def \u003CPomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor\u003E\n-;  V01 arg1         [V01,T00] (  8,  5   )     ref  -\u003E  rbx         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.JsonScalarExpression\u003E\n\u002B;  V00 this         [V00,T00] (  3,  3   )     ref  -\u003E  rdi         this class-hnd single-def \u003CPomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor\u003E\n\u002B;  V01 arg1         [V01,T01] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.JsonScalarExpression\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;* V03 tmp1         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V04 tmp2         [V04,T02] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Boolean\u003E\n-;  V05 tmp3         [V05,T03] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impImportAndPushBox\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.ISqlExpressionFactory\u003E\n-;  V06 tmp4         [V06,T04] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022impImportAndPushBox\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.ISqlExpressionFactory\u003E\n-;  V07 tmp5         [V07,T05] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V08 tmp6         [V08,T06] (  2,  2   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V09 cse0         [V09,T07] (  3,  1.50)     ref  -\u003E  rdi         \u0022CSE #02: aggressive\u0022\n-;  V10 cse1         [V10,T08] (  3,  1.50)    long  -\u003E  r14         \u0022CSE #01: aggressive\u0022\n\u002B;* V03 tmp1         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.JsonScalarExpression\u003E\n ;\n-; Lcl frame size = 8\n\u002B; Lcl frame size = 0\n \n G_M45391_IG01:\n-       push     rbp\n-       push     r15\n-       push     r14\n-       push     rbx\n-       push     rax\n-       lea      rbp, [rsp\u002B0x20]\n-       mov      r15, rdi\n-       mov      rbx, rsi\n-\t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 6.00\n\u002B\t\t\t\t\t\t;; size=0 bbWeight=1 PerfScore 0.00\n G_M45391_IG02:\n-       cmp      byte  ptr [r15\u002B0x10], 0\n-       je       SHORT G_M45391_IG04\n-\t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 3.00\n\u002B       cmp      byte  ptr [rdi], dil\n\u002B       mov      rax, rsi\n\u002B\t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 2.25\n G_M45391_IG03:\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; Microsoft.EntityFrameworkCore.Query.SqlExpressions.ColumnExpression\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M45391_IG04\n-       mov      rdi, rbx\n-       mov      r14, qword ptr [rbx]\n-       mov      rax, qword ptr [r14\u002B0x48]\n-       call     [rax\u002B0x10]Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:get_TypeMapping():Microsoft.EntityFrameworkCore.Storage.RelationalTypeMapping:this\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; Pomelo.EntityFrameworkCore.MySql.Storage.Internal.MySqlBoolTypeMapping\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M45391_IG04\n-       mov      rdi, rbx\n-       mov      rax, qword ptr [r14\u002B0x40]\n-       call     [rax\u002B0x28]System.Linq.Expressions.Expression:get_Type():System.Type:this\n-       mov      rdi, 0xD1FFAB1E      ; \u0027System.Boolean\u0027\n-       cmp      rax, rdi\n-       je       SHORT G_M45391_IG06\n-\t\t\t\t\t\t;; size=98 bbWeight=0.50 PerfScore 12.00\n-G_M45391_IG04:\n-       mov      rax, rbx\n-\t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M45391_IG05:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 1.62\n-G_M45391_IG06:\n-       mov      rdi, 0xD1FFAB1E      ; System.Boolean\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      rdi, gword ptr [r15\u002B0x08]\n-       mov      r15, rdi\n-       mov      byte  ptr [rax\u002B0x08], 1\n-       mov      rsi, rax\n-       mov      r11, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Constant(System.Object,Microsoft.EntityFrameworkCore.Storage.RelationalTypeMapping):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-       xor      rdx, rdx\n-       call     [r11]Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Constant(System.Object,Microsoft.EntityFrameworkCore.Storage.RelationalTypeMapping):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-       mov      rdx, rax\n-       mov      rdi, r15\n-       mov      rsi, rbx\n-       mov      r11, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Equal(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-       cmp      dword ptr [rdi], edi\n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 5.62\n-G_M45391_IG07:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [r11]Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Equal(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-\t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 2.12\n\u002B\t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 1.00\n \n-; Total bytes of code 215, prolog size 12, PerfScore 30.50, instruction count 59, allocated bytes for code 215 (MethodHash=3a3c4eb0) for method Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitJsonScalar(Microsoft.EntityFrameworkCore.Query.SqlExpressions.JsonScalarExpression):System.Linq.Expressions.Expression:this (FullOpts)\n\u002B; Total bytes of code 7, prolog size 0, PerfScore 3.25, instruction count 3, allocated bytes for code 7 (MethodHash=3a3c4eb0) for method Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitJsonScalar(Microsoft.EntityFrameworkCore.Query.SqlExpressions.JsonScalarExpression):System.Linq.Expressions.Expression:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":215,"DiffBytes":7},{"Assembly":"Rebus.dasm","Method":"Rebus.Bus.RebusBus:RemoveWorkers(int):this (FullOpts)","Category":"improvement","Description":"910 -\u003E 864 bytes (-46)","ExtraInfo":null,"Diff":"@@ -9,34 \u002B9,34 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T03] (  9, 20.50)     ref  -\u003E  rbx         this class-hnd single-def \u003CRebus.Bus.RebusBus\u003E\n-;  V01 arg1         [V01,T14] (  4,  6.50)     int  -\u003E  r15         single-def\n-;  V02 loc0         [V02,T21] (  4,  2   )     ref  -\u003E  [rbp-0x40]  class-hnd EH-live spill-single-def \u003CSystem.Collections.Generic.List\u00601[Rebus.Workers.IWorker]\u003E\n-;  V03 loc1         [V03,T24] (  3,  2   )   ubyte  -\u003E  [rbp-0x2C]  do-not-enreg[M] ld-addr-op EH-live\n\u002B;  V01 arg1         [V01,T13] (  4,  6.50)     int  -\u003E  r15         single-def\n\u002B;  V02 loc0         [V02,T20] (  4,  2   )     ref  -\u003E  [rbp-0x40]  class-hnd EH-live spill-single-def \u003CSystem.Collections.Generic.List\u00601[Rebus.Workers.IWorker]\u003E\n\u002B;  V03 loc1         [V03,T23] (  3,  2   )   ubyte  -\u003E  [rbp-0x2C]  do-not-enreg[M] ld-addr-op EH-live\n ;  V04 loc2         [V04,T04] (  9, 21.50)     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[Rebus.Workers.IWorker]\u003E\n ;* V05 loc3         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CRebus.Workers.IWorker\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T20] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[Rebus.Workers.IWorker]\u003E\n-;  V08 tmp2         [V08,T02] (  3, 24   )     ref  -\u003E  [rbp-0x48]  class-hnd exact spill-single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n-;  V09 tmp3         [V09,T07] (  2, 16   )     ref  -\u003E  r13         class-hnd \u0022impSpillLclRefs\u0022 \u003CRebus.Logging.ILog\u003E\n\u002B;  V07 tmp1         [V07,T19] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[Rebus.Workers.IWorker]\u003E\n\u002B;  V08 tmp2         [V08,T01] (  3, 24   )     ref  -\u003E  [rbp-0x48]  class-hnd exact spill-single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n\u002B;  V09 tmp3         [V09,T07] (  2, 16   )     ref  -\u003E  r12         class-hnd \u0022impSpillLclRefs\u0022 \u003CRebus.Logging.ILog\u003E\n ;  V10 tmp4         [V10,T08] (  2, 16   )     ref  -\u003E  rax         class-hnd exact \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n-;  V11 tmp5         [V11,T25] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Action\u00601[Rebus.Workers.IWorker]\u003E\n\u002B;  V11 tmp5         [V11,T24] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Action\u00601[Rebus.Workers.IWorker]\u003E\n ;* V12 tmp6         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V13 tmp7         [V13,T22] (  4,  2   )     ref  -\u003E  rsi        \n-;  V14 tmp8         [V14,T26] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Action\u00601[Rebus.Workers.IWorker]\u003E\n\u002B;  V13 tmp7         [V13,T21] (  4,  2   )     ref  -\u003E  rsi        \n\u002B;  V14 tmp8         [V14,T25] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Action\u00601[Rebus.Workers.IWorker]\u003E\n ;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V16 tmp10        [V16,T23] (  4,  2   )     ref  -\u003E  rsi        \n-;  V17 tmp11        [V17,T18] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u00601[Rebus.Workers.IWorker]\u003E\n-;  V18 tmp12        [V18,T19] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u00601[Rebus.Workers.IWorker]\u003E\n\u002B;  V16 tmp10        [V16,T22] (  4,  2   )     ref  -\u003E  rsi        \n\u002B;  V17 tmp11        [V17,T17] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u00601[Rebus.Workers.IWorker]\u003E\n\u002B;  V18 tmp12        [V18,T18] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u00601[Rebus.Workers.IWorker]\u003E\n ;* V19 tmp13        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Rebus.Workers.IWorker]\u003E\n-;  V20 tmp14        [V20,T01] (  4, 28   )     ref  -\u003E  r13         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Rebus.Workers.IWorker]\u003E\n-;  V21 tmp15        [V21    ] (  3,  8   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V20 tmp14        [V20,T02] (  3, 24   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Rebus.Workers.IWorker]\u003E\n\u002B;  V21 tmp15        [V21    ] (  2,  8   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V23 tmp17        [V23,T06] (  6, 16   )     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CRebus.Workers.IWorker\u003E\n-;  V24 tmp18        [V24,T09] (  4, 12   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Rebus.Workers.IWorker]\u003E\n-;  V25 tmp19        [V25,T13] (  3, 10   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CRebus.Workers.IWorker[]\u003E\n-;  V26 tmp20        [V26,T10] (  4, 12   )     int  -\u003E  r13         \u0022Inline stloc first use temp\u0022\n\u002B;  V23 tmp17        [V23,T06] (  5, 16   )     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CRebus.Workers.IWorker\u003E\n\u002B;* V24 tmp18        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Rebus.Workers.IWorker]\u003E\n\u002B;  V25 tmp19        [V25,T12] (  3, 10   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CRebus.Workers.IWorker[]\u003E\n\u002B;  V26 tmp20        [V26,T09] (  4, 12   )     int  -\u003E  r12         \u0022Inline stloc first use temp\u0022\n ;* V27 tmp21        [V27    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V28 tmp22        [V28,T00] ( 10, 52   )     ref  -\u003E  r13         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Rebus.Workers.IWorker]\u003E\n\u002B;  V28 tmp22        [V28,T00] ( 10, 52   )     ref  -\u003E  r12         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Rebus.Workers.IWorker]\u003E\n ;  V29 tmp23        [V29,T05] (  7, 18   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n ;* V30 tmp24        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    ld-addr-op class-hnd \u0022Inline ldloca(s) first use temp\u0022 \u003CRebus.Workers.IWorker\u003E\n ;* V31 tmp25        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.__Canon[]\u003E\n@@ -46,13 \u002B46,13 @@\n ;* V35 tmp29        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.__Canon[]\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V37 tmp31        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Rebus.Workers.IWorker]\u003E\n-;  V38 tmp32        [V38,T27] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CRebus.Bus.RebusBus\u002B\u003C\u003Ec\u003E\n-;  V39 tmp33        [V39,T28] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CRebus.Bus.RebusBus\u002B\u003C\u003Ec\u003E\n-;  V40 tmp34        [V40,T11] (  3, 12   )     ref  -\u003E  rdi         \u0022arr expr\u0022\n-;  V41 tmp35        [V41,T12] (  3, 12   )    long  -\u003E  rax         \u0022index expr\u0022\n-;  V42 cse0         [V42,T15] (  4,  8   )     int  -\u003E   r8         \u0022CSE #05: moderate\u0022\n-;  V43 cse1         [V43,T17] (  3,  6   )     int  -\u003E   r8         \u0022CSE #04: moderate\u0022\n-;  V44 cse2         [V44,T16] (  3,  6   )     ref  -\u003E  rdi         \u0022CSE #06: moderate\u0022\n\u002B;  V38 tmp32        [V38,T26] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CRebus.Bus.RebusBus\u002B\u003C\u003Ec\u003E\n\u002B;  V39 tmp33        [V39,T27] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CRebus.Bus.RebusBus\u002B\u003C\u003Ec\u003E\n\u002B;  V40 tmp34        [V40,T10] (  3, 12   )     ref  -\u003E  rdi         \u0022arr expr\u0022\n\u002B;  V41 tmp35        [V41,T11] (  3, 12   )    long  -\u003E  rax         \u0022index expr\u0022\n\u002B;  V42 cse0         [V42,T14] (  4,  8   )     int  -\u003E   r8         \u0022CSE #05: moderate\u0022\n\u002B;  V43 cse1         [V43,T16] (  3,  6   )     int  -\u003E   r8         \u0022CSE #04: moderate\u0022\n\u002B;  V44 cse2         [V44,T15] (  3,  6   )     ref  -\u003E  rdi         \u0022CSE #06: moderate\u0022\n ;\n ; Lcl frame size = 40\n \n@@ -82,7 \u002B82,7 @@ G_M60429_IG03:\n        mov      dword ptr [rbp-0x2C], 1\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        cmp      dword ptr [rdi\u002B0x10], 0\n-       je       G_M60429_IG24\n\u002B       je       G_M60429_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=1 PerfScore 9.25\n G_M60429_IG04:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[Rebus.Workers.IWorker]\n@@ -90,135 \u002B90,115 @@ G_M60429_IG04:\n        mov      r14, rax\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M60429_IG19\n\u002B       je       G_M60429_IG16\n \t\t\t\t\t\t;; size=37 bbWeight=0.50 PerfScore 2.38\n G_M60429_IG05:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.List\u00601[Rebus.Workers.IWorker]:s_emptyArray\n        mov      rsi, gword ptr [rdi]\n        lea      rdi, bword ptr [r14\u002B0x08]\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rsi, gword ptr [rbx\u002B0x08]\n-       cmp      dword ptr [rsi\u002B0x10], r15d\n... diff truncated; middle omitted ...\n        mov      rcx, gword ptr [rbp-0x48]\n        lea      rdi, bword ptr [rcx\u002B0x10]\n        mov      rsi, rax\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, r13\n\u002B       mov      rdi, r12\n        mov      rdx, gword ptr [rbp-0x48]\n        mov      r11, 0xD1FFAB1E      ; code for Rebus.Logging.ILog:Debug(System.String,System.Object[]):this\n        mov      rsi, 0xD1FFAB1E      ; \u0027Removing worker {workerName}\u0027\n        call     [r11]Rebus.Logging.ILog:Debug(System.String,System.Object[]):this\n        inc      dword ptr [r14\u002B0x14]\n        mov      rdi, gword ptr [r14\u002B0x08]\n-       mov      r13d, dword ptr [r14\u002B0x10]\n-       cmp      dword ptr [rdi\u002B0x08], r13d\n-       ja       SHORT G_M60429_IG11\n-\t\t\t\t\t\t;; size=118 bbWeight=4 PerfScore 110.00\n-G_M60429_IG10:\n\u002B       mov      r12d, dword ptr [r14\u002B0x10]\n\u002B       cmp      dword ptr [rdi\u002B0x08], r12d\n\u002B       ja       SHORT G_M60429_IG08\n\u002B\t\t\t\t\t\t;; size=160 bbWeight=4 PerfScore 140.00\n\u002BG_M60429_IG07:\n        mov      rdi, r14\n-       mov      rsi, r12\n\u002B       mov      rsi, r13\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n-       jmp      SHORT G_M60429_IG12\n\u002B       jmp      SHORT G_M60429_IG09\n \t\t\t\t\t\t;; size=20 bbWeight=2 PerfScore 11.50\n-G_M60429_IG11:\n-       lea      esi, [r13\u002B0x01]\n\u002BG_M60429_IG08:\n\u002B       lea      esi, [r12\u002B0x01]\n        mov      dword ptr [r14\u002B0x10], esi\n-       mov      esi, r13d\n-       mov      rdx, r12\n\u002B       mov      esi, r12d\n\u002B       mov      rdx, r13\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST\n        call     [rax]CORINFO_HELP_ARRADDR_ST\n-\t\t\t\t\t\t;; size=26 bbWeight=2 PerfScore 10.50\n-G_M60429_IG12:\n-       mov      r13, gword ptr [rbx\u002B0x08]\n-       mov      r8d, dword ptr [r13\u002B0x10]\n-       mov      rsi, gword ptr [r13\u002B0x08]\n-       mov      rdx, r12\n\u002B\t\t\t\t\t\t;; size=27 bbWeight=2 PerfScore 10.50\n\u002BG_M60429_IG09:\n\u002B       mov      r12, gword ptr [rbx\u002B0x08]\n\u002B       mov      r8d, dword ptr [r12\u002B0x10]\n\u002B       mov      rsi, gword ptr [r12\u002B0x08]\n\u002B       mov      rdx, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Array:IndexOf[Rebus.Workers.IWorker](Rebus.Workers.IWorker[],Rebus.Workers.IWorker,int,int):int\n        xor      ecx, ecx\n        mov      rax, 0xD1FFAB1E      ; code for System.Array:IndexOf[System.__Canon](System.__Canon[],System.__Canon,int,int):int\n        call     [rax]System.Array:IndexOf[System.__Canon](System.__Canon[],System.__Canon,int,int):int\n        test     eax, eax\n-       jl       SHORT G_M60429_IG15\n-\t\t\t\t\t\t;; size=43 bbWeight=4 PerfScore 45.00\n-G_M60429_IG13:\n-       mov      r8d, dword ptr [r13\u002B0x10]\n\u002B       jl       SHORT G_M60429_IG12\n\u002B\t\t\t\t\t\t;; size=45 bbWeight=4 PerfScore 45.00\n\u002BG_M60429_IG10:\n\u002B       mov      r8d, dword ptr [r12\u002B0x10]\n        cmp      eax, r8d\n-       jae      G_M60429_IG22\n\u002B       jae      G_M60429_IG19\n        dec      r8d\n-       mov      dword ptr [r13\u002B0x10], r8d\n\u002B       mov      dword ptr [r12\u002B0x10], r8d\n        cmp      eax, r8d\n-       jge      SHORT G_M60429_IG14\n\u002B       jge      SHORT G_M60429_IG11\n        sub      r8d, eax\n-       mov      rdi, gword ptr [r13\u002B0x08]\n\u002B       mov      rdi, gword ptr [r12\u002B0x08]\n        mov      rdx, rdi\n        lea      esi, [rax\u002B0x01]\n        mov      ecx, eax\n        xor      r9d, r9d\n        mov      rax, 0xD1FFAB1E      ; code for System.Array:Copy(System.Array,int,System.Array,int,int,bool)\n        call     [rax]System.Array:Copy(System.Array,int,System.Array,int,int,bool)\n-\t\t\t\t\t\t;; size=55 bbWeight=2 PerfScore 25.00\n-G_M60429_IG14:\n-       mov      rdi, gword ptr [r13\u002B0x08]\n-       movsxd   rax, dword ptr [r13\u002B0x10]\n\u002B\t\t\t\t\t\t;; size=58 bbWeight=2 PerfScore 25.00\n\u002BG_M60429_IG11:\n\u002B       mov      rdi, gword ptr [r12\u002B0x08]\n\u002B       movsxd   rax, dword ptr [r12\u002B0x10]\n        mov      ecx, dword ptr [rdi\u002B0x08]\n        cmp      rax, rcx\n-       jae      G_M60429_IG23\n\u002B       jae      G_M60429_IG20\n        xor      rcx, rcx\n        mov      gword ptr [rdi\u002B8*rax\u002B0x10], rcx\n-       inc      dword ptr [r13\u002B0x14]\n-\t\t\t\t\t\t;; size=31 bbWeight=2 PerfScore 23.00\n-G_M60429_IG15:\n\u002B       inc      dword ptr [r12\u002B0x14]\n\u002B\t\t\t\t\t\t;; size=34 bbWeight=2 PerfScore 23.00\n\u002BG_M60429_IG12:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        cmp      dword ptr [rdi\u002B0x10], r15d\n        jg       G_M60429_IG06\n \t\t\t\t\t\t;; size=14 bbWeight=4 PerfScore 20.00\n-G_M60429_IG16:\n\u002BG_M60429_IG13:\n        mov      rdi, 0xD1FFAB1E      ; data for Rebus.Bus.RebusBus\u002B\u003C\u003Ec:\u003C\u003E9__56_0\n        mov      rsi, gword ptr [rdi]\n        test     rsi, rsi\n-       jne      SHORT G_M60429_IG17\n\u002B       jne      SHORT G_M60429_IG14\n        mov      rdi, 0xD1FFAB1E      ; System.Action\u00601[Rebus.Workers.IWorker]\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -233,14 \u002B213,14 @@ G_M60429_IG16:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rsi, rbx\n \t\t\t\t\t\t;; size=93 bbWeight=0.50 PerfScore 5.88\n-G_M60429_IG17:\n\u002BG_M60429_IG14:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:ForEach(System.Action\u00601[System.__Canon]):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:ForEach(System.Action\u00601[System.__Canon]):this\n        mov      rdi, 0xD1FFAB1E      ; data for Rebus.Bus.RebusBus\u002B\u003C\u003Ec:\u003C\u003E9__56_1\n        mov      rsi, gword ptr [rdi]\n        test     rsi, rsi\n-       jne      SHORT G_M60429_IG18\n\u002B       jne      SHORT G_M60429_IG15\n        mov      rdi, 0xD1FFAB1E      ; System.Action\u00601[Rebus.Workers.IWorker]\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -255,45 \u002B235,45 @@ G_M60429_IG17:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rsi, rbx\n \t\t\t\t\t\t;; size=108 bbWeight=0.50 PerfScore 7.62\n-G_M60429_IG18:\n\u002BG_M60429_IG15:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:ForEach(System.Action\u00601[System.__Canon]):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:ForEach(System.Action\u00601[System.__Canon]):this\n-       jmp      SHORT G_M60429_IG24\n\u002B       jmp      SHORT G_M60429_IG21\n \t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.75\n-G_M60429_IG19:\n\u002BG_M60429_IG16:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[Rebus.Workers.IWorker]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M60429_IG05\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M60429_IG20:\n\u002BG_M60429_IG17:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M60429_IG21:\n\u002BG_M60429_IG18:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M60429_IG22:\n\u002BG_M60429_IG19:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M60429_IG23:\n\u002BG_M60429_IG20:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n-G_M60429_IG24:\n\u002BG_M60429_IG21:\n        mov      rdi, gword ptr [rbp-0x40]\n        mov      rax, 0xD1FFAB1E      ; code for System.Threading.Monitor:Exit(System.Object)\n        call     [rax]System.Threading.Monitor:Exit(System.Object)\n        nop      \n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 4.50\n-G_M60429_IG25:\n\u002BG_M60429_IG22:\n        add      rsp, 40\n        pop      rbx\n        pop      r12\n@@ -303,23 \u002B283,23 @@ G_M60429_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M60429_IG26:\n\u002BG_M60429_IG23:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M60429_IG27:\n\u002BG_M60429_IG24:\n        cmp      dword ptr [rbp-0x2C], 0\n-       je       SHORT G_M60429_IG28\n\u002B       je       SHORT G_M60429_IG25\n        mov      rdi, gword ptr [rbp-0x40]\n        mov      rax, 0xD1FFAB1E      ; code for System.Threading.Monitor:Exit(System.Object)\n        call     [rax]System.Threading.Monitor:Exit(System.Object)\n \t\t\t\t\t\t;; size=22 bbWeight=0 PerfScore 0.00\n-G_M60429_IG28:\n\u002BG_M60429_IG25:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M60429_IG29:\n\u002BG_M60429_IG26:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 910, prolog size 31, PerfScore 360.75, instruction count 206, allocated bytes for code 910 (MethodHash=803513f2) for method Rebus.Bus.RebusBus:RemoveWorkers(int):this (FullOpts)\n\u002B; Total bytes of code 864, prolog size 31, PerfScore 328.75, instruction count 192, allocated bytes for code 864 (MethodHash=803513f2) for method Rebus.Bus.RebusBus:RemoveWorkers(int):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":910,"DiffBytes":864},{"Assembly":"Selenium.WebDriver.dasm","Method":"OpenQA.Selenium.DriverOptions:GenerateDesiredCapabilities(bool):OpenQA.Selenium.IWritableCapabilities:this (FullOpts)","Category":"improvement","Description":"1,465 -\u003E 1,270 bytes (-195)","ExtraInfo":null,"Diff":"@@ -10,12 \u002B10,12 @@\n ;\n ;  V00 this         [V00,T00] ( 28, 21   )     ref  -\u003E  rbx         this class-hnd single-def \u003COpenQA.Selenium.DriverOptions\u003E\n ;  V01 arg1         [V01,T18] (  3,  2.50)   ubyte  -\u003E  r15         single-def\n-;  V02 loc0         [V02,T01] ( 18, 13   )     ref  -\u003E  r14         class-hnd exact single-def \u003COpenQA.Selenium.Remote.DesiredCapabilities\u003E\n\u002B;  V02 loc0         [V02,T01] ( 16, 12   )     ref  -\u003E  r14         class-hnd exact single-def \u003COpenQA.Selenium.Remote.DesiredCapabilities\u003E\n ;* V03 loc1         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Object\u003E\n ;* V04 loc2         [V04    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u003CSystem.Nullable\u00601[bool]\u003E\n-;  V05 loc3         [V05,T43] (  5,  2.50)     ref  -\u003E  rdx         class-hnd \u003CSystem.String\u003E\n-;  V06 loc4         [V06,T59] (  3,  1.50)     int  -\u003E  rdi         single-def\n-;  V07 loc5         [V07,T44] (  5,  2.50)     ref  -\u003E  r13         class-hnd \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Object]\u003E\n\u002B;  V05 loc3         [V05,T40] (  5,  2.50)     ref  -\u003E  rdx         class-hnd \u003CSystem.String\u003E\n\u002B;  V06 loc4         [V06,T53] (  3,  1.50)     int  -\u003E  rdi         single-def\n\u002B;  V07 loc5         [V07,T41] (  4,  2   )     ref  -\u003E  rax         class-hnd \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Object]\u003E\n ;* V08 loc6         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V09 loc7         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003COpenQA.Selenium.Timeout\u003E\n ;  V10 loc8         [V10    ] (  9, 18   )  struct (40) [rbp-0x48]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Collections.Generic.Dictionary\u00602\u002BEnumerator[System.String,System.Object]\u003E\n@@ -33,31 \u002B33,31 @@\n ;  V22 tmp10        [V22,T22] (  3,  3   )     ref  -\u003E  rdx         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Boolean\u003E\n ;* V23 tmp11        [V23    ] (  0,  0   )  struct ( 8) zero-ref    \u0022location for address-of(RValue)\u0022 \u003CSystem.Nullable\u00601[bool]\u003E\n ;  V24 tmp12        [V24,T23] (  3,  3   )     ref  -\u003E  rdx         class-hnd exact single-def \u0022obj nullable box\u0022 \u003CSystem.Boolean\u003E\n-;  V25 tmp13        [V25,T45] (  2,  2   )     ref  -\u003E  rdx         class-hnd exact \u0022spilling qmarkNullableBox\u0022 \u003CSystem.Boolean\u003E\n\u002B;  V25 tmp13        [V25,T42] (  2,  2   )     ref  -\u003E  rdx         class-hnd exact \u0022spilling qmarkNullableBox\u0022 \u003CSystem.Boolean\u003E\n ;* V26 tmp14        [V26    ] (  0,  0   )  struct ( 8) zero-ref    \u0022location for address-of(RValue)\u0022 \u003CSystem.Nullable\u00601[bool]\u003E\n ;  V27 tmp15        [V27,T24] (  3,  3   )     ref  -\u003E  rdx         class-hnd exact single-def \u0022obj nullable box\u0022 \u003CSystem.Boolean\u003E\n-;  V28 tmp16        [V28,T46] (  2,  2   )     ref  -\u003E  rdx         class-hnd exact \u0022spilling qmarkNullableBox\u0022 \u003CSystem.Boolean\u003E\n\u002B;  V28 tmp16        [V28,T43] (  2,  2   )     ref  -\u003E  rdx         class-hnd exact \u0022spilling qmarkNullableBox\u0022 \u003CSystem.Boolean\u003E\n ;* V29 tmp17        [V29    ] (  0,  0   )  struct ( 8) zero-ref    \u0022location for address-of(RValue)\u0022 \u003CSystem.Nullable\u00601[bool]\u003E\n ;  V30 tmp18        [V30,T25] (  3,  3   )     ref  -\u003E  rdx         class-hnd exact single-def \u0022obj nullable box\u0022 \u003CSystem.Boolean\u003E\n-;  V31 tmp19        [V31,T47] (  2,  2   )     ref  -\u003E  rdx         class-hnd exact \u0022spilling qmarkNullableBox\u0022 \u003CSystem.Boolean\u003E\n\u002B;  V31 tmp19        [V31,T44] (  2,  2   )     ref  -\u003E  rdx         class-hnd exact \u0022spilling qmarkNullableBox\u0022 \u003CSystem.Boolean\u003E\n ;  V32 tmp20        [V32,T11] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Object]\u003E\n-;* V33 tmp21        [V33,T63] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V33 tmp21        [V33,T57] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V34 tmp22        [V34,T15] (  3,  5   )     ref  -\u003E  rdi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V35 tmp23        [V35,T48] (  2,  2   )     ref  -\u003E  rdx         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V35 tmp23        [V35,T45] (  2,  2   )     ref  -\u003E  rdx         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V36 tmp24        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003COpenQA.Selenium.Platform\u003E\n ;* V37 tmp25        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Object]\u003E\n ;* V38 tmp26        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V39 tmp27        [V39,T26] (  3,  3   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Object]\u003E\n-;* V40 tmp28        [V40,T64] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V40 tmp28        [V40,T58] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V41 tmp29        [V41,T16] (  3,  5   )     ref  -\u003E  rdi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V42 tmp30        [V42,T49] (  2,  2   )     ref  -\u003E  rdx         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V42 tmp30        [V42,T46] (  2,  2   )     ref  -\u003E  rdx         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V43 tmp31        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003COpenQA.Selenium.Platform\u003E\n ;* V44 tmp32        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Object]\u003E\n ;* V45 tmp33        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V46 tmp34        [V46,T27] (  3,  3   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Object]\u003E\n-;* V47 tmp35        [V47,T65] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V47 tmp35        [V47,T59] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V48 tmp36        [V48,T17] (  3,  5   )     ref  -\u003E  rdi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V49 tmp37        [V49,T50] (  2,  2   )     ref  -\u003E  rdx         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V49 tmp37        [V49,T47] (  2,  2   )     ref  -\u003E  rdx         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V50 tmp38        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003COpenQA.Selenium.Platform\u003E\n ;* V51 tmp39        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Object]\u003E\n ;* V52 tmp40        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n@@ -74,7 \u002B74,7 @@\n ;* V63 tmp51        [V63    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Object]\u003E\n ;* V64 tmp52        [V64    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V65 tmp53        [V65,T31] (  3,  3   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Object]\u003E\n-;  V66 tmp54        [V66,T51] (  2,  2   )     ref  -\u003E  rdx         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Boolean\u003E\n\u002B;  V66 tmp54        [V66,T48] (  2,  2   )     ref  -\u003E  rdx         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Boolean\u003E\n ;* V67 tmp55        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003COpenQA.Selenium.Platform\u003E\n ;* V68 tmp56        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Object]\u003E\n ;* V69 tmp57        [V69    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n@@ -83,21 \u002B83,21 @@\n ;* V72 tmp60        [V72    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Object]\u003E\n ;* V73 tmp61        [V73    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V74 tmp62        [V74,T33] (  3,  3   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Object]\u003E\n-;  V75 tmp63        [V75,T56] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003COpenQA.Selenium.Platform\u003E\n\u002B;  V75 tmp63        [V75,T52] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003COpenQA.Selenium.Platform\u003E\n ;  V76 tmp64        [V76,T34] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Object]\u003E\n-;  V77 tmp65        [V77,T52] (  2,  2   )     ref  -\u003E  rdx         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n... diff truncated; middle omitted ...\n        call     [rax]OpenQA.Selenium.Proxy:AsDictionary(bool):System.Collections.Generic.Dictionary\u00602[System.String,System.Object]:this\n-       mov      r13, rax\n-\t\t\t\t\t\t;; size=56 bbWeight=0.50 PerfScore 8.38\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 8.12\n G_M33471_IG28:\n-       test     r13, r13\n-       je       G_M33471_IG30\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; OpenQA.Selenium.Platform\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       jne      SHORT G_M33471_IG29\n\u002B       je       SHORT G_M33471_IG29\n        mov      rdi, gword ptr [r14\u002B0x08]\n        cmp      byte  ptr [rdi], dil\n-       mov      rdx, r13\n-       mov      rsi, 0xD1FFAB1E      ; \u0027proxy\u0027\n-       mov      ecx, 1\n-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary\u00602[System.__Canon,System.__Canon]:TryInsert(System.__Canon,System.__Canon,byte):bool:this\n-       call     [rax]System.Collections.Generic.Dictionary\u00602[System.__Canon,System.__Canon]:TryInsert(System.__Canon,System.__Canon,byte):bool:this\n-       jmp      SHORT G_M33471_IG30\n-\t\t\t\t\t\t;; size=78 bbWeight=0.50 PerfScore 8.12\n-G_M33471_IG29:\n-       mov      r15, gword ptr [r14\u002B0x08]\n-       mov      rdi, rax\n-       mov      rax, 0xD1FFAB1E      ; code for OpenQA.Selenium.Platform:get_ProtocolPlatformType():System.String:this\n-       call     [rax]OpenQA.Selenium.Platform:get_ProtocolPlatformType():System.String:this\n        mov      rdx, rax\n-       cmp      byte  ptr [r15], r15b\n-       mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; \u0027proxy\u0027\n        mov      ecx, 1\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary\u00602[System.__Canon,System.__Canon]:TryInsert(System.__Canon,System.__Canon,byte):bool:this\n        call     [rax]System.Collections.Generic.Dictionary\u00602[System.__Canon,System.__Canon]:TryInsert(System.__Canon,System.__Canon,byte):bool:this\n-\t\t\t\t\t\t;; size=55 bbWeight=0.50 PerfScore 5.88\n-G_M33471_IG30:\n\u002B\t\t\t\t\t\t;; size=42 bbWeight=0.50 PerfScore 4.62\n\u002BG_M33471_IG29:\n        movzx    rdi, byte  ptr [rbx\u002B0x58]\n        test     edi, edi\n-       jne      SHORT G_M33471_IG32\n\u002B       jne      SHORT G_M33471_IG31\n \t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.25\n-G_M33471_IG31:\n\u002BG_M33471_IG30:\n        movzx    rdi, byte  ptr [rbx\u002B0x68]\n        test     edi, edi\n-       jne      SHORT G_M33471_IG32\n\u002B       jne      SHORT G_M33471_IG31\n        movzx    rdi, byte  ptr [rbx\u002B0x78]\n        test     edi, edi\n-       je       G_M33471_IG34\n-\t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 3.25\n-G_M33471_IG32:\n\u002B       je       SHORT G_M33471_IG32\n\u002B\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 3.25\n\u002BG_M33471_IG31:\n        mov      rdi, 0xD1FFAB1E      ; OpenQA.Selenium.Timeout\n        call     CORINFO_HELP_NEWSFAST\n        vmovups  xmm0, xmmword ptr [rbx\u002B0x58]\n@@ -426,48 \u002B404,27 @@ G_M33471_IG32:\n        mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for OpenQA.Selenium.Timeout:ToCapabilities():System.Collections.Generic.Dictionary\u00602[System.String,System.Object]:this\n        call     [rax]OpenQA.Selenium.Timeout:ToCapabilities():System.Collections.Generic.Dictionary\u00602[System.String,System.Object]:this\n-       mov      r15, rax\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; OpenQA.Selenium.Platform\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      SHORT G_M33471_IG33\n\u002B       mov      rdx, rax\n        mov      rdi, gword ptr [r14\u002B0x08]\n        cmp      byte  ptr [rdi], dil\n-       mov      rdx, r15\n        mov      rsi, 0xD1FFAB1E      ; \u0027timeouts\u0027\n        mov      ecx, 1\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary\u00602[System.__Canon,System.__Canon]:TryInsert(System.__Canon,System.__Canon,byte):bool:this\n        call     [rax]System.Collections.Generic.Dictionary\u00602[System.__Canon,System.__Canon]:TryInsert(System.__Canon,System.__Canon,byte):bool:this\n-       jmp      SHORT G_M33471_IG34\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 14.50\n-G_M33471_IG33:\n-       mov      r15, gword ptr [r14\u002B0x08]\n-       mov      rdi, rax\n-       mov      rax, 0xD1FFAB1E      ; code for OpenQA.Selenium.Platform:get_ProtocolPlatformType():System.String:this\n-       call     [rax]OpenQA.Selenium.Platform:get_ProtocolPlatformType():System.String:this\n-       mov      rdx, rax\n-       cmp      byte  ptr [r15], r15b\n-       mov      rdi, r15\n-       mov      rsi, 0xD1FFAB1E      ; \u0027timeouts\u0027\n-       mov      ecx, 1\n-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary\u00602[System.__Canon,System.__Canon]:TryInsert(System.__Canon,System.__Canon,byte):bool:this\n-       call     [rax]System.Collections.Generic.Dictionary\u00602[System.__Canon,System.__Canon]:TryInsert(System.__Canon,System.__Canon,byte):bool:this\n-\t\t\t\t\t\t;; size=55 bbWeight=0.50 PerfScore 5.88\n-G_M33471_IG34:\n\u002B\t\t\t\t\t\t;; size=97 bbWeight=0.50 PerfScore 10.88\n\u002BG_M33471_IG32:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      esi, dword ptr [rdi\u002B0x44]\n        vxorps   xmm0, xmm0, xmm0\n        vmovdqu  xmmword ptr [rbp-0x58], xmm0\n \t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 5.33\n-G_M33471_IG35:\n\u002BG_M33471_IG33:\n        vmovdqu  ymm0, ymmword ptr [rbp-0x70]\n        vmovdqu  ymmword ptr [rbp-0x48], ymm0\n        mov      rax, qword ptr [rbp-0x50]\n        mov      qword ptr [rbp-0x28], rax\n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 5.00\n-G_M33471_IG36:\n\u002BG_M33471_IG34:\n        mov      gword ptr [rbp-0x48], rdi\n        mov      dword ptr [rbp-0x40], esi\n        xor      edi, edi\n@@ -479,9 \u002B436,9 @@ G_M33471_IG36:\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary\u00602\u002BEnumerator[System.__Canon,System.__Canon]:MoveNext():bool:this\n        call     [rax]System.Collections.Generic.Dictionary\u00602\u002BEnumerator[System.__Canon,System.__Canon]:MoveNext():bool:this\n        test     eax, eax\n-       je       G_M33471_IG41\n\u002B       je       G_M33471_IG39\n \t\t\t\t\t\t;; size=56 bbWeight=1 PerfScore 9.75\n-G_M33471_IG37:\n\u002BG_M33471_IG35:\n        mov      r15, gword ptr [rbp-0x30]\n        mov      r13, gword ptr [rbp-0x28]\n        mov      rsi, r13\n@@ -489,9 \u002B446,9 @@ G_M33471_IG37:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       jne      SHORT G_M33471_IG39\n\u002B       jne      SHORT G_M33471_IG37\n \t\t\t\t\t\t;; size=38 bbWeight=4 PerfScore 28.00\n-G_M33471_IG38:\n\u002BG_M33471_IG36:\n        mov      rdi, gword ptr [r14\u002B0x08]\n        cmp      byte  ptr [rdi], dil\n        mov      rsi, r15\n@@ -499,9 \u002B456,9 @@ G_M33471_IG38:\n        mov      ecx, 1\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary\u00602[System.__Canon,System.__Canon]:TryInsert(System.__Canon,System.__Canon,byte):bool:this\n        call     [rax]System.Collections.Generic.Dictionary\u00602[System.__Canon,System.__Canon]:TryInsert(System.__Canon,System.__Canon,byte):bool:this\n-       jmp      SHORT G_M33471_IG40\n\u002B       jmp      SHORT G_M33471_IG38\n \t\t\t\t\t\t;; size=32 bbWeight=2 PerfScore 20.00\n-G_M33471_IG39:\n\u002BG_M33471_IG37:\n        mov      r13, gword ptr [r14\u002B0x08]\n        mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for OpenQA.Selenium.Platform:get_ProtocolPlatformType():System.String:this\n@@ -514,18 \u002B471,18 @@ G_M33471_IG39:\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary\u00602[System.__Canon,System.__Canon]:TryInsert(System.__Canon,System.__Canon,byte):bool:this\n        call     [rax]System.Collections.Generic.Dictionary\u00602[System.__Canon,System.__Canon]:TryInsert(System.__Canon,System.__Canon,byte):bool:this\n \t\t\t\t\t\t;; size=49 bbWeight=2 PerfScore 23.50\n-G_M33471_IG40:\n\u002BG_M33471_IG38:\n        lea      rdi, [rbp-0x48]\n        mov      rsi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary\u00602\u002BEnumerator[System.__Canon,System.__Canon]:MoveNext():bool:this\n        call     [rax]System.Collections.Generic.Dictionary\u00602\u002BEnumerator[System.__Canon,System.__Canon]:MoveNext():bool:this\n        test     eax, eax\n-       jne      G_M33471_IG37\n\u002B       jne      G_M33471_IG35\n \t\t\t\t\t\t;; size=27 bbWeight=4 PerfScore 21.00\n-G_M33471_IG41:\n\u002BG_M33471_IG39:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M33471_IG42:\n\u002BG_M33471_IG40:\n        vzeroupper \n        add      rsp, 80\n        pop      rbx\n@@ -536,5 \u002B493,5 @@ G_M33471_IG42:\n        ret      \n \t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 4.75\n \n-; Total bytes of code 1465, prolog size 37, PerfScore 286.17, instruction count 320, allocated bytes for code 1465 (MethodHash=51897d40) for method OpenQA.Selenium.DriverOptions:GenerateDesiredCapabilities(bool):OpenQA.Selenium.IWritableCapabilities:this (FullOpts)\n\u002B; Total bytes of code 1270, prolog size 37, PerfScore 267.04, instruction count 281, allocated bytes for code 1270 (MethodHash=51897d40) for method OpenQA.Selenium.DriverOptions:GenerateDesiredCapabilities(bool):OpenQA.Selenium.IWritableCapabilities:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1465,"DiffBytes":1270},{"Assembly":"SharpCompress.dasm","Method":"SharpCompress.Common.Volume:get_FileName():System.String:this (FullOpts)","Category":"improvement","Description":"251 -\u003E 195 bytes (-56)","ExtraInfo":null,"Diff":"@@ -1,124 \u002B1,107 @@\n ; Assembly listing for method SharpCompress.Common.Volume:get_FileName():System.String:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 3 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T01] (  4,  3.50)     ref  -\u003E  rbx         this class-hnd single-def \u003CSharpCompress.Common.Volume\u003E\n ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V02 tmp1         [V02,T00] (  4,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.IO.FileStream\u003E\n ;* V03 tmp2         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V04 tmp3         [V04,T07] (  3,  2   )     ref  -\u003E  rax        \n-;  V05 tmp4         [V05,T03] (  4,  3   )     ref  -\u003E  rax        \n-;  V06 tmp5         [V06,T04] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSharpCompress.IO.SourceStream\u003E\n\u002B;  V04 tmp3         [V04,T05] (  3,  2   )     ref  -\u003E  rax        \n\u002B;  V05 tmp4         [V05,T02] (  4,  3   )     ref  -\u003E  rax        \n\u002B;  V06 tmp5         [V06,T03] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSharpCompress.IO.SourceStream\u003E\n ;* V07 tmp6         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V08 tmp7         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022dup spill\u0022 \u003CSystem.IO.FileInfo\u003E\n ;* V09 tmp8         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V10 tmp9         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSharpCompress.IO.SourceStream\u003E\n-;  V11 tmp10        [V11,T02] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.IO.FileInfo]\u003E\n-;  V12 tmp11        [V12    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x10]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V13 tmp12        [V13,T05] (  4,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.IO.FileInfo\u003E\n-;  V14 tmp13        [V14,T06] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.IO.FileInfo]\u003E\n\u002B;  V11 tmp10        [V11,T04] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.IO.FileInfo]\u003E\n\u002B;  V12 tmp11        [V12    ] (  1,  0.50)   ubyte  -\u003E  [rbp-0x10]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V13 tmp12        [V13,T06] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.IO.FileInfo\u003E\n\u002B;* V14 tmp13        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.IO.FileInfo]\u003E\n ;\n ; Lcl frame size = 8\n \n G_M28458_IG01:\n        push     rbp\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x10]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x10], rax\n        mov      rbx, rdi\n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.00\n G_M28458_IG02:\n        mov      rsi, gword ptr [rbx\u002B0x08]\n        mov      rdi, 0xD1FFAB1E      ; System.IO.FileStream\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n        je       SHORT G_M28458_IG04\n \t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 6.75\n G_M28458_IG03:\n        mov      rdi, rax\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x70]\n        call     [rax\u002B0x30]System.IO.FileStream:get_Name():System.String:this\n        jmp      SHORT G_M28458_IG05\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 4.62\n G_M28458_IG04:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n G_M28458_IG05:\n        test     rax, rax\n-       jne      G_M28458_IG09\n-\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 1.25\n\u002B       jne      SHORT G_M28458_IG07\n\u002B\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n G_M28458_IG06:\n        mov      rsi, gword ptr [rbx\u002B0x08]\n        mov      rdi, 0xD1FFAB1E      ; SharpCompress.IO.SourceStream\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n\u002B       je       SHORT G_M28458_IG09\n\u002B       mov      rsi, gword ptr [rax\u002B0x10]\n\u002B       test     rsi, rsi\n        je       SHORT G_M28458_IG11\n-       mov      rbx, gword ptr [rax\u002B0x10]\n-       test     rbx, rbx\n-       je       SHORT G_M28458_IG13\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.IO.FileInfo]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M28458_IG07\n-       lea      rsi, [rbp-0x10]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M28458_IG08\n-\t\t\t\t\t\t;; size=89 bbWeight=0.50 PerfScore 12.38\n-G_M28458_IG07:\n        lea      rdx, [rbp-0x10]\n-       mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.IO.FileInfo](System.Collections.Generic.IEnumerable\u00601[System.IO.FileInfo],byref):System.IO.FileInfo\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M28458_IG08:\n        test     rax, rax\n-       je       SHORT G_M28458_IG11\n\u002B       je       SHORT G_M28458_IG09\n        mov      rdi, rax\n        mov      rax, 0xD1FFAB1E\n        mov      rax, qword ptr [rax]\n        call     [rax\u002B0x30]System.IO.FileSystemInfo:get_FullName():System.String:this\n-\t\t\t\t\t\t;; size=24 bbWeight=0.50 PerfScore 3.38\n-G_M28458_IG09:\n\u002B\t\t\t\t\t\t;; size=90 bbWeight=0.50 PerfScore 10.38\n\u002BG_M28458_IG07:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0.50 PerfScore 0.12\n\u002BG_M28458_IG08:\n\u002B       add      rsp, 8\n\u002B       pop      rbx\n\u002B       pop      rbp\n\u002B       ret      \n\u002B\t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n\u002BG_M28458_IG09:\n\u002B       xor      rax, rax\n\u002B\t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n G_M28458_IG10:\n        add      rsp, 8\n        pop      rbx\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n G_M28458_IG11:\n-       xor      rax, rax\n-\t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M28458_IG12:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      rbp\n-       ret      \n-\t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M28458_IG13:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 251, prolog size 14, PerfScore 38.12, instruction count 67, allocated bytes for code 251 (MethodHash=2af590d5) for method SharpCompress.Common.Volume:get_FileName():System.String:this (FullOpts)\n\u002B; Total bytes of code 195, prolog size 14, PerfScore 30.62, instruction count 54, allocated bytes for code 195 (MethodHash=2af590d5) for method SharpCompress.Common.Volume:get_FileName():System.String:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":251,"DiffBytes":195},{"Assembly":"SharpCompress.dasm","Method":"SharpCompress.Compressors.ZStandard.Unsafe.Methods:ZSTDMT_serialState_reset(ptr,ptr,SharpCompress.Compressors.ZStandard.Unsafe.ZSTD_CCtx_params_s,nuint,ptr,nuint,int):int (FullOpts)","Category":"same-size","Description":"1,649 -\u003E 1,649 bytes (0)","ExtraInfo":null,"Diff":"@@ -607,7 \u002B607,7 @@ G_M13510_IG43:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-RWD00  \tdq\t0000753F25DFBD7Ah, 0000753F25DFBD78h, 0000753F25DFBD78h, 0000000200000002h\n\u002BRWD00  \tdq\t000072275C3FBD7Ah, 000072275C3FBD78h, 000072275C3FBD78h, 0000000200000002h\n \n \n ; Total bytes of code 1649, prolog size 25, PerfScore 200.54, instruction count 364, allocated bytes for code 1649 (MethodHash=c7f1cb39) for method SharpCompress.Compressors.ZStandard.Unsafe.Methods:ZSTDMT_serialState_reset(ptr,ptr,SharpCompress.Compressors.ZStandard.Unsafe.ZSTD_CCtx_params_s,nuint,ptr,nuint,int):int (FullOpts)","Truncated":true,"BaseBytes":1649,"DiffBytes":1649},{"Assembly":"SharpYaml.dasm","Method":"SharpYaml.YamlSerializer:AcquireStringBuilder(int):System.Text.StringBuilder (FullOpts)","Category":"same-size","Description":"197 -\u003E 197 bytes (0)","ExtraInfo":null,"Diff":"@@ -1,96 \u002B1,96 @@\n ; Assembly listing for method SharpYaml.YamlSerializer:AcquireStringBuilder(int):System.Text.StringBuilder (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 arg0         [V00,T02] (  5,  3.50)     int  -\u003E  rbx         single-def\n ;  V01 loc0         [V01,T03] (  7,  4.50)     ref  -\u003E  r15         class-hnd exact single-def \u003CSystem.Text.StringBuilder\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V03 tmp1         [V03,T05] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Text.StringBuilder\u003E\n ;  V04 cse0         [V04,T06] (  3,  2.50)   byref  -\u003E  rax         \u0022CSE #01: aggressive\u0022\n ;  V05 rat0         [V05,T04] (  3,  4   )   byref  -\u003E  rax         \u0022TLS field access\u0022\n ;  V06 rat1         [V06,T01] (  3,  6   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;  V07 rat2         [V07,T00] (  3,  6   )   byref  -\u003E  rax         \u0022ThreadStaticBlockBase access\u0022\n ;\n ; Lcl frame size = 0\n \n G_M43738_IG01:\n        push     rbp\n        push     r15\n        push     rbx\n        lea      rbp, [rsp\u002B0x10]\n        mov      ebx, edi\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.75\n G_M43738_IG02:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       cmp      dword ptr [rax], 10\n\u002B       cmp      dword ptr [rax], 11\n        jle      G_M43738_IG09\n        mov      rdi, gword ptr [rax\u002B0x08]\n-       mov      rax, bword ptr [rdi\u002B0x50]\n\u002B       mov      rax, bword ptr [rdi\u002B0x58]\n        test     rax, rax\n        je       SHORT G_M43738_IG09\n \t\t\t\t\t\t;; size=44 bbWeight=1 PerfScore 11.75\n G_M43738_IG03:\n        mov      r15, gword ptr [rax\u002B0x10]\n        test     r15, r15\n        jne      SHORT G_M43738_IG06\n \t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.25\n G_M43738_IG04:\n        mov      rdi, 0xD1FFAB1E      ; System.Text.StringBuilder\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        mov      rdi, r15\n        mov      esi, ebx\n        mov      edx, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:.ctor(int,int):this\n        call     [rax]System.Text.StringBuilder:.ctor(int,int):this\n        mov      rax, r15\n \t\t\t\t\t\t;; size=43 bbWeight=0.50 PerfScore 2.88\n G_M43738_IG05:\n        pop      rbx\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 1.25\n G_M43738_IG06:\n        xor      rdi, rdi\n        mov      gword ptr [rax\u002B0x10], rdi\n        mov      rdi, r15\n        xor      esi, esi\n        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:set_Length(int):this\n        call     [rax]System.Text.StringBuilder:set_Length(int):this\n        mov      rdi, gword ptr [r15\u002B0x08]\n        mov      edi, dword ptr [rdi\u002B0x08]\n        add      edi, dword ptr [r15\u002B0x1C]\n        cmp      edi, ebx\n        jge      SHORT G_M43738_IG07\n        mov      rdi, r15\n        mov      esi, ebx\n        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:EnsureCapacity(int):int:this\n        call     [rax]System.Text.StringBuilder:EnsureCapacity(int):int:this\n \t\t\t\t\t\t;; size=55 bbWeight=0.50 PerfScore 8.00\n G_M43738_IG07:\n        mov      rax, r15\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n G_M43738_IG08:\n        pop      rbx\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 1.25\n G_M43738_IG09:\n-       mov      edi, 10\n\u002B       mov      edi, 11\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED\n        call     [rax]CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED\n        jmp      G_M43738_IG03\n \t\t\t\t\t\t;; size=22 bbWeight=0 PerfScore 0.00\n \n ; Total bytes of code 197, prolog size 9, PerfScore 32.25, instruction count 54, allocated bytes for code 197 (MethodHash=2dff5525) for method SharpYaml.YamlSerializer:AcquireStringBuilder(int):System.Text.StringBuilder (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":197,"DiffBytes":197},{"Assembly":"Silk.NET.Assimp.dasm","Method":"Silk.NET.Assimp.CustomFileIO:.ctor(Silk.NET.Assimp.OpenFileCustomIOCallback):this (FullOpts)","Category":"same-size","Description":"159 -\u003E 159 bytes (0)","ExtraInfo":null,"Diff":"@@ -1,94 \u002B1,94 @@\n ; Assembly listing for method Silk.NET.Assimp.CustomFileIO:.ctor(Silk.NET.Assimp.OpenFileCustomIOCallback):this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 9 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T00] (  7,  6.50)     ref  -\u003E  rbx         this class-hnd single-def \u003CSilk.NET.Assimp.CustomFileIO\u003E\n ;  V01 arg1         [V01,T01] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CSilk.NET.Assimp.OpenFileCustomIOCallback\u003E\n ;* V02 loc0         [V02    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u003CSystem.Runtime.InteropServices.GCHandle\u003E\n ;* V03 loc1         [V03    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSilk.NET.Assimp.FileIO\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T03] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.InteropServices.GCHandle\u003E\n ;* V07 tmp3         [V07    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n ;  V08 tmp4         [V08,T02] (  5,  4.50)    long  -\u003E  r14         \u0022Inline stloc first use temp\u0022\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSilk.NET.Assimp.PfnFileOpenProc\u003E\n ;* V10 tmp6         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSilk.NET.Assimp.PfnFileCloseProc\u003E\n ;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Runtime.InteropServices.GCHandle\u003E\n ;* V12 tmp8         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V13 tmp9         [V13    ] (  0,  0   )    long  -\u003E  zero-ref    single-def \u0022field V02._handle (fldOffset=0x0)\u0022 P-INDEP\n ;* V14 tmp10        [V14    ] (  0,  0   )    long  -\u003E  zero-ref    single-def \u0022field V03.OpenProc (fldOffset=0x0)\u0022 P-INDEP\n ;* V15 tmp11        [V15    ] (  0,  0   )    long  -\u003E  zero-ref    single-def \u0022field V03.CloseProc (fldOffset=0x8)\u0022 P-INDEP\n ;* V16 tmp12        [V16    ] (  0,  0   )    long  -\u003E  zero-ref    single-def \u0022field V03.UserData (fldOffset=0x10)\u0022 P-INDEP\n ;* V17 tmp13        [V17    ] (  0,  0   )    long  -\u003E  zero-ref    single-def \u0022field V06._handle (fldOffset=0x0)\u0022 P-INDEP\n ;* V18 tmp14        [V18    ] (  0,  0   )    long  -\u003E  zero-ref    single-def \u0022field V09._handle (fldOffset=0x0)\u0022 P-INDEP\n ;* V19 tmp15        [V19    ] (  0,  0   )    long  -\u003E  zero-ref    single-def \u0022field V10._handle (fldOffset=0x0)\u0022 P-INDEP\n ;* V20 tmp16        [V20    ] (  0,  0   )    long  -\u003E  zero-ref    single-def \u0022field V11._handle (fldOffset=0x0)\u0022 P-INDEP\n ;\n ; Lcl frame size = 8\n \n G_M23716_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x20]\n        mov      rbx, rdi\n        mov      r15, rsi\n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 6.00\n G_M23716_IG02:\n        mov      rdi, rbx\n        mov      esi, 2\n        call     System.Runtime.InteropServices.GCHandle:_InternalAlloc(System.Object,int):nint\n        mov      r14, rax\n        test     r14, r14\n        jne      SHORT G_M23716_IG04\n \t\t\t\t\t\t;; size=21 bbWeight=1 PerfScore 3.00\n G_M23716_IG03:\n        mov      rdi, rbx\n        mov      esi, 2\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.InteropServices.GCHandle:InternalAllocWithGCTransition(System.Object,int):nint\n        call     [rax]System.Runtime.InteropServices.GCHandle:InternalAllocWithGCTransition(System.Object,int):nint\n        mov      r14, rax\n \t\t\t\t\t\t;; size=23 bbWeight=0.50 PerfScore 2.00\n G_M23716_IG04:\n        test     r14, r14\n        je       SHORT G_M23716_IG06\n        lea      rdi, bword ptr [rbx\u002B0x08]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        vmovups  xmm0, xmmword ptr [reloc @RWD00]\n        vmovups  xmmword ptr [rbx\u002B0x10], xmm0\n        mov      qword ptr [rbx\u002B0x20], r14\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 6.00\n G_M23716_IG05:\n        add      rsp, 8\n        pop      rbx\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n G_M23716_IG06:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; \u0027Failed to allocate GCHandle for CustomFileIO\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.InvalidOperationException:.ctor(System.String):this\n        call     [rax]System.InvalidOperationException:.ctor(System.String):this\n        mov      rdi, rbx\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-RWD00  \tdq\t00007A25A8BB05E8h, 00007A25A8BB0600h\n\u002BRWD00  \tdq\t00007C84BC9A05E8h, 00007C84BC9A0600h\n \n \n ; Total bytes of code 159, prolog size 12, PerfScore 20.25, instruction count 43, allocated bytes for code 159 (MethodHash=57fda35b) for method Silk.NET.Assimp.CustomFileIO:.ctor(Silk.NET.Assimp.OpenFileCustomIOCallback):this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":159,"DiffBytes":159},{"Assembly":"SixLabors.ImageSharp.dasm","Method":"SixLabors.ImageSharp.Memory.ByteMemoryOwner\u00601[int]:.ctor(System.Buffers.IMemoryOwner\u00601[byte]):this (FullOpts)","Category":"same-size","Description":"129 -\u003E 129 bytes (0)","ExtraInfo":null,"Diff":"@@ -1,81 \u002B1,65 @@\n ; Assembly listing for method SixLabors.ImageSharp.Memory.ByteMemoryOwner\u00601[int]:.ctor(System.Buffers.IMemoryOwner\u00601[byte]):this (FullOpts)\n-    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)\n-; Emitting     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)\n-BLENDED_CODE for x64 \u002B VEX \u002B EVEXUnwind Info:\n- on Unix  \u003E\u003E Start offset   : 0xd1ffab1e (not in unwind data)\n-\n\u002B; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n-  \u003E\u003E   End offset   : 0xd1ffab1e (not in unwind data)\n-  Version           : 1\n ; No PGO data\n-  Flags             : 0x00; 0 inlinees with PGO data; 4 single block inlinees; 0 inlinees without PGO data\n-\n-  SizeOfProlog      : 0x01\n-  CountOfUnwindCodes: 1\n-  FrameRegister     : none (0)\n-  FrameOffset       : N/A (no FrameRegister) (Value=0)\n-  UnwindCodes       :\n-    CodeOffset: 0x01 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 \u002B 8 = 8 = 0x08\n\u002B; 0 inlinees with PGO data; 4 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def*************** EH table for SixLabors.ImageSharp.Memory.Internals.UniformUnmanagedMemoryPool:TimerCallback()\n-1 EH table entries\n- \u003CSixLabors.ImageSharp.Memory.ByteMemoryOwner\u00601[int]\u003E\n-;  V01 arg1         [V01,T01] (  4,  4   )     ref  -\u003E  r15         class-hnd single-defEH#0: try [G_M49217_IG03..G_M49217_IG25) handled by [G_M49217_IG27..END) (fault) \u003CSystem.Buffers.IMemoryOwner\u00601[byte]\u003E\n-\n\u002B;  V00 this         [V00,T00] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CSixLabors.ImageSharp.Memory.ByteMemoryOwner\u00601[int]\u003E\n\u002B;  V01 arg1         [V01,T01] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Buffers.IMemoryOwner\u00601[byte]\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V03 tmp1         [V03,T04] (  3,  6   )  struct (16) [rbp-0x28]  do-not-enreg[SRM] multireg-ret multireg-dest must-init \u0022Return value temp for multireg return\u0022 \u003CSystem.Memory\u00601[byte]\u003E\n ;  V04 tmp2         [V04,T02] (  3,  6   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSixLabors.ImageSharp.Memory.ByteMemoryManager\u00601[int]\u003E\n ;  V05 rat0         [V05,T03] (  3,  6   )   byref  -\u003E  r14         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n ;\n ; Lcl frame size = 24\n \n G_M454_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     rbx\n        sub      rsp, 24\n        lea      rbp, [rsp\u002B0x30]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x28], rax\n        mov      rbx, rdi\n        mov      r15, rsi\n \t\t\t\t\t\t;; size=27 bbWeight=1 PerfScore 6.50\n G_M454_IG02:\n        lea      rdi, bword ptr [rbx\u002B0x08]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, r15\n        mov      r11, 0xD1FFAB1E      ; code for System.Buffers.IMemoryOwner\u00601[byte]:get_Memory():System.Memory\u00601[byte]:this\n        call     [r11]System.Buffers.IMemoryOwner\u00601[byte]:get_Memory():System.Memory\u00601[byte]:this\n        mov      gword ptr [rbp-0x28], rax\n        mov      qword ptr [rbp-0x20], rdx\n        mov      rdi, 0xD1FFAB1E      ; SixLabors.ImageSharp.Memory.ByteMemoryManager\u00601[int]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        lea      r14, bword ptr [r15\u002B0x08]\n        mov      rsi, gword ptr [rbp-0x28]\n        mov      rdi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, qword ptr [rbp-0x20]\n        mov      qword ptr [r14\u002B0x08], rdi\n        lea      rdi, bword ptr [rbx\u002B0x10]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        nop      \n \t\t\t\t\t\t;; size=91 bbWeight=1 PerfScore 15.50\n G_M454_IG03:\n        add      rsp, 24\n        pop      rbx\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n \n ; Total bytes of code 129, prolog size 21, PerfScore 25.25, instruction count 37, allocated bytes for code 129 (MethodHash=a0c7fe39) for method SixLabors.ImageSharp.Memory.ByteMemoryOwner\u00601[int]:.ctor(System.Buffers.IMemoryOwner\u00601[byte]):this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":129,"DiffBytes":129},{"Assembly":"SkiaSharp.dasm","Method":"SkiaSharp.SKAbstractManagedStream:.cctor() (FullOpts)","Category":"same-size","Description":"307 -\u003E 307 bytes (0)","ExtraInfo":null,"Diff":"@@ -1,115 \u002B1,115 @@\n ; Assembly listing for method SkiaSharp.SKAbstractManagedStream:.cctor() (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; Final local variable assignments\n ;\n ;* V00 loc0         [V00    ] (  0,  0   )  struct (104) zero-ref    do-not-enreg[SF] ld-addr-op \u003CSkiaSharp.SKManagedStreamDelegates\u003E\n ;  V01 OutArgs      [V01    ] (  1,  1   )  struct (104) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;  V02 FramesRoot   [V02,T00] (  6,  6   )    long  -\u003E  rbx         \u0022Pinvoke FrameListRoot\u0022\n ;  V03 PInvokeFrame [V03    ] (  8,  8   )  struct (56) [rbp-0x60]  do-not-enreg[XS] addr-exposed \u0022Pinvoke FrameVar\u0022 \u003CUNNAMED\u003E\n ;* V04 tmp3         [V04    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V00.[000..008)\u0022\n ;* V05 tmp4         [V05    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V00.[008..016)\u0022\n ;* V06 tmp5         [V06    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V00.[016..024)\u0022\n ;* V07 tmp6         [V07    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V00.[024..032)\u0022\n ;* V08 tmp7         [V08    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V00.[032..040)\u0022\n ;* V09 tmp8         [V09    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V00.[040..048)\u0022\n ;* V10 tmp9         [V10    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V00.[048..056)\u0022\n ;* V11 tmp10        [V11    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V00.[056..064)\u0022\n ;* V12 tmp11        [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V00.[064..072)\u0022\n ;* V13 tmp12        [V13    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V00.[072..080)\u0022\n ;* V14 tmp13        [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V00.[080..088)\u0022\n ;* V15 tmp14        [V15    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V00.[088..096)\u0022\n ;* V16 tmp15        [V16    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V00.[096..104)\u0022\n ;  V17 cse0         [V17,T01] (  3,  3   )    long  -\u003E  rax         \u0022CSE #01: aggressive\u0022\n ;\n ; Lcl frame size = 168\n \n G_M60289_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        sub      rsp, 168\n        lea      rbp, [rsp\u002B0xD0]\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 6.75\n G_M60289_IG02:\n        lea      rdi, [rbp-0x60]\n        call     CORINFO_HELP_INIT_PINVOKE_FRAME\n        mov      rbx, rax\n        mov      rax, rsp\n        mov      qword ptr [rbp-0x48], rax\n        mov      rax, rbp\n        mov      qword ptr [rbp-0x38], rax\n        mov      rax, 0xD1FFAB1E      ; static handle\n        mov      rcx, 0xD1FFAB1E\n        mov      qword ptr [rax], rcx\n        vmovups  zmm0, zmmword ptr [reloc @RWD00]\n        mov      rcx, 0xD1FFAB1E\n        vmovups  zmmword ptr [rcx], zmm0\n        vmovups  ymm0, ymmword ptr [reloc @RWD64]\n        mov      rcx, 0xD1FFAB1E\n        vmovups  ymmword ptr [rcx], ymm0\n        vmovdqu  xmm0, xmmword ptr [rax]\n        vmovdqu  xmmword ptr [rsp], xmm0\n        vmovdqu  xmm0, xmmword ptr [rax\u002B0x10]\n        vmovdqu  xmmword ptr [rsp\u002B0x10], xmm0\n        vmovdqu  xmm0, xmmword ptr [rax\u002B0x20]\n        vmovdqu  xmmword ptr [rsp\u002B0x20], xmm0\n        vmovdqu  xmm0, xmmword ptr [rax\u002B0x30]\n        vmovdqu  xmmword ptr [rsp\u002B0x30], xmm0\n        vmovdqu  xmm0, xmmword ptr [rax\u002B0x40]\n        vmovdqu  xmmword ptr [rsp\u002B0x40], xmm0\n        vmovdqu  xmm0, xmmword ptr [rax\u002B0x50]\n        vmovdqu  xmmword ptr [rsp\u002B0x50], xmm0\n        mov      rcx, qword ptr [rax\u002B0x60]\n        mov      qword ptr [rsp\u002B0x60], rcx\n        mov      rax, 0xD1FFAB1E      ; function address\n        mov      qword ptr [rbp-0x50], rax\n        lea      rax, G_M60289_IG05\n        mov      qword ptr [rbp-0x40], rax\n        lea      rax, [rbp-0x60]\n        mov      qword ptr [rbx\u002B0x08], rax\n        mov      byte  ptr [rbx\u002B0x04], 0\n \t\t\t\t\t\t;; size=207 bbWeight=1 PerfScore 41.00\n G_M60289_IG03:\n        mov      rax, 0xD1FFAB1E      ; code for SkiaSharp.SkiaApi:sk_managedstream_set_procs(SkiaSharp.SKManagedStreamDelegates)\n \t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 0.25\n G_M60289_IG04:\n        vzeroupper \n        call     [rax]SkiaSharp.SkiaApi:sk_managedstream_set_procs(SkiaSharp.SKManagedStreamDelegates)\n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 4.00\n G_M60289_IG05:\n        mov      byte  ptr [rbx\u002B0x04], 1\n        mov      rcx, 0xD1FFAB1E      ; function address\n        cmp      dword ptr [rcx], 0\n        je       SHORT G_M60289_IG06\n        mov      rdi, 0xD1FFAB1E\n        call     [rdi]CORINFO_HELP_STOP_FOR_GC\n \t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.50\n G_M60289_IG06:\n        mov      rax, qword ptr [rbp-0x58]\n        mov      qword ptr [rbx\u002B0x08], rax\n \t\t\t\t\t\t;; size=8 bbWeight=1 PerfScore 2.00\n G_M60289_IG07:\n        vzeroupper \n        add      rsp, 168\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=21 bbWeight=1 PerfScore 5.25\n-RWD00  \tdq\t00007A20BCE83CF0h, 00007A20BCE83CC0h, 00007A20BCE83CA8h, 00007A20BCE83C90h, 00007A20BCE83D20h, 00007A20BCE83C78h, 00007A20BCE83D38h, 00007A20BCE83CD8h\n-RWD64  \tdq\t00007A20BCE83C60h, 00007A20BCE83C30h, 00007A20BCE83C48h, 00007A20BCE83C18h\n\u002BRWD00  \tdq\t0000775E8EC93CF0h, 0000775E8EC93CC0h, 0000775E8EC93CA8h, 0000775E8EC93C90h, 0000775E8EC93D20h, 0000775E8EC93C78h, 0000775E8EC93D38h, 0000775E8EC93CD8h\n\u002BRWD64  \tdq\t0000775E8EC93C60h, 0000775E8EC93C30h, 0000775E8EC93C48h, 0000775E8EC93C18h\n \n \n ; Total bytes of code 307, prolog size 25, PerfScore 66.75, instruction count 65, allocated bytes for code 307 (MethodHash=5344147e) for method SkiaSharp.SKAbstractManagedStream:.cctor() (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":307,"DiffBytes":307},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.Contracts.PricingLines.QuantityChangeService:ListContractPricingLineQuantityChangesAutoPagingAsync(System.String,System.String,Stripe.V2.Billing.Contracts.PricingLines.QuantityChangeListContractPricingLineQuantityChangesOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.ContractPricingLineQuantityChange]:this (FullOpts)","Category":"improvement","Description":"1,045 -\u003E 987 bytes (-58)","ExtraInfo":null,"Diff":"@@ -9,116 \u002B9,117 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T10] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.Contracts.PricingLines.QuantityChangeService\u003E\n-;  V01 arg1         [V01,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CSystem.String\u003E\n-;  V02 arg2         [V02,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CSystem.String\u003E\n-;  V03 arg3         [V03,T11] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.Contracts.PricingLines.QuantityChangeListContractPricingLineQuantityChangesOptions\u003E\n-;  V04 arg4         [V04,T12] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T13] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V02 arg2         [V02,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V03 arg3         [V03,T15] (  3,  2.50)     ref  -\u003E  r12         class-hnd single-def \u003CStripe.V2.Billing.Contracts.PricingLines.QuantityChangeListContractPricingLineQuantityChangesOptions\u003E\n\u002B;  V04 arg4         [V04,T11] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V05 arg5         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;  V06 loc0         [V06    ] ( 40, 28.50)  struct (40) [rbp-0x50]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.DefaultInterpolatedStringHandler\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V08 tmp1         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.Buffers.SharedArrayPool\u00601[char]\u003E\n-;  V09 tmp2         [V09,T04] (  5,  8   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003Cchar[]\u003E\n\u002B;  V09 tmp2         [V09,T02] (  5,  8   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003Cchar[]\u003E\n ;* V10 tmp3         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003Cchar[]\u003E\n ;* V11 tmp4         [V11    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V12 tmp5         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Span\u00601[char]\u003E\n ;* V13 tmp6         [V13    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;  V14 tmp7         [V14,T05] (  4,  8   )     int  -\u003E  rdi         \u0022Inlining Arg\u0022\n\u002B;  V14 tmp7         [V14,T03] (  4,  8   )     int  -\u003E  rdi         \u0022Inlining Arg\u0022\n ;* V15 tmp8         [V15    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;  V16 tmp9         [V16,T13] (  4,  5   )   byref  -\u003E  rax         single-def \u0022Inlining Arg\u0022\n\u002B;  V16 tmp9         [V16,T12] (  4,  5   )   byref  -\u003E  rax         single-def \u0022Inlining Arg\u0022\n ;  V17 tmp10        [V17,T20] (  2,  4   )     int  -\u003E  rsi         \u0022Inlining Arg\u0022\n-;* V18 tmp11        [V18,T38] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n\u002B;* V18 tmp11        [V18,T39] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n ;* V19 tmp12        [V19    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Span\u00601[char]\u003E\n ;* V20 tmp13        [V20    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V21 tmp14        [V21    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V22 tmp15        [V22,T02] (  7,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V22 tmp15        [V22,T06] (  5,  6   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V23 tmp16        [V23    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Span\u00601[char]\u003E\n ;  V24 tmp17        [V24,T16] (  4,  4   )     int  -\u003E  rdi         \u0022Inlining Arg\u0022\n ;* V25 tmp18        [V25    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;  V26 tmp19        [V26,T29] (  2,  2   )   byref  -\u003E  rax         single-def \u0022Inlining Arg\u0022\n-;  V27 tmp20        [V27,T32] (  2,  2   )     int  -\u003E  rsi         \u0022Inlining Arg\u0022\n-;* V28 tmp21        [V28,T41] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n\u002B;  V26 tmp19        [V26,T31] (  2,  2   )   byref  -\u003E  rax         single-def \u0022Inlining Arg\u0022\n\u002B;  V27 tmp20        [V27,T33] (  2,  2   )     int  -\u003E  rcx         \u0022Inlining Arg\u0022\n\u002B;* V28 tmp21        [V28,T42] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n ;* V29 tmp22        [V29    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Span\u00601[char]\u003E\n ;* V30 tmp23        [V30    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V31 tmp24        [V31    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V32 tmp25        [V32    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V33 tmp26        [V33    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;  V34 tmp27        [V34,T06] (  4,  8   )     int  -\u003E  rdi         \u0022Inlining Arg\u0022\n\u002B;  V34 tmp27        [V34,T04] (  4,  8   )     int  -\u003E  rdi         \u0022Inlining Arg\u0022\n ;* V35 tmp28        [V35    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;  V36 tmp29        [V36,T08] (  5,  6   )   byref  -\u003E  r13         single-def \u0022Inlining Arg\u0022\n\u002B;  V36 tmp29        [V36,T07] (  5,  6   )   byref  -\u003E  r14         single-def \u0022Inlining Arg\u0022\n ;  V37 tmp30        [V37,T21] (  2,  4   )     int  -\u003E  rsi         \u0022Inlining Arg\u0022\n-;* V38 tmp31        [V38,T39] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n\u002B;* V38 tmp31        [V38,T40] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n ;* V39 tmp32        [V39    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Span\u00601[char]\u003E\n ;* V40 tmp33        [V40    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V41 tmp34        [V41    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V42 tmp35        [V42,T03] (  7,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V42 tmp35        [V42,T08] (  5,  6   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V43 tmp36        [V43    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Span\u00601[char]\u003E\n ;  V44 tmp37        [V44,T17] (  4,  4   )     int  -\u003E  rdi         \u0022Inlining Arg\u0022\n ;* V45 tmp38        [V45    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;  V46 tmp39        [V46,T30] (  2,  2   )   byref  -\u003E  rax         single-def \u0022Inlining Arg\u0022\n-;  V47 tmp40        [V47,T33] (  2,  2   )     int  -\u003E  rsi         \u0022Inlining Arg\u0022\n-;* V48 tmp41        [V48,T42] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n\u002B;  V46 tmp39        [V46,T32] (  2,  2   )   byref  -\u003E  rax         single-def \u0022Inlining Arg\u0022\n\u002B;  V47 tmp40        [V47,T34] (  2,  2   )     int  -\u003E  rcx         \u0022Inlining Arg\u0022\n\u002B;* V48 tmp41        [V48,T43] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n ;* V49 tmp42        [V49    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Span\u00601[char]\u003E\n ;* V50 tmp43        [V50    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V51 tmp44        [V51    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V52 tmp45        [V52    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V53 tmp46        [V53    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;  V54 tmp47        [V54,T07] (  4,  8   )     int  -\u003E  rdi         \u0022Inlining Arg\u0022\n\u002B;  V54 tmp47        [V54,T05] (  4,  8   )     int  -\u003E  rdi         \u0022Inlining Arg\u0022\n ;* V55 tmp48        [V55    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;  V56 tmp49        [V56,T18] (  3,  4   )   byref  -\u003E  r13         single-def \u0022Inlining Arg\u0022\n\u002B;  V56 tmp49        [V56,T18] (  3,  4   )   byref  -\u003E  r14         single-def \u0022Inlining Arg\u0022\n ;  V57 tmp50        [V57,T22] (  2,  4   )     int  -\u003E  rsi         \u0022Inlining Arg\u0022\n-;* V58 tmp51        [V58,T40] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n\u002B;* V58 tmp51        [V58,T41] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n ;* V59 tmp52        [V59    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Span\u00601[char]\u003E\n ;* V60 tmp53        [V60    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V61 tmp54        [V61    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V62 tmp55        [V62,T26] (  3,  2   )     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.ContractPricingLineQuantityChange]\u003E\n-;  V63 tmp56        [V63,T09] (  4,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n... diff truncated; middle omitted ...\n        add      edi, 15\n        mov      dword ptr [rbp-0x40], edi\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 3.75\n\u002B\t\t\t\t\t\t;; size=51 bbWeight=0.50 PerfScore 3.75\n G_M3964_IG15:\n-       mov      rdi, r12\n\u002B       mov      rdi, r13\n        mov      rax, 0xD1FFAB1E      ; code for System.Net.WebUtility:UrlEncode(System.String):System.String\n        call     [rax]System.Net.WebUtility:UrlEncode(System.String):System.String\n-       mov      r13, rax\n\u002B       mov      rsi, rax\n        cmp      byte  ptr [rbp-0x3C], 0\n        jne      SHORT G_M3964_IG17\n \t\t\t\t\t\t;; size=24 bbWeight=1 PerfScore 5.75\n G_M3964_IG16:\n-       test     r13, r13\n\u002B       test     rsi, rsi\n        je       SHORT G_M3964_IG17\n        mov      edi, dword ptr [rbp-0x40]\n        cmp      edi, dword ptr [rbp-0x30]\n        ja       G_M3964_IG27\n-       mov      rsi, bword ptr [rbp-0x38]\n-       mov      eax, edi\n-       lea      rax, bword ptr [rsi\u002B2*rax]\n-       mov      esi, dword ptr [rbp-0x30]\n-       sub      esi, edi\n-       cmp      dword ptr [r13\u002B0x08], esi\n\u002B       mov      rax, bword ptr [rbp-0x38]\n\u002B       mov      ecx, edi\n\u002B       lea      rax, bword ptr [rax\u002B2*rcx]\n\u002B       mov      ecx, dword ptr [rbp-0x30]\n\u002B       sub      ecx, edi\n\u002B       mov      r14d, dword ptr [rsi\u002B0x08]\n\u002B       cmp      r14d, ecx\n        jbe      SHORT G_M3964_IG18\n-\t\t\t\t\t\t;; size=38 bbWeight=0.50 PerfScore 5.12\n\u002B\t\t\t\t\t\t;; size=41 bbWeight=0.50 PerfScore 5.25\n G_M3964_IG17:\n        lea      rdi, [rbp-0x50]\n-       mov      rsi, r13\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormattedSlow(System.String):this\n        call     [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormattedSlow(System.String):this\n        jmp      SHORT G_M3964_IG19\n-\t\t\t\t\t\t;; size=21 bbWeight=0.50 PerfScore 3.00\n\u002B\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.88\n G_M3964_IG18:\n-       mov      edx, dword ptr [r13\u002B0x08]\n\u002B       mov      edx, r14d\n        add      rdx, rdx\n-       lea      rsi, bword ptr [r13\u002B0x0C]\n\u002B       add      rsi, 12\n        mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,nuint)\n        call     [rax]System.SpanHelpers:Memmove(byref,byref,nuint)\n-       mov      edi, dword ptr [r13\u002B0x08]\n-       add      edi, dword ptr [rbp-0x40]\n-       mov      dword ptr [rbp-0x40], edi\n-\t\t\t\t\t\t;; size=36 bbWeight=0.50 PerfScore 5.12\n\u002B       add      r14d, dword ptr [rbp-0x40]\n\u002B       mov      dword ptr [rbp-0x40], r14d\n\u002B\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 3.12\n G_M3964_IG19:\n        mov      edi, dword ptr [rbp-0x40]\n        mov      esi, dword ptr [rbp-0x30]\n@@ -312,7 \u002B311,7 @@ G_M3964_IG19:\n        ja       G_M3964_IG27\n        mov      rax, bword ptr [rbp-0x38]\n        mov      ecx, edi\n-       lea      r13, bword ptr [rax\u002B2*rcx]\n\u002B       lea      r14, bword ptr [rax\u002B2*rcx]\n        sub      esi, edi\n        cmp      esi, 17\n        jae      SHORT G_M3964_IG21\n@@ -326,89 \u002B325,83 @@ G_M3964_IG20:\n \t\t\t\t\t\t;; size=28 bbWeight=0.50 PerfScore 3.00\n G_M3964_IG21:\n        vmovups  ymm0, ymmword ptr [reloc @RWD64]\n-       vmovups  ymmword ptr [r13], ymm0\n-       mov      word  ptr [r13\u002B0x20], 115\n\u002B       vmovups  ymmword ptr [r14], ymm0\n\u002B       mov      word  ptr [r14\u002B0x20], 115\n        mov      edi, dword ptr [rbp-0x40]\n        add      edi, 17\n        mov      dword ptr [rbp-0x40], edi\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 3.12\n\u002B\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 3.12\n G_M3964_IG22:\n        lea      rdi, [rbp-0x50]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this\n        call     [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this\n-       mov      r13, rax\n-       mov      rdi, r13\n\u002B       mov      r14, rax\n\u002B       mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for Stripe.ApiModeUtils:GetApiMode(System.String):int\n        call     [rax]Stripe.ApiModeUtils:GetApiMode(System.String):int\n        cmp      eax, 1\n        je       G_M3964_IG24\n \t\t\t\t\t\t;; size=43 bbWeight=1 PerfScore 8.75\n G_M3964_IG23:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.ContractPricingLineQuantityChange]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r13, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r13\u002B0x78], rdi\n\u002B       mov      dword ptr [r13\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      dword ptr [r12\u002B0x6C], edi\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      dword ptr [r13\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r13\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x28]\n-       mov      rsi, r13\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n\u002B       lea      rdi, bword ptr [r13\u002B0x28]\n        mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0xB0]\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r13\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r13\u002B0x48]\n\u002B       mov      rsi, r15\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       lea      rdi, bword ptr [r13\u002B0xB0]\n        mov      rsi, gword ptr [rbp-0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M3964_IG25\n-\t\t\t\t\t\t;; size=170 bbWeight=0.50 PerfScore 13.00\n\u002B\t\t\t\t\t\t;; size=128 bbWeight=0.50 PerfScore 10.75\n G_M3964_IG24:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.ContractPricingLineQuantityChange]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r13, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x70], rdi\n-       mov      dword ptr [r12\u002B0x60], -2\n\u002B       mov      qword ptr [r13\u002B0x70], rdi\n\u002B       mov      dword ptr [r13\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      dword ptr [r12\u002B0x64], edi\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      dword ptr [r13\u002B0x64], edi\n\u002B       lea      rdi, bword ptr [r13\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x28]\n-       mov      rsi, r13\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n\u002B       lea      rdi, bword ptr [r13\u002B0x28]\n        mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0xA8]\n\u002B       lea      rdi, bword ptr [r13\u002B0x38]\n\u002B       mov      rsi, r12\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       lea      rdi, bword ptr [r13\u002B0x48]\n\u002B       mov      rsi, r15\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       lea      rdi, bword ptr [r13\u002B0xA8]\n        mov      rsi, gword ptr [rbp-0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=137 bbWeight=0.50 PerfScore 10.00\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 10.00\n G_M3964_IG25:\n-       mov      rax, r12\n\u002B       mov      rax, r13\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M3964_IG26:\n        vzeroupper \n@@ -431,5 \u002B424,5 @@ RWD32  \tdq\t006900720070002Fh, 0067006E00690063h\n RWD64  \tdq\t006100750071002Fh, 007400690074006Eh, 00680063005F0079h, 00650067006E0061h\n \n \n-; Total bytes of code 1045, prolog size 35, PerfScore 140.71, instruction count 250, allocated bytes for code 1045 (MethodHash=7881f083) for method Stripe.V2.Billing.Contracts.PricingLines.QuantityChangeService:ListContractPricingLineQuantityChangesAutoPagingAsync(System.String,System.String,Stripe.V2.Billing.Contracts.PricingLines.QuantityChangeListContractPricingLineQuantityChangesOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.ContractPricingLineQuantityChange]:this (FullOpts)\n\u002B; Total bytes of code 987, prolog size 35, PerfScore 134.46, instruction count 242, allocated bytes for code 987 (MethodHash=7881f083) for method Stripe.V2.Billing.Contracts.PricingLines.QuantityChangeService:ListContractPricingLineQuantityChangesAutoPagingAsync(System.String,System.String,Stripe.V2.Billing.Contracts.PricingLines.QuantityChangeListContractPricingLineQuantityChangesOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.ContractPricingLineQuantityChange]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1045,"DiffBytes":987},{"Assembly":"System.CommandLine.dasm","Method":"System.CommandLine.Argument\u00601[System.Nullable\u00601[int]]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,System.Nullable\u00601[int]]:this (FullOpts)","Category":"improvement","Description":"234 -\u003E 5 bytes (-229)","ExtraInfo":null,"Diff":"@@ -1,100 \u002B1,35 @@\n ; Assembly listing for method System.CommandLine.Argument\u00601[System.Nullable\u00601[int]]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,System.Nullable\u00601[int]]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] (  4,  3.50)     ref  -\u003E  rdi         this class-hnd single-def \u003CSystem.CommandLine.Argument\u00601[System.Nullable\u00601[int]]\u003E\n-;  V01 loc0         [V01,T06] (  3,  1.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.CommandLine.Argument\u00601[bool]\u003E\n\u002B;  V00 this         [V00,T00] (  3,  3   )     ref  -\u003E  rdi         this class-hnd single-def \u003CSystem.CommandLine.Argument\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;* V01 loc0         [V01    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.CommandLine.Argument\u00601[bool]\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V03 tmp1         [V03,T05] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\u003E\n-;* V04 tmp2         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V05 tmp3         [V05,T04] (  4,  2   )     ref  -\u003E  rsi        \n-;  V06 tmp4         [V06,T01] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\u003E\n-;  V07 tmp5         [V07,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.CommandLine.Argument\u00601\u002B\u003C\u003Ec[System.Nullable\u00601[int]]\u003E\n\u002B;* V03 tmp1         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\u003E\n\u002B;* V04 tmp2         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref   \n\u002B;* V05 tmp3         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref   \n\u002B;* V06 tmp4         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\u003E\n\u002B;* V07 tmp5         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.CommandLine.Argument\u00601\u002B\u003C\u003Ec[System.Nullable\u00601[int]]\u003E\n ;* V08 tmp6         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.CommandLine.Argument\u00601[bool]\u003E\n ;* V09 tmp7         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\u003E\n-;* V10 cse0         [V10,T07] (  0,  0   )   byref  -\u003E  zero-ref    \u0022CSE #02: aggressive\u0022\n-;  V11 cse1         [V11,T03] (  3,  3   )     ref  -\u003E  rbx         \u0022CSE #04: aggressive\u0022\n\u002B;  V10 cse0         [V10,T01] (  2,  2   )     ref  -\u003E  rax         \u0022CSE #01: aggressive\u0022\n ;\n-; Lcl frame size = 8\n\u002B; Lcl frame size = 0\n \n G_M4119_IG01:\n-       push     rbp\n-       push     r15\n-       push     r14\n-       push     rbx\n-       push     rax\n-       lea      rbp, [rsp\u002B0x20]\n-\t\t\t\t\t\t;; size=12 bbWeight=1 PerfScore 5.50\n\u002B\t\t\t\t\t\t;; size=0 bbWeight=1 PerfScore 0.00\n G_M4119_IG02:\n-       mov      rbx, gword ptr [rdi\u002B0x60]\n-       test     rbx, rbx\n-       jne      G_M4119_IG06\n-\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.25\n\u002B       mov      rax, gword ptr [rdi\u002B0x60]\n\u002B\t\t\t\t\t\t;; size=4 bbWeight=1 PerfScore 2.00\n G_M4119_IG03:\n-       mov      rsi, rdi\n-       mov      rdi, 0xD1FFAB1E      ; System.CommandLine.Argument\u00601[bool]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n-       test     r15, r15\n-       je       SHORT G_M4119_IG06\n-       mov      rdi, 0xD1FFAB1E      ; global ptr\n-       test     byte  ptr [rdi], 1\n-       je       SHORT G_M4119_IG08\n-\t\t\t\t\t\t;; size=48 bbWeight=0.50 PerfScore 4.25\n-G_M4119_IG04:\n-       mov      rdi, 0xD1FFAB1E      ; data for System.CommandLine.Argument\u00601\u002B\u003C\u003Ec[System.Nullable\u00601[int]]:\u003C\u003E9__4_0\n-       mov      rsi, gword ptr [rdi]\n-       test     rsi, rsi\n-       jne      SHORT G_M4119_IG05\n-       mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      rdi, 0xD1FFAB1E      ; data for System.CommandLine.Argument\u00601\u002B\u003C\u003Ec[System.Nullable\u00601[int]]:\u003C\u003E9\n-       mov      rsi, gword ptr [rdi]\n-       test     rsi, rsi\n-       je       SHORT G_M4119_IG09\n-       lea      rdi, bword ptr [r14\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, 0xD1FFAB1E      ; code for System.CommandLine.Argument\u00601\u002B\u003C\u003Ec[System.Nullable\u00601[int]]:\u003Cget_DefaultValueFactory\u003Eb__4_0(System.CommandLine.Parsing.ArgumentResult):bool:this\n-       mov      qword ptr [r14\u002B0x18], rdi\n-       mov      rdi, 0xD1FFAB1E      ; data for System.CommandLine.Argument\u00601\u002B\u003C\u003Ec[System.Nullable\u00601[int]]:\u003C\u003E9__4_0\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rsi, r14\n-\t\t\t\t\t\t;; size=98 bbWeight=0.50 PerfScore 6.50\n-G_M4119_IG05:\n-       lea      rdi, bword ptr [r15\u002B0x60]\n-       call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 0.75\n-G_M4119_IG06:\n-       mov      rax, rbx\n-\t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M4119_IG07:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M4119_IG08:\n-       mov      rdi, 0xD1FFAB1E      ; System.CommandLine.Argument\u00601\u002B\u003C\u003Ec[System.Nullable\u00601[int]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M4119_IG04\n-\t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M4119_IG09:\n-       mov      rax, 0xD1FFAB1E      ; code for System.Delegate:ThrowNullThisInDelegateToInstance()\n-       call     [rax]System.Delegate:ThrowNullThisInDelegateToInstance()\n-       int3     \n-\t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n\u002B\t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 1.00\n \n-; Total bytes of code 234, prolog size 12, PerfScore 23.75, instruction count 54, allocated bytes for code 234 (MethodHash=2a98efe8) for method System.CommandLine.Argument\u00601[System.Nullable\u00601[int]]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,System.Nullable\u00601[int]]:this (FullOpts)\n\u002B; Total bytes of code 5, prolog size 0, PerfScore 3.00, instruction count 2, allocated bytes for code 5 (MethodHash=2a98efe8) for method System.CommandLine.Argument\u00601[System.Nullable\u00601[int]]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,System.Nullable\u00601[int]]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":234,"DiffBytes":5},{"Assembly":"System.ComponentModel.Composition.dasm","Method":"System.ComponentModel.Composition.Hosting.ImportEngine:InPrerequisiteLoop():bool:this (FullOpts)","Category":"improvement","Description":"449 -\u003E 394 bytes (-55)","ExtraInfo":null,"Diff":"@@ -8,21 \u002B8,21 @@\n ; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T04] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.ComponentModel.Composition.Hosting.ImportEngine\u003E\n-;  V01 loc0         [V01,T02] (  4, 11   )     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.ComponentModel.Composition.Hosting.ImportEngine\u002BPartManager\u003E\n-;  V02 loc1         [V02,T07] (  3,  3   )     ref  -\u003E  r15         class-hnd \u003CSystem.ComponentModel.Composition.Hosting.ImportEngine\u002BPartManager\u003E\n\u002B;  V00 this         [V00,T03] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.ComponentModel.Composition.Hosting.ImportEngine\u003E\n\u002B;  V01 loc0         [V01,T02] (  4, 11   )     ref  -\u003E  r15         class-hnd exact single-def \u003CSystem.ComponentModel.Composition.Hosting.ImportEngine\u002BPartManager\u003E\n\u002B;  V02 loc1         [V02,T06] (  3,  3   )     ref  -\u003E  r14         class-hnd \u003CSystem.ComponentModel.Composition.Hosting.ImportEngine\u002BPartManager\u003E\n ;  V03 loc2         [V03,T01] (  6, 19   )     ref  -\u003E  [rbp-0x38]  class-hnd EH-live single-def \u003CSystem.Collections.Generic.IEnumerator\u00601[System.ComponentModel.Composition.Hosting.ImportEngine\u002BPartManager]\u003E\n ;  V04 loc3         [V04,T00] (  3, 24   )     ref  -\u003E  r13         class-hnd \u003CSystem.ComponentModel.Composition.Hosting.ImportEngine\u002BPartManager\u003E\n-;  V05 loc4         [V05,T09] (  2,  2   )   ubyte  -\u003E  [rbp-0x24]  do-not-enreg[Z] must-init EH-live\n\u002B;  V05 loc4         [V05,T08] (  2,  2   )   ubyte  -\u003E  [rbp-0x24]  do-not-enreg[Z] must-init EH-live\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T10] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Exception\u003E\n-;  V08 tmp2         [V08,T03] (  4,  8   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Stack\u00601[System.ComponentModel.Composition.Hosting.ImportEngine\u002BPartManager]\u003E\n-;  V09 tmp3         [V09    ] (  3,  3   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V07 tmp1         [V07,T09] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Exception\u003E\n\u002B;  V08 tmp2         [V08,T04] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Stack\u00601[System.ComponentModel.Composition.Hosting.ImportEngine\u002BPartManager]\u003E\n\u002B;  V09 tmp3         [V09    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V11 tmp5         [V11,T08] (  3,  3   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.ComponentModel.Composition.Hosting.ImportEngine\u002BPartManager\u003E\n-;  V12 tmp6         [V12,T05] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.ComponentModel.Composition.Hosting.ImportEngine\u002BPartManager]\u003E\n-;  V13 tmp7         [V13,T06] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V14 tmp8         [V14,T11] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V11 tmp5         [V11,T07] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.ComponentModel.Composition.Hosting.ImportEngine\u002BPartManager\u003E\n\u002B;* V12 tmp6         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.ComponentModel.Composition.Hosting.ImportEngine\u002BPartManager]\u003E\n\u002B;  V13 tmp7         [V13,T05] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V14 tmp8         [V14,T10] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 32\n \n@@ -40,35 \u002B40,17 @@ G_M18730_IG01:\n        mov      rbx, rdi\n \t\t\t\t\t\t;; size=29 bbWeight=1 PerfScore 8.25\n G_M18730_IG02:\n-       mov      r15, gword ptr [rbx\u002B0x10]\n-       test     r15, r15\n-       je       G_M18730_IG13\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.ComponentModel.Composition.Hosting.ImportEngine\u002BPartManager]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M18730_IG03\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      r14, rax\n-       jmp      SHORT G_M18730_IG04\n-\t\t\t\t\t\t;; size=65 bbWeight=1 PerfScore 18.25\n-G_M18730_IG03:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x10]\n\u002B       test     rsi, rsi\n\u002B       je       G_M18730_IG11\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.ComponentModel.Composition.Hosting.ImportEngine\u002BPartManager](System.Collections.Generic.IEnumerable\u00601[System.ComponentModel.Composition.Hosting.ImportEngine\u002BPartManager],byref):System.ComponentModel.Composition.Hosting.ImportEngine\u002BPartManager\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      r14, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=1 PerfScore 4.50\n-G_M18730_IG04:\n\u002B       mov      r15, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M18730_IG14\n-       xor      r15, r15\n\u002B       je       G_M18730_IG12\n\u002B       xor      r14, r14\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:Skip[System.ComponentModel.Composition.Hosting.ImportEngine\u002BPartManager](System.Collections.Generic.IEnumerable\u00601[System.ComponentModel.Composition.Hosting.ImportEngine\u002BPartManager],int):System.Collections.Generic.IEnumerable\u00601[System.ComponentModel.Composition.Hosting.ImportEngine\u002BPartManager]\n        mov      edx, 1\n@@ -79,13 \u002B61,13 @@ G_M18730_IG04:\n        call     [r11]System.Collections.Generic.IEnumerable\u00601[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator\u00601[System.__Canon]:this\n        mov      rbx, rax\n        mov      gword ptr [rbp-0x38], rbx\n-\t\t\t\t\t\t;; size=67 bbWeight=1 PerfScore 12.75\n-G_M18730_IG05:\n\u002B\t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 20.25\n\u002BG_M18730_IG03:\n        mov      rdi, rbx\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():bool:this\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n-       je       SHORT G_M18730_IG11\n\u002B       je       SHORT G_M18730_IG09\n        mov      rdi, rbx\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEnumerator\u00601[System.__Canon]:get_Current():System.__Canon:this\n        call     [r11]System.Collections.Generic.IEnumerator\u00601[System.__Canon]:get_Current():System.__Canon:this\n@@ -95,24 \u002B77,41 @@ G_M18730_IG05:\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.ComponentModel.Composition.Hosting.ImportEngine\u002BPartManager:get_State():int:this\n        cmp      eax, 3\n-       je       SHORT G_M18730_IG07\n-       cmp      r13, r14\n-       jne      SHORT G_M18730_IG05\n\u002B       je       SHORT G_M18730_IG05\n\u002B       cmp      r13, r15\n\u002B       jne      SHORT G_M18730_IG03\n \t\t\t\t\t\t;; size=66 bbWeight=8 PerfScore 132.00\n-G_M18730_IG06:\n-       mov      r15, r14\n-       jmp      SHORT G_M18730_IG11\n\u002BG_M18730_IG04:\n\u002B       mov      r14, r15\n\u002B       jmp      SHORT G_M18730_IG09\n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 2.25\n-G_M18730_IG07:\n\u002BG_M18730_IG05:\n        mov      dword ptr [rbp-0x24], 1\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 1.00\n-G_M18730_IG08:\n-       call     G_M18730_IG16\n\u002BG_M18730_IG06:\n\u002B       call     G_M18730_IG14\n        nop      \n \t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 1.25\n-G_M18730_IG09:\n\u002BG_M18730_IG07:\n        mov      eax, dword ptr [rbp-0x24]\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 1.00\n\u002BG_M18730_IG08:\n\u002B       add      rsp, 32\n\u002B       pop      rbx\n\u002B       pop      r13\n\u002B       pop      r14\n\u002B       pop      r15\n\u002B       pop      rbp\n\u002B       ret      \n\u002B\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n\u002BG_M18730_IG09:\n\u002B       mov      rdi, rbx\n\u002B       mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n\u002B       call     [r11]System.IDisposable:Dispose():this\n\u002B       cmp      r14, r15\n\u002B       jne      SHORT G_M18730_IG13\n\u002B       xor      eax, eax\n\u002B\t\t\t\t\t\t;; size=23 bbWeight=1 PerfScore 5.00\n G_M18730_IG10:\n        add      rsp, 32\n        pop      rbx\n@@ -123,34 \u002B122,17 @@ G_M18730_IG10:\n        ret      \n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n G_M18730_IG11:\n-       mov      rdi, rbx\n-       mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n-       call     [r11]System.IDisposable:Dispose():this\n-       cmp      r15, r14\n-       jne      SHORT G_M18730_IG15\n-       xor      eax, eax\n-\t\t\t\t\t\t;; size=23 bbWeight=1 PerfScore 5.00\n-G_M18730_IG12:\n-       add      rsp, 32\n-       pop      rbx\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       ret      \n-\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n-G_M18730_IG13:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M18730_IG14:\n\u002BG_M18730_IG12:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M18730_IG15:\n\u002BG_M18730_IG13:\n        mov      rdi, 0xD1FFAB1E      ; System.Exception\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -164,24 \u002B146,24 @@ G_M18730_IG15:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=57 bbWeight=0 PerfScore 0.00\n-G_M18730_IG16:\n\u002BG_M18730_IG14:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 1.00\n-G_M18730_IG17:\n\u002BG_M18730_IG15:\n        mov      rbx, gword ptr [rbp-0x38]\n        test     rbx, rbx\n-       je       SHORT G_M18730_IG18\n\u002B       je       SHORT G_M18730_IG16\n        mov      rdi, rbx\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 5.75\n-G_M18730_IG18:\n\u002BG_M18730_IG16:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M18730_IG19:\n\u002BG_M18730_IG17:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n \n-; Total bytes of code 449, prolog size 29, PerfScore 202.00, instruction count 118, allocated bytes for code 449 (MethodHash=070db6d5) for method System.ComponentModel.Composition.Hosting.ImportEngine:InPrerequisiteLoop():bool:this (FullOpts)\n\u002B; Total bytes of code 394, prolog size 29, PerfScore 186.75, instruction count 104, allocated bytes for code 394 (MethodHash=070db6d5) for method System.ComponentModel.Composition.Hosting.ImportEngine:InPrerequisiteLoop():bool:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":449,"DiffBytes":394},{"Assembly":"System.Data.Common.dasm","Method":"System.Data.EnumerableRowCollectionExtensions:Select[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]](System.Data.EnumerableRowCollection\u00601[System.Numerics.Vector\u00601[float]],System.Func\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]]):System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]] (FullOpts)","Category":"regression","Description":"147 -\u003E 249 bytes (\u002B102)","ExtraInfo":null,"Diff":"@@ -1,66 \u002B1,94 @@\n ; Assembly listing for method System.Data.EnumerableRowCollectionExtensions:Select[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]](System.Data.EnumerableRowCollection\u00601[System.Numerics.Vector\u00601[float]],System.Func\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]]):System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]] (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n\u002B; 0 inlinees with PGO data; 4 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T00] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.EnumerableRowCollection\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V01 arg1         [V01,T01] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Func\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]]\u003E\n-;  V02 loc0         [V02,T05] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V00 arg0         [V00,T04] (  3,  3   )     ref  -\u003E  rdi         class-hnd single-def \u003CSystem.Data.EnumerableRowCollection\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V01 arg1         [V01,T01] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Func\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]]\u003E\n\u002B;  V02 loc0         [V02,T07] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V04 tmp1         [V04,T02] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]]\u003E\n-;  V05 tmp2         [V05,T03] (  2,  4   )     ref  -\u003E  rbx         single-def \u0022argument with side effect\u0022\n-;  V06 tmp3         [V06,T04] (  2,  4   )     ref  -\u003E  rcx         single-def \u0022argument with side effect\u0022\n\u002B;  V04 tmp1         [V04,T00] (  6, 12   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V05 tmp2         [V05,T05] (  2,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]\u003E\n\u002B;  V06 tmp3         [V06,T02] (  3,  6   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Func\u00602[System.Nullable\u00601[int],bool]]\u003E\n\u002B;  V07 tmp4         [V07,T03] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.SortExpressionBuilder\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V08 cse0         [V08,T06] (  3,  2   )    long  -\u003E  rbx         \u0022CSE #01: aggressive\u0022\n ;\n-; Lcl frame size = 0\n\u002B; Lcl frame size = 8\n \n G_M27880_IG01:\n        push     rbp\n        push     r15\n        push     r14\n-       push     r13\n        push     rbx\n\u002B       push     rax\n        lea      rbp, [rsp\u002B0x20]\n-       mov      rbx, rdi\n-       mov      r15, rsi\n-\t\t\t\t\t\t;; size=19 bbWeight=1 PerfScore 6.00\n\u002B       mov      rbx, rsi\n\u002B\t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 5.75\n G_M27880_IG02:\n-       mov      rdi, rbx\n-       mov      rsi, r15\n\u002B       mov      rsi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:Select[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]](System.Collections.Generic.IEnumerable\u00601[System.Numerics.Vector\u00601[float]],System.Func\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]]):System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]\n        call     [rax]System.Linq.Enumerable:Select[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]](System.Collections.Generic.IEnumerable\u00601[System.Numerics.Vector\u00601[float]],System.Func\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]]):System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]\n-       mov      r14, rax\n\u002B       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n\u002B       mov      r14, rax\n        mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      rbx, rax\n-       mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFANY\n        call     [rax]CORINFO_HELP_ISINSTANCEOFANY\n-       mov      rcx, rax\n\u002B       mov      rbx, rax\n\u002B       lea      rdi, bword ptr [r14\u002B0x10]\n\u002B       mov      rsi, r15\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       lea      rdi, bword ptr [r14\u002B0x28]\n        mov      rsi, rbx\n-       mov      rdx, r14\n-       mov      rdi, r13\n-       mov      rax, 0xD1FFAB1E      ; code for System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]]:.ctor(System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]],System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]],System.Func\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]):this\n-       call     [rax]System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]]:.ctor(System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]],System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]],System.Func\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]):this\n-       mov      rax, r13\n-\t\t\t\t\t\t;; size=119 bbWeight=1 PerfScore 17.75\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       mov      rbx, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.Func\u00602[System.Nullable\u00601[int],bool]]\n\u002B       mov      rdi, rbx\n\u002B       call     CORINFO_HELP_NEWSFAST\n\u002B       mov      r15, rax\n\u002B       mov      rdi, 0xD1FFAB1E      ; global ptr\n\u002B       test     byte  ptr [rdi], 1\n\u002B       je       SHORT G_M27880_IG05\n\u002B\t\t\t\t\t\t;; size=124 bbWeight=1 PerfScore 17.75\n G_M27880_IG03:\n\u002B       mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.List\u00601[System.Func\u00602[System.Nullable\u00601[int],bool]]:s_emptyArray\n\u002B       mov      rsi, gword ptr [rdi]\n\u002B       lea      rdi, bword ptr [r15\u002B0x08]\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n\u002B       mov      rsi, r15\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       mov      rdi, 0xD1FFAB1E      ; System.Data.SortExpressionBuilder\u00601[System.Nullable\u00601[int]]\n\u002B       call     CORINFO_HELP_NEWSFAST\n\u002B       mov      rbx, rax\n\u002B       mov      rdi, rbx\n\u002B       mov      rax, 0xD1FFAB1E      ; code for System.Data.SortExpressionBuilder\u00601[System.Nullable\u00601[int]]:.ctor():this\n\u002B       call     [rax]System.Data.SortExpressionBuilder\u00601[System.Nullable\u00601[int]]:.ctor():this\n\u002B       lea      rdi, bword ptr [r14\u002B0x20]\n\u002B       mov      rsi, rbx\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       mov      rax, r14\n\u002B\t\t\t\t\t\t;; size=82 bbWeight=1 PerfScore 12.50\n\u002BG_M27880_IG04:\n\u002B       add      rsp, 8\n        pop      rbx\n-       pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.50\n\u002B\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n\u002BG_M27880_IG05:\n\u002B       mov      rdi, rbx\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n\u002B       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n\u002B       jmp      SHORT G_M27880_IG03\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 147, prolog size 13, PerfScore 27.25, instruction count 38, allocated bytes for code 147 (MethodHash=011c9317) for method System.Data.EnumerableRowCollectionExtensions:Select[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]](System.Data.EnumerableRowCollection\u00601[System.Numerics.Vector\u00601[float]],System.Func\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]]):System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]] (FullOpts)\n\u002B; Total bytes of code 249, prolog size 12, PerfScore 39.25, instruction count 59, allocated bytes for code 249 (MethodHash=011c9317) for method System.Data.EnumerableRowCollectionExtensions:Select[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]](System.Data.EnumerableRowCollection\u00601[System.Numerics.Vector\u00601[float]],System.Func\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]]):System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]] (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":147,"DiffBytes":249},{"Assembly":"System.Linq.Dynamic.Core.dasm","Method":"System.Linq.Dynamic.Core.Parser.ExpressionHelper:CollectExpressions(bool,System.Linq.Expressions.Expression):System.Collections.Generic.List\u00601[System.Linq.Expressions.Expression]:this (FullOpts)","Category":"improvement","Description":"648 -\u003E 592 bytes (-56)","ExtraInfo":null,"Diff":"@@ -9,28 \u002B9,28 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T05] (  5,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Linq.Dynamic.Core.Parser.ExpressionHelper\u003E\n-;  V01 arg1         [V01,T15] (  3,  3   )   ubyte  -\u003E  r14         single-def\n-;  V02 arg2         [V02,T10] (  5,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;  V01 arg1         [V01,T13] (  3,  3   )   ubyte  -\u003E  r14         single-def\n\u002B;  V02 arg2         [V02,T09] (  5,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Linq.Expressions.Expression\u003E\n ;  V03 loc0         [V03,T00] ( 14, 32.50)     ref  -\u003E  r13         class-hnd \u003CSystem.Linq.Expressions.Expression\u003E\n ;  V04 loc1         [V04,T02] ( 14, 17   )     ref  -\u003E  r12         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V05 loc2         [V05,T09] (  2,  8   )   ubyte  -\u003E  rdi        \n\u002B;  V05 loc2         [V05,T08] (  2,  8   )   ubyte  -\u003E  rdi        \n ;  V06 loc3         [V06,T01] (  3, 18   )     ref  -\u003E  rax         class-hnd \u003CSystem.Linq.Expressions.MemberExpression\u003E\n-;  V07 loc4         [V07,T04] (  6, 12   )     ref  -\u003E  r15         class-hnd \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n-;  V08 loc5         [V08,T16] (  2,  4   )     ref  -\u003E  r13         class-hnd exact \u003CSystem.Linq.Expressions.UnaryExpression\u003E\n\u002B;  V07 loc4         [V07,T03] (  6, 12   )     ref  -\u003E  r15         class-hnd \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n\u002B;  V08 loc5         [V08,T14] (  2,  4   )     ref  -\u003E  r13         class-hnd exact \u003CSystem.Linq.Expressions.UnaryExpression\u003E\n ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V10 tmp1         [V10,T11] (  3,  6   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V10 tmp1         [V10,T10] (  3,  6   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Linq.Expressions.Expression]\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CSystem.Linq.Expressions.UnaryExpression\u003E\n-;  V12 tmp3         [V12,T19] (  3,  1.50)     ref  -\u003E  rdi         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Expressions.Expression[]\u003E\n-;  V13 tmp4         [V13,T18] (  4,  2   )     int  -\u003E  r14         single-def \u0022Inline stloc first use temp\u0022\n-;  V14 tmp5         [V14,T12] (  3,  6   )     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V15 tmp6         [V15,T03] (  4, 16   )     ref  -\u003E  r15         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V16 tmp7         [V16    ] (  2,  4   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V17 tmp8         [V17,T13] (  3,  6   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V18 tmp9         [V18,T06] (  4,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V19 tmp10        [V19,T17] (  2,  4   )     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V20 tmp11        [V20,T14] (  3,  6   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Expressions.Expression[]\u003E\n-;  V21 tmp12        [V21,T07] (  4,  8   )     int  -\u003E  r15         \u0022Inline stloc first use temp\u0022\n-;  V22 cse0         [V22,T08] (  4,  8   )    long  -\u003E  r13         \u0022CSE #04: aggressive\u0022\n\u002B;  V12 tmp3         [V12,T18] (  3,  1.50)     ref  -\u003E  rdi         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Expressions.Expression[]\u003E\n\u002B;  V13 tmp4         [V13,T17] (  4,  2   )     int  -\u003E  r14         single-def \u0022Inline stloc first use temp\u0022\n\u002B;  V14 tmp5         [V14,T11] (  3,  6   )     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;  V15 tmp6         [V15,T04] (  3, 12   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V16 tmp7         [V16    ] (  1,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V17 tmp8         [V17,T15] (  2,  4   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;* V18 tmp9         [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V19 tmp10        [V19,T16] (  2,  4   )     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;  V20 tmp11        [V20,T12] (  3,  6   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Expressions.Expression[]\u003E\n\u002B;  V21 tmp12        [V21,T06] (  4,  8   )     int  -\u003E  r15         \u0022Inline stloc first use temp\u0022\n\u002B;  V22 cse0         [V22,T07] (  4,  8   )    long  -\u003E  r13         \u0022CSE #04: aggressive\u0022\n ;\n ; Lcl frame size = 8\n \n@@ -60,7 \u002B60,7 @@ G_M56348_IG02:\n        mov      r12, rax\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M56348_IG21\n\u002B       je       G_M56348_IG19\n \t\t\t\t\t\t;; size=58 bbWeight=1 PerfScore 8.75\n G_M56348_IG03:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.List\u00601[System.Linq.Expressions.Expression]:s_emptyArray\n@@ -117,7 \u002B117,7 @@ G_M56348_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Dynamic.Core.Parser.ExpressionHelper:GetMemberExpression(System.Linq.Expressions.Expression):System.Linq.Expressions.Expression:this\n        call     [rax]System.Linq.Dynamic.Core.Parser.ExpressionHelper:GetMemberExpression(System.Linq.Expressions.Expression):System.Linq.Expressions.Expression:this\n        mov      r13, rax\n-       jmp      G_M56348_IG17\n\u002B       jmp      G_M56348_IG15\n \t\t\t\t\t\t;; size=27 bbWeight=2 PerfScore 15.50\n G_M56348_IG09:\n        mov      rsi, r13\n@@ -126,70 \u002B126,53 @@ G_M56348_IG09:\n        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        mov      r15, rax\n        test     r15, r15\n-       je       G_M56348_IG14\n\u002B       je       SHORT G_M56348_IG12\n        mov      rdi, r15\n        mov      rax, qword ptr [r15]\n        mov      r13, qword ptr [rax\u002B0x48]\n        call     [r13\u002B0x10]System.Linq.Expressions.MethodCallExpression:GetInstance():System.Linq.Expressions.Expression:this\n        test     rax, rax\n-       jne      SHORT G_M56348_IG12\n\u002B       jne      SHORT G_M56348_IG10\n        mov      rdi, r15\n        call     [r13\u002B0x20]System.Linq.Expressions.MethodCallExpression:GetOrMakeArguments():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]:this\n-       mov      r15, rax\n-       test     r15, r15\n-       je       G_M56348_IG22\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M56348_IG10\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M56348_IG11\n-\t\t\t\t\t\t;; size=124 bbWeight=2 PerfScore 66.50\n-G_M56348_IG10:\n\u002B       je       G_M56348_IG20\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r15\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Linq.Expressions.Expression](System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.Expression],byref):System.Linq.Expressions.Expression\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=2 PerfScore 8.50\n-G_M56348_IG11:\n        mov      r13, rax\n-       jmp      SHORT G_M56348_IG13\n-\t\t\t\t\t\t;; size=5 bbWeight=2 PerfScore 4.50\n-G_M56348_IG12:\n\u002B       jmp      SHORT G_M56348_IG11\n\u002B\t\t\t\t\t\t;; size=102 bbWeight=2 PerfScore 49.50\n\u002BG_M56348_IG10:\n        mov      rdi, r15\n        call     [r13\u002B0x10]System.Linq.Expressions.MethodCallExpression:GetInstance():System.Linq.Expressions.Expression:this\n        mov      r13, rax\n \t\t\t\t\t\t;; size=10 bbWeight=2 PerfScore 7.00\n-G_M56348_IG13:\n-       jmp      SHORT G_M56348_IG17\n\u002BG_M56348_IG11:\n\u002B       jmp      SHORT G_M56348_IG15\n \t\t\t\t\t\t;; size=2 bbWeight=2 PerfScore 4.00\n-G_M56348_IG14:\n\u002BG_M56348_IG12:\n        test     r13, r13\n-       je       SHORT G_M56348_IG19\n\u002B       je       SHORT G_M56348_IG17\n \t\t\t\t\t\t;; size=5 bbWeight=2 PerfScore 2.50\n-G_M56348_IG15:\n\u002BG_M56348_IG13:\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Expressions.UnaryExpression\n        cmp      qword ptr [r13], rdi\n-       jne      SHORT G_M56348_IG19\n\u002B       jne      SHORT G_M56348_IG17\n \t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 3.25\n-G_M56348_IG16:\n\u002BG_M56348_IG14:\n        mov      r13, gword ptr [r13\u002B0x10]\n \t\t\t\t\t\t;; size=4 bbWeight=2 PerfScore 4.00\n-G_M56348_IG17:\n\u002BG_M56348_IG15:\n        test     r13, r13\n        setne    dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M56348_IG19\n\u002B       je       SHORT G_M56348_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=4 PerfScore 9.00\n-G_M56348_IG18:\n\u002BG_M56348_IG16:\n        mov      rdi, rbx\n        mov      rsi, r13\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Dynamic.Core.Parser.ExpressionHelper:ExpressionQualifiesForNullPropagation(System.Linq.Expressions.Expression):bool:this\n@@ -209,10 \u002B192,10 @@ G_M56348_IG18:\n        call     [rax]CORINFO_HELP_ARRADDR_ST\n        jmp      G_M56348_IG07\n \t\t\t\t\t\t;; size=83 bbWeight=2 PerfScore 44.50\n-G_M56348_IG19:\n\u002BG_M56348_IG17:\n        mov      rax, r12\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M56348_IG20:\n\u002BG_M56348_IG18:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n@@ -222,18 \u002B205,18 @@ G_M56348_IG20:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M56348_IG21:\n\u002BG_M56348_IG19:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.Linq.Expressions.Expression]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M56348_IG03\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M56348_IG22:\n\u002BG_M56348_IG20:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 648, prolog size 31, PerfScore 258.50, instruction count 156, allocated bytes for code 648 (MethodHash=7fe023e3) for method System.Linq.Dynamic.Core.Parser.ExpressionHelper:CollectExpressions(bool,System.Linq.Expressions.Expression):System.Collections.Generic.List\u00601[System.Linq.Expressions.Expression]:this (FullOpts)\n\u002B; Total bytes of code 592, prolog size 31, PerfScore 228.50, instruction count 143, allocated bytes for code 592 (MethodHash=7fe023e3) for method System.Linq.Dynamic.Core.Parser.ExpressionHelper:CollectExpressions(bool,System.Linq.Expressions.Expression):System.Collections.Generic.List\u00601[System.Linq.Expressions.Expression]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":648,"DiffBytes":592},{"Assembly":"System.Linq.Expressions.dasm","Method":"System.Linq.Expressions.Compiler.LabelInfo:ValidateJump(System.Linq.Expressions.Compiler.LabelScopeInfo):this (FullOpts)","Category":"improvement","Description":"733 -\u003E 685 bytes (-48)","ExtraInfo":null,"Diff":"@@ -10,7 \u002B10,7 @@\n ;\n ;  V00 this         [V00,T02] ( 14, 16   )     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Linq.Expressions.Compiler.LabelInfo\u003E\n ;  V01 arg1         [V01,T08] (  6,  5   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Linq.Expressions.Compiler.LabelScopeInfo\u003E\n-;  V02 loc0         [V02,T19] (  3,  1.50)     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.Linq.Expressions.Compiler.LabelScopeInfo\u003E\n\u002B;  V02 loc0         [V02,T18] (  3,  1.50)     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.Linq.Expressions.Compiler.LabelScopeInfo\u003E\n ;  V03 loc1         [V03,T07] (  5,  9.50)     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Linq.Expressions.Compiler.LabelScopeInfo\u003E\n ;  V04 loc2         [V04,T01] (  6, 21   )     ref  -\u003E  r14         class-hnd \u003CSystem.Linq.Expressions.Compiler.LabelScopeInfo\u003E\n ;  V05 loc3         [V05,T06] (  6, 17   )     ref  -\u003E  r15         class-hnd \u003CSystem.Linq.Expressions.Compiler.LabelScopeInfo\u003E\n@@ -19,7 \u002B19,7 @@\n ;* V08 tmp1         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V09 tmp2         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V10 tmp3         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u003CSystem.Reflection.Emit.OpCode\u003E\n-;  V11 tmp4         [V11,T16] (  2,  2   )     ref  -\u003E  rcx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Linq.Expressions.Compiler.LabelScopeInfo,System.Linq.Expressions.Compiler.LabelScopeInfo]\u003E\n\u002B;  V11 tmp4         [V11,T15] (  2,  2   )     ref  -\u003E  rcx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Linq.Expressions.Compiler.LabelScopeInfo,System.Linq.Expressions.Compiler.LabelScopeInfo]\u003E\n ;* V12 tmp5         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V13 tmp6         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V14 tmp7         [V14,T12] (  4,  2   )     ref  -\u003E  rcx        \n@@ -30,26 \u002B30,26 @@\n ;  V19 tmp12        [V19,T00] (  3, 24   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Linq.Expressions.Compiler.LabelScopeInfo]\u003E\n ;* V20 tmp13        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Linq.Expressions.LabelTarget\u003E\n ;* V21 tmp14        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Linq.Expressions.LabelTarget\u003E\n-;  V22 tmp15        [V22,T11] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Linq.Expressions.Compiler.LabelScopeInfo]\u003E\n\u002B;  V22 tmp15        [V22,T10] (  3,  3   )     ref  -\u003E  rdx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Linq.Expressions.Compiler.LabelScopeInfo]\u003E\n ;* V23 tmp16        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Linq.Expressions.LabelTarget\u003E\n-;  V24 tmp17        [V24,T10] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Linq.Expressions.Compiler.LabelScopeInfo]\u003E\n-;  V25 tmp18        [V25    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V24 tmp17        [V24,T11] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Linq.Expressions.Compiler.LabelScopeInfo]\u003E\n\u002B;  V25 tmp18        [V25    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V26 tmp19        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V27 tmp20        [V27,T20] (  3,  1.50)     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Compiler.LabelScopeInfo\u003E\n-;  V28 tmp21        [V28,T13] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Compiler.LabelScopeInfo]\u003E\n-;  V29 tmp22        [V29,T17] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Linq.Expressions.Compiler.LabelInfo\u002B\u003C\u003Ec\u003E\n\u002B;  V27 tmp20        [V27,T22] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Compiler.LabelScopeInfo\u003E\n\u002B;* V28 tmp21        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Compiler.LabelScopeInfo]\u003E\n\u002B;  V29 tmp22        [V29,T16] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Linq.Expressions.Compiler.LabelInfo\u002B\u003C\u003Ec\u003E\n ;* V30 tmp23        [V30    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V31 tmp24        [V31    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n-;  V32 tmp25        [V32,T14] (  3,  2   )     int  -\u003E  rdi         \u0022field V10.m_value (fldOffset=0x0)\u0022 P-INDEP\n-;  V33 tmp26        [V33,T15] (  3,  2   )     int  -\u003E  rsi         \u0022field V10.m_flags (fldOffset=0x4)\u0022 P-INDEP\n-;  V34 tmp27        [V34,T22] (  3,  1.50)     int  -\u003E  rcx         \u0022field V17.m_value (fldOffset=0x0)\u0022 P-INDEP\n-;  V35 tmp28        [V35,T23] (  3,  1.50)     int  -\u003E  rdx         \u0022field V17.m_flags (fldOffset=0x4)\u0022 P-INDEP\n-;  V36 cse0         [V36,T03] (  5, 18   )     int  -\u003E  rsi         \u0022CSE #03: aggressive\u0022\n\u002B;  V32 tmp25        [V32,T13] (  3,  2   )     int  -\u003E  rdi         \u0022field V10.m_value (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V33 tmp26        [V33,T14] (  3,  2   )     int  -\u003E  rsi         \u0022field V10.m_flags (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V34 tmp27        [V34,T20] (  3,  1.50)     int  -\u003E  rcx         \u0022field V17.m_value (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V35 tmp28        [V35,T21] (  3,  1.50)     int  -\u003E  rdx         \u0022field V17.m_flags (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V36 cse0         [V36,T03] (  5, 18   )     int  -\u003E  rdx         \u0022CSE #03: aggressive\u0022\n ;  V37 cse1         [V37,T04] (  5, 18   )     int  -\u003E  rcx         \u0022CSE #08: aggressive\u0022\n-;  V38 cse2         [V38,T18] (  5,  1.50)     ref  -\u003E  r14         \u0022CSE #04: moderate\u0022\n-;  V39 cse3         [V39,T21] (  3,  1.50)     ref  -\u003E  r13         \u0022CSE #06: moderate\u0022\n-;* V40 cse4         [V40,T24] (  0,  0   )    long  -\u003E  zero-ref    multi-def \u0022CSE #01: moderate\u0022\n-;* V41 cse5         [V41,T25] (  0,  0   )    long  -\u003E  zero-ref    multi-def \u0022CSE #02: moderate\u0022\n\u002B;  V38 cse2         [V38,T17] (  5,  1.50)     ref  -\u003E  r14         \u0022CSE #04: moderate\u0022\n\u002B;  V39 cse3         [V39,T19] (  3,  1.50)     ref  -\u003E  rsi         \u0022CSE #06: moderate\u0022\n\u002B;* V40 cse4         [V40,T23] (  0,  0   )    long  -\u003E  zero-ref    multi-def \u0022CSE #01: moderate\u0022\n\u002B;* V41 cse5         [V41,T24] (  0,  0   )    long  -\u003E  zero-ref    multi-def \u0022CSE #02: moderate\u0022\n ;\n ; Lcl frame size = 16\n \n@@ -72,8 \u002B72,8 @@ G_M35155_IG03:\n        mov      edi, 42\n        mov      esi, 0xD1FFAB1E\n        jmp      SHORT G_M35155_IG05\n-       align    [1 bytes for IG17]\n-\t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 1.25\n\u002B       align    [8 bytes for IG15]\n\u002B\t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 1.25\n G_M35155_IG04:\n        mov      edi, 56\n        mov      esi, 0xD1FFAB1E\n@@ -92,23 \u002B92,23 @@ G_M35155_IG06:\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.HashSet\u00601[System.__Canon]:FindItemIndex(System.__Canon):int:this\n        call     [rax]System.Collections.Generic.HashSet\u00601[System.__Canon]:FindItemIndex(System.__Canon):int:this\n        test     eax, eax\n-       jge      G_M35155_IG23\n-       mov      esi, dword ptr [r14\u002B0x18]\n-       cmp      esi, 6\n\u002B       jge      G_M35155_IG21\n\u002B       mov      edx, dword ptr [r14\u002B0x18]\n\u002B       cmp      edx, 6\n        je       SHORT G_M35155_IG10\n-       cmp      esi, 7\n\u002B       cmp      edx, 7\n        je       SHORT G_M35155_IG10\n-       cmp      esi, 4\n\u002B       cmp      edx, 4\n        je       SHORT G_M35155_IG08\n \t\t\t\t\t\t;; size=49 bbWeight=4 PerfScore 58.00\n G_M35155_IG07:\n-       cmp      esi, 5\n\u002B       cmp      edx, 5\n        jne      SHORT G_M35155_IG09\n \t\t\t\t\t\t;; size=5 bbWeight=2 PerfScore 2.50\n G_M35155_IG08:\n-       mov      rsi, 0xD1FFAB1E      ; data for System.Reflection.Emit.OpCodes:Leave\n-       mov      rsi, qword ptr [rsi]\n-       mov      qword ptr [rbx\u002B0x38], rsi\n\u002B       mov      rdx, 0xD1FFAB1E      ; data for System.Reflection.Emit.OpCodes:Leave\n\u002B       mov      rdx, qword ptr [rdx]\n\u002B       mov      qword ptr [rbx\u002B0x38], rdx\n \t\t\t\t\t\t;; size=17 bbWeight=2 PerfScore 6.50\n G_M35155_IG09:\n        mov      r14, gword ptr [r14\u002B0x10]\n@@ -120,48 \u002B120,30 @@ G_M35155_IG10:\n        mov      r14, gword ptr [rbx\u002B0x08]\n        test     r14, r14\n        je       SHORT G_M35155_IG11\n-       mov      rsi, 0xD1FFAB1E      ; \u0027System.Void\u0027\n-       cmp      gword ptr [r14\u002B0x10], rsi\n-       jne      G_M35155_IG24\n\u002B       mov      rdx, 0xD1FFAB1E      ; \u0027System.Void\u0027\n\u002B       cmp      gword ptr [r14\u002B0x10], rdx\n\u002B       jne      G_M35155_IG22\n \t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 3.75\n G_M35155_IG11:\n-       mov      r13, gword ptr [rbx\u002B0x18]\n-       mov      rsi, r13\n-       mov      edi, dword ptr [rsi\u002B0x28]\n-       sub      edi, dword ptr [rsi\u002B0x30]\n\u002B       mov      rsi, gword ptr [rbx\u002B0x18]\n\u002B       mov      rdx, rsi\n\u002B       mov      edi, dword ptr [rdx\u002B0x28]\n\u002B       sub      edi, dword ptr [rdx\u002B0x30]\n... diff truncated; middle omitted ...\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M35155_IG12\n-       lea      rsi, [rbp-0x28]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      r14, rax\n-       jmp      SHORT G_M35155_IG13\n-\t\t\t\t\t\t;; size=83 bbWeight=0.50 PerfScore 11.88\n-G_M35155_IG12:\n\u002B       jg       G_M35155_IG23\n\u002B       test     rsi, rsi\n\u002B       je       G_M35155_IG24\n        lea      rdx, [rbp-0x28]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Linq.Expressions.Compiler.LabelScopeInfo](System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.Compiler.LabelScopeInfo],byref):System.Linq.Expressions.Compiler.LabelScopeInfo\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        mov      r14, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M35155_IG13:\n        cmp      byte  ptr [rbp-0x28], 0\n-       je       G_M35155_IG27\n\u002B       je       G_M35155_IG25\n        mov      rdi, 0xD1FFAB1E      ; data for System.Linq.Expressions.Compiler.LabelInfo\u002B\u003C\u003Ec:\u003C\u003E9__19_0\n        mov      rcx, gword ptr [rdi]\n        test     rcx, rcx\n-       jne      SHORT G_M35155_IG14\n\u002B       jne      SHORT G_M35155_IG12\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[System.Linq.Expressions.Compiler.LabelScopeInfo,System.Linq.Expressions.Compiler.LabelScopeInfo]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n@@ -175,65 \u002B157,65 @@ G_M35155_IG13:\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rcx, r13\n-\t\t\t\t\t\t;; size=103 bbWeight=0.50 PerfScore 6.88\n-G_M35155_IG14:\n\u002B\t\t\t\t\t\t;; size=163 bbWeight=0.50 PerfScore 13.38\n\u002BG_M35155_IG12:\n        mov      rsi, r14\n        mov      rdx, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Dynamic.Utils.Helpers:CommonNode[System.Linq.Expressions.Compiler.LabelScopeInfo](System.Linq.Expressions.Compiler.LabelScopeInfo,System.Linq.Expressions.Compiler.LabelScopeInfo,System.Func\u00602[System.Linq.Expressions.Compiler.LabelScopeInfo,System.Linq.Expressions.Compiler.LabelScopeInfo]):System.Linq.Expressions.Compiler.LabelScopeInfo\n        mov      rax, 0xD1FFAB1E      ; code for System.Dynamic.Utils.Helpers:CommonNode[System.__Canon](System.__Canon,System.__Canon,System.Func\u00602[System.__Canon,System.__Canon]):System.__Canon\n        call     [rax]System.Dynamic.Utils.Helpers:CommonNode[System.__Canon](System.__Canon,System.__Canon,System.Func\u00602[System.__Canon,System.__Canon]):System.__Canon\n        cmp      byte  ptr [rbx\u002B0x31], 0\n-       je       SHORT G_M35155_IG15\n\u002B       je       SHORT G_M35155_IG13\n        mov      ecx, 42\n        mov      edx, 0xD1FFAB1E\n-       jmp      SHORT G_M35155_IG16\n\u002B       jmp      SHORT G_M35155_IG14\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 4.75\n-G_M35155_IG15:\n\u002BG_M35155_IG13:\n        mov      ecx, 56\n        mov      edx, 0xD1FFAB1E\n \t\t\t\t\t\t;; size=10 bbWeight=0.50 PerfScore 0.25\n-G_M35155_IG16:\n\u002BG_M35155_IG14:\n        mov      dword ptr [rbx\u002B0x38], ecx\n        mov      dword ptr [rbx\u002B0x3C], edx\n        cmp      r15, rax\n-       je       SHORT G_M35155_IG21\n\u002B       je       SHORT G_M35155_IG19\n \t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 1.62\n-G_M35155_IG17:\n\u002BG_M35155_IG15:\n        mov      ecx, dword ptr [r15\u002B0x18]\n        cmp      ecx, 6\n-       je       G_M35155_IG28\n\u002B       je       G_M35155_IG26\n        cmp      ecx, 7\n-       je       G_M35155_IG29\n\u002B       je       G_M35155_IG27\n        cmp      ecx, 4\n-       je       SHORT G_M35155_IG19\n\u002B       je       SHORT G_M35155_IG17\n \t\t\t\t\t\t;; size=27 bbWeight=4 PerfScore 23.00\n-G_M35155_IG18:\n\u002BG_M35155_IG16:\n        cmp      ecx, 5\n-       jne      SHORT G_M35155_IG20\n\u002B       jne      SHORT G_M35155_IG18\n \t\t\t\t\t\t;; size=5 bbWeight=2 PerfScore 2.50\n-G_M35155_IG19:\n\u002BG_M35155_IG17:\n        mov      rcx, 0xD1FFAB1E      ; data for System.Reflection.Emit.OpCodes:Leave\n        mov      rcx, qword ptr [rcx]\n        mov      qword ptr [rbx\u002B0x38], rcx\n \t\t\t\t\t\t;; size=17 bbWeight=2 PerfScore 6.50\n-G_M35155_IG20:\n\u002BG_M35155_IG18:\n        mov      r15, gword ptr [r15\u002B0x10]\n        cmp      r15, rax\n-       jne      SHORT G_M35155_IG17\n\u002B       jne      SHORT G_M35155_IG15\n \t\t\t\t\t\t;; size=9 bbWeight=4 PerfScore 13.00\n-G_M35155_IG21:\n\u002BG_M35155_IG19:\n        cmp      r14, rax\n-       je       SHORT G_M35155_IG23\n-       align    [1 bytes for IG22]\n\u002B       je       SHORT G_M35155_IG21\n\u002B       align    [1 bytes for IG20]\n \t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 0.75\n-G_M35155_IG22:\n\u002BG_M35155_IG20:\n        cmp      dword ptr [r14\u002B0x18], 3\n-       ja       G_M35155_IG30\n\u002B       ja       G_M35155_IG28\n        mov      r14, gword ptr [r14\u002B0x10]\n        cmp      r14, rax\n-       jne      SHORT G_M35155_IG22\n\u002B       jne      SHORT G_M35155_IG20\n \t\t\t\t\t\t;; size=20 bbWeight=4 PerfScore 25.00\n-G_M35155_IG23:\n\u002BG_M35155_IG21:\n        add      rsp, 16\n        pop      rbx\n        pop      r13\n@@ -242,7 \u002B224,7 @@ G_M35155_IG23:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n-G_M35155_IG24:\n\u002BG_M35155_IG22:\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Expressions.Error:NonLocalJumpWithValue(System.Object):System.InvalidOperationException\n        call     [rax]System.Linq.Expressions.Error:NonLocalJumpWithValue(System.Object):System.InvalidOperationException\n@@ -250,7 \u002B232,7 @@ G_M35155_IG24:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=25 bbWeight=0 PerfScore 0.00\n-G_M35155_IG25:\n\u002BG_M35155_IG23:\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Expressions.Error:AmbiguousJump(System.Object):System.InvalidOperationException\n        call     [rax]System.Linq.Expressions.Error:AmbiguousJump(System.Object):System.InvalidOperationException\n@@ -258,41 \u002B240,41 @@ G_M35155_IG25:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=25 bbWeight=0 PerfScore 0.00\n-G_M35155_IG26:\n\u002BG_M35155_IG24:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M35155_IG27:\n\u002BG_M35155_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M35155_IG28:\n\u002BG_M35155_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Expressions.Error:ControlCannotLeaveFinally():System.InvalidOperationException\n        call     [rax]System.Linq.Expressions.Error:ControlCannotLeaveFinally():System.InvalidOperationException\n        mov      rdi, rax\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=21 bbWeight=0 PerfScore 0.00\n-G_M35155_IG29:\n\u002BG_M35155_IG27:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Expressions.Error:ControlCannotLeaveFilterTest():System.InvalidOperationException\n        call     [rax]System.Linq.Expressions.Error:ControlCannotLeaveFilterTest():System.InvalidOperationException\n        mov      rdi, rax\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=21 bbWeight=0 PerfScore 0.00\n-G_M35155_IG30:\n\u002BG_M35155_IG28:\n        cmp      dword ptr [r14\u002B0x18], 8\n-       jne      SHORT G_M35155_IG31\n\u002B       jne      SHORT G_M35155_IG29\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Expressions.Error:ControlCannotEnterExpression():System.InvalidOperationException\n        call     [rax]System.Linq.Expressions.Error:ControlCannotEnterExpression():System.InvalidOperationException\n        mov      rdi, rax\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=28 bbWeight=0 PerfScore 0.00\n-G_M35155_IG31:\n\u002BG_M35155_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Expressions.Error:ControlCannotEnterTry():System.InvalidOperationException\n        call     [rax]System.Linq.Expressions.Error:ControlCannotEnterTry():System.InvalidOperationException\n        mov      rdi, rax\n@@ -300,5 \u002B282,5 @@ G_M35155_IG31:\n        int3     \n \t\t\t\t\t\t;; size=21 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 733, prolog size 23, PerfScore 200.12, instruction count 184, allocated bytes for code 733 (MethodHash=df4b76ac) for method System.Linq.Expressions.Compiler.LabelInfo:ValidateJump(System.Linq.Expressions.Compiler.LabelScopeInfo):this (FullOpts)\n\u002B; Total bytes of code 685, prolog size 23, PerfScore 192.50, instruction count 170, allocated bytes for code 685 (MethodHash=df4b76ac) for method System.Linq.Expressions.Compiler.LabelInfo:ValidateJump(System.Linq.Expressions.Compiler.LabelScopeInfo):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":733,"DiffBytes":685},{"Assembly":"System.Linq.Queryable.dasm","Method":"System.Linq.EnumerableRewriter:VisitBlock(System.Linq.Expressions.BlockExpression):System.Linq.Expressions.Expression:this (FullOpts)","Category":"improvement","Description":"456 -\u003E 404 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,20 \u002B10,20 @@\n ;\n ;  V00 this         [V00,T01] (  6,  4   )     ref  -\u003E  r15         this class-hnd single-def \u003CSystem.Linq.EnumerableRewriter\u003E\n ;  V01 arg1         [V01,T00] (  9,  6.50)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Linq.Expressions.BlockExpression\u003E\n-;  V02 loc0         [V02,T03] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Type\u003E\n-;  V03 loc1         [V03,T11] (  3,  1.50)     ref  -\u003E  r12         class-hnd single-def \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V04 loc2         [V04,T12] (  3,  1.50)     ref  -\u003E  [rbp-0x38]  class-hnd spill-single-def \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V02 loc0         [V02,T02] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Type\u003E\n\u002B;  V03 loc1         [V03,T09] (  3,  1.50)     ref  -\u003E  r12         class-hnd single-def \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V04 loc2         [V04,T10] (  3,  1.50)     ref  -\u003E  [rbp-0x38]  class-hnd spill-single-def \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V06 tmp1         [V06,T02] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V07 tmp2         [V07    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V06 tmp1         [V06,T03] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V07 tmp2         [V07    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V08 tmp3         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V09 tmp4         [V09,T04] (  4,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V10 tmp5         [V10,T05] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V11 tmp6         [V11,T07] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V12 tmp7         [V12,T08] (  2,  2   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V13 tmp8         [V13,T09] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V14 tmp9         [V14,T10] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V15 cse0         [V15,T06] (  4,  2   )    long  -\u003E  r13         \u0022CSE #02: moderate\u0022\n\u002B;  V09 tmp4         [V09,T11] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;* V10 tmp5         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V11 tmp6         [V11,T05] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V12 tmp7         [V12,T06] (  2,  2   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;  V13 tmp8         [V13,T07] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V14 tmp9         [V14,T08] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V15 cse0         [V15,T04] (  4,  2   )    long  -\u003E  r13         \u0022CSE #02: moderate\u0022\n ;\n ; Lcl frame size = 24\n \n@@ -50,7 \u002B50,7 @@ G_M29887_IG02:\n        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:IsAssignableFrom(System.Type):bool:this\n        call     [rax]System.RuntimeType:IsAssignableFrom(System.Type):bool:this\n        test     eax, eax\n-       je       G_M29887_IG09\n\u002B       je       G_M29887_IG08\n \t\t\t\t\t\t;; size=49 bbWeight=1 PerfScore 12.50\n G_M29887_IG03:\n        mov      rdi, rbx\n@@ -73,32 \u002B73,15 @@ G_M29887_IG03:\n        mov      gword ptr [rbp-0x38], rax\n        mov      rdi, rbx\n        call     [r13\u002B0x30]System.Linq.Expressions.BlockExpression:GetOrMakeExpressions():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]:this\n-       mov      rbx, rax\n-       test     rbx, rbx\n-       je       G_M29887_IG11\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M29887_IG04\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M29887_IG05\n-\t\t\t\t\t\t;; size=152 bbWeight=0.50 PerfScore 19.62\n-G_M29887_IG04:\n\u002B       je       G_M29887_IG10\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, rbx\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.Linq.Expressions.Expression](System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.Expression],byref):System.Linq.Expressions.Expression\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M29887_IG05:\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M29887_IG12\n\u002B       je       G_M29887_IG11\n        mov      rdi, rax\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x40]\n@@ -108,7 \u002B91,7 @@ G_M29887_IG05:\n        mov      rax, 0xD1FFAB1E      ; code for System.Type:op_Equality(System.Type,System.Type):bool\n        call     [rax]System.Type:op_Equality(System.Type,System.Type):bool\n        test     eax, eax\n-       jne      SHORT G_M29887_IG07\n\u002B       jne      SHORT G_M29887_IG06\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.EnumerableRewriter:GetEquivalentType(System.Type):System.Type:this\n@@ -116,11 \u002B99,13 @@ G_M29887_IG05:\n        mov      rdi, rax\n        mov      rsi, gword ptr [rbp-0x38]\n        mov      rdx, r12\n\u002B\t\t\t\t\t\t;; size=202 bbWeight=0.50 PerfScore 24.00\n\u002BG_M29887_IG04:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Expressions.Expression:Block(System.Type,System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.ParameterExpression],System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.Expression]):System.Linq.Expressions.BlockExpression\n        call     [rax]System.Linq.Expressions.Expression:Block(System.Type,System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.ParameterExpression],System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.Expression]):System.Linq.Expressions.BlockExpression\n        nop      \n-\t\t\t\t\t\t;; size=86 bbWeight=0.50 PerfScore 11.50\n-G_M29887_IG06:\n\u002B\t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 1.75\n\u002BG_M29887_IG05:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -130,14 \u002B115,14 @@ G_M29887_IG06:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M29887_IG07:\n\u002BG_M29887_IG06:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      rsi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Expressions.Expression:Block(System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.ParameterExpression],System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.Expression]):System.Linq.Expressions.BlockExpression\n        call     [rax]System.Linq.Expressions.Expression:Block(System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.ParameterExpression],System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.Expression]):System.Linq.Expressions.BlockExpression\n        nop      \n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 2.38\n-G_M29887_IG08:\n\u002BG_M29887_IG07:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -147,14 \u002B132,14 @@ G_M29887_IG08:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M29887_IG09:\n\u002BG_M29887_IG08:\n        mov      rdi, r15\n        mov      rsi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Expressions.ExpressionVisitor:VisitBlock(System.Linq.Expressions.BlockExpression):System.Linq.Expressions.Expression:this\n        call     [rax]System.Linq.Expressions.ExpressionVisitor:VisitBlock(System.Linq.Expressions.BlockExpression):System.Linq.Expressions.Expression:this\n        nop      \n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 2.00\n-G_M29887_IG10:\n\u002BG_M29887_IG09:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -164,17 \u002B149,17 @@ G_M29887_IG10:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M29887_IG11:\n\u002BG_M29887_IG10:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M29887_IG12:\n\u002BG_M29887_IG11:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 456, prolog size 19, PerfScore 63.75, instruction count 124, allocated bytes for code 456 (MethodHash=20dc8b40) for method System.Linq.EnumerableRewriter:VisitBlock(System.Linq.Expressions.BlockExpression):System.Linq.Expressions.Expression:this (FullOpts)\n\u002B; Total bytes of code 404, prolog size 19, PerfScore 56.25, instruction count 111, allocated bytes for code 404 (MethodHash=20dc8b40) for method System.Linq.EnumerableRewriter:VisitBlock(System.Linq.Expressions.BlockExpression):System.Linq.Expressions.Expression:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":456,"DiffBytes":404},{"Assembly":"System.Private.CoreLib.dasm","Method":"System.Reflection.RuntimeCustomAttributeData:Init(System.Runtime.CompilerServices.TypeForwardedToAttribute):this (FullOpts)","Category":"improvement","Description":"347 -\u003E 294 bytes (-53)","ExtraInfo":null,"Diff":"@@ -1,132 \u002B1,114 @@\n ; Assembly listing for method System.Reflection.RuntimeCustomAttributeData:Init(System.Runtime.CompilerServices.TypeForwardedToAttribute):this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; fully interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 4 single block inlinees; 5 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T03] (  5,  5   )     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Reflection.RuntimeCustomAttributeData\u003E\n ;  V01 arg1         [V01,T06] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Runtime.CompilerServices.TypeForwardedToAttribute\u003E\n ;* V02 loc0         [V02,T08] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CSystem.RuntimeType\u003E\n ;  V03 loc1         [V03,T02] (  3,  9   )     ref  -\u003E   r8         class-hnd exact single-def \u003CSystem.Type[]\u003E\n ;* V04 loc2         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CSystem.Reflection.CustomAttributeTypedArgument[]\u003E\n ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V06 tmp1         [V06,T00] (  3, 24   )     ref  -\u003E   r8         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Type[]\u003E\n ;* V07 tmp2         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.RuntimeType\u003E\n ;  V08 tmp3         [V08,T04] (  3,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Reflection.CustomAttributeTypedArgument[]\u003E\n ;* V09 tmp4         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.RuntimeType\u003E\n ;* V10 tmp5         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Reflection.CustomAttributeTypedArgument\u003E\n ;  V11 tmp6         [V11,T01] (  2,  8   )     int  -\u003E  rdi         \u0022Inline stloc first use temp\u0022\n ;* V12 tmp7         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Type\u003E\n-;  V13 tmp8         [V13,T07] (  3,  5   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Type\u003E\n-;  V14 tmp9         [V14,T10] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Object\u003E\n-;  V15 tmp10        [V15,T09] (  3,  2.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Enum\u003E\n\u002B;  V13 tmp8         [V13,T07] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Type\u003E\n\u002B;* V14 tmp9         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Object\u003E\n\u002B;* V15 tmp10        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Enum\u003E\n ;* V16 tmp11        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._value (fldOffset=0x0)\u0022 P-INDEP\n ;* V17 tmp12        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._argumentType (fldOffset=0x8)\u0022 P-INDEP\n ;  V18 tmp13        [V18,T05] (  3,  6   )   byref  -\u003E  r15         single-def \u0022BlockOp address local\u0022\n ;\n ; Lcl frame size = 8\n \n G_M26233_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x20]\n        mov      rbx, rdi\n        mov      r15, rsi\n \t\t\t\t\t\t;; size=18 bbWeight=4 PerfScore 24.00\n G_M26233_IG02:\n        mov      rdi, 0xD1FFAB1E      ; System.Type[]\n        mov      esi, 1\n        call     CORINFO_HELP_NEWARR_1_PTR\n        mov      r8, rax\n        mov      rdi, 0xD1FFAB1E      ; \u0027System.Type\u0027\n        mov      gword ptr [r8\u002B0x10], rdi\n        xor      edi, edi\n        cmp      gword ptr [r8\u002B8*rdi\u002B0x10], 0\n-       je       G_M26233_IG09\n\u002B       je       G_M26233_IG06\n \t\t\t\t\t\t;; size=51 bbWeight=4 PerfScore 25.00\n G_M26233_IG03:\n        mov      rdi, 0xD1FFAB1E      ; \u0027System.Runtime.CompilerServices.TypeForwardedToAttribute\u0027\n        mov      esi, 20\n        xor      rdx, rdx\n        mov      ecx, 3\n        xor      r9, r9\n        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this\n        call     [rax]System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this\n        mov      rsi, rax\n        lea      rdi, bword ptr [rbx\u002B0x08]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, 0xD1FFAB1E      ; System.Reflection.CustomAttributeTypedArgument[]\n        mov      esi, 1\n        call     CORINFO_HELP_NEWARR_1_VC\n        mov      r14, rax\n-       mov      r15, gword ptr [r15\u002B0x08]\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Enum\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M26233_IG05\n-\t\t\t\t\t\t;; size=106 bbWeight=1 PerfScore 15.00\n-G_M26233_IG04:\n-       mov      rdi, rax\n-       mov      rax, 0xD1FFAB1E      ; code for System.Enum:GetValue():System.Object:this\n-       call     [rax]System.Enum:GetValue():System.Object:this\n-       jmp      SHORT G_M26233_IG06\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.75\n-G_M26233_IG05:\n-       mov      rax, r15\n-\t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M26233_IG06:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n        lea      r15, bword ptr [r14\u002B0x10]\n        mov      rdi, r15\n-       mov      rsi, rax\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, 0xD1FFAB1E      ; \u0027System.Type\u0027\n        mov      gword ptr [r15\u002B0x08], rdi\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.Array:AsReadOnly[System.Reflection.CustomAttributeTypedArgument](System.Reflection.CustomAttributeTypedArgument[]):System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Reflection.CustomAttributeTypedArgument]\n        call     [rax]System.Array:AsReadOnly[System.Reflection.CustomAttributeTypedArgument](System.Reflection.CustomAttributeTypedArgument[]):System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Reflection.CustomAttributeTypedArgument]\n        mov      rsi, rax\n        lea      rdi, bword ptr [rbx\u002B0x28]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       SHORT G_M26233_IG10\n-\t\t\t\t\t\t;; size=71 bbWeight=1 PerfScore 11.75\n-G_M26233_IG07:\n\u002B       je       SHORT G_M26233_IG07\n\u002B\t\t\t\t\t\t;; size=144 bbWeight=1 PerfScore 21.50\n\u002BG_M26233_IG04:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Array\u002BEmptyArray\u00601[System.Reflection.CustomAttributeNamedArgument]:Value\n        mov      rsi, gword ptr [rdi]\n        lea      rdi, bword ptr [rbx\u002B0x30]\n        call     CORINFO_HELP_ASSIGN_REF\n        nop      \n \t\t\t\t\t\t;; size=23 bbWeight=1 PerfScore 4.00\n-G_M26233_IG08:\n\u002BG_M26233_IG05:\n        add      rsp, 8\n        pop      rbx\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M26233_IG09:\n\u002BG_M26233_IG06:\n        mov      rdi, 0xD1FFAB1E      ; \u0027types\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:Throw(System.String)\n        call     [rax]System.ArgumentNullException:Throw(System.String)\n        int3     \n \t\t\t\t\t\t;; size=23 bbWeight=0 PerfScore 0.00\n-G_M26233_IG10:\n\u002BG_M26233_IG07:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[System.Reflection.CustomAttributeNamedArgument]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      SHORT G_M26233_IG07\n\u002B       jmp      SHORT G_M26233_IG04\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 347, prolog size 18, PerfScore 85.88, instruction count 77, allocated bytes for code 347 (MethodHash=82939986) for method System.Reflection.RuntimeCustomAttributeData:Init(System.Runtime.CompilerServices.TypeForwardedToAttribute):this (FullOpts)\n\u002B; Total bytes of code 294, prolog size 18, PerfScore 77.75, instruction count 65, allocated bytes for code 294 (MethodHash=82939986) for method System.Reflection.RuntimeCustomAttributeData:Init(System.Runtime.CompilerServices.TypeForwardedToAttribute):this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":347,"DiffBytes":294},{"Assembly":"System.Private.CoreLib.dasm","Method":"System.Runtime.CompilerServices.AsyncHelpers\u002BValueTaskSourceContinuation\u002BValueTaskSourceContinuationResume:.cctor() (FullOpts)","Category":"same-size","Description":"23 -\u003E 23 bytes (0)","ExtraInfo":null,"Diff":"@@ -1,32 \u002B1,32 @@\n ; Assembly listing for method System.Runtime.CompilerServices.AsyncHelpers\u002BValueTaskSourceContinuation\u002BValueTaskSourceContinuationResume:.cctor() (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rsp based frame\n ; partially interruptible\n ; No PGO data\n ; Final local variable assignments\n ;\n ;* V00 loc0         [V00    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u003CSystem.Runtime.CompilerServices.ResumeInfo\u003E\n ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V02 tmp1         [V02    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022field V00.Resume (fldOffset=0x0)\u0022 P-INDEP\n ;* V03 tmp2         [V03    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022field V00.DiagnosticIP (fldOffset=0x8)\u0022 P-INDEP\n ;  V04 cse0         [V04,T00] (  2,  2   )    long  -\u003E  rax         \u0022CSE #01: aggressive\u0022\n ;\n ; Lcl frame size = 0\n \n G_M58358_IG01:\n \t\t\t\t\t\t;; size=0 bbWeight=1 PerfScore 0.00\n G_M58358_IG02:\n        mov      rax, 0xD1FFAB1E      ; data for System.Runtime.CompilerServices.AsyncHelpers\u002BValueTaskSourceContinuation\u002BValueTaskSourceContinuationResume:ResumeInfo\n        vmovsd   xmm0, qword ptr [reloc @RWD00]\n        vmovups  xmmword ptr [rax], xmm0\n \t\t\t\t\t\t;; size=22 bbWeight=1 PerfScore 3.25\n G_M58358_IG03:\n        ret      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 1.00\n-RWD00  \tdq\t00007907D4741230h\n\u002BRWD00  \tdq\t000076F765341230h\n \n \n ; Total bytes of code 23, prolog size 0, PerfScore 4.25, instruction count 4, allocated bytes for code 23 (MethodHash=bcd21c09) for method System.Runtime.CompilerServices.AsyncHelpers\u002BValueTaskSourceContinuation\u002BValueTaskSourceContinuationResume:.cctor() (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":23,"DiffBytes":23},{"Assembly":"System.Reflection.MetadataLoadContext.dasm","Method":"System.Reflection.TypeLoading.CustomAttributeHelpers:CloneForApiReturn(System.Reflection.CustomAttributeTypedArgument):System.Reflection.CustomAttributeTypedArgument (FullOpts)","Category":"improvement","Description":"540 -\u003E 487 bytes (-53)","ExtraInfo":null,"Diff":"@@ -9,7 \u002B9,7 @@\n ; Final local variable assignments\n ;\n ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret ld-addr-op single-def \u003CSystem.Reflection.CustomAttributeTypedArgument\u003E\n-;  V01 loc0         [V01,T12] (  3,  2   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Type\u003E\n\u002B;  V01 loc0         [V01,T11] (  3,  2   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Type\u003E\n ;  V02 loc1         [V02,T07] (  5,  6.50)     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Collections.Generic.IList\u00601[System.Reflection.CustomAttributeTypedArgument]\u003E\n ;  V03 loc2         [V03,T06] (  7,  6.50)     int  -\u003E  rbx         single-def\n ;  V04 loc3         [V04,T08] (  7,  6.04)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Reflection.CustomAttributeTypedArgument[]\u003E\n@@ -20,9 \u002B20,9 @@\n ;* V09 tmp3         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CSystem.Reflection.CustomAttributeTypedArgument\u003E\n ;* V10 tmp4         [V10    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.Reflection.CustomAttributeTypedArgument\u003E\n ;* V11 tmp5         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Reflection.CustomAttributeTypedArgument\u003E\n-;  V12 tmp6         [V12,T11] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Reflection.CustomAttributeTypedArgument]\u003E\n-;  V13 tmp7         [V13,T14] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Object\u003E\n-;  V14 tmp8         [V14,T15] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Enum\u003E\n\u002B;  V12 tmp6         [V12,T12] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Reflection.CustomAttributeTypedArgument]\u003E\n\u002B;* V13 tmp7         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Object\u003E\n\u002B;* V14 tmp8         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Enum\u003E\n ;  V15 tmp9         [V15,T09] (  3,  2.50)     ref  -\u003E  rbx         single-def \u0022field V00._value (fldOffset=0x0)\u0022 P-INDEP\n ;  V16 tmp10        [V16,T10] (  3,  2.50)     ref  -\u003E  r15         single-def \u0022field V00._argumentType (fldOffset=0x8)\u0022 P-INDEP\n ;  V17 tmp11        [V17,T02] (  4,  8   )     ref  -\u003E  rax         \u0022field V09._value (fldOffset=0x0)\u0022 P-INDEP\n@@ -55,7 \u002B55,7 @@ G_M657_IG02:\n        call     [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE\n        mov      r13, rax\n        test     r13, r13\n-       je       G_M657_IG12\n\u002B       je       G_M657_IG10\n \t\t\t\t\t\t;; size=40 bbWeight=1 PerfScore 5.50\n G_M657_IG03:\n        mov      rdi, r13\n@@ -73,7 \u002B73,7 @@ G_M657_IG03:\n G_M657_IG04:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M657_IG15\n\u002B       je       G_M657_IG13\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n G_M657_IG05:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Array\u002BEmptyArray\u00601[System.Reflection.CustomAttributeTypedArgument]:Value\n@@ -84,9 \u002B84,9 @@ G_M657_IG06:\n        test     ebx, ebx\n        jle      SHORT G_M657_IG08\n        test     r15, r15\n-       je       G_M657_IG14\n\u002B       je       G_M657_IG12\n        cmp      dword ptr [r15\u002B0x08], ebx\n-       jl       G_M657_IG14\n\u002B       jl       G_M657_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=0.50 PerfScore 2.88\n G_M657_IG07:\n        mov      rdi, r13\n@@ -117,26 \u002B117,24 @@ G_M657_IG08:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.Array:AsReadOnly[System.Reflection.CustomAttributeTypedArgument](System.Reflection.CustomAttributeTypedArgument[]):System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Reflection.CustomAttributeTypedArgument]\n        call     [rax]System.Array:AsReadOnly[System.Reflection.CustomAttributeTypedArgument](System.Reflection.CustomAttributeTypedArgument[]):System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Reflection.CustomAttributeTypedArgument]\n-       mov      rbx, rax\n        test     r14, r14\n-       je       G_M657_IG16\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Enum\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M657_IG09\n-       mov      rdi, rax\n-       mov      rax, 0xD1FFAB1E      ; code for System.Enum:GetValue():System.Object:this\n-       call     [rax]System.Enum:GetValue():System.Object:this\n-       jmp      SHORT G_M657_IG10\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 7.75\n-G_M657_IG09:\n-       mov      rax, rbx\n-\t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M657_IG10:\n\u002B       je       G_M657_IG14\n        mov      rdx, r14\n-\t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n\u002B\t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.50\n\u002BG_M657_IG09:\n\u002B       add      rsp, 24\n\u002B       pop      rbx\n\u002B       pop      r12\n\u002B       pop      r13\n\u002B       pop      r14\n\u002B       pop      r15\n\u002B       pop      rbp\n\u002B       ret      \n\u002B\t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n\u002BG_M657_IG10:\n\u002B       mov      rax, rbx\n\u002B       mov      rdx, r15\n\u002B\t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 0.25\n G_M657_IG11:\n        add      rsp, 24\n        pop      rbx\n@@ -148,20 \u002B146,6 @@ G_M657_IG11:\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n G_M657_IG12:\n-       mov      rax, rbx\n-       mov      rdx, r15\n-\t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 0.25\n-G_M657_IG13:\n-       add      rsp, 24\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       ret      \n-\t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M657_IG14:\n        mov      rdi, r13\n        mov      esi, r12d\n        mov      r11, 0xD1FFAB1E      ; function address\n@@ -172,7 \u002B156,7 @@ G_M657_IG14:\n        call     [rax]System.Reflection.TypeLoading.CustomAttributeHelpers:CloneForApiReturn(System.Reflection.CustomAttributeTypedArgument):System.Reflection.CustomAttributeTypedArgument\n        mov      gword ptr [rbp-0x30], rdx\n        cmp      r12d, dword ptr [r15\u002B0x08]\n-       jae      SHORT G_M657_IG17\n\u002B       jae      SHORT G_M657_IG15\n        mov      edi, r12d\n        shl      rdi, 4\n        lea      rdi, bword ptr [r15\u002Brdi\u002B0x10]\n@@ -187,25 \u002B171,25 @@ G_M657_IG14:\n        call     CORINFO_HELP_ASSIGN_REF\n        inc      r12d\n        cmp      r12d, ebx\n-       jl       SHORT G_M657_IG14\n\u002B       jl       SHORT G_M657_IG12\n        jmp      G_M657_IG08\n \t\t\t\t\t\t;; size=107 bbWeight=0.04 PerfScore 0.92\n-G_M657_IG15:\n\u002BG_M657_IG13:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[System.Reflection.CustomAttributeTypedArgument]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M657_IG05\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M657_IG16:\n\u002BG_M657_IG14:\n        mov      rdi, 0xD1FFAB1E      ; \u0027argumentType\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:Throw(System.String)\n        call     [rax]System.ArgumentNullException:Throw(System.String)\n        int3     \n \t\t\t\t\t\t;; size=23 bbWeight=0 PerfScore 0.00\n-G_M657_IG17:\n\u002BG_M657_IG15:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 540, prolog size 19, PerfScore 106.46, instruction count 137, allocated bytes for code 540 (MethodHash=0e24fd6e) for method System.Reflection.TypeLoading.CustomAttributeHelpers:CloneForApiReturn(System.Reflection.CustomAttributeTypedArgument):System.Reflection.CustomAttributeTypedArgument (FullOpts)\n\u002B; Total bytes of code 487, prolog size 19, PerfScore 100.96, instruction count 125, allocated bytes for code 487 (MethodHash=0e24fd6e) for method System.Reflection.TypeLoading.CustomAttributeHelpers:CloneForApiReturn(System.Reflection.CustomAttributeTypedArgument):System.Reflection.CustomAttributeTypedArgument (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":540,"DiffBytes":487},{"Assembly":"System.Reflection.MetadataLoadContext.dasm","Method":"System.Reflection.TypeLoading.RoConstructedGenericType:GetTypeCodeImpl():int:this (FullOpts)","Category":"same-size","Description":"25 -\u003E 25 bytes (0)","ExtraInfo":null,"Diff":"@@ -1,49 \u002B1,39 @@\n ; Assembly listing for method System.Reflection.TypeLoading.RoConstructedGenericType:GetTypeCodeImpl():int:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rsp based frame\n ; fully interruptible\n ; No PGO data\n-; 0 inlinees with PGO data; 4 single block inlinees; 3 inlinees without PGO data\n\u002B; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T00] (  3,  3   )     ref  -\u003E  rdi         this class-hnd single-def \u003CSystem.Reflection.TypeLoading.RoConstructedGenericType\u003E\n ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V02 tmp1         [V02    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V03 tmp2         [V03,T01] (  3,  5   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Reflection.TypeLoading.RoDefinitionType\u003E\n-;* V04 tmp3         [V04    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling qmarkNull\u0022\n-;* V05 tmp4         [V05    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V06 tmp5         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.RuntimeType\u003E\n-;* V07 tmp6         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.RuntimeType\u003E\n-;* V08 tmp7         [V08    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline stloc first use temp\u0022 \u003CSystem.Runtime.CompilerServices.TypeHandle\u003E\n-;* V09 tmp8         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.RuntimeType\u003E\n-;* V10 tmp9         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.TypeHandle\u003E\n-;* V11 tmp10        [V11    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;* V12 tmp11        [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022field V08.m_asTAddr (fldOffset=0x0)\u0022 P-INDEP\n-;* V13 tmp12        [V13    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022field V10.m_asTAddr (fldOffset=0x0)\u0022 P-INDEP\n ;\n ; Lcl frame size = 0\n \n G_M39517_IG01:\n \t\t\t\t\t\t;; size=0 bbWeight=1 PerfScore 0.00\n G_M39517_IG02:\n        mov      rdi, gword ptr [rdi\u002B0x60]\n        test     rdi, rdi\n        je       SHORT G_M39517_IG05\n \t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.25\n G_M39517_IG03:\n        mov      rax, 0xD1FFAB1E      ; code for System.Reflection.TypeLoading.RoDefinitionType:GetTypeCodeImpl():int:this\n \t\t\t\t\t\t;; size=10 bbWeight=0.50 PerfScore 0.12\n G_M39517_IG04:\n        tail.jmp [rax]System.Reflection.TypeLoading.RoDefinitionType:GetTypeCodeImpl():int:this\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 1.00\n G_M39517_IG05:\n        xor      eax, eax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n G_M39517_IG06:\n        ret      \n \t\t\t\t\t\t;; size=1 bbWeight=0.50 PerfScore 0.50\n \n ; Total bytes of code 25, prolog size 0, PerfScore 5.00, instruction count 7, allocated bytes for code 25 (MethodHash=02be65a2) for method System.Reflection.TypeLoading.RoConstructedGenericType:GetTypeCodeImpl():int:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":25,"DiffBytes":25},{"Assembly":"Testcontainers.dasm","Method":"DotNet.Testcontainers.Clients.TestcontainersClient\u002B\u003CRunAsync\u003Ed__41:MoveNext():this (FullOpts)","Category":"same-size","Description":"2,496 -\u003E 2,496 bytes (0)","ExtraInfo":null,"Diff":"@@ -874,7 \u002B874,7 @@ RWD00  \tdd\tG_M43249_IG30 - G_M43249_IG02\n        \tdd\tG_M43249_IG13 - G_M43249_IG02\n        \tdd\tG_M43249_IG10 - G_M43249_IG02\n        \tdd\tG_M43249_IG05 - G_M43249_IG02\n-RWD32  \tdq\t4141ACDAE6D222F2h, 75915F6AF0C61BAEh\n\u002BRWD32  \tdq\t4DE6129260EEACB6h, 33A13610371969B0h\n \n \n ; Total bytes of code 2496, prolog size 53, PerfScore 531.33, instruction count 524, allocated bytes for code 2498 (MethodHash=e48b570e) for method DotNet.Testcontainers.Clients.TestcontainersClient\u002B\u003CRunAsync\u003Ed__41:MoveNext():this (FullOpts)","Truncated":true,"BaseBytes":2496,"DiffBytes":2496},{"Assembly":"Xunit.SkippableFact.dasm","Method":"Xunit.Sdk.TestMethodExtensions:GetPlatformSkipReason(Xunit.Abstractions.ITestMethod):System.String (FullOpts)","Category":"improvement","Description":"999 -\u003E 898 bytes (-101)","ExtraInfo":null,"Diff":"@@ -8,50 \u002B8,50 @@\n ; 0 inlinees with PGO data; 18 single block inlinees; 8 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T03] (  4,  3.50)     ref  -\u003E  rbx         class-hnd single-def \u003CXunit.Abstractions.ITestMethod\u003E\n\u002B;  V00 arg0         [V00,T02] (  4,  3.50)     ref  -\u003E  rbx         class-hnd single-def \u003CXunit.Abstractions.ITestMethod\u003E\n ;  V01 loc0         [V01,T10] (  3,  2.50)     ref  -\u003E  rax         class-hnd single-def \u003CSystem.String\u003E\n-;  V02 loc1         [V02,T02] ( 12,  5.75)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Collections.Generic.HashSet\u00601[System.String]\u003E\n\u002B;  V02 loc1         [V02,T03] ( 10,  4.75)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Collections.Generic.HashSet\u00601[System.String]\u003E\n ;* V03 loc2         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.String\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T06] (  2,  4   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.String,bool]\u003E\n ;  V06 tmp2         [V06,T07] (  2,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.String]\u003E\n ;* V07 tmp3         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V08 tmp4         [V08,T08] (  4,  3.50)     ref  -\u003E  rdx        \n-;  V09 tmp5         [V09,T16] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.String,bool]\u003E\n\u002B;  V09 tmp5         [V09,T14] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.String,bool]\u003E\n ;* V10 tmp6         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V11 tmp7         [V11,T13] (  4,  2   )     ref  -\u003E  rdx        \n-;  V12 tmp8         [V12,T22] (  3,  1.50)     ref  -\u003E  rsi        \n-;  V13 tmp9         [V13,T17] (  2,  2   )     ref  -\u003E  r15         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V12 tmp8         [V12,T20] (  3,  1.50)     ref  -\u003E  rsi        \n\u002B;  V13 tmp9         [V13,T15] (  2,  2   )     ref  -\u003E  r15         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n ;  V14 tmp10        [V14,T00] (  7,  7   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.String,bool]\u003E\n ;  V15 tmp11        [V15,T01] (  7,  7   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.String,bool]\u003E\n ;* V16 tmp12        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.String]\u003E\n ;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[System.String,bool]\u003E\n ;  V18 tmp14        [V18    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V19 tmp15        [V19,T23] (  3,  1.50)     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.String]\u003E\n\u002B;  V19 tmp15        [V19,T21] (  3,  1.50)     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.String]\u003E\n ;  V20 tmp16        [V20,T04] (  4,  4   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Enumerable\u002BReverseIterator\u00601[System.String]\u003E\n-;* V21 tmp17        [V21,T31] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V22 tmp18        [V22,T24] (  3,  1.50)     ref  -\u003E  rdi         class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String[]\u003E\n-;  V23 tmp19        [V23,T25] (  3,  1.50)     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.String]\u003E\n\u002B;* V21 tmp17        [V21,T29] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V22 tmp18        [V22,T22] (  3,  1.50)     ref  -\u003E  rdi         class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String[]\u003E\n\u002B;  V23 tmp19        [V23,T23] (  3,  1.50)     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.String]\u003E\n ;  V24 tmp20        [V24,T09] (  4,  3.50)     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.__Canon]\u003E\n ;  V25 tmp21        [V25,T05] (  4,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Enumerable\u002BReverseIterator\u00601[System.String]\u003E\n-;* V26 tmp22        [V26,T32] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V27 tmp23        [V27,T26] (  3,  1.50)     ref  -\u003E  rdi         class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String[]\u003E\n-;  V28 tmp24        [V28    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;* V26 tmp22        [V26,T30] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V27 tmp23        [V27,T24] (  3,  1.50)     ref  -\u003E  rdi         class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String[]\u003E\n\u002B;  V28 tmp24        [V28    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V29 tmp25        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V30 tmp26        [V30,T27] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n-;  V31 tmp27        [V31,T14] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n-;  V32 tmp28        [V32    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp26        [V30,T25] (  2,  1   )     ref  -\u003E  rdx         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n\u002B;* V31 tmp27        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n\u002B;  V32 tmp28        [V32    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V33 tmp29        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V34 tmp30        [V34,T28] (  3,  1.50)     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n-;  V35 tmp31        [V35,T15] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n\u002B;  V34 tmp30        [V34,T26] (  2,  1   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n\u002B;* V35 tmp31        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n ;  V36 rat0         [V36,T11] (  4,  2.25)     ref  -\u003E  rdi         \u0022replacement local\u0022\n-;  V37 rat1         [V37,T29] (  2,  1   )    long  -\u003E  rax         \u0022CSE for expectedClsNode\u0022\n\u002B;  V37 rat1         [V37,T27] (  2,  1   )    long  -\u003E  rax         \u0022CSE for expectedClsNode\u0022\n ;  V38 rat2         [V38,T12] (  4,  2.25)     ref  -\u003E  rdi         \u0022replacement local\u0022\n-;  V39 rat3         [V39,T30] (  2,  1   )    long  -\u003E  rax         \u0022CSE for expectedClsNode\u0022\n-;  V40 rat4         [V40,T18] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V41 rat5         [V41,T19] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V42 rat6         [V42,T20] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V43 rat7         [V43,T21] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V39 rat3         [V39,T28] (  2,  1   )    long  -\u003E  rax         \u0022CSE for expectedClsNode\u0022\n\u002B;  V40 rat4         [V40,T16] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V41 rat5         [V41,T17] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V42 rat6         [V42,T18] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V43 rat7         [V43,T19] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 24\n \n@@ -102,7 \u002B102,7 @@ G_M4205_IG04:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirst[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Func\u00602[System.__Canon,bool],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirst[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Func\u00602[System.__Canon,bool],byref):System.__Canon\n        test     rax, rax\n-       jne      G_M4205_IG27\n\u002B       jne      G_M4205_IG23\n \t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 5.50\n G_M4205_IG05:\n        mov      rdi, rbx\n@@ -112,7 \u002B112,7 @@ G_M4205_IG05:\n        mov      rbx, rax\n        mov      edi, dword ptr [rbx\u002B0x28]\n        sub      edi, dword ptr [rbx\u002B0x30]\n-       je       G_M4205_IG25\n\u002B       je       G_M4205_IG21\n        mov      rdi, 0xD1FFAB1E      ; data for Xunit.Sdk.TestMethodExtensions\u002B\u003C\u003EO:\u003C0\u003E__MatchesCurrentPlatform\n... diff truncated; middle omitted ...\n        mov      rsi, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M4205_IG08:\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M4205_IG30\n-       jmp      G_M4205_IG23\n-\t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.00\n-G_M4205_IG09:\n\u002B       je       G_M4205_IG26\n\u002B       jmp      G_M4205_IG19\n\u002B\t\t\t\t\t\t;; size=91 bbWeight=0.50 PerfScore 9.38\n\u002BG_M4205_IG07:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; System.String[]\n        cmp      qword ptr [rdi], rax\n-       je       SHORT G_M4205_IG11\n\u002B       je       SHORT G_M4205_IG09\n \t\t\t\t\t\t;; size=18 bbWeight=0.25 PerfScore 0.88\n-G_M4205_IG10:\n\u002BG_M4205_IG08:\n        xor      rdi, rdi\n \t\t\t\t\t\t;; size=2 bbWeight=0.12 PerfScore 0.03\n-G_M4205_IG11:\n\u002BG_M4205_IG09:\n        test     rdi, rdi\n-       je       SHORT G_M4205_IG12\n\u002B       je       SHORT G_M4205_IG10\n        cmp      dword ptr [rdi\u002B0x08], 0\n-       je       SHORT G_M4205_IG13\n\u002B       je       SHORT G_M4205_IG11\n \t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 2.12\n-G_M4205_IG12:\n\u002BG_M4205_IG10:\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BReverseIterator\u00601[System.String]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -199,37 \u002B182,37 @@ G_M4205_IG12:\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rsi, r15\n-       jmp      SHORT G_M4205_IG14\n\u002B       jmp      SHORT G_M4205_IG12\n \t\t\t\t\t\t;; size=68 bbWeight=0.50 PerfScore 6.12\n-G_M4205_IG13:\n\u002BG_M4205_IG11:\n        mov      rsi, 0xD1FFAB1E      ; const ptr\n        mov      rsi, gword ptr [rsi]\n \t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 1.12\n-G_M4205_IG14:\n\u002BG_M4205_IG12:\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:Skip[System.String](System.Collections.Generic.IEnumerable\u00601[System.String],int):System.Collections.Generic.IEnumerable\u00601[System.String]\n        mov      edx, 1\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:Skip[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],int):System.Collections.Generic.IEnumerable\u00601[System.__Canon]\n        call     [rax]System.Linq.Enumerable:Skip[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],int):System.Collections.Generic.IEnumerable\u00601[System.__Canon]\n        mov      r15, rax\n        test     r15, r15\n-       je       G_M4205_IG29\n\u002B       je       G_M4205_IG25\n \t\t\t\t\t\t;; size=39 bbWeight=0.50 PerfScore 2.62\n-G_M4205_IG15:\n\u002BG_M4205_IG13:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; System.String[]\n        cmp      qword ptr [rdi], rax\n-       je       SHORT G_M4205_IG17\n\u002B       je       SHORT G_M4205_IG15\n \t\t\t\t\t\t;; size=18 bbWeight=0.25 PerfScore 0.88\n-G_M4205_IG16:\n\u002BG_M4205_IG14:\n        xor      rdi, rdi\n \t\t\t\t\t\t;; size=2 bbWeight=0.12 PerfScore 0.03\n-G_M4205_IG17:\n\u002BG_M4205_IG15:\n        test     rdi, rdi\n-       je       SHORT G_M4205_IG18\n\u002B       je       SHORT G_M4205_IG16\n        cmp      dword ptr [rdi\u002B0x08], 0\n-       je       SHORT G_M4205_IG19\n\u002B       je       SHORT G_M4205_IG17\n \t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 2.12\n-G_M4205_IG18:\n\u002BG_M4205_IG16:\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BReverseIterator\u00601[System.String]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -243,53 \u002B226,63 @@ G_M4205_IG18:\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rsi, r14\n-       jmp      SHORT G_M4205_IG20\n\u002B       jmp      SHORT G_M4205_IG18\n \t\t\t\t\t\t;; size=68 bbWeight=0.50 PerfScore 6.12\n-G_M4205_IG19:\n\u002BG_M4205_IG17:\n        mov      rsi, 0xD1FFAB1E      ; const ptr\n        mov      rsi, gword ptr [rsi]\n \t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 1.12\n-G_M4205_IG20:\n\u002BG_M4205_IG18:\n        mov      rdi, 0xD1FFAB1E      ; \u0027, \u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Join(System.String,System.Collections.Generic.IEnumerable\u00601[System.String]):System.String\n        call     [rax]System.String:Join(System.String,System.Collections.Generic.IEnumerable\u00601[System.String]):System.String\n        mov      r15, rax\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.String]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M4205_IG21\n-       lea      rsi, [rbp-0x28]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M4205_IG22\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 9.25\n-G_M4205_IG21:\n        lea      rdx, [rbp-0x28]\n        mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.String](System.Collections.Generic.IEnumerable\u00601[System.String],byref):System.String\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M4205_IG22:\n-       cmp      byte  ptr [rbp-0x28], 0\n-       je       G_M4205_IG30\n-       mov      rdi, r15\n        mov      rdx, rax\n\u002B       cmp      byte  ptr [rbp-0x28], 0\n\u002B       je       G_M4205_IG26\n\u002B       mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; \u0027 and \u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Concat(System.String,System.String,System.String):System.String\n        call     [rax]System.String:Concat(System.String,System.String,System.String):System.String\n        mov      rsi, rax\n-\t\t\t\t\t\t;; size=41 bbWeight=0.50 PerfScore 3.12\n-G_M4205_IG23:\n\u002B\t\t\t\t\t\t;; size=95 bbWeight=0.50 PerfScore 7.12\n\u002BG_M4205_IG19:\n        mov      rdi, 0xD1FFAB1E      ; \u0027Only supported on \u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Concat(System.String,System.String):System.String\n        call     [rax]System.String:Concat(System.String,System.String):System.String\n        nop      \n \t\t\t\t\t\t;; size=23 bbWeight=0.50 PerfScore 1.88\n\u002BG_M4205_IG20:\n\u002B       add      rsp, 24\n\u002B       pop      rbx\n\u002B       pop      r14\n\u002B       pop      r15\n\u002B       pop      rbp\n\u002B       ret      \n\u002B\t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 1.62\n\u002BG_M4205_IG21:\n\u002B       xor      rax, rax\n\u002B\t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n\u002BG_M4205_IG22:\n\u002B       add      rsp, 24\n\u002B       pop      rbx\n\u002B       pop      r14\n\u002B       pop      r15\n\u002B       pop      rbp\n\u002B       ret      \n\u002B\t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 1.62\n\u002BG_M4205_IG23:\n\u002B       mov      rsi, rax\n\u002B       mov      rdi, 0xD1FFAB1E      ; \u0027Unsupported on \u0027\n\u002B       mov      rax, 0xD1FFAB1E      ; code for System.String:Concat(System.String,System.String):System.String\n\u002B       call     [rax]System.String:Concat(System.String,System.String):System.String\n\u002B       nop      \n\u002B\t\t\t\t\t\t;; size=26 bbWeight=0.50 PerfScore 2.00\n G_M4205_IG24:\n        add      rsp, 24\n        pop      rbx\n@@ -299,42 \u002B292,16 @@ G_M4205_IG24:\n        ret      \n \t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 1.62\n G_M4205_IG25:\n-       xor      rax, rax\n-\t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M4205_IG26:\n-       add      rsp, 24\n-       pop      rbx\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       ret      \n-\t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 1.62\n-G_M4205_IG27:\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; \u0027Unsupported on \u0027\n-       mov      rax, 0xD1FFAB1E      ; code for System.String:Concat(System.String,System.String):System.String\n-       call     [rax]System.String:Concat(System.String,System.String):System.String\n-       nop      \n-\t\t\t\t\t\t;; size=26 bbWeight=0.50 PerfScore 2.00\n-G_M4205_IG28:\n-       add      rsp, 24\n-       pop      rbx\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       ret      \n-\t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 1.62\n-G_M4205_IG29:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M4205_IG30:\n\u002BG_M4205_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 999, prolog size 31, PerfScore 97.77, instruction count 220, allocated bytes for code 999 (MethodHash=5a62ef92) for method Xunit.Sdk.TestMethodExtensions:GetPlatformSkipReason(Xunit.Abstractions.ITestMethod):System.String (FullOpts)\n\u002B; Total bytes of code 898, prolog size 31, PerfScore 82.90, instruction count 195, allocated bytes for code 898 (MethodHash=5a62ef92) for method Xunit.Sdk.TestMethodExtensions:GetPlatformSkipReason(Xunit.Abstractions.ITestMethod):System.String (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":999,"DiffBytes":898},{"Assembly":"ZstdSharp.dasm","Method":"ZstdSharp.Unsafe.Methods:ZSTDMT_serialState_reset(ptr,ptr,ZstdSharp.Unsafe.ZSTD_CCtx_params_s,nuint,ptr,nuint,int):int (FullOpts)","Category":"same-size","Description":"1,266 -\u003E 1,266 bytes (0)","ExtraInfo":null,"Diff":"@@ -493,7 \u002B493,7 @@ G_M47366_IG37:\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_HandleIsNotInitialized()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-RWD00  \tdq\t00007FF4AC6774CAh, 00007FF4AC6774C8h, 00007FF4AC6774C8h, 0000000200000002h\n\u002BRWD00  \tdq\t000072B6C22754CAh, 000072B6C22754C8h, 000072B6C22754C8h, 0000000200000002h\n \n \n ; Total bytes of code 1266, prolog size 25, PerfScore 194.42, instruction count 289, allocated bytes for code 1266 (MethodHash=d59846f9) for method ZstdSharp.Unsafe.Methods:ZSTDMT_serialState_reset(ptr,ptr,ZstdSharp.Unsafe.ZSTD_CCtx_params_s,nuint,ptr,nuint,int):int (FullOpts)","Truncated":true,"BaseBytes":1266,"DiffBytes":1266},{"Assembly":"protobuf-net.dasm","Method":"ProtoBuf.Meta.AutoCompileTypeModel:GetSchema(ProtoBuf.Meta.SchemaGenerationOptions):System.String:this (FullOpts)","Category":"improvement","Description":"256 -\u003E 186 bytes (-70)","ExtraInfo":null,"Diff":"@@ -1,125 \u002B1,105 @@\n ; Assembly listing for method ProtoBuf.Meta.AutoCompileTypeModel:GetSchema(ProtoBuf.Meta.SchemaGenerationOptions):System.String:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 2 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;* V00 this         [V00    ] (  0,  0   )     ref  -\u003E  zero-ref    this class-hnd single-def \u003CProtoBuf.Meta.AutoCompileTypeModel\u003E\n ;  V01 arg1         [V01,T00] (  5,  4.50)     ref  -\u003E  rbx         class-hnd single-def \u003CProtoBuf.Meta.SchemaGenerationOptions\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V03 tmp1         [V03,T03] (  4,  3   )     ref  -\u003E  rdi        \n\u002B;  V03 tmp1         [V03,T02] (  4,  3   )     ref  -\u003E  rdi        \n ;  V04 tmp2         [V04,T01] (  3,  5   )     ref  -\u003E  rdi         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Type]\u003E\n ;* V05 tmp3         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V06 tmp4         [V06,T08] (  2,  1   )     int  -\u003E  rdi        \n\u002B;  V06 tmp4         [V06,T07] (  2,  1   )     int  -\u003E  rdi        \n ;* V07 tmp5         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.__Canon]\u003E\n-;  V08 tmp6         [V08,T02] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Type]\u003E\n-;  V09 tmp7         [V09    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V08 tmp6         [V08,T04] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Type]\u003E\n\u002B;  V09 tmp7         [V09    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x10]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V10 tmp8         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V11 tmp9         [V11,T06] (  3,  2   )     ref  -\u003E  rdi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Type\u003E\n-;  V12 tmp10        [V12,T05] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Type]\u003E\n-;  V13 tmp11        [V13,T04] (  4,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CProtoBuf.Meta.TypeModel\u003E\n\u002B;  V11 tmp9         [V11,T06] (  2,  1.50)     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Type\u003E\n\u002B;* V12 tmp10        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Type]\u003E\n\u002B;  V13 tmp11        [V13,T03] (  4,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CProtoBuf.Meta.TypeModel\u003E\n ;* V14 tmp12        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Type\u003E\n-;  V15 tmp13        [V15,T07] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V15 tmp13        [V15,T05] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;\n-; Lcl frame size = 16\n\u002B; Lcl frame size = 8\n \n G_M15408_IG01:\n        push     rbp\n-       push     r15\n        push     rbx\n-       sub      rsp, 16\n-       lea      rbp, [rsp\u002B0x20]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x10]\n        mov      rbx, rsi\n-\t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 4.00\n\u002B\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.75\n G_M15408_IG02:\n        mov      rdi, gword ptr [rbx\u002B0x18]\n        test     rdi, rdi\n-       je       G_M15408_IG07\n-\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.25\n\u002B       je       SHORT G_M15408_IG05\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.25\n G_M15408_IG03:\n        mov      edi, dword ptr [rdi\u002B0x10]\n        test     edi, edi\n-       je       SHORT G_M15408_IG07\n\u002B       je       SHORT G_M15408_IG05\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for ProtoBuf.Meta.SchemaGenerationOptions:get_Types():System.Collections.Generic.List\u00601[System.Type]:this\n        call     [rax]ProtoBuf.Meta.SchemaGenerationOptions:get_Types():System.Collections.Generic.List\u00601[System.Type]:this\n-       mov      r15, rax\n-       test     r15, r15\n-       je       G_M15408_IG11\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Type]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M15408_IG04\n-       lea      rsi, [rbp-0x18]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      rdi, rax\n-       jmp      SHORT G_M15408_IG05\n-\t\t\t\t\t\t;; size=86 bbWeight=0.50 PerfScore 11.62\n-G_M15408_IG04:\n-       lea      rdx, [rbp-0x18]\n-       mov      rsi, r15\n\u002B       je       SHORT G_M15408_IG09\n\u002B       lea      rdx, [rbp-0x10]\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Type](System.Collections.Generic.IEnumerable\u00601[System.Type],byref):System.Type\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        mov      rdi, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M15408_IG05:\n-       cmp      byte  ptr [rbp-0x18], 0\n-       je       SHORT G_M15408_IG12\n-\t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 1.00\n-G_M15408_IG06:\n\u002B       cmp      byte  ptr [rbp-0x10], 0\n\u002B       je       SHORT G_M15408_IG10\n\u002B\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 7.25\n\u002BG_M15408_IG04:\n        test     rdi, rdi\n-       jne      SHORT G_M15408_IG08\n\u002B       jne      SHORT G_M15408_IG06\n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M15408_IG07:\n\u002BG_M15408_IG05:\n        mov      rax, 0xD1FFAB1E      ; code for ProtoBuf.Meta.TypeModel\u002BNullModel:get_Singleton():ProtoBuf.Meta.TypeModel\n        call     [rax]ProtoBuf.Meta.TypeModel\u002BNullModel:get_Singleton():ProtoBuf.Meta.TypeModel\n-       jmp      SHORT G_M15408_IG09\n\u002B       jmp      SHORT G_M15408_IG07\n \t\t\t\t\t\t;; size=14 bbWeight=0.50 PerfScore 2.62\n-G_M15408_IG08:\n\u002BG_M15408_IG06:\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x50]\n        call     [rax\u002B0x28]System.Type:get_Assembly():System.Reflection.Assembly:this\n        mov      rdi, rax\n        xor      rsi, rsi\n        mov      rax, 0xD1FFAB1E      ; code for ProtoBuf.Meta.AutoCompileTypeModel:CreateForAssembly(System.Reflection.Assembly,ProtoBuf.Meta.RuntimeTypeModel\u002BCompilerOptions):ProtoBuf.Meta.TypeModel\n        call     [rax]ProtoBuf.Meta.AutoCompileTypeModel:CreateForAssembly(System.Reflection.Assembly,ProtoBuf.Meta.RuntimeTypeModel\u002BCompilerOptions):ProtoBuf.Meta.TypeModel\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 5.38\n-G_M15408_IG09:\n\u002BG_M15408_IG07:\n        mov      rdi, rax\n        mov      rsi, rbx\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x10]ProtoBuf.Meta.TypeModel:GetSchema(ProtoBuf.Meta.SchemaGenerationOptions):System.String:this\n        nop      \n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 7.75\n-G_M15408_IG10:\n-       add      rsp, 16\n\u002BG_M15408_IG08:\n\u002B       add      rsp, 8\n        pop      rbx\n-       pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 2.75\n-G_M15408_IG11:\n\u002B\t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.25\n\u002BG_M15408_IG09:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M15408_IG12:\n\u002BG_M15408_IG10:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 256, prolog size 13, PerfScore 41.88, instruction count 69, allocated bytes for code 256 (MethodHash=d4a9c3cf) for method ProtoBuf.Meta.AutoCompileTypeModel:GetSchema(ProtoBuf.Meta.SchemaGenerationOptions):System.String:this (FullOpts)\n\u002B; Total bytes of code 186, prolog size 8, PerfScore 33.50, instruction count 53, allocated bytes for code 186 (MethodHash=d4a9c3cf) for method ProtoBuf.Meta.AutoCompileTypeModel:GetSchema(ProtoBuf.Meta.SchemaGenerationOptions):System.String:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":256,"DiffBytes":186},{"Assembly":"AWSSDK.Core.dasm","Method":"Amazon.Runtime.Internal.BaseAuthResolverHandler:RetrieveSchemesFromEndpoint(Amazon.Runtime.Endpoints.Endpoint):System.Collections.Generic.List\u00601[Amazon.Runtime.Internal.Auth.IAuthSchemeOption] (FullOpts)","Category":"improvement","Description":"1,142 -\u003E 1,093 bytes (-49)","ExtraInfo":null,"Diff":"@@ -9,30 \u002B9,30 @@\n ; Final local variable assignments\n ;\n ;  V00 arg0         [V00,T12] (  4,  3.50)     ref  -\u003E  rdi         class-hnd single-def \u003CAmazon.Runtime.Endpoints.Endpoint\u003E\n-;  V01 loc0         [V01,T27] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Collections.IList\u003E\n-;  V02 loc1         [V02,T17] (  6,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[System.String]\u003E\n\u002B;  V01 loc0         [V01,T26] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Collections.IList\u003E\n\u002B;  V02 loc1         [V02,T18] (  5,  2.50)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[System.String]\u003E\n ;  V03 loc2         [V03,T00] ( 14, 25   )     ref  -\u003E  r15         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[Amazon.Runtime.Internal.Auth.IAuthSchemeOption]\u003E\n ;* V04 loc3         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CSystem.String\u003E\n ;* V05 loc4         [V05    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[System.String]\u003E\n ;* V06 loc5         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CSystem.String\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V08 tmp1         [V08,T21] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[Amazon.Runtime.Endpoints.PropertyBag,System.String]\u003E\n-;  V09 tmp2         [V09,T22] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Amazon.Runtime.Endpoints.PropertyBag]\u003E\n\u002B;  V08 tmp1         [V08,T20] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[Amazon.Runtime.Endpoints.PropertyBag,System.String]\u003E\n\u002B;  V09 tmp2         [V09,T21] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Amazon.Runtime.Endpoints.PropertyBag]\u003E\n ;* V10 tmp3         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V11 tmp4         [V11,T19] (  4,  2   )     ref  -\u003E  rdx        \n-;  V12 tmp5         [V12,T18] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[Amazon.Runtime.Internal.Auth.IAuthSchemeOption]\u003E\n\u002B;  V12 tmp5         [V12,T17] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[Amazon.Runtime.Internal.Auth.IAuthSchemeOption]\u003E\n ;  V13 tmp6         [V13,T04] (  4, 16   )     ref  -\u003E  rax         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CAmazon.Runtime.Credentials.Internal.AuthSchemeOption\u003E\n ;  V14 tmp7         [V14,T05] (  4, 16   )     ref  -\u003E  rax         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CAmazon.Runtime.Credentials.Internal.AuthSchemeOption\u003E\n ;  V15 tmp8         [V15,T13] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[Amazon.Runtime.Endpoints.PropertyBag,System.String]\u003E\n-;  V16 tmp9         [V16,T23] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CAmazon.Runtime.Internal.BaseAuthResolverHandler\u002B\u003C\u003Ec\u003E\n-;  V17 tmp10        [V17    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V16 tmp9         [V16,T22] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CAmazon.Runtime.Internal.BaseAuthResolverHandler\u002B\u003C\u003Ec\u003E\n\u002B;  V17 tmp10        [V17    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp11        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp12        [V19,T14] ( 17,  4.88)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n-;  V20 tmp13        [V20,T20] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n\u002B;  V19 tmp12        [V19,T15] ( 16,  4.38)     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n\u002B;* V20 tmp13        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n ;* V21 tmp14        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;* V22 tmp15        [V22    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling unroll qmark\u0022\n ;* V23 tmp16        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V24 tmp17        [V24,T26] (  2,  2   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V24 tmp17        [V24,T25] (  2,  2   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V25 tmp18        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;* V26 tmp19        [V26    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling unroll qmark\u0022\n ;* V27 tmp20        [V27    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[System.String]\u003E\n@@ -51,19 \u002B51,19 @@\n ;  V40 tmp33        [V40,T16] (  4,  4   )     ref  -\u003E  rax         \u0022Single return block return value\u0022\n ;  V41 tmp34        [V41,T06] (  4, 12.50)     ref  -\u003E  rbx         single-def \u0022field V05._list (fldOffset=0x0)\u0022 P-INDEP\n ;  V42 tmp35        [V42,T02] ( 16, 21.50)     ref  -\u003E  rdi         \u0022field V05._current (fldOffset=0x8)\u0022 P-INDEP\n-;  V43 tmp36        [V43,T15] (  2,  4.50)     int  -\u003E  r14         single-def \u0022field V05._version (fldOffset=0x10)\u0022 P-INDEP\n-;* V44 tmp37        [V44,T30] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V05._index (fldOffset=0x14)\u0022 P-INDEP\n\u002B;  V43 tmp36        [V43,T14] (  2,  4.50)     int  -\u003E  r14         single-def \u0022field V05._version (fldOffset=0x10)\u0022 P-INDEP\n\u002B;* V44 tmp37        [V44,T29] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V05._index (fldOffset=0x14)\u0022 P-INDEP\n ;* V45 tmp38        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V27._list (fldOffset=0x0)\u0022 P-INDEP\n ;* V46 tmp39        [V46    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V27._current (fldOffset=0x8)\u0022 P-INDEP\n-;  V47 tmp40        [V47,T29] (  2,  1   )     int  -\u003E  r14         single-def \u0022field V27._version (fldOffset=0x10)\u0022 P-INDEP\n\u002B;  V47 tmp40        [V47,T28] (  2,  1   )     int  -\u003E  r14         single-def \u0022field V27._version (fldOffset=0x10)\u0022 P-INDEP\n ;* V48 tmp41        [V48    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V27._index (fldOffset=0x14)\u0022 P-INDEP\n-;  V49 tmp42        [V49,T24] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V50 tmp43        [V50,T25] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V49 tmp42        [V49,T23] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V50 tmp43        [V50,T24] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;  V51 tmp44        [V51,T01] (  3, 24   )     ref  -\u003E  rdi         \u0022arr expr\u0022\n-;  V52 cse0         [V52,T28] (  3,  1.50)     ref  -\u003E  rdi         \u0022CSE #01: conservative\u0022\n\u002B;  V52 cse0         [V52,T27] (  3,  1.50)     ref  -\u003E  rdi         \u0022CSE #01: conservative\u0022\n ;  V53 rat0         [V53,T03] (  6, 20.50)    long  -\u003E  r13         \u0022Widened IV V44\u0022\n-;  V54 rat1         [V54,T32] (  3,  3   )  simd16  -\u003E  mm0         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n-;  V55 rat2         [V55,T31] (  3, 12   )  simd16  -\u003E  mm0         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n\u002B;  V54 rat1         [V54,T31] (  3,  3   )  simd16  -\u003E  mm0         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n\u002B;  V55 rat2         [V55,T30] (  3, 12   )  simd16  -\u003E  mm0         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n ;\n ; Lcl frame size = 8\n \n@@ -81,12 \u002B81,12 @@ G_M50601_IG01:\n \t\t\t\t\t\t;; size=22 bbWeight=1 PerfScore 8.75\n G_M50601_IG02:\n        test     rdi, rdi\n-       je       G_M50601_IG41\n\u002B       je       G_M50601_IG39\n \t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 1.25\n G_M50601_IG03:\n        mov      rdi, gword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M50601_IG41\n\u002B       je       G_M50601_IG39\n        mov      r11, 0xD1FFAB1E      ; code for Amazon.Runtime.Endpoints.IPropertyBag:get_Item(System.String):System.Object:this\n        mov      rsi, 0xD1FFAB1E      ; \u0027authSchemes\u0027\n        call     [r11]Amazon.Runtime.Endpoints.IPropertyBag:get_Item(System.String):System.Object:this\n@@ -95,7 \u002B95,7 @@ G_M50601_IG03:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFINTERFACE\n        call     [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE\n        test     rax, rax\n-       je       G_M50601_IG41\n\u002B       je       G_M50601_IG39\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:OfType[Amazon.Runtime.Endpoints.PropertyBag](System.Collections.IEnumerable):System.Collections.Generic.IEnumerable\u00601[Amazon.Runtime.Endpoints.PropertyBag]\n... diff truncated; middle omitted ...\n        inc      r13d\n        mov      rax, 0xD1FFAB1E      ; \u0027sigv4\u0027\n        cmp      rdi, rax\n-       je       G_M50601_IG34\n\u002B       je       G_M50601_IG32\n \t\t\t\t\t\t;; size=41 bbWeight=4 PerfScore 35.00\n-G_M50601_IG21:\n\u002BG_M50601_IG19:\n        test     rdi, rdi\n-       je       SHORT G_M50601_IG24\n\u002B       je       SHORT G_M50601_IG22\n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M50601_IG22:\n\u002BG_M50601_IG20:\n        cmp      dword ptr [rdi\u002B0x08], 5\n-       jne      SHORT G_M50601_IG24\n\u002B       jne      SHORT G_M50601_IG22\n \t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 1.50\n-G_M50601_IG23:\n\u002BG_M50601_IG21:\n        mov      rax, 0xD1FFAB1E\n        xor      rax, qword ptr [rdi\u002B0x0C]\n        movzx    rcx, word  ptr [rdi\u002B0x14]\n        xor      ecx, 52\n        or       rax, rcx\n-       je       G_M50601_IG34\n\u002B       je       G_M50601_IG32\n \t\t\t\t\t\t;; size=30 bbWeight=0.25 PerfScore 1.44\n-G_M50601_IG24:\n\u002BG_M50601_IG22:\n        mov      rax, 0xD1FFAB1E      ; \u0027sigv4-s3express\u0027\n        cmp      rdi, rax\n-       je       G_M50601_IG34\n\u002B       je       G_M50601_IG32\n \t\t\t\t\t\t;; size=19 bbWeight=2 PerfScore 3.00\n-G_M50601_IG25:\n\u002BG_M50601_IG23:\n        test     rdi, rdi\n-       je       SHORT G_M50601_IG28\n\u002B       je       SHORT G_M50601_IG26\n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M50601_IG26:\n\u002BG_M50601_IG24:\n        cmp      dword ptr [rdi\u002B0x08], 15\n-       jne      SHORT G_M50601_IG28\n\u002B       jne      SHORT G_M50601_IG26\n \t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 1.50\n-G_M50601_IG27:\n\u002BG_M50601_IG25:\n        vmovups  xmm0, xmmword ptr [rdi\u002B0x0C]\n        vmovups  xmm1, xmmword ptr [rdi\u002B0x1A]\n        vpxor    xmm1, xmm1, xmmword ptr [reloc @RWD00]\n@@ -284,30 \u002B268,30 @@ G_M50601_IG27:\n        sete     al\n        movzx    rax, al\n        test     eax, eax\n-       jne      G_M50601_IG34\n\u002B       jne      G_M50601_IG32\n \t\t\t\t\t\t;; size=48 bbWeight=2 PerfScore 26.00\n-G_M50601_IG28:\n\u002BG_M50601_IG26:\n        mov      rax, 0xD1FFAB1E      ; \u0027sigv4a\u0027\n        cmp      rdi, rax\n-       je       SHORT G_M50601_IG32\n\u002B       je       SHORT G_M50601_IG30\n \t\t\t\t\t\t;; size=15 bbWeight=2 PerfScore 3.00\n-G_M50601_IG29:\n\u002BG_M50601_IG27:\n        test     rdi, rdi\n-       je       G_M50601_IG36\n\u002B       je       G_M50601_IG34\n \t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 1.25\n-G_M50601_IG30:\n\u002BG_M50601_IG28:\n        cmp      dword ptr [rdi\u002B0x08], 6\n-       jne      G_M50601_IG36\n\u002B       jne      G_M50601_IG34\n \t\t\t\t\t\t;; size=10 bbWeight=0.50 PerfScore 1.50\n-G_M50601_IG31:\n\u002BG_M50601_IG29:\n        mov      rax, 0xD1FFAB1E\n        xor      rax, qword ptr [rdi\u002B0x0C]\n        mov      edi, dword ptr [rdi\u002B0x14]\n        xor      edi, 0xD1FFAB1E\n        or       rdi, rax\n-       jne      G_M50601_IG36\n\u002B       jne      G_M50601_IG34\n \t\t\t\t\t\t;; size=32 bbWeight=0.25 PerfScore 1.44\n-G_M50601_IG32:\n\u002BG_M50601_IG30:\n        mov      rdi, 0xD1FFAB1E      ; Amazon.Runtime.Credentials.Internal.AuthSchemeOption\n        call     CORINFO_HELP_NEWSFAST\n        mov      rdi, 0xD1FFAB1E      ; \u0027aws.auth#sigv4a\u0027\n@@ -316,39 \u002B300,39 @@ G_M50601_IG32:\n        mov      rdi, gword ptr [r15\u002B0x08]\n        mov      r12d, dword ptr [r15\u002B0x10]\n        cmp      dword ptr [rdi\u002B0x08], r12d\n\u002B       ja       SHORT G_M50601_IG31\n\u002B       mov      rdi, r15\n\u002B       mov      rsi, rax\n\u002B       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n\u002B       call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n\u002B       jmp      SHORT G_M50601_IG34\n\u002B\t\t\t\t\t\t;; size=67 bbWeight=2 PerfScore 36.50\n\u002BG_M50601_IG31:\n\u002B       lea      esi, [r12\u002B0x01]\n\u002B       mov      dword ptr [r15\u002B0x10], esi\n\u002B       mov      esi, r12d\n\u002B       mov      rdx, rax\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST\n\u002B       call     [rax]CORINFO_HELP_ARRADDR_ST\n\u002B       jmp      SHORT G_M50601_IG34\n\u002B\t\t\t\t\t\t;; size=29 bbWeight=2 PerfScore 14.50\n\u002BG_M50601_IG32:\n\u002B       mov      rdi, 0xD1FFAB1E      ; Amazon.Runtime.Credentials.Internal.AuthSchemeOption\n\u002B       call     CORINFO_HELP_NEWSFAST\n\u002B       mov      rdi, 0xD1FFAB1E      ; \u0027aws.auth#sigv4\u0027\n\u002B       mov      gword ptr [rax\u002B0x08], rdi\n\u002B       inc      dword ptr [r15\u002B0x14]\n\u002B       mov      rdi, gword ptr [r15\u002B0x08]\n\u002B       mov      r12d, dword ptr [r15\u002B0x10]\n\u002B       cmp      dword ptr [rdi\u002B0x08], r12d\n        ja       SHORT G_M50601_IG33\n        mov      rdi, r15\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n-       jmp      SHORT G_M50601_IG36\n\u002B       jmp      SHORT G_M50601_IG34\n \t\t\t\t\t\t;; size=67 bbWeight=2 PerfScore 36.50\n G_M50601_IG33:\n-       lea      esi, [r12\u002B0x01]\n-       mov      dword ptr [r15\u002B0x10], esi\n-       mov      esi, r12d\n-       mov      rdx, rax\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST\n-       call     [rax]CORINFO_HELP_ARRADDR_ST\n-       jmp      SHORT G_M50601_IG36\n-\t\t\t\t\t\t;; size=29 bbWeight=2 PerfScore 14.50\n-G_M50601_IG34:\n-       mov      rdi, 0xD1FFAB1E      ; Amazon.Runtime.Credentials.Internal.AuthSchemeOption\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      rdi, 0xD1FFAB1E      ; \u0027aws.auth#sigv4\u0027\n-       mov      gword ptr [rax\u002B0x08], rdi\n-       inc      dword ptr [r15\u002B0x14]\n-       mov      rdi, gword ptr [r15\u002B0x08]\n-       mov      r12d, dword ptr [r15\u002B0x10]\n-       cmp      dword ptr [rdi\u002B0x08], r12d\n-       ja       SHORT G_M50601_IG35\n-       mov      rdi, r15\n-       mov      rsi, rax\n-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n-       call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n-       jmp      SHORT G_M50601_IG36\n-\t\t\t\t\t\t;; size=67 bbWeight=2 PerfScore 36.50\n-G_M50601_IG35:\n        lea      esi, [r12\u002B0x01]\n        mov      dword ptr [r15\u002B0x10], esi\n        mov      esi, r12d\n@@ -356,22 \u002B340,35 @@ G_M50601_IG35:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST\n        call     [rax]CORINFO_HELP_ARRADDR_ST\n \t\t\t\t\t\t;; size=27 bbWeight=2 PerfScore 10.50\n-G_M50601_IG36:\n\u002BG_M50601_IG34:\n        cmp      r14d, dword ptr [rbx\u002B0x14]\n-       jne      SHORT G_M50601_IG44\n\u002B       jne      SHORT G_M50601_IG42\n \t\t\t\t\t\t;; size=6 bbWeight=4 PerfScore 12.00\n-G_M50601_IG37:\n\u002BG_M50601_IG35:\n        cmp      r13d, dword ptr [rbx\u002B0x10]\n-       jb       G_M50601_IG20\n\u002B       jb       G_M50601_IG18\n \t\t\t\t\t\t;; size=10 bbWeight=4 PerfScore 12.00\n-G_M50601_IG38:\n\u002BG_M50601_IG36:\n        mov      rax, r15\n-       jmp      SHORT G_M50601_IG40\n\u002B       jmp      SHORT G_M50601_IG38\n \t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 1.12\n-G_M50601_IG39:\n\u002BG_M50601_IG37:\n        mov      rax, 0xD1FFAB1E      ; const ptr\n        mov      rax, gword ptr [rax]\n \t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 1.12\n\u002BG_M50601_IG38:\n\u002B       add      rsp, 8\n\u002B       pop      rbx\n\u002B       pop      r12\n\u002B       pop      r13\n\u002B       pop      r14\n\u002B       pop      r15\n\u002B       pop      rbp\n\u002B       ret      \n\u002B\t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n\u002BG_M50601_IG39:\n\u002B       xor      rax, rax\n\u002B\t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n G_M50601_IG40:\n        add      rsp, 8\n        pop      rbx\n@@ -383,29 \u002B380,16 @@ G_M50601_IG40:\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n G_M50601_IG41:\n-       xor      rax, rax\n-\t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M50601_IG42:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       ret      \n-\t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M50601_IG43:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M50601_IG44:\n\u002BG_M50601_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M50601_IG45:\n\u002BG_M50601_IG43:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n@@ -413,5 \u002B397,5 @@ RWD00  \tdq\t0070007800650033h, 0073007300650072h\n RWD16  \tdq\t0076006700690073h, 00330073002D0034h\n \n \n-; Total bytes of code 1142, prolog size 22, PerfScore 264.78, instruction count 252, allocated bytes for code 1142 (MethodHash=30473a56) for method Amazon.Runtime.Internal.BaseAuthResolverHandler:RetrieveSchemesFromEndpoint(Amazon.Runtime.Endpoints.Endpoint):System.Collections.Generic.List\u00601[Amazon.Runtime.Internal.Auth.IAuthSchemeOption] (FullOpts)\n\u002B; Total bytes of code 1093, prolog size 22, PerfScore 257.41, instruction count 240, allocated bytes for code 1093 (MethodHash=30473a56) for method Amazon.Runtime.Internal.BaseAuthResolverHandler:RetrieveSchemesFromEndpoint(Amazon.Runtime.Endpoints.Endpoint):System.Collections.Generic.List\u00601[Amazon.Runtime.Internal.Auth.IAuthSchemeOption] (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1142,"DiffBytes":1093},{"Assembly":"App.Metrics.Core.dasm","Method":"App.Metrics.MetricsReportingBuilder:UseUserConfiguredFormatter(App.Metrics.Reporting.IReportMetrics):this (FullOpts)","Category":"improvement","Description":"161 -\u003E 102 bytes (-59)","ExtraInfo":null,"Diff":"@@ -1,86 \u002B1,65 @@\n ; Assembly listing for method App.Metrics.MetricsReportingBuilder:UseUserConfiguredFormatter(App.Metrics.Reporting.IReportMetrics):this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T01] (  3,  3   )     ref  -\u003E  rdi         this class-hnd single-def \u003CApp.Metrics.MetricsReportingBuilder\u003E\n ;  V01 arg1         [V01,T02] (  3,  2.50)     ref  -\u003E  rbx         class-hnd single-def \u003CApp.Metrics.Reporting.IReportMetrics\u003E\n ;* V02 loc0         [V02    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CApp.Metrics.Formatters.IMetricsOutputFormatter\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V04 tmp1         [V04,T00] (  4,  7   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CApp.Metrics.Formatters.MetricsFormatterCollection\u003E\n-;  V05 tmp2         [V05    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V06 tmp3         [V06,T04] (  4,  2.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CApp.Metrics.Formatters.IMetricsOutputFormatter\u003E\n-;  V07 tmp4         [V07,T03] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[App.Metrics.Formatters.IMetricsOutputFormatter]\u003E\n\u002B;  V04 tmp1         [V04,T00] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CApp.Metrics.Formatters.MetricsFormatterCollection\u003E\n\u002B;  V05 tmp2         [V05    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x10]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V06 tmp3         [V06,T03] (  3,  2.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CApp.Metrics.Formatters.IMetricsOutputFormatter\u003E\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[App.Metrics.Formatters.IMetricsOutputFormatter]\u003E\n ;\n-; Lcl frame size = 16\n\u002B; Lcl frame size = 8\n \n G_M2795_IG01:\n        push     rbp\n-       push     r15\n        push     rbx\n-       sub      rsp, 16\n-       lea      rbp, [rsp\u002B0x20]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x10]\n        xor      eax, eax\n-       mov      qword ptr [rbp-0x18], rax\n\u002B       mov      qword ptr [rbp-0x10], rax\n        mov      rbx, rsi\n-\t\t\t\t\t\t;; size=22 bbWeight=1 PerfScore 5.25\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.00\n G_M2795_IG02:\n-       mov      r15, gword ptr [rdi\u002B0x08]\n-       test     r15, r15\n-       je       SHORT G_M2795_IG09\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[App.Metrics.Formatters.IMetricsOutputFormatter]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M2795_IG04\n-\t\t\t\t\t\t;; size=39 bbWeight=1 PerfScore 8.25\n-G_M2795_IG03:\n-       lea      rsi, [rbp-0x18]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M2795_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M2795_IG04:\n-       lea      rdx, [rbp-0x18]\n-       mov      rsi, r15\n\u002B       mov      rsi, gword ptr [rdi\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M2795_IG06\n\u002B       lea      rdx, [rbp-0x10]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[App.Metrics.Formatters.IMetricsOutputFormatter](System.Collections.Generic.IEnumerable\u00601[App.Metrics.Formatters.IMetricsOutputFormatter],byref):App.Metrics.Formatters.IMetricsOutputFormatter\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M2795_IG05:\n        test     rax, rax\n-       je       SHORT G_M2795_IG07\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M2795_IG06:\n\u002B       je       SHORT G_M2795_IG04\n\u002B\t\t\t\t\t\t;; size=40 bbWeight=1 PerfScore 8.50\n\u002BG_M2795_IG03:\n        mov      rdi, rbx\n        mov      rsi, rax\n        mov      r11, 0xD1FFAB1E      ; code for App.Metrics.Reporting.IReportMetrics:set_Formatter(App.Metrics.Formatters.IMetricsOutputFormatter):this\n        call     [r11]App.Metrics.Reporting.IReportMetrics:set_Formatter(App.Metrics.Formatters.IMetricsOutputFormatter):this\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.88\n-G_M2795_IG07:\n\u002BG_M2795_IG04:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M2795_IG08:\n-       add      rsp, 16\n\u002BG_M2795_IG05:\n\u002B       add      rsp, 8\n        pop      rbx\n-       pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 2.75\n-G_M2795_IG09:\n\u002B\t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.25\n\u002BG_M2795_IG06:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 161, prolog size 19, PerfScore 26.62, instruction count 44, allocated bytes for code 161 (MethodHash=890ff514) for method App.Metrics.MetricsReportingBuilder:UseUserConfiguredFormatter(App.Metrics.Reporting.IReportMetrics):this (FullOpts)\n\u002B; Total bytes of code 102, prolog size 14, PerfScore 17.88, instruction count 29, allocated bytes for code 102 (MethodHash=890ff514) for method App.Metrics.MetricsReportingBuilder:UseUserConfiguredFormatter(App.Metrics.Reporting.IReportMetrics):this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":161,"DiffBytes":102},{"Assembly":"AsmResolver.dasm","Method":"AsmResolver.IO.BinaryStreamReader:ReadDecimal():System.Decimal:this (FullOpts)","Category":"same-size","Description":"449 -\u003E 449 bytes (0)","ExtraInfo":null,"Diff":"@@ -1,165 \u002B1,165 @@\n ; Assembly listing for method AsmResolver.IO.BinaryStreamReader:ReadDecimal():System.Decimal:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 6 single block inlinees; 3 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  9,  9   )   byref  -\u003E  rbx         this single-def\n ;* V01 loc0         [V01    ] (  0,  0   )     int  -\u003E  zero-ref   \n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V03 tmp1         [V03,T00] ( 12, 24   )     ref  -\u003E  r14         class-hnd \u0022impAppendStmt\u0022 \u003Cint[]\u003E\n ;  V04 tmp2         [V04,T01] (  8, 16   )     int  -\u003E  rax         \u0022Strict ordering of exceptions for Array store\u0022\n ;  V05 tmp3         [V05    ] (  3,  6   )  struct (16) [rbp-0x28]  do-not-enreg[XSR] multireg-ret addr-exposed ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Decimal\u003E\n ;  V06 tmp4         [V06,T08] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u0022NewArr temp\u0022 \u003Cint[]\u003E\n ;  V07 tmp5         [V07,T11] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.IO.EndOfStreamException\u003E\n ;* V08 tmp6         [V08    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022impAppendStmt\u0022\n ;* V09 tmp7         [V09    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022impAppendStmt\u0022\n ;  V10 tmp8         [V10,T03] (  4,  8   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003Cint[]\u003E\n ;* V11 tmp9         [V11    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V12 tmp10        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V13 tmp11        [V13    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.ReadOnlySpan\u00601[int]\u003E\n ;  V14 tmp12        [V14,T12] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n ;* V15 tmp13        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003Cint[]\u003E\n ;* V16 tmp14        [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ReadOnlySpan\u00601[int]\u003E\n ;* V17 tmp15        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003Cint[]\u003E\n ;* V18 tmp16        [V18    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022field V13._reference (fldOffset=0x0)\u0022 P-INDEP\n ;* V19 tmp17        [V19    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V13._length (fldOffset=0x8)\u0022 P-INDEP\n ;  V20 tmp18        [V20,T09] (  2,  2   )   byref  -\u003E  rdx         single-def \u0022field V16._reference (fldOffset=0x0)\u0022 P-INDEP\n ;  V21 tmp19        [V21,T10] (  2,  2   )     int  -\u003E  rdi         single-def \u0022field V16._length (fldOffset=0x8)\u0022 P-INDEP\n ;  V22 cse0         [V22,T04] (  8,  7.50)   byref  -\u003E  r15         \u0022CSE #01: aggressive\u0022\n ;  V23 rat0         [V23,T07] (  3,  4   )   byref  -\u003E  r15         \u0022TLS field access\u0022\n ;  V24 rat1         [V24,T06] (  3,  6   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;  V25 rat2         [V25,T05] (  3,  6   )   byref  -\u003E  r15         \u0022ThreadStaticBlockBase access\u0022\n ;\n ; Lcl frame size = 24\n \n G_M39543_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     rbx\n        sub      rsp, 24\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 5.00\n G_M39543_IG02:\n        mov      edi, dword ptr [rbx\u002B0x10]\n        sub      edi, dword ptr [rbx\u002B0x08]\n        add      edi, 16\n        cmp      edi, dword ptr [rbx\u002B0x1C]\n        ja       G_M39543_IG07\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       cmp      dword ptr [rax], 12\n\u002B       cmp      dword ptr [rax], 11\n        jle      G_M39543_IG08\n        mov      rdi, gword ptr [rax\u002B0x08]\n-       mov      r15, bword ptr [rdi\u002B0x60]\n\u002B       mov      r15, bword ptr [rdi\u002B0x58]\n        test     r15, r15\n        je       G_M39543_IG08\n \t\t\t\t\t\t;; size=66 bbWeight=1 PerfScore 19.00\n G_M39543_IG03:\n        cmp      gword ptr [r15\u002B0x10], 0\n        jne      SHORT G_M39543_IG05\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 3.00\n G_M39543_IG04:\n        mov      rdi, 0xD1FFAB1E      ; int[]\n        mov      esi, 4\n        call     CORINFO_HELP_NEWARR_1_VC\n        lea      rdi, bword ptr [r15\u002B0x10]\n        mov      rsi, rax\n        call     CORINFO_HELP_ASSIGN_REF\n \t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 1.62\n G_M39543_IG05:\n        mov      r14, gword ptr [r15\u002B0x10]\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for AsmResolver.IO.BinaryStreamReader:ReadInt32():int:this\n        call     [rax]AsmResolver.IO.BinaryStreamReader:ReadInt32():int:this\n        cmp      dword ptr [r14\u002B0x08], 0\n        jbe      G_M39543_IG10\n        mov      dword ptr [r14\u002B0x10], eax\n        mov      r14, gword ptr [r15\u002B0x10]\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for AsmResolver.IO.BinaryStreamReader:ReadInt32():int:this\n        call     [rax]AsmResolver.IO.BinaryStreamReader:ReadInt32():int:this\n        cmp      dword ptr [r14\u002B0x08], 1\n        jbe      G_M39543_IG10\n        mov      dword ptr [r14\u002B0x14], eax\n        mov      r14, gword ptr [r15\u002B0x10]\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for AsmResolver.IO.BinaryStreamReader:ReadInt32():int:this\n        call     [rax]AsmResolver.IO.BinaryStreamReader:ReadInt32():int:this\n        cmp      dword ptr [r14\u002B0x08], 2\n        jbe      G_M39543_IG10\n        mov      dword ptr [r14\u002B0x18], eax\n        mov      r14, gword ptr [r15\u002B0x10]\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for AsmResolver.IO.BinaryStreamReader:ReadInt32():int:this\n        call     [rax]AsmResolver.IO.BinaryStreamReader:ReadInt32():int:this\n        cmp      dword ptr [r14\u002B0x08], 3\n        jbe      G_M39543_IG10\n        mov      dword ptr [r14\u002B0x1C], eax\n        vxorps   xmm0, xmm0, xmm0\n        vmovups  xmmword ptr [rbp-0x28], xmm0\n        mov      rsi, gword ptr [r15\u002B0x10]\n        test     rsi, rsi\n        je       SHORT G_M39543_IG09\n        lea      rdx, bword ptr [rsi\u002B0x10]\n        mov      edi, dword ptr [rsi\u002B0x08]\n        mov      rsi, rdx\n        mov      edx, edi\n        lea      rdi, [rbp-0x28]\n        mov      rax, 0xD1FFAB1E      ; code for System.Decimal:.ctor(System.ReadOnlySpan\u00601[int]):this\n        call     [rax]System.Decimal:.ctor(System.ReadOnlySpan\u00601[int]):this\n        mov      rax, qword ptr [rbp-0x28]\n        mov      rdx, qword ptr [rbp-0x20]\n \t\t\t\t\t\t;; size=190 bbWeight=1 PerfScore 51.33\n G_M39543_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n G_M39543_IG07:\n        mov      rdi, 0xD1FFAB1E      ; System.IO.EndOfStreamException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.IO.EndOfStreamException:.ctor():this\n        call     [rax]System.IO.EndOfStreamException:.ctor():this\n        mov      rdi, rbx\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=42 bbWeight=0 PerfScore 0.00\n G_M39543_IG08:\n-       mov      edi, 12\n\u002B       mov      edi, 11\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED\n        call     [rax]CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED\n        mov      r15, rax\n        jmp      G_M39543_IG03\n \t\t\t\t\t\t;; size=25 bbWeight=0 PerfScore 0.00\n G_M39543_IG09:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; \u0027bits\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:.ctor(System.String):this\n        call     [rax]System.ArgumentNullException:.ctor(System.String):this\n        mov      rdi, rbx\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n G_M39543_IG10:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n \n ; Total bytes of code 449, prolog size 15, PerfScore 83.21, instruction count 103, allocated bytes for code 449 (MethodHash=d5796588) for method AsmResolver.IO.BinaryStreamReader:ReadDecimal():System.Decimal:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":449,"DiffBytes":449},{"Assembly":"Azure.Storage.Blobs.dasm","Method":"Azure.Storage.Shared.StructuredMessageDecodingRetriableStream:ValidateCrc():ulong:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 797 bytes (-49)","ExtraInfo":null,"Diff":"@@ -19,14 \u002B19,14 @@\n ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V09 tmp1         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Span\u00601[byte]\u003E\n ;* V10 tmp2         [V10    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.ReadOnlySpan\u00601[byte]\u003E\n-;  V11 tmp3         [V11,T08] (  2,  4   )    long  -\u003E  r12         \u0022impAppendStmt\u0022\n\u002B;  V11 tmp3         [V11,T07] (  2,  4   )    long  -\u003E  r12         \u0022impAppendStmt\u0022\n ;* V12 tmp4         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    single-def\n ;* V13 tmp5         [V13    ] (  0,  0   )    long  -\u003E  zero-ref   \n-;  V14 tmp6         [V14,T09] (  5,  3   )    long  -\u003E  rbx        \n\u002B;  V14 tmp6         [V14,T08] (  5,  3   )    long  -\u003E  rbx        \n ;* V15 tmp7         [V15    ] (  0,  0   )    long  -\u003E  zero-ref    single-def\n ;* V16 tmp8         [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret multireg-dest single-def \u0022Return value temp for multireg return\u0022 \u003CSystem.ReadOnlySpan\u00601[byte]\u003E\n ;* V17 tmp9         [V17    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret multireg-dest single-def \u0022Return value temp for multireg return\u0022 \u003CSystem.ReadOnlySpan\u00601[byte]\u003E\n-;  V18 tmp10        [V18,T15] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData,System.Collections.Generic.IEnumerable\u00601[System.ValueTuple\u00602[ulong,long]]]\u003E\n\u002B;  V18 tmp10        [V18,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData,System.Collections.Generic.IEnumerable\u00601[System.ValueTuple\u00602[ulong,long]]]\u003E\n ;  V19 tmp11        [V19,T05] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022impSpillLclRefs\u0022 \u003CSystem.Collections.Generic.List\u00601[Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData]\u003E\n ;* V20 tmp12        [V20    ] (  0,  0   )    long  -\u003E  zero-ref    single-def\n ;* V21 tmp13        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -42,19 \u002B42,19 @@\n ;* V31 tmp23        [V31    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V32 tmp24        [V32    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.ReadOnlySpan\u00601[byte]\u003E\n ;* V33 tmp25        [V33    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.ReadOnlySpan\u00601[byte]\u003E\n-;  V34 tmp26        [V34,T07] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData]\u003E\n-;  V35 tmp27        [V35,T16] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CAzure.Storage.Shared.StructuredMessageDecodingRetriableStream\u002B\u003C\u003Ec\u003E\n-;  V36 tmp28        [V36,T19] (  3,  1.50)     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.ValueTuple\u00602[ulong,long]]\u003E\n\u002B;  V34 tmp26        [V34,T06] (  2,  4   )     ref  -\u003E  rdx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData]\u003E\n\u002B;  V35 tmp27        [V35,T14] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CAzure.Storage.Shared.StructuredMessageDecodingRetriableStream\u002B\u003C\u003Ec\u003E\n\u002B;  V36 tmp28        [V36,T17] (  3,  1.50)     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.ValueTuple\u00602[ulong,long]]\u003E\n ;* V37 tmp29        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData]\u003E\n ;* V38 tmp30        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData,System.Collections.Generic.IEnumerable\u00601[System.ValueTuple\u00602[ulong,long]]]\u003E\n ;  V39 tmp31        [V39,T04] (  5,  5   )     ref  -\u003E  [rbp-0x48]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Enumerable\u002BSelectManySingleSelectorIterator\u00602[Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData,System.ValueTuple\u00602[ulong,long]]\u003E\n-;* V40 tmp32        [V40,T23] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V41 tmp33        [V41,T20] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CAzure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData[]\u003E\n-;  V42 tmp34        [V42,T06] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData]\u003E\n-;  V43 tmp35        [V43    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;* V40 tmp32        [V40,T22] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V41 tmp33        [V41,T18] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CAzure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData[]\u003E\n\u002B;  V42 tmp34        [V42,T11] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData]\u003E\n\u002B;  V43 tmp35        [V43    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V44 tmp36        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V45 tmp37        [V45,T13] (  4,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CAzure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData\u003E\n-;  V46 tmp38        [V46,T14] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData]\u003E\n\u002B;  V45 tmp37        [V45,T19] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CAzure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData\u003E\n\u002B;* V46 tmp38        [V46    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData]\u003E\n ;* V47 tmp39        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CAzure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData\u003E\n ;* V48 tmp40        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003Cbyte[]\u003E\n ;* V49 tmp41        [V49    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n@@ -65,18 \u002B65,18 @@\n ;* V54 tmp46        [V54    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[SF] \u0022stack allocated Azure.Storage.BufferExtensions\u002BDisposableRentedArray\u00601\u0022 \u003CAzure.Storage.BufferExtensions\u002BDisposableRentedArray\u00601[byte]\u003E\n ;* V55 tmp47        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V03._reference (fldOffset=0x0)\u0022 P-INDEP\n ;* V56 tmp48        [V56    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V03._length (fldOffset=0x8)\u0022 P-INDEP\n-;  V57 tmp49        [V57,T21] (  2,  1   )   ubyte  -\u003E  rcx         single-def \u0022field V05.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V58 tmp50        [V58,T22] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V05.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V59 tmp51        [V59,T24] (  3,  0   )   byref  -\u003E  r14         single-def \u0022field V06._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V57 tmp49        [V57,T20] (  2,  1   )   ubyte  -\u003E  rcx         single-def \u0022field V05.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V58 tmp50        [V58,T21] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V05.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V59 tmp51        [V59,T23] (  3,  0   )   byref  -\u003E  r14         single-def \u0022field V06._reference (fldOffset=0x0)\u0022 P-INDEP\n ;* V60 tmp52        [V60    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V06._length (fldOffset=0x8)\u0022 P-INDEP\n-;  V61 tmp53        [V61,T10] (  4,  3   )   byref  -\u003E  r13         single-def \u0022field V09._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V61 tmp53        [V61,T09] (  4,  3   )   byref  -\u003E  r13         single-def \u0022field V09._reference (fldOffset=0x0)\u0022 P-INDEP\n ;* V62 tmp54        [V62    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V09._length (fldOffset=0x8)\u0022 P-INDEP\n ;* V63 tmp55        [V63    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022field V10._reference (fldOffset=0x0)\u0022 P-INDEP\n ;* V64 tmp56        [V64    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V10._length (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp57        [V65,T26] (  2,  0   )   byref  -\u003E  rbx         \u0022field V16._reference (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp58        [V66,T29] (  2,  0   )     int  -\u003E  r15         \u0022field V16._length (fldOffset=0x8)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=67 bbWeight=1 PerfScore 19.75\n G_M34678_IG05:\n-       test     rbx, rbx\n-       je       G_M34678_IG15\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M34678_IG06\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M34678_IG07\n-\t\t\t\t\t\t;; size=58 bbWeight=0.50 PerfScore 8.00\n-G_M34678_IG06:\n\u002B       test     rsi, rsi\n\u002B       je       G_M34678_IG13\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData](System.Collections.Generic.IEnumerable\u00601[Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData],byref):Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M34678_IG07:\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M34678_IG17\n\u002B       je       G_M34678_IG15\n        movzx    rcx, byte  ptr [rax\u002B0x38]\n        mov      rbx, qword ptr [rax\u002B0x40]\n        test     ecx, ecx\n-       je       G_M34678_IG18\n-       jmp      G_M34678_IG14\n-\t\t\t\t\t\t;; size=31 bbWeight=0.50 PerfScore 4.62\n-G_M34678_IG08:\n\u002B       je       G_M34678_IG16\n\u002B       jmp      G_M34678_IG12\n\u002B\t\t\t\t\t\t;; size=66 bbWeight=0.50 PerfScore 7.25\n\u002BG_M34678_IG06:\n\u002B       mov      rbx, rsi\n        mov      rdi, 0xD1FFAB1E      ; data for Azure.Storage.Shared.StructuredMessageDecodingRetriableStream\u002B\u003C\u003Ec:\u003C\u003E9__15_0\n        mov      rax, gword ptr [rdi]\n        test     rax, rax\n-       jne      SHORT G_M34678_IG09\n\u002B       jne      SHORT G_M34678_IG07\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData,System.Collections.Generic.IEnumerable\u00601[System.ValueTuple\u00602[ulong,long]]]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x40], rax\n@@ -201,21 \u002B185,21 @@ G_M34678_IG08:\n        mov      rax, gword ptr [rbp-0x40]\n        mov      gword ptr [rbp-0x38], rax\n        mov      rax, gword ptr [rbp-0x38]\n-\t\t\t\t\t\t;; size=107 bbWeight=0.50 PerfScore 8.12\n-G_M34678_IG09:\n\u002B\t\t\t\t\t\t;; size=110 bbWeight=0.50 PerfScore 8.25\n\u002BG_M34678_IG07:\n        test     rbx, rbx\n        mov      gword ptr [rbp-0x38], rax\n-       je       G_M34678_IG15\n\u002B       je       G_M34678_IG13\n        mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData[]\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFARRAY\n        call     [rcx]CORINFO_HELP_ISINSTANCEOFARRAY\n        test     rax, rax\n-       je       SHORT G_M34678_IG10\n\u002B       je       SHORT G_M34678_IG08\n        cmp      dword ptr [rax\u002B0x08], 0\n-       je       SHORT G_M34678_IG11\n\u002B       je       SHORT G_M34678_IG09\n \t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 5.12\n-G_M34678_IG10:\n\u002BG_M34678_IG08:\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BSelectManySingleSelectorIterator\u00602[Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData,System.ValueTuple\u00602[ulong,long]]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x48], rax\n@@ -233,60 \u002B217,60 @@ G_M34678_IG10:\n        lea      rdi, bword ptr [rbx\u002B0x28]\n        mov      rsi, gword ptr [rbp-0x38]\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      SHORT G_M34678_IG13\n\u002B       jmp      SHORT G_M34678_IG11\n \t\t\t\t\t\t;; size=86 bbWeight=0.50 PerfScore 8.62\n-G_M34678_IG11:\n\u002BG_M34678_IG09:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       SHORT G_M34678_IG16\n\u002B       je       SHORT G_M34678_IG14\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 1.62\n-G_M34678_IG12:\n\u002BG_M34678_IG10:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Array\u002BEmptyArray\u00601[System.ValueTuple\u00602[ulong,long]]:Value\n        mov      rbx, gword ptr [rdi]\n \t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 1.12\n-G_M34678_IG13:\n\u002BG_M34678_IG11:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for Azure.Storage.StorageCrc64Composer:Compose(System.Collections.Generic.IEnumerable\u00601[System.ValueTuple\u00602[ulong,long]]):ulong\n        call     [rax]Azure.Storage.StorageCrc64Composer:Compose(System.Collections.Generic.IEnumerable\u00601[System.ValueTuple\u00602[ulong,long]]):ulong\n        mov      rbx, rax\n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 1.88\n-G_M34678_IG14:\n\u002BG_M34678_IG12:\n        cmp      r12, rbx\n-       je       G_M34678_IG22\n-       jmp      SHORT G_M34678_IG19\n\u002B       je       G_M34678_IG20\n\u002B       jmp      SHORT G_M34678_IG17\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M34678_IG15:\n\u002BG_M34678_IG13:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M34678_IG16:\n\u002BG_M34678_IG14:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[System.ValueTuple\u00602[ulong,long]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      SHORT G_M34678_IG12\n\u002B       jmp      SHORT G_M34678_IG10\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M34678_IG17:\n\u002BG_M34678_IG15:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M34678_IG18:\n\u002BG_M34678_IG16:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_NoValue()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_NoValue()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M34678_IG19:\n\u002BG_M34678_IG17:\n        cmp      dword ptr [r14\u002B0x08], 16\n-       jge      SHORT G_M34678_IG21\n\u002B       jge      SHORT G_M34678_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0 PerfScore 0.00\n-G_M34678_IG20:\n\u002BG_M34678_IG18:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M34678_IG21:\n\u002BG_M34678_IG19:\n        add      r14, 24\n        mov      qword ptr [r14], rbx\n        mov      rdi, r13\n@@ -309,7 \u002B293,7 @@ G_M34678_IG21:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=85 bbWeight=0 PerfScore 0.00\n-G_M34678_IG22:\n\u002BG_M34678_IG20:\n        mov      rdi, r15\n        mov      rsi, r14\n        xor      edx, edx\n@@ -318,7 \u002B302,7 @@ G_M34678_IG22:\n        call     [rax\u002B0x28]System.Buffers.ArrayPool\u00601[byte]:Return(byte[],bool):this\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=27 bbWeight=1 PerfScore 6.25\n-G_M34678_IG23:\n\u002BG_M34678_IG21:\n        add      rsp, 56\n        pop      rbx\n        pop      r12\n@@ -328,16 \u002B312,16 @@ G_M34678_IG23:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M34678_IG24:\n\u002BG_M34678_IG22:\n        mov      rdi, 0xD1FFAB1E      ; System.Buffers.ArrayPool\u00601[byte]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M34678_IG03\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M34678_IG25:\n\u002BG_M34678_IG23:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M34678_IG26:\n\u002BG_M34678_IG24:\n        mov      rdi, gword ptr [rbp-0x50]\n        mov      rsi, gword ptr [rbp-0x58]\n        xor      edx, edx\n@@ -346,10 \u002B330,10 @@ G_M34678_IG26:\n        call     [rax\u002B0x28]System.Buffers.ArrayPool\u00601[byte]:Return(byte[],bool):this\n        nop      \n \t\t\t\t\t\t;; size=21 bbWeight=0 PerfScore 0.00\n-G_M34678_IG27:\n\u002BG_M34678_IG25:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 28, PerfScore 96.50, instruction count 196, allocated bytes for code 846 (MethodHash=96237889) for method Azure.Storage.Shared.StructuredMessageDecodingRetriableStream:ValidateCrc():ulong:this (FullOpts)\n\u002B; Total bytes of code 797, prolog size 28, PerfScore 89.12, instruction count 184, allocated bytes for code 797 (MethodHash=96237889) for method Azure.Storage.Shared.StructuredMessageDecodingRetriableStream:ValidateCrc():ulong:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":797},{"Assembly":"Azure.Storage.Files.Shares.dasm","Method":"Azure.Storage.Shared.StructuredMessageDecodingRetriableStream:ValidateCrc():ulong:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 797 bytes (-49)","ExtraInfo":null,"Diff":"@@ -19,14 \u002B19,14 @@\n ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V09 tmp1         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Span\u00601[byte]\u003E\n ;* V10 tmp2         [V10    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.ReadOnlySpan\u00601[byte]\u003E\n-;  V11 tmp3         [V11,T08] (  2,  4   )    long  -\u003E  r12         \u0022impAppendStmt\u0022\n\u002B;  V11 tmp3         [V11,T07] (  2,  4   )    long  -\u003E  r12         \u0022impAppendStmt\u0022\n ;* V12 tmp4         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    single-def\n ;* V13 tmp5         [V13    ] (  0,  0   )    long  -\u003E  zero-ref   \n-;  V14 tmp6         [V14,T09] (  5,  3   )    long  -\u003E  rbx        \n\u002B;  V14 tmp6         [V14,T08] (  5,  3   )    long  -\u003E  rbx        \n ;* V15 tmp7         [V15    ] (  0,  0   )    long  -\u003E  zero-ref    single-def\n ;* V16 tmp8         [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret multireg-dest single-def \u0022Return value temp for multireg return\u0022 \u003CSystem.ReadOnlySpan\u00601[byte]\u003E\n ;* V17 tmp9         [V17    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret multireg-dest single-def \u0022Return value temp for multireg return\u0022 \u003CSystem.ReadOnlySpan\u00601[byte]\u003E\n-;  V18 tmp10        [V18,T15] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData,System.Collections.Generic.IEnumerable\u00601[System.ValueTuple\u00602[ulong,long]]]\u003E\n\u002B;  V18 tmp10        [V18,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData,System.Collections.Generic.IEnumerable\u00601[System.ValueTuple\u00602[ulong,long]]]\u003E\n ;  V19 tmp11        [V19,T05] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022impSpillLclRefs\u0022 \u003CSystem.Collections.Generic.List\u00601[Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData]\u003E\n ;* V20 tmp12        [V20    ] (  0,  0   )    long  -\u003E  zero-ref    single-def\n ;* V21 tmp13        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -42,19 \u002B42,19 @@\n ;* V31 tmp23        [V31    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V32 tmp24        [V32    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.ReadOnlySpan\u00601[byte]\u003E\n ;* V33 tmp25        [V33    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.ReadOnlySpan\u00601[byte]\u003E\n-;  V34 tmp26        [V34,T07] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData]\u003E\n-;  V35 tmp27        [V35,T16] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CAzure.Storage.Shared.StructuredMessageDecodingRetriableStream\u002B\u003C\u003Ec\u003E\n-;  V36 tmp28        [V36,T19] (  3,  1.50)     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.ValueTuple\u00602[ulong,long]]\u003E\n\u002B;  V34 tmp26        [V34,T06] (  2,  4   )     ref  -\u003E  rdx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData]\u003E\n\u002B;  V35 tmp27        [V35,T14] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CAzure.Storage.Shared.StructuredMessageDecodingRetriableStream\u002B\u003C\u003Ec\u003E\n\u002B;  V36 tmp28        [V36,T17] (  3,  1.50)     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.ValueTuple\u00602[ulong,long]]\u003E\n ;* V37 tmp29        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData]\u003E\n ;* V38 tmp30        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData,System.Collections.Generic.IEnumerable\u00601[System.ValueTuple\u00602[ulong,long]]]\u003E\n ;  V39 tmp31        [V39,T04] (  5,  5   )     ref  -\u003E  [rbp-0x48]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Enumerable\u002BSelectManySingleSelectorIterator\u00602[Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData,System.ValueTuple\u00602[ulong,long]]\u003E\n-;* V40 tmp32        [V40,T23] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V41 tmp33        [V41,T20] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CAzure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData[]\u003E\n-;  V42 tmp34        [V42,T06] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData]\u003E\n-;  V43 tmp35        [V43    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;* V40 tmp32        [V40,T22] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V41 tmp33        [V41,T18] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CAzure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData[]\u003E\n\u002B;  V42 tmp34        [V42,T11] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData]\u003E\n\u002B;  V43 tmp35        [V43    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V44 tmp36        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V45 tmp37        [V45,T13] (  4,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CAzure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData\u003E\n-;  V46 tmp38        [V46,T14] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData]\u003E\n\u002B;  V45 tmp37        [V45,T19] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CAzure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData\u003E\n\u002B;* V46 tmp38        [V46    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData]\u003E\n ;* V47 tmp39        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CAzure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData\u003E\n ;* V48 tmp40        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003Cbyte[]\u003E\n ;* V49 tmp41        [V49    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n@@ -65,18 \u002B65,18 @@\n ;* V54 tmp46        [V54    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[SF] \u0022stack allocated Azure.Storage.BufferExtensions\u002BDisposableRentedArray\u00601\u0022 \u003CAzure.Storage.BufferExtensions\u002BDisposableRentedArray\u00601[byte]\u003E\n ;* V55 tmp47        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V03._reference (fldOffset=0x0)\u0022 P-INDEP\n ;* V56 tmp48        [V56    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V03._length (fldOffset=0x8)\u0022 P-INDEP\n-;  V57 tmp49        [V57,T21] (  2,  1   )   ubyte  -\u003E  rcx         single-def \u0022field V05.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V58 tmp50        [V58,T22] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V05.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V59 tmp51        [V59,T24] (  3,  0   )   byref  -\u003E  r14         single-def \u0022field V06._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V57 tmp49        [V57,T20] (  2,  1   )   ubyte  -\u003E  rcx         single-def \u0022field V05.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V58 tmp50        [V58,T21] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V05.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V59 tmp51        [V59,T23] (  3,  0   )   byref  -\u003E  r14         single-def \u0022field V06._reference (fldOffset=0x0)\u0022 P-INDEP\n ;* V60 tmp52        [V60    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V06._length (fldOffset=0x8)\u0022 P-INDEP\n-;  V61 tmp53        [V61,T10] (  4,  3   )   byref  -\u003E  r13         single-def \u0022field V09._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V61 tmp53        [V61,T09] (  4,  3   )   byref  -\u003E  r13         single-def \u0022field V09._reference (fldOffset=0x0)\u0022 P-INDEP\n ;* V62 tmp54        [V62    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V09._length (fldOffset=0x8)\u0022 P-INDEP\n ;* V63 tmp55        [V63    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022field V10._reference (fldOffset=0x0)\u0022 P-INDEP\n ;* V64 tmp56        [V64    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V10._length (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp57        [V65,T26] (  2,  0   )   byref  -\u003E  rbx         \u0022field V16._reference (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp58        [V66,T29] (  2,  0   )     int  -\u003E  r15         \u0022field V16._length (fldOffset=0x8)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=67 bbWeight=1 PerfScore 19.75\n G_M34678_IG05:\n-       test     rbx, rbx\n-       je       G_M34678_IG15\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M34678_IG06\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M34678_IG07\n-\t\t\t\t\t\t;; size=58 bbWeight=0.50 PerfScore 8.00\n-G_M34678_IG06:\n\u002B       test     rsi, rsi\n\u002B       je       G_M34678_IG13\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData](System.Collections.Generic.IEnumerable\u00601[Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData],byref):Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M34678_IG07:\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M34678_IG17\n\u002B       je       G_M34678_IG15\n        movzx    rcx, byte  ptr [rax\u002B0x38]\n        mov      rbx, qword ptr [rax\u002B0x40]\n        test     ecx, ecx\n-       je       G_M34678_IG18\n-       jmp      G_M34678_IG14\n-\t\t\t\t\t\t;; size=31 bbWeight=0.50 PerfScore 4.62\n-G_M34678_IG08:\n\u002B       je       G_M34678_IG16\n\u002B       jmp      G_M34678_IG12\n\u002B\t\t\t\t\t\t;; size=66 bbWeight=0.50 PerfScore 7.25\n\u002BG_M34678_IG06:\n\u002B       mov      rbx, rsi\n        mov      rdi, 0xD1FFAB1E      ; data for Azure.Storage.Shared.StructuredMessageDecodingRetriableStream\u002B\u003C\u003Ec:\u003C\u003E9__15_0\n        mov      rax, gword ptr [rdi]\n        test     rax, rax\n-       jne      SHORT G_M34678_IG09\n\u002B       jne      SHORT G_M34678_IG07\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData,System.Collections.Generic.IEnumerable\u00601[System.ValueTuple\u00602[ulong,long]]]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x40], rax\n@@ -201,21 \u002B185,21 @@ G_M34678_IG08:\n        mov      rax, gword ptr [rbp-0x40]\n        mov      gword ptr [rbp-0x38], rax\n        mov      rax, gword ptr [rbp-0x38]\n-\t\t\t\t\t\t;; size=107 bbWeight=0.50 PerfScore 8.12\n-G_M34678_IG09:\n\u002B\t\t\t\t\t\t;; size=110 bbWeight=0.50 PerfScore 8.25\n\u002BG_M34678_IG07:\n        test     rbx, rbx\n        mov      gword ptr [rbp-0x38], rax\n-       je       G_M34678_IG15\n\u002B       je       G_M34678_IG13\n        mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData[]\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFARRAY\n        call     [rcx]CORINFO_HELP_ISINSTANCEOFARRAY\n        test     rax, rax\n-       je       SHORT G_M34678_IG10\n\u002B       je       SHORT G_M34678_IG08\n        cmp      dword ptr [rax\u002B0x08], 0\n-       je       SHORT G_M34678_IG11\n\u002B       je       SHORT G_M34678_IG09\n \t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 5.12\n-G_M34678_IG10:\n\u002BG_M34678_IG08:\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BSelectManySingleSelectorIterator\u00602[Azure.Storage.Shared.StructuredMessageDecodingStream\u002BRawDecodedData,System.ValueTuple\u00602[ulong,long]]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x48], rax\n@@ -233,60 \u002B217,60 @@ G_M34678_IG10:\n        lea      rdi, bword ptr [rbx\u002B0x28]\n        mov      rsi, gword ptr [rbp-0x38]\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      SHORT G_M34678_IG13\n\u002B       jmp      SHORT G_M34678_IG11\n \t\t\t\t\t\t;; size=86 bbWeight=0.50 PerfScore 8.62\n-G_M34678_IG11:\n\u002BG_M34678_IG09:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       SHORT G_M34678_IG16\n\u002B       je       SHORT G_M34678_IG14\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 1.62\n-G_M34678_IG12:\n\u002BG_M34678_IG10:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Array\u002BEmptyArray\u00601[System.ValueTuple\u00602[ulong,long]]:Value\n        mov      rbx, gword ptr [rdi]\n \t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 1.12\n-G_M34678_IG13:\n\u002BG_M34678_IG11:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for Azure.Storage.StorageCrc64Composer:Compose(System.Collections.Generic.IEnumerable\u00601[System.ValueTuple\u00602[ulong,long]]):ulong\n        call     [rax]Azure.Storage.StorageCrc64Composer:Compose(System.Collections.Generic.IEnumerable\u00601[System.ValueTuple\u00602[ulong,long]]):ulong\n        mov      rbx, rax\n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 1.88\n-G_M34678_IG14:\n\u002BG_M34678_IG12:\n        cmp      r12, rbx\n-       je       G_M34678_IG22\n-       jmp      SHORT G_M34678_IG19\n\u002B       je       G_M34678_IG20\n\u002B       jmp      SHORT G_M34678_IG17\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M34678_IG15:\n\u002BG_M34678_IG13:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M34678_IG16:\n\u002BG_M34678_IG14:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[System.ValueTuple\u00602[ulong,long]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      SHORT G_M34678_IG12\n\u002B       jmp      SHORT G_M34678_IG10\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M34678_IG17:\n\u002BG_M34678_IG15:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M34678_IG18:\n\u002BG_M34678_IG16:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_NoValue()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_NoValue()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M34678_IG19:\n\u002BG_M34678_IG17:\n        cmp      dword ptr [r14\u002B0x08], 16\n-       jge      SHORT G_M34678_IG21\n\u002B       jge      SHORT G_M34678_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0 PerfScore 0.00\n-G_M34678_IG20:\n\u002BG_M34678_IG18:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M34678_IG21:\n\u002BG_M34678_IG19:\n        add      r14, 24\n        mov      qword ptr [r14], rbx\n        mov      rdi, r13\n@@ -309,7 \u002B293,7 @@ G_M34678_IG21:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=85 bbWeight=0 PerfScore 0.00\n-G_M34678_IG22:\n\u002BG_M34678_IG20:\n        mov      rdi, r15\n        mov      rsi, r14\n        xor      edx, edx\n@@ -318,7 \u002B302,7 @@ G_M34678_IG22:\n        call     [rax\u002B0x28]System.Buffers.ArrayPool\u00601[byte]:Return(byte[],bool):this\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=27 bbWeight=1 PerfScore 6.25\n-G_M34678_IG23:\n\u002BG_M34678_IG21:\n        add      rsp, 56\n        pop      rbx\n        pop      r12\n@@ -328,16 \u002B312,16 @@ G_M34678_IG23:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M34678_IG24:\n\u002BG_M34678_IG22:\n        mov      rdi, 0xD1FFAB1E      ; System.Buffers.ArrayPool\u00601[byte]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M34678_IG03\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M34678_IG25:\n\u002BG_M34678_IG23:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M34678_IG26:\n\u002BG_M34678_IG24:\n        mov      rdi, gword ptr [rbp-0x50]\n        mov      rsi, gword ptr [rbp-0x58]\n        xor      edx, edx\n@@ -346,10 \u002B330,10 @@ G_M34678_IG26:\n        call     [rax\u002B0x28]System.Buffers.ArrayPool\u00601[byte]:Return(byte[],bool):this\n        nop      \n \t\t\t\t\t\t;; size=21 bbWeight=0 PerfScore 0.00\n-G_M34678_IG27:\n\u002BG_M34678_IG25:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 28, PerfScore 96.50, instruction count 196, allocated bytes for code 846 (MethodHash=96237889) for method Azure.Storage.Shared.StructuredMessageDecodingRetriableStream:ValidateCrc():ulong:this (FullOpts)\n\u002B; Total bytes of code 797, prolog size 28, PerfScore 89.12, instruction count 184, allocated bytes for code 797 (MethodHash=96237889) for method Azure.Storage.Shared.StructuredMessageDecodingRetriableStream:ValidateCrc():ulong:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":797},{"Assembly":"Castle.Windsor.dasm","Method":"Castle.MicroKernel.ModelBuilder.Descriptors.DefaultsDescriptor:BuildComponentModel(Castle.MicroKernel.IKernel,Castle.Core.ComponentModel):this (FullOpts)","Category":"improvement","Description":"248 -\u003E 178 bytes (-70)","ExtraInfo":null,"Diff":"@@ -1,115 \u002B1,95 @@\n ; Assembly listing for method Castle.MicroKernel.ModelBuilder.Descriptors.DefaultsDescriptor:BuildComponentModel(Castle.MicroKernel.IKernel,Castle.Core.ComponentModel):this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 5 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T01] (  5,  4.50)     ref  -\u003E  r15         this class-hnd single-def \u003CCastle.MicroKernel.ModelBuilder.Descriptors.DefaultsDescriptor\u003E\n ;  V01 arg1         [V01,T02] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CCastle.MicroKernel.IKernel\u003E\n ;  V02 arg2         [V02,T00] (  7,  6   )     ref  -\u003E  rbx         class-hnd single-def \u003CCastle.Core.ComponentModel\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V04 tmp1         [V04,T06] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Type\u003E\n\u002B;  V04 tmp1         [V04,T05] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Type\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V06 tmp3         [V06,T04] (  4,  2   )     ref  -\u003E  rsi        \n-;  V07 tmp4         [V07,T03] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Type]\u003E\n-;  V08 tmp5         [V08    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V07 tmp4         [V07,T03] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Type]\u003E\n\u002B;  V08 tmp5         [V08    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V09 tmp6         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V10 tmp7         [V10,T07] (  3,  1.50)     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Type\u003E\n-;  V11 tmp8         [V11,T05] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Type]\u003E\n\u002B;  V10 tmp7         [V10,T06] (  2,  1   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Type\u003E\n\u002B;* V11 tmp8         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Type]\u003E\n ;* V12 tmp9         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CCastle.Core.ComponentModel\u003E\n ;* V13 tmp10        [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Type\u003E\n ;\n-; Lcl frame size = 16\n\u002B; Lcl frame size = 8\n \n G_M1799_IG01:\n        push     rbp\n        push     r15\n        push     r14\n-       push     r13\n        push     rbx\n-       sub      rsp, 16\n-       lea      rbp, [rsp\u002B0x30]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x20]\n        mov      r15, rdi\n        mov      r14, rsi\n        mov      rbx, rdx\n-\t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 6.50\n\u002B\t\t\t\t\t\t;; size=21 bbWeight=1 PerfScore 6.25\n G_M1799_IG02:\n        cmp      gword ptr [rbx\u002B0x80], 0\n-       jne      G_M1799_IG07\n-\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 3.00\n\u002B       jne      SHORT G_M1799_IG05\n\u002B\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.00\n G_M1799_IG03:\n        mov      rsi, gword ptr [r15\u002B0x08]\n        test     rsi, rsi\n-       jne      SHORT G_M1799_IG06\n-       mov      r13, gword ptr [rbx\u002B0x20]\n-       test     r13, r13\n-       je       G_M1799_IG09\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Type]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M1799_IG04\n-       lea      rsi, [rbp-0x28]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      rsi, rax\n-       jmp      SHORT G_M1799_IG05\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 10.75\n-G_M1799_IG04:\n-       lea      rdx, [rbp-0x28]\n-       mov      rsi, r13\n\u002B       jne      SHORT G_M1799_IG04\n\u002B       mov      rsi, gword ptr [rbx\u002B0x20]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M1799_IG07\n\u002B       lea      rdx, [rbp-0x20]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Type](System.Collections.Generic.IEnumerable\u00601[System.Type],byref):System.Type\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        mov      rsi, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M1799_IG05:\n-       cmp      byte  ptr [rbp-0x28], 0\n-       je       SHORT G_M1799_IG10\n-\t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 1.00\n-G_M1799_IG06:\n\u002B       cmp      byte  ptr [rbp-0x20], 0\n\u002B       je       SHORT G_M1799_IG08\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 6.38\n\u002BG_M1799_IG04:\n        lea      rdi, bword ptr [rbx\u002B0x80]\n        call     CORINFO_HELP_ASSIGN_REF\n \t\t\t\t\t\t;; size=12 bbWeight=0.50 PerfScore 0.75\n-G_M1799_IG07:\n\u002BG_M1799_IG05:\n        mov      rdi, r15\n        mov      rsi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for Castle.MicroKernel.ModelBuilder.Descriptors.DefaultsDescriptor:EnsureComponentName(Castle.Core.ComponentModel):this\n        call     [rax]Castle.MicroKernel.ModelBuilder.Descriptors.DefaultsDescriptor:EnsureComponentName(Castle.Core.ComponentModel):this\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n        mov      rax, 0xD1FFAB1E      ; code for Castle.MicroKernel.ModelBuilder.Descriptors.DefaultsDescriptor:EnsureComponentConfiguration(Castle.MicroKernel.IKernel,Castle.Core.ComponentModel):this\n        call     [rax]Castle.MicroKernel.ModelBuilder.Descriptors.DefaultsDescriptor:EnsureComponentConfiguration(Castle.MicroKernel.IKernel,Castle.Core.ComponentModel):this\n        nop      \n \t\t\t\t\t\t;; size=40 bbWeight=1 PerfScore 8.00\n-G_M1799_IG08:\n-       add      rsp, 16\n\u002BG_M1799_IG06:\n\u002B       add      rsp, 8\n        pop      rbx\n-       pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n-G_M1799_IG09:\n\u002B\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n\u002BG_M1799_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M1799_IG10:\n\u002BG_M1799_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 248, prolog size 17, PerfScore 36.00, instruction count 65, allocated bytes for code 248 (MethodHash=110bf8f8) for method Castle.MicroKernel.ModelBuilder.Descriptors.DefaultsDescriptor:BuildComponentModel(Castle.MicroKernel.IKernel,Castle.Core.ComponentModel):this (FullOpts)\n\u002B; Total bytes of code 178, prolog size 12, PerfScore 27.62, instruction count 49, allocated bytes for code 178 (MethodHash=110bf8f8) for method Castle.MicroKernel.ModelBuilder.Descriptors.DefaultsDescriptor:BuildComponentModel(Castle.MicroKernel.IKernel,Castle.Core.ComponentModel):this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":248,"DiffBytes":178},{"Assembly":"Castle.Windsor.dasm","Method":"Castle.MicroKernel.DefaultKernel:Castle.MicroKernel.IKernelInternal.LoadHandlerByType(System.String,System.Type,Castle.MicroKernel.Arguments):Castle.MicroKernel.IHandler:this (FullOpts)","Category":"same-size","Description":"470 -\u003E 470 bytes (0)","ExtraInfo":null,"Diff":"@@ -74,7 \u002B74,7 @@ G_M41389_IG04:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        cmp      byte  ptr [rax\u002B0x10], 0\n        jne      G_M41389_IG10\n        mov      qword ptr [rbp-0x38], rax\n@@ -176,7 \u002B176,7 @@ G_M41389_IG16:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n G_M41389_IG17:\n-       mov      edi, 70\n\u002B       mov      edi, 68\n        call     CORINFO_HELP_GETDYNAMIC_NONGCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED2\n        mov      r14, rax\n        mov      byte  ptr [r14\u002B0x10], 0","Truncated":true,"BaseBytes":470,"DiffBytes":470},{"Assembly":"ClosedXML.dasm","Method":"ClosedXML.Excel.XLCell:CopyConditionalFormatsFrom(ClosedXML.Excel.XLRangeBase):this (FullOpts)","Category":"improvement","Description":"2,360 -\u003E 2,304 bytes (-56)","ExtraInfo":null,"Diff":"@@ -9,28 \u002B9,28 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T24] (  9, 12   )     ref  -\u003E  rbx         this class-hnd single-def \u003CClosedXML.Excel.XLCell\u003E\n-;  V01 arg1         [V01,T43] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CClosedXML.Excel.XLRangeBase\u003E\n\u002B;  V01 arg1         [V01,T42] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CClosedXML.Excel.XLRangeBase\u003E\n ;  V02 loc0         [V02,T09] ( 13, 20.50)     ref  -\u003E  r14         class-hnd exact single-def \u003CClosedXML.Excel.XLCell\u002B\u003C\u003Ec__DisplayClass170_0\u003E\n-;  V03 loc1         [V03,T67] (  4,  3.50)     ref  -\u003E  r15         class-hnd single-def \u003CClosedXML.Excel.XLWorksheet\u003E\n-;  V04 loc2         [V04,T72] (  3,  2.50)     int  -\u003E  r13        \n-;  V05 loc3         [V05,T73] (  3,  2.50)     int  -\u003E  r12        \n-;  V06 loc4         [V06,T70] (  3,  3   )     int  -\u003E  r13        \n-;  V07 loc5         [V07,T71] (  3,  3   )     int  -\u003E  r12        \n\u002B;  V03 loc1         [V03,T66] (  4,  3.50)     ref  -\u003E  r15         class-hnd single-def \u003CClosedXML.Excel.XLWorksheet\u003E\n\u002B;  V04 loc2         [V04,T71] (  3,  2.50)     int  -\u003E  r13        \n\u002B;  V05 loc3         [V05,T72] (  3,  2.50)     int  -\u003E  r12        \n\u002B;  V06 loc4         [V06,T69] (  3,  3   )     int  -\u003E  r13        \n\u002B;  V07 loc5         [V07,T70] (  3,  3   )     int  -\u003E  r12        \n ;* V08 loc6         [V08    ] (  0,  0   )  struct (72) zero-ref    do-not-enreg[S] ld-addr-op \u003CClosedXML.Excel.XLRangeAddress\u003E\n ;* V09 loc7         [V09    ] (  0,  0   )  struct (32) zero-ref    do-not-enreg[SF] ld-addr-op \u003CClosedXML.Excel.XLAddress\u003E\n-;  V10 loc8         [V10,T74] (  4,  2   )     ref  -\u003E  [rbp-0xA8]  class-hnd spill-single-def \u003CClosedXML.Excel.IXLRange[]\u003E\n\u002B;  V10 loc8         [V10,T73] (  4,  2   )     ref  -\u003E  [rbp-0xA8]  class-hnd spill-single-def \u003CClosedXML.Excel.IXLRange[]\u003E\n ;* V11 loc9         [V11    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[ClosedXML.Excel.IXLConditionalFormat]\u003E\n ;* V12 loc10        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CClosedXML.Excel.IXLConditionalFormat\u003E\n-;  V13 loc11        [V13,T10] (  6, 20   )     ref  -\u003E  [rbp-0xB0]  class-hnd spill-single-def \u003CSystem.Collections.Generic.List\u00601[ClosedXML.Excel.XLRange]\u003E\n\u002B;  V13 loc11        [V13,T11] (  5, 18   )     ref  -\u003E  [rbp-0xB0]  class-hnd spill-single-def \u003CSystem.Collections.Generic.List\u00601[ClosedXML.Excel.XLRange]\u003E\n ;* V14 loc12        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CClosedXML.Excel.XLConditionalFormat\u003E\n ;* V15 loc13        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CSystem.Func\u00602[ClosedXML.Excel.IXLRange,ClosedXML.Excel.XLRange]\u003E\n ;  V16 OutArgs      [V16    ] (  1,  1   )  struct (64) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V17 tmp1         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CClosedXML.Excel.XLCell\u002B\u003C\u003Ec__DisplayClass170_0\u003E\n-;  V18 tmp2         [V18,T31] (  4,  8   )     ref  -\u003E  [rbp-0xB8]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[ClosedXML.Excel.IXLConditionalFormat,bool]\u003E\n-;  V19 tmp3         [V19,T52] (  2,  4   )     ref  -\u003E  [rbp-0xC0]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CClosedXML.Excel.XLConditionalFormats\u003E\n-;  V20 tmp4         [V20,T53] (  2,  4   )     ref  -\u003E  [rbp-0xC8]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CClosedXML.Excel.XLWorksheet\u003E\n-;  V21 tmp5         [V21,T32] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[ClosedXML.Excel.IXLConditionalFormat,bool]\u003E\n-;  V22 tmp6         [V22,T54] (  2,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CClosedXML.Excel.XLConditionalFormats\u003E\n\u002B;  V18 tmp2         [V18,T30] (  4,  8   )     ref  -\u003E  [rbp-0xB8]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[ClosedXML.Excel.IXLConditionalFormat,bool]\u003E\n\u002B;  V19 tmp3         [V19,T51] (  2,  4   )     ref  -\u003E  [rbp-0xC0]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CClosedXML.Excel.XLConditionalFormats\u003E\n\u002B;  V20 tmp4         [V20,T52] (  2,  4   )     ref  -\u003E  [rbp-0xC8]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CClosedXML.Excel.XLWorksheet\u003E\n\u002B;  V21 tmp5         [V21,T31] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[ClosedXML.Excel.IXLConditionalFormat,bool]\u003E\n\u002B;  V22 tmp6         [V22,T53] (  2,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CClosedXML.Excel.XLConditionalFormats\u003E\n ;  V23 tmp7         [V23,T17] (  2, 16   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CClosedXML.Excel.IXLRanges\u003E\n ;  V24 tmp8         [V24,T05] (  3, 24   )     ref  -\u003E  [rbp-0xD8]  class-hnd exact spill-single-def \u0022Single-def Box Helper\u0022 \u003CClosedXML.Excel.XLRangeAddress\u003E\n ;* V25 tmp9         [V25    ] (  0,  0   )  struct (72) zero-ref    do-not-enreg[S] \u0022stack copy for value returned via return buffer\u0022 \u003CClosedXML.Excel.XLRangeAddress\u003E\n@@ -40,74 \u002B40,74 @@\n ;  V29 tmp13        [V29,T25] (  4, 14   )     ref  -\u003E  rdx        \n ;  V30 tmp14        [V30,T00] (  8, 52   )     ref  -\u003E  [rbp-0xE8]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CClosedXML.Excel.XLConditionalFormat\u003E\n ;  V31 tmp15        [V31,T20] (  2, 16   )     ref  -\u003E  [rbp-0xF0]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CClosedXML.Excel.XLCell\u003E\n-;  V32 tmp16        [V32,T11] (  5, 20   )     ref  -\u003E  [rbp-0xF8]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[ClosedXML.Excel.IXLRange,ClosedXML.Excel.XLRange]\u003E\n-;  V33 tmp17        [V33,T45] (  4,  4   )     ref  -\u003E  [rbp-0x100]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[ClosedXML.Excel.IXLConditionalFormat,System.Collections.Generic.IEnumerable\u00601[ClosedXML.Excel.IXLRange]]\u003E\n-;  V34 tmp18        [V34,T46] (  4,  4   )     ref  -\u003E  [rbp-0x108]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CClosedXML.Excel.XLConditionalFormats\u003E\n-;  V35 tmp19        [V35,T77] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[ClosedXML.Excel.IXLRange,int]\u003E\n\u002B;  V32 tmp16        [V32,T10] (  5, 20   )     ref  -\u003E  [rbp-0xF8]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[ClosedXML.Excel.IXLRange,ClosedXML.Excel.XLRange]\u003E\n\u002B;  V33 tmp17        [V33,T44] (  4,  4   )     ref  -\u003E  [rbp-0x100]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[ClosedXML.Excel.IXLConditionalFormat,System.Collections.Generic.IEnumerable\u00601[ClosedXML.Excel.IXLRange]]\u003E\n\u002B;  V34 tmp18        [V34,T45] (  4,  4   )     ref  -\u003E  [rbp-0x108]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CClosedXML.Excel.XLConditionalFormats\u003E\n\u002B;  V35 tmp19        [V35,T76] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[ClosedXML.Excel.IXLRange,int]\u003E\n ;* V36 tmp20        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V37 tmp21        [V37,T75] (  4,  2   )     ref  -\u003E  rdx        \n-;  V38 tmp22        [V38,T78] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[ClosedXML.Excel.IXLRange,int]\u003E\n\u002B;  V37 tmp21        [V37,T74] (  4,  2   )     ref  -\u003E  rdx        \n\u002B;  V38 tmp22        [V38,T77] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[ClosedXML.Excel.IXLRange,int]\u003E\n ;* V39 tmp23        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V40 tmp24        [V40,T76] (  4,  2   )     ref  -\u003E  rdx        \n-;  V41 tmp25        [V41,T40] (  5,  5   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[ClosedXML.Excel.IXLRange,int]\u003E\n-;  V42 tmp26        [V42,T41] (  5,  5   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[ClosedXML.Excel.IXLRange,int]\u003E\n-;  V43 tmp27        [V43,T55] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CClosedXML.Excel.XLRangeBase\u003E\n\u002B;  V40 tmp24        [V40,T75] (  4,  2   )     ref  -\u003E  rdx        \n\u002B;  V41 tmp25        [V41,T39] (  5,  5   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[ClosedXML.Excel.IXLRange,int]\u003E\n\u002B;  V42 tmp26        [V42,T40] (  5,  5   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[ClosedXML.Excel.IXLRange,int]\u003E\n\u002B;  V43 tmp27        [V43,T54] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CClosedXML.Excel.XLRangeBase\u003E\n ;* V44 tmp28        [V44    ] (  0,  0   )  struct (72) zero-ref    do-not-enreg[SF] ld-addr-op \u0022Inline stloc first use temp\u0022 \u003CClosedXML.Excel.XLRangeAddress\u003E\n ;* V45 tmp29        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CClosedXML.Excel.XLRangeBase\u003E\n ;* V46 tmp30        [V46    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CClosedXML.Excel.XLRangeBase\u003E\n-;  V47 tmp31        [V47,T87] (  3,  1.50)     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[ClosedXML.Excel.IXLRange]\u003E\n... diff truncated; middle omitted ...\n ;  V167 rat1        [V167,T03] (  4, 28   )     ref  -\u003E  rcx         \u0022replacement local\u0022\n-;  V168 rat2        [V168,T35] (  3,  8   )    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n-;  V169 rat3        [V169,T85] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V170 rat4        [V170,T86] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V168 rat2        [V168,T34] (  3,  8   )    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n\u002B;  V169 rat3        [V169,T84] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V170 rat4        [V170,T85] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;  V171 rat5        [V171,T08] (  3, 24   )   byref  -\u003E  rsi         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n ;\n ; Lcl frame size = 328\n@@ -250,7 \u002B250,7 @@ G_M31276_IG03:\n        mov      qword ptr [rax\u002B0x18], rsi\n        mov      rcx, gword ptr [rbp-0x108]\n        test     rcx, rcx\n-       je       G_M31276_IG31\n\u002B       je       G_M31276_IG28\n        mov      rsi, rcx\n        mov      rdi, 0xD1FFAB1E      ; ClosedXML.Excel.IXLConditionalFormat[]\n        mov      rdx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFARRAY\n@@ -284,7 \u002B284,7 @@ G_M31276_IG04:\n G_M31276_IG05:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M31276_IG32\n\u002B       je       G_M31276_IG29\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n G_M31276_IG06:\n        mov      rsi, 0xD1FFAB1E      ; data for System.Array\u002BEmptyArray\u00601[ClosedXML.Excel.IXLRange]:Value\n@@ -449,12 \u002B449,12 @@ G_M31276_IG11:\n        mov      r15, rax\n        mov      r13d, dword ptr [r15\u002B0x14]\n        xor      r12d, r12d\n-       jmp      G_M31276_IG29\n\u002B       jmp      G_M31276_IG26\n \t\t\t\t\t\t;; size=186 bbWeight=1 PerfScore 33.75\n G_M31276_IG12:\n        mov      rdi, gword ptr [r15\u002B0x08]\n        cmp      r12d, dword ptr [rdi\u002B0x08]\n-       jae      G_M31276_IG36\n\u002B       jae      G_M31276_IG33\n        mov      rax, gword ptr [rdi\u002B8*r12\u002B0x10]\n        mov      gword ptr [rbp-0x128], rax\n        inc      r12d\n@@ -560,7 \u002B560,7 @@ G_M31276_IG17:\n        call     [r11]ClosedXML.Excel.IXLConditionalFormat:get_Ranges():ClosedXML.Excel.IXLRanges:this\n        mov      gword ptr [rbp-0x120], rax\n        test     rax, rax\n-       je       G_M31276_IG31\n\u002B       je       G_M31276_IG28\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[ClosedXML.Excel.IXLRange]\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n@@ -585,7 \u002B585,7 @@ G_M31276_IG19:\n \t\t\t\t\t\t;; size=33 bbWeight=2 PerfScore 10.00\n G_M31276_IG20:\n        cmp      byte  ptr [rbp-0x50], 0\n-       je       G_M31276_IG34\n\u002B       je       G_M31276_IG31\n        mov      rdi, rax\n        mov      r11, 0xD1FFAB1E      ; code for ClosedXML.Excel.IXLRangeBase:FirstCell():ClosedXML.Excel.IXLCell:this\n        call     [r11]ClosedXML.Excel.IXLRangeBase:FirstCell():ClosedXML.Excel.IXLCell:this\n@@ -596,38 \u002B596,19 @@ G_M31276_IG20:\n G_M31276_IG21:\n        mov      rdi, 0xD1FFAB1E      ; ClosedXML.Excel.XLCell\n        cmp      qword ptr [rcx], rdi\n-       jne      G_M31276_IG33\n\u002B       jne      G_M31276_IG30\n \t\t\t\t\t\t;; size=19 bbWeight=2 PerfScore 6.50\n G_M31276_IG22:\n        mov      gword ptr [rbp-0xF0], rcx\n-       mov      rcx, gword ptr [rbp-0xB0]\n-       test     rcx, rcx\n-       je       G_M31276_IG31\n-       mov      rsi, rcx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[ClosedXML.Excel.XLRange]\n-       mov      rdx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rdx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M31276_IG24\n-\t\t\t\t\t\t;; size=53 bbWeight=4 PerfScore 33.00\n-G_M31276_IG23:\n-       lea      rsi, [rbp-0x58]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M31276_IG25\n-\t\t\t\t\t\t;; size=19 bbWeight=2 PerfScore 19.50\n-G_M31276_IG24:\n-       lea      rdx, [rbp-0x58]\n        mov      rsi, gword ptr [rbp-0xB0]\n\u002B       test     rsi, rsi\n\u002B       je       G_M31276_IG28\n\u002B       lea      rdx, [rbp-0x58]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[ClosedXML.Excel.XLRange](System.Collections.Generic.IEnumerable\u00601[ClosedXML.Excel.XLRange],byref):ClosedXML.Excel.XLRange\n-       mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=2 PerfScore 10.00\n-G_M31276_IG25:\n\u002B       mov      rcx, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n\u002B       call     [rcx]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        cmp      byte  ptr [rbp-0x58], 0\n-       je       G_M31276_IG34\n\u002B       je       G_M31276_IG31\n        cmp      byte  ptr [rax], al\n        vxorps   ymm0, ymm0, ymm0\n        vmovdqu  ymmword ptr [rbp-0x78], ymm0\n@@ -655,15 \u002B636,15 @@ G_M31276_IG25:\n        mov      rax, gword ptr [rdi\u002B0x08]\n        mov      ecx, dword ptr [rdi\u002B0x10]\n        cmp      dword ptr [rax\u002B0x08], ecx\n-       ja       SHORT G_M31276_IG27\n-\t\t\t\t\t\t;; size=137 bbWeight=4 PerfScore 157.33\n-G_M31276_IG26:\n\u002B       ja       SHORT G_M31276_IG24\n\u002B\t\t\t\t\t\t;; size=186 bbWeight=4 PerfScore 186.33\n\u002BG_M31276_IG23:\n        mov      rsi, gword ptr [rbp-0xE8]\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n-       jmp      SHORT G_M31276_IG28\n\u002B       jmp      SHORT G_M31276_IG25\n \t\t\t\t\t\t;; size=21 bbWeight=2 PerfScore 12.50\n-G_M31276_IG27:\n\u002BG_M31276_IG24:\n        lea      esi, [rcx\u002B0x01]\n        mov      dword ptr [rdi\u002B0x10], esi\n        mov      esi, ecx\n@@ -672,15 \u002B653,15 @@ G_M31276_IG27:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST\n        call     [rax]CORINFO_HELP_ARRADDR_ST\n \t\t\t\t\t\t;; size=30 bbWeight=2 PerfScore 12.50\n-G_M31276_IG28:\n\u002BG_M31276_IG25:\n        cmp      r13d, dword ptr [r15\u002B0x14]\n-       jne      SHORT G_M31276_IG35\n\u002B       jne      SHORT G_M31276_IG32\n \t\t\t\t\t\t;; size=6 bbWeight=4 PerfScore 12.00\n-G_M31276_IG29:\n\u002BG_M31276_IG26:\n        cmp      r12d, dword ptr [r15\u002B0x10]\n        jb       G_M31276_IG12\n \t\t\t\t\t\t;; size=10 bbWeight=8 PerfScore 24.00\n-G_M31276_IG30:\n\u002BG_M31276_IG27:\n        add      rsp, 328\n        pop      rbx\n        pop      r12\n@@ -690,38 \u002B671,38 @@ G_M31276_IG30:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M31276_IG31:\n\u002BG_M31276_IG28:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M31276_IG32:\n\u002BG_M31276_IG29:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[ClosedXML.Excel.IXLRange]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M31276_IG06\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M31276_IG33:\n\u002BG_M31276_IG30:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rax]CORINFO_HELP_CHKCASTCLASS\n        int3     \n \t\t\t\t\t\t;; size=16 bbWeight=0 PerfScore 0.00\n-G_M31276_IG34:\n\u002BG_M31276_IG31:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M31276_IG35:\n\u002BG_M31276_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M31276_IG36:\n\u002BG_M31276_IG33:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 2360, prolog size 59, PerfScore 894.17, instruction count 467, allocated bytes for code 2360 (MethodHash=e97685d3) for method ClosedXML.Excel.XLCell:CopyConditionalFormatsFrom(ClosedXML.Excel.XLRangeBase):this (FullOpts)\n\u002B; Total bytes of code 2304, prolog size 59, PerfScore 860.67, instruction count 454, allocated bytes for code 2304 (MethodHash=e97685d3) for method ClosedXML.Excel.XLCell:CopyConditionalFormatsFrom(ClosedXML.Excel.XLRangeBase):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":2360,"DiffBytes":2304},{"Assembly":"Consul.dasm","Method":"Consul.GetRequest\u00601\u002B\u003CExecuteStreaming\u003Ed__11[System.Numerics.Vector\u00601[float]]:MoveNext():this (FullOpts)","Category":"improvement","Description":"1,458 -\u003E 1,431 bytes (-27)","ExtraInfo":null,"Diff":"@@ -8,8 \u002B8,8 @@\n ; 0 inlinees with PGO data; 57 single block inlinees; 13 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 45, 39   )   byref  -\u003E  [rbp-0x68]  this EH-live single-def\n-;  V01 loc0         [V01,T33] (  3,  3   )     int  -\u003E  rdi         single-def\n\u002B;  V00 this         [V00,T00] ( 42, 36   )   byref  -\u003E  [rbp-0x68]  this EH-live single-def\n\u002B;  V01 loc0         [V01,T35] (  3,  3   )     int  -\u003E  rdi         single-def\n ;  V02 loc1         [V02,T02] ( 11, 11   )     ref  -\u003E  rbx         class-hnd single-def \u003CConsul.GetRequest\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V03 loc2         [V03,T14] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n ;* V04 loc3         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CSystem.Net.Http.HttpRequestMessage\u003E\n@@ -22,106 \u002B22,108 @@\n ;* V11 loc10        [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Exception\u003E\n ;  V12 OutArgs      [V12    ] (  1,  1   )  struct ( 8) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V13 tmp1         [V13    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;* V14 tmp2         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;  V14 tmp2         [V14,T16] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Net.Http.HttpResponseMessage\u003E\n ;* V15 tmp3         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n-;  V16 tmp4         [V16,T16] (  2,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n-;* V17 tmp5         [V17    ] (  0,  0   )  struct ( 8) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.TimeSpan\u003E\n-;  V18 tmp6         [V18,T39] (  3,  0   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Net.HttpStatusCode\u003E\n-;  V19 tmp7         [V19,T41] (  2,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V20 tmp8         [V20,T40] (  3,  0   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CConsul.ConsulRequestException\u003E\n-;* V21 tmp9         [V21    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n\u002B;* V16 tmp4         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;  V17 tmp5         [V17,T17] (  2,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;* V18 tmp6         [V18    ] (  0,  0   )  struct ( 8) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.TimeSpan\u003E\n\u002B;  V19 tmp7         [V19,T41] (  3,  0   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Net.HttpStatusCode\u003E\n\u002B;  V20 tmp8         [V20,T43] (  2,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V21 tmp9         [V21,T42] (  3,  0   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CConsul.ConsulRequestException\u003E\n ;* V22 tmp10        [V22    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;* V23 tmp11        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n-;  V24 tmp12        [V24,T17] (  2,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.Net.Http.HttpMethod\u003E\n-;  V25 tmp13        [V25,T18] (  2,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V26 tmp14        [V26,T01] (  8, 16   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Net.Http.HttpRequestMessage\u003E\n-;  V27 tmp15        [V27,T42] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n-;  V28 tmp16        [V28,T03] (  5, 10   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Diagnostics.Stopwatch\u003E\n-;  V29 tmp17        [V29,T19] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Uri\u003E\n-;* V30 tmp18        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CConsul.ConsulClient\u003E\n\u002B;* V23 tmp11        [V23    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n\u002B;* V24 tmp12        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;  V25 tmp13        [V25,T18] (  2,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.Net.Http.HttpMethod\u003E\n\u002B;  V26 tmp14        [V26,T19] (  2,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V27 tmp15        [V27,T01] (  8, 16   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Net.Http.HttpRequestMessage\u003E\n\u002B;  V28 tmp16        [V28,T44] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V29 tmp17        [V29,T03] (  5, 10   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Diagnostics.Stopwatch\u003E\n\u002B;  V30 tmp18        [V30,T20] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Uri\u003E\n ;* V31 tmp19        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CConsul.ConsulClient\u003E\n-;  V32 tmp20        [V32,T29] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Net.Http.HttpResponseMessage]\u003E\n-;  V33 tmp21        [V33,T04] (  5, 10   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Net.Http.HttpClient\u003E\n-;* V34 tmp22        [V34    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V35 tmp23        [V35,T08] (  4,  8   )  struct (24) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u0022dup spill\u0022 \u003CSystem.ValueTuple\u00603[System.Threading.CancellationTokenSource,bool,System.Threading.CancellationTokenSource]\u003E\n-;* V36 tmp24        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;* V37 tmp25        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n-;* V38 tmp26        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;* V39 tmp27        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;* V40 tmp28        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;* V41 tmp29        [V41    ] (  0,  0   )     int  -\u003E  zero-ref    single-def\n-;* V42 tmp30        [V42    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[System.Net.Http.HttpResponseMessage]\u003E\n-;* V43 tmp31        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Net.Http.HttpResponseMessage]\u003E\n-;* V44 tmp32        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.Net.Http.HttpResponseMessage]\u003E\n-;* V45 tmp33        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Net.Http.HttpResponseMessage]\u003E\n-;* V46 tmp34        [V46,T36] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V47 tmp35        [V47,T20] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n-;* V48 tmp36        [V48    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;* V49 tmp37        [V49    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n\u002B;* V32 tmp20        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CConsul.ConsulClient\u003E\n\u002B;  V33 tmp21        [V33,T28] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Net.Http.HttpResponseMessage]\u003E\n\u002B;  V34 tmp22        [V34,T04] (  5, 10   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Net.Http.HttpClient\u003E\n\u002B;* V35 tmp23        [V35    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;  V36 tmp24        [V36,T07] (  4,  8   )  struct (24) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u0022dup spill\u0022 \u003CSystem.ValueTuple\u00603[System.Threading.CancellationTokenSource,bool,System.Threading.CancellationTokenSource]\u003E\n\u002B;* V37 tmp25        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;* V38 tmp26        [V38    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n\u002B;* V39 tmp27        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n... diff truncated; middle omitted ...\n\u002B;* V85 tmp73        [V85    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n\u002B;  V86 tmp74        [V86,T12] (  3,  6   )   byref  -\u003E  rbx         single-def \u0022Inlining Arg\u0022\n\u002B;  V87 tmp75        [V87,T29] (  3,  3   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[Consul.QueryResult\u00601[System.IO.Stream]]\u003E\n\u002B;* V88 tmp76        [V88    ] (  0,  0   )     ref  -\u003E  zero-ref    ld-addr-op class-hnd single-def \u0022Inlining Arg\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;  V89 tmp77        [V89,T06] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[Consul.QueryResult\u00601[System.IO.Stream]]\u003E\n\u002B;* V90 tmp78        [V90    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V91 tmp79        [V91    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;* V92 tmp80        [V92    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n\u002B;  V93 tmp81        [V93    ] (  7,  7   )     ref  -\u003E  [rbp-0x38]  do-not-enreg[X] addr-exposed \u0022field V06.m_task (fldOffset=0x0)\u0022 P-DEP\n\u002B;  V94 tmp82        [V94    ] (  5,  5   )     int  -\u003E  [rbp-0x30]  do-not-enreg[X] addr-exposed \u0022field V06.m_options (fldOffset=0x8)\u0022 P-DEP\n\u002B;  V95 tmp83        [V95    ] (  7,  7   )     ref  -\u003E  [rbp-0x48]  do-not-enreg[X] addr-exposed \u0022field V09.m_task (fldOffset=0x0)\u0022 P-DEP\n\u002B;  V96 tmp84        [V96    ] (  5,  5   )     int  -\u003E  [rbp-0x40]  do-not-enreg[X] addr-exposed \u0022field V09.m_options (fldOffset=0x8)\u0022 P-DEP\n\u002B;* V97 tmp85        [V97    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022field V18._ticks (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V98 tmp86        [V98,T30] (  3,  3   )     ref  -\u003E  r13         single-def \u0022field V35._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V99 tmp87        [V99    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V45.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V100 tmp88       [V100    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V45.m_options (fldOffset=0x8)\u0022 P-INDEP\n\u002B;* V101 tmp89       [V101    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V58._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V102 tmp90       [V102    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V59._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V103 tmp91       [V103    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V66.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V104 tmp92       [V104    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V66.m_options (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V105 tmp93       [V105,T36] (  2,  2   )    long  -\u003E  rsi         single-def \u0022field V83._ticks (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V106 tmp94       [V106    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V90._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V107 tmp95       [V107,T25] (  2,  4   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n ;  V108 tmp96       [V108,T26] (  2,  4   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V109 tmp97       [V109,T27] (  2,  4   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V110 cse0        [V110,T13] (  5,  4   )     int  -\u003E  r15         \u0022CSE #06: moderate\u0022\n-;  V111 cse1        [V111,T32] (  3,  3   )     ref  -\u003E  r15         \u0022CSE #04: conservative\u0022\n-;  V112 cse2        [V112,T28] (  2,  2   )     ref  -\u003E  rax         \u0022CSE #05: conservative\u0022\n-;  V113 rat0        [V113,T38] (  5, 10   )  simd16  -\u003E  mm0         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n\u002B;  V109 cse0        [V109,T13] (  5,  4   )     int  -\u003E  r15         \u0022CSE #06: moderate\u0022\n\u002B;  V110 cse1        [V110,T31] (  3,  3   )     ref  -\u003E  r15         \u0022CSE #04: moderate\u0022\n\u002B;  V111 cse2        [V111,T27] (  2,  2   )     ref  -\u003E  rax         \u0022CSE #05: moderate\u0022\n\u002B;  V112 cse3        [V112,T32] (  3,  3   )   byref  -\u003E  rdi         \u0022CSE #01: moderate\u0022\n\u002B;  V113 cse4        [V113,T33] (  3,  3   )   byref  -\u003E  rdi         \u0022CSE #03: moderate\u0022\n\u002B;  V114 cse5        [V114,T34] (  3,  3   )     ref  -\u003E  rsi         \u0022CSE #08: moderate\u0022\n\u002B;  V115 rat0        [V115,T40] (  5, 10   )  simd16  -\u003E  mm0         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n ;\n ; Lcl frame size = 72\n \n@@ -150,17 \u002B152,18 @@ G_M39984_IG02:\n G_M39984_IG03:\n        test     edi, edi\n        jne      G_M39984_IG09\n-\t\t\t\t\t\t;; size=8 bbWeight=1 PerfScore 1.25\n\u002B       lea      rdi, bword ptr [rsi\u002B0x38]\n\u002B\t\t\t\t\t\t;; size=12 bbWeight=1 PerfScore 1.75\n G_M39984_IG04:\n-       vmovdqu  xmm0, xmmword ptr [rsi\u002B0x38]\n\u002B       vmovdqu  xmm0, xmmword ptr [rdi]\n        vmovdqu  xmmword ptr [rbp-0x38], xmm0\n-\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.00\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.00\n G_M39984_IG05:\n-       xor      edi, edi\n-       mov      qword ptr [rsi\u002B0x38], rdi\n-       mov      qword ptr [rsi\u002B0x40], rdi\n\u002B       xor      eax, eax\n\u002B       mov      qword ptr [rdi], rax\n\u002B       mov      qword ptr [rdi\u002B0x08], rax\n        mov      dword ptr [rsi\u002B0x20], -1\n-\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 3.25\n\u002B\t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 3.25\n G_M39984_IG06:\n        mov      rsi, bword ptr [rbp-0x68]\n        mov      rdi, gword ptr [rbp-0x38]\n@@ -178,14 \u002B181,9 @@ G_M39984_IG07:\n        mov      r15, bword ptr [rbp-0x68]\n        lea      rdi, bword ptr [r15\u002B0x18]\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n-       mov      r14, gword ptr [r15\u002B0x18]\n-       mov      rsi, gword ptr [r15\u002B0x10]\n-       mov      rdi, 0xD1FFAB1E      ; Consul.QueryResult\u00601[System.Numerics.Vector\u00601[float]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      rdx, rax\n-       mov      rsi, r14\n\u002B       mov      rsi, gword ptr [r15\u002B0x18]\n        mov      rdi, rbx\n\u002B       xor      rdx, rdx\n        mov      rax, 0xD1FFAB1E      ; code for Consul.GetRequest\u00601[System.Numerics.Vector\u00601[float]]:ParseQueryHeaders(System.Net.Http.HttpResponseMessage,Consul.QueryResult\u00601[System.Numerics.Vector\u00601[float]]):this\n        call     [rax]Consul.GetRequest\u00601[System.Numerics.Vector\u00601[float]]:ParseQueryHeaders(System.Net.Http.HttpResponseMessage,Consul.QueryResult\u00601[System.Numerics.Vector\u00601[float]]):this\n        mov      rdi, gword ptr [r15\u002B0x10]\n@@ -210,7 \u002B208,7 @@ G_M39984_IG07:\n        mov      rdi, gword ptr [rbp-0x48]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M39984_IG12\n-\t\t\t\t\t\t;; size=157 bbWeight=1 PerfScore 47.25\n\u002B\t\t\t\t\t\t;; size=127 bbWeight=1 PerfScore 41.50\n G_M39984_IG08:\n        mov      r15, bword ptr [rbp-0x68]\n        mov      dword ptr [r15\u002B0x20], 1\n@@ -234,17 \u002B232,18 @@ G_M39984_IG08:\n G_M39984_IG09:\n        cmp      edi, 1\n        jne      G_M39984_IG16\n-\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 1.25\n\u002B       lea      rdi, bword ptr [rsi\u002B0x48]\n\u002B\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 1.75\n G_M39984_IG10:\n-       vmovdqu  xmm0, xmmword ptr [rsi\u002B0x48]\n\u002B       vmovdqu  xmm0, xmmword ptr [rdi]\n        vmovdqu  xmmword ptr [rbp-0x48], xmm0\n-\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.00\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.00\n G_M39984_IG11:\n-       xor      edi, edi\n-       mov      qword ptr [rsi\u002B0x48], rdi\n-       mov      qword ptr [rsi\u002B0x50], rdi\n\u002B       xor      eax, eax\n\u002B       mov      qword ptr [rdi], rax\n\u002B       mov      qword ptr [rdi\u002B0x08], rax\n        mov      dword ptr [rsi\u002B0x20], -1\n-\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 3.25\n\u002B\t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 3.25\n G_M39984_IG12:\n        mov      rdi, gword ptr [rbp-0x48]\n        mov      eax, dword ptr [rdi\u002B0x34]\n@@ -445,15 \u002B444,15 @@ G_M39984_IG22:\n G_M39984_IG23:\n        mov      gword ptr [rbx\u002B0x18], rsi\n        add      rbx, 40\n-       cmp      gword ptr [rbx], 0\n-       je       SHORT G_M39984_IG24\n        mov      rsi, gword ptr [rbx]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M39984_IG24\n        mov      rdx, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[Consul.QueryResult\u00601[System.IO.Stream]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        jmp      SHORT G_M39984_IG28\n-\t\t\t\t\t\t;; size=44 bbWeight=1 PerfScore 12.00\n\u002B\t\t\t\t\t\t;; size=43 bbWeight=1 PerfScore 10.25\n G_M39984_IG24:\n        test     r15, r15\n        je       SHORT G_M39984_IG25\n@@ -529,5 \u002B528,5 @@ RWD00  \tdq\t3F847AE147AE147Bh\t;         0.01\n RWD08  \tdq\t43E0000000000000h\n \n \n-; Total bytes of code 1458, prolog size 50, PerfScore 315.75, instruction count 330, allocated bytes for code 1458 (MethodHash=ca0e63cf) for method Consul.GetRequest\u00601\u002B\u003CExecuteStreaming\u003Ed__11[System.Numerics.Vector\u00601[float]]:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 1431, prolog size 50, PerfScore 309.25, instruction count 327, allocated bytes for code 1431 (MethodHash=ca0e63cf) for method Consul.GetRequest\u00601\u002B\u003CExecuteStreaming\u003Ed__11[System.Numerics.Vector\u00601[float]]:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1458,"DiffBytes":1431},{"Assembly":"CsvHelper.dasm","Method":"CsvHelper.CsvWriter:WriteHeader(System.Type):this (FullOpts)","Category":"improvement","Description":"1,261 -\u003E 1,128 bytes (-133)","ExtraInfo":null,"Diff":"@@ -8,43 \u002B8,43 @@\n ; 0 inlinees with PGO data; 20 single block inlinees; 5 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T10] ( 12, 31   )     ref  -\u003E  rbx         this class-hnd single-def \u003CCsvHelper.CsvWriter\u003E\n-;  V01 arg1         [V01,T28] (  7,  5.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Type\u003E\n\u002B;  V00 this         [V00,T09] ( 12, 31   )     ref  -\u003E  rbx         this class-hnd single-def \u003CCsvHelper.CsvWriter\u003E\n\u002B;  V01 arg1         [V01,T26] (  7,  5.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Type\u003E\n ;  V02 loc0         [V02,T02] ( 14, 93   )     ref  -\u003E  r15         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.String]\u003E\n ;* V03 loc1         [V03    ] (  0,  0   )    long  -\u003E  zero-ref    class-hnd exact \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[CsvHelper.Configuration.MemberMap]\u003E\n-;  V04 loc2         [V04,T09] (  8, 34   )     ref  -\u003E  [rbp-0x58]  class-hnd \u003CCsvHelper.Configuration.MemberMap\u003E\n-;  V05 loc3         [V05,T16] (  3, 20   )     int  -\u003E  [rbp-0x2C]  spill-single-def\n\u002B;  V04 loc2         [V04,T08] (  8, 34   )     ref  -\u003E  [rbp-0x58]  class-hnd \u003CCsvHelper.Configuration.MemberMap\u003E\n\u002B;  V05 loc3         [V05,T15] (  3, 20   )     int  -\u003E  [rbp-0x2C]  spill-single-def\n ;  V06 loc4         [V06,T03] (  5, 66   )     int  -\u003E  [rbp-0x30]  ld-addr-op\n ;  V07 loc5         [V07,T05] (  4, 48   )     ref  -\u003E  [rbp-0x60]  class-hnd exact spill-single-def \u003CSystem.String\u003E\n ;* V08 loc6         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CSystem.String\u003E\n ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V10 tmp1         [V10,T30] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CCsvHelper.Configuration.MemberMapCollection\u003E\n-;  V11 tmp2         [V11,T33] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.String]\u003E\n\u002B;  V10 tmp1         [V10,T28] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CCsvHelper.Configuration.MemberMapCollection\u003E\n\u002B;  V11 tmp2         [V11,T31] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.String]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022non-inline candidate call\u0022\n ;* V13 tmp4         [V13    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022non-inline candidate call\u0022\n ;* V14 tmp5         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n ;* V15 tmp6         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022non-inline candidate call\u0022 \u003CCsvHelper.Configuration.ClassMapCollection\u003E\n-;  V16 tmp7         [V16,T48] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V17 tmp8         [V17,T43] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CCsvHelper.Configuration.MemberMapComparer\u003E\n-;  V18 tmp9         [V18,T34] (  3,  3   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[CsvHelper.Configuration.MemberMap]\u003E\n\u002B;  V16 tmp7         [V16,T46] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V17 tmp8         [V17,T41] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CCsvHelper.Configuration.MemberMapComparer\u003E\n\u002B;  V18 tmp9         [V18,T32] (  3,  3   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[CsvHelper.Configuration.MemberMap]\u003E\n ;* V19 tmp10        [V19    ] (  0,  0   )    long  -\u003E  zero-ref    class-hnd exact \u0022Single-def Box Helper\u0022 \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[CsvHelper.Configuration.MemberMap]\u003E\n ;* V20 tmp11        [V20    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[S] \u0022stack copy for value returned via return buffer\u0022 \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[CsvHelper.Configuration.MemberMap]\u003E\n-;  V21 tmp12        [V21,T35] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[CsvHelper.Configuration.MemberMap]\u003E\n\u002B;  V21 tmp12        [V21,T33] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[CsvHelper.Configuration.MemberMap]\u003E\n ;* V22 tmp13        [V22    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[CsvHelper.Configuration.MemberMap]\u003E\n ;* V23 tmp14        [V23    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Spilling to split statement for tree\u0022\n ;* V24 tmp15        [V24    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Spilling to split statement for tree\u0022\n-;  V25 tmp16        [V25,T00] (  4,112   )     ref  -\u003E  [rbp-0x68]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CCsvHelper.Configuration.MemberNameCollection\u003E\n-;  V26 tmp17        [V26    ] (  2, 16   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V27 tmp18        [V27,T11] (  3, 32   )     ref  -\u003E  [rbp-0x70]  class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n-;  V28 tmp19        [V28,T06] (  4, 48   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n-;  V29 tmp20        [V29,T08] (  3, 40   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.String[]\u003E\n-;  V30 tmp21        [V30,T07] (  4, 48   )     int  -\u003E  rcx         \u0022Inline stloc first use temp\u0022\n-;  V31 tmp22        [V31,T17] (  4, 16   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CCsvHelper.Configuration.MemberNameCollection\u003E\n-;  V32 tmp23        [V32    ] (  2,  4   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V33 tmp24        [V33,T24] (  5, 10   )     ref  -\u003E  [rbp-0x80]  class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n-;  V34 tmp25        [V34,T26] (  4,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n-;  V35 tmp26        [V35,T29] (  3,  6   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.String[]\u003E\n-;  V36 tmp27        [V36,T27] (  4,  8   )     int  -\u003E  rcx         \u0022Inline stloc first use temp\u0022\n\u002B;  V25 tmp16        [V25,T00] (  3, 96   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CCsvHelper.Configuration.MemberNameCollection\u003E\n\u002B;  V26 tmp17        [V26    ] (  1, 16   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V27 tmp18        [V27,T10] (  2, 32   )     ref  -\u003E  [rbp-0x68]  class-hnd spill-single-def \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n\u002B;* V28 tmp19        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n\u002B;  V29 tmp20        [V29,T07] (  3, 40   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.String[]\u003E\n\u002B;  V30 tmp21        [V30,T06] (  4, 48   )     int  -\u003E  rcx         \u0022Inline stloc first use temp\u0022\n\u002B;  V31 tmp22        [V31,T17] (  3, 12   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CCsvHelper.Configuration.MemberNameCollection\u003E\n\u002B;  V32 tmp23        [V32    ] (  1,  2   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V33 tmp24        [V33,T24] (  4,  8   )     ref  -\u003E  [rbp-0x70]  class-hnd spill-single-def \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n\u002B;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n\u002B;  V35 tmp26        [V35,T27] (  3,  6   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.String[]\u003E\n\u002B;  V36 tmp27        [V36,T25] (  4,  8   )     int  -\u003E  rcx         \u0022Inline stloc first use temp\u0022\n ;* V37 tmp28        [V37    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Spilling to split statement for tree\u0022\n ;* V38 tmp29        [V38    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Spilling to split statement for tree\u0022\n ;* V39 tmp30        [V39    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n@@ -55,37 \u002B55,37 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )  struct (32) zero-ref    do-not-enreg[SF] \u0022stack allocated [boxed] System.Collections.Generic.List\u00601\u002BEnumerator\u0022 \u003C[boxed] System.Collections.Generic.List\u00601\u002BEnumerator[CsvHelper.Configuration.MemberMap]\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V22._list (fldOffset=0x0)\u0022 P-INDEP\n ;* V46 tmp37        [V46    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V22._current (fldOffset=0x8)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T46] (  2,  1   )     int  -\u003E  r13         single-def \u0022field V22._version (fldOffset=0x10)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n        mov      edi, ecx\n        lea      rdi, bword ptr [rax\u002B8*rdi\u002B0x10]\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x70]\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M15595_IG07\n-\t\t\t\t\t\t;; size=72 bbWeight=2 PerfScore 49.00\n-G_M15595_IG11:\n\u002B\t\t\t\t\t\t;; size=34 bbWeight=2 PerfScore 15.50\n\u002BG_M15595_IG10:\n        mov      rdi, gword ptr [rbp-0x58]\n        mov      rax, qword ptr [rbp-0x48]\n        call     [rax\u002B0x20]CsvHelper.Configuration.MemberMap:get_Data():CsvHelper.Configuration.MemberMapData:this\n@@ -296,7 \u002B281,7 @@ G_M15595_IG11:\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x28]CsvHelper.Configuration.MemberMapData:get_IndexEnd():int:this\n-       mov      dword ptr [rbp-0x8C], eax\n\u002B       mov      dword ptr [rbp-0x7C], eax\n        mov      rdi, gword ptr [rbp-0x58]\n        mov      rcx, qword ptr [rbp-0x48]\n        call     [rcx\u002B0x20]CsvHelper.Configuration.MemberMap:get_Data():CsvHelper.Configuration.MemberMapData:this\n@@ -304,29 \u002B289,52 @@ G_M15595_IG11:\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x18]CsvHelper.Configuration.MemberMapData:get_Index():int:this\n-       mov      ecx, dword ptr [rbp-0x8C]\n\u002B       mov      ecx, dword ptr [rbp-0x7C]\n        sub      ecx, eax\n        lea      eax, [rcx\u002B0x01]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [rbp-0x30], 1\n        test     eax, eax\n        jle      G_M15595_IG07\n-       jmp      G_M15595_IG17\n-\t\t\t\t\t\t;; size=88 bbWeight=2 PerfScore 65.00\n\u002B       jmp      SHORT G_M15595_IG13\n\u002B\t\t\t\t\t\t;; size=79 bbWeight=2 PerfScore 65.00\n\u002BG_M15595_IG11:\n\u002B       lea      edi, [rcx\u002B0x01]\n\u002B       mov      dword ptr [r15\u002B0x10], edi\n\u002B       mov      edi, ecx\n\u002B       lea      rdi, bword ptr [rax\u002B8*rdi\u002B0x10]\n\u002B       mov      rsi, gword ptr [rbp-0x60]\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B\t\t\t\t\t\t;; size=23 bbWeight=8 PerfScore 38.00\n G_M15595_IG12:\n\u002B       mov      edi, dword ptr [rbp-0x30]\n\u002B       inc      edi\n\u002B       mov      eax, dword ptr [rbp-0x2C]\n\u002B       cmp      edi, eax\n\u002B       mov      dword ptr [rbp-0x30], edi\n\u002B       jg       G_M15595_IG07\n\u002B\t\t\t\t\t\t;; size=19 bbWeight=16 PerfScore 72.00\n\u002BG_M15595_IG13:\n\u002B       mov      rdi, gword ptr [rbp-0x58]\n\u002B       mov      rdx, qword ptr [rbp-0x48]\n\u002B       call     [rdx\u002B0x20]CsvHelper.Configuration.MemberMap:get_Data():CsvHelper.Configuration.MemberMapData:this\n\u002B       mov      rdi, rax\n\u002B       mov      rax, qword ptr [rax]\n\u002B       mov      rax, qword ptr [rax\u002B0x40]\n\u002B       call     [rax\u002B0x30]CsvHelper.Configuration.MemberMapData:get_Names():CsvHelper.Configuration.MemberNameCollection:this\n\u002B       test     rax, rax\n\u002B       je       G_M15595_IG19\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, gword ptr [rbp-0x68]\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.String](System.Collections.Generic.IEnumerable\u00601[System.String],byref):System.String\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      gword ptr [rbp-0x70], rax\n-\t\t\t\t\t\t;; size=34 bbWeight=8 PerfScore 48.00\n-G_M15595_IG13:\n\u002B       mov      gword ptr [rbp-0x68], rax\n        mov      edi, dword ptr [rbp-0x30]\n        mov      rcx, 0xD1FFAB1E      ; code for System.Number:Int32ToDecStr(int):System.String\n        call     [rcx]System.Number:Int32ToDecStr(int):System.String\n        mov      rsi, rax\n-       mov      rdi, gword ptr [rbp-0x70]\n\u002B       mov      rdi, gword ptr [rbp-0x68]\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Concat(System.String,System.String):System.String\n        call     [rax]System.String:Concat(System.String,System.String):System.String\n        mov      gword ptr [rbp-0x60], rax\n@@ -339,59 \u002B347,16 @@ G_M15595_IG13:\n        mov      rax, gword ptr [r15\u002B0x08]\n        mov      ecx, dword ptr [r15\u002B0x10]\n        cmp      dword ptr [rax\u002B0x08], ecx\n-       ja       SHORT G_M15595_IG15\n-\t\t\t\t\t\t;; size=72 bbWeight=16 PerfScore 420.00\n\u002B       ja       G_M15595_IG11\n\u002B\t\t\t\t\t\t;; size=142 bbWeight=16 PerfScore 720.00\n G_M15595_IG14:\n        mov      rdi, r15\n        mov      rsi, gword ptr [rbp-0x60]\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n-       jmp      SHORT G_M15595_IG16\n-\t\t\t\t\t\t;; size=21 bbWeight=8 PerfScore 52.00\n\u002B       jmp      G_M15595_IG12\n\u002B\t\t\t\t\t\t;; size=24 bbWeight=8 PerfScore 52.00\n G_M15595_IG15:\n-       lea      edi, [rcx\u002B0x01]\n-       mov      dword ptr [r15\u002B0x10], edi\n-       mov      edi, ecx\n-       lea      rdi, bword ptr [rax\u002B8*rdi\u002B0x10]\n-       mov      rsi, gword ptr [rbp-0x60]\n-       call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=23 bbWeight=8 PerfScore 38.00\n-G_M15595_IG16:\n-       mov      edi, dword ptr [rbp-0x30]\n-       inc      edi\n-       mov      eax, dword ptr [rbp-0x2C]\n-       cmp      edi, eax\n-       mov      dword ptr [rbp-0x30], edi\n-       jg       G_M15595_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=16 PerfScore 72.00\n-G_M15595_IG17:\n-       mov      rdi, gword ptr [rbp-0x58]\n-       mov      rdx, qword ptr [rbp-0x48]\n-       call     [rdx\u002B0x20]CsvHelper.Configuration.MemberMap:get_Data():CsvHelper.Configuration.MemberMapData:this\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x40]\n-       call     [rax\u002B0x30]CsvHelper.Configuration.MemberMapData:get_Names():CsvHelper.Configuration.MemberNameCollection:this\n-       mov      gword ptr [rbp-0x68], rax\n-       test     rax, rax\n-       je       G_M15595_IG23\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.String]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       G_M15595_IG12\n-\t\t\t\t\t\t;; size=71 bbWeight=16 PerfScore 312.00\n-G_M15595_IG18:\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      gword ptr [rbp-0x70], rax\n-       jmp      G_M15595_IG13\n-\t\t\t\t\t\t;; size=26 bbWeight=8 PerfScore 86.00\n-G_M15595_IG19:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:ToArray():System.__Canon[]:this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:ToArray():System.__Canon[]:this\n@@ -400,8 \u002B365,8 @@ G_M15595_IG19:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      byte  ptr [rbx\u002B0xDE], 1\n \t\t\t\t\t\t;; size=37 bbWeight=0.50 PerfScore 3.12\n-G_M15595_IG20:\n-       add      rsp, 104\n\u002BG_M15595_IG16:\n\u002B       add      rsp, 88\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -410,7 \u002B375,7 @@ G_M15595_IG20:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M15595_IG21:\n\u002BG_M15595_IG17:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -422,27 \u002B387,27 @@ G_M15595_IG21:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M15595_IG22:\n\u002BG_M15595_IG18:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[CsvHelper.Configuration.MemberMap]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M15595_IG05\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M15595_IG23:\n\u002BG_M15595_IG19:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M15595_IG24:\n\u002BG_M15595_IG20:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M15595_IG25:\n\u002BG_M15595_IG21:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1261, prolog size 38, PerfScore 1450.88, instruction count 306, allocated bytes for code 1261 (MethodHash=ca7bc314) for method CsvHelper.CsvWriter:WriteHeader(System.Type):this (FullOpts)\n\u002B; Total bytes of code 1128, prolog size 38, PerfScore 1271.88, instruction count 279, allocated bytes for code 1128 (MethodHash=ca7bc314) for method CsvHelper.CsvWriter:WriteHeader(System.Type):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1261,"DiffBytes":1128},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.CompositeDistributedLockHandleExtensions\u002B\u003C\u003Ec:\u003CTryAcquireAllReadLocksInternalAsync\u003Eb__3_1(Medallion.Threading.IDistributedReaderWriterLock,System.TimeSpan,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask\u00601[Medallion.Threading.IDistributedSynchronizationHandle]:this (FullOpts)","Category":"same-size","Description":"153 -\u003E 153 bytes (0)","ExtraInfo":null,"Diff":"@@ -1,91 \u002B1,91 @@\n ; Assembly listing for method Medallion.Threading.CompositeDistributedLockHandleExtensions\u002B\u003C\u003Ec:\u003CTryAcquireAllReadLocksInternalAsync\u003Eb__3_1(Medallion.Threading.IDistributedReaderWriterLock,System.TimeSpan,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask\u00601[Medallion.Threading.IDistributedSynchronizationHandle]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; fully interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;* V00 this         [V00    ] (  0,  0   )     ref  -\u003E  zero-ref    this class-hnd single-def \u003CMedallion.Threading.CompositeDistributedLockHandleExtensions\u002B\u003C\u003Ec\u003E\n ;  V01 RetBuf       [V01,T00] (  8,  5   )    long  -\u003E  rbx         single-def\n ;  V02 arg1         [V02,T01] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CMedallion.Threading.IDistributedReaderWriterLock\u003E\n ;* V03 arg2         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.TimeSpan\u003E\n ;* V04 arg3         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V06 tmp1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMedallion.Threading.IDistributedSynchronizationHandle\u003E\n ;* V07 tmp2         [V07    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.ValueTask\u00601[Medallion.Threading.IDistributedSynchronizationHandle]\u003E\n ;  V08 tmp3         [V08,T03] (  3,  2   )    long  -\u003E  r13         single-def \u0022field V03._ticks (fldOffset=0x0)\u0022 P-INDEP\n ;  V09 tmp4         [V09,T02] (  3,  2   )     ref  -\u003E  r14         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n ;* V10 tmp5         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V07._obj (fldOffset=0x0)\u0022 P-INDEP\n ;  V11 tmp6         [V11,T06] (  2,  1   )     ref  -\u003E  rax         single-def \u0022field V07._result (fldOffset=0x8)\u0022 P-INDEP\n ;* V12 tmp7         [V12    ] (  0,  0   )   short  -\u003E  zero-ref    \u0022field V07._token (fldOffset=0x10)\u0022 P-INDEP\n ;* V13 tmp8         [V13    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022field V07._continueOnCapturedContext (fldOffset=0x12)\u0022 P-INDEP\n ;  V14 rat0         [V14,T04] (  2,  4   )    long  -\u003E  rax         \u0022TLS field access\u0022\n ;  V15 rat1         [V15,T05] (  2,  4   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 0\n \n G_M51453_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     rbx\n        lea      rbp, [rsp\u002B0x20]\n        mov      rbx, rsi\n        mov      r15, rdx\n        mov      r13, rcx\n        mov      r14, r8\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 6.50\n G_M51453_IG02:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        cmp      byte  ptr [rax\u002B0x10], 0\n        je       SHORT G_M51453_IG05\n \t\t\t\t\t\t;; size=32 bbWeight=1 PerfScore 6.75\n G_M51453_IG03:\n        mov      rdi, r15\n        mov      rdx, r14\n        mov      rsi, r13\n        mov      r11, 0xD1FFAB1E      ; code for Medallion.Threading.IDistributedReaderWriterLock:TryAcquireReadLock(System.TimeSpan,System.Threading.CancellationToken):Medallion.Threading.IDistributedSynchronizationHandle:this\n        call     [r11]Medallion.Threading.IDistributedReaderWriterLock:TryAcquireReadLock(System.TimeSpan,System.Threading.CancellationToken):Medallion.Threading.IDistributedSynchronizationHandle:this\n        xor      rdi, rdi\n        mov      gword ptr [rbx], rdi\n        lea      rdi, [rbx\u002B0x08]\n        mov      rsi, rax\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n        mov      word  ptr [rbx\u002B0x10], 0\n        mov      byte  ptr [rbx\u002B0x12], 1\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 4.62\n G_M51453_IG04:\n        pop      rbx\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 1.75\n G_M51453_IG05:\n        mov      rdi, r15\n        mov      rcx, r14\n        mov      rsi, rbx\n        mov      rdx, r13\n        mov      r11, 0xD1FFAB1E      ; code for Medallion.Threading.IDistributedReaderWriterLock:TryAcquireReadLockAsync(System.TimeSpan,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask\u00601[Medallion.Threading.IDistributedSynchronizationHandle]:this\n        cmp      dword ptr [rdi], edi\n \t\t\t\t\t\t;; size=24 bbWeight=0.50 PerfScore 1.62\n G_M51453_IG06:\n        pop      rbx\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        tail.jmp [r11]Medallion.Threading.IDistributedReaderWriterLock:TryAcquireReadLockAsync(System.TimeSpan,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask\u00601[Medallion.Threading.IDistributedSynchronizationHandle]:this\n \t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 2.25\n \n ; Total bytes of code 153, prolog size 25, PerfScore 23.50, instruction count 47, allocated bytes for code 153 (MethodHash=58983702) for method Medallion.Threading.CompositeDistributedLockHandleExtensions\u002B\u003C\u003Ec:\u003CTryAcquireAllReadLocksInternalAsync\u003Eb__3_1(Medallion.Threading.IDistributedReaderWriterLock,System.TimeSpan,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask\u00601[Medallion.Threading.IDistributedSynchronizationHandle]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":153,"DiffBytes":153},{"Assembly":"DnsClient.dasm","Method":"DnsClient.DnsResponseMessage:Combine(System.Collections.Generic.List\u00601[DnsClient.DnsResponseMessage]):DnsClient.DnsResponseMessage (FullOpts)","Category":"improvement","Description":"1,542 -\u003E 1,493 bytes (-49)","ExtraInfo":null,"Diff":"@@ -8,48 \u002B8,48 @@\n ; 0 inlinees with PGO data; 39 single block inlinees; 14 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T00] ( 13,  8   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[DnsClient.DnsResponseMessage]\u003E\n\u002B;  V00 arg0         [V00,T00] ( 12,  7.50)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[DnsClient.DnsResponseMessage]\u003E\n ;  V01 loc0         [V01,T13] (  4,  2   )     ref  -\u003E  r15         class-hnd single-def \u003CDnsClient.DnsResponseMessage\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V03 tmp1         [V03,T39] (  2,  2   )     int  -\u003E  r14         \u0022impAppendStmt\u0022\n-;  V04 tmp2         [V04,T40] (  2,  2   )     int  -\u003E  r13         \u0022impAppendStmt\u0022\n-;  V05 tmp3         [V05,T23] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[DnsClient.DnsResponseMessage,int]\u003E\n-;  V06 tmp4         [V06,T41] (  2,  2   )     int  -\u003E  r12         \u0022impAppendStmt\u0022\n\u002B;  V03 tmp1         [V03,T38] (  2,  2   )     int  -\u003E  r14         \u0022impAppendStmt\u0022\n\u002B;  V04 tmp2         [V04,T39] (  2,  2   )     int  -\u003E  r13         \u0022impAppendStmt\u0022\n\u002B;  V05 tmp3         [V05,T22] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[DnsClient.DnsResponseMessage,int]\u003E\n\u002B;  V06 tmp4         [V06,T40] (  2,  2   )     int  -\u003E  r12         \u0022impAppendStmt\u0022\n ;* V07 tmp5         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    single-def\n ;* V08 tmp6         [V08    ] (  0,  0   )     int  -\u003E  zero-ref    single-def\n ;* V09 tmp7         [V09    ] (  0,  0   )     int  -\u003E  zero-ref    single-def\n ;* V10 tmp8         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V11 tmp9         [V11,T14] (  4,  2   )     ref  -\u003E  rdx        \n-;  V12 tmp10        [V12,T24] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[DnsClient.DnsResponseMessage,int]\u003E\n-;  V13 tmp11        [V13,T42] (  2,  2   )     int  -\u003E  [rbp-0x2C]  spill-single-def \u0022impAppendStmt\u0022\n\u002B;  V12 tmp10        [V12,T23] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[DnsClient.DnsResponseMessage,int]\u003E\n\u002B;  V13 tmp11        [V13,T41] (  2,  2   )     int  -\u003E  [rbp-0x2C]  spill-single-def \u0022impAppendStmt\u0022\n ;* V14 tmp12        [V14    ] (  0,  0   )     int  -\u003E  zero-ref    single-def\n ;* V15 tmp13        [V15    ] (  0,  0   )     int  -\u003E  zero-ref    single-def\n ;* V16 tmp14        [V16    ] (  0,  0   )     int  -\u003E  zero-ref    single-def\n ;* V17 tmp15        [V17    ] (  0,  0   )     int  -\u003E  zero-ref    single-def\n ;* V18 tmp16        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V19 tmp17        [V19,T15] (  4,  2   )     ref  -\u003E  rdx        \n-;  V20 tmp18        [V20,T43] (  2,  2   )     int  -\u003E  [rbp-0x30]  spill-single-def \u0022impAppendStmt\u0022\n\u002B;  V20 tmp18        [V20,T42] (  2,  2   )     int  -\u003E  [rbp-0x30]  spill-single-def \u0022impAppendStmt\u0022\n ;  V21 tmp19        [V21,T01] (  8,  8   )     ref  -\u003E  [rbp-0x40]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CDnsClient.DnsResponseHeader\u003E\n-;  V22 tmp20        [V22,T25] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[DnsClient.DnsResponseMessage,int]\u003E\n\u002B;  V22 tmp20        [V22,T24] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[DnsClient.DnsResponseMessage,int]\u003E\n ;* V23 tmp21        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V24 tmp22        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V25 tmp23        [V25,T16] (  4,  2   )     ref  -\u003E  r14        \n ;  V26 tmp24        [V26,T02] (  7,  7   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CDnsClient.DnsResponseMessage\u003E\n ;* V27 tmp25        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[DnsClient.DnsQuestion]\u003E\n-;  V28 tmp26        [V28,T26] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[DnsClient.DnsResponseMessage,System.Collections.Generic.IEnumerable\u00601[DnsClient.Protocol.DnsResourceRecord]]\u003E\n-;  V29 tmp27        [V29,T27] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[DnsClient.Protocol.DnsResourceRecord]\u003E\n\u002B;  V28 tmp26        [V28,T25] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[DnsClient.DnsResponseMessage,System.Collections.Generic.IEnumerable\u00601[DnsClient.Protocol.DnsResourceRecord]]\u003E\n\u002B;  V29 tmp27        [V29,T26] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[DnsClient.Protocol.DnsResourceRecord]\u003E\n ;* V30 tmp28        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V31 tmp29        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V32 tmp30        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V33 tmp31        [V33,T17] (  4,  2   )     ref  -\u003E  r14        \n-;  V34 tmp32        [V34,T28] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[DnsClient.DnsResponseMessage,System.Collections.Generic.IEnumerable\u00601[DnsClient.Protocol.DnsResourceRecord]]\u003E\n-;  V35 tmp33        [V35,T29] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[DnsClient.Protocol.DnsResourceRecord]\u003E\n\u002B;  V34 tmp32        [V34,T27] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[DnsClient.DnsResponseMessage,System.Collections.Generic.IEnumerable\u00601[DnsClient.Protocol.DnsResourceRecord]]\u003E\n\u002B;  V35 tmp33        [V35,T28] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[DnsClient.Protocol.DnsResourceRecord]\u003E\n ;* V36 tmp34        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V37 tmp35        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V38 tmp36        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V39 tmp37        [V39,T18] (  4,  2   )     ref  -\u003E  r14        \n-;  V40 tmp38        [V40,T30] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[DnsClient.DnsResponseMessage,System.Collections.Generic.IEnumerable\u00601[DnsClient.Protocol.DnsResourceRecord]]\u003E\n-;  V41 tmp39        [V41,T31] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[DnsClient.Protocol.DnsResourceRecord]\u003E\n\u002B;  V40 tmp38        [V40,T29] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[DnsClient.DnsResponseMessage,System.Collections.Generic.IEnumerable\u00601[DnsClient.Protocol.DnsResourceRecord]]\u003E\n\u002B;  V41 tmp39        [V41,T30] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[DnsClient.Protocol.DnsResourceRecord]\u003E\n ;* V42 tmp40        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V43 tmp41        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V44 tmp42        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -60,57 \u002B60,57 @@\n ;  V49 tmp47        [V49,T06] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[DnsClient.DnsResponseMessage,int]\u003E\n ;  V50 tmp48        [V50,T07] (  5,  5   )     ref  -\u003E  [rbp-0x48]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[DnsClient.DnsResponseMessage,int]\u003E\n ;  V51 tmp49        [V51,T08] (  5,  5   )     ref  -\u003E  [rbp-0x50]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[DnsClient.DnsResponseMessage,int]\u003E\n-;  V52 tmp50        [V52    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V53 tmp51        [V53,T52] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CDnsClient.DnsResponseMessage\u003E\n-;  V54 tmp52        [V54,T20] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[DnsClient.DnsResponseMessage]\u003E\n\u002B;  V52 tmp50        [V52    ] (  1,  0.50)   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V53 tmp51        [V53,T57] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CDnsClient.DnsResponseMessage\u003E\n\u002B;* V54 tmp52        [V54    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[DnsClient.DnsResponseMessage]\u003E\n ;* V55 tmp53        [V55    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CDnsClient.DnsResponseHeader\u003E\n ;* V56 tmp54        [V56    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CDnsClient.DnsResponseHeader\u003E\n ;* V57 tmp55        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CDnsClient.DnsResponseHeader\u003E\n... diff truncated; middle omitted ...\n-;* V83 tmp81        [V83,T60] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V84 tmp82        [V84,T56] (  3,  1.50)     ref  -\u003E  rdi         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CDnsClient.DnsResponseMessage[]\u003E\n\u002B;* V83 tmp81        [V83,T59] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V84 tmp82        [V84,T54] (  3,  1.50)     ref  -\u003E  rdi         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CDnsClient.DnsResponseMessage[]\u003E\n ;* V85 tmp83        [V85    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CDnsClient.DnsResponseMessage\u003E\n-;  V86 tmp84        [V86,T38] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CDnsClient.DnsResponseMessage\u002B\u003C\u003Ec\u003E\n-;  V87 tmp85        [V87,T57] (  3,  1.50)     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[DnsClient.Protocol.DnsResourceRecord]\u003E\n\u002B;  V86 tmp84        [V86,T37] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CDnsClient.DnsResponseMessage\u002B\u003C\u003Ec\u003E\n\u002B;  V87 tmp85        [V87,T55] (  3,  1.50)     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[DnsClient.Protocol.DnsResourceRecord]\u003E\n ;* V88 tmp86        [V88    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[DnsClient.DnsResponseMessage]\u003E\n ;* V89 tmp87        [V89    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[DnsClient.DnsResponseMessage,System.Collections.Generic.IEnumerable\u00601[DnsClient.Protocol.DnsResourceRecord]]\u003E\n ;  V90 tmp88        [V90,T11] (  5,  5   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Enumerable\u002BSelectManySingleSelectorIterator\u00602[DnsClient.DnsResponseMessage,DnsClient.Protocol.DnsResourceRecord]\u003E\n-;* V91 tmp89        [V91,T61] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V92 tmp90        [V92,T58] (  3,  1.50)     ref  -\u003E  r12         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CDnsClient.DnsResponseMessage[]\u003E\n\u002B;* V91 tmp89        [V91,T60] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V92 tmp90        [V92,T56] (  3,  1.50)     ref  -\u003E  r12         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CDnsClient.DnsResponseMessage[]\u003E\n ;  V93 tmp91        [V93,T12] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022arr expr\u0022\n-;  V94 tmp92        [V94,T45] (  2,  2   )     int  -\u003E  rdx         \u0022argument with side effect\u0022\n-;  V95 cse0         [V95,T21] (  4,  2   )     ref  -\u003E  r12         \u0022CSE #10: conservative\u0022\n-;  V96 cse1         [V96,T22] (  4,  2   )     ref  -\u003E  rdi         \u0022CSE #01: conservative\u0022\n-;  V97 rat0         [V97,T46] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V98 rat1         [V98,T47] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V99 rat2         [V99,T48] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V100 rat3        [V100,T49] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V101 rat4        [V101,T50] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V102 rat5        [V102,T51] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V94 tmp92        [V94,T44] (  2,  2   )     int  -\u003E  rdx         \u0022argument with side effect\u0022\n\u002B;  V95 cse0         [V95,T20] (  4,  2   )     ref  -\u003E  r12         \u0022CSE #10: conservative\u0022\n\u002B;  V96 cse1         [V96,T21] (  4,  2   )     ref  -\u003E  rdi         \u0022CSE #01: conservative\u0022\n\u002B;  V97 rat0         [V97,T45] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V98 rat1         [V98,T46] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V99 rat2         [V99,T47] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V100 rat3        [V100,T48] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V101 rat4        [V101,T49] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V102 rat5        [V102,T50] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 72\n \n@@ -134,7 \u002B134,7 @@ G_M5263_IG02:\n G_M5263_IG03:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        cmp      dword ptr [rdi\u002B0x08], 0\n-       jbe      G_M5263_IG30\n\u002B       jbe      G_M5263_IG28\n        mov      r15, gword ptr [rdi\u002B0x10]\n        mov      rdi, gword ptr [r15\u002B0x20]\n        mov      r14d, dword ptr [rdi\u002B0x10]\n@@ -297,7 \u002B297,7 @@ G_M5263_IG08:\n G_M5263_IG09:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M5263_IG27\n\u002B       je       G_M5263_IG25\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n G_M5263_IG10:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Array\u002BEmptyArray\u00601[DnsClient.Protocol.DnsResourceRecord]:Value\n@@ -358,7 \u002B358,7 @@ G_M5263_IG13:\n G_M5263_IG14:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M5263_IG28\n\u002B       je       G_M5263_IG26\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n G_M5263_IG15:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Array\u002BEmptyArray\u00601[DnsClient.Protocol.DnsResourceRecord]:Value\n@@ -415,7 \u002B415,7 @@ G_M5263_IG18:\n G_M5263_IG19:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M5263_IG29\n\u002B       je       G_M5263_IG27\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n G_M5263_IG20:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Array\u002BEmptyArray\u00601[DnsClient.Protocol.DnsResourceRecord]:Value\n@@ -440,30 \u002B440,14 @@ G_M5263_IG22:\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n G_M5263_IG23:\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[DnsClient.DnsResponseMessage]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M5263_IG24\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M5263_IG25\n-\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.38\n-G_M5263_IG24:\n        lea      rdx, [rbp-0x38]\n        mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[DnsClient.DnsResponseMessage](System.Collections.Generic.IEnumerable\u00601[DnsClient.DnsResponseMessage],byref):DnsClient.DnsResponseMessage\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M5263_IG25:\n        nop      \n-\t\t\t\t\t\t;; size=1 bbWeight=0.50 PerfScore 0.12\n-G_M5263_IG26:\n\u002B\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.25\n\u002BG_M5263_IG24:\n        add      rsp, 72\n        pop      rbx\n        pop      r12\n@@ -473,28 \u002B457,28 @@ G_M5263_IG26:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M5263_IG27:\n\u002BG_M5263_IG25:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[DnsClient.Protocol.DnsResourceRecord]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M5263_IG10\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M5263_IG28:\n\u002BG_M5263_IG26:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[DnsClient.Protocol.DnsResourceRecord]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M5263_IG15\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M5263_IG29:\n\u002BG_M5263_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[DnsClient.Protocol.DnsResourceRecord]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M5263_IG20\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M5263_IG30:\n\u002BG_M5263_IG28:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1542, prolog size 25, PerfScore 145.75, instruction count 321, allocated bytes for code 1542 (MethodHash=59e2eb70) for method DnsClient.DnsResponseMessage:Combine(System.Collections.Generic.List\u00601[DnsClient.DnsResponseMessage]):DnsClient.DnsResponseMessage (FullOpts)\n\u002B; Total bytes of code 1493, prolog size 25, PerfScore 138.38, instruction count 309, allocated bytes for code 1493 (MethodHash=59e2eb70) for method DnsClient.DnsResponseMessage:Combine(System.Collections.Generic.List\u00601[DnsClient.DnsResponseMessage]):DnsClient.DnsResponseMessage (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1542,"DiffBytes":1493},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher:MatchConditionErrors():this (FullOpts)","Category":"improvement","Description":"3,884 -\u003E 3,485 bytes (-399)","ExtraInfo":null,"Diff":"@@ -9,118 \u002B9,118 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T12] ( 15, 79   )     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher\u003E\n-;  V01 loc0         [V01,T59] (  6, 23   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n-;  V02 loc1         [V02,T60] (  3, 17   )     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath]\u003E\n\u002B;  V01 loc0         [V01,T53] (  6, 23   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n\u002B;  V02 loc1         [V02,T54] (  3, 17   )     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath]\u003E\n ;* V03 loc2         [V03    ] (  0,  0   )    long  -\u003E  zero-ref    class-hnd exact \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath,System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]]]\u003E\n-;  V04 loc3         [V04,T90] (  4,  7   )     ref  -\u003E  r12         class-hnd exact single-def \u003CSystem.Collections.Generic.Dictionary\u00602[System.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath,System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]],System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n\u002B;  V04 loc3         [V04,T84] (  4,  7   )     ref  -\u003E  r12         class-hnd exact single-def \u003CSystem.Collections.Generic.Dictionary\u00602[System.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath,System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]],System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n ;* V05 loc4         [V05    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n-;  V06 loc5         [V06,T22] ( 11, 62   )     ref  -\u003E  [rbp-0x88]  class-hnd \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper\u003E\n\u002B;  V06 loc5         [V06,T19] ( 11, 62   )     ref  -\u003E  [rbp-0x88]  class-hnd \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper\u003E\n ;  V07 loc6         [V07,T09] ( 14,124   )     ref  -\u003E  [rbp-0x90]  class-hnd exact \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath,System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]]\u003E\n-;  V08 loc7         [V08,T23] (  6, 56   )     ref  -\u003E  [rbp-0x98]  do-not-enreg[Z] class-hnd EH-live \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberRestriction]\u003E\n-;  V09 loc8         [V09,T24] (  4, 48   )     ref  -\u003E  [rbp-0xA0]  class-hnd \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberRestriction\u003E\n\u002B;  V08 loc7         [V08,T20] (  6, 56   )     ref  -\u003E  [rbp-0x98]  do-not-enreg[Z] class-hnd EH-live \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberRestriction]\u003E\n\u002B;  V09 loc8         [V09,T21] (  4, 48   )     ref  -\u003E  [rbp-0xA0]  class-hnd \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberRestriction\u003E\n ;  V10 loc9         [V10,T03] ( 11,184   )     ref  -\u003E  [rbp-0xA8]  class-hnd exact \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath\u003E\n-;  V11 loc10        [V11,T48] (  3, 24   )     ref  -\u003E  [rbp-0xB0]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.ScalarRestriction\u003E\n\u002B;  V11 loc10        [V11,T44] (  3, 24   )     ref  -\u003E  [rbp-0xB0]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.ScalarRestriction\u003E\n ;  V12 loc11        [V12,T32] (  5, 40   )     ref  -\u003E  [rbp-0xB8]  class-hnd exact spill-single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath\u003E\n ;  V13 loc12        [V13,T06] (  6,144   )     ref  -\u003E  [rbp-0xC0]  do-not-enreg[Z] class-hnd EH-live \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]\u003E\n ;  V14 loc13        [V14,T07] (  2,128   )     ref  -\u003E  [rbp-0xC8]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant\u003E\n ;  V15 loc14        [V15,T04] (  4,160   )     ref  -\u003E  [rbp-0xD0]  ld-addr-op class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]\u003E\n ;# V16 OutArgs      [V16    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V17 tmp1         [V17,T91] (  3,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath]\u003E\n-;  V18 tmp2         [V18,T103] (  2,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Validation.ConditionComparer\u003E\n\u002B;  V17 tmp1         [V17,T85] (  3,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath]\u003E\n\u002B;  V18 tmp2         [V18,T95] (  2,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Validation.ConditionComparer\u003E\n ;* V19 tmp3         [V19    ] (  0,  0   )    long  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath,System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]]]\u003E\n-;  V20 tmp4         [V20,T104] (  2,  4   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Validation.ConditionComparer\u003E\n-;  V21 tmp5         [V21,T92] (  3,  6   )     ref  -\u003E  [rbp-0xD8]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath,System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]],System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n-;  V22 tmp6         [V22,T49] (  3, 24   )     ref  -\u003E  [rbp-0xE0]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath,System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]]\u003E\n\u002B;  V20 tmp4         [V20,T96] (  2,  4   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Validation.ConditionComparer\u003E\n\u002B;  V21 tmp5         [V21,T86] (  3,  6   )     ref  -\u003E  [rbp-0xD8]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath,System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]],System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n\u002B;  V22 tmp6         [V22,T45] (  3, 24   )     ref  -\u003E  [rbp-0xE0]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath,System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]]\u003E\n ;* V23 tmp7         [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\u003E\n ;  V24 tmp8         [V24,T01] (  3,192   )     ref  -\u003E  [rbp-0xE8]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]\u003E\n-;  V25 tmp9         [V25,T25] (  3, 48   )     ref  -\u003E  [rbp-0xF0]  class-hnd exact spill-single-def \u0022NewArr temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper[]\u003E\n-;  V26 tmp10        [V26,T26] (  3, 48   )     ref  -\u003E  [rbp-0xF8]  class-hnd exact spill-single-def \u0022NewArr temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper[]\u003E\n... diff truncated; middle omitted ...\n-       mov      rdx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rdx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M17685_IG53\n-       lea      rsi, [rbp-0x60]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      gword ptr [rbp-0x1F8], rax\n-       jmp      SHORT G_M17685_IG54\n-\t\t\t\t\t\t;; size=93 bbWeight=2 PerfScore 46.00\n-G_M17685_IG53:\n\u002B       je       G_M17685_IG51\n\u002B       mov      rdx, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rdx\u002B0x28]\n\u002B       test     rsi, rsi\n\u002B       je       G_M17685_IG48\n        lea      rdx, [rbp-0x60]\n-       mov      rsi, gword ptr [rbp-0x1F0]\n\u002B\t\t\t\t\t\t;; size=222 bbWeight=2 PerfScore 75.50\n\u002BG_M17685_IG43:\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell],byref):System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\n-       mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      gword ptr [rbp-0x1F8], rax\n-\t\t\t\t\t\t;; size=40 bbWeight=2 PerfScore 12.00\n-G_M17685_IG54:\n\u002B       mov      rcx, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n\u002B       call     [rcx]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n\u002B       mov      gword ptr [rbp-0x1C8], rax\n        cmp      byte  ptr [rbp-0x60], 0\n-       je       G_M17685_IG62\n\u002B       je       G_M17685_IG51\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Mapping.ViewGeneration.Structures.ErrorLog\u002BRecord\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x130], rax\n-       mov      rdi, gword ptr [rbp-0x1E8]\n-       mov      rsi, gword ptr [rbp-0x1F8]\n\u002B       mov      rdi, gword ptr [rbp-0x1C0]\n\u002B       mov      rsi, gword ptr [rbp-0x1C8]\n        mov      rcx, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher:ToIEnum(System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell):System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\n        call     [rcx]System.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher:ToIEnum(System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell):System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\n        mov      rcx, rax\n@@ -1003,15 \u002B894,15 @@ G_M17685_IG54:\n        mov      rax, gword ptr [rdi\u002B0x08]\n        mov      ecx, dword ptr [rdi\u002B0x10]\n        cmp      dword ptr [rax\u002B0x08], ecx\n-       ja       SHORT G_M17685_IG55\n\u002B       ja       SHORT G_M17685_IG44\n        mov      rsi, gword ptr [rbp-0x130]\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        mov      eax, dword ptr [rbp-0x6C]\n        mov      rdi, qword ptr [rbp-0x80]\n        jmp      G_M17685_IG06\n-\t\t\t\t\t\t;; size=159 bbWeight=2 PerfScore 73.50\n-G_M17685_IG55:\n\u002B\t\t\t\t\t\t;; size=188 bbWeight=2 PerfScore 82.50\n\u002BG_M17685_IG44:\n        lea      esi, [rcx\u002B0x01]\n        mov      dword ptr [rdi\u002B0x10], esi\n        mov      esi, ecx\n@@ -1023,8 \u002B914,8 @@ G_M17685_IG55:\n        mov      rdi, qword ptr [rbp-0x80]\n        jmp      G_M17685_IG06\n \t\t\t\t\t\t;; size=42 bbWeight=2 PerfScore 20.50\n-G_M17685_IG56:\n-       add      rsp, 472\n\u002BG_M17685_IG45:\n\u002B       add      rsp, 424\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -1033,79 \u002B924,79 @@ G_M17685_IG56:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M17685_IG57:\n\u002BG_M17685_IG46:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M17685_IG03\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M17685_IG58:\n\u002BG_M17685_IG47:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[System.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath,System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M17685_IG04\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M17685_IG59:\n\u002BG_M17685_IG48:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M17685_IG60:\n\u002BG_M17685_IG49:\n        mov      rsi, gword ptr [rbp-0x90]\n        mov      rdi, 0xD1FFAB1E      ; System.ThrowHelper:ThrowKeyNotFoundException[System.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath,System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]]](System.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath,System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]])\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowKeyNotFoundException[System.__Canon](System.__Canon)\n        call     [rax]System.ThrowHelper:ThrowKeyNotFoundException[System.__Canon](System.__Canon)\n        int3     \n \t\t\t\t\t\t;; size=30 bbWeight=0 PerfScore 0.00\n-G_M17685_IG61:\n\u002BG_M17685_IG50:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M17685_IG62:\n\u002BG_M17685_IG51:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M17685_IG63:\n\u002BG_M17685_IG52:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n-G_M17685_IG64:\n\u002BG_M17685_IG53:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M17685_IG65:\n\u002BG_M17685_IG54:\n        cmp      gword ptr [rbp-0xC0], 0\n-       je       SHORT G_M17685_IG66\n\u002B       je       SHORT G_M17685_IG55\n        mov      rdi, gword ptr [rbp-0xC0]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=30 bbWeight=0 PerfScore 0.00\n-G_M17685_IG66:\n\u002BG_M17685_IG55:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M17685_IG67:\n\u002BG_M17685_IG56:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M17685_IG68:\n\u002BG_M17685_IG57:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M17685_IG69:\n\u002BG_M17685_IG58:\n        cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M17685_IG70\n\u002B       je       SHORT G_M17685_IG59\n        mov      rdi, gword ptr [rbp-0x98]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=30 bbWeight=0 PerfScore 0.00\n-G_M17685_IG70:\n\u002BG_M17685_IG59:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M17685_IG71:\n\u002BG_M17685_IG60:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 3884, prolog size 53, PerfScore 6783.08, instruction count 760, allocated bytes for code 3884 (MethodHash=a544baea) for method System.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher:MatchConditionErrors():this (FullOpts)\n\u002B; Total bytes of code 3485, prolog size 53, PerfScore 6264.58, instruction count 673, allocated bytes for code 3485 (MethodHash=a544baea) for method System.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher:MatchConditionErrors():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":3884,"DiffBytes":3485},{"Assembly":"FakeItEasy.dasm","Method":"FakeItEasy.Core.CallWriter:WriteCalls(System.Collections.Generic.List\u00601[FakeItEasy.Core.CallWriter\u002BCallInfo],FakeItEasy.IOutputWriter) (FullOpts)","Category":"improvement","Description":"707 -\u003E 658 bytes (-49)","ExtraInfo":null,"Diff":"@@ -8,7 \u002B8,7 @@\n ; 0 inlinees with PGO data; 13 single block inlinees; 3 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T09] (  7,  6.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[FakeItEasy.Core.CallWriter\u002BCallInfo]\u003E\n\u002B;  V00 arg0         [V00,T09] (  6,  6   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[FakeItEasy.Core.CallWriter\u002BCallInfo]\u003E\n ;  V01 arg1         [V01,T00] ( 13, 34   )     ref  -\u003E  rbx         class-hnd single-def \u003CFakeItEasy.IOutputWriter\u003E\n ;  V02 loc0         [V02,T10] (  2,  5   )     int  -\u003E  r14         single-def\n ;* V03 loc1         [V03    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[FakeItEasy.Core.CallWriter\u002BCallInfo]\u003E\n@@ -17,10 \u002B17,10 @@\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V07 tmp1         [V07,T03] (  3, 24   )     ref  -\u003E  rax         class-hnd exact \u0022Single-def Box Helper\u0022 \u003CSystem.Int32\u003E\n ;  V08 tmp2         [V08,T07] (  3, 12   )     ref  -\u003E  rax         class-hnd exact \u0022Single-def Box Helper\u0022 \u003CSystem.Int32\u003E\n-;  V09 tmp3         [V09    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V09 tmp3         [V09    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V11 tmp5         [V11,T13] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CFakeItEasy.Core.CallWriter\u002BCallInfo\u003E\n-;  V12 tmp6         [V12,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[FakeItEasy.Core.CallWriter\u002BCallInfo]\u003E\n\u002B;  V11 tmp5         [V11,T12] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CFakeItEasy.Core.CallWriter\u002BCallInfo\u003E\n\u002B;* V12 tmp6         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[FakeItEasy.Core.CallWriter\u002BCallInfo]\u003E\n ;* V13 tmp7         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CFakeItEasy.Core.CallWriter\u002BCallInfo\u003E\n ;* V14 tmp8         [V14    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[FakeItEasy.Core.CallWriter\u002BCallInfo]\u003E\n ;* V15 tmp9         [V15    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n@@ -28,16 \u002B28,16 @@\n ;  V17 tmp11        [V17,T05] (  4, 17   )     ref  -\u003E  r15         single-def \u0022field V03._list (fldOffset=0x0)\u0022 P-INDEP\n ;  V18 tmp12        [V18,T01] (  7, 26   )     ref  -\u003E  [rbp-0x40]  spill-single-def \u0022field V03._current (fldOffset=0x8)\u0022 P-INDEP\n ;  V19 tmp13        [V19,T11] (  2,  5   )     int  -\u003E  r13         single-def \u0022field V03._version (fldOffset=0x10)\u0022 P-INDEP\n-;* V20 tmp14        [V20,T15] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V03._index (fldOffset=0x14)\u0022 P-INDEP\n\u002B;* V20 tmp14        [V20,T14] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V03._index (fldOffset=0x14)\u0022 P-INDEP\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._list (fldOffset=0x0)\u0022 P-INDEP\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._current (fldOffset=0x8)\u0022 P-INDEP\n-;  V23 tmp17        [V23,T14] (  2,  2   )     int  -\u003E  r13         single-def \u0022field V14._version (fldOffset=0x10)\u0022 P-INDEP\n\u002B;  V23 tmp17        [V23,T13] (  2,  2   )     int  -\u003E  r13         single-def \u0022field V14._version (fldOffset=0x10)\u0022 P-INDEP\n ;* V24 tmp18        [V24    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V14._index (fldOffset=0x14)\u0022 P-INDEP\n ;  V25 tmp19        [V25,T04] (  3, 24   )     ref  -\u003E  rdi         \u0022arr expr\u0022\n ;  V26 tmp20        [V26,T06] (  2, 16   )     int  -\u003E  rsi         \u0022argument with side effect\u0022\n ;  V27 rat0         [V27,T02] (  6, 25   )    long  -\u003E  r12         \u0022Widened IV V20\u0022\n-;  V28 rat1         [V28,T17] (  5, 10   )  simd16  -\u003E  mm0         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n-;  V29 rat2         [V29,T16] (  5, 40   )  simd16  -\u003E  mm0         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n\u002B;  V28 rat1         [V28,T16] (  5, 10   )  simd16  -\u003E  mm0         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n\u002B;  V29 rat2         [V29,T15] (  5, 40   )  simd16  -\u003E  mm0         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n ;\n ; Lcl frame size = 24\n \n@@ -58,32 \u002B58,14 @@ G_M24289_IG01:\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 9.50\n G_M24289_IG02:\n        test     r15, r15\n-       je       G_M24289_IG17\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[FakeItEasy.Core.CallWriter\u002BCallInfo]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M24289_IG04\n-\t\t\t\t\t\t;; size=39 bbWeight=1 PerfScore 6.25\n-G_M24289_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M24289_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M24289_IG04:\n\u002B       je       G_M24289_IG14\n        lea      rdx, [rbp-0x30]\n        mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[FakeItEasy.Core.CallWriter\u002BCallInfo](System.Collections.Generic.IEnumerable\u00601[FakeItEasy.Core.CallWriter\u002BCallInfo],byref):FakeItEasy.Core.CallWriter\u002BCallInfo\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M24289_IG05:\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M24289_IG18\n\u002B       je       G_M24289_IG15\n        vxorps   xmm0, xmm0, xmm0\n        vcvtsi2sd xmm0, xmm0, dword ptr [rax\u002B0x18]\n        call     System.Math:Log10(double):double\n@@ -95,24 \u002B77,24 @@ G_M24289_IG05:\n        cmovb    r14d, edi\n        mov      r13d, dword ptr [r15\u002B0x14]\n        xor      r12d, r12d\n-       jmp      G_M24289_IG15\n-\t\t\t\t\t\t;; size=67 bbWeight=1 PerfScore 30.67\n-G_M24289_IG06:\n\u002B       jmp      G_M24289_IG12\n\u002B\t\t\t\t\t\t;; size=105 bbWeight=1 PerfScore 36.17\n\u002BG_M24289_IG03:\n        mov      rdi, gword ptr [r15\u002B0x08]\n        cmp      r12d, dword ptr [rdi\u002B0x08]\n-       jae      G_M24289_IG20\n\u002B       jae      G_M24289_IG17\n        mov      rax, gword ptr [rdi\u002B8*r12\u002B0x10]\n        mov      gword ptr [rbp-0x40], rax\n        inc      r12d\n        cmp      dword ptr [rax\u002B0x18], 1\n-       jle      SHORT G_M24289_IG08\n\u002B       jle      SHORT G_M24289_IG05\n \t\t\t\t\t\t;; size=32 bbWeight=4 PerfScore 45.00\n-G_M24289_IG07:\n\u002BG_M24289_IG04:\n        mov      rdi, rbx\n        mov      rcx, 0xD1FFAB1E      ; code for FakeItEasy.OutputWriterExtensions:WriteLine(FakeItEasy.IOutputWriter):FakeItEasy.IOutputWriter\n        call     [rcx]FakeItEasy.OutputWriterExtensions:WriteLine(FakeItEasy.IOutputWriter):FakeItEasy.IOutputWriter\n \t\t\t\t\t\t;; size=15 bbWeight=2 PerfScore 7.00\n-G_M24289_IG08:\n\u002BG_M24289_IG05:\n        mov      rdi, 0xD1FFAB1E      ; System.Int32\n        call     CORINFO_HELP_NEWSFAST\n        mov      rcx, gword ptr [rbp-0x40]\n@@ -147,7 \u002B129,7 @@ G_M24289_IG08:\n        call     [r11]FakeItEasy.IOutputWriter:Indent():System.IDisposable:this\n        mov      gword ptr [rbp-0x38], rax\n \t\t\t\t\t\t;; size=158 bbWeight=4 PerfScore 187.67\n-G_M24289_IG09:\n\u002BG_M24289_IG06:\n        mov      rax, gword ptr [rbp-0x40]\n        mov      rsi, gword ptr [rax\u002B0x10]\n        mov      rdi, rbx\n@@ -155,21 \u002B137,21 @@ G_M24289_IG09:\n        call     [r11]FakeItEasy.IOutputWriter:Write(System.String):FakeItEasy.IOutputWriter:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=4 PerfScore 27.00\n-G_M24289_IG10:\n\u002BG_M24289_IG07:\n        cmp      gword ptr [rbp-0x38], 0\n-       je       SHORT G_M24289_IG12\n\u002B       je       SHORT G_M24289_IG09\n \t\t\t\t\t\t;; size=7 bbWeight=4 PerfScore 8.00\n-G_M24289_IG11:\n\u002BG_M24289_IG08:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=17 bbWeight=2 PerfScore 8.50\n-G_M24289_IG12:\n\u002BG_M24289_IG09:\n        mov      rax, gword ptr [rbp-0x40]\n        cmp      dword ptr [rax\u002B0x1C], 1\n-       jle      G_M24289_IG14\n\u002B       jle      G_M24289_IG11\n \t\t\t\t\t\t;; size=14 bbWeight=4 PerfScore 16.00\n-G_M24289_IG13:\n\u002BG_M24289_IG10:\n        mov      rdi, rbx\n        mov      r11, 0xD1FFAB1E      ; code for FakeItEasy.IOutputWriter:Write(System.String):FakeItEasy.IOutputWriter:this\n        mov      rsi, 0xD1FFAB1E      ; \u0027 \u0027\n@@ -195,15 \u002B177,15 @@ G_M24289_IG13:\n        mov      rsi, 0xD1FFAB1E      ; \u0027...\u0027\n        call     [r11]FakeItEasy.IOutputWriter:Write(System.String):FakeItEasy.IOutputWriter:this\n \t\t\t\t\t\t;; size=136 bbWeight=2 PerfScore 47.50\n-G_M24289_IG14:\n\u002BG_M24289_IG11:\n        cmp      r13d, dword ptr [r15\u002B0x14]\n-       jne      SHORT G_M24289_IG19\n\u002B       jne      SHORT G_M24289_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=4 PerfScore 12.00\n-G_M24289_IG15:\n\u002BG_M24289_IG12:\n        cmp      r12d, dword ptr [r15\u002B0x10]\n-       jb       G_M24289_IG06\n\u002B       jb       G_M24289_IG03\n \t\t\t\t\t\t;; size=10 bbWeight=8 PerfScore 24.00\n-G_M24289_IG16:\n\u002BG_M24289_IG13:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -213,46 \u002B195,46 @@ G_M24289_IG16:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M24289_IG17:\n\u002BG_M24289_IG14:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M24289_IG18:\n\u002BG_M24289_IG15:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M24289_IG19:\n\u002BG_M24289_IG16:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M24289_IG20:\n\u002BG_M24289_IG17:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n-G_M24289_IG21:\n\u002BG_M24289_IG18:\n        push     rax\n        vzeroupper \n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M24289_IG22:\n\u002BG_M24289_IG19:\n        cmp      gword ptr [rbp-0x38], 0\n-       je       SHORT G_M24289_IG23\n\u002B       je       SHORT G_M24289_IG20\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M24289_IG23:\n\u002BG_M24289_IG20:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M24289_IG24:\n\u002BG_M24289_IG21:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n RWD00  \tdq\t41E0000000000000h\n \n \n-; Total bytes of code 707, prolog size 34, PerfScore 440.33, instruction count 162, allocated bytes for code 707 (MethodHash=6119a11e) for method FakeItEasy.Core.CallWriter:WriteCalls(System.Collections.Generic.List\u00601[FakeItEasy.Core.CallWriter\u002BCallInfo],FakeItEasy.IOutputWriter) (FullOpts)\n\u002B; Total bytes of code 658, prolog size 34, PerfScore 432.58, instruction count 150, allocated bytes for code 658 (MethodHash=6119a11e) for method FakeItEasy.Core.CallWriter:WriteCalls(System.Collections.Generic.List\u00601[FakeItEasy.Core.CallWriter\u002BCallInfo],FakeItEasy.IOutputWriter) (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":707,"DiffBytes":658},{"Assembly":"LaunchDarkly.ServerSdk.dasm","Method":"LaunchDarkly.Sdk.Server.Integrations.EventProcessorBuilder:MakeEventsConfiguration(LaunchDarkly.Sdk.Server.Subsystems.LdClientContext,bool):LaunchDarkly.Sdk.Internal.Events.EventsConfiguration:this (FullOpts)","Category":"improvement","Description":"1,855 -\u003E 1,130 bytes (-725)","ExtraInfo":null,"Diff":"@@ -8,112 \u002B8,106 @@\n ; 0 inlinees with PGO data; 53 single block inlinees; 30 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T04] (  7,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CLaunchDarkly.Sdk.Server.Integrations.EventProcessorBuilder\u003E\n-;  V01 arg1         [V01,T08] (  4,  3.50)     ref  -\u003E  r15         class-hnd single-def \u003CLaunchDarkly.Sdk.Server.Subsystems.LdClientContext\u003E\n-;  V02 arg2         [V02,T14] (  3,  3   )   ubyte  -\u003E  r14         single-def\n-;  V03 loc0         [V03,T22] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Uri\u003E\n\u002B;  V00 this         [V00,T02] (  7,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CLaunchDarkly.Sdk.Server.Integrations.EventProcessorBuilder\u003E\n\u002B;  V01 arg1         [V01,T07] (  4,  3.50)     ref  -\u003E  r15         class-hnd single-def \u003CLaunchDarkly.Sdk.Server.Subsystems.LdClientContext\u003E\n\u002B;  V02 arg2         [V02,T10] (  3,  3   )   ubyte  -\u003E  r14         single-def\n\u002B;  V03 loc0         [V03,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Uri\u003E\n ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (32) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V05 tmp1         [V05,T19] (  2,  4   )     ref  -\u003E  r12         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[LaunchDarkly.Sdk.Server.Interfaces.ServiceEndpoints,System.Uri]\u003E\n-;  V06 tmp2         [V06,T20] (  2,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CLaunchDarkly.Sdk.Server.Interfaces.ServiceEndpoints\u003E\n\u002B;  V05 tmp1         [V05,T12] (  2,  4   )     ref  -\u003E  r12         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[LaunchDarkly.Sdk.Server.Interfaces.ServiceEndpoints,System.Uri]\u003E\n\u002B;  V06 tmp2         [V06,T13] (  2,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CLaunchDarkly.Sdk.Server.Interfaces.ServiceEndpoints\u003E\n ;* V07 tmp3         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V08 tmp4         [V08,T21] (  4,  3.50)     ref  -\u003E  r12        \n\u002B;  V08 tmp4         [V08,T14] (  4,  3.50)     ref  -\u003E  r12        \n ;* V09 tmp5         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V10 tmp6         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V11 tmp7         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V12 tmp8         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V15 tmp11        [V15,T29] (  3,  2   )     ref  -\u003E  rcx        \n\u002B;  V15 tmp11        [V15,T21] (  3,  2   )     ref  -\u003E  rcx        \n ;  V16 tmp12        [V16,T00] ( 10, 20   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CLaunchDarkly.Sdk.Internal.Events.EventsConfiguration\u003E\n-;  V17 tmp13        [V17,T09] (  5,  5   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[LaunchDarkly.Sdk.Server.Interfaces.ServiceEndpoints,System.Uri]\u003E\n-;  V18 tmp14        [V18,T31] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CLaunchDarkly.Sdk.Server.Integrations.EventProcessorBuilder\u002B\u003C\u003Ec\u003E\n-;  V19 tmp15        [V19,T23] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CLaunchDarkly.Logging.NullLogging\u003E\n-;  V20 tmp16        [V20,T10] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CLaunchDarkly.Logging.Logger\u003E\n-;  V21 tmp17        [V21,T32] (  2,  2   )     ref  -\u003E  [rbp-0x60]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CLaunchDarkly.Logging.IChannel\u003E\n\u002B;  V17 tmp13        [V17,T08] (  5,  5   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[LaunchDarkly.Sdk.Server.Interfaces.ServiceEndpoints,System.Uri]\u003E\n\u002B;  V18 tmp14        [V18,T24] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CLaunchDarkly.Sdk.Server.Integrations.EventProcessorBuilder\u002B\u003C\u003Ec\u003E\n\u002B;  V19 tmp15        [V19,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CLaunchDarkly.Logging.NullLogging\u003E\n\u002B;  V20 tmp16        [V20,T09] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CLaunchDarkly.Logging.Logger\u003E\n\u002B;  V21 tmp17        [V21,T25] (  2,  2   )     ref  -\u003E  [rbp-0x50]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CLaunchDarkly.Logging.IChannel\u003E\n ;* V22 tmp18        [V22    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V23 tmp19        [V23    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.TimeSpan\u003E\n ;* V24 tmp20        [V24    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V25 tmp21        [V25    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.TimeSpan\u003E\n ;* V26 tmp22        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Uri\u003E\n ;* V27 tmp23        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Uri\u003E\n-;  V28 tmp24        [V28,T03] (  8,  9.50)     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[LaunchDarkly.Sdk.AttributeRef]\u003E\n-;  V29 tmp25        [V29,T30] (  3,  2   )     ref  -\u003E  rsi         class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableHashSet\u00601[LaunchDarkly.Sdk.AttributeRef]\u003E\n-;* V30 tmp26        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CSystem.Collections.Immutable.ImmutableHashSet\u00601[LaunchDarkly.Sdk.AttributeRef]\u003E\n-;  V31 tmp27        [V31,T27] (  4,  2   )     ref  -\u003E  rbx         class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Immutable.ImmutableHashSet\u00601[LaunchDarkly.Sdk.AttributeRef]\u003E\n-;  V32 tmp28        [V32,T36] (  3,  1.50)     ref  -\u003E  rsi         class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableHashSet\u00601[LaunchDarkly.Sdk.AttributeRef]\u003E\n-;  V33 tmp29        [V33,T11] (  5,  5   )     ref  -\u003E  r13         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEqualityComparer\u00601[LaunchDarkly.Sdk.AttributeRef]\u003E\n-;  V34 tmp30        [V34,T01] ( 13, 13   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Immutable.ImmutableHashSet\u00601[LaunchDarkly.Sdk.AttributeRef]\u003E\n-;  V35 tmp31        [V35,T16] (  4,  4   )     ref  -\u003E  [rbp-0x68]  class-hnd exact spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableHashSet\u00601\u002BHashBucket[LaunchDarkly.Sdk.AttributeRef]]\u003E\n-;* V36 tmp32        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableHashSet\u00601[LaunchDarkly.Sdk.AttributeRef]\u003E\n-;* V37 tmp33        [V37    ] (  0,  0   )  struct (32) zero-ref    do-not-enreg[S] \u0022spilled call-like call argument\u0022 \u003CSystem.Collections.Immutable.ImmutableHashSet\u00601\u002BMutationInput[LaunchDarkly.Sdk.AttributeRef]\u003E\n-;* V38 tmp34        [V38    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CSystem.Collections.Immutable.ImmutableHashSet\u00601\u002BMutationResult[LaunchDarkly.Sdk.AttributeRef]\u003E\n-;  V39 tmp35        [V39    ] (  6,  3   )  struct (16) [rbp-0x38]  do-not-enreg[SBRM] multireg-ret multireg-dest must-init ld-addr-op single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Immutable.ImmutableHashSet\u00601\u002BMutationResult[LaunchDarkly.Sdk.AttributeRef]\u003E\n-;* V40 tmp36        [V40    ] (  0,  0   )  struct (32) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Immutable.ImmutableHashSet\u00601\u002BMutationInput[LaunchDarkly.Sdk.AttributeRef]\u003E\n-;  V41 tmp37        [V41,T45] (  3,  1.50)     int  -\u003E  rbx         \u0022Inline stloc first use temp\u0022\n-;  V42 tmp38        [V42,T37] (  3,  1.50)     ref  -\u003E  r15         class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableHashSet\u00601[LaunchDarkly.Sdk.AttributeRef]\u003E\n-;* V43 tmp39        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableHashSet\u00601\u002BHashBucket[LaunchDarkly.Sdk.AttributeRef]]\u003E\n-;  V44 tmp40        [V44,T24] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Immutable.ImmutableHashSet\u00601[LaunchDarkly.Sdk.AttributeRef]\u003E\n-;  V45 tmp41        [V45,T07] ( 11,  5.50)     ref  -\u003E  r12         class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableHashSet\u00601[LaunchDarkly.Sdk.AttributeRef]\u003E\n-;  V46 tmp42        [V46,T12] (  5,  5   )     ref  -\u003E  r12         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEqualityComparer\u00601[LaunchDarkly.Sdk.AttributeRef]\u003E\n-;  V47 tmp43        [V47,T13] (  5,  5   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Immutable.ImmutableHashSet\u00601[LaunchDarkly.Sdk.AttributeRef]\u003E\n-;  V48 tmp44        [V48,T02] ( 13, 13   )     ref  -\u003E  [rbp-0x70]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Immutable.ImmutableHashSet\u00601[LaunchDarkly.Sdk.AttributeRef]\u003E\n... diff truncated; middle omitted ...\n-       mov      r13, gword ptr [r12\u002B0x08]\n-       test     r13, r13\n-       jne      SHORT G_M44349_IG32\n-       mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.EqualityComparer\u00601[LaunchDarkly.Sdk.AttributeRef]:\u003CDefault\u003Ek__BackingField\n-       mov      r13, gword ptr [rdi]\n-\t\t\t\t\t\t;; size=23 bbWeight=0.50 PerfScore 2.75\n-G_M44349_IG32:\n-       cmp      r13, gword ptr [rbx\u002B0x08]\n-       je       G_M44349_IG34\n-       mov      rdi, r15\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r15, rax\n-       mov      rdi, 0xD1FFAB1E      ; global ptr\n-       test     byte  ptr [rdi], 1\n-       je       G_M44349_IG47\n-\t\t\t\t\t\t;; size=40 bbWeight=0.50 PerfScore 3.88\n-G_M44349_IG33:\n-       mov      rsi, 0xD1FFAB1E      ; data for System.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableHashSet\u00601\u002BHashBucket[LaunchDarkly.Sdk.AttributeRef]]:EmptyNode\n-       mov      r12, gword ptr [rsi]\n-       test     r12, r12\n-       je       G_M44349_IG42\n-       test     r13, r13\n-       je       G_M44349_IG43\n-       mov      rsi, 0xD1FFAB1E      ; data for System.Collections.Immutable.ImmutableHashSet\u00601[LaunchDarkly.Sdk.AttributeRef]:s_FreezeBucketAction\n-       mov      rsi, gword ptr [rsi]\n-       mov      rdi, r12\n-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableHashSet\u00601\u002BHashBucket[LaunchDarkly.Sdk.AttributeRef]]:Freeze(System.Action\u00601[System.Collections.Generic.KeyValuePair\u00602[int,System.Collections.Immutable.ImmutableHashSet\u00601\u002BHashBucket[LaunchDarkly.Sdk.AttributeRef]]]):this\n-       call     [rax]System.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableHashSet\u00601\u002BHashBucket[LaunchDarkly.Sdk.AttributeRef]]:Freeze(System.Action\u00601[System.Collections.Generic.KeyValuePair\u00602[int,System.Collections.Immutable.ImmutableHashSet\u00601\u002BHashBucket[LaunchDarkly.Sdk.AttributeRef]]]):this\n-       lea      rdi, bword ptr [r15\u002B0x10]\n-       mov      rsi, r12\n-       call     CORINFO_HELP_ASSIGN_REF\n-       xor      edi, edi\n-       mov      dword ptr [r15\u002B0x20], edi\n-       lea      rdi, bword ptr [r15\u002B0x08]\n-       mov      rsi, r13\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, r13\n-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableHashSet\u00601[LaunchDarkly.Sdk.AttributeRef]:GetHashBucketEqualityComparer(System.Collections.Generic.IEqualityComparer\u00601[LaunchDarkly.Sdk.AttributeRef]):System.Collections.Generic.IEqualityComparer\u00601[System.Collections.Immutable.ImmutableHashSet\u00601\u002BHashBucket[LaunchDarkly.Sdk.AttributeRef]]\n-       call     [rax]System.Collections.Immutable.ImmutableHashSet\u00601[LaunchDarkly.Sdk.AttributeRef]:GetHashBucketEqualityComparer(System.Collections.Generic.IEqualityComparer\u00601[LaunchDarkly.Sdk.AttributeRef]):System.Collections.Generic.IEqualityComparer\u00601[System.Collections.Immutable.ImmutableHashSet\u00601\u002BHashBucket[LaunchDarkly.Sdk.AttributeRef]]\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r15\u002B0x18]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, r15\n-       mov      rsi, rbx\n-       mov      edx, 1\n-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableHashSet\u00601[LaunchDarkly.Sdk.AttributeRef]:Union(System.Collections.Generic.IEnumerable\u00601[LaunchDarkly.Sdk.AttributeRef],bool):System.Collections.Immutable.ImmutableHashSet\u00601[LaunchDarkly.Sdk.AttributeRef]:this\n-       call     [rax]System.Collections.Immutable.ImmutableHashSet\u00601[LaunchDarkly.Sdk.AttributeRef]:Union(System.Collections.Generic.IEnumerable\u00601[LaunchDarkly.Sdk.AttributeRef],bool):System.Collections.Immutable.ImmutableHashSet\u00601[LaunchDarkly.Sdk.AttributeRef]:this\n-       mov      r15, rax\n-       jmp      SHORT G_M44349_IG35\n-\t\t\t\t\t\t;; size=144 bbWeight=0.50 PerfScore 13.38\n-G_M44349_IG34:\n-       mov      r15, rbx\n-\t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M44349_IG35:\n        mov      rsi, r15\n\u002B       jmp      SHORT G_M44349_IG21\n\u002B\t\t\t\t\t\t;; size=48 bbWeight=0.50 PerfScore 5.25\n\u002BG_M44349_IG20:\n\u002B       mov      rsi, r13\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M44349_IG36:\n\u002BG_M44349_IG21:\n        lea      rdi, bword ptr [r14\u002B0x18]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rax, r14\n \t\t\t\t\t\t;; size=12 bbWeight=1 PerfScore 1.75\n-G_M44349_IG37:\n-       add      rsp, 120\n\u002BG_M44349_IG22:\n\u002B       add      rsp, 88\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -541,67 \u002B367,42 @@ G_M44349_IG37:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M44349_IG38:\n-       mov      rdi, r15\n\u002BG_M44349_IG23:\n\u002B       mov      rdi, 0xD1FFAB1E      ; System.Collections.Immutable.ImmutableHashSet\u00601[LaunchDarkly.Sdk.AttributeRef]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M44349_IG19\n-\t\t\t\t\t\t;; size=20 bbWeight=0 PerfScore 0.00\n-G_M44349_IG39:\n\u002B       jmp      G_M44349_IG08\n\u002B\t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n\u002BG_M44349_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.EqualityComparer\u00601[LaunchDarkly.Sdk.AttributeRef]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M44349_IG20\n\u002B       jmp      G_M44349_IG09\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M44349_IG40:\n-       mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.EqualityComparer\u00601[LaunchDarkly.Sdk.AttributeRef]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M44349_IG10\n-\t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M44349_IG41:\n-       mov      rdi, 0xD1FFAB1E      ; System.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableHashSet\u00601\u002BHashBucket[LaunchDarkly.Sdk.AttributeRef]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M44349_IG11\n-\t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M44349_IG42:\n\u002BG_M44349_IG25:\n        mov      rdi, 0xD1FFAB1E      ; \u0027root\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)\n        call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)\n        int3     \n \t\t\t\t\t\t;; size=23 bbWeight=0 PerfScore 0.00\n-G_M44349_IG43:\n\u002BG_M44349_IG26:\n        mov      rdi, 0xD1FFAB1E      ; \u0027equalityComparer\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)\n        call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)\n        int3     \n \t\t\t\t\t\t;; size=23 bbWeight=0 PerfScore 0.00\n-G_M44349_IG44:\n-       mov      rdi, r15\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rcx]CORINFO_HELP_GET_GCSTATIC_BASE\n-       mov      rax, gword ptr [rbp-0x68]\n-       jmp      G_M44349_IG12\n-\t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M44349_IG45:\n\u002BG_M44349_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableHashSet\u00601\u002BHashBucket[LaunchDarkly.Sdk.AttributeRef]]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rcx]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M44349_IG21\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n\u002B       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n\u002B       jmp      G_M44349_IG11\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M44349_IG46:\n\u002BG_M44349_IG28:\n        mov      rdi, 0xD1FFAB1E      ; \u0027other\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)\n        call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)\n        int3     \n \t\t\t\t\t\t;; size=23 bbWeight=0 PerfScore 0.00\n-G_M44349_IG47:\n-       mov      rdi, 0xD1FFAB1E      ; System.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableHashSet\u00601\u002BHashBucket[LaunchDarkly.Sdk.AttributeRef]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M44349_IG33\n-\t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1855, prolog size 42, PerfScore 198.27, instruction count 394, allocated bytes for code 1855 (MethodHash=d54952c2) for method LaunchDarkly.Sdk.Server.Integrations.EventProcessorBuilder:MakeEventsConfiguration(LaunchDarkly.Sdk.Server.Subsystems.LdClientContext,bool):LaunchDarkly.Sdk.Internal.Events.EventsConfiguration:this (FullOpts)\n\u002B; Total bytes of code 1130, prolog size 42, PerfScore 150.96, instruction count 238, allocated bytes for code 1130 (MethodHash=d54952c2) for method LaunchDarkly.Sdk.Server.Integrations.EventProcessorBuilder:MakeEventsConfiguration(LaunchDarkly.Sdk.Server.Subsystems.LdClientContext,bool):LaunchDarkly.Sdk.Internal.Events.EventsConfiguration:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1855,"DiffBytes":1130},{"Assembly":"MathNet.Numerics.dasm","Method":"MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:SameAs[double](MathNet.Numerics.LinearAlgebra.Matrix\u00601[double],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)","Category":"improvement","Description":"594 -\u003E 120 bytes (-474)","ExtraInfo":null,"Diff":"@@ -1,214 \u002B1,65 @@\n ; Assembly listing for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:SameAs[double](MathNet.Numerics.LinearAlgebra.Matrix\u00601[double],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n-; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data\n\u002B; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 12,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V01 arg1         [V01,T03] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[double]\u003E\n-;  V02 arg2         [V02,T01] ( 11,  6.50)     int  -\u003E  r15         single-def\n-;  V03 arg3         [V03,T02] ( 11,  6.50)     int  -\u003E  r14         single-def\n-;  V04 arg4         [V04,T04] (  3,  2.50)   ubyte  -\u003E  r13         single-def\n-;  V05 loc0         [V05,T08] (  4,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]\u003E\n\u002B;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V01 arg1         [V01,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[double]\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  4   )     int  -\u003E  r15         single-def\n\u002B;  V03 arg3         [V03,T04] (  4,  4   )     int  -\u003E  r14         single-def\n\u002B;* V04 arg4         [V04    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def\n\u002B;* V05 loc0         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V07 tmp1         [V07,T00] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003CSystem.Numerics.Vector\u00601[float][]\u003E\n-;  V09 tmp3         [V09,T06] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003CSystem.Numerics.Vector\u00601[float][]\u003E\n-;  V11 tmp5         [V11,T11] (  2,  1   )     int  -\u003E  rsi         \u0022Inline return value spill temp\u0022\n-;  V12 tmp6         [V12,T09] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V13 tmp7         [V13,T10] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V14 tmp8         [V14,T07] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003CSystem.Numerics.Vector\u00601[float][]\u003E\n-;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022Single return block return value\u0022\n ;\n ; Lcl frame size = 8\n \n G_M3804_IG01:\n-       push     rbp\n        push     r15\n        push     r14\n        push     r13\n-       push     r12\n        push     rbx\n        push     rax\n-       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n        mov      r15d, edx\n        mov      r14d, ecx\n-       mov      r13d, r8d\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.75\n G_M3804_IG02:\n-       mov      r12, gword ptr [rsi\u002B0x08]\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M3804_IG11\n-\t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 7.00\n-G_M3804_IG03:\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M3804_IG07\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      SHORT G_M3804_IG05\n\u002B       cmp      byte  ptr [rsi], sil\n        mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        mov      rdi, r13\n        mov      esi, r15d\n        mov      edx, r14d\n        mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n        call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n        imul     r15d, r14d\n        movsxd   rsi, r15d\n        mov      rdi, 0xD1FFAB1E      ; System.Numerics.Vector\u00601[float][]\n        call     CORINFO_HELP_NEWARR_1_VC\n        mov      rsi, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, rbx\n        mov      rsi, r13\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=150 bbWeight=0.50 PerfScore 12.62\n-G_M3804_IG04:\n\u002B\t\t\t\t\t\t;; size=89 bbWeight=1 PerfScore 17.25\n\u002BG_M3804_IG03:\n        add      rsp, 8\n        pop      rbx\n-       pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n-       pop      rbp\n        tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M3804_IG05:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 5.00\n-G_M3804_IG06:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M3804_IG07:\n-       test     r13b, r13b\n-       je       SHORT G_M3804_IG09\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 5.62\n-G_M3804_IG08:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M3804_IG09:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       cmp      r15d, r14d\n-       mov      esi, r14d\n-       cmovle   esi, r15d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; System.Numerics.Vector\u00601[float][]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 7.12\n-G_M3804_IG10:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x10]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:Diagonal(MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M3804_IG11:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       mov      esi, r15d\n-       imul     esi, r14d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; System.Numerics.Vector\u00601[float][]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=89 bbWeight=0.50 PerfScore 7.75\n-G_M3804_IG12:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n\u002B\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 594, prolog size 16, PerfScore 66.75, instruction count 157, allocated bytes for code 594 (MethodHash=309df123) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:SameAs[double](MathNet.Numerics.LinearAlgebra.Matrix\u00601[double],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n\u002B; Total bytes of code 120, prolog size 8, PerfScore 27.25, instruction count 34, allocated bytes for code 120 (MethodHash=309df123) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:SameAs[double](MathNet.Numerics.LinearAlgebra.Matrix\u00601[double],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":594,"DiffBytes":120},{"Assembly":"Microsoft.AspNetCore.OData.dasm","Method":"Microsoft.AspNetCore.OData.Routing.ODataPathExtensions:GetPropertyAndStructuredTypeFromPath(Microsoft.OData.UriParser.ODataPath):System.ValueTuple\u00603[Microsoft.OData.Edm.IEdmProperty,Microsoft.OData.Edm.IEdmStructuredType,System.String] (FullOpts)","Category":"improvement","Description":"1,646 -\u003E 1,539 bytes (-107)","ExtraInfo":null,"Diff":"@@ -9,29 \u002B9,29 @@\n ; Final local variable assignments\n ;\n ;  V00 RetBuf       [V00,T05] (  9,  9   )    long  -\u003E  [rbp-0x28]  EH-live single-def\n-;  V01 arg0         [V01,T14] (  5,  5   )     ref  -\u003E  rbx         class-hnd single-def \u003CMicrosoft.OData.UriParser.ODataPath\u003E\n\u002B;  V01 arg0         [V01,T12] (  5,  5   )     ref  -\u003E  rbx         class-hnd single-def \u003CMicrosoft.OData.UriParser.ODataPath\u003E\n ;  V02 loc0         [V02,T01] ( 20, 32   )     ref  -\u003E  r15         class-hnd \u003CMicrosoft.OData.Edm.IEdmStructuredType\u003E\n ;  V03 loc1         [V03,T06] (  7, 10   )     ref  -\u003E  r14         class-hnd \u003CSystem.String\u003E\n ;* V04 loc2         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.OData.UriParser.ODataPathSegment]\u003E\n ;  V05 loc3         [V05,T02] (  6, 19   )     ref  -\u003E  [rbp-0x40]  class-hnd EH-live single-def \u003CSystem.Collections.Generic.IEnumerator\u00601[Microsoft.OData.UriParser.ODataPathSegment]\u003E\n ;  V06 loc4         [V06,T00] ( 25, 96   )     ref  -\u003E  rax         class-hnd \u003CMicrosoft.OData.UriParser.ODataPathSegment\u003E\n-;  V07 loc5         [V07,T33] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact \u003CMicrosoft.OData.UriParser.NavigationPropertySegment\u003E\n-;  V08 loc6         [V08,T34] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact \u003CMicrosoft.OData.UriParser.OperationSegment\u003E\n-;  V09 loc7         [V09,T43] (  2,  2   )     ref  -\u003E  rdi         class-hnd exact \u003CMicrosoft.OData.UriParser.PropertySegment\u003E\n-;  V10 loc8         [V10,T35] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact \u003CMicrosoft.OData.UriParser.EntitySetSegment\u003E\n-;  V11 loc9         [V11,T36] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact \u003CMicrosoft.OData.UriParser.SingletonSegment\u003E\n-;  V12 loc10        [V12,T44] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact \u003CMicrosoft.OData.UriParser.OperationImportSegment\u003E\n-;  V13 loc11        [V13,T13] (  2,  8   )     ref  -\u003E  rax         class-hnd exact \u003CMicrosoft.OData.UriParser.TypeSegment\u003E\n-;  V14 loc12        [V14,T45] (  2,  2   )     ref  -\u003E  r13         class-hnd \u003CMicrosoft.OData.Edm.IEdmNavigationProperty\u003E\n-;  V15 loc13        [V15,T46] (  2,  2   )     ref  -\u003E  rax         class-hnd exact \u003CSystem.String\u003E\n\u002B;  V07 loc5         [V07,T31] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact \u003CMicrosoft.OData.UriParser.NavigationPropertySegment\u003E\n\u002B;  V08 loc6         [V08,T32] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact \u003CMicrosoft.OData.UriParser.OperationSegment\u003E\n\u002B;  V09 loc7         [V09,T40] (  2,  2   )     ref  -\u003E  rdi         class-hnd exact \u003CMicrosoft.OData.UriParser.PropertySegment\u003E\n\u002B;  V10 loc8         [V10,T33] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact \u003CMicrosoft.OData.UriParser.EntitySetSegment\u003E\n\u002B;  V11 loc9         [V11,T34] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact \u003CMicrosoft.OData.UriParser.SingletonSegment\u003E\n\u002B;  V12 loc10        [V12,T41] (  2,  2   )     ref  -\u003E  rdx         class-hnd exact \u003CMicrosoft.OData.UriParser.OperationImportSegment\u003E\n\u002B;  V13 loc11        [V13,T11] (  2,  8   )     ref  -\u003E  rax         class-hnd exact \u003CMicrosoft.OData.UriParser.TypeSegment\u003E\n\u002B;  V14 loc12        [V14,T42] (  2,  2   )     ref  -\u003E  r13         class-hnd \u003CMicrosoft.OData.Edm.IEdmNavigationProperty\u003E\n\u002B;  V15 loc13        [V15,T43] (  2,  2   )     ref  -\u003E  rax         class-hnd exact \u003CSystem.String\u003E\n ;* V16 loc14        [V16    ] (  0,  0   )  struct (24) zero-ref    \u003CSystem.ValueTuple\u00603[Microsoft.OData.Edm.IEdmProperty,Microsoft.OData.Edm.IEdmStructuredType,System.String]\u003E\n-;  V17 loc15        [V17,T47] (  2,  2   )     ref  -\u003E  rax         class-hnd exact \u003CSystem.String\u003E\n-;  V18 loc16        [V18,T17] (  4,  4   )     ref  -\u003E  rbx         class-hnd \u003CMicrosoft.OData.Edm.IEdmStructuralProperty\u003E\n-;  V19 loc17        [V19,T48] (  2,  2   )     ref  -\u003E  rax         class-hnd exact \u003CSystem.String\u003E\n-;  V20 loc18        [V20,T49] (  2,  2   )     ref  -\u003E  rax         class-hnd exact \u003CSystem.String\u003E\n-;  V21 loc19        [V21,T50] (  2,  2   )     ref  -\u003E  rax         class-hnd exact \u003CSystem.String\u003E\n\u002B;  V17 loc15        [V17,T44] (  2,  2   )     ref  -\u003E  rax         class-hnd exact \u003CSystem.String\u003E\n\u002B;  V18 loc16        [V18,T16] (  4,  4   )     ref  -\u003E  rbx         class-hnd \u003CMicrosoft.OData.Edm.IEdmStructuralProperty\u003E\n\u002B;  V19 loc17        [V19,T45] (  2,  2   )     ref  -\u003E  rax         class-hnd exact \u003CSystem.String\u003E\n\u002B;  V20 loc18        [V20,T46] (  2,  2   )     ref  -\u003E  rax         class-hnd exact \u003CSystem.String\u003E\n\u002B;  V21 loc19        [V21,T47] (  2,  2   )     ref  -\u003E  rax         class-hnd exact \u003CSystem.String\u003E\n ;* V22 loc20        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMicrosoft.OData.Edm.IEdmOperationImport\u003E\n-;  V23 loc21        [V23,T37] (  3,  3   )     ref  -\u003E  rax         class-hnd \u003CMicrosoft.OData.Edm.IEdmTypeReference\u003E\n\u002B;  V23 loc21        [V23,T35] (  3,  3   )     ref  -\u003E  rax         class-hnd \u003CMicrosoft.OData.Edm.IEdmTypeReference\u003E\n ;# V24 OutArgs      [V24    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V25 tmp1         [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CMicrosoft.OData.UriParser.NavigationPropertySegment\u003E\n ;* V26 tmp2         [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CMicrosoft.OData.UriParser.OperationSegment\u003E\n@@ -46,7 \u002B46,7 @@\n ;* V35 tmp11        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V36 tmp12        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;  V37 tmp13        [V37,T04] (  3, 12   )     ref  -\u003E  rax        \n-;  V38 tmp14        [V38,T20] (  2,  4   )     ref  -\u003E  rbx         class-hnd \u0022non-inline candidate call\u0022 \u003CMicrosoft.OData.Edm.IEdmType\u003E\n\u002B;  V38 tmp14        [V38,T18] (  2,  4   )     ref  -\u003E  r15         class-hnd \u0022non-inline candidate call\u0022 \u003CMicrosoft.OData.Edm.IEdmType\u003E\n ;* V39 tmp15        [V39    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ValueTuple\u00603[Microsoft.OData.Edm.IEdmProperty,Microsoft.OData.Edm.IEdmStructuredType,System.String]\u003E\n ;* V40 tmp16        [V40    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ValueTuple\u00603[Microsoft.OData.Edm.IEdmProperty,Microsoft.OData.Edm.IEdmStructuredType,System.String]\u003E\n ;* V41 tmp17        [V41    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ValueTuple\u00603[Microsoft.OData.Edm.IEdmProperty,Microsoft.OData.Edm.IEdmStructuredType,System.String]\u003E\n@@ -56,26 \u002B56,26 @@\n ;* V45 tmp21        [V45    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ValueTuple\u00603[Microsoft.OData.Edm.IEdmProperty,Microsoft.OData.Edm.IEdmStructuredType,System.String]\u003E\n ;* V46 tmp22        [V46    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ValueTuple\u00603[Microsoft.OData.Edm.IEdmProperty,Microsoft.OData.Edm.IEdmStructuredType,System.String]\u003E\n ;* V47 tmp23        [V47    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ValueTuple\u00603[Microsoft.OData.Edm.IEdmProperty,Microsoft.OData.Edm.IEdmStructuredType,System.String]\u003E\n-;  V48 tmp24        [V48,T38] (  3,  3   )     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.OData.UriParser.ODataPathSegment]\u003E\n\u002B;  V48 tmp24        [V48,T36] (  3,  3   )     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.OData.UriParser.ODataPathSegment]\u003E\n ;  V49 tmp25        [V49,T10] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Enumerable\u002BReverseIterator\u00601[Microsoft.OData.UriParser.ODataPathSegment]\u003E\n-;* V50 tmp26        [V50,T51] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V51 tmp27        [V51,T39] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.OData.UriParser.ODataPathSegment[]\u003E\n-;  V52 tmp28        [V52,T11] (  4,  8   )     ref  -\u003E  rbx         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[Microsoft.OData.Edm.IEdmOperation]\u003E\n-;  V53 tmp29        [V53    ] (  3,  3   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;* V50 tmp26        [V50,T49] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V51 tmp27        [V51,T37] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.OData.UriParser.ODataPathSegment[]\u003E\n\u002B;  V52 tmp28        [V52,T13] (  3,  6   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[Microsoft.OData.Edm.IEdmOperation]\u003E\n\u002B;  V53 tmp29        [V53    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V54 tmp30        [V54    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V55 tmp31        [V55,T40] (  3,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMicrosoft.OData.Edm.IEdmOperation\u003E\n... diff truncated; middle omitted ...\n-       call     [r11]Microsoft.OData.Edm.IEdmNavigationSource:get_EntityType():Microsoft.OData.Edm.IEdmEntityType:this\n-       mov      r15, rax\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 7.00\n-G_M25753_IG39:\n-       mov      rdi, gword ptr [rbx\u002B0x28]\n-       mov      r11, 0xD1FFAB1E      ; code for Microsoft.OData.Edm.IEdmNamedElement:get_Name():System.String:this\n-       call     [r11]Microsoft.OData.Edm.IEdmNamedElement:get_Name():System.String:this\n-       mov      rdi, rax\n-       mov      rsi, r14\n-       mov      rax, 0xD1FFAB1E      ; code for System.String:Concat(System.String,System.String):System.String\n-       call     [rax]System.String:Concat(System.String,System.String):System.String\n-       xor      rsi, rsi\n-       mov      gword ptr [rbp-0x48], rsi\n-       mov      gword ptr [rbp-0x50], r15\n-       mov      gword ptr [rbp-0x58], rax\n-       jmp      G_M25753_IG47\n-\t\t\t\t\t\t;; size=54 bbWeight=1 PerfScore 14.25\n-G_M25753_IG40:\n-       mov      rsi, rax\n-       mov      rbx, gword ptr [rsi\u002B0x28]\n-       test     rbx, rbx\n-       je       G_M25753_IG45\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[Microsoft.OData.Edm.IEdmOperationImport]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M25753_IG41\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      r15, rax\n-       jmp      SHORT G_M25753_IG42\n-\t\t\t\t\t\t;; size=68 bbWeight=1 PerfScore 18.50\n-G_M25753_IG41:\n\u002B       mov      rdx, rax\n\u002B       mov      rsi, gword ptr [rdx\u002B0x28]\n\u002B       test     rsi, rsi\n\u002B       je       G_M25753_IG41\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[Microsoft.OData.Edm.IEdmOperationImport](System.Collections.Generic.IEnumerable\u00601[Microsoft.OData.Edm.IEdmOperationImport],byref):Microsoft.OData.Edm.IEdmOperationImport\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      r15, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=1 PerfScore 4.50\n-G_M25753_IG42:\n\u002B       mov      rbx, rax\n        cmp      byte  ptr [rbp-0x38], 0\n-       je       G_M25753_IG46\n-       mov      rdi, r15\n\u002B       je       G_M25753_IG42\n\u002B       mov      rdi, rbx\n        mov      r11, 0xD1FFAB1E      ; code for Microsoft.OData.Edm.IEdmOperationImport:get_Operation():Microsoft.OData.Edm.IEdmOperation:this\n        call     [r11]Microsoft.OData.Edm.IEdmOperationImport:get_Operation():Microsoft.OData.Edm.IEdmOperation:this\n        mov      rdi, rax\n        mov      r11, 0xD1FFAB1E      ; code for Microsoft.OData.Edm.IEdmOperation:get_ReturnType():Microsoft.OData.Edm.IEdmTypeReference:this\n        call     [r11]Microsoft.OData.Edm.IEdmOperation:get_ReturnType():Microsoft.OData.Edm.IEdmTypeReference:this\n        test     rax, rax\n-       je       SHORT G_M25753_IG43\n\u002B       je       SHORT G_M25753_IG39\n        mov      rdi, rax\n        mov      r11, 0xD1FFAB1E      ; code for Microsoft.OData.Edm.IEdmTypeReference:get_Definition():Microsoft.OData.Edm.IEdmType:this\n        call     [r11]Microsoft.OData.Edm.IEdmTypeReference:get_Definition():Microsoft.OData.Edm.IEdmType:this\n@@ -507,44 \u002B472,44 @@ G_M25753_IG42:\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.OData.Edm.IEdmStructuredType\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFINTERFACE\n        call     [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE\n-       mov      rbx, rax\n-       mov      rdi, r15\n\u002B       mov      r15, rax\n\u002B       mov      rdi, rbx\n        mov      r11, 0xD1FFAB1E      ; code for Microsoft.OData.Edm.IEdmNamedElement:get_Name():System.String:this\n        call     [r11]Microsoft.OData.Edm.IEdmNamedElement:get_Name():System.String:this\n        xor      rdi, rdi\n        mov      gword ptr [rbp-0x48], rdi\n-       mov      gword ptr [rbp-0x50], rbx\n\u002B       mov      gword ptr [rbp-0x50], r15\n        mov      gword ptr [rbp-0x58], rax\n-       jmp      SHORT G_M25753_IG47\n-\t\t\t\t\t\t;; size=138 bbWeight=1 PerfScore 30.00\n-G_M25753_IG43:\n-       mov      rdi, r15\n\u002B       jmp      SHORT G_M25753_IG43\n\u002B\t\t\t\t\t\t;; size=183 bbWeight=1 PerfScore 37.75\n\u002BG_M25753_IG39:\n\u002B       mov      rdi, rbx\n        mov      r11, 0xD1FFAB1E      ; code for Microsoft.OData.Edm.IEdmNamedElement:get_Name():System.String:this\n        call     [r11]Microsoft.OData.Edm.IEdmNamedElement:get_Name():System.String:this\n        xor      rcx, rcx\n        mov      gword ptr [rbp-0x48], rcx\n \t\t\t\t\t\t;; size=22 bbWeight=1 PerfScore 4.75\n-G_M25753_IG44:\n\u002BG_M25753_IG40:\n        mov      gword ptr [rbp-0x50], rcx\n        mov      gword ptr [rbp-0x58], rax\n-       jmp      SHORT G_M25753_IG47\n\u002B       jmp      SHORT G_M25753_IG43\n \t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 4.00\n-G_M25753_IG45:\n\u002BG_M25753_IG41:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M25753_IG46:\n\u002BG_M25753_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M25753_IG47:\n-       call     G_M25753_IG55\n\u002BG_M25753_IG43:\n\u002B       call     G_M25753_IG51\n        nop      \n \t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 1.25\n-G_M25753_IG48:\n\u002BG_M25753_IG44:\n        mov      rdi, gword ptr [rbp-0x48]\n        mov      rax, qword ptr [rbp-0x28]\n        mov      gword ptr [rax], rdi\n@@ -553,27 \u002B518,27 @@ G_M25753_IG48:\n        mov      rdi, gword ptr [rbp-0x58]\n        mov      gword ptr [rax\u002B0x10], rdi\n        mov      rcx, qword ptr [rbp-0x28]\n-       jmp      SHORT G_M25753_IG52\n\u002B       jmp      SHORT G_M25753_IG48\n \t\t\t\t\t\t;; size=33 bbWeight=1 PerfScore 10.00\n-G_M25753_IG49:\n\u002BG_M25753_IG45:\n        mov      rdi, gword ptr [rbp-0x40]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 4.25\n-G_M25753_IG50:\n\u002BG_M25753_IG46:\n        xor      rax, rax\n        mov      rcx, qword ptr [rbp-0x28]\n        mov      gword ptr [rcx], rax\n \t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 2.25\n-G_M25753_IG51:\n\u002BG_M25753_IG47:\n        mov      gword ptr [rcx\u002B0x08], rax\n        mov      rax, 0xD1FFAB1E      ; \u0027\u0027\n        mov      gword ptr [rcx\u002B0x10], rax\n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 2.25\n-G_M25753_IG52:\n\u002BG_M25753_IG48:\n        mov      rax, rcx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M25753_IG53:\n\u002BG_M25753_IG49:\n        add      rsp, 64\n        pop      rbx\n        pop      r13\n@@ -582,29 \u002B547,29 @@ G_M25753_IG53:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n-G_M25753_IG54:\n\u002BG_M25753_IG50:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[Microsoft.OData.UriParser.ODataPathSegment]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M25753_IG05\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M25753_IG55:\n\u002BG_M25753_IG51:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 1.00\n-G_M25753_IG56:\n\u002BG_M25753_IG52:\n        cmp      gword ptr [rbp-0x40], 0\n-       je       SHORT G_M25753_IG57\n\u002B       je       SHORT G_M25753_IG53\n        mov      rdi, gword ptr [rbp-0x40]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=1 PerfScore 6.25\n-G_M25753_IG57:\n\u002BG_M25753_IG53:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M25753_IG58:\n\u002BG_M25753_IG54:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n \n-; Total bytes of code 1646, prolog size 44, PerfScore 603.08, instruction count 368, allocated bytes for code 1646 (MethodHash=86a39b66) for method Microsoft.AspNetCore.OData.Routing.ODataPathExtensions:GetPropertyAndStructuredTypeFromPath(Microsoft.OData.UriParser.ODataPath):System.ValueTuple\u00603[Microsoft.OData.Edm.IEdmProperty,Microsoft.OData.Edm.IEdmStructuredType,System.String] (FullOpts)\n\u002B; Total bytes of code 1539, prolog size 44, PerfScore 572.83, instruction count 341, allocated bytes for code 1539 (MethodHash=86a39b66) for method Microsoft.AspNetCore.OData.Routing.ODataPathExtensions:GetPropertyAndStructuredTypeFromPath(Microsoft.OData.UriParser.ODataPath):System.ValueTuple\u00603[Microsoft.OData.Edm.IEdmProperty,Microsoft.OData.Edm.IEdmStructuredType,System.String] (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1646,"DiffBytes":1539},{"Assembly":"Microsoft.CodeAnalysis.AnalyzerUtilities.dasm","Method":"Microsoft.CodeAnalysis.ErrorReporting.FatalError\u002B\u003C\u003Ec__DisplayClass16_0:\u003CReportNonFatalErrorUnlessCancelledAsync\u003Eb__0(System.Threading.Tasks.Task):bool:this (FullOpts)","Category":"improvement","Description":"144 -\u003E 61 bytes (-83)","ExtraInfo":null,"Diff":"@@ -1,92 \u002B1,50 @@\n ; Assembly listing for method Microsoft.CodeAnalysis.ErrorReporting.FatalError\u002B\u003C\u003Ec__DisplayClass16_0:\u003CReportNonFatalErrorUnlessCancelledAsync\u003Eb__0(System.Threading.Tasks.Task):bool:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n-; 0 inlinees with PGO data; 2 single block inlinees; 3 inlinees without PGO data\n\u002B; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T01] (  3,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMicrosoft.CodeAnalysis.ErrorReporting.FatalError\u002B\u003C\u003Ec__DisplayClass16_0\u003E\n-;  V01 arg1         [V01,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.Threading.Tasks.Task\u003E\n\u002B;  V00 this         [V00,T00] (  3,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMicrosoft.CodeAnalysis.ErrorReporting.FatalError\u002B\u003C\u003Ec__DisplayClass16_0\u003E\n\u002B;  V01 arg1         [V01,T01] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.Threading.Tasks.Task\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V03 tmp1         [V03,T04] (  3,  2   )   ubyte  -\u003E  rax         \u0022Inline return value spill temp\u0022\n-;  V04 tmp2         [V04,T00] (  5,  6.50)     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.AggregateException\u003E\n\u002B;* V03 tmp1         [V03    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V04 tmp2         [V04,T02] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.AggregateException\u003E\n ;* V05 tmp3         [V05    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V06 tmp4         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling qmarkNull\u0022\n-;  V07 tmp5         [V07,T06] (  2,  1   )   ubyte  -\u003E  rdi         \u0022Inline return value spill temp\u0022\n-;* V08 tmp6         [V08    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V09 tmp7         [V09,T05] (  3,  1.50)   ubyte  -\u003E  rdi         \u0022Inline return value spill temp\u0022\n-;* V10 tmp8         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;* V11 tmp9         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V12 tmp10        [V12,T03] (  3,  2   )     ref  -\u003E  rbx         single-def \u0022field V08._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V06 tmp4         [V06    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp5         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 0\n\u002B; Lcl frame size = 8\n \n G_M51956_IG01:\n        push     rbp\n-       push     r15\n        push     rbx\n\u002B       push     rax\n        lea      rbp, [rsp\u002B0x10]\n        mov      rbx, rdi\n-\t\t\t\t\t\t;; size=12 bbWeight=1 PerfScore 3.75\n\u002B\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.75\n G_M51956_IG02:\n        mov      rdi, rsi\n        mov      rax, 0xD1FFAB1E      ; code for System.Threading.Tasks.Task:get_Exception():System.AggregateException:this\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.Threading.Tasks.Task:get_Exception():System.AggregateException:this\n-       mov      r15, rax\n-       mov      rbx, gword ptr [rbx\u002B0x08]\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.OperationCanceledException\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M51956_IG06\n-\t\t\t\t\t\t;; size=54 bbWeight=1 PerfScore 12.75\n-G_M51956_IG03:\n-       test     rbx, rbx\n-       jne      SHORT G_M51956_IG04\n-       xor      edi, edi\n-       jmp      SHORT G_M51956_IG05\n-\t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 1.75\n-G_M51956_IG04:\n-       cmp      dword ptr [rbx\u002B0x20], 0\n-       setne    dil\n-       movzx    rdi, dil\n-\t\t\t\t\t\t;; size=12 bbWeight=0.50 PerfScore 1.38\n-G_M51956_IG05:\n-       test     edi, edi\n-       jne      SHORT G_M51956_IG08\n-\t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.62\n-G_M51956_IG06:\n-       test     r15, r15\n-       je       SHORT G_M51956_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 0.62\n-G_M51956_IG07:\n-       mov      rdi, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.ErrorReporting.OperationCanceledIgnoringCallerTokenException\n-       cmp      qword ptr [r15], rdi\n-       jne      SHORT G_M51956_IG09\n-\t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M51956_IG08:\n-       xor      eax, eax\n-       jmp      SHORT G_M51956_IG10\n-\t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 1.12\n-G_M51956_IG09:\n-       mov      rdi, r15\n\u002B       mov      rdi, rax\n\u002B       cmp      byte  ptr [rbx], bl\n        xor      esi, esi\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.CodeAnalysis.ErrorReporting.FatalError:Report(System.Exception,int,bool)\n        call     [rax]Microsoft.CodeAnalysis.ErrorReporting.FatalError:Report(System.Exception,int,bool)\n        mov      eax, 1\n-\t\t\t\t\t\t;; size=24 bbWeight=0.50 PerfScore 2.12\n-G_M51956_IG10:\n\u002B\t\t\t\t\t\t;; size=43 bbWeight=1 PerfScore 11.75\n\u002BG_M51956_IG03:\n\u002B       add      rsp, 8\n        pop      rbx\n-       pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 2.50\n\u002B\t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.25\n \n-; Total bytes of code 144, prolog size 9, PerfScore 27.44, instruction count 43, allocated bytes for code 144 (MethodHash=1d26350b) for method Microsoft.CodeAnalysis.ErrorReporting.FatalError\u002B\u003C\u003Ec__DisplayClass16_0:\u003CReportNonFatalErrorUnlessCancelledAsync\u003Eb__0(System.Threading.Tasks.Task):bool:this (FullOpts)\n\u002B; Total bytes of code 61, prolog size 8, PerfScore 17.75, instruction count 20, allocated bytes for code 61 (MethodHash=1d26350b) for method Microsoft.CodeAnalysis.ErrorReporting.FatalError\u002B\u003C\u003Ec__DisplayClass16_0:\u003CReportNonFatalErrorUnlessCancelledAsync\u003Eb__0(System.Threading.Tasks.Task):bool:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":144,"DiffBytes":61},{"Assembly":"Microsoft.CodeAnalysis.CSharp.Features.dasm","Method":"Microsoft.CodeAnalysis.CSharp.Structure.NamespaceDeclarationStructureProvider:CollectBlockSpans(Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.NamespaceDeclarationSyntax,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder\u00601[Microsoft.CodeAnalysis.Structure.BlockSpan],Microsoft.CodeAnalysis.Structure.BlockStructureOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"2,640 -\u003E 2,588 bytes (-52)","ExtraInfo":null,"Diff":"@@ -14,35 \u002B14,35 @@\n ;  V03 arg3         [V03,T03] (  8,  5   )     ref  -\u003E  r15         class-hnd single-def \u003CMicrosoft.CodeAnalysis.PooledObjects.ArrayBuilder\u00601[Microsoft.CodeAnalysis.Structure.BlockSpan]\u003E\n ;  V04 arg4         [V04    ] (  5,  4.50)     ref  -\u003E  [rbp-0x30]  do-not-enreg[X] addr-exposed ld-addr-op class-hnd single-def \u003CMicrosoft.CodeAnalysis.Structure.BlockStructureOptions\u003E\n ;* V05 arg5         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T20] (  5,  4   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[Microsoft.CodeAnalysis.SyntaxNode]\u003E\n\u002B;  V06 loc0         [V06,T26] (  4,  3.50)     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[Microsoft.CodeAnalysis.SyntaxNode]\u003E\n ;  V07 loc1         [V07    ] (  8,  6   )  struct (24) [rbp-0x48]  do-not-enreg[XDAS] must-init addr-exposed defined-via-address ld-addr-op \u003CMicrosoft.CodeAnalysis.SyntaxToken\u003E\n ;  V08 OutArgs      [V08    ] (  1,  1   )  struct (40) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;  V09 tmp1         [V09,T09] (  3,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CMicrosoft.CodeAnalysis.SyntaxList\u00601[Microsoft.CodeAnalysis.CSharp.Syntax.ExternAliasDirectiveSyntax]\u003E\n ;  V10 tmp2         [V10,T10] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CMicrosoft.CodeAnalysis.SyntaxList\u00601[Microsoft.CodeAnalysis.CSharp.Syntax.UsingDirectiveSyntax]\u003E\n-;  V11 tmp3         [V11,T22] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[Microsoft.CodeAnalysis.SyntaxNode,int]\u003E\n\u002B;  V11 tmp3         [V11,T21] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[Microsoft.CodeAnalysis.SyntaxNode,int]\u003E\n ;  V12 tmp4         [V12,T11] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.CodeAnalysis.SyntaxNode]\u003E\n ;* V13 tmp5         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V14 tmp6         [V14,T27] (  4,  3.50)     ref  -\u003E  r13        \n ;  V15 tmp7         [V15,T19] (  3,  5   )  struct (56) [rbp-0x80]  do-not-enreg[DAS] must-init defined-via-address \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[Microsoft.CodeAnalysis.Structure.BlockSpan]\u003E\n-;  V16 tmp8         [V16,T73] (  2,  2   )  struct (40) [rbp-0xA8]  do-not-enreg[DAS] must-init defined-via-address \u0022spilled call-like call argument\u0022 \u003CMicrosoft.CodeAnalysis.SyntaxTriviaList\u003E\n\u002B;  V16 tmp8         [V16,T72] (  2,  2   )  struct (40) [rbp-0xA8]  do-not-enreg[DAS] must-init defined-via-address \u0022spilled call-like call argument\u0022 \u003CMicrosoft.CodeAnalysis.SyntaxTriviaList\u003E\n ;  V17 tmp9         [V17,T12] (  5,  5   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[Microsoft.CodeAnalysis.SyntaxNode,int]\u003E\n ;  V18 tmp10        [V18,T37] (  3,  3   )  struct (24) [rbp-0xC0]  do-not-enreg[DAS] must-init defined-via-address \u0022spilled call-like call argument\u0022 \u003CMicrosoft.CodeAnalysis.SyntaxToken\u003E\n ;* V19 tmp11        [V19    ] (  0,  0   )  struct (56) zero-ref    do-not-enreg[S] \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[Microsoft.CodeAnalysis.Structure.BlockSpan]\u003E\n ;* V20 tmp12        [V20    ] (  0,  0   )  struct (40) zero-ref    do-not-enreg[S] \u0022spilled call-like call argument\u0022 \u003CMicrosoft.CodeAnalysis.SyntaxTriviaList\u003E\n ;  V21 tmp13        [V21    ] (  2,  1   )  struct (48) [rbp-0xF0]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMicrosoft.CodeAnalysis.Structure.BlockSpan\u003E\n-;  V22 tmp14        [V22,T104] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V23 tmp15        [V23,T23] (  2,  4   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.CodeAnalysis.Structure.BlockStructureOptions\u003E\n\u002B;  V22 tmp14        [V22,T103] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V23 tmp15        [V23,T22] (  2,  4   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.CodeAnalysis.Structure.BlockStructureOptions\u003E\n ;  V24 tmp16        [V24,T15] (  5,  5   )  struct (48) [rbp-0x120]  do-not-enreg[S] must-init single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.CodeAnalysis.Structure.BlockSpan\u003E\n ;  V25 tmp17        [V25,T04] (  7,  7   )     ref  -\u003E  r14         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Immutable.ImmutableArray\u00601\u002BBuilder[Microsoft.CodeAnalysis.Structure.BlockSpan]\u003E\n ;  V26 tmp18        [V26,T48] (  5,  2.50)     int  -\u003E  r13         single-def \u0022Inline stloc first use temp\u0022\n ;* V27 tmp19        [V27    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n-;  V28 tmp20        [V28,T97] (  2,  1   )     int  -\u003E  rsi         \u0022Inline return value spill temp\u0022\n\u002B;  V28 tmp20        [V28,T96] (  2,  1   )     int  -\u003E  rsi         \u0022Inline return value spill temp\u0022\n ;  V29 tmp21        [V29,T38] (  3,  3   )     int  -\u003E  rsi         \u0022Inlining Arg\u0022\n-;  V30 tmp22        [V30,T57] (  4,  2   )  struct (24) [rbp-0x138]  do-not-enreg[DAS] must-init defined-via-address ld-addr-op \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.CodeAnalysis.SyntaxToken\u003E\n\u002B;  V30 tmp22        [V30,T56] (  4,  2   )  struct (24) [rbp-0x138]  do-not-enreg[DAS] must-init defined-via-address ld-addr-op \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.CodeAnalysis.SyntaxToken\u003E\n ;* V31 tmp23        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    ld-addr-op class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.CodeAnalysis.SyntaxNode\u003E\n-;  V32 tmp24        [V32,T58] (  2,  2   )     ref  -\u003E  rdi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.CodeAnalysis.SyntaxNavigator\u003E\n\u002B;  V32 tmp24        [V32,T57] (  2,  2   )     ref  -\u003E  rdi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.CodeAnalysis.SyntaxNavigator\u003E\n ;* V33 tmp25        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.CodeAnalysis.SyntaxNode\u003E\n-;  V34 tmp26        [V34,T59] (  2,  2   )     ref  -\u003E  rcx         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Func\u00602[Microsoft.CodeAnalysis.SyntaxToken,bool]\u003E\n\u002B;  V34 tmp26        [V34,T58] (  2,  2   )     ref  -\u003E  rcx         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Func\u00602[Microsoft.CodeAnalysis.SyntaxToken,bool]\u003E\n ;* V35 tmp27        [V35    ] (  0,  0   )     int  -\u003E  zero-ref   \n ;* V36 tmp28        [V36    ] (  0,  0   )     int  -\u003E  zero-ref   \n ;* V37 tmp29        [V37    ] (  0,  0   )     int  -\u003E  zero-ref   \n@@ -52,10 \u002B52,10 @@\n ;* V41 tmp33        [V41    ] (  0,  0   )     int  -\u003E  zero-ref   \n ;* V42 tmp34        [V42    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n ;  V43 tmp35        [V43,T49] (  5,  2.50)  struct (40) [rbp-0x160]  do-not-enreg[SF] must-init \u0022Inline return value spill temp\u0022 \u003CMicrosoft.CodeAnalysis.SyntaxTriviaList\u003E\n-;  V44 tmp36        [V44,T60] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.CodeAnalysis.GreenNode\u003E\n-;  V45 tmp37        [V45,T74] (  2,  2   )  struct (40) [rbp-0x188]  do-not-enreg[SF] must-init ld-addr-op \u0022NewObj constructor temp\u0022 \u003CMicrosoft.CodeAnalysis.SyntaxTriviaList\u003E\n\u002B;  V44 tmp36        [V44,T59] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.CodeAnalysis.GreenNode\u003E\n\u002B;  V45 tmp37        [V45,T73] (  2,  2   )  struct (40) [rbp-0x188]  do-not-enreg[SF] must-init ld-addr-op \u0022NewObj constructor temp\u0022 \u003CMicrosoft.CodeAnalysis.SyntaxTriviaList\u003E\n ;* V46 tmp38        [V46    ] (  0,  0   )  struct (40) zero-ref    do-not-enreg[S] ld-addr-op single-def \u0022Inline ldloca(s) first use temp\u0022 \u003CMicrosoft.CodeAnalysis.SyntaxTriviaList\u003E\n-;  V47 tmp39        [V47,T75] (  2,  2   )     int  -\u003E  rcx         \u0022Inlining Arg\u0022\n\u002B;  V47 tmp39        [V47,T74] (  2,  2   )     int  -\u003E  rcx         \u0022Inlining Arg\u0022\n ;* V48 tmp40        [V48    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V49 tmp41        [V49,T17] (  3,  5   )     ref  -\u003E  rsi         class-hnd single-def \u0022dup spill\u0022 \u003CMicrosoft.CodeAnalysis.GreenNode\u003E\n ;* V50 tmp42        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -69,16 \u002B69,16 @@\n ;* V58 tmp50        [V58    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMicrosoft.CodeAnalysis.GreenNode\u003E\n ;* V59 tmp51        [V59    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V60 tmp52        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMicrosoft.CodeAnalysis.CSharp.Syntax.NameSyntax\u003E\n-;  V61 tmp53        [V61,T21] (  4,  4   )   byref  -\u003E  r14         single-def \u0022Inlining Arg\u0022\n\u002B;  V61 tmp53        [V61,T20] (  4,  4   )   byref  -\u003E  r14         single-def \u0022Inlining Arg\u0022\n ;  V62 tmp54        [V62,T46] (  5,  2.50)     ref  -\u003E  r13         class-hnd \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.CodeAnalysis.CSharp.Syntax.NameSyntax\u003E\n ;  V63 tmp55        [V63,T52] (  4,  2   )     ref  -\u003E  r12         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.CodeAnalysis.GreenNode\u003E\n... diff truncated; middle omitted ...\n G_M58482_IG29:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.Comparer\u00601[int]:\u003CDefault\u003Ek__BackingField\n@@ -776,39 \u002B776,23 @@ G_M58482_IG29:\n        call     [rax]System.Linq.Enumerable:ToList[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.Collections.Generic.List\u00601[System.__Canon]\n        mov      r14, rax\n        cmp      dword ptr [r14\u002B0x10], 0\n-       jle      SHORT G_M58482_IG33\n\u002B       jle      SHORT G_M58482_IG31\n \t\t\t\t\t\t;; size=64 bbWeight=1 PerfScore 11.75\n G_M58482_IG30:\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[Microsoft.CodeAnalysis.SyntaxNode]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M58482_IG31\n-       lea      rsi, [rbp-0x1C8]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M58482_IG32\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 7.38\n-G_M58482_IG31:\n        lea      rdx, [rbp-0x1C8]\n        mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[Microsoft.CodeAnalysis.SyntaxNode](System.Collections.Generic.IEnumerable\u00601[Microsoft.CodeAnalysis.SyntaxNode],byref):Microsoft.CodeAnalysis.SyntaxNode\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.12\n-G_M58482_IG32:\n-       cmp      byte  ptr [rbp-0x1C8], 0\n-       je       G_M58482_IG45\n-       lea      rdx, [rbp-0x30]\n        mov      rdi, rax\n\u002B       cmp      byte  ptr [rbp-0x1C8], 0\n\u002B       je       G_M58482_IG43\n\u002B       lea      rdx, [rbp-0x30]\n        mov      rsi, r15\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.CodeAnalysis.CSharp.Structure.CSharpStructureHelpers:CollectCommentBlockSpans(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder\u00601[Microsoft.CodeAnalysis.Structure.BlockSpan],byref)\n        call     [rax]Microsoft.CodeAnalysis.CSharp.Structure.CSharpStructureHelpers:CollectCommentBlockSpans(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder\u00601[Microsoft.CodeAnalysis.Structure.BlockSpan],byref)\n-\t\t\t\t\t\t;; size=35 bbWeight=0.50 PerfScore 3.12\n-G_M58482_IG33:\n\u002B\t\t\t\t\t\t;; size=67 bbWeight=0.50 PerfScore 5.25\n\u002BG_M58482_IG31:\n        mov      rdi, gword ptr [rbp-0x30]\n        movzx    rdi, byte  ptr [rdi\u002B0x13]\n        mov      dword ptr [rsp], edi\n@@ -822,21 \u002B806,21 @@ G_M58482_IG33:\n        call     [rax]Microsoft.CodeAnalysis.CSharp.Structure.CSharpStructureHelpers:CreateBlockSpan(System.Collections.Generic.IEnumerable\u00601[Microsoft.CodeAnalysis.SyntaxNode],bool,bool,System.String,bool,bool):System.Nullable\u00601[Microsoft.CodeAnalysis.Structure.BlockSpan]\n        movzx    rdi, byte  ptr [rbp-0x80]\n        test     edi, edi\n-       je       G_M58482_IG37\n\u002B       je       G_M58482_IG35\n \t\t\t\t\t\t;; size=67 bbWeight=1 PerfScore 11.25\n-G_M58482_IG34:\n\u002BG_M58482_IG32:\n        vmovdqu  ymm0, ymmword ptr [rbp-0x78]\n        vmovdqu  ymmword ptr [rbp-0x1F8], ymm0\n        vmovdqu  xmm0, xmmword ptr [rbp-0x58]\n        vmovdqu  xmmword ptr [rbp-0x1D8], xmm0\n \t\t\t\t\t\t;; size=26 bbWeight=0.50 PerfScore 2.50\n-G_M58482_IG35:\n\u002BG_M58482_IG33:\n        mov      r14, gword ptr [r15\u002B0x08]\n        mov      r13d, dword ptr [r14\u002B0x10]\n        inc      r13d\n        mov      rdi, gword ptr [r14\u002B0x08]\n        cmp      dword ptr [rdi\u002B0x08], r13d\n-       jge      SHORT G_M58482_IG36\n\u002B       jge      SHORT G_M58482_IG34\n        mov      esi, dword ptr [rdi\u002B0x08]\n        add      esi, esi\n        cmp      esi, r13d\n@@ -845,11 \u002B829,11 @@ G_M58482_IG35:\n        mov      rax, 0xD1FFAB1E      ; code for System.Array:Resize[Microsoft.CodeAnalysis.Structure.BlockSpan](byref,int)\n        call     [rax]System.Array:Resize[Microsoft.CodeAnalysis.Structure.BlockSpan](byref,int)\n \t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 8.00\n-G_M58482_IG36:\n\u002BG_M58482_IG34:\n        mov      r12, gword ptr [r14\u002B0x08]\n        mov      edi, dword ptr [r14\u002B0x10]\n        cmp      edi, dword ptr [r12\u002B0x08]\n-       jae      G_M58482_IG46\n\u002B       jae      G_M58482_IG44\n        imul     rax, rdi, 48\n        add      rax, 16\n        add      r12, rax\n@@ -868,20 \u002B852,20 @@ G_M58482_IG36:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      dword ptr [r14\u002B0x10], r13d\n \t\t\t\t\t\t;; size=110 bbWeight=0.50 PerfScore 10.88\n-G_M58482_IG37:\n\u002BG_M58482_IG35:\n        lea      rsi, [rbp-0x48]\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.CodeAnalysis.CSharp.Syntax.NamespaceDeclarationSyntax:get_CloseBraceToken():Microsoft.CodeAnalysis.SyntaxToken:this\n        call     [rax]Microsoft.CodeAnalysis.CSharp.Syntax.NamespaceDeclarationSyntax:get_CloseBraceToken():Microsoft.CodeAnalysis.SyntaxToken:this\n        mov      rsi, gword ptr [rbp-0x40]\n        test     rsi, rsi\n-       je       SHORT G_M58482_IG39\n\u002B       je       SHORT G_M58482_IG37\n \t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 6.25\n-G_M58482_IG38:\n\u002BG_M58482_IG36:\n        test     byte  ptr [rsi\u002B0x0E], 1\n-       je       SHORT G_M58482_IG40\n\u002B       je       SHORT G_M58482_IG38\n \t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 1.50\n-G_M58482_IG39:\n\u002BG_M58482_IG37:\n        lea      rsi, [rbp-0x48]\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.CodeAnalysis.CSharp.Syntax.NamespaceDeclarationSyntax:get_CloseBraceToken():Microsoft.CodeAnalysis.SyntaxToken:this\n@@ -910,10 \u002B894,10 @@ G_M58482_IG39:\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.CodeAnalysis.CSharp.Structure.CSharpStructureHelpers:CollectCommentBlockSpans(Microsoft.CodeAnalysis.SyntaxTriviaList,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder\u00601[Microsoft.CodeAnalysis.Structure.BlockSpan])\n        call     [rax]Microsoft.CodeAnalysis.CSharp.Structure.CSharpStructureHelpers:CollectCommentBlockSpans(Microsoft.CodeAnalysis.SyntaxTriviaList,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder\u00601[Microsoft.CodeAnalysis.Structure.BlockSpan])\n \t\t\t\t\t\t;; size=119 bbWeight=0.50 PerfScore 12.62\n-G_M58482_IG40:\n\u002BG_M58482_IG38:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M58482_IG41:\n\u002BG_M58482_IG39:\n        vzeroupper \n        add      rsp, 536\n        pop      rbx\n@@ -924,7 \u002B908,7 @@ G_M58482_IG41:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=21 bbWeight=1 PerfScore 5.25\n-G_M58482_IG42:\n\u002BG_M58482_IG40:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -936,27 \u002B920,27 @@ G_M58482_IG42:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M58482_IG43:\n\u002BG_M58482_IG41:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M58482_IG44:\n\u002BG_M58482_IG42:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.Comparer\u00601[int]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M58482_IG29\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M58482_IG45:\n\u002BG_M58482_IG43:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M58482_IG46:\n\u002BG_M58482_IG44:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 2640, prolog size 80, PerfScore 320.63, instruction count 570, allocated bytes for code 2640 (MethodHash=99521b8d) for method Microsoft.CodeAnalysis.CSharp.Structure.NamespaceDeclarationStructureProvider:CollectBlockSpans(Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.NamespaceDeclarationSyntax,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder\u00601[Microsoft.CodeAnalysis.Structure.BlockSpan],Microsoft.CodeAnalysis.Structure.BlockStructureOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 2588, prolog size 80, PerfScore 313.25, instruction count 558, allocated bytes for code 2588 (MethodHash=99521b8d) for method Microsoft.CodeAnalysis.CSharp.Structure.NamespaceDeclarationStructureProvider:CollectBlockSpans(Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.NamespaceDeclarationSyntax,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder\u00601[Microsoft.CodeAnalysis.Structure.BlockSpan],Microsoft.CodeAnalysis.Structure.BlockStructureOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":2640,"DiffBytes":2588},{"Assembly":"Microsoft.CodeAnalysis.Features.dasm","Method":"Microsoft.CodeAnalysis.PdbSourceDocument.PdbSourceDocumentMetadataAsSourceFileProvider\u002BTestAccessor:get_Documents():System.Collections.Immutable.ImmutableDictionary\u00602[System.String,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]:this (FullOpts)","Category":"improvement","Description":"2,115 -\u003E 1,053 bytes (-1062)","ExtraInfo":null,"Diff":"@@ -8,154 \u002B8,141 @@\n ; 0 inlinees with PGO data; 77 single block inlinees; 44 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T12] (  3,  3   )   byref  -\u003E  rdi         this single-def\n\u002B;  V00 this         [V00,T08] (  3,  3   )   byref  -\u003E  rdi         this single-def\n ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V02 tmp1         [V02,T02] (  7, 10   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Concurrent.ConcurrentDictionary\u00602[System.String,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]\u003E\n-;  V03 tmp2         [V03,T39] (  3,  2   )     ref  -\u003E  rax         class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]\u003E\n-;* V04 tmp3         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]\u003E\n-;  V05 tmp4         [V05,T17] (  6,  3   )     ref  -\u003E  rbx         class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]\u003E\n-;  V06 tmp5         [V06,T30] (  4,  2   )     ref  -\u003E  r12         class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]\u003E\n-;  V07 tmp6         [V07,T22] (  3,  3   )     ref  -\u003E  r14         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEqualityComparer\u00601[System.String]\u003E\n-;  V08 tmp7         [V08,T10] (  5,  5   )     ref  -\u003E  r12         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEqualityComparer\u00601[Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]\u003E\n-;  V09 tmp8         [V09,T00] ( 12, 12   )     ref  -\u003E  [rbp-0x50]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]\u003E\n-;* V10 tmp9         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602\u002BComparers[System.String,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]\u003E\n-;  V11 tmp10        [V11,T05] (  6,  6   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]\u003E\n\u002B;  V02 tmp1         [V02,T05] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Concurrent.ConcurrentDictionary\u00602[System.String,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]\u003E\n\u002B;* V03 tmp2         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]\u003E\n\u002B;* V04 tmp3         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]\u003E\n\u002B;* V05 tmp4         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]\u003E\n\u002B;* V06 tmp5         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEqualityComparer\u00601[System.String]\u003E\n\u002B;* V07 tmp6         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEqualityComparer\u00601[Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]\u003E\n\u002B;* V08 tmp7         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]\u003E\n\u002B;* V09 tmp8         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602\u002BComparers[System.String,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]\u003E\n\u002B;* V10 tmp9         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]\u003E\n\u002B;* V11 tmp10        [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602\u002BComparers[System.__Canon,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]\u003E\n ;* V12 tmp11        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602\u002BComparers[System.__Canon,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]\u003E\n-;* V13 tmp12        [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602\u002BComparers[System.__Canon,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]\u003E\n-;  V14 tmp13        [V14,T56] (  3,  1.50)     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602\u002BComparers[System.String,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]\u003E\n-;  V15 tmp14        [V15,T40] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602\u002BComparers[System.__Canon,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]\u003E\n-;  V16 tmp15        [V16,T14] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableDictionary\u00602\u002BHashBucket[System.__Canon,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]]\u003E\n-;  V17 tmp16        [V17,T52] (  2,  2   )     int  -\u003E  rbx         \u0022Inlining Arg\u0022\n-;* V18 tmp17        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;* V19 tmp18        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;* V20 tmp19        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.StringEqualityComparer\u003E\n-;  V21 tmp20        [V21,T41] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602\u002BComparers[System.__Canon,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]\u003E\n-;* V22 tmp21        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V23 tmp22        [V23,T31] (  4,  2   )     ref  -\u003E  rsi        \n-;* V24 tmp23        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.StringEqualityComparer\u003E\n-;* V25 tmp24        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]\u003E\n-;* V26 tmp25        [V26    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602\u002BMutationInput[System.String,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]\u003E\n-;* V27 tmp26        [V27    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602\u002BMutationResult[System.String,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]\u003E\n-;* V28 tmp27        [V28    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602\u002BMutationResult[System.String,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]\u003E\n-;* V29 tmp28        [V29    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602\u002BMutationInput[System.String,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]\u003E\n-;* V30 tmp29        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableDictionary\u00602\u002BHashBucket[System.String,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]]\u003E\n-;* V31 tmp30        [V31    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022impAppendStmt\u0022\n-;  V32 tmp31        [V32,T28] (  5,  2.50)     ref  -\u003E  r12         class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableDictionary\u00602[System.String,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]\u003E\n-;  V33 tmp32        [V33,T53] (  2,  2   )     int  -\u003E  r13         \u0022Inlining Arg\u0022\n... diff truncated; middle omitted ...\n-       mov      rdi, r15\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n-       mov      r13, gword ptr [rbx\u002B0x08]\n-       mov      ebx, dword ptr [rbx\u002B0x18]\n-       test     r14, r14\n-       je       G_M31291_IG45\n-       lea      rdi, bword ptr [r12\u002B0x10]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, 0xD1FFAB1E      ; global ptr\n-       test     byte  ptr [rdi], 1\n-       je       G_M31291_IG46\n-\t\t\t\t\t\t;; size=108 bbWeight=0.50 PerfScore 11.00\n-G_M31291_IG37:\n-       mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableDictionary\u00602\u002BHashBucket[System.String,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]]:EmptyNode\n-       mov      rsi, gword ptr [rdi]\n-       lea      rdi, bword ptr [r12\u002B0x08]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       test     r13, r13\n-       je       G_M31291_IG47\n-       mov      rdi, 0xD1FFAB1E      ; global ptr\n-       test     byte  ptr [rdi], 1\n-       je       G_M31291_IG48\n-\t\t\t\t\t\t;; size=51 bbWeight=0.50 PerfScore 4.12\n-G_M31291_IG38:\n-       mov      rsi, 0xD1FFAB1E      ; data for System.Collections.Immutable.ImmutableDictionary\u00602[System.String,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]:s_FreezeBucketAction\n-       mov      rsi, gword ptr [rsi]\n-       mov      rdi, r13\n-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableDictionary\u00602\u002BHashBucket[System.__Canon,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]]:Freeze(System.Action\u00601[System.Collections.Generic.KeyValuePair\u00602[int,System.Collections.Immutable.ImmutableDictionary\u00602\u002BHashBucket[System.__Canon,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]]]):this\n-       call     [rax]System.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableDictionary\u00602\u002BHashBucket[System.__Canon,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]]:Freeze(System.Action\u00601[System.Collections.Generic.KeyValuePair\u00602[int,System.Collections.Immutable.ImmutableDictionary\u00602\u002BHashBucket[System.__Canon,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]]]):this\n-       lea      rdi, bword ptr [r12\u002B0x08]\n-       mov      rsi, r13\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      dword ptr [r12\u002B0x18], ebx\n-       jmp      SHORT G_M31291_IG40\n-\t\t\t\t\t\t;; size=48 bbWeight=0.50 PerfScore 5.25\n-G_M31291_IG39:\n-       mov      r12, rbx\n-\t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M31291_IG40:\n-       mov      rax, r12\n-\t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M31291_IG41:\n-       add      rsp, 72\n\u002B       nop      \n\u002B\t\t\t\t\t\t;; size=74 bbWeight=1 PerfScore 16.50\n\u002BG_M31291_IG20:\n\u002B       add      rsp, 40\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -630,91 \u002B377,54 @@ G_M31291_IG41:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M31291_IG42:\n\u002BG_M31291_IG21:\n        mov      rdi, 0xD1FFAB1E      ; \u0027source\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)\n        call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)\n        int3     \n \t\t\t\t\t\t;; size=23 bbWeight=0 PerfScore 0.00\n-G_M31291_IG43:\n\u002BG_M31291_IG22:\n\u002B       mov      rdi, r15\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n\u002B       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n\u002B       jmp      G_M31291_IG03\n\u002B\t\t\t\t\t\t;; size=20 bbWeight=0 PerfScore 0.00\n\u002BG_M31291_IG23:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.EqualityComparer\u00601[Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M31291_IG24\n\u002B       jmp      G_M31291_IG04\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M31291_IG44:\n\u002BG_M31291_IG24:\n        mov      rdi, 0xD1FFAB1E      ; \u0027valueComparer\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)\n        call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)\n        int3     \n \t\t\t\t\t\t;; size=23 bbWeight=0 PerfScore 0.00\n-G_M31291_IG45:\n\u002BG_M31291_IG25:\n        mov      rdi, 0xD1FFAB1E      ; \u0027comparers\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)\n        call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)\n        int3     \n \t\t\t\t\t\t;; size=23 bbWeight=0 PerfScore 0.00\n-G_M31291_IG46:\n-       mov      rdi, 0xD1FFAB1E      ; System.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableDictionary\u00602\u002BHashBucket[System.String,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M31291_IG37\n-\t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M31291_IG47:\n\u002BG_M31291_IG26:\n        mov      rdi, 0xD1FFAB1E      ; \u0027root\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)\n        call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)\n        int3     \n \t\t\t\t\t\t;; size=23 bbWeight=0 PerfScore 0.00\n-G_M31291_IG48:\n-       mov      rdi, r15\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M31291_IG38\n-\t\t\t\t\t\t;; size=20 bbWeight=0 PerfScore 0.00\n-G_M31291_IG49:\n-       mov      rdi, 0xD1FFAB1E      ; System.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableDictionary\u00602\u002BHashBucket[System.String,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M31291_IG26\n-\t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M31291_IG50:\n-       mov      rdi, r15\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M31291_IG31\n-\t\t\t\t\t\t;; size=20 bbWeight=0 PerfScore 0.00\n-G_M31291_IG51:\n-       mov      rdi, r15\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M31291_IG04\n-\t\t\t\t\t\t;; size=20 bbWeight=0 PerfScore 0.00\n-G_M31291_IG52:\n-       mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.EqualityComparer\u00601[Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M31291_IG05\n-\t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M31291_IG53:\n\u002BG_M31291_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableDictionary\u00602\u002BHashBucket[System.String,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M31291_IG17\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M31291_IG54:\n\u002BG_M31291_IG28:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Immutable.SortedInt32KeyNode\u00601[System.Collections.Immutable.ImmutableDictionary\u00602\u002BHashBucket[System.String,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M31291_IG07\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M31291_IG55:\n-       mov      rdi, 0xD1FFAB1E      ; \u0027count\u0027\n-       xor      rsi, rsi\n-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailRange(System.String,System.String)\n-       call     [rax]System.Collections.Immutable.Requires:FailRange(System.String,System.String)\n-       int3     \n-\t\t\t\t\t\t;; size=25 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 2115, prolog size 25, PerfScore 200.38, instruction count 448, allocated bytes for code 2115 (MethodHash=b4af85c4) for method Microsoft.CodeAnalysis.PdbSourceDocument.PdbSourceDocumentMetadataAsSourceFileProvider\u002BTestAccessor:get_Documents():System.Collections.Immutable.ImmutableDictionary\u00602[System.String,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]:this (FullOpts)\n\u002B; Total bytes of code 1053, prolog size 25, PerfScore 119.62, instruction count 225, allocated bytes for code 1053 (MethodHash=b4af85c4) for method Microsoft.CodeAnalysis.PdbSourceDocument.PdbSourceDocumentMetadataAsSourceFileProvider\u002BTestAccessor:get_Documents():System.Collections.Immutable.ImmutableDictionary\u00602[System.String,Microsoft.CodeAnalysis.PdbSourceDocument.SourceDocumentInfo]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":2115,"DiffBytes":1053},{"Assembly":"Microsoft.EntityFrameworkCore.dasm","Method":"Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention:RemoveIncompatibleWithExistingRelationships(System.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate],Microsoft.EntityFrameworkCore.Metadata.Builders.IConventionEntityTypeBuilder):System.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate] (FullOpts)","Category":"improvement","Description":"3,981 -\u003E 3,834 bytes (-147)","ExtraInfo":null,"Diff":"@@ -8,19 \u002B8,19 @@\n ; 0 inlinees with PGO data; 83 single block inlinees; 32 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T110] (  5,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate]\u003E\n\u002B;  V00 arg0         [V00,T108] (  5,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate]\u003E\n ;  V01 arg1         [V01,T11] (  9,180.50)     ref  -\u003E  rbx         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Metadata.Builders.IConventionEntityTypeBuilder\u003E\n-;  V02 loc0         [V02,T49] (  5, 40.50)     ref  -\u003E  r14         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Metadata.IConventionEntityType\u003E\n\u002B;  V02 loc0         [V02,T47] (  5, 40.50)     ref  -\u003E  r14         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Metadata.IConventionEntityType\u003E\n ;  V03 loc1         [V03,T19] ( 21,111   )     ref  -\u003E  r13         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate]\u003E\n-;  V04 loc2         [V04,T103] (  6,  8.50)     ref  -\u003E  [rbp-0x58]  class-hnd EH-live single-def \u003CSystem.Collections.Generic.IEnumerator\u00601[Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate]\u003E\n\u002B;  V04 loc2         [V04,T101] (  6,  8.50)     ref  -\u003E  [rbp-0x58]  class-hnd EH-live single-def \u003CSystem.Collections.Generic.IEnumerator\u00601[Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate]\u003E\n ;  V05 loc3         [V05,T08] ( 30,248   )     ref  -\u003E  r15         class-hnd exact \u003CMicrosoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002B\u003C\u003Ec__DisplayClass11_0\u003E\n ;  V06 loc4         [V06,T10] (  7,184   )     ref  -\u003E  r12         class-hnd \u003CMicrosoft.EntityFrameworkCore.Metadata.Builders.IConventionEntityTypeBuilder\u003E\n-;  V07 loc5         [V07,T93] (  3, 20   )     ref  -\u003E  [rbp-0x60]  class-hnd spill-single-def \u003CMicrosoft.EntityFrameworkCore.Metadata.IConventionEntityType\u003E\n\u002B;  V07 loc5         [V07,T91] (  3, 20   )     ref  -\u003E  [rbp-0x60]  class-hnd spill-single-def \u003CMicrosoft.EntityFrameworkCore.Metadata.IConventionEntityType\u003E\n ;  V08 loc6         [V08,T06] ( 12,272   )     ref  -\u003E  [rbp-0x68]  class-hnd spill-single-def \u003CSystem.Reflection.PropertyInfo\u003E\n ;  V09 loc7         [V09,T50] (  3, 40   )     ref  -\u003E  [rbp-0x70]  class-hnd exact spill-single-def \u003CSystem.String\u003E\n-;  V10 loc8         [V10,T38] (  4, 48   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u003CMicrosoft.EntityFrameworkCore.Metadata.IConventionNavigation\u003E\n\u002B;  V10 loc8         [V10,T34] (  4, 48   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u003CMicrosoft.EntityFrameworkCore.Metadata.IConventionNavigation\u003E\n ;  V11 loc9         [V11,T14] (  7,128   )     ref  -\u003E  [rbp-0x80]  class-hnd \u003CSystem.Reflection.PropertyInfo\u003E\n-;* V12 loc10        [V12,T107] (  0,  0   )   ubyte  -\u003E  zero-ref   \n\u002B;* V12 loc10        [V12,T105] (  0,  0   )   ubyte  -\u003E  zero-ref   \n ;  V13 loc11        [V13,T51] (  4, 32   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u003CMicrosoft.EntityFrameworkCore.Metadata.IConventionSkipNavigation\u003E\n ;* V14 loc12        [V14    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[System.Reflection.PropertyInfo]\u003E\n ;* V15 loc13        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Reflection.PropertyInfo\u003E\n@@ -33,17 \u002B33,17 @@\n ;* V22 loc20        [V22    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u003CSystem.Span\u00601[System.Reflection.PropertyInfo]\u003E\n ;* V23 loc21        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Reflection.PropertyInfo\u003E\n ;# V24 OutArgs      [V24    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V25 tmp1         [V25,T112] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate]\u003E\n\u002B;  V25 tmp1         [V25,T110] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate]\u003E\n ;* V26 tmp2         [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMicrosoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002B\u003C\u003Ec__DisplayClass11_0\u003E\n ;  V27 tmp3         [V27,T20] (  6, 96   )     ref  -\u003E  [rbp-0x90]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Reflection.PropertyInfo]\u003E\n ;  V28 tmp4         [V28,T21] (  6, 96   )     ref  -\u003E  [rbp-0x98]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Reflection.PropertyInfo]\u003E\n ;  V29 tmp5         [V29,T15] (  7,112   )     ref  -\u003E  [rbp-0xA0]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate\u003E\n ;* V30 tmp6         [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022non-inline candidate call\u0022 \u003CMicrosoft.EntityFrameworkCore.Metadata.IConventionEntityType\u003E\n ;  V31 tmp7         [V31,T22] (  6, 96   )     ref  -\u003E  [rbp-0xA8]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Reflection.PropertyInfo]\u003E\n-;  V32 tmp8         [V32,T39] (  3, 48   )     ref  -\u003E  [rbp-0xB0]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Reflection.PropertyInfo]\u003E\n\u002B;  V32 tmp8         [V32,T35] (  3, 48   )     ref  -\u003E  [rbp-0xB0]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Reflection.PropertyInfo]\u003E\n ;  V33 tmp9         [V33,T16] (  7,112   )     ref  -\u003E  [rbp-0xB8]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate\u003E\n ;* V34 tmp10        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022non-inline candidate call\u0022 \u003CMicrosoft.EntityFrameworkCore.Metadata.IConventionEntityType\u003E\n-;  V35 tmp11        [V35,T94] (  4, 16   )     ref  -\u003E  r12         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate,bool]\u003E\n\u002B;  V35 tmp11        [V35,T92] (  4, 16   )     ref  -\u003E  r12         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate,bool]\u003E\n ;* V36 tmp12        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMicrosoft.EntityFrameworkCore.Metadata.Builders.IConventionModelBuilder\u003E\n ;* V37 tmp13        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMicrosoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate\u003E\n ;* V38 tmp14        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMicrosoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate\u003E\n@@ -51,7 \u002B51,7 @@\n ;* V40 tmp16        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMicrosoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate\u003E\n ;* V41 tmp17        [V41    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V42 tmp18        [V42,T12] ( 10,160   )     ref  -\u003E  [rbp-0xC0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Reflection.PropertyInfo]\u003E\n-;  V43 tmp19        [V43,T34] (  7, 56   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n\u002B;  V43 tmp19        [V43,T32] (  7, 56   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n ;* V44 tmp20        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    ld-addr-op class-hnd \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Reflection.PropertyInfo\u003E\n ;* V45 tmp21        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.__Canon[]\u003E\n ;* V46 tmp22        [V46    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022impAppendStmt\u0022\n@@ -62,7 \u002B62,7 @@\n ;* V51 tmp27        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMicrosoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate\u003E\n ;* V52 tmp28        [V52    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V53 tmp29        [V53,T13] ( 10,160   )     ref  -\u003E  [rbp-0xC8]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Reflection.PropertyInfo]\u003E\n-;  V54 tmp30        [V54,T35] (  7, 56   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n... diff truncated; middle omitted ...\n-       jl       SHORT G_M61009_IG57\n\u002B       jl       SHORT G_M61009_IG53\n        mov      r10, gword ptr [rbp-0xC0]\n        mov      r8d, dword ptr [r10\u002B0x10]\n        cmp      eax, r8d\n-       jae      G_M61009_IG64\n\u002B       jae      G_M61009_IG60\n        dec      r8d\n        mov      dword ptr [r10\u002B0x10], r8d\n        cmp      eax, r8d\n-       jge      SHORT G_M61009_IG56\n\u002B       jge      SHORT G_M61009_IG52\n        sub      r8d, eax\n        mov      rdi, gword ptr [r10\u002B0x08]\n        mov      rdx, rdi\n@@ -1105,32 \u002B1064,32 @@ G_M61009_IG55:\n        call     [rax]System.Array:Copy(System.Array,int,System.Array,int,int,bool)\n        mov      r10, gword ptr [rbp-0xC0]\n \t\t\t\t\t\t;; size=125 bbWeight=8 PerfScore 236.00\n-G_M61009_IG56:\n\u002BG_M61009_IG52:\n        mov      rdi, gword ptr [r10\u002B0x08]\n        movsxd   r11, dword ptr [r10\u002B0x10]\n        mov      eax, dword ptr [rdi\u002B0x08]\n        cmp      r11, rax\n-       jae      G_M61009_IG69\n\u002B       jae      G_M61009_IG65\n        xor      rax, rax\n        mov      gword ptr [rdi\u002B8*r11\u002B0x10], rax\n        inc      dword ptr [r10\u002B0x14]\n \t\t\t\t\t\t;; size=31 bbWeight=8 PerfScore 92.00\n-G_M61009_IG57:\n\u002BG_M61009_IG53:\n        mov      rdi, gword ptr [r15\u002B0x08]\n        mov      rdi, gword ptr [rdi\u002B0x10]\n        cmp      dword ptr [rdi\u002B0x10], 0\n        jg       G_M61009_IG06\n \t\t\t\t\t\t;; size=18 bbWeight=16 PerfScore 112.00\n-G_M61009_IG58:\n\u002BG_M61009_IG54:\n        mov      rsi, gword ptr [r15\u002B0x08]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        cmp      dword ptr [rdi\u002B0x10], 0\n-       jg       G_M61009_IG61\n\u002B       jg       G_M61009_IG57\n \t\t\t\t\t\t;; size=18 bbWeight=4 PerfScore 28.00\n-G_M61009_IG59:\n\u002BG_M61009_IG55:\n        mov      rdi, gword ptr [rsi\u002B0x18]\n        cmp      dword ptr [rdi\u002B0x10], 0\n-       jg       G_M61009_IG61\n\u002B       jg       G_M61009_IG57\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Metadata.Builders.IConventionEntityTypeBuilder:get_Metadata():Microsoft.EntityFrameworkCore.Metadata.IConventionEntityType:this\n        call     [r11]Microsoft.EntityFrameworkCore.Metadata.Builders.IConventionEntityTypeBuilder:get_Metadata():Microsoft.EntityFrameworkCore.Metadata.IConventionEntityType:this\n@@ -1167,22 \u002B1126,22 @@ G_M61009_IG59:\n        mov      r11, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Metadata.Builders.IConventionModelBuilder:HasNoEntityType(Microsoft.EntityFrameworkCore.Metadata.IConventionEntityType,bool):Microsoft.EntityFrameworkCore.Metadata.Builders.IConventionModelBuilder:this\n        xor      edx, edx\n \t\t\t\t\t\t;; size=194 bbWeight=2 PerfScore 73.50\n-G_M61009_IG60:\n\u002BG_M61009_IG56:\n        call     [r11]Microsoft.EntityFrameworkCore.Metadata.Builders.IConventionModelBuilder:HasNoEntityType(Microsoft.EntityFrameworkCore.Metadata.IConventionEntityType,bool):Microsoft.EntityFrameworkCore.Metadata.Builders.IConventionModelBuilder:this\n        jmp      G_M61009_IG05\n \t\t\t\t\t\t;; size=8 bbWeight=2 PerfScore 10.00\n-G_M61009_IG61:\n\u002BG_M61009_IG57:\n        inc      dword ptr [r13\u002B0x14]\n        mov      r15, gword ptr [r13\u002B0x08]\n        mov      r12d, dword ptr [r13\u002B0x10]\n        cmp      dword ptr [r15\u002B0x08], r12d\n-       ja       SHORT G_M61009_IG62\n\u002B       ja       SHORT G_M61009_IG58\n        mov      rdi, r13\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        jmp      G_M61009_IG05\n \t\t\t\t\t\t;; size=38 bbWeight=2 PerfScore 31.00\n-G_M61009_IG62:\n\u002BG_M61009_IG58:\n        lea      edi, [r12\u002B0x01]\n        mov      dword ptr [r13\u002B0x10], edi\n        mov      edi, r12d\n@@ -1190,50 \u002B1149,50 @@ G_M61009_IG62:\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M61009_IG05\n \t\t\t\t\t\t;; size=27 bbWeight=2 PerfScore 11.50\n-G_M61009_IG63:\n\u002BG_M61009_IG59:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.Reflection.PropertyInfo]\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rcx]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M61009_IG41\n\u002B       jmp      G_M61009_IG39\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M61009_IG64:\n\u002BG_M61009_IG60:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M61009_IG65:\n\u002BG_M61009_IG61:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M61009_IG66:\n\u002BG_M61009_IG62:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_ConcurrentOperationsNotSupported()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_ConcurrentOperationsNotSupported()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M61009_IG67:\n\u002BG_M61009_IG63:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M61009_IG68:\n\u002BG_M61009_IG64:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M61009_IG69:\n\u002BG_M61009_IG65:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n-G_M61009_IG70:\n\u002BG_M61009_IG66:\n        mov      rdi, gword ptr [rbp-0x58]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 2.25\n-G_M61009_IG71:\n-       add      rsp, 280\n\u002BG_M61009_IG67:\n\u002B       add      rsp, 264\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -1242,11 \u002B1201,11 @@ G_M61009_IG71:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M61009_IG72:\n\u002BG_M61009_IG68:\n        mov      rax, r15\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M61009_IG73:\n-       add      rsp, 280\n\u002BG_M61009_IG69:\n\u002B       add      rsp, 264\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -1255,29 \u002B1214,29 @@ G_M61009_IG73:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M61009_IG74:\n\u002BG_M61009_IG70:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M61009_IG04\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M61009_IG75:\n\u002BG_M61009_IG71:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M61009_IG76:\n\u002BG_M61009_IG72:\n        cmp      gword ptr [rbp-0x58], 0\n-       je       SHORT G_M61009_IG77\n\u002B       je       SHORT G_M61009_IG73\n        mov      rdi, gword ptr [rbp-0x58]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M61009_IG77:\n\u002BG_M61009_IG73:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M61009_IG78:\n\u002BG_M61009_IG74:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 3981, prolog size 69, PerfScore 12220.33, instruction count 862, allocated bytes for code 3981 (MethodHash=336011ae) for method Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention:RemoveIncompatibleWithExistingRelationships(System.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate],Microsoft.EntityFrameworkCore.Metadata.Builders.IConventionEntityTypeBuilder):System.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate] (FullOpts)\n\u002B; Total bytes of code 3834, prolog size 76, PerfScore 11919.33, instruction count 829, allocated bytes for code 3834 (MethodHash=336011ae) for method Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention:RemoveIncompatibleWithExistingRelationships(System.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate],Microsoft.EntityFrameworkCore.Metadata.Builders.IConventionEntityTypeBuilder):System.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate] (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":3981,"DiffBytes":3834},{"Assembly":"Microsoft.Identity.Client.dasm","Method":"Microsoft.Identity.Client.TokenCache\u002B\u003CMicrosoft-Identity-Client-ITokenCacheInternal-FindRefreshTokenAsync\u003Ed__54:MoveNext():this (FullOpts)","Category":"improvement","Description":"2,659 -\u003E 2,603 bytes (-56)","ExtraInfo":null,"Diff":"@@ -9,9 \u002B9,9 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T00] ( 62, 59   )   byref  -\u003E  [rbp-0x70]  this EH-live single-def\n-;  V01 loc0         [V01,T75] (  3,  3   )     int  -\u003E  rdi         single-def\n-;  V02 loc1         [V02,T16] (  7,  7   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CMicrosoft.Identity.Client.TokenCache\u003E\n-;  V03 loc2         [V03,T17] (  6,  6   )     ref  -\u003E  rbx         class-hnd \u003CMicrosoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem\u003E\n\u002B;  V01 loc0         [V01,T73] (  3,  3   )     int  -\u003E  rdi         single-def\n\u002B;  V02 loc1         [V02,T15] (  7,  7   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CMicrosoft.Identity.Client.TokenCache\u003E\n\u002B;  V03 loc2         [V03,T16] (  6,  6   )     ref  -\u003E  rbx         class-hnd \u003CMicrosoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem\u003E\n ;  V04 loc3         [V04,T06] (  8,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u003CSystem.String\u003E\n ;  V05 loc4         [V05    ] ( 30, 30   )  struct (40) [rbp-0x50]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.DefaultInterpolatedStringHandler\u003E\n ;* V06 loc5         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CMicrosoft.Identity.Client.Instance.Discovery.InstanceDiscoveryMetadataEntry\u003E\n@@ -23,17 \u002B23,17 @@\n ;* V12 tmp1         [V12    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;* V13 tmp2         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CMicrosoft.Identity.Client.TokenCache\u002B\u003C\u003Ec__DisplayClass54_1\u003E\n ;  V14 tmp3         [V14,T07] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Predicate\u00601[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem]\u003E\n-;  V15 tmp4         [V15,T32] (  2,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem]\u003E\n\u002B;  V15 tmp4         [V15,T31] (  2,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem]\u003E\n ;  V16 tmp5         [V16,T08] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00601[System.String]\u003E\n-;  V17 tmp6         [V17,T33] (  2,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.Identity.Client.Core.ILoggerAdapter\u003E\n-;  V18 tmp7         [V18,T34] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00601[System.String]\u003E\n-;  V19 tmp8         [V19,T35] (  2,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022impSpillLclRefs\u0022 \u003CMicrosoft.Identity.Client.Core.ILoggerAdapter\u003E\n\u002B;  V17 tmp6         [V17,T32] (  2,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.Identity.Client.Core.ILoggerAdapter\u003E\n\u002B;  V18 tmp7         [V18,T33] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00601[System.String]\u003E\n\u002B;  V19 tmp8         [V19,T34] (  2,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022impSpillLclRefs\u0022 \u003CMicrosoft.Identity.Client.Core.ILoggerAdapter\u003E\n ;* V20 tmp9         [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V21 tmp10        [V21,T27] (  4,  4   )     ref  -\u003E  rsi        \n-;  V22 tmp11        [V22,T36] (  2,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.Identity.Client.Instance.Discovery.IInstanceDiscoveryManager\u003E\n-;  V23 tmp12        [V23,T37] (  2,  4   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem,System.String]\u003E\n-;  V24 tmp13        [V24,T38] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022impSpillLclRefs\u0022 \u003CMicrosoft.Identity.Client.AuthorityInfo\u003E\n-;  V25 tmp14        [V25,T39] (  2,  4   )     ref  -\u003E  r12         class-hnd single-def \u0022impSpillLclRefs\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem]\u003E\n\u002B;  V22 tmp11        [V22,T35] (  2,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.Identity.Client.Instance.Discovery.IInstanceDiscoveryManager\u003E\n\u002B;  V23 tmp12        [V23,T36] (  2,  4   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem,System.String]\u003E\n\u002B;  V24 tmp13        [V24,T37] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022impSpillLclRefs\u0022 \u003CMicrosoft.Identity.Client.AuthorityInfo\u003E\n\u002B;  V25 tmp14        [V25,T38] (  2,  4   )     ref  -\u003E  r12         class-hnd single-def \u0022impSpillLclRefs\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem]\u003E\n ;* V26 tmp15        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V27 tmp16        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V28 tmp17        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -49,25 \u002B49,25 @@\n ;* V38 tmp27        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMicrosoft.Identity.Client.TokenCache\u002B\u003C\u003Ec__DisplayClass54_0\u003E\n ;* V39 tmp28        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CMicrosoft.Identity.Client.TokenCache\u002B\u003C\u003Ec__DisplayClass54_0\u003E\n ;* V40 tmp29        [V40    ] (  0,  0   )  struct (40) zero-ref    do-not-enreg[SF] ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.DefaultInterpolatedStringHandler\u003E\n-;  V41 tmp30        [V41,T40] (  2,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.Identity.Client.Core.ILoggerAdapter\u003E\n-;  V42 tmp31        [V42,T41] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00601[System.String]\u003E\n-;  V43 tmp32        [V43,T42] (  2,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022impSpillLclRefs\u0022 \u003CMicrosoft.Identity.Client.Core.ILoggerAdapter\u003E\n\u002B;  V41 tmp30        [V41,T39] (  2,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.Identity.Client.Core.ILoggerAdapter\u003E\n\u002B;  V42 tmp31        [V42,T40] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00601[System.String]\u003E\n\u002B;  V43 tmp32        [V43,T41] (  2,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022impSpillLclRefs\u0022 \u003CMicrosoft.Identity.Client.Core.ILoggerAdapter\u003E\n ;* V44 tmp33        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V45 tmp34        [V45,T29] (  4,  4   )     ref  -\u003E  rsi        \n ;  V46 tmp35        [V46,T03] (  5, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00601[System.String]\u003E\n ;* V47 tmp36        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMicrosoft.Identity.Client.TokenCache\u002B\u003C\u003Ec__DisplayClass54_1\u003E\n-;  V48 tmp37        [V48,T43] (  2,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.Identity.Client.Instance.Discovery.IInstanceDiscoveryManager\u003E\n-;  V49 tmp38        [V49,T44] (  2,  4   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem,System.String]\u003E\n-;  V50 tmp39        [V50,T45] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022impSpillLclRefs\u0022 \u003CMicrosoft.Identity.Client.AuthorityInfo\u003E\n-;  V51 tmp40        [V51,T46] (  2,  4   )     ref  -\u003E  r12         class-hnd single-def \u0022impSpillLclRefs\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem]\u003E\n\u002B;  V48 tmp37        [V48,T42] (  2,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.Identity.Client.Instance.Discovery.IInstanceDiscoveryManager\u003E\n\u002B;  V49 tmp38        [V49,T43] (  2,  4   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem,System.String]\u003E\n\u002B;  V50 tmp39        [V50,T44] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022impSpillLclRefs\u0022 \u003CMicrosoft.Identity.Client.AuthorityInfo\u003E\n\u002B;  V51 tmp40        [V51,T45] (  2,  4   )     ref  -\u003E  r12         class-hnd single-def \u0022impSpillLclRefs\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem]\u003E\n ;* V52 tmp41        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V53 tmp42        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V54 tmp43        [V54    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V55 tmp44        [V55,T30] (  4,  4   )     ref  -\u003E  rdx        \n ;* V56 tmp45        [V56    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.__Canon]\u003E\n ;  V57 tmp46        [V57,T04] (  5, 10   )     ref  -\u003E  [rbp-0x80]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem,System.String]\u003E\n-;  V58 tmp47        [V58,T84] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 14.50\n-G_M61474_IG36:\n\u002BG_M61474_IG34:\n        mov      rdi, gword ptr [r15]\n        mov      rdi, gword ptr [rdi\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for Microsoft.Identity.Client.Internal.IServiceBundle:get_Config():Microsoft.Identity.Client.ApplicationConfiguration:this\n@@ -770,7 \u002B752,7 @@ G_M61474_IG36:\n        mov      rdi, 0xD1FFAB1E      ; data for Microsoft.Identity.Client.TokenCache\u002B\u003C\u003Ec:\u003C\u003E9__54_4\n        mov      rdx, gword ptr [rdi]\n        test     rdx, rdx\n-       jne      SHORT G_M61474_IG38\n\u002B       jne      SHORT G_M61474_IG36\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem,System.String]\n        call     CORINFO_HELP_NEWSFAST\n        mov      rdx, rax\n@@ -786,10 \u002B768,10 @@ G_M61474_IG36:\n        mov      rsi, rdx\n        call     CORINFO_HELP_ASSIGN_REF\n \t\t\t\t\t\t;; size=201 bbWeight=1 PerfScore 44.25\n-G_M61474_IG37:\n\u002BG_M61474_IG35:\n        mov      rdx, gword ptr [rbp-0x80]\n \t\t\t\t\t\t;; size=4 bbWeight=1 PerfScore 1.00\n-G_M61474_IG38:\n\u002BG_M61474_IG36:\n        mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:Select[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem,System.String](System.Collections.Generic.IEnumerable\u00601[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem],System.Func\u00602[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem,System.String]):System.Collections.Generic.IEnumerable\u00601[System.String]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:Select[System.__Canon,System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Func\u00602[System.__Canon,System.__Canon]):System.Collections.Generic.IEnumerable\u00601[System.__Canon]\n@@ -806,12 \u002B788,12 @@ G_M61474_IG38:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x58], edi\n        test     byte  ptr [rbp-0x58], 4\n-       jne      SHORT G_M61474_IG39\n\u002B       jne      SHORT G_M61474_IG37\n        mov      rdi, gword ptr [rbp-0x60]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M61474_IG06\n \t\t\t\t\t\t;; size=88 bbWeight=1 PerfScore 22.00\n-G_M61474_IG39:\n\u002BG_M61474_IG37:\n        xor      edi, edi\n        mov      r15, bword ptr [rbp-0x70]\n        mov      dword ptr [r15\u002B0x28], edi\n@@ -830,42 \u002B812,42 @@ G_M61474_IG39:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[Microsoft.Identity.Client.Instance.Discovery.InstanceDiscoveryMetadataEntry]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      G_M61474_IG48\n\u002B       jmp      G_M61474_IG46\n \t\t\t\t\t\t;; size=93 bbWeight=1 PerfScore 17.25\n-G_M61474_IG40:\n\u002BG_M61474_IG38:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M61474_IG41:\n\u002BG_M61474_IG39:\n        mov      r15, bword ptr [rbp-0x70]\n        mov      rax, 0xD1FFAB1E      ; code for System.Delegate:ThrowNullThisInDelegateToInstance()\n        call     [rax]System.Delegate:ThrowNullThisInDelegateToInstance()\n        int3     \n \t\t\t\t\t\t;; size=17 bbWeight=0 PerfScore 0.00\n-G_M61474_IG42:\n\u002BG_M61474_IG40:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M61474_IG43:\n\u002BG_M61474_IG41:\n        mov      dword ptr [rdi\u002B0x28], -2\n        xor      rsi, rsi\n        mov      gword ptr [rdi\u002B0x20], rsi\n        lea      r15, bword ptr [rdi\u002B0x30]\n        cmp      gword ptr [r15], 0\n-       je       SHORT G_M61474_IG44\n\u002B       je       SHORT G_M61474_IG42\n        mov      rsi, gword ptr [r15]\n        mov      rdx, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n-       jmp      SHORT G_M61474_IG48\n\u002B       jmp      SHORT G_M61474_IG46\n \t\t\t\t\t\t;; size=53 bbWeight=1 PerfScore 13.50\n-G_M61474_IG44:\n\u002BG_M61474_IG42:\n        test     rbx, rbx\n-       je       SHORT G_M61474_IG45\n\u002B       je       SHORT G_M61474_IG43\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -873,26 \u002B855,26 @@ G_M61474_IG44:\n        lea      rdi, bword ptr [r14\u002B0x38]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      SHORT G_M61474_IG47\n\u002B       jmp      SHORT G_M61474_IG45\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 7.50\n-G_M61474_IG45:\n\u002BG_M61474_IG43:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       SHORT G_M61474_IG50\n\u002B       je       SHORT G_M61474_IG48\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 3.25\n-G_M61474_IG46:\n\u002BG_M61474_IG44:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Threading.Tasks.Task\u00601[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem]:s_defaultResultTask\n        mov      r14, gword ptr [rdi]\n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 2.25\n-G_M61474_IG47:\n\u002BG_M61474_IG45:\n        mov      rdi, r15\n        mov      rsi, r14\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 1.50\n-G_M61474_IG48:\n\u002BG_M61474_IG46:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M61474_IG49:\n\u002BG_M61474_IG47:\n        vzeroupper \n        add      rsp, 104\n        pop      rbx\n@@ -903,16 \u002B885,16 @@ G_M61474_IG49:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 5.25\n-G_M61474_IG50:\n\u002BG_M61474_IG48:\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      SHORT G_M61474_IG46\n\u002B       jmp      SHORT G_M61474_IG44\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M61474_IG51:\n\u002BG_M61474_IG49:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M61474_IG52:\n\u002BG_M61474_IG50:\n        mov      rdx, rdi\n        mov      r15, bword ptr [rbp-0x70]\n        mov      dword ptr [r15\u002B0x28], -2\n@@ -922,9 \u002B904,9 @@ G_M61474_IG52:\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[Microsoft.Identity.Client.Cache.Items.MsalRefreshTokenCacheItem]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n-       lea      rax, G_M61474_IG48\n\u002B       lea      rax, G_M61474_IG46\n \t\t\t\t\t\t;; size=54 bbWeight=0 PerfScore 0.00\n-G_M61474_IG53:\n\u002BG_M61474_IG51:\n        vzeroupper \n        add      rsp, 8\n        ret      \n@@ -933,5 \u002B915,5 @@ RWD00  \tdq\t006E00690046005Bh, 0066006500520064h, 0068007300650072h, 0065006B006F\n RWD64  \tdq\t0066006500720020h, 0068007300650072h, 006B006F00740020h, 00200073006E0065h, 00630020006E0069h, 0065006800630061h, 0069007300750020h, 006B00200067006Eh\n \n \n-; Total bytes of code 2659, prolog size 55, PerfScore 601.08, instruction count 590, allocated bytes for code 2659 (MethodHash=157e0fdd) for method Microsoft.Identity.Client.TokenCache\u002B\u003CMicrosoft-Identity-Client-ITokenCacheInternal-FindRefreshTokenAsync\u003Ed__54:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 2603, prolog size 55, PerfScore 585.83, instruction count 576, allocated bytes for code 2603 (MethodHash=157e0fdd) for method Microsoft.Identity.Client.TokenCache\u002B\u003CMicrosoft-Identity-Client-ITokenCacheInternal-FindRefreshTokenAsync\u003Ed__54:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":2659,"DiffBytes":2603},{"Assembly":"Microsoft.NET.StringTools.dasm","Method":"Microsoft.NET.StringTools.Strings:GetSpanBasedStringBuilder():Microsoft.NET.StringTools.SpanBasedStringBuilder (FullOpts)","Category":"same-size","Description":"191 -\u003E 191 bytes (0)","ExtraInfo":null,"Diff":"@@ -1,90 \u002B1,90 @@\n ; Assembly listing for method Microsoft.NET.StringTools.Strings:GetSpanBasedStringBuilder():Microsoft.NET.StringTools.SpanBasedStringBuilder (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 4 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 loc0         [V00,T05] (  3,  2.50)     ref  -\u003E  rdi         class-hnd single-def \u003CMicrosoft.NET.StringTools.SpanBasedStringBuilder\u003E\n ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V02 tmp1         [V02,T02] (  4,  4   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.NET.StringTools.SpanBasedStringBuilder\u003E\n ;  V03 tmp2         [V03,T04] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.ReadOnlyMemory\u00601[char]]\u003E\n ;* V04 tmp3         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003CSystem.ReadOnlyMemory\u00601[char][]\u003E\n ;  V05 cse0         [V05,T06] (  3,  2.50)   byref  -\u003E  rax         \u0022CSE #01: aggressive\u0022\n ;  V06 rat0         [V06,T03] (  3,  4   )   byref  -\u003E  rax         \u0022TLS field access\u0022\n ;  V07 rat1         [V07,T01] (  3,  6   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;  V08 rat2         [V08,T00] (  3,  6   )   byref  -\u003E  rax         \u0022ThreadStaticBlockBase access\u0022\n ;\n ; Lcl frame size = 0\n \n G_M36683_IG01:\n        push     rbp\n        push     r15\n        push     rbx\n        lea      rbp, [rsp\u002B0x10]\n \t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.50\n G_M36683_IG02:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       cmp      dword ptr [rax], 11\n\u002B       cmp      dword ptr [rax], 10\n        jle      G_M36683_IG08\n        mov      rdi, gword ptr [rax\u002B0x08]\n-       mov      rax, bword ptr [rdi\u002B0x58]\n\u002B       mov      rax, bword ptr [rdi\u002B0x50]\n        test     rax, rax\n        je       SHORT G_M36683_IG08\n \t\t\t\t\t\t;; size=44 bbWeight=1 PerfScore 11.75\n G_M36683_IG03:\n        mov      rdi, gword ptr [rax\u002B0x10]\n        test     rdi, rdi\n        je       SHORT G_M36683_IG06\n \t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.25\n G_M36683_IG04:\n        xor      rcx, rcx\n        mov      gword ptr [rax\u002B0x10], rcx\n        mov      rax, rdi\n \t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 0.75\n G_M36683_IG05:\n        pop      rbx\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 1.25\n G_M36683_IG06:\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.NET.StringTools.SpanBasedStringBuilder\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.ReadOnlyMemory\u00601[char]]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; System.ReadOnlyMemory\u00601[char][]\n        mov      esi, 4\n        call     CORINFO_HELP_NEWARR_1_VC\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x08]\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x08]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      eax, eax\n        mov      dword ptr [rbx\u002B0x10], eax\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=88 bbWeight=0.50 PerfScore 4.75\n G_M36683_IG07:\n        pop      rbx\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 1.25\n G_M36683_IG08:\n-       mov      edi, 11\n\u002B       mov      edi, 10\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED\n        call     [rax]CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED\n        jmp      G_M36683_IG03\n \t\t\t\t\t\t;; size=22 bbWeight=0 PerfScore 0.00\n \n ; Total bytes of code 191, prolog size 9, PerfScore 26.50, instruction count 49, allocated bytes for code 191 (MethodHash=310170b4) for method Microsoft.NET.StringTools.Strings:GetSpanBasedStringBuilder():Microsoft.NET.StringTools.SpanBasedStringBuilder (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":191,"DiffBytes":191},{"Assembly":"Microsoft.OData.Edm.dasm","Method":"Microsoft.OData.Edm.Validation.ValidationRules\u002B\u003C\u003Ec:\u003C.cctor\u003Eb__108_66(Microsoft.OData.Edm.Validation.ValidationContext,Microsoft.OData.Edm.IEdmOperationImport):this (FullOpts)","Category":"improvement","Description":"1,867 -\u003E 1,814 bytes (-53)","ExtraInfo":null,"Diff":"@@ -12,78 \u002B12,78 @@\n ;  V01 arg1         [V01,T01] ( 13,  7.50)     ref  -\u003E  r15         class-hnd single-def \u003CMicrosoft.OData.Edm.Validation.ValidationContext\u003E\n ;  V02 arg2         [V02,T00] ( 15,  9   )     ref  -\u003E  rbx         class-hnd single-def \u003CMicrosoft.OData.Edm.IEdmOperationImport\u003E\n ;* V03 loc0         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMicrosoft.OData.Edm.IEdmTypeReference\u003E\n-;  V04 loc1         [V04,T12] (  6,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMicrosoft.OData.Edm.IEdmEntityType\u003E\n\u002B;  V04 loc1         [V04,T11] (  6,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMicrosoft.OData.Edm.IEdmEntityType\u003E\n ;  V05 loc2         [V05    ] (  4,  2   )     ref  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003CMicrosoft.OData.Edm.IEdmEntitySetBase\u003E\n ;  V06 loc3         [V06    ] (  2,  1   )     ref  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003CMicrosoft.OData.Edm.IEdmOperationParameter\u003E\n ;  V07 loc4         [V07    ] (  3,  1.50)     ref  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003CSystem.Collections.Generic.Dictionary\u00602[Microsoft.OData.Edm.IEdmNavigationProperty,Microsoft.OData.Edm.IEdmPathExpression]\u003E\n ;  V08 loc5         [V08    ] (  1,  0.50)     ref  -\u003E  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.OData.Edm.Validation.EdmError]\u003E\n-;  V09 loc6         [V09,T53] (  3,  1.50)     ref  -\u003E  r14         class-hnd single-def \u003CMicrosoft.OData.Edm.IEdmEntityType\u003E\n-;  V10 loc7         [V10,T58] (  2,  1   )     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.String\u003E\n\u002B;  V09 loc6         [V09,T52] (  3,  1.50)     ref  -\u003E  r14         class-hnd single-def \u003CMicrosoft.OData.Edm.IEdmEntityType\u003E\n\u002B;  V10 loc7         [V10,T56] (  2,  1   )     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.String\u003E\n ;* V11 loc8         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMicrosoft.OData.Edm.IEdmTypeReference\u003E\n ;* V12 loc9         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMicrosoft.OData.Edm.IEdmTypeReference\u003E\n ;* V13 loc10        [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.KeyValuePair\u00602[Microsoft.OData.Edm.IEdmNavigationProperty,Microsoft.OData.Edm.IEdmPathExpression]\u003E\n ;# V14 OutArgs      [V14    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V15 tmp1         [V15,T13] (  6,  3   )     ref  -\u003E  r14        \n-;  V16 tmp2         [V16,T28] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.OData.Edm.EdmLocation\u003E\n-;  V17 tmp3         [V17,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n-;  V18 tmp4         [V18,T29] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V19 tmp5         [V19,T30] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n-;  V20 tmp6         [V20,T31] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Collections.Generic.KeyValuePair\u00602[Microsoft.OData.Edm.IEdmNavigationProperty,Microsoft.OData.Edm.IEdmPathExpression],Microsoft.OData.Edm.IEdmNavigationProperty]\u003E\n-;  V21 tmp7         [V21,T59] (  2,  1   )     ref  -\u003E  r12         single-def\n\u002B;  V15 tmp1         [V15,T12] (  6,  3   )     ref  -\u003E  r14        \n\u002B;  V16 tmp2         [V16,T27] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.OData.Edm.EdmLocation\u003E\n\u002B;  V17 tmp3         [V17,T13] (  3,  3   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n\u002B;  V18 tmp4         [V18,T28] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V19 tmp5         [V19,T29] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n\u002B;  V20 tmp6         [V20,T30] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Collections.Generic.KeyValuePair\u00602[Microsoft.OData.Edm.IEdmNavigationProperty,Microsoft.OData.Edm.IEdmPathExpression],Microsoft.OData.Edm.IEdmNavigationProperty]\u003E\n\u002B;  V21 tmp7         [V21,T57] (  2,  1   )     ref  -\u003E  r12         single-def\n ;  V22 tmp8         [V22,T22] (  4,  2   )     ref  -\u003E  rdx        \n ;  V23 tmp9         [V23,T21] (  5,  2.50)     ref  -\u003E  r12        \n ;  V24 tmp10        [V24,T23] (  4,  2   )     ref  -\u003E  r12        \n-;  V25 tmp11        [V25,T32] (  2,  2   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.OData.Edm.EdmLocation\u003E\n\u002B;  V25 tmp11        [V25,T31] (  2,  2   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.OData.Edm.EdmLocation\u003E\n ;  V26 tmp12        [V26,T10] (  4,  4   )     ref  -\u003E  [rbp-0x58]  class-hnd exact spill-single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n-;  V27 tmp13        [V27,T33] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V28 tmp14        [V28,T34] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n-;  V29 tmp15        [V29,T35] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n\u002B;  V27 tmp13        [V27,T32] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V28 tmp14        [V28,T33] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n\u002B;  V29 tmp15        [V29,T34] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n ;  V30 tmp16        [V30,T08] (  5,  5   )     ref  -\u003E  [rbp-0x60]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Collections.Generic.KeyValuePair\u00602[Microsoft.OData.Edm.IEdmNavigationProperty,Microsoft.OData.Edm.IEdmPathExpression],Microsoft.OData.Edm.IEdmNavigationProperty]\u003E\n ;  V31 tmp17        [V31,T09] (  5,  5   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n-;  V32 tmp18        [V32,T36] (  2,  2   )     ref  -\u003E  r14         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V33 tmp19        [V33,T37] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n-;  V34 tmp20        [V34,T38] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n-;  V35 tmp21        [V35,T39] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n-;  V36 tmp22        [V36,T40] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OData.Edm.IEdmEntitySetBase\u003E\n-;  V37 tmp23        [V37,T41] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OData.Edm.EdmLocation\u003E\n\u002B;  V32 tmp18        [V32,T35] (  2,  2   )     ref  -\u003E  r14         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V33 tmp19        [V33,T36] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n\u002B;  V34 tmp20        [V34,T37] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n\u002B;  V35 tmp21        [V35,T38] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n\u002B;  V36 tmp22        [V36,T39] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OData.Edm.IEdmEntitySetBase\u003E\n\u002B;  V37 tmp23        [V37,T40] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OData.Edm.EdmLocation\u003E\n ;  V38 tmp24        [V38,T02] (  7,  7   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.OData.Edm.Validation.EdmError\u003E\n ;  V39 tmp25        [V39,T03] (  7,  7   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.OData.Edm.Validation.EdmError]\u003E\n-;  V40 tmp26        [V40,T54] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.OData.Edm.Validation.EdmError[]\u003E\n-;  V41 tmp27        [V41,T25] (  4,  2   )     int  -\u003E  rbx         single-def \u0022Inline stloc first use temp\u0022\n-;  V42 tmp28        [V42,T42] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OData.Edm.Validation.ValidationRules\u002B\u003C\u003Ec\u003E\n\u002B;  V40 tmp26        [V40,T53] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.OData.Edm.Validation.EdmError[]\u003E\n\u002B;  V41 tmp27        [V41,T24] (  4,  2   )     int  -\u003E  rbx         single-def \u0022Inline stloc first use temp\u0022\n... diff truncated; middle omitted ...\n\u002B\t\t\t\t\t\t;; size=68 bbWeight=0.50 PerfScore 6.00\n\u002BG_M62716_IG11:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.OData.Edm.EdmTypeSemantics:IsCollection(Microsoft.OData.Edm.IEdmTypeReference):bool\n        call     [rax]Microsoft.OData.Edm.EdmTypeSemantics:IsCollection(Microsoft.OData.Edm.IEdmTypeReference):bool\n        test     eax, eax\n-       je       SHORT G_M62716_IG14\n\u002B       je       SHORT G_M62716_IG12\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.OData.Edm.EdmTypeSemantics:AsCollection(Microsoft.OData.Edm.IEdmTypeReference):Microsoft.OData.Edm.IEdmCollectionTypeReference\n        call     [rax]Microsoft.OData.Edm.EdmTypeSemantics:AsCollection(Microsoft.OData.Edm.IEdmTypeReference):Microsoft.OData.Edm.IEdmCollectionTypeReference\n@@ -343,7 \u002B325,7 @@ G_M62716_IG13:\n        call     [rax]Microsoft.OData.Edm.ExtensionMethods:ElementType(Microsoft.OData.Edm.IEdmCollectionTypeReference):Microsoft.OData.Edm.IEdmTypeReference\n        mov      r12, rax\n \t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 6.00\n-G_M62716_IG14:\n\u002BG_M62716_IG12:\n        mov      rdi, r12\n        mov      r11, 0xD1FFAB1E      ; code for Microsoft.OData.Edm.IEdmTypeReference:get_Definition():Microsoft.OData.Edm.IEdmType:this\n        call     [r11]Microsoft.OData.Edm.IEdmTypeReference:get_Definition():Microsoft.OData.Edm.IEdmType:this\n@@ -352,13 \u002B334,13 @@ G_M62716_IG14:\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.OData.Edm.EdmTypeSemantics:IsOrInheritsFrom(Microsoft.OData.Edm.IEdmType,Microsoft.OData.Edm.IEdmType):bool\n        call     [rax]Microsoft.OData.Edm.EdmTypeSemantics:IsOrInheritsFrom(Microsoft.OData.Edm.IEdmType,Microsoft.OData.Edm.IEdmType):bool\n        test     eax, eax\n-       jne      G_M62716_IG20\n\u002B       jne      G_M62716_IG18\n        mov      rax, gword ptr [r15\u002B0x18]\n        mov      rsi, r13\n        mov      rdi, gword ptr [rax\u002B0x10]\n        call     [rax\u002B0x18]System.Func\u00602[System.__Canon,bool]:Invoke(System.__Canon):bool:this\n        test     eax, eax\n-       jne      G_M62716_IG20\n\u002B       jne      G_M62716_IG18\n        mov      rdi, r12\n        mov      r11, 0xD1FFAB1E      ; code for Microsoft.OData.Edm.IEdmTypeReference:get_Definition():Microsoft.OData.Edm.IEdmType:this\n        call     [r11]Microsoft.OData.Edm.IEdmTypeReference:get_Definition():Microsoft.OData.Edm.IEdmType:this\n@@ -367,7 \u002B349,7 @@ G_M62716_IG14:\n        mov      rdi, gword ptr [rax\u002B0x10]\n        call     [rax\u002B0x18]System.Func\u00602[System.__Canon,bool]:Invoke(System.__Canon):bool:this\n        test     eax, eax\n-       jne      G_M62716_IG20\n\u002B       jne      G_M62716_IG18\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.OData.Edm.ExtensionMethods:Location(Microsoft.OData.Edm.IEdmElement):Microsoft.OData.Edm.EdmLocation\n        call     [rax]Microsoft.OData.Edm.ExtensionMethods:Location(Microsoft.OData.Edm.IEdmElement):Microsoft.OData.Edm.EdmLocation\n@@ -393,7 \u002B375,7 @@ G_M62716_IG14:\n        mov      rsi, rax\n        call     CORINFO_HELP_ASSIGN_REF\n \t\t\t\t\t\t;; size=218 bbWeight=0.50 PerfScore 25.12\n-G_M62716_IG15:\n\u002BG_M62716_IG13:\n        mov      rdi, 0xD1FFAB1E      ; data for Microsoft.OData.Edm.SRResources:resourceCulture\n        mov      rdi, gword ptr [rdi]\n        mov      rsi, r12\n@@ -418,13 \u002B400,13 @@ G_M62716_IG15:\n        mov      rax, gword ptr [rdi\u002B0x08]\n        mov      r15d, dword ptr [rdi\u002B0x10]\n        cmp      dword ptr [rax\u002B0x08], r15d\n-       ja       SHORT G_M62716_IG16\n\u002B       ja       SHORT G_M62716_IG14\n        mov      rsi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n-       jmp      G_M62716_IG20\n\u002B       jmp      G_M62716_IG18\n \t\t\t\t\t\t;; size=131 bbWeight=0.50 PerfScore 15.50\n-G_M62716_IG16:\n\u002BG_M62716_IG14:\n        lea      esi, [r15\u002B0x01]\n        mov      dword ptr [rdi\u002B0x10], esi\n        mov      esi, r15d\n@@ -432,9 \u002B414,9 @@ G_M62716_IG16:\n        mov      rdx, r14\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST\n        call     [rax]CORINFO_HELP_ARRADDR_ST\n-       jmp      G_M62716_IG20\n\u002B       jmp      G_M62716_IG18\n \t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 3.75\n-G_M62716_IG17:\n\u002BG_M62716_IG15:\n        mov      rdi, gword ptr [rbp-0x30]\n        mov      r11, 0xD1FFAB1E      ; code for Microsoft.OData.Edm.IEdmNavigationSource:get_EntityType():Microsoft.OData.Edm.IEdmEntityType:this\n        call     [r11]Microsoft.OData.Edm.IEdmNavigationSource:get_EntityType():Microsoft.OData.Edm.IEdmEntityType:this\n@@ -444,25 \u002B426,25 @@ G_M62716_IG17:\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.OData.Edm.EdmTypeSemantics:IsOrInheritsFrom(Microsoft.OData.Edm.IEdmType,Microsoft.OData.Edm.IEdmType):bool\n        call     [rax]Microsoft.OData.Edm.EdmTypeSemantics:IsOrInheritsFrom(Microsoft.OData.Edm.IEdmType,Microsoft.OData.Edm.IEdmType):bool\n        test     eax, eax\n-       jne      G_M62716_IG20\n\u002B       jne      G_M62716_IG18\n        mov      rax, gword ptr [r15\u002B0x18]\n        mov      rsi, r13\n        mov      rdi, gword ptr [rax\u002B0x10]\n        call     [rax\u002B0x18]System.Func\u00602[System.__Canon,bool]:Invoke(System.__Canon):bool:this\n        test     eax, eax\n-       jne      G_M62716_IG20\n\u002B       jne      G_M62716_IG18\n        mov      rsi, gword ptr [rbp-0x30]\n        mov      rax, gword ptr [r15\u002B0x18]\n        mov      rdi, gword ptr [rax\u002B0x10]\n        call     [rax\u002B0x18]System.Func\u00602[System.__Canon,bool]:Invoke(System.__Canon):bool:this\n        test     eax, eax\n-       jne      G_M62716_IG20\n\u002B       jne      G_M62716_IG18\n        mov      rax, gword ptr [r15\u002B0x18]\n        mov      rsi, r14\n        mov      rdi, gword ptr [rax\u002B0x10]\n        call     [rax\u002B0x18]System.Func\u00602[System.__Canon,bool]:Invoke(System.__Canon):bool:this\n        test     eax, eax\n-       jne      G_M62716_IG20\n\u002B       jne      G_M62716_IG18\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.OData.Edm.SRResources:get_EdmModel_Validator_Semantic_OperationImportEntityTypeDoesNotMatchEntitySet():System.String\n        call     [rax]Microsoft.OData.Edm.SRResources:get_EdmModel_Validator_Semantic_OperationImportEntityTypeDoesNotMatchEntitySet():System.String\n        mov      r14, rax\n@@ -493,7 \u002B475,7 @@ G_M62716_IG17:\n        mov      rsi, r14\n        mov      rdx, r12\n \t\t\t\t\t\t;; size=257 bbWeight=0.50 PerfScore 30.12\n-G_M62716_IG18:\n\u002BG_M62716_IG16:\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Format(System.IFormatProvider,System.String,System.Object[]):System.String\n        call     [rax]System.String:Format(System.IFormatProvider,System.String,System.Object[]):System.String\n        mov      r14, rax\n@@ -518,13 \u002B500,13 @@ G_M62716_IG18:\n        mov      rax, gword ptr [rdi\u002B0x08]\n        mov      ebx, dword ptr [rdi\u002B0x10]\n        cmp      dword ptr [rax\u002B0x08], ebx\n-       ja       SHORT G_M62716_IG19\n\u002B       ja       SHORT G_M62716_IG17\n        mov      rsi, r13\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n-       jmp      SHORT G_M62716_IG20\n\u002B       jmp      SHORT G_M62716_IG18\n \t\t\t\t\t\t;; size=125 bbWeight=0.50 PerfScore 16.00\n-G_M62716_IG19:\n\u002BG_M62716_IG17:\n        lea      esi, [rbx\u002B0x01]\n        mov      dword ptr [rdi\u002B0x10], esi\n        mov      esi, ebx\n@@ -533,10 \u002B515,10 @@ G_M62716_IG19:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST\n        call     [rax]CORINFO_HELP_ARRADDR_ST\n \t\t\t\t\t\t;; size=26 bbWeight=0.50 PerfScore 2.75\n-G_M62716_IG20:\n\u002BG_M62716_IG18:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M62716_IG21:\n\u002BG_M62716_IG19:\n        add      rsp, 56\n        pop      rbx\n        pop      r12\n@@ -546,17 \u002B528,17 @@ G_M62716_IG21:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M62716_IG22:\n\u002BG_M62716_IG20:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M62716_IG23:\n\u002BG_M62716_IG21:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1867, prolog size 35, PerfScore 216.08, instruction count 419, allocated bytes for code 1867 (MethodHash=c88e0b03) for method Microsoft.OData.Edm.Validation.ValidationRules\u002B\u003C\u003Ec:\u003C.cctor\u003Eb__108_66(Microsoft.OData.Edm.Validation.ValidationContext,Microsoft.OData.Edm.IEdmOperationImport):this (FullOpts)\n\u002B; Total bytes of code 1814, prolog size 35, PerfScore 208.46, instruction count 405, allocated bytes for code 1814 (MethodHash=c88e0b03) for method Microsoft.OData.Edm.Validation.ValidationRules\u002B\u003C\u003Ec:\u003C.cctor\u003Eb__108_66(Microsoft.OData.Edm.Validation.ValidationContext,Microsoft.OData.Edm.IEdmOperationImport):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1867,"DiffBytes":1814},{"Assembly":"Microsoft.OpenApi.dasm","Method":"Microsoft.OpenApi.OpenApiOAuthFlows:SerializeInternal(Microsoft.OpenApi.IOpenApiWriter,int,System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]):this (FullOpts)","Category":"improvement","Description":"1,599 -\u003E 1,480 bytes (-119)","ExtraInfo":null,"Diff":"@@ -16,55 \u002B16,49 @@\n ;* V05 tmp1         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n ;  V07 tmp3         [V07,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V08 tmp4         [V08,T03] (  5,  7   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiOAuthFlow\u003E\n\u002B;  V08 tmp4         [V08,T03] (  4,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiOAuthFlow\u003E\n ;  V09 tmp5         [V09,T16] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n-;* V10 tmp6         [V10    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling qmarkNull\u0022\n-;* V11 tmp7         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;  V13 tmp9         [V13,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V14 tmp10        [V14,T04] (  5,  7   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiOAuthFlow\u003E\n-;  V15 tmp11        [V15,T17] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n-;* V16 tmp12        [V16    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling qmarkNull\u0022\n-;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;* V18 tmp14        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;  V19 tmp15        [V19,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V20 tmp16        [V20,T05] (  5,  7   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiOAuthFlow\u003E\n-;  V21 tmp17        [V21,T18] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n-;* V22 tmp18        [V22    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling qmarkNull\u0022\n-;* V23 tmp19        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;* V24 tmp20        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;  V25 tmp21        [V25,T25] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V26 tmp22        [V26,T06] (  5,  7   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiOAuthFlow\u003E\n-;  V27 tmp23        [V27,T19] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n-;* V28 tmp24        [V28    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling qmarkNull\u0022\n-;* V29 tmp25        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;* V30 tmp26        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;  V31 tmp27        [V31,T26] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V32 tmp28        [V32,T08] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiOAuthFlow\u003E\n-;  V33 tmp29        [V33,T20] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n-;* V34 tmp30        [V34    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling qmarkNull\u0022\n\u002B;* V10 tmp6         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;  V12 tmp8         [V12,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V13 tmp9         [V13,T04] (  4,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiOAuthFlow\u003E\n\u002B;  V14 tmp10        [V14,T17] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n\u002B;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;* V16 tmp12        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;  V17 tmp13        [V17,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V18 tmp14        [V18,T05] (  4,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiOAuthFlow\u003E\n\u002B;  V19 tmp15        [V19,T18] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n\u002B;* V20 tmp16        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;* V21 tmp17        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;  V22 tmp18        [V22,T25] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V23 tmp19        [V23,T06] (  4,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiOAuthFlow\u003E\n\u002B;  V24 tmp20        [V24,T19] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n\u002B;* V25 tmp21        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;* V26 tmp22        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;  V27 tmp23        [V27,T26] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V28 tmp24        [V28,T08] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiOAuthFlow\u003E\n\u002B;  V29 tmp25        [V29,T20] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n\u002B;* V30 tmp26        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;* V31 tmp27        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;  V32 tmp28        [V32,T27] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V33 tmp29        [V33,T09] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiOAuthFlow\u003E\n\u002B;  V34 tmp30        [V34,T21] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n ;* V35 tmp31        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n... diff truncated; middle omitted ...\n\u002B;  V44 tmp40        [V44,T15] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V45 tmp41        [V45,T30] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;  V46 tmp42        [V46,T31] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;  V47 tmp43        [V47,T32] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;  V48 tmp44        [V48,T33] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;  V49 tmp45        [V49,T34] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;  V50 tmp46        [V50,T35] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 8\n \n@@ -90,8 \u002B84,8 @@ G_M14660_IG02:\n        call     [r11]Microsoft.OpenApi.IOpenApiWriter:WriteStartObject():this\n        mov      r12, gword ptr [r14\u002B0x08]\n        test     r12, r12\n-       je       G_M14660_IG05\n-\t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 8.00\n\u002B       je       SHORT G_M14660_IG05\n\u002B\t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 8.00\n G_M14660_IG03:\n        mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.IEnumerable\n@@ -99,9 \u002B93,6 @@ G_M14660_IG03:\n        call     [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE\n        test     rax, rax\n        je       SHORT G_M14660_IG04\n-       mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Nodes.JsonArray\n-       cmp      qword ptr [r12], rdi\n-       je       SHORT G_M14660_IG04\n        mov      rdi, rax\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n        call     [r11]System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n@@ -110,7 \u002B101,7 @@ G_M14660_IG03:\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n        je       SHORT G_M14660_IG05\n-\t\t\t\t\t\t;; size=82 bbWeight=0.50 PerfScore 8.25\n\u002B\t\t\t\t\t\t;; size=66 bbWeight=0.50 PerfScore 6.62\n G_M14660_IG04:\n        test     r15, r15\n        je       G_M14660_IG22\n@@ -126,8 \u002B117,8 @@ G_M14660_IG04:\n G_M14660_IG05:\n        mov      r12, gword ptr [r14\u002B0x10]\n        test     r12, r12\n-       je       G_M14660_IG08\n-\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.25\n\u002B       je       SHORT G_M14660_IG08\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.25\n G_M14660_IG06:\n        mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.IEnumerable\n@@ -135,9 \u002B126,6 @@ G_M14660_IG06:\n        call     [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE\n        test     rax, rax\n        je       SHORT G_M14660_IG07\n-       mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Nodes.JsonArray\n-       cmp      qword ptr [r12], rdi\n-       je       SHORT G_M14660_IG07\n        mov      rdi, rax\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n        call     [r11]System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n@@ -146,7 \u002B134,7 @@ G_M14660_IG06:\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n        je       SHORT G_M14660_IG08\n-\t\t\t\t\t\t;; size=82 bbWeight=0.50 PerfScore 8.25\n\u002B\t\t\t\t\t\t;; size=66 bbWeight=0.50 PerfScore 6.62\n G_M14660_IG07:\n        test     r15, r15\n        je       G_M14660_IG23\n@@ -162,8 \u002B150,8 @@ G_M14660_IG07:\n G_M14660_IG08:\n        mov      r12, gword ptr [r14\u002B0x18]\n        test     r12, r12\n-       je       G_M14660_IG11\n-\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.25\n\u002B       je       SHORT G_M14660_IG11\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.25\n G_M14660_IG09:\n        mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.IEnumerable\n@@ -171,9 \u002B159,6 @@ G_M14660_IG09:\n        call     [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE\n        test     rax, rax\n        je       SHORT G_M14660_IG10\n-       mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Nodes.JsonArray\n-       cmp      qword ptr [r12], rdi\n-       je       SHORT G_M14660_IG10\n        mov      rdi, rax\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n        call     [r11]System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n@@ -182,7 \u002B167,7 @@ G_M14660_IG09:\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n        je       SHORT G_M14660_IG11\n-\t\t\t\t\t\t;; size=82 bbWeight=0.50 PerfScore 8.25\n\u002B\t\t\t\t\t\t;; size=66 bbWeight=0.50 PerfScore 6.62\n G_M14660_IG10:\n        test     r15, r15\n        je       G_M14660_IG24\n@@ -198,8 \u002B183,8 @@ G_M14660_IG10:\n G_M14660_IG11:\n        mov      r12, gword ptr [r14\u002B0x20]\n        test     r12, r12\n-       je       G_M14660_IG14\n-\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.25\n\u002B       je       SHORT G_M14660_IG14\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.25\n G_M14660_IG12:\n        mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.IEnumerable\n@@ -207,9 \u002B192,6 @@ G_M14660_IG12:\n        call     [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE\n        test     rax, rax\n        je       SHORT G_M14660_IG13\n-       mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Nodes.JsonArray\n-       cmp      qword ptr [r12], rdi\n-       je       SHORT G_M14660_IG13\n        mov      rdi, rax\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n        call     [r11]System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n@@ -218,7 \u002B200,7 @@ G_M14660_IG12:\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n        je       SHORT G_M14660_IG14\n-\t\t\t\t\t\t;; size=82 bbWeight=0.50 PerfScore 8.25\n\u002B\t\t\t\t\t\t;; size=66 bbWeight=0.50 PerfScore 6.62\n G_M14660_IG13:\n        test     r15, r15\n        je       G_M14660_IG25\n@@ -245,9 \u002B227,6 @@ G_M14660_IG15:\n        call     [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE\n        test     rax, rax\n        je       SHORT G_M14660_IG16\n-       mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Nodes.JsonArray\n-       cmp      qword ptr [r12], rdi\n-       je       SHORT G_M14660_IG16\n        mov      rdi, rax\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n        call     [r11]System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n@@ -256,7 \u002B235,7 @@ G_M14660_IG15:\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n        je       G_M14660_IG19\n-\t\t\t\t\t\t;; size=101 bbWeight=0.50 PerfScore 10.75\n\u002B\t\t\t\t\t\t;; size=85 bbWeight=0.50 PerfScore 9.12\n G_M14660_IG16:\n        test     r15, r15\n        je       G_M14660_IG27\n@@ -268,21 \u002B247,18 @@ G_M14660_IG16:\n        mov      rdx, r12\n        mov      rdi, gword ptr [r15\u002B0x10]\n        call     [r15\u002B0x18]System.Action\u00602[System.__Canon,System.__Canon]:Invoke(System.__Canon,System.__Canon):this\n-       jmp      G_M14660_IG19\n-\t\t\t\t\t\t;; size=54 bbWeight=0.50 PerfScore 6.25\n\u002B       jmp      SHORT G_M14660_IG19\n\u002B\t\t\t\t\t\t;; size=51 bbWeight=0.50 PerfScore 6.25\n G_M14660_IG17:\n        mov      r12, gword ptr [r14\u002B0x28]\n        test     r12, r12\n-       je       G_M14660_IG19\n\u002B       je       SHORT G_M14660_IG19\n        mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.IEnumerable\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFINTERFACE\n        call     [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE\n        test     rax, rax\n        je       SHORT G_M14660_IG18\n-       mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Nodes.JsonArray\n-       cmp      qword ptr [r12], rdi\n-       je       SHORT G_M14660_IG18\n        mov      rdi, rax\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n        call     [r11]System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n@@ -291,7 \u002B267,7 @@ G_M14660_IG17:\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n        je       SHORT G_M14660_IG19\n-\t\t\t\t\t\t;; size=95 bbWeight=0.50 PerfScore 9.88\n\u002B\t\t\t\t\t\t;; size=75 bbWeight=0.50 PerfScore 8.25\n G_M14660_IG18:\n        test     r15, r15\n        je       G_M14660_IG26\n@@ -443,5 \u002B419,5 @@ G_M14660_IG27:\n        int3     \n \t\t\t\t\t\t;; size=87 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1599, prolog size 16, PerfScore 125.12, instruction count 320, allocated bytes for code 1599 (MethodHash=c9ebc6bb) for method Microsoft.OpenApi.OpenApiOAuthFlows:SerializeInternal(Microsoft.OpenApi.IOpenApiWriter,int,System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]):this (FullOpts)\n\u002B; Total bytes of code 1480, prolog size 16, PerfScore 115.38, instruction count 302, allocated bytes for code 1480 (MethodHash=c9ebc6bb) for method Microsoft.OpenApi.OpenApiOAuthFlows:SerializeInternal(Microsoft.OpenApi.IOpenApiWriter,int,System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1599,"DiffBytes":1480},{"Assembly":"MongoDB.Bson.dasm","Method":"MongoDB.Bson.Serialization.Conventions.StandardDiscriminatorConvention:GetActualType(MongoDB.Bson.IO.IBsonReader,System.Type):System.Type:this (FullOpts)","Category":"improvement","Description":"631 -\u003E 571 bytes (-60)","ExtraInfo":null,"Diff":"@@ -11,35 \u002B11,35 @@\n ;  V00 this         [V00,T05] (  3,  2.50)     ref  -\u003E  r14         this class-hnd single-def \u003CMongoDB.Bson.Serialization.Conventions.StandardDiscriminatorConvention\u003E\n ;  V01 arg1         [V01,T00] (  8,  5.50)     ref  -\u003E  rbx         class-hnd single-def \u003CMongoDB.Bson.IO.IBsonReader\u003E\n ;  V02 arg2         [V02,T01] (  7,  4.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Type\u003E\n-;  V03 loc0         [V03,T20] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Bson.IO.BsonReaderBookmark\u003E\n-;  V04 loc1         [V04,T16] (  3,  1.50)     ref  -\u003E  r12         class-hnd \u003CSystem.Type\u003E\n\u002B;  V03 loc0         [V03,T18] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Bson.IO.BsonReaderBookmark\u003E\n\u002B;  V04 loc1         [V04,T15] (  3,  1.50)     ref  -\u003E  r12         class-hnd \u003CSystem.Type\u003E\n ;* V05 loc2         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CMongoDB.Bson.Serialization.BsonDeserializationContext\u003E\n-;  V06 loc3         [V06,T08] (  7,  2.88)     ref  -\u003E  r14         class-hnd \u003CMongoDB.Bson.BsonValue\u003E\n\u002B;  V06 loc3         [V06,T07] (  7,  2.88)     ref  -\u003E  r14         class-hnd \u003CMongoDB.Bson.BsonValue\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V08 tmp1         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.Serialization.BsonDeserializationContext\u003E\n ;  V09 tmp2         [V09,T02] (  6,  6   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.Serialization.BsonDeserializationContext\u002BBuilder\u003E\n ;* V10 tmp3         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.Serialization.BsonDeserializationContext\u002BBuilder\u003E\n ;  V11 tmp4         [V11,T03] (  6,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.Serialization.BsonDeserializationContext\u003E\n-;  V12 tmp5         [V12,T11] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.IO.IBsonReader\u003E\n-;  V13 tmp6         [V13,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x2C]  spill-single-def \u0022Inlining Arg\u0022\n-;  V14 tmp7         [V14,T12] (  2,  2   )     ref  -\u003E  [rbp-0x40]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n-;  V15 tmp8         [V15,T13] (  2,  2   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n\u002B;  V12 tmp5         [V12,T09] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.IO.IBsonReader\u003E\n\u002B;  V13 tmp6         [V13,T14] (  2,  2   )   ubyte  -\u003E  [rbp-0x2C]  spill-single-def \u0022Inlining Arg\u0022\n\u002B;  V14 tmp7         [V14,T10] (  2,  2   )     ref  -\u003E  [rbp-0x40]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n\u002B;  V15 tmp8         [V15,T11] (  2,  2   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n ;* V16 tmp9         [V16    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Bson.Serialization.BsonDeserializationArgs\u003E\n ;  V17 tmp10        [V17,T04] (  5,  5   )     ref  -\u003E  r12         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.Serialization.Serializers.BsonValueSerializer\u003E\n ;* V18 tmp11        [V18    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.Serialization.BsonDeserializationArgs\u003E\n-;  V19 tmp12        [V19,T14] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.IO.IBsonReader\u003E\n\u002B;  V19 tmp12        [V19,T12] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.IO.IBsonReader\u003E\n ;* V20 tmp13        [V20    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V21 tmp14        [V21,T06] (  3,  3   )   byref  -\u003E  rdx         single-def \u0022Inlining Arg\u0022\n-;  V22 tmp15        [V22,T07] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonArray\u003E\n-;  V23 tmp16        [V23    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V22 tmp15        [V22,T13] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonArray\u003E\n\u002B;  V23 tmp16        [V23    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V24 tmp17        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V25 tmp18        [V25,T17] (  3,  1.50)     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n-;  V26 tmp19        [V26,T10] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonValue]\u003E\n\u002B;  V25 tmp18        [V25,T19] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n\u002B;* V26 tmp19        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonValue]\u003E\n ;* V27 tmp20        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V16._nominalType (fldOffset=0x0)\u0022 P-INDEP\n ;* V28 tmp21        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V18._nominalType (fldOffset=0x0)\u0022 P-INDEP\n-;  V29 cse0         [V29,T18] (  3,  1.50)     ref  -\u003E  [rbp-0x48]  spill-single-def \u0022CSE #01: moderate\u0022\n-;  V30 rat0         [V30,T09] (  4,  2.25)     ref  -\u003E  r12         \u0022replacement local\u0022\n-;  V31 rat1         [V31,T19] (  3,  1.25)    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n\u002B;  V29 cse0         [V29,T16] (  3,  1.50)     ref  -\u003E  [rbp-0x48]  spill-single-def \u0022CSE #01: moderate\u0022\n\u002B;  V30 rat0         [V30,T08] (  4,  2.25)     ref  -\u003E  rsi         \u0022replacement local\u0022\n\u002B;  V31 rat1         [V31,T17] (  3,  1.25)    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n ;\n ; Lcl frame size = 40\n \n@@ -102,7 \u002B102,7 @@ G_M65213_IG06:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.IO.IBsonReaderExtensions:FindElement(MongoDB.Bson.IO.IBsonReader,System.String):bool\n        call     [rax]MongoDB.Bson.IO.IBsonReaderExtensions:FindElement(MongoDB.Bson.IO.IBsonReader,System.String):bool\n        test     eax, eax\n-       je       G_M65213_IG15\n\u002B       je       G_M65213_IG13\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.Serialization.BsonDeserializationContext\u002BBuilder\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n@@ -143,7 \u002B143,7 @@ G_M65213_IG06:\n        cmp      byte  ptr [rdx], 0\n \t\t\t\t\t\t;; size=236 bbWeight=0.50 PerfScore 24.75\n G_M65213_IG07:\n-       je       G_M65213_IG17\n\u002B       je       G_M65213_IG15\n        mov      edx, dword ptr [rdx\u002B0x04]\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.Serialization.Serializers.SerializerBase\u00601[System.__Canon]:EnsureBsonTypeEquals(MongoDB.Bson.IO.IBsonReader,int):this\n@@ -161,62 \u002B161,44 @@ G_M65213_IG08:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x20]MongoDB.Bson.BsonValue:get_BsonType():int:this\n        cmp      eax, 4\n-       jne      G_M65213_IG14\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 6.38\n\u002B       jne      SHORT G_M65213_IG12\n\u002B\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 6.38\n G_M65213_IG09:\n-       mov      r12, r14\n\u002B       mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonArray\n-       cmp      qword ptr [r12], rdi\n\u002B       cmp      qword ptr [rsi], rdi\n        je       SHORT G_M65213_IG11\n-\t\t\t\t\t\t;; size=19 bbWeight=0.25 PerfScore 0.88\n\u002B\t\t\t\t\t\t;; size=18 bbWeight=0.25 PerfScore 0.88\n G_M65213_IG10:\n        mov      rsi, r14\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL\n-       mov      r12, rax\n\u002B       mov      rsi, rax\n \t\t\t\t\t\t;; size=18 bbWeight=0.12 PerfScore 0.47\n G_M65213_IG11:\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonValue]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M65213_IG12\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       mov      r14, rax\n-       jmp      SHORT G_M65213_IG13\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 7.50\n-G_M65213_IG12:\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonValue](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonValue],byref):MongoDB.Bson.BsonValue\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        mov      r14, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M65213_IG13:\n        cmp      byte  ptr [rbp-0x38], 0\n-       je       SHORT G_M65213_IG18\n-\t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 1.00\n-G_M65213_IG14:\n\u002B       je       SHORT G_M65213_IG16\n\u002B\t\t\t\t\t\t;; size=35 bbWeight=0.50 PerfScore 3.12\n\u002BG_M65213_IG12:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.Serialization.BsonSerializer:LookupActualType(System.Type,MongoDB.Bson.BsonValue):System.Type\n        call     [rax]MongoDB.Bson.Serialization.BsonSerializer:LookupActualType(System.Type,MongoDB.Bson.BsonValue):System.Type\n        mov      r12, rax\n \t\t\t\t\t\t;; size=21 bbWeight=0.50 PerfScore 2.00\n-G_M65213_IG15:\n\u002BG_M65213_IG13:\n        mov      rdi, rbx\n        mov      rsi, r13\n        mov      r11, 0xD1FFAB1E      ; code for MongoDB.Bson.IO.IBsonReader:ReturnToBookmark(MongoDB.Bson.IO.BsonReaderBookmark):this\n        call     [r11]MongoDB.Bson.IO.IBsonReader:ReturnToBookmark(MongoDB.Bson.IO.BsonReaderBookmark):this\n        mov      rax, r12\n \t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 2.00\n-G_M65213_IG16:\n\u002BG_M65213_IG14:\n        add      rsp, 40\n        pop      rbx\n        pop      r12\n@@ -226,16 \u002B208,16 @@ G_M65213_IG16:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M65213_IG17:\n\u002BG_M65213_IG15:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_NoValue()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_NoValue()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M65213_IG18:\n\u002BG_M65213_IG16:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 631, prolog size 25, PerfScore 72.47, instruction count 157, allocated bytes for code 631 (MethodHash=aca30142) for method MongoDB.Bson.Serialization.Conventions.StandardDiscriminatorConvention:GetActualType(MongoDB.Bson.IO.IBsonReader,System.Type):System.Type:this (FullOpts)\n\u002B; Total bytes of code 571, prolog size 25, PerfScore 64.84, instruction count 143, allocated bytes for code 571 (MethodHash=aca30142) for method MongoDB.Bson.Serialization.Conventions.StandardDiscriminatorConvention:GetActualType(MongoDB.Bson.IO.IBsonReader,System.Type):System.Type:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":631,"DiffBytes":571},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.BinaryVectorDriverExtensions:ToQueryVector[double](MongoDB.Bson.BinaryVector\u00601[double]):MongoDB.Driver.QueryVector (FullOpts)","Category":"improvement","Description":"698 -\u003E 334 bytes (-364)","ExtraInfo":null,"Diff":"@@ -8,52 \u002B8,46 @@\n ; 0 inlinees with PGO data; 8 single block inlinees; 6 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T00] ( 13,  6.25)     ref  -\u003E  rbx         class-hnd single-def \u003CMongoDB.Bson.BinaryVector\u00601[double]\u003E\n-;  V01 loc0         [V01,T11] (  2,  1   )     ref  -\u003E  rbx         class-hnd exact \u003CMongoDB.Bson.BinaryVectorFloat32\u003E\n-;  V02 loc1         [V02,T12] (  2,  1   )     ref  -\u003E  rbx         class-hnd exact \u003CMongoDB.Bson.BinaryVectorInt8\u003E\n-;  V03 loc2         [V03,T13] (  2,  1   )     ref  -\u003E  rbx         class-hnd exact \u003CMongoDB.Bson.BinaryVectorPackedBit\u003E\n-;  V04 loc3         [V04,T07] (  4,  2.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.QueryVector\u003E\n-;  V05 loc4         [V05    ] ( 15,  0   )  struct (40) [rbp-0x38]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.DefaultInterpolatedStringHandler\u003E\n\u002B;  V00 arg0         [V00,T00] (  4,  2   )     ref  -\u003E  rbx         class-hnd single-def \u003CMongoDB.Bson.BinaryVector\u00601[double]\u003E\n\u002B;* V01 loc0         [V01    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Bson.BinaryVectorFloat32\u003E\n\u002B;* V02 loc1         [V02    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Bson.BinaryVectorInt8\u003E\n\u002B;* V03 loc2         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Bson.BinaryVectorPackedBit\u003E\n\u002B;* V04 loc3         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMongoDB.Driver.QueryVector\u003E\n\u002B;  V05 loc4         [V05    ] ( 14,  0   )  struct (40) [rbp-0x38]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.DefaultInterpolatedStringHandler\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CMongoDB.Bson.BinaryVectorFloat32\u003E\n-;  V08 tmp2         [V08,T01] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.QueryVector\u003E\n-;* V09 tmp3         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CMongoDB.Bson.BinaryVectorInt8\u003E\n-;  V10 tmp4         [V10,T02] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.QueryVector\u003E\n-;* V11 tmp5         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CMongoDB.Bson.BinaryVectorPackedBit\u003E\n-;  V12 tmp6         [V12,T03] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.QueryVector\u003E\n-;* V13 tmp7         [V13    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;* V14 tmp8         [V14    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V15 tmp9         [V15,T17] (  3,  0   )     ref  -\u003E  rax        \n-;  V16 tmp10        [V16,T18] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n-;  V17 tmp11        [V17,T04] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n-;  V18 tmp12        [V18,T05] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n-;  V19 tmp13        [V19,T06] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n-;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.Buffers.SharedArrayPool\u00601[char]\u003E\n-;  V21 tmp15        [V21,T14] (  5,  0   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003Cchar[]\u003E\n-;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003Cchar[]\u003E\n-;* V23 tmp17        [V23    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.QueryVector\u003E\n\u002B;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.QueryVector\u003E\n\u002B;* V09 tmp3         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.QueryVector\u003E\n\u002B;* V10 tmp4         [V10    ] (  0,  0   )   byref  -\u003E  zero-ref   \n\u002B;* V11 tmp5         [V11    ] (  0,  0   )   byref  -\u003E  zero-ref   \n\u002B;  V12 tmp6         [V12,T04] (  3,  0   )     ref  -\u003E  rax        \n\u002B;  V13 tmp7         [V13,T05] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;* V14 tmp8         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n\u002B;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n\u002B;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n\u002B;* V17 tmp11        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.Buffers.SharedArrayPool\u00601[char]\u003E\n\u002B;  V18 tmp12        [V18,T01] (  5,  0   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003Cchar[]\u003E\n\u002B;* V19 tmp13        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003Cchar[]\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V21 tmp15        [V21    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Span\u00601[char]\u003E\n\u002B;* V22 tmp16        [V22    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Span\u00601[char]\u003E\n\u002B;  V23 tmp17        [V23,T03] (  4,  0   )     int  -\u003E  rdi         \u0022Inlining Arg\u0022\n ;* V24 tmp18        [V24    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;* V25 tmp19        [V25    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;  V26 tmp20        [V26,T16] (  4,  0   )     int  -\u003E  rdi         \u0022Inlining Arg\u0022\n-;* V27 tmp21        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;  V28 tmp22        [V28,T15] (  5,  0   )   byref  -\u003E  r15         single-def \u0022Inlining Arg\u0022\n-;  V29 tmp23        [V29,T22] (  2,  0   )     int  -\u003E  rsi         \u0022Inlining Arg\u0022\n-;* V30 tmp24        [V30,T23] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n-;* V31 tmp25        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;* V32 tmp26        [V32    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;* V33 tmp27        [V33    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V34 tmp28        [V34,T19] (  3,  0   )   byref  -\u003E  rdi         \u0022field V24._reference (fldOffset=0x0)\u0022 P-INDEP\n-;  V35 tmp29        [V35,T20] (  3,  0   )     int  -\u003E  rsi         \u0022field V24._length (fldOffset=0x8)\u0022 P-INDEP\n-;* V36 tmp30        [V36    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022field V25._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V37 tmp31        [V37    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V25._length (fldOffset=0x8)\u0022 P-INDEP\n-;* V38 tmp32        [V38    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V27._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V39 tmp33        [V39    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V27._length (fldOffset=0x8)\u0022 P-INDEP\n-;* V40 tmp34        [V40    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V31._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V41 tmp35        [V41    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V31._length (fldOffset=0x8)\u0022 P-INDEP\n-;  V42 tmp36        [V42,T08] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V43 tmp37        [V43,T09] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V44 tmp38        [V44,T10] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V45 tmp39        [V45,T21] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V25 tmp19        [V25,T02] (  5,  0   )   byref  -\u003E  r15         single-def \u0022Inlining Arg\u0022\n\u002B;  V26 tmp20        [V26,T09] (  2,  0   )     int  -\u003E  rsi         \u0022Inlining Arg\u0022\n\u002B;* V27 tmp21        [V27,T10] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n\u002B;* V28 tmp22        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Span\u00601[char]\u003E\n\u002B;* V29 tmp23        [V29    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n\u002B;* V30 tmp24        [V30    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n\u002B;  V31 tmp25        [V31,T06] (  3,  0   )   byref  -\u003E  rdi         \u0022field V21._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V32 tmp26        [V32,T07] (  3,  0   )     int  -\u003E  rsi         \u0022field V21._length (fldOffset=0x8)\u0022 P-INDEP\n\u002B;* V33 tmp27        [V33    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022field V22._reference (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n\u002B;  V39 tmp33        [V39,T08] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 48\n \n@@ -68,110 \u002B62,8 @@ G_M28471_IG01:\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu  ymmword ptr [rbp-0x30], ymm8\n        mov      rbx, rdi\n-\t\t\t\t\t\t;; size=32 bbWeight=1 PerfScore 6.58\n\u002B\t\t\t\t\t\t;; size=32 bbWeight=0 PerfScore 0.00\n G_M28471_IG02:\n-       test     rbx, rbx\n-       je       SHORT G_M28471_IG05\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M28471_IG03:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BinaryVectorFloat32\n-       cmp      qword ptr [rbx], rdi\n-       jne      SHORT G_M28471_IG05\n-\t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M28471_IG04:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonBinaryData\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r15, rax\n-       mov      rdi, rbx\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[float](MongoDB.Bson.BinaryVector\u00601[float]):byte[]\n-       call     [rax]MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[float](MongoDB.Bson.BinaryVector\u00601[float]):byte[]\n-       mov      rsi, rax\n-       mov      rdi, r15\n-       mov      edx, 9\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.BsonBinaryData:.ctor(byte[],int):this\n-       call     [rax]MongoDB.Bson.BsonBinaryData:.ctor(byte[],int):this\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.QueryVector\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      rbx, rax\n-       mov      rdi, rbx\n-       mov      rsi, r15\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.QueryVector:.ctor(MongoDB.Bson.BsonBinaryData):this\n-       call     [rax]MongoDB.Driver.QueryVector:.ctor(MongoDB.Bson.BsonBinaryData):this\n-       jmp      G_M28471_IG11\n-\t\t\t\t\t\t;; size=97 bbWeight=0.50 PerfScore 8.12\n-G_M28471_IG05:\n-       test     rbx, rbx\n-       je       SHORT G_M28471_IG08\n-\t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 0.62\n-G_M28471_IG06:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BinaryVectorInt8\n-       cmp      qword ptr [rbx], rdi\n-       jne      SHORT G_M28471_IG08\n-\t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M28471_IG07:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonBinaryData\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r15, rax\n-       mov      rdi, rbx\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[sbyte](MongoDB.Bson.BinaryVector\u00601[sbyte]):byte[]\n-       call     [rax]MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[sbyte](MongoDB.Bson.BinaryVector\u00601[sbyte]):byte[]\n-       mov      rsi, rax\n-       mov      rdi, r15\n-       mov      edx, 9\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.BsonBinaryData:.ctor(byte[],int):this\n-       call     [rax]MongoDB.Bson.BsonBinaryData:.ctor(byte[],int):this\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.QueryVector\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      rbx, rax\n-       mov      rdi, rbx\n-       mov      rsi, r15\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.QueryVector:.ctor(MongoDB.Bson.BsonBinaryData):this\n-       call     [rax]MongoDB.Driver.QueryVector:.ctor(MongoDB.Bson.BsonBinaryData):this\n-       jmp      SHORT G_M28471_IG11\n-\t\t\t\t\t\t;; size=94 bbWeight=0.50 PerfScore 8.12\n-G_M28471_IG08:\n-       test     rbx, rbx\n-       je       SHORT G_M28471_IG13\n-\t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 0.62\n-G_M28471_IG09:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BinaryVectorPackedBit\n-       cmp      qword ptr [rbx], rdi\n-       jne      SHORT G_M28471_IG13\n-\t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M28471_IG10:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonBinaryData\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r15, rax\n-       mov      rdi, rbx\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[byte](MongoDB.Bson.BinaryVector\u00601[byte]):byte[]\n-       call     [rax]MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[byte](MongoDB.Bson.BinaryVector\u00601[byte]):byte[]\n-       mov      rsi, rax\n-       mov      rdi, r15\n-       mov      edx, 9\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.BsonBinaryData:.ctor(byte[],int):this\n-       call     [rax]MongoDB.Bson.BsonBinaryData:.ctor(byte[],int):this\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.QueryVector\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      rbx, rax\n-       mov      rdi, rbx\n-       mov      rsi, r15\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.QueryVector:.ctor(MongoDB.Bson.BsonBinaryData):this\n-       call     [rax]MongoDB.Driver.QueryVector:.ctor(MongoDB.Bson.BsonBinaryData):this\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 7.12\n-G_M28471_IG11:\n-       mov      rax, rbx\n-\t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M28471_IG12:\n-       vzeroupper \n-       add      rsp, 48\n-       pop      rbx\n-       pop      r15\n-       pop      rbp\n-       ret      \n-\t\t\t\t\t\t;; size=12 bbWeight=1 PerfScore 3.75\n-G_M28471_IG13:\n-       xor      rdi, rdi\n-       mov      gword ptr [rbp-0x38], rdi\n        mov      rdi, 0xD1FFAB1E      ; const ptr\n        mov      rdi, gword ptr [rdi]\n        mov      esi, 256\n@@ -179,16 \u002B71,16 @@ G_M28471_IG13:\n        call     [rax]System.Buffers.SharedArrayPool\u00601[char]:Rent(int):char[]:this\n        mov      gword ptr [rbp-0x30], rax\n        test     rax, rax\n-       jne      SHORT G_M28471_IG14\n\u002B       jne      SHORT G_M28471_IG03\n        xor      rdi, rdi\n        xor      esi, esi\n-       jmp      SHORT G_M28471_IG15\n-\t\t\t\t\t\t;; size=51 bbWeight=0 PerfScore 0.00\n-G_M28471_IG14:\n\u002B       jmp      SHORT G_M28471_IG04\n\u002B\t\t\t\t\t\t;; size=45 bbWeight=0 PerfScore 0.00\n\u002BG_M28471_IG03:\n        lea      rdi, bword ptr [rax\u002B0x10]\n        mov      esi, dword ptr [rax\u002B0x08]\n \t\t\t\t\t\t;; size=7 bbWeight=0 PerfScore 0.00\n-G_M28471_IG15:\n\u002BG_M28471_IG04:\n        mov      bword ptr [rbp-0x20], rdi\n        mov      dword ptr [rbp-0x18], esi\n        xor      edi, edi\n@@ -196,19 \u002B88,19 @@ G_M28471_IG15:\n        mov      byte  ptr [rbp-0x24], 0\n        mov      edi, dword ptr [rbp-0x28]\n        cmp      edi, dword ptr [rbp-0x18]\n-       jbe      SHORT G_M28471_IG16\n\u002B       jbe      SHORT G_M28471_IG05\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()\n        int3     \n \t\t\t\t\t\t;; size=37 bbWeight=0 PerfScore 0.00\n-G_M28471_IG16:\n\u002BG_M28471_IG05:\n        mov      rsi, bword ptr [rbp-0x20]\n        mov      eax, edi\n        lea      r15, bword ptr [rsi\u002B2*rax]\n        mov      esi, dword ptr [rbp-0x18]\n        sub      esi, edi\n        cmp      esi, 27\n-       jb       SHORT G_M28471_IG17\n\u002B       jb       SHORT G_M28471_IG06\n        vmovups  ymm0, ymmword ptr [reloc @RWD00]\n        vmovups  ymmword ptr [r15], ymm0\n        vmovups  xmm0, xmmword ptr [reloc @RWD32]\n@@ -218,26 \u002B110,26 @@ G_M28471_IG16:\n        mov      edi, dword ptr [rbp-0x28]\n        add      edi, 27\n        mov      dword ptr [rbp-0x28], edi\n-       jmp      SHORT G_M28471_IG18\n\u002B       jmp      SHORT G_M28471_IG07\n \t\t\t\t\t\t;; size=73 bbWeight=0 PerfScore 0.00\n-G_M28471_IG17:\n\u002BG_M28471_IG06:\n        lea      rdi, [rbp-0x38]\n        mov      rsi, 0xD1FFAB1E      ; \u0027Invalid binary vector type \u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this\n        call     [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this\n \t\t\t\t\t\t;; size=26 bbWeight=0 PerfScore 0.00\n-G_M28471_IG18:\n\u002BG_M28471_IG07:\n        test     rbx, rbx\n-       jne      SHORT G_M28471_IG19\n\u002B       jne      SHORT G_M28471_IG08\n        xor      rax, rax\n-       jmp      SHORT G_M28471_IG20\n\u002B       jmp      SHORT G_M28471_IG09\n \t\t\t\t\t\t;; size=9 bbWeight=0 PerfScore 0.00\n-G_M28471_IG19:\n\u002BG_M28471_IG08:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Object:GetType():System.Type:this\n        call     [rax]System.Object:GetType():System.Type:this\n \t\t\t\t\t\t;; size=15 bbWeight=0 PerfScore 0.00\n-G_M28471_IG20:\n\u002BG_M28471_IG09:\n        lea      rdi, [rbp-0x38]\n        mov      rdx, rax\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[System.Type](System.Type):this\n@@ -261,5 \u002B153,5 @@ RWD00  \tdq\t00610076006E0049h, 002000640069006Ch, 0061006E00690062h, 007600200079\n RWD32  \tdq\t006F007400630065h, 0079007400200072h\n \n \n-; Total bytes of code 698, prolog size 29, PerfScore 38.90, instruction count 160, allocated bytes for code 698 (MethodHash=587190c8) for method MongoDB.Driver.BinaryVectorDriverExtensions:ToQueryVector[double](MongoDB.Bson.BinaryVector\u00601[double]):MongoDB.Driver.QueryVector (FullOpts)\n\u002B; Total bytes of code 334, prolog size 29, PerfScore 0.00, instruction count 80, allocated bytes for code 334 (MethodHash=587190c8) for method MongoDB.Driver.BinaryVectorDriverExtensions:ToQueryVector[double](MongoDB.Bson.BinaryVector\u00601[double]):MongoDB.Driver.QueryVector (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":698,"DiffBytes":334},{"Assembly":"Moq.dasm","Method":"Moq.Expressions.Visitors.UpgradePropertyAccessorMethods:VisitMethodCall(System.Linq.Expressions.MethodCallExpression):System.Linq.Expressions.Expression:this (FullOpts)","Category":"improvement","Description":"1,546 -\u003E 1,494 bytes (-52)","ExtraInfo":null,"Diff":"@@ -11,7 \u002B11,7 @@\n ;  V00 this         [V00,T04] (  5,  4   )     ref  -\u003E  r15         this class-hnd single-def \u003CMoq.Expressions.Visitors.UpgradePropertyAccessorMethods\u003E\n ;  V01 arg1         [V01,T00] ( 25, 15.50)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n ;* V02 loc0         [V02    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V03 loc1         [V03,T06] (  9,  5   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V03 loc1         [V03,T06] (  8,  4.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n ;  V04 loc2         [V04,T28] (  5,  2.50)     ref  -\u003E  r12         class-hnd exact single-def \u003CSystem.String\u003E\n ;* V05 loc3         [V05    ] (  0,  0   )     int  -\u003E  zero-ref   \n ;* V06 loc4         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Reflection.PropertyInfo\u003E\n@@ -19,12 \u002B19,12 @@\n ;* V08 loc6         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Type[]\u003E\n ;* V09 loc7         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Reflection.PropertyInfo\u003E\n ;  V10 loc8         [V10,T29] (  5,  2.50)     ref  -\u003E  r12         class-hnd exact single-def \u003CSystem.String\u003E\n-;  V11 loc9         [V11,T54] (  3,  1.50)     int  -\u003E  [rbp-0x2C]  spill-single-def\n-;  V12 loc10        [V12,T55] (  2,  1   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Reflection.PropertyInfo\u003E\n-;  V13 loc11        [V13,T56] (  2,  1   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;  V11 loc9         [V11,T52] (  3,  1.50)     int  -\u003E  [rbp-0x2C]  spill-single-def\n\u002B;  V12 loc10        [V12,T53] (  2,  1   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Reflection.PropertyInfo\u003E\n\u002B;  V13 loc11        [V13,T54] (  2,  1   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Linq.Expressions.Expression\u003E\n ;* V14 loc12        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u003CMoq.ParameterTypes\u003E\n-;  V15 loc13        [V15,T47] (  3,  1.50)     ref  -\u003E  [rbp-0x48]  class-hnd spill-single-def \u003CSystem.Type[]\u003E\n-;  V16 loc14        [V16,T57] (  2,  1   )     ref  -\u003E  r12         class-hnd single-def \u003CSystem.Reflection.PropertyInfo\u003E\n\u002B;  V15 loc13        [V15,T46] (  3,  1.50)     ref  -\u003E  [rbp-0x48]  class-hnd spill-single-def \u003CSystem.Type[]\u003E\n\u002B;  V16 loc14        [V16,T55] (  2,  1   )     ref  -\u003E  r12         class-hnd single-def \u003CSystem.Reflection.PropertyInfo\u003E\n ;* V17 loc15        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.Expression]\u003E\n ;* V18 loc16        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Linq.Expressions.Expression\u003E\n ;  V19 OutArgs      [V19    ] (  1,  1   )  struct ( 8) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n@@ -34,7 \u002B34,7 @@\n ;  V23 tmp4         [V23,T08] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022impImportAndPushBox\u0022 \u003CSystem.Type\u003E\n ;  V24 tmp5         [V24,T16] (  3,  3   )     ref  -\u003E  [rbp-0x60]  class-hnd exact spill-single-def \u0022Single-def Box Helper\u0022 \u003CMoq.ParameterTypes\u003E\n ;  V25 tmp6         [V25,T09] (  4,  4   )     ref  -\u003E  [rbp-0x68]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Type\u003E\n-;  V26 tmp7         [V26,T48] (  3,  1.50)     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;  V26 tmp7         [V26,T47] (  3,  1.50)     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n ;  V27 tmp8         [V27,T10] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n ;* V28 tmp9         [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Reflection.MethodInfo\u003E\n ;* V29 tmp10        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n@@ -42,23 \u002B42,23 @@\n ;* V31 tmp12        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Reflection.MethodInfo\u003E\n ;* V32 tmp13        [V32    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CMoq.ParameterTypes\u003E\n ;* V33 tmp14        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Reflection.ParameterInfo[]\u003E\n-;  V34 tmp15        [V34,T49] (  3,  1.50)     ref  -\u003E  r14         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Type[]\u003E\n-;  V35 tmp16        [V35,T32] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMoq.ParameterTypes\u003E\n\u002B;  V34 tmp15        [V34,T48] (  3,  1.50)     ref  -\u003E  r14         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Type[]\u003E\n\u002B;  V35 tmp16        [V35,T31] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMoq.ParameterTypes\u003E\n ;* V36 tmp17        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Generic.ICollection\u00601[System.Type]\u003E\n ;* V37 tmp18        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Type]\u003E\n ;* V38 tmp19        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Type[]\u003E\n ;* V39 tmp20        [V39    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n ;* V40 tmp21        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003CSystem.Type[]\u003E\n ;* V41 tmp22        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.Type[]\u003E\n-;  V42 tmp23        [V42,T33] (  2,  2   )     ref  -\u003E   r8         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Type\u003E\n\u002B;  V42 tmp23        [V42,T32] (  2,  2   )     ref  -\u003E   r8         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Type\u003E\n ;* V43 tmp24        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n ;  V44 tmp25        [V44,T12] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Type\u003E\n ;* V45 tmp26        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n ;* V46 tmp27        [V46    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Reflection.MethodInfo\u003E\n ;* V47 tmp28        [V47    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CMoq.ParameterTypes\u003E\n ;* V48 tmp29        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Reflection.ParameterInfo[]\u003E\n-;  V49 tmp30        [V49,T50] (  3,  1.50)     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Type]\u003E\n-;  V50 tmp31        [V50,T34] (  2,  2   )     ref  -\u003E  [rbp-0x70]  class-hnd exact spill-single-def \u0022Inlining Arg\u0022 \u003CMoq.ParameterTypes\u003E\n\u002B;  V49 tmp30        [V49,T49] (  3,  1.50)     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Type]\u003E\n\u002B;  V50 tmp31        [V50,T33] (  2,  2   )     ref  -\u003E  [rbp-0x70]  class-hnd exact spill-single-def \u0022Inlining Arg\u0022 \u003CMoq.ParameterTypes\u003E\n ;  V51 tmp32        [V51,T26] (  3,  3   )     int  -\u003E  [rbp-0x30]  spill-single-def \u0022Inlining Arg\u0022\n ;* V52 tmp33        [V52    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022Inline return value spill temp\u0022\n ;* V53 tmp34        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Type[]\u003E\n@@ -74,48 \u002B74,48 @@\n ;* V63 tmp44        [V63    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMoq.ParameterTypes\u003E\n ;  V64 tmp45        [V64    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V65 tmp46        [V65    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V66 tmp47        [V66,T58] (  2,  1   )     ref  -\u003E   r8         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Type\u003E\n-;  V67 tmp48        [V67,T35] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMoq.ParameterTypes\u003E\n\u002B;  V66 tmp47        [V66,T56] (  2,  1   )     ref  -\u003E   r8         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Type\u003E\n\u002B;  V67 tmp48        [V67,T34] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMoq.ParameterTypes\u003E\n ;* V68 tmp49        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Type]\u003E\n ;* V69 tmp50        [V69    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Type\u003E\n ;* V70 tmp51        [V70    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Type\u003E\n... diff truncated; middle omitted ...\n\u002B       mov      rdx, 0xD1FFAB1E      ; data for System.Array\u002BEmptyArray\u00601[System.Linq.Expressions.Expression]:Value\n\u002B       mov      rbx, gword ptr [rdx]\n \t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 1.12\n G_M27959_IG19:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M27959_IG20\n-       lea      rsi, [rbp-0x40]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       mov      r14, rax\n-       jmp      SHORT G_M27959_IG21\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 7.50\n-G_M27959_IG20:\n        lea      rdx, [rbp-0x40]\n        mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.Linq.Expressions.Expression](System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.Expression],byref):System.Linq.Expressions.Expression\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      r14, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M27959_IG21:\n\u002B       mov      r15, rax\n        cmp      byte  ptr [rbp-0x40], 0\n-       je       G_M27959_IG31\n\u002B       je       G_M27959_IG29\n        mov      rdi, r13\n        mov      rsi, r12\n        mov      rdx, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Expressions.Expression:MakeIndex(System.Linq.Expressions.Expression,System.Reflection.PropertyInfo,System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.Expression]):System.Linq.Expressions.IndexExpression\n        call     [rax]System.Linq.Expressions.Expression:MakeIndex(System.Linq.Expressions.Expression,System.Reflection.PropertyInfo,System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.Expression]):System.Linq.Expressions.IndexExpression\n        mov      rdi, rax\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Expressions.Expression:Assign(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression):System.Linq.Expressions.BinaryExpression\n        call     [rax]System.Linq.Expressions.Expression:Assign(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression):System.Linq.Expressions.BinaryExpression\n-       jmp      G_M27959_IG26\n-\t\t\t\t\t\t;; size=54 bbWeight=0.50 PerfScore 5.88\n-G_M27959_IG22:\n\u002B       jmp      G_M27959_IG24\n\u002B\t\t\t\t\t\t;; size=86 bbWeight=0.50 PerfScore 8.12\n\u002BG_M27959_IG20:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x38]System.Reflection.MemberInfo:get_DeclaringType():System.Type:this\n        cmp      byte  ptr [rax], al\n        test     r12, r12\n-       je       G_M27959_IG28\n\u002B       je       G_M27959_IG26\n        xor      rdi, rdi\n        mov      gword ptr [rsp], rdi\n        mov      rdi, rax\n@@ -427,9 \u002B410,9 @@ G_M27959_IG22:\n        mov      rsi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Expressions.Expression:Assign(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression):System.Linq.Expressions.BinaryExpression\n        call     [rax]System.Linq.Expressions.Expression:Assign(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression):System.Linq.Expressions.BinaryExpression\n-       jmp      G_M27959_IG26\n\u002B       jmp      G_M27959_IG24\n \t\t\t\t\t\t;; size=136 bbWeight=0.50 PerfScore 20.38\n-G_M27959_IG23:\n\u002BG_M27959_IG21:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x40]\n@@ -446,7 \u002B429,7 @@ G_M27959_IG23:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M27959_IG25\n\u002B       je       G_M27959_IG23\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x50]\n@@ -478,13 \u002B461,13 @@ G_M27959_IG23:\n        mov      rbx, gword ptr [rbp-0x68]\n        cmp      byte  ptr [rbx], bl\n        test     r12, r12\n-       je       G_M27959_IG28\n\u002B       je       G_M27959_IG26\n        test     r14, r14\n-       je       G_M27959_IG29\n\u002B       je       G_M27959_IG27\n        xor      rdi, rdi\n        mov      gword ptr [rsp], rdi\n \t\t\t\t\t\t;; size=219 bbWeight=0.50 PerfScore 34.62\n-G_M27959_IG24:\n\u002BG_M27959_IG22:\n        mov      rdi, rbx\n        mov      rsi, r12\n        mov      r9, r14\n@@ -498,16 \u002B481,16 @@ G_M27959_IG24:\n        mov      rdx, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Expressions.Expression:MakeIndex(System.Linq.Expressions.Expression,System.Reflection.PropertyInfo,System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.Expression]):System.Linq.Expressions.IndexExpression\n        call     [rax]System.Linq.Expressions.Expression:MakeIndex(System.Linq.Expressions.Expression,System.Reflection.PropertyInfo,System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.Expression]):System.Linq.Expressions.IndexExpression\n-       jmp      SHORT G_M27959_IG26\n\u002B       jmp      SHORT G_M27959_IG24\n \t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 7.12\n-G_M27959_IG25:\n\u002BG_M27959_IG23:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x38]System.Reflection.MemberInfo:get_DeclaringType():System.Type:this\n        cmp      byte  ptr [rax], al\n        test     r12, r12\n-       je       SHORT G_M27959_IG28\n\u002B       je       SHORT G_M27959_IG26\n        xor      rdi, rdi\n        mov      gword ptr [rsp], rdi\n        mov      rdi, rax\n@@ -524,10 \u002B507,10 @@ G_M27959_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Expressions.Expression:MakeMemberAccess(System.Linq.Expressions.Expression,System.Reflection.MemberInfo):System.Linq.Expressions.MemberExpression\n        call     [rax]System.Linq.Expressions.Expression:MakeMemberAccess(System.Linq.Expressions.Expression,System.Reflection.MemberInfo):System.Linq.Expressions.MemberExpression\n \t\t\t\t\t\t;; size=77 bbWeight=0.50 PerfScore 12.88\n-G_M27959_IG26:\n\u002BG_M27959_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M27959_IG27:\n\u002BG_M27959_IG25:\n        add      rsp, 88\n        pop      rbx\n        pop      r12\n@@ -537,35 \u002B520,35 @@ G_M27959_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M27959_IG28:\n\u002BG_M27959_IG26:\n        mov      rdi, 0xD1FFAB1E      ; \u0027name\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:Throw(System.String)\n        call     [rax]System.ArgumentNullException:Throw(System.String)\n        int3     \n \t\t\t\t\t\t;; size=23 bbWeight=0 PerfScore 0.00\n-G_M27959_IG29:\n\u002BG_M27959_IG27:\n        mov      rdi, 0xD1FFAB1E      ; \u0027types\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:Throw(System.String)\n        call     [rax]System.ArgumentNullException:Throw(System.String)\n        int3     \n \t\t\t\t\t\t;; size=23 bbWeight=0 PerfScore 0.00\n-G_M27959_IG30:\n\u002BG_M27959_IG28:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M27959_IG31:\n\u002BG_M27959_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M27959_IG32:\n\u002BG_M27959_IG30:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[System.Linq.Expressions.Expression]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M27959_IG18\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1546, prolog size 32, PerfScore 222.00, instruction count 383, allocated bytes for code 1546 (MethodHash=bf8692c8) for method Moq.Expressions.Visitors.UpgradePropertyAccessorMethods:VisitMethodCall(System.Linq.Expressions.MethodCallExpression):System.Linq.Expressions.Expression:this (FullOpts)\n\u002B; Total bytes of code 1494, prolog size 32, PerfScore 214.50, instruction count 370, allocated bytes for code 1494 (MethodHash=bf8692c8) for method Moq.Expressions.Visitors.UpgradePropertyAccessorMethods:VisitMethodCall(System.Linq.Expressions.MethodCallExpression):System.Linq.Expressions.Expression:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1546,"DiffBytes":1494},{"Assembly":"NJsonSchema.dasm","Method":"NJsonSchema.SampleJsonSchemaGenerator:GenerateArray(Newtonsoft.Json.Linq.JToken,NJsonSchema.JsonSchema,NJsonSchema.JsonSchema,System.String):this (FullOpts)","Category":"improvement","Description":"804 -\u003E 755 bytes (-49)","ExtraInfo":null,"Diff":"@@ -14,34 \u002B14,34 @@\n ;  V03 arg3         [V03,T08] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CNJsonSchema.JsonSchema\u003E\n ;  V04 arg4         [V04,T09] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CSystem.String\u003E\n ;  V05 loc0         [V05,T03] (  7,  6   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u003CNJsonSchema.SampleJsonSchemaGenerator\u002B\u003C\u003Ec__DisplayClass8_0\u003E\n-;  V06 loc1         [V06,T10] (  7,  4.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[NJsonSchema.JsonSchema]\u003E\n\u002B;  V06 loc1         [V06,T10] (  6,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[NJsonSchema.JsonSchema]\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V08 tmp1         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CNJsonSchema.SampleJsonSchemaGenerator\u002B\u003C\u003Ec__DisplayClass8_0\u003E\n ;  V09 tmp2         [V09,T00] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[Newtonsoft.Json.Linq.JToken,NJsonSchema.JsonSchema]\u003E\n ;  V10 tmp3         [V10,T11] (  2,  4   )     ref  -\u003E  r12         class-hnd single-def \u0022impAppendStmt\u0022 \u003CNewtonsoft.Json.Linq.JArray\u003E\n-;  V11 tmp4         [V11,T17] (  2,  2   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[NJsonSchema.JsonSchema,int]\u003E\n\u002B;  V11 tmp4         [V11,T16] (  2,  2   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[NJsonSchema.JsonSchema,int]\u003E\n ;* V12 tmp5         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V13 tmp6         [V13,T15] (  4,  2   )     ref  -\u003E  r13        \n ;  V14 tmp7         [V14,T06] (  5,  5   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[NJsonSchema.JsonSchema,int]\u003E\n ;  V15 tmp8         [V15,T13] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CNJsonSchema.JsonSchema\u003E\n-;  V16 tmp9         [V16,T18] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CNJsonSchema.SampleJsonSchemaGenerator\u002B\u003C\u003Ec\u003E\n\u002B;  V16 tmp9         [V16,T17] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CNJsonSchema.SampleJsonSchemaGenerator\u002B\u003C\u003Ec\u003E\n ;* V17 tmp10        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[NJsonSchema.JsonSchema]\u003E\n ;* V18 tmp11        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[NJsonSchema.JsonSchema,int]\u003E\n-;  V19 tmp12        [V19,T21] (  3,  1.50)     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Linq.IGrouping\u00602[int,NJsonSchema.JsonSchema]]\u003E\n\u002B;  V19 tmp12        [V19,T20] (  3,  1.50)     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Linq.IGrouping\u00602[int,NJsonSchema.JsonSchema]]\u003E\n ;* V20 tmp13        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[NJsonSchema.JsonSchema]\u003E\n ;* V21 tmp14        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[NJsonSchema.JsonSchema,int]\u003E\n ;  V22 tmp15        [V22,T04] (  6,  6   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Enumerable\u002BGroupByIterator\u00602[NJsonSchema.JsonSchema,int]\u003E\n-;* V23 tmp16        [V23,T24] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V24 tmp17        [V24,T22] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CNJsonSchema.JsonSchema[]\u003E\n-;  V25 tmp18        [V25    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;* V23 tmp16        [V23,T23] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V24 tmp17        [V24,T21] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CNJsonSchema.JsonSchema[]\u003E\n\u002B;  V25 tmp18        [V25    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V26 tmp19        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V27 tmp20        [V27,T23] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CNJsonSchema.JsonSchema\u003E\n-;  V28 tmp21        [V28,T16] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[NJsonSchema.JsonSchema]\u003E\n\u002B;  V27 tmp20        [V27,T22] (  2,  1   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CNJsonSchema.JsonSchema\u003E\n\u002B;* V28 tmp21        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[NJsonSchema.JsonSchema]\u003E\n ;  V29 tmp22        [V29,T12] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;  V30 rat0         [V30,T02] (  5,  7.50)     ref  -\u003E  r12         \u0022replacement local\u0022\n ;  V31 rat1         [V31,T14] (  3,  2.50)    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n-;  V32 rat2         [V32,T19] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V33 rat3         [V33,T20] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V32 rat2         [V32,T18] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V33 rat3         [V33,T19] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 24\n \n@@ -121,7 \u002B121,7 @@ G_M43186_IG07:\n        call     [rax]System.Linq.Enumerable:ToList[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.Collections.Generic.List\u00601[System.__Canon]\n        mov      r15, rax\n        cmp      dword ptr [r15\u002B0x10], 0\n-       je       G_M43186_IG17\n\u002B       je       G_M43186_IG15\n \t\t\t\t\t\t;; size=93 bbWeight=1 PerfScore 14.00\n G_M43186_IG08:\n        mov      rdi, 0xD1FFAB1E      ; data for NJsonSchema.SampleJsonSchemaGenerator\u002B\u003C\u003Ec:\u003C\u003E9__8_1\n@@ -174,7 \u002B174,7 @@ G_M43186_IG10:\n G_M43186_IG11:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M43186_IG20\n\u002B       je       G_M43186_IG18\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n G_M43186_IG12:\n        mov      rsi, 0xD1FFAB1E      ; data for System.Array\u002BEmptyArray\u00601[System.Linq.IGrouping\u00602[int,NJsonSchema.JsonSchema]]:Value\n@@ -186,46 \u002B186,30 @@ G_M43186_IG13:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:Count[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):int\n        call     [rax]System.Linq.Enumerable:Count[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):int\n        cmp      eax, 1\n-       je       SHORT G_M43186_IG16\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[NJsonSchema.JsonSchema]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n        je       SHORT G_M43186_IG14\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M43186_IG15\n-\t\t\t\t\t\t;; size=79 bbWeight=0.50 PerfScore 9.88\n-G_M43186_IG14:\n        lea      rdx, [rbp-0x30]\n        mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[NJsonSchema.JsonSchema](System.Collections.Generic.IEnumerable\u00601[NJsonSchema.JsonSchema],byref):NJsonSchema.JsonSchema\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M43186_IG15:\n-       cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M43186_IG21\n-       mov      rdi, rbx\n        mov      rsi, rax\n\u002B       cmp      byte  ptr [rbp-0x30], 0\n\u002B       je       G_M43186_IG19\n\u002B       mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for NJsonSchema.JsonSchema:set_Item(NJsonSchema.JsonSchema):this\n        call     [rax]NJsonSchema.JsonSchema:set_Item(NJsonSchema.JsonSchema):this\n-       jmp      SHORT G_M43186_IG18\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 3.88\n-G_M43186_IG16:\n\u002B       jmp      SHORT G_M43186_IG16\n\u002B\t\t\t\t\t\t;; size=89 bbWeight=0.50 PerfScore 8.50\n\u002BG_M43186_IG14:\n        mov      rdi, gword ptr [r14\u002B0x10]\n        mov      rcx, gword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        mov      rdx, r15\n        mov      rax, 0xD1FFAB1E      ; code for NJsonSchema.SampleJsonSchemaGenerator:MergeAndAssignItemSchemas(NJsonSchema.JsonSchema,NJsonSchema.JsonSchema,System.Collections.Generic.List\u00601[NJsonSchema.JsonSchema],System.String)\n        call     [rax]NJsonSchema.SampleJsonSchemaGenerator:MergeAndAssignItemSchemas(NJsonSchema.JsonSchema,NJsonSchema.JsonSchema,System.Collections.Generic.List\u00601[NJsonSchema.JsonSchema],System.String)\n-       jmp      SHORT G_M43186_IG18\n\u002B       jmp      SHORT G_M43186_IG16\n \t\t\t\t\t\t;; size=28 bbWeight=0.50 PerfScore 4.88\n-G_M43186_IG17:\n\u002BG_M43186_IG15:\n        mov      rdi, 0xD1FFAB1E      ; NJsonSchema.JsonSchema\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -237,10 \u002B221,10 @@ G_M43186_IG17:\n        mov      rax, 0xD1FFAB1E      ; code for NJsonSchema.JsonSchema:set_Item(NJsonSchema.JsonSchema):this\n        call     [rax]NJsonSchema.JsonSchema:set_Item(NJsonSchema.JsonSchema):this\n \t\t\t\t\t\t;; size=51 bbWeight=0.50 PerfScore 4.38\n-G_M43186_IG18:\n\u002BG_M43186_IG16:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M43186_IG19:\n\u002BG_M43186_IG17:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -250,17 \u002B234,17 @@ G_M43186_IG19:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M43186_IG20:\n\u002BG_M43186_IG18:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[System.Linq.IGrouping\u00602[int,NJsonSchema.JsonSchema]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M43186_IG12\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M43186_IG21:\n\u002BG_M43186_IG19:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 804, prolog size 25, PerfScore 92.19, instruction count 174, allocated bytes for code 804 (MethodHash=ffef574d) for method NJsonSchema.SampleJsonSchemaGenerator:GenerateArray(Newtonsoft.Json.Linq.JToken,NJsonSchema.JsonSchema,NJsonSchema.JsonSchema,System.String):this (FullOpts)\n\u002B; Total bytes of code 755, prolog size 25, PerfScore 84.81, instruction count 162, allocated bytes for code 755 (MethodHash=ffef574d) for method NJsonSchema.SampleJsonSchemaGenerator:GenerateArray(Newtonsoft.Json.Linq.JToken,NJsonSchema.JsonSchema,NJsonSchema.JsonSchema,System.String):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":804,"DiffBytes":755},{"Assembly":"Nest.dasm","Method":"Nest.ToStringExpressionVisitor:VisitConstantOrVariable(System.Linq.Expressions.MethodCallExpression,System.Collections.Generic.Stack\u00601[System.String]):this (FullOpts)","Category":"improvement","Description":"519 -\u003E 456 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,113 \u002B9,92 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T03] (  4,  3   )     ref  -\u003E  r15         this class-hnd single-def \u003CNest.ToStringExpressionVisitor\u003E\n-;  V01 arg1         [V01,T02] (  4,  4   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n\u002B;  V01 arg1         [V01,T01] (  4,  4   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n ;  V02 arg2         [V02,T00] ( 20, 11   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Collections.Generic.Stack\u00601[System.String]\u003E\n ;* V03 loc0         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V04 loc1         [V04,T11] (  3,  2.50)     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Linq.Expressions.ConstantExpression\u003E\n-;  V05 loc2         [V05,T12] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Linq.Expressions.MemberExpression\u003E\n\u002B;  V04 loc1         [V04,T10] (  3,  2.50)     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Linq.Expressions.ConstantExpression\u003E\n\u002B;  V05 loc2         [V05,T11] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Linq.Expressions.MemberExpression\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T01] (  4,  7   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V08 tmp2         [V08    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V07 tmp1         [V07,T02] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V08 tmp2         [V08    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V09 tmp3         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V10 tmp4         [V10,T04] (  6,  3.50)     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V11 tmp5         [V11,T05] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V12 tmp6         [V12,T13] (  4,  2   )     int  -\u003E  r15         single-def \u0022Inline stloc first use temp\u0022\n-;  V13 tmp7         [V13,T16] (  3,  1.50)     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String[]\u003E\n-;  V14 tmp8         [V14,T06] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V15 tmp9         [V15,T14] (  4,  2   )     int  -\u003E  r15         single-def \u0022Inline stloc first use temp\u0022\n-;  V16 tmp10        [V16,T17] (  3,  1.50)     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String[]\u003E\n-;  V17 tmp11        [V17,T07] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V18 tmp12        [V18,T15] (  4,  2   )     int  -\u003E  r15         single-def \u0022Inline stloc first use temp\u0022\n-;  V19 tmp13        [V19,T18] (  3,  1.50)     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String[]\u003E\n-;  V20 tmp14        [V20,T08] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V21 tmp15        [V21,T09] (  3,  3   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n-;  V22 tmp16        [V22,T10] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V23 cse0         [V23,T19] (  2,  1   )     int  -\u003E  rdi         \u0022CSE #01: moderate\u0022\n-;  V24 cse1         [V24,T20] (  2,  1   )     int  -\u003E  rdi         \u0022CSE #02: moderate\u0022\n-;  V25 cse2         [V25,T21] (  2,  1   )     int  -\u003E  rdi         \u0022CSE #03: moderate\u0022\n\u002B;  V10 tmp4         [V10,T04] (  5,  3.50)     ref  -\u003E  r14         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;* V11 tmp5         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V12 tmp6         [V12,T12] (  4,  2   )     int  -\u003E  r15         single-def \u0022Inline stloc first use temp\u0022\n\u002B;  V13 tmp7         [V13,T15] (  3,  1.50)     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String[]\u003E\n\u002B;  V14 tmp8         [V14,T05] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V15 tmp9         [V15,T13] (  4,  2   )     int  -\u003E  r15         single-def \u0022Inline stloc first use temp\u0022\n\u002B;  V16 tmp10        [V16,T16] (  3,  1.50)     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String[]\u003E\n\u002B;  V17 tmp11        [V17,T06] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V18 tmp12        [V18,T14] (  4,  2   )     int  -\u003E  r15         single-def \u0022Inline stloc first use temp\u0022\n\u002B;  V19 tmp13        [V19,T17] (  3,  1.50)     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String[]\u003E\n\u002B;  V20 tmp14        [V20,T07] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V21 tmp15        [V21,T08] (  3,  3   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n\u002B;  V22 tmp16        [V22,T09] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V23 cse0         [V23,T18] (  2,  1   )     int  -\u003E  rdi         \u0022CSE #01: moderate\u0022\n\u002B;  V24 cse1         [V24,T19] (  2,  1   )     int  -\u003E  rdi         \u0022CSE #02: moderate\u0022\n\u002B;  V25 cse2         [V25,T20] (  2,  1   )     int  -\u003E  rdi         \u0022CSE #03: moderate\u0022\n ;\n-; Lcl frame size = 16\n\u002B; Lcl frame size = 8\n \n G_M47184_IG01:\n        push     rbp\n        push     r15\n        push     r14\n-       push     r13\n        push     rbx\n-       sub      rsp, 16\n-       lea      rbp, [rsp\u002B0x30]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x20]\n        xor      eax, eax\n-       mov      qword ptr [rbp-0x28], rax\n\u002B       mov      qword ptr [rbp-0x20], rax\n        mov      r15, rdi\n        mov      rbx, rdx\n-\t\t\t\t\t\t;; size=29 bbWeight=1 PerfScore 7.50\n\u002B\t\t\t\t\t\t;; size=24 bbWeight=1 PerfScore 7.25\n G_M47184_IG02:\n        mov      rdi, rsi\n        mov      rax, qword ptr [rsi]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x20]System.Linq.Expressions.MethodCallExpression:GetOrMakeArguments():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]:this\n-       mov      r14, rax\n-       test     r14, r14\n-       je       G_M47184_IG13\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M47184_IG04\n-\t\t\t\t\t\t;; size=55 bbWeight=1 PerfScore 13.75\n-G_M47184_IG03:\n-       lea      rsi, [rbp-0x28]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       mov      r13, rax\n-       jmp      SHORT G_M47184_IG05\n-\t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 5.00\n-G_M47184_IG04:\n-       lea      rdx, [rbp-0x28]\n-       mov      rsi, r14\n\u002B       je       G_M47184_IG10\n\u002B       lea      rdx, [rbp-0x20]\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.Linq.Expressions.Expression](System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.Expression],byref):System.Linq.Expressions.Expression\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      r13, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M47184_IG05:\n-       cmp      byte  ptr [rbp-0x28], 0\n-       je       G_M47184_IG14\n-       mov      rsi, r13\n\u002B       mov      r14, rax\n\u002B       cmp      byte  ptr [rbp-0x20], 0\n\u002B       je       G_M47184_IG11\n\u002B       mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Expressions.ConstantExpression\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       jne      G_M47184_IG10\n-\t\t\t\t\t\t;; size=44 bbWeight=1 PerfScore 7.00\n-G_M47184_IG06:\n-       mov      rsi, r13\n\u002B       jne      G_M47184_IG07\n\u002B\t\t\t\t\t\t;; size=98 bbWeight=1 PerfScore 20.00\n\u002BG_M47184_IG03:\n\u002B       mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Expressions.MemberExpression\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       jne      SHORT G_M47184_IG08\n\u002B       jne      SHORT G_M47184_IG05\n        mov      byte  ptr [r15\u002B0x10], 0\n-       mov      rdi, r13\n-       mov      rax, qword ptr [r13]\n\u002B       mov      rdi, r14\n\u002B       mov      rax, qword ptr [r14]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x08]System.Object:ToString():System.String:this\n        mov      r15d, dword ptr [rbx\u002B0x10]\n        mov      r14, gword ptr [rbx\u002B0x08]\n        mov      edi, dword ptr [r14\u002B0x08]\n        cmp      edi, r15d\n-       ja       SHORT G_M47184_IG07\n\u002B       ja       SHORT G_M47184_IG04\n        mov      rdi, rbx\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Stack\u00601[System.__Canon]:PushWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.Stack\u00601[System.__Canon]:PushWithResize(System.__Canon):this\n-       jmp      G_M47184_IG12\n-\t\t\t\t\t\t;; size=89 bbWeight=0.50 PerfScore 13.12\n-G_M47184_IG07:\n\u002B       jmp      G_M47184_IG09\n\u002B\t\t\t\t\t\t;; size=88 bbWeight=0.50 PerfScore 13.12\n\u002BG_M47184_IG04:\n        mov      edi, r15d\n        lea      rdi, bword ptr [r14\u002B8*rdi\u002B0x10]\n        mov      rsi, rax\n@@ -123,9 \u002B102,9 @@ G_M47184_IG07:\n        inc      dword ptr [rbx\u002B0x14]\n        inc      r15d\n        mov      dword ptr [rbx\u002B0x10], r15d\n-       jmp      G_M47184_IG12\n\u002B       jmp      G_M47184_IG09\n \t\t\t\t\t\t;; size=31 bbWeight=0.50 PerfScore 4.38\n-G_M47184_IG08:\n\u002BG_M47184_IG05:\n        mov      byte  ptr [r15\u002B0x10], 0\n        mov      rdi, rax\n        mov      rax, qword ptr [rax]\n@@ -139,14 \u002B118,14 @@ G_M47184_IG08:\n        mov      r14, gword ptr [rbx\u002B0x08]\n        mov      edi, dword ptr [r14\u002B0x08]\n        cmp      edi, r15d\n-       ja       SHORT G_M47184_IG09\n\u002B       ja       SHORT G_M47184_IG06\n        mov      rdi, rbx\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Stack\u00601[System.__Canon]:PushWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.Stack\u00601[System.__Canon]:PushWithResize(System.__Canon):this\n-       jmp      SHORT G_M47184_IG12\n\u002B       jmp      SHORT G_M47184_IG09\n \t\t\t\t\t\t;; size=68 bbWeight=0.50 PerfScore 14.25\n-G_M47184_IG09:\n\u002BG_M47184_IG06:\n        mov      edi, r15d\n        lea      rdi, bword ptr [r14\u002B8*rdi\u002B0x10]\n        mov      rsi, rax\n@@ -154,9 \u002B133,9 @@ G_M47184_IG09:\n        inc      dword ptr [rbx\u002B0x14]\n        inc      r15d\n        mov      dword ptr [rbx\u002B0x10], r15d\n-       jmp      SHORT G_M47184_IG12\n\u002B       jmp      SHORT G_M47184_IG09\n \t\t\t\t\t\t;; size=28 bbWeight=0.50 PerfScore 4.38\n-G_M47184_IG10:\n\u002BG_M47184_IG07:\n        mov      rdi, gword ptr [rax\u002B0x08]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x40]\n@@ -165,14 \u002B144,14 @@ G_M47184_IG10:\n        mov      r14, gword ptr [rbx\u002B0x08]\n        mov      edi, dword ptr [r14\u002B0x08]\n        cmp      edi, r15d\n-       ja       SHORT G_M47184_IG11\n\u002B       ja       SHORT G_M47184_IG08\n        mov      rdi, rbx\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Stack\u00601[System.__Canon]:PushWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.Stack\u00601[System.__Canon]:PushWithResize(System.__Canon):this\n-       jmp      SHORT G_M47184_IG12\n\u002B       jmp      SHORT G_M47184_IG09\n \t\t\t\t\t\t;; size=51 bbWeight=0.50 PerfScore 11.00\n-G_M47184_IG11:\n\u002BG_M47184_IG08:\n        mov      edi, r15d\n        lea      rdi, bword ptr [r14\u002B8*rdi\u002B0x10]\n        mov      rsi, rax\n@@ -181,26 \u002B160,25 @@ G_M47184_IG11:\n        inc      r15d\n        mov      dword ptr [rbx\u002B0x10], r15d\n \t\t\t\t\t\t;; size=26 bbWeight=0.50 PerfScore 3.38\n-G_M47184_IG12:\n-       add      rsp, 16\n\u002BG_M47184_IG09:\n\u002B       add      rsp, 8\n        pop      rbx\n-       pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n-G_M47184_IG13:\n\u002B\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n\u002BG_M47184_IG10:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M47184_IG14:\n\u002BG_M47184_IG11:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 519, prolog size 23, PerfScore 89.75, instruction count 136, allocated bytes for code 519 (MethodHash=ef9a47af) for method Nest.ToStringExpressionVisitor:VisitConstantOrVariable(System.Linq.Expressions.MethodCallExpression,System.Collections.Generic.Stack\u00601[System.String]):this (FullOpts)\n\u002B; Total bytes of code 456, prolog size 18, PerfScore 81.00, instruction count 120, allocated bytes for code 456 (MethodHash=ef9a47af) for method Nest.ToStringExpressionVisitor:VisitConstantOrVariable(System.Linq.Expressions.MethodCallExpression,System.Collections.Generic.Stack\u00601[System.String]):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":519,"DiffBytes":456},{"Assembly":"NetTopologySuite.IO.SqlServerBytes.dasm","Method":"NetTopologySuite.IO.SqlServerBytesReader:ToGeometry(NetTopologySuite.IO.Serialization.Geography):NetTopologySuite.Geometries.Geometry:this (FullOpts)","Category":"improvement","Description":"3,623 -\u003E 3,570 bytes (-53)","ExtraInfo":null,"Diff":"@@ -14,13 \u002B14,13 @@\n ;  V03 loc1         [V03,T21] (  2, 64.50)   ubyte  -\u003E  r13         single-def\n ;  V04 loc2         [V04,T22] (  2, 64.50)   ubyte  -\u003E  r12         single-def\n ;  V05 loc3         [V05,T33] ( 10, 21   )     ref  -\u003E  [rbp-0xA0]  class-hnd exact spill-single-def \u003CSystem.Collections.Generic.Dictionary\u00602[int,System.Collections.Generic.Stack\u00601[NetTopologySuite.Geometries.Geometry]]\u003E\n-;  V06 loc4         [V06,T94] (  3,  4.50)     int  -\u003E  [rbp-0x2C] \n\u002B;  V06 loc4         [V06,T92] (  3,  4.50)     int  -\u003E  [rbp-0x2C] \n ;  V07 loc5         [V07,T19] (  5, 88.50)     int  -\u003E  [rbp-0x30] \n-;  V08 loc6         [V08,T108] (  2,  1   )     int  -\u003E  rdi        \n\u002B;  V08 loc6         [V08,T107] (  2,  1   )     int  -\u003E  rdi        \n ;  V09 loc7         [V09,T25] (  9, 40   )     ref  -\u003E  [rbp-0xA8]  class-hnd spill-single-def \u003CNetTopologySuite.IO.Serialization.Shape\u003E\n ;  V10 loc8         [V10,T20] ( 10, 74   )     ref  -\u003E  [rbp-0xB0]  class-hnd exact spill-single-def \u003CSystem.Collections.Generic.Stack\u00601[NetTopologySuite.Geometries.CoordinateSequence]\u003E\n ;  V11 loc9         [V11,T40] (  9, 18   )     ref  -\u003E  [rbp-0xB8]  class-hnd \u003CNetTopologySuite.Geometries.Geometry\u003E\n-;  V12 loc10        [V12,T95] (  2,  4   )     int  -\u003E  rdi        \n\u002B;  V12 loc10        [V12,T94] (  2,  4   )     int  -\u003E  rdi        \n ;  V13 loc11        [V13,T14] (  6,120   )     ref  -\u003E  [rbp-0xC0]  class-hnd spill-single-def \u003CNetTopologySuite.IO.Serialization.Figure\u003E\n ;* V14 loc12        [V14    ] (  0,  0   )     int  -\u003E  zero-ref   \n ;  V15 loc13        [V15,T03] (  8,288   )     ref  -\u003E  [rbp-0xC8]  class-hnd spill-single-def \u003CNetTopologySuite.Geometries.CoordinateSequence\u003E\n@@ -28,66 \u002B28,66 @@\n ;  V17 loc15        [V17,T08] (  5,192   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u003CNetTopologySuite.IO.Serialization.Point\u003E\n ;  V18 loc16        [V18,T04] (  5,256   )     int  -\u003E  [rbp-0x34]  spill-single-def\n ;  V19 loc17        [V19,T61] (  4, 10   )     ref  -\u003E  [rbp-0xD8]  class-hnd exact spill-single-def \u003CNetTopologySuite.IO.SqlServerBytesReader\u002B\u003C\u003Ec__DisplayClass22_1\u003E\n-;  V20 loc18        [V20,T45] (  7, 14   )     ref  -\u003E  [rbp-0xE0]  class-hnd spill-single-def \u003CSystem.Collections.Generic.List\u00601[NetTopologySuite.Geometries.LinearRing]\u003E\n-;  V21 loc19        [V21,T79] (  2,  4   )     ref  -\u003E  rsi         ld-addr-op class-hnd \u003CSystem.Collections.Generic.Stack\u00601[NetTopologySuite.Geometries.Geometry]\u003E\n-;  V22 loc20        [V22,T80] (  2,  4   )     ref  -\u003E  rsi         ld-addr-op class-hnd \u003CSystem.Collections.Generic.Stack\u00601[NetTopologySuite.Geometries.Geometry]\u003E\n-;  V23 loc21        [V23,T81] (  2,  4   )     ref  -\u003E  rsi         ld-addr-op class-hnd \u003CSystem.Collections.Generic.Stack\u00601[NetTopologySuite.Geometries.Geometry]\u003E\n-;  V24 loc22        [V24,T82] (  2,  4   )     ref  -\u003E  rdi         ld-addr-op class-hnd \u003CSystem.Collections.Generic.Stack\u00601[NetTopologySuite.Geometries.Geometry]\u003E\n\u002B;  V20 loc18        [V20,T45] (  6, 12   )     ref  -\u003E  [rbp-0xE0]  class-hnd spill-single-def \u003CSystem.Collections.Generic.List\u00601[NetTopologySuite.Geometries.LinearRing]\u003E\n\u002B;  V21 loc19        [V21,T78] (  2,  4   )     ref  -\u003E  rsi         ld-addr-op class-hnd \u003CSystem.Collections.Generic.Stack\u00601[NetTopologySuite.Geometries.Geometry]\u003E\n\u002B;  V22 loc20        [V22,T79] (  2,  4   )     ref  -\u003E  rsi         ld-addr-op class-hnd \u003CSystem.Collections.Generic.Stack\u00601[NetTopologySuite.Geometries.Geometry]\u003E\n\u002B;  V23 loc21        [V23,T80] (  2,  4   )     ref  -\u003E  rsi         ld-addr-op class-hnd \u003CSystem.Collections.Generic.Stack\u00601[NetTopologySuite.Geometries.Geometry]\u003E\n\u002B;  V24 loc22        [V24,T81] (  2,  4   )     ref  -\u003E  rdi         ld-addr-op class-hnd \u003CSystem.Collections.Generic.Stack\u00601[NetTopologySuite.Geometries.Geometry]\u003E\n ;* V25 loc23        [V25    ] (  0,  0   )   ubyte  -\u003E  zero-ref   \n ;* V26 loc24        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CSystem.Func\u00602[NetTopologySuite.Geometries.CoordinateSequence,NetTopologySuite.Geometries.LinearRing]\u003E\n ;# V27 OutArgs      [V27    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V28 tmp1         [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CNetTopologySuite.IO.SqlServerBytesReader\u002B\u003C\u003Ec__DisplayClass22_0\u003E\n ;* V29 tmp2         [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Single-def Box Helper\u0022 \u003CNetTopologySuite.Geometries.Ordinates\u003E\n ;* V30 tmp3         [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Single-def Box Helper\u0022 \u003CNetTopologySuite.Geometries.Ordinates\u003E\n-;  V31 tmp4         [V31,T101] (  2,  2   )     int  -\u003E  rsi         \u0022Enum:HasFlag this temp\u0022\n-;  V32 tmp5         [V32,T104] (  3,  1.50)     int  -\u003E  r13        \n\u002B;  V31 tmp4         [V31,T100] (  2,  2   )     int  -\u003E  rsi         \u0022Enum:HasFlag this temp\u0022\n\u002B;  V32 tmp5         [V32,T103] (  3,  1.50)     int  -\u003E  r13        \n ;* V33 tmp6         [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Single-def Box Helper\u0022 \u003CNetTopologySuite.Geometries.Ordinates\u003E\n ;* V34 tmp7         [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Single-def Box Helper\u0022 \u003CNetTopologySuite.Geometries.Ordinates\u003E\n-;  V35 tmp8         [V35,T102] (  2,  2   )     int  -\u003E  rdi         \u0022Enum:HasFlag this temp\u0022\n-;  V36 tmp9         [V36,T105] (  3,  1.50)     int  -\u003E  r12        \n\u002B;  V35 tmp8         [V35,T101] (  2,  2   )     int  -\u003E  rdi         \u0022Enum:HasFlag this temp\u0022\n\u002B;  V36 tmp9         [V36,T104] (  3,  1.50)     int  -\u003E  r12        \n ;* V37 tmp10        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CNetTopologySuite.NtsGeometryServices\u003E\n-;  V38 tmp11        [V38,T100] (  3,  3   )     ref  -\u003E  [rbp-0xE8]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[int,System.Collections.Generic.Stack\u00601[NetTopologySuite.Geometries.Geometry]]\u003E\n\u002B;  V38 tmp11        [V38,T99] (  3,  3   )     ref  -\u003E  [rbp-0xE8]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[int,System.Collections.Generic.Stack\u00601[NetTopologySuite.Geometries.Geometry]]\u003E\n ;  V39 tmp12        [V39,T28] (  3, 24   )     ref  -\u003E  [rbp-0xF0]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Stack\u00601[NetTopologySuite.Geometries.CoordinateSequence]\u003E\n ;* V40 tmp13        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CNetTopologySuite.IO.SqlServerBytesReader\u002B\u003C\u003Ec__DisplayClass22_1\u003E\n-;  V41 tmp14        [V41,T115] (  2,  0   )     ref  -\u003E  rbx         class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V42 tmp15        [V42,T113] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u0022Single-def Box Helper\u0022 \u003CNetTopologySuite.IO.Serialization.OpenGisType\u003E\n-;  V43 tmp16        [V43,T114] (  3,  0   )     ref  -\u003E  r14         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CNetTopologySuite.IO.ParseException\u003E\n\u002B;  V41 tmp14        [V41,T114] (  2,  0   )     ref  -\u003E  rbx         class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V42 tmp15        [V42,T112] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u0022Single-def Box Helper\u0022 \u003CNetTopologySuite.IO.Serialization.OpenGisType\u003E\n\u002B;  V43 tmp16        [V43,T113] (  3,  0   )     ref  -\u003E  r14         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CNetTopologySuite.IO.ParseException\u003E\n ;  V44 tmp17        [V44,T47] (  3, 12   )     ref  -\u003E  [rbp-0xF8]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CNetTopologySuite.Geometries.GeometryFactory\u003E\n ;* V45 tmp18        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V46 tmp19        [V46    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V47 tmp20        [V47,T83] (  3,  6   )     ref  -\u003E  [rbp-0x100] \n\u002B;  V47 tmp20        [V47,T82] (  3,  6   )     ref  -\u003E  [rbp-0x100] \n ;  V48 tmp21        [V48,T48] (  3, 12   )     ref  -\u003E  [rbp-0x108]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Stack\u00601[NetTopologySuite.Geometries.Geometry]\u003E\n-;  V49 tmp22        [V49,T78] (  2,  8   )     int  -\u003E  [rbp-0x38]  spill-single-def \u0022impAppendStmt\u0022\n\u002B;  V49 tmp22        [V49,T77] (  2,  8   )     int  -\u003E  [rbp-0x38]  spill-single-def \u0022impAppendStmt\u0022\n ;  V50 tmp23        [V50,T49] (  3, 12   )     ref  -\u003E  [rbp-0x110]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CNetTopologySuite.Geometries.GeometryFactory\u003E\n ;* V51 tmp24        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V52 tmp25        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V53 tmp26        [V53,T84] (  3,  6   )     ref  -\u003E  [rbp-0x118] \n\u002B;  V53 tmp26        [V53,T83] (  3,  6   )     ref  -\u003E  [rbp-0x118] \n ;  V54 tmp27        [V54,T50] (  3, 12   )     ref  -\u003E  [rbp-0x120]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CNetTopologySuite.Geometries.GeometryFactory\u003E\n ;* V55 tmp28        [V55    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V56 tmp29        [V56    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V57 tmp30        [V57,T85] (  3,  6   )     ref  -\u003E  [rbp-0x128] \n\u002B;  V57 tmp30        [V57,T84] (  3,  6   )     ref  -\u003E  [rbp-0x128] \n ;  V58 tmp31        [V58,T51] (  3, 12   )     ref  -\u003E  [rbp-0x130]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CNetTopologySuite.Geometries.GeometryFactory\u003E\n ;* V59 tmp32        [V59    ] (  0,  0   )     ref  -\u003E  zero-ref   \n... diff truncated; middle omitted ...\n        cmp      dword ptr [rcx\u002B0x20], 1\n        setle    dil\n@@ -909,16 \u002B895,16 @@ G_M65463_IG62:\n        mov      rax, gword ptr [rbp-0x180]\n        mov      gword ptr [rbp-0xB8], rax\n \t\t\t\t\t\t;; size=70 bbWeight=2 PerfScore 25.50\n-G_M65463_IG63:\n\u002BG_M65463_IG62:\n        mov      rcx, gword ptr [rbp-0xA8]\n        mov      esi, dword ptr [rcx\u002B0x08]\n        mov      rdi, gword ptr [rbp-0xA0]\n        mov      rdx, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary\u00602[int,System.__Canon]:FindValue(int):byref:this\n        call     [rdx]System.Collections.Generic.Dictionary\u00602[int,System.__Canon]:FindValue(int):byref:this\n        test     rax, rax\n-       jne      SHORT G_M65463_IG66\n\u002B       jne      SHORT G_M65463_IG65\n \t\t\t\t\t\t;; size=34 bbWeight=4 PerfScore 34.00\n-G_M65463_IG64:\n\u002BG_M65463_IG63:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.Stack\u00601[NetTopologySuite.Geometries.Geometry]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x108], rax\n@@ -927,9 \u002B913,9 @@ G_M65463_IG64:\n        mov      dword ptr [rbp-0x38], edx\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M65463_IG75\n\u002B       je       G_M65463_IG74\n \t\t\t\t\t\t;; size=54 bbWeight=2 PerfScore 19.00\n-G_M65463_IG65:\n\u002BG_M65463_IG64:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Array\u002BEmptyArray\u00601[NetTopologySuite.Geometries.Geometry]:Value\n        mov      rsi, gword ptr [rdi]\n        mov      rax, gword ptr [rbp-0x108]\n@@ -942,7 \u002B928,7 @@ G_M65463_IG65:\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary\u00602[int,System.__Canon]:TryInsert(int,System.__Canon,byte):bool:this\n        call     [rax]System.Collections.Generic.Dictionary\u00602[int,System.__Canon]:TryInsert(int,System.__Canon,byte):bool:this\n \t\t\t\t\t\t;; size=63 bbWeight=2 PerfScore 22.50\n-G_M65463_IG66:\n\u002BG_M65463_IG65:\n        mov      rax, gword ptr [rbp-0xA8]\n        mov      eax, dword ptr [rax\u002B0x08]\n        mov      dword ptr [rbp-0x64], eax\n@@ -951,23 \u002B937,23 @@ G_M65463_IG66:\n        mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary\u00602[int,System.__Canon]:FindValue(int):byref:this\n        call     [rcx]System.Collections.Generic.Dictionary\u00602[int,System.__Canon]:FindValue(int):byref:this\n        test     rax, rax\n-       je       G_M65463_IG79\n\u002B       je       G_M65463_IG78\n        mov      rax, gword ptr [rax]\n        mov      gword ptr [rbp-0x1C0], rax\n        mov      ecx, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x68], ecx\n        mov      rdi, gword ptr [rax\u002B0x08]\n        cmp      dword ptr [rdi\u002B0x08], ecx\n-       ja       SHORT G_M65463_IG68\n\u002B       ja       SHORT G_M65463_IG67\n \t\t\t\t\t\t;; size=68 bbWeight=4 PerfScore 83.00\n-G_M65463_IG67:\n\u002BG_M65463_IG66:\n        mov      rdi, rax\n        mov      rsi, gword ptr [rbp-0xB8]\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Stack\u00601[System.__Canon]:PushWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.Stack\u00601[System.__Canon]:PushWithResize(System.__Canon):this\n-       jmp      SHORT G_M65463_IG69\n\u002B       jmp      SHORT G_M65463_IG68\n \t\t\t\t\t\t;; size=24 bbWeight=2 PerfScore 13.00\n-G_M65463_IG68:\n\u002BG_M65463_IG67:\n        mov      esi, ecx\n        mov      rdx, gword ptr [rbp-0xB8]\n        mov      r8, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST\n@@ -978,28 \u002B964,28 @@ G_M65463_IG68:\n        inc      ecx\n        mov      dword ptr [rdi\u002B0x10], ecx\n \t\t\t\t\t\t;; size=40 bbWeight=2 PerfScore 21.50\n-G_M65463_IG69:\n\u002BG_M65463_IG68:\n        mov      rdi, qword ptr [rbp-0x88]\n        dec      edi\n        mov      rsi, rdi\n        jns      G_M65463_IG08\n \t\t\t\t\t\t;; size=18 bbWeight=4 PerfScore 10.00\n-G_M65463_IG70:\n\u002BG_M65463_IG69:\n        mov      rdi, gword ptr [rbp-0xA0]\n        mov      esi, -1\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary\u00602[int,System.__Canon]:FindValue(int):byref:this\n        call     [rax]System.Collections.Generic.Dictionary\u00602[int,System.__Canon]:FindValue(int):byref:this\n        test     rax, rax\n-       je       G_M65463_IG80\n\u002B       je       G_M65463_IG79\n        mov      rsi, gword ptr [rax]\n        lea      rdx, [rbp-0x70]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetSingle[NetTopologySuite.Geometries.Geometry](System.Collections.Generic.IEnumerable\u00601[NetTopologySuite.Geometries.Geometry],byref):NetTopologySuite.Geometries.Geometry\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetSingle[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetSingle[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        cmp      byte  ptr [rbp-0x70], 0\n-       je       G_M65463_IG81\n\u002B       je       G_M65463_IG80\n \t\t\t\t\t\t;; size=72 bbWeight=0.50 PerfScore 6.88\n-G_M65463_IG71:\n\u002BG_M65463_IG70:\n        add      rsp, 424\n        pop      rbx\n        pop      r12\n@@ -1009,10 \u002B995,10 @@ G_M65463_IG71:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M65463_IG72:\n\u002BG_M65463_IG71:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M65463_IG73:\n\u002BG_M65463_IG72:\n        add      rsp, 424\n        pop      rbx\n        pop      r12\n@@ -1022,24 \u002B1008,24 @@ G_M65463_IG73:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M65463_IG74:\n\u002BG_M65463_IG73:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[NetTopologySuite.Geometries.CoordinateSequence]\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rcx]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M65463_IG09\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M65463_IG75:\n\u002BG_M65463_IG74:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[NetTopologySuite.Geometries.Geometry]\n        mov      rsi, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rsi]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M65463_IG65\n\u002B       jmp      G_M65463_IG64\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M65463_IG76:\n\u002BG_M65463_IG75:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M65463_IG77:\n\u002BG_M65463_IG76:\n        mov      rax, 0xD1FFAB1E      ; code for NetTopologySuite.IO.Properties.Resources:get_UnexpectedGeographyType():System.String\n        call     [rax]NetTopologySuite.IO.Properties.Resources:get_UnexpectedGeographyType():System.String\n        mov      rbx, rax\n@@ -1064,35 \u002B1050,35 @@ G_M65463_IG77:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=112 bbWeight=0 PerfScore 0.00\n-G_M65463_IG78:\n\u002BG_M65463_IG77:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M65463_IG79:\n\u002BG_M65463_IG78:\n        mov      edi, dword ptr [rbp-0x64]\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowKeyNotFoundException[int](int)\n        call     [rax]System.ThrowHelper:ThrowKeyNotFoundException[int](int)\n        int3     \n \t\t\t\t\t\t;; size=16 bbWeight=0 PerfScore 0.00\n-G_M65463_IG80:\n\u002BG_M65463_IG79:\n        mov      edi, -1\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowKeyNotFoundException[int](int)\n        call     [rax]System.ThrowHelper:ThrowKeyNotFoundException[int](int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M65463_IG81:\n\u002BG_M65463_IG80:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M65463_IG82:\n\u002BG_M65463_IG81:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n-RWD00  \tdd\tG_M65463_IG61 - G_M65463_IG02\n-       \tdd\tG_M65463_IG60 - G_M65463_IG02\n\u002BRWD00  \tdd\tG_M65463_IG60 - G_M65463_IG02\n\u002B       \tdd\tG_M65463_IG59 - G_M65463_IG02\n        \tdd\tG_M65463_IG52 - G_M65463_IG02\n        \tdd\tG_M65463_IG48 - G_M65463_IG02\n        \tdd\tG_M65463_IG45 - G_M65463_IG02\n@@ -1100,5 \u002B1086,5 @@ RWD00  \tdd\tG_M65463_IG61 - G_M65463_IG02\n        \tdd\tG_M65463_IG39 - G_M65463_IG02\n \n \n-; Total bytes of code 3623, prolog size 40, PerfScore 7749.96, instruction count 730, allocated bytes for code 3623 (MethodHash=f4f80048) for method NetTopologySuite.IO.SqlServerBytesReader:ToGeometry(NetTopologySuite.IO.Serialization.Geography):NetTopologySuite.Geometries.Geometry:this (FullOpts)\n\u002B; Total bytes of code 3570, prolog size 40, PerfScore 7718.96, instruction count 718, allocated bytes for code 3570 (MethodHash=f4f80048) for method NetTopologySuite.IO.SqlServerBytesReader:ToGeometry(NetTopologySuite.IO.Serialization.Geography):NetTopologySuite.Geometries.Geometry:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":3623,"DiffBytes":3570},{"Assembly":"OpenAI.dasm","Method":"OpenAI.Embeddings.EmbeddingClient:GenerateEmbedding(System.String,OpenAI.Embeddings.EmbeddingGenerationOptions,System.Threading.CancellationToken):System.ClientModel.ClientResult\u00601[OpenAI.Embeddings.OpenAIEmbedding]:this (FullOpts)","Category":"improvement","Description":"452 -\u003E 400 bytes (-52)","ExtraInfo":null,"Diff":"@@ -9,26 \u002B9,26 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T01] (  5,  5   )     ref  -\u003E  rbx         this class-hnd single-def \u003COpenAI.Embeddings.EmbeddingClient\u003E\n-;  V01 arg1         [V01,T03] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V01 arg1         [V01,T02] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.String\u003E\n ;  V02 arg2         [V02    ] (  6,  5.50)     ref  -\u003E  [rbp-0x30]  do-not-enreg[X] addr-exposed ld-addr-op class-hnd \u003COpenAI.Embeddings.EmbeddingGenerationOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V04 loc0         [V04,T14] (  3,  0   )     ref  -\u003E  [rbp-0x40]  class-hnd exact EH-live single-def \u003CSystem.ClientModel.BinaryContent\u002BModelBinaryContent\u00601[OpenAI.Embeddings.EmbeddingGenerationOptions]\u003E\n-;  V05 loc1         [V05,T09] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u003E\n-;  V06 loc2         [V06,T12] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u00601[OpenAI.Embeddings.OpenAIEmbedding]\u003E\n\u002B;  V04 loc0         [V04,T13] (  3,  0   )     ref  -\u003E  [rbp-0x40]  class-hnd exact EH-live single-def \u003CSystem.ClientModel.BinaryContent\u002BModelBinaryContent\u00601[OpenAI.Embeddings.EmbeddingGenerationOptions]\u003E\n\u002B;  V05 loc1         [V05,T08] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u003E\n\u002B;  V06 loc2         [V06,T10] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u00601[OpenAI.Embeddings.OpenAIEmbedding]\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V08 tmp1         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003COpenAI.Embeddings.OpenAIEmbedding\u003E\n ;* V09 tmp2         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003COpenAI.Embeddings.EmbeddingGenerationOptions\u003E\n-;  V10 tmp3         [V10,T04] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Embeddings.EmbeddingGenerationOptions\u003E\n\u002B;  V10 tmp3         [V10,T03] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Embeddings.EmbeddingGenerationOptions\u003E\n ;  V11 tmp4         [V11,T05] (  2,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.ClientModel.Primitives.ModelReaderWriterOptions\u003E\n ;* V12 tmp5         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V13 tmp6         [V13,T13] (  2,  2   )     ref  -\u003E  r13        \n\u002B;  V13 tmp6         [V13,T11] (  2,  2   )     ref  -\u003E  r13        \n ;  V14 tmp7         [V14,T00] (  6, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ClientModel.BinaryContent\u002BModelBinaryContent\u00601[OpenAI.Embeddings.EmbeddingGenerationOptions]\u003E\n ;* V15 tmp8         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V16 tmp9         [V16,T02] (  4,  7   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Embeddings.OpenAIEmbeddingCollection\u003E\n-;  V17 tmp10        [V17    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V18 tmp11        [V18,T11] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003COpenAI.Embeddings.OpenAIEmbedding\u003E\n-;  V19 tmp12        [V19,T08] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[OpenAI.Embeddings.OpenAIEmbedding]\u003E\n-;  V20 tmp13        [V20,T10] (  6,  2.50)     ref  -\u003E  registers   class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.ClientModel.Internal.UnsafeBufferSequence\u002BReader\u003E\n\u002B;  V16 tmp9         [V16,T04] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Embeddings.OpenAIEmbeddingCollection\u003E\n\u002B;  V17 tmp10        [V17    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V18 tmp11        [V18,T12] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003COpenAI.Embeddings.OpenAIEmbedding\u003E\n\u002B;* V19 tmp12        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[OpenAI.Embeddings.OpenAIEmbedding]\u003E\n\u002B;  V20 tmp13        [V20,T09] (  6,  2.50)     ref  -\u003E  registers   class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.ClientModel.Internal.UnsafeBufferSequence\u002BReader\u003E\n ;  V21 tmp14        [V21,T06] (  2,  2   )     ref  -\u003E  r14         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n ;  V22 tmp15        [V22,T07] (  2,  4   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n ;\n@@ -97,61 \u002B97,42 @@ G_M26866_IG05:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for OpenAI.Embeddings.OpenAIEmbeddingCollection:op_Explicit(System.ClientModel.ClientResult):OpenAI.Embeddings.OpenAIEmbeddingCollection\n        call     [rax]OpenAI.Embeddings.OpenAIEmbeddingCollection:op_Explicit(System.ClientModel.ClientResult):OpenAI.Embeddings.OpenAIEmbeddingCollection\n-       mov      r15, rax\n-       test     r15, r15\n-       je       SHORT G_M26866_IG09\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[OpenAI.Embeddings.OpenAIEmbedding]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M26866_IG07\n-\t\t\t\t\t\t;; size=90 bbWeight=1 PerfScore 21.50\n-G_M26866_IG06:\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M26866_IG08\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M26866_IG07:\n\u002B       je       SHORT G_M26866_IG06\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[OpenAI.Embeddings.OpenAIEmbedding](System.Collections.Generic.IEnumerable\u00601[OpenAI.Embeddings.OpenAIEmbedding],byref):OpenAI.Embeddings.OpenAIEmbedding\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M26866_IG08:\n-       mov      rdx, gword ptr [rbx\u002B0x08]\n        mov      rsi, rax\n\u002B       mov      rdx, gword ptr [rbx\u002B0x08]\n        mov      rdi, 0xD1FFAB1E      ; System.ClientModel.ClientResult:FromValue[OpenAI.Embeddings.OpenAIEmbedding](OpenAI.Embeddings.OpenAIEmbedding,System.ClientModel.Primitives.PipelineResponse):System.ClientModel.ClientResult\u00601[OpenAI.Embeddings.OpenAIEmbedding]\n        mov      rax, 0xD1FFAB1E      ; code for System.ClientModel.ClientResult:FromValue[System.__Canon](System.__Canon,System.ClientModel.Primitives.PipelineResponse):System.ClientModel.ClientResult\u00601[System.__Canon]\n        call     [rax]System.ClientModel.ClientResult:FromValue[System.__Canon](System.__Canon,System.ClientModel.Primitives.PipelineResponse):System.ClientModel.ClientResult\u00601[System.__Canon]\n        mov      rbx, rax\n-       jmp      SHORT G_M26866_IG10\n-\t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 8.00\n-G_M26866_IG09:\n\u002B       jmp      SHORT G_M26866_IG07\n\u002B\t\t\t\t\t\t;; size=120 bbWeight=1 PerfScore 28.50\n\u002BG_M26866_IG06:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M26866_IG10:\n\u002BG_M26866_IG07:\n        mov      rdi, gword ptr [r12\u002B0x20]\n        test     rdi, rdi\n-       je       SHORT G_M26866_IG12\n\u002B       je       SHORT G_M26866_IG09\n \t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.25\n-G_M26866_IG11:\n\u002BG_M26866_IG08:\n        xor      rax, rax\n        mov      gword ptr [r12\u002B0x20], rax\n        mov      rax, 0xD1FFAB1E      ; code for System.ClientModel.Internal.UnsafeBufferSequence\u002BReader:Dispose():this\n        call     [rax]System.ClientModel.Internal.UnsafeBufferSequence\u002BReader:Dispose():this\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 2.25\n-G_M26866_IG12:\n\u002BG_M26866_IG09:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M26866_IG13:\n\u002BG_M26866_IG10:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -161,27 \u002B142,27 @@ G_M26866_IG13:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M26866_IG14:\n\u002BG_M26866_IG11:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M26866_IG15:\n\u002BG_M26866_IG12:\n        mov      rdi, gword ptr [rbp-0x40]\n        mov      rax, gword ptr [rdi\u002B0x20]\n        test     rax, rax\n-       je       SHORT G_M26866_IG16\n\u002B       je       SHORT G_M26866_IG13\n        xor      rcx, rcx\n        mov      gword ptr [rdi\u002B0x20], rcx\n        mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for System.ClientModel.Internal.UnsafeBufferSequence\u002BReader:Dispose():this\n        call     [rax]System.ClientModel.Internal.UnsafeBufferSequence\u002BReader:Dispose():this\n \t\t\t\t\t\t;; size=34 bbWeight=0 PerfScore 0.00\n-G_M26866_IG16:\n\u002BG_M26866_IG13:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M26866_IG17:\n\u002BG_M26866_IG14:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 452, prolog size 38, PerfScore 79.12, instruction count 114, allocated bytes for code 452 (MethodHash=d554970d) for method OpenAI.Embeddings.EmbeddingClient:GenerateEmbedding(System.String,OpenAI.Embeddings.EmbeddingGenerationOptions,System.Threading.CancellationToken):System.ClientModel.ClientResult\u00601[OpenAI.Embeddings.OpenAIEmbedding]:this (FullOpts)\n\u002B; Total bytes of code 400, prolog size 38, PerfScore 71.12, instruction count 101, allocated bytes for code 400 (MethodHash=d554970d) for method OpenAI.Embeddings.EmbeddingClient:GenerateEmbedding(System.String,OpenAI.Embeddings.EmbeddingGenerationOptions,System.Threading.CancellationToken):System.ClientModel.ClientResult\u00601[OpenAI.Embeddings.OpenAIEmbedding]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":452,"DiffBytes":400},{"Assembly":"Pipelines.Sockets.Unofficial.dasm","Method":"Pipelines.Sockets.Unofficial.Threading.MutexSlim\u002BSyncPendingLockToken:GetPerThreadLockObject():Pipelines.Sockets.Unofficial.Threading.MutexSlim\u002BSyncPendingLockToken (FullOpts)","Category":"same-size","Description":"118 -\u003E 118 bytes (0)","ExtraInfo":null,"Diff":"@@ -1,68 \u002B1,68 @@\n ; Assembly listing for method Pipelines.Sockets.Unofficial.Threading.MutexSlim\u002BSyncPendingLockToken:GetPerThreadLockObject():Pipelines.Sockets.Unofficial.Threading.MutexSlim\u002BSyncPendingLockToken (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;# V00 OutArgs      [V00    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V01 tmp1         [V01,T03] (  2,  4   )     ref  -\u003E  rax         class-hnd exact single-def \u0022dup spill\u0022 \u003CPipelines.Sockets.Unofficial.Threading.MutexSlim\u002BSyncPendingLockToken\u003E\n ;  V02 tmp2         [V02,T04] (  4,  3.50)     ref  -\u003E  rax        \n ;  V03 tmp3         [V03,T05] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CPipelines.Sockets.Unofficial.Threading.MutexSlim\u002BSyncPendingLockToken\u003E\n ;  V04 cse0         [V04,T06] (  3,  2.50)   byref  -\u003E  rbx         \u0022CSE #01: aggressive\u0022\n ;  V05 rat0         [V05,T02] (  3,  4   )   byref  -\u003E  rbx         \u0022TLS field access\u0022\n ;  V06 rat1         [V06,T01] (  3,  6   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;  V07 rat2         [V07,T00] (  3,  6   )   byref  -\u003E  rbx         \u0022ThreadStaticBlockBase access\u0022\n ;\n ; Lcl frame size = 0\n \n G_M13210_IG01:\n        push     rbp\n        push     r15\n        push     rbx\n        lea      rbp, [rsp\u002B0x10]\n \t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.50\n G_M13210_IG02:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       cmp      dword ptr [rax], 13\n\u002B       cmp      dword ptr [rax], 12\n        jle      SHORT G_M13210_IG06\n        mov      rdi, gword ptr [rax\u002B0x08]\n-       mov      rbx, bword ptr [rdi\u002B0x68]\n\u002B       mov      rbx, bword ptr [rdi\u002B0x60]\n        test     rbx, rbx\n        je       SHORT G_M13210_IG06\n \t\t\t\t\t\t;; size=40 bbWeight=1 PerfScore 11.75\n G_M13210_IG03:\n        mov      rax, gword ptr [rbx\u002B0x10]\n        test     rax, rax\n        jne      SHORT G_M13210_IG05\n \t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.25\n G_M13210_IG04:\n        mov      rdi, 0xD1FFAB1E      ; Pipelines.Sockets.Unofficial.Threading.MutexSlim\u002BSyncPendingLockToken\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        lea      rdi, bword ptr [rbx\u002B0x10]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rax, r15\n \t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 1.75\n G_M13210_IG05:\n        pop      rbx\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 2.50\n G_M13210_IG06:\n-       mov      edi, 13\n\u002B       mov      edi, 12\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED\n        call     [rax]CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED\n        mov      rbx, rax\n        jmp      SHORT G_M13210_IG03\n \t\t\t\t\t\t;; size=22 bbWeight=0 PerfScore 0.00\n \n ; Total bytes of code 118, prolog size 9, PerfScore 22.75, instruction count 32, allocated bytes for code 118 (MethodHash=998acc65) for method Pipelines.Sockets.Unofficial.Threading.MutexSlim\u002BSyncPendingLockToken:GetPerThreadLockObject():Pipelines.Sockets.Unofficial.Threading.MutexSlim\u002BSyncPendingLockToken (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":118,"DiffBytes":118},{"Assembly":"Pomelo.EntityFrameworkCore.MySql.dasm","Method":"Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitIn(Microsoft.EntityFrameworkCore.Query.SqlExpressions.InExpression):System.Linq.Expressions.Expression:this (FullOpts)","Category":"improvement","Description":"855 -\u003E 656 bytes (-199)","ExtraInfo":null,"Diff":"@@ -8,53 \u002B8,47 @@\n ; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T05] ( 14, 19.50)     ref  -\u003E  rbx         this class-hnd single-def \u003CPomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor\u003E\n\u002B;  V00 this         [V00,T05] ( 12, 18   )     ref  -\u003E  rbx         this class-hnd single-def \u003CPomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor\u003E\n ;  V01 arg1         [V01,T08] (  8,  8   )     ref  -\u003E  r15         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.InExpression\u003E\n-;  V02 loc0         [V02,T35] (  2,  2   )   ubyte  -\u003E  r14         single-def\n-;  V03 loc1         [V03,T28] (  2,  2   )     ref  -\u003E  [rbp-0x50]  class-hnd spill-single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\u003E\n-;  V04 loc2         [V04,T29] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression\u003E\n\u002B;  V02 loc0         [V02,T30] (  2,  2   )   ubyte  -\u003E  r14         single-def\n\u002B;  V03 loc1         [V03,T27] (  2,  2   )     ref  -\u003E  [rbp-0x50]  class-hnd spill-single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\u003E\n\u002B;  V04 loc2         [V04,T28] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression\u003E\n ;  V05 loc3         [V05,T03] (  8, 29.50)     ref  -\u003E  [rbp-0x58]  class-hnd spill-single-def \u003CSystem.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression]\u003E\n ;  V06 loc4         [V06,T04] (  7, 28   )     ref  -\u003E  [rbp-0x60]  class-hnd \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression[]\u003E\n-;  V07 loc5         [V07,T30] (  2,  2   )     ref  -\u003E   r8         class-hnd exact single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlParameterExpression\u003E\n\u002B;  V07 loc5         [V07,T29] (  2,  2   )     ref  -\u003E   r8         class-hnd exact single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlParameterExpression\u003E\n ;  V08 loc6         [V08,T02] (  8, 36.50)     int  -\u003E  [rbp-0x2C] \n ;  V09 loc7         [V09,T07] (  3, 12   )     ref  -\u003E  [rbp-0x68]  class-hnd spill-single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\u003E\n ;  V10 loc8         [V10,T09] (  3, 10   )     ref  -\u003E  [rbp-0x70]  class-hnd spill-single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\u003E\n-;* V11 loc9         [V11,T36] (  0,  0   )     int  -\u003E  zero-ref   \n\u002B;* V11 loc9         [V11,T31] (  0,  0   )     int  -\u003E  zero-ref   \n ;* V12 loc10        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression[]\u003E\n ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V14 tmp1         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V15 tmp2         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V16 tmp3         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V17 tmp4         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V18 tmp5         [V18,T14] (  5,  5   )     ref  -\u003E  rcx        \n\u002B;  V18 tmp5         [V18,T13] (  5,  5   )     ref  -\u003E  rcx        \n ;* V19 tmp6         [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression[]\u003E\n-;* V20 tmp7         [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;* V21 tmp8         [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CPomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor\u003E\n-;  V22 tmp9         [V22,T10] (  8,  9   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.InExpression\u003E\n-;  V23 tmp10        [V23,T22] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Boolean\u003E\n-;  V24 tmp11        [V24,T31] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u0022impImportAndPushBox\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.ISqlExpressionFactory\u003E\n-;  V25 tmp12        [V25,T32] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022impImportAndPushBox\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.ISqlExpressionFactory\u003E\n-;  V26 tmp13        [V26,T18] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V27 tmp14        [V27,T19] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V28 tmp15        [V28,T20] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V29 tmp16        [V29,T16] (  3,  4   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n-;  V30 tmp17        [V30,T06] (  2, 16   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n-;  V31 tmp18        [V31,T11] (  2,  8   )    long  -\u003E  rsi         \u0022argument with side effect\u0022\n-;  V32 tmp19        [V32,T01] (  2, 64   )     ref  -\u003E  rdx         \u0022argument with side effect\u0022\n-;  V33 tmp20        [V33,T21] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V34 tmp21        [V34,T17] (  3,  4   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n-;  V35 tmp22        [V35,T33] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V36 tmp23        [V36,T34] (  2,  2   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V37 cse0         [V37,T23] (  3,  3   )    long  -\u003E  r12         \u0022CSE #02: moderate\u0022\n-;  V38 cse1         [V38,T24] (  3,  3   )    long  -\u003E  [rbp-0x38]  spill-single-def \u0022CSE #04: moderate\u0022\n-;  V39 cse2         [V39,T25] (  3,  3   )    long  -\u003E  [rbp-0x40]  spill-single-def \u0022CSE #05: moderate\u0022\n-;  V40 cse3         [V40,T37] (  3,  1.50)     ref  -\u003E  rdi         \u0022CSE #07: conservative\u0022\n-;  V41 cse4         [V41,T15] (  4,  4   )    long  -\u003E  r13         \u0022CSE #01: moderate\u0022\n-;  V42 rat0         [V42,T00] (  6, 82   )    long  -\u003E  [rbp-0x48]  \u0022Widened IV V11\u0022\n-;  V43 rat1         [V43,T12] (  4,  7   )     ref  -\u003E  r12         \u0022replacement local\u0022\n-;  V44 rat2         [V44,T26] (  3,  2   )    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n-;  V45 rat3         [V45,T13] (  4,  7   )     ref  -\u003E   r8         \u0022replacement local\u0022\n-;  V46 rat4         [V46,T27] (  3,  2   )    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n\u002B;* V20 tmp7         [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.InExpression\u003E\n\u002B;* V21 tmp8         [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CPomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor\u003E\n\u002B;  V22 tmp9         [V22,T17] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.InExpression\u003E\n\u002B;  V23 tmp10        [V23,T18] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V24 tmp11        [V24,T19] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V25 tmp12        [V25,T20] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V26 tmp13        [V26,T15] (  3,  4   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n\u002B;  V27 tmp14        [V27,T06] (  2, 16   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n\u002B;  V28 tmp15        [V28,T10] (  2,  8   )    long  -\u003E  rsi         \u0022argument with side effect\u0022\n\u002B;  V29 tmp16        [V29,T01] (  2, 64   )     ref  -\u003E  rdx         \u0022argument with side effect\u0022\n\u002B;  V30 tmp17        [V30,T21] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V31 tmp18        [V31,T16] (  3,  4   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n\u002B;  V32 cse0         [V32,T22] (  3,  3   )    long  -\u003E  r12         \u0022CSE #02: moderate\u0022\n\u002B;  V33 cse1         [V33,T23] (  3,  3   )    long  -\u003E  [rbp-0x38]  spill-single-def \u0022CSE #04: moderate\u0022\n\u002B;  V34 cse2         [V34,T24] (  3,  3   )    long  -\u003E  [rbp-0x40]  spill-single-def \u0022CSE #05: moderate\u0022\n\u002B;  V35 cse3         [V35,T14] (  4,  4   )    long  -\u003E  r13         \u0022CSE #01: moderate\u0022\n\u002B;  V36 rat0         [V36,T00] (  6, 82   )    long  -\u003E  [rbp-0x48]  \u0022Widened IV V11\u0022\n\u002B;  V37 rat1         [V37,T11] (  4,  7   )     ref  -\u003E  r12         \u0022replacement local\u0022\n\u002B;  V38 rat2         [V38,T25] (  3,  2   )    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n\u002B;  V39 rat3         [V39,T12] (  4,  7   )     ref  -\u003E   r8         \u0022replacement local\u0022\n\u002B;  V40 rat4         [V40,T26] (  3,  2   )    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n ;\n ; Lcl frame size = 72\n \n@@ -101,7 \u002B95,7 @@ G_M42511_IG02:\n G_M42511_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression\n        cmp      qword ptr [r12], rdi\n-       jne      G_M42511_IG27\n\u002B       jne      G_M42511_IG23\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 1.62\n G_M42511_IG04:\n        mov      rdi, r15\n@@ -243,52 \u002B237,22 @@ G_M42511_IG19:\n G_M42511_IG20:\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlParameterExpression\n        cmp      qword ptr [r8], rdi\n-       jne      G_M42511_IG28\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n\u002B       jne      SHORT G_M42511_IG24\n\u002B\t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 1.62\n G_M42511_IG21:\n        mov      byte  ptr [rbx\u002B0x10], r14b\n-       mov      r14, gword ptr [rbp-0x60]\n-       mov      rcx, r14\n\u002B       mov      rbx, gword ptr [rbp-0x60]\n\u002B       mov      rcx, rbx\n        test     rcx, rcx\n        cmove    rcx, gword ptr [rbp-0x58]\n        mov      rdi, r15\n        mov      rsi, gword ptr [rbp-0x50]\n        mov      rdx, r12\n-       mov      r15, qword ptr [rbp-0x40]\n-       call     [r15\u002B0x30]Microsoft.EntityFrameworkCore.Query.SqlExpressions.InExpression:Update(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression,System.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression],Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlParameterExpression):Microsoft.EntityFrameworkCore.Query.SqlExpressions.InExpression:this\n-       mov      r15, rax\n-       cmp      byte  ptr [rbx\u002B0x10], 0\n-       je       SHORT G_M42511_IG23\n-\t\t\t\t\t\t;; size=46 bbWeight=1 PerfScore 12.25\n\u002B       mov      rbx, qword ptr [rbp-0x40]\n\u002B       call     [rbx\u002B0x30]Microsoft.EntityFrameworkCore.Query.SqlExpressions.InExpression:Update(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression,System.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression],Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlParameterExpression):Microsoft.EntityFrameworkCore.Query.SqlExpressions.InExpression:this\n\u002B       nop      \n\u002B\t\t\t\t\t\t;; size=37 bbWeight=1 PerfScore 9.25\n G_M42511_IG22:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Microsoft.EntityFrameworkCore.Query.SqlExpressions.ColumnExpression\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M42511_IG23\n-       mov      rdi, r15\n-       mov      rax, qword ptr [r15]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-       call     [rax\u002B0x10]Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:get_TypeMapping():Microsoft.EntityFrameworkCore.Storage.RelationalTypeMapping:this\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; Pomelo.EntityFrameworkCore.MySql.Storage.Internal.MySqlBoolTypeMapping\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M42511_IG23\n-       mov      rdi, r15\n-       mov      rax, qword ptr [r15]\n-       mov      rax, qword ptr [rax\u002B0x40]\n-       call     [rax\u002B0x28]System.Linq.Expressions.Expression:get_Type():System.Type:this\n-       mov      rdi, 0xD1FFAB1E      ; \u0027System.Boolean\u0027\n-       cmp      rax, rdi\n-       je       SHORT G_M42511_IG25\n-\t\t\t\t\t\t;; size=101 bbWeight=0.50 PerfScore 13.00\n-G_M42511_IG23:\n-       mov      rax, r15\n-\t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M42511_IG24:\n        add      rsp, 72\n        pop      rbx\n        pop      r12\n@@ -297,45 \u002B261,19 @@ G_M42511_IG24:\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M42511_IG25:\n-       mov      rdi, 0xD1FFAB1E      ; System.Boolean\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      rdi, gword ptr [rbx\u002B0x08]\n-       mov      rbx, rdi\n-       mov      byte  ptr [rax\u002B0x08], 1\n-       mov      rsi, rax\n-       mov      r11, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Constant(System.Object,Microsoft.EntityFrameworkCore.Storage.RelationalTypeMapping):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-       xor      rdx, rdx\n-       call     [r11]Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Constant(System.Object,Microsoft.EntityFrameworkCore.Storage.RelationalTypeMapping):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-       mov      rdx, rax\n-       mov      rdi, rbx\n-       mov      rsi, r15\n-       mov      r11, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Equal(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-       cmp      dword ptr [rdi], edi\n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 5.62\n-G_M42511_IG26:\n-       add      rsp, 72\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [r11]Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Equal(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M42511_IG27:\n\u002B\t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n\u002BG_M42511_IG23:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rax]CORINFO_HELP_CHKCASTCLASS\n        int3     \n \t\t\t\t\t\t;; size=16 bbWeight=0 PerfScore 0.00\n-G_M42511_IG28:\n\u002BG_M42511_IG24:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rax]CORINFO_HELP_CHKCASTCLASS\n        int3     \n \t\t\t\t\t\t;; size=16 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 855, prolog size 19, PerfScore 534.00, instruction count 222, allocated bytes for code 855 (MethodHash=4ac059f0) for method Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitIn(Microsoft.EntityFrameworkCore.Query.SqlExpressions.InExpression):System.Linq.Expressions.Expression:this (FullOpts)\n\u002B; Total bytes of code 656, prolog size 19, PerfScore 511.75, instruction count 174, allocated bytes for code 656 (MethodHash=4ac059f0) for method Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitIn(Microsoft.EntityFrameworkCore.Query.SqlExpressions.InExpression):System.Linq.Expressions.Expression:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":855,"DiffBytes":656},{"Assembly":"Selenium.WebDriver.dasm","Method":"OpenQA.Selenium.JavaScriptEngine:OnScriptBindingCalled(System.Object,OpenQA.Selenium.DevTools.BindingCalledEventArgs):this (FullOpts)","Category":"improvement","Description":"755 -\u003E 703 bytes (-52)","ExtraInfo":null,"Diff":"@@ -12,44 \u002B12,44 @@\n ;* V01 arg1         [V01    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Object\u003E\n ;  V02 arg2         [V02,T02] (  6,  4.50)     ref  -\u003E  r15         class-hnd single-def \u003COpenQA.Selenium.DevTools.BindingCalledEventArgs\u003E\n ;* V03 loc0         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003COpenQA.Selenium.DomMutationData\u003E\n-;  V04 loc1         [V04,T22] (  2,  1   )     ref  -\u003E  rsi         class-hnd single-def \u003COpenQA.Selenium.By\u003E\n\u002B;  V04 loc1         [V04,T20] (  2,  1   )     ref  -\u003E  rsi         class-hnd single-def \u003COpenQA.Selenium.By\u003E\n ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V06 tmp1         [V06,T04] (  4,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.EventHandler\u00601[OpenQA.Selenium.JavaScriptCallbackExecutedEventArgs]\u003E\n ;* V07 tmp2         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V08 tmp3         [V08,T14] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V08 tmp3         [V08,T13] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n ;  V09 tmp4         [V09,T06] (  4,  4   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003COpenQA.Selenium.JavaScriptCallbackExecutedEventArgs\u003E\n ;  V10 tmp5         [V10,T05] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u0022dup spill\u0022 \u003COpenQA.Selenium.DomMutationData\u003E\n ;* V11 tmp6         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V12 tmp7         [V12,T07] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.EventHandler\u00601[OpenQA.Selenium.DomMutatedEventArgs]\u003E\n ;* V13 tmp8         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V14 tmp9         [V14,T12] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003COpenQA.Selenium.DomMutatedEventArgs\u003E\n-;  V15 tmp10        [V15,T27] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Text.Json.JsonException\u003E\n\u002B;  V14 tmp9         [V14,T11] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003COpenQA.Selenium.DomMutatedEventArgs\u003E\n\u002B;  V15 tmp10        [V15,T26] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Text.Json.JsonException\u003E\n ;* V16 tmp11        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V17 tmp12        [V17,T01] (  6,  6.75)     ref  -\u003E  rax         single-def \u0022spilling varStr\u0022\n-;  V18 tmp13        [V18,T18] (  2,  2   )     int  -\u003E  rax         \u0022spilling unroll qmark\u0022\n\u002B;  V18 tmp13        [V18,T17] (  2,  2   )     int  -\u003E  rax         \u0022spilling unroll qmark\u0022\n ;* V19 tmp14        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003COpenQA.Selenium.DomMutationData\u003E\n ;  V20 tmp15        [V20,T08] (  4,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V21 tmp16        [V21,T23] (  2,  1   )     ref  -\u003E  rcx         class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Text.Json.Serialization.Metadata.JsonTypeInfo\u00601[OpenQA.Selenium.DomMutationData]\u003E\n\u002B;  V21 tmp16        [V21,T21] (  2,  1   )     ref  -\u003E  rcx         class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Text.Json.Serialization.Metadata.JsonTypeInfo\u00601[OpenQA.Selenium.DomMutationData]\u003E\n ;* V22 tmp17        [V22    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.ReadOnlySpan\u00601[char]\u003E\n ;* V23 tmp18        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Text.Json.Serialization.Metadata.JsonTypeInfo\u003E\n ;  V24 tmp19        [V24,T03] (  6,  6   )     ref  -\u003E  r13         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Text.Json.JsonSerializerOptions\u003E\n ;* V25 tmp20        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Text.Json.Serialization.Metadata.JsonTypeInfo\u003E\n-;  V26 tmp21        [V26,T11] (  7,  3   )     ref  -\u003E  r12         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Text.Json.Serialization.Metadata.JsonTypeInfo\u003E\n-;  V27 tmp22        [V27,T24] (  2,  1   )     ref  -\u003E  rcx        \n-;* V28 tmp23        [V28,T25] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022Inline stloc first use temp\u0022\n\u002B;  V26 tmp21        [V26,T10] (  7,  3   )     ref  -\u003E  r12         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Text.Json.Serialization.Metadata.JsonTypeInfo\u003E\n\u002B;  V27 tmp22        [V27,T22] (  2,  1   )     ref  -\u003E  rcx        \n\u002B;* V28 tmp23        [V28,T24] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022Inline stloc first use temp\u0022\n ;* V29 tmp24        [V29    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Nullable\u00601[bool]\u003E\n ;* V30 tmp25        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.RuntimeType\u003E\n-;  V31 tmp26        [V31,T15] (  2,  2   )     ref  -\u003E  r12         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Text.Json.Serialization.Metadata.JsonTypeInfo\u003E\n\u002B;  V31 tmp26        [V31,T14] (  2,  2   )     ref  -\u003E  r12         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Text.Json.Serialization.Metadata.JsonTypeInfo\u003E\n ;* V32 tmp27        [V32    ] (  0,  0   )  struct (16) zero-ref    \u0022Inline return value spill temp\u0022 \u003CSystem.ReadOnlySpan\u00601[char]\u003E\n ;* V33 tmp28        [V33    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ReadOnlySpan\u00601[char]\u003E\n ;* V34 tmp29        [V34    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.ReadOnlySpan\u00601[char]\u003E\n-;  V35 tmp30        [V35,T16] (  2,  2   )   byref  -\u003E  rsi         single-def \u0022Inlining Arg\u0022\n-;  V36 tmp31        [V36,T19] (  2,  2   )     int  -\u003E  rdx         \u0022Inlining Arg\u0022\n-;  V37 tmp32        [V37,T09] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[OpenQA.Selenium.IWebElement]\u003E\n-;  V38 tmp33        [V38    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V39 tmp34        [V39,T20] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003COpenQA.Selenium.IWebElement\u003E\n-;  V40 tmp35        [V40,T13] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[OpenQA.Selenium.IWebElement]\u003E\n-;  V41 tmp36        [V41,T17] (  2,  2   )     ref  -\u003E  r15         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V35 tmp30        [V35,T15] (  2,  2   )   byref  -\u003E  rsi         single-def \u0022Inlining Arg\u0022\n\u002B;  V36 tmp31        [V36,T18] (  2,  2   )     int  -\u003E  rdx         \u0022Inlining Arg\u0022\n\u002B;  V37 tmp32        [V37,T12] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[OpenQA.Selenium.IWebElement]\u003E\n\u002B;  V38 tmp33        [V38    ] (  1,  0.50)   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V39 tmp34        [V39,T23] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003COpenQA.Selenium.IWebElement\u003E\n\u002B;* V40 tmp35        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[OpenQA.Selenium.IWebElement]\u003E\n\u002B;  V41 tmp36        [V41,T16] (  2,  2   )     ref  -\u003E  r15         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V42 tmp37        [V42    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022field V22._reference (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp38        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V22._length (fldOffset=0x8)\u0022 P-INDEP\n ;* V44 tmp39        [V44    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V29.hasValue (fldOffset=0x0)\u0022 P-INDEP\n@@ -60,9 \u002B60,9 @@\n ;* V49 tmp44        [V49    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V33._length (fldOffset=0x8)\u0022 P-INDEP\n ;* V50 tmp45        [V50    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022field V34._reference (fldOffset=0x0)\u0022 P-INDEP\n ;* V51 tmp46        [V51    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V34._length (fldOffset=0x8)\u0022 P-INDEP\n-;  V52 rat0         [V52,T10] (  4,  3.50)     ref  -\u003E  rcx         \u0022replacement local\u0022\n-;  V53 rat1         [V53,T21] (  3,  1   )    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n-;  V54 rat2         [V54,T26] (  3,  3   )  simd32  -\u003E  mm0         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n\u002B;  V52 rat0         [V52,T09] (  4,  3.50)     ref  -\u003E  rcx         \u0022replacement local\u0022\n\u002B;  V53 rat1         [V53,T19] (  3,  1   )    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n\u002B;  V54 rat2         [V54,T25] (  3,  3   )  simd32  -\u003E  mm0         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n ;\n ; Lcl frame size = 8\n \n@@ -88,11 \u002B88,11 @@ G_M22725_IG02:\n \t\t\t\t\t\t;; size=19 bbWeight=1 PerfScore 3.50\n G_M22725_IG03:\n        test     rax, rax\n-       je       G_M22725_IG14\n\u002B       je       G_M22725_IG12\n \t\t\t\t\t\t;; size=9 bbWeight=0.25 PerfScore 0.31\n G_M22725_IG04:\n        cmp      dword ptr [rax\u002B0x08], 21\n-       jne      G_M22725_IG14\n\u002B       jne      G_M22725_IG12\n \t\t\t\t\t\t;; size=10 bbWeight=0.12 PerfScore 0.38\n G_M22725_IG05:\n        vmovups  ymm0, ymmword ptr [rax\u002B0x0C]\n@@ -103,12 \u002B103,12 @@ G_M22725_IG05:\n        sete     al\n        movzx    rax, al\n        test     eax, eax\n-       je       G_M22725_IG14\n\u002B       je       G_M22725_IG12\n \t\t\t\t\t\t;; size=48 bbWeight=0.50 PerfScore 9.50\n G_M22725_IG06:\n        mov      r14, gword ptr [r15\u002B0x10]\n        test     r14, r14\n-       je       G_M22725_IG18\n\u002B       je       G_M22725_IG16\n        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.JsonSerializerOptions:get_Default():System.Text.Json.JsonSerializerOptions\n        call     [rax]System.Text.Json.JsonSerializerOptions:get_Default():System.Text.Json.JsonSerializerOptions\n        mov      r13, rax\n@@ -149,7 \u002B149,7 @@ G_M22725_IG09:\n G_M22725_IG10:\n        mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Serialization.Metadata.JsonTypeInfo\u00601[OpenQA.Selenium.DomMutationData]\n        cmp      qword ptr [rcx], rdi\n-       jne      G_M22725_IG19\n\u002B       jne      G_M22725_IG17\n \t\t\t\t\t\t;; size=19 bbWeight=0.25 PerfScore 0.81\n G_M22725_IG11:\n        lea      rsi, bword ptr [r14\u002B0x0C]\n@@ -159,7 \u002B159,7 @@ G_M22725_IG11:\n        call     [rax]System.Text.Json.JsonSerializer:ReadFromSpan[System.__Canon](System.ReadOnlySpan\u00601[char],System.Text.Json.Serialization.Metadata.JsonTypeInfo\u00601[System.__Canon]):System.__Canon\n        mov      r12, rax\n        test     r12, r12\n-       je       G_M22725_IG20\n\u002B       je       G_M22725_IG18\n        mov      rsi, gword ptr [r12\u002B0x08]\n        mov      rdi, 0xD1FFAB1E      ; \u0027*[data-__webdriver_id=\u0027\u0027\n        mov      rdx, 0xD1FFAB1E      ; \u0027\u0027]\u0027\n@@ -172,36 \u002B172,19 @@ G_M22725_IG11:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for OpenQA.Selenium.ISearchContext:FindElements(OpenQA.Selenium.By):System.Collections.ObjectModel.ReadOnlyCollection\u00601[OpenQA.Selenium.IWebElement]:this\n        call     [r11]OpenQA.Selenium.ISearchContext:FindElements(OpenQA.Selenium.By):System.Collections.ObjectModel.ReadOnlyCollection\u00601[OpenQA.Selenium.IWebElement]:this\n-       mov      r14, rax\n-       test     r14, r14\n-       je       G_M22725_IG21\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[OpenQA.Selenium.IWebElement]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M22725_IG12\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M22725_IG13\n-\t\t\t\t\t\t;; size=175 bbWeight=0.50 PerfScore 19.25\n-G_M22725_IG12:\n\u002B       je       G_M22725_IG19\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r14\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[OpenQA.Selenium.IWebElement](System.Collections.Generic.IEnumerable\u00601[OpenQA.Selenium.IWebElement],byref):OpenQA.Selenium.IWebElement\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M22725_IG13:\n        lea      rdi, bword ptr [r12\u002B0x28]\n        mov      rsi, rax\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      r14, gword ptr [rbx\u002B0x48]\n        test     r14, r14\n-       je       SHORT G_M22725_IG14\n\u002B       je       SHORT G_M22725_IG12\n        mov      rdi, 0xD1FFAB1E      ; OpenQA.Selenium.DomMutatedEventArgs\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n@@ -212,13 \u002B195,13 @@ G_M22725_IG13:\n        mov      rdx, r13\n        mov      rdi, gword ptr [r14\u002B0x10]\n        call     [r14\u002B0x18]System.EventHandler\u00601[System.__Canon]:Invoke(System.Object,System.__Canon):this\n-\t\t\t\t\t\t;; size=66 bbWeight=0.50 PerfScore 6.88\n-G_M22725_IG14:\n\u002B\t\t\t\t\t\t;; size=218 bbWeight=0.50 PerfScore 20.75\n\u002BG_M22725_IG12:\n        mov      r14, gword ptr [rbx\u002B0x30]\n        test     r14, r14\n-       je       SHORT G_M22725_IG16\n\u002B       je       SHORT G_M22725_IG14\n \t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.25\n-G_M22725_IG15:\n\u002BG_M22725_IG13:\n        mov      r13, gword ptr [r15\u002B0x10]\n        mov      rdi, 0xD1FFAB1E      ; OpenQA.Selenium.JavaScriptCallbackExecutedEventArgs\n        call     CORINFO_HELP_NEWSFAST\n@@ -235,10 \u002B218,10 @@ G_M22725_IG15:\n        mov      rdi, gword ptr [r14\u002B0x10]\n        call     [r14\u002B0x18]System.EventHandler\u00601[System.__Canon]:Invoke(System.Object,System.__Canon):this\n \t\t\t\t\t\t;; size=66 bbWeight=0.50 PerfScore 7.25\n-G_M22725_IG16:\n\u002BG_M22725_IG14:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M22725_IG17:\n\u002BG_M22725_IG15:\n        vzeroupper \n        add      rsp, 8\n        pop      rbx\n@@ -249,19 \u002B232,19 @@ G_M22725_IG17:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 5.25\n-G_M22725_IG18:\n\u002BG_M22725_IG16:\n        mov      rdi, 0xD1FFAB1E      ; \u0027json\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:Throw(System.String)\n        call     [rax]System.ArgumentNullException:Throw(System.String)\n        int3     \n \t\t\t\t\t\t;; size=23 bbWeight=0 PerfScore 0.00\n-G_M22725_IG19:\n\u002BG_M22725_IG17:\n        mov      rsi, r12\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rax]CORINFO_HELP_CHKCASTCLASS\n        int3     \n \t\t\t\t\t\t;; size=16 bbWeight=0 PerfScore 0.00\n-G_M22725_IG20:\n\u002BG_M22725_IG18:\n        mov      rdi, 0xD1FFAB1E      ; System.Text.Json.JsonException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -273,7 \u002B256,7 @@ G_M22725_IG20:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M22725_IG21:\n\u002BG_M22725_IG19:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n@@ -283,5 \u002B266,5 @@ RWD00  \tdq\t0076006900720064h, 0061005F00720065h, 0069007200740074h, 006500740075\n RWD32  \tdq\t00650077005F005Fh, 0069007200640062h, 005F007200650076h, 0072007400740061h\n \n \n-; Total bytes of code 755, prolog size 22, PerfScore 82.12, instruction count 171, allocated bytes for code 755 (MethodHash=2861a73a) for method OpenQA.Selenium.JavaScriptEngine:OnScriptBindingCalled(System.Object,OpenQA.Selenium.DevTools.BindingCalledEventArgs):this (FullOpts)\n\u002B; Total bytes of code 703, prolog size 22, PerfScore 74.62, instruction count 158, allocated bytes for code 703 (MethodHash=2861a73a) for method OpenQA.Selenium.JavaScriptEngine:OnScriptBindingCalled(System.Object,OpenQA.Selenium.DevTools.BindingCalledEventArgs):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":755,"DiffBytes":703},{"Assembly":"SharpCompress.dasm","Method":"SharpCompress.Common.SevenZip.SevenZipFilePart:GetCompression():int:this (FullOpts)","Category":"improvement","Description":"355 -\u003E 303 bytes (-52)","ExtraInfo":null,"Diff":"@@ -1,150 \u002B1,133 @@\n ; Assembly listing for method SharpCompress.Common.SevenZip.SevenZipFilePart:GetCompression():int:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 8 single block inlinees; 3 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T00] (  4,  3.50)     ref  -\u003E  rdi         this class-hnd single-def \u003CSharpCompress.Common.SevenZip.SevenZipFilePart\u003E\n ;  V01 loc0         [V01,T04] (  5,  2.50)     int  -\u003E  rax        \n-;  V02 loc1         [V02,T02] (  7,  3.50)    long  -\u003E  rax         single-def\n\u002B;  V02 loc1         [V02,T01] (  7,  3.50)    long  -\u003E  rax         single-def\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V04 tmp1         [V04,T07] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSharpCompress.Common.InvalidFormatException\u003E\n\u002B;  V04 tmp1         [V04,T06] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSharpCompress.Common.InvalidFormatException\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSharpCompress.Common.SevenZip.CFileItem\u003E\n-;  V06 tmp3         [V06,T03] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSharpCompress.Common.SevenZip.CFolder\u003E\n-;  V07 tmp4         [V07,T08] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V08 tmp5         [V08,T01] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[SharpCompress.Common.SevenZip.CCoderInfo]\u003E\n-;  V09 tmp6         [V09    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x10]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V06 tmp3         [V06,T02] (  3,  3   )     ref  -\u003E  rdx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSharpCompress.Common.SevenZip.CFolder\u003E\n\u002B;  V07 tmp4         [V07,T07] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V08 tmp5         [V08,T03] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[SharpCompress.Common.SevenZip.CCoderInfo]\u003E\n\u002B;  V09 tmp6         [V09    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x10]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V10 tmp7         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V11 tmp8         [V11,T06] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSharpCompress.Common.SevenZip.CCoderInfo\u003E\n-;  V12 tmp9         [V12,T05] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[SharpCompress.Common.SevenZip.CCoderInfo]\u003E\n\u002B;  V11 tmp8         [V11,T05] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSharpCompress.Common.SevenZip.CCoderInfo\u003E\n\u002B;* V12 tmp9         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[SharpCompress.Common.SevenZip.CCoderInfo]\u003E\n ;\n ; Lcl frame size = 8\n \n G_M53312_IG01:\n        push     rbp\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x10]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x10], rax\n \t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.75\n G_M53312_IG02:\n-       mov      rsi, gword ptr [rdi\u002B0x28]\n-       cmp      byte  ptr [rsi\u002B0x19], 0\n-       jne      G_M53312_IG11\n\u002B       mov      rdx, gword ptr [rdi\u002B0x28]\n\u002B       cmp      byte  ptr [rdx\u002B0x19], 0\n\u002B       jne      G_M53312_IG09\n \t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 5.00\n G_M53312_IG03:\n-       mov      rsi, gword ptr [rdi\u002B0x30]\n\u002B       mov      rdx, gword ptr [rdi\u002B0x30]\n\u002B       test     rdx, rdx\n\u002B       je       G_M53312_IG11\n\u002B       mov      rsi, gword ptr [rdx\u002B0x08]\n        test     rsi, rsi\n-       je       G_M53312_IG13\n-       mov      rbx, gword ptr [rsi\u002B0x08]\n-       test     rbx, rbx\n-       je       G_M53312_IG14\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[SharpCompress.Common.SevenZip.CCoderInfo]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M53312_IG04\n-       lea      rsi, [rbp-0x10]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M53312_IG05\n-\t\t\t\t\t\t;; size=75 bbWeight=0.50 PerfScore 10.62\n-G_M53312_IG04:\n\u002B       je       G_M53312_IG12\n        lea      rdx, [rbp-0x10]\n-       mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[SharpCompress.Common.SevenZip.CCoderInfo](System.Collections.Generic.IEnumerable\u00601[SharpCompress.Common.SevenZip.CCoderInfo],byref):SharpCompress.Common.SevenZip.CCoderInfo\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M53312_IG05:\n        cmp      byte  ptr [rbp-0x10], 0\n-       je       G_M53312_IG15\n\u002B       je       G_M53312_IG13\n        mov      rax, qword ptr [rax\u002B0x18]\n        cmp      rax, 33\n-       jbe      SHORT G_M53312_IG07\n\u002B       jbe      SHORT G_M53312_IG05\n        cmp      rax, 0x30101\n-       je       SHORT G_M53312_IG09\n\u002B       je       SHORT G_M53312_IG07\n        cmp      rax, 0x30401\n-       jne      SHORT G_M53312_IG06\n\u002B       jne      SHORT G_M53312_IG04\n        mov      eax, 3\n-       jmp      SHORT G_M53312_IG10\n-\t\t\t\t\t\t;; size=43 bbWeight=0.50 PerfScore 5.00\n-G_M53312_IG06:\n\u002B       jmp      SHORT G_M53312_IG08\n\u002B\t\t\t\t\t\t;; size=95 bbWeight=0.50 PerfScore 10.25\n\u002BG_M53312_IG04:\n        cmp      rax, 0xD1FFAB1E\n-       jne      G_M53312_IG16\n\u002B       jne      G_M53312_IG14\n        mov      eax, 2\n-       jmp      SHORT G_M53312_IG10\n\u002B       jmp      SHORT G_M53312_IG08\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.75\n-G_M53312_IG07:\n\u002BG_M53312_IG05:\n        test     rax, rax\n-       jne      SHORT G_M53312_IG08\n\u002B       jne      SHORT G_M53312_IG06\n        xor      eax, eax\n-       jmp      SHORT G_M53312_IG10\n\u002B       jmp      SHORT G_M53312_IG08\n \t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 1.75\n-G_M53312_IG08:\n\u002BG_M53312_IG06:\n        cmp      rax, 33\n-       jne      SHORT G_M53312_IG16\n\u002B       jne      SHORT G_M53312_IG14\n \t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 0.62\n-G_M53312_IG09:\n\u002BG_M53312_IG07:\n        mov      eax, 6\n \t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 0.12\n\u002BG_M53312_IG08:\n\u002B       add      rsp, 8\n\u002B       pop      rbx\n\u002B       pop      rbp\n\u002B       ret      \n\u002B\t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n\u002BG_M53312_IG09:\n\u002B       xor      eax, eax\n\u002B\t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n G_M53312_IG10:\n        add      rsp, 8\n        pop      rbx\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n G_M53312_IG11:\n-       xor      eax, eax\n-\t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M53312_IG12:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      rbp\n-       ret      \n-\t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M53312_IG13:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; \u0027Folder\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:.ctor(System.String):this\n        call     [rax]System.ArgumentNullException:.ctor(System.String):this\n        mov      rdi, rbx\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M53312_IG14:\n\u002BG_M53312_IG12:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M53312_IG15:\n\u002BG_M53312_IG13:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M53312_IG16:\n\u002BG_M53312_IG14:\n        mov      rdi, 0xD1FFAB1E      ; SharpCompress.Common.InvalidFormatException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Exception:.ctor():this\n        call     [rax]System.Exception:.ctor():this\n        mov      rdi, rbx\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=42 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 355, prolog size 14, PerfScore 34.12, instruction count 89, allocated bytes for code 355 (MethodHash=d5b32fbf) for method SharpCompress.Common.SevenZip.SevenZipFilePart:GetCompression():int:this (FullOpts)\n\u002B; Total bytes of code 303, prolog size 14, PerfScore 26.62, instruction count 76, allocated bytes for code 303 (MethodHash=d5b32fbf) for method SharpCompress.Common.SevenZip.SevenZipFilePart:GetCompression():int:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":355,"DiffBytes":303},{"Assembly":"SharpCompress.dasm","Method":"SharpCompress.Compressors.ZStandard.Unsafe.Methods:ZSTD_resetCCtx_internal(ptr,ptr,ulong,nuint,int,int):nuint (FullOpts)","Category":"same-size","Description":"14,418 -\u003E 14,418 bytes (0)","ExtraInfo":null,"Diff":"@@ -4534,7 \u002B4534,7 @@ G_M3166_IG261:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-RWD00  \tdq\t0000753F25DFBD7Ah, 0000753F25DFBD78h, 0000753F25DFBD78h, 0000000200000002h\n\u002BRWD00  \tdq\t000072275C3FBD7Ah, 000072275C3FBD78h, 000072275C3FBD78h, 0000000200000002h\n \n \n ; Total bytes of code 14418, prolog size 25, PerfScore 897.54, instruction count 2989, allocated bytes for code 14418 (MethodHash=e940f3a1) for method SharpCompress.Compressors.ZStandard.Unsafe.Methods:ZSTD_resetCCtx_internal(ptr,ptr,ulong,nuint,int,int):nuint (FullOpts)","Truncated":true,"BaseBytes":14418,"DiffBytes":14418},{"Assembly":"SharpYaml.dasm","Method":"SharpYaml.YamlSerializer:GetStringAndReleaseBuilder(System.Text.StringBuilder):System.String (FullOpts)","Category":"same-size","Description":"146 -\u003E 146 bytes (0)","ExtraInfo":null,"Diff":"@@ -1,77 \u002B1,77 @@\n ; Assembly listing for method SharpYaml.YamlSerializer:GetStringAndReleaseBuilder(System.Text.StringBuilder):System.String (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 arg0         [V00,T00] (  7,  6   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Text.StringBuilder\u003E\n ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V02 tmp1         [V02    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n ;  V03 tmp2         [V03,T04] (  2,  2   )     ref  -\u003E  r15         single-def\n ;  V04 rat0         [V04,T03] (  3,  2   )   byref  -\u003E  rax         \u0022TLS field access\u0022\n ;  V05 rat1         [V05,T02] (  3,  3   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;  V06 rat2         [V06,T01] (  3,  3   )   byref  -\u003E  rax         \u0022ThreadStaticBlockBase access\u0022\n ;\n ; Lcl frame size = 0\n \n G_M52667_IG01:\n        push     rbp\n        push     r15\n        push     rbx\n        lea      rbp, [rsp\u002B0x10]\n        mov      rbx, rdi\n \t\t\t\t\t\t;; size=12 bbWeight=1 PerfScore 3.75\n G_M52667_IG02:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:ToString():System.String:this\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.Text.StringBuilder:ToString():System.String:this\n        mov      r15, rax\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      edi, dword ptr [rdi\u002B0x08]\n        add      edi, dword ptr [rbx\u002B0x1C]\n        cmp      edi, 0xD1FFAB1E\n        jg       SHORT G_M52667_IG05\n \t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 13.00\n G_M52667_IG03:\n        mov      rdi, rbx\n        xor      esi, esi\n        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:set_Length(int):this\n        call     [rax]System.Text.StringBuilder:set_Length(int):this\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       cmp      dword ptr [rax], 10\n\u002B       cmp      dword ptr [rax], 11\n        jle      SHORT G_M52667_IG07\n        mov      rdi, gword ptr [rax\u002B0x08]\n-       mov      rax, bword ptr [rdi\u002B0x50]\n\u002B       mov      rax, bword ptr [rdi\u002B0x58]\n        test     rax, rax\n        je       SHORT G_M52667_IG07\n \t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 7.75\n G_M52667_IG04:\n        lea      rdi, bword ptr [rax\u002B0x10]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n \t\t\t\t\t\t;; size=12 bbWeight=0.50 PerfScore 0.88\n G_M52667_IG05:\n        mov      rax, r15\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M52667_IG06:\n        pop      rbx\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 2.50\n G_M52667_IG07:\n-       mov      edi, 10\n\u002B       mov      edi, 11\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED\n        call     [rax]CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED\n        jmp      SHORT G_M52667_IG04\n \t\t\t\t\t\t;; size=19 bbWeight=0 PerfScore 0.00\n \n ; Total bytes of code 146, prolog size 9, PerfScore 28.12, instruction count 40, allocated bytes for code 146 (MethodHash=8ea03244) for method SharpYaml.YamlSerializer:GetStringAndReleaseBuilder(System.Text.StringBuilder):System.String (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":146,"DiffBytes":146},{"Assembly":"Silk.NET.Assimp.dasm","Method":"Silk.NET.Assimp.CustomFileIO:OpenFile(ptr,ptr,ptr):ptr (FullOpts)","Category":"same-size","Description":"1,423 -\u003E 1,423 bytes (0)","ExtraInfo":null,"Diff":"@@ -807,8 \u002B807,8 @@ G_M44419_IG50:\n        call     CORINFO_HELP_OVERFLOW\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n-RWD00  \tdq\t00007A25A8BB0558h, 00007A25A8BB0570h, 00007A25A8BB05A0h, 00007A25A8BB0588h\n-RWD32  \tdq\t00007A25A8BB05D0h, 00007A25A8BB05B8h\n\u002BRWD00  \tdq\t00007C84BC9A0558h, 00007C84BC9A0570h, 00007C84BC9A05A0h, 00007C84BC9A0588h\n\u002BRWD32  \tdq\t00007C84BC9A05D0h, 00007C84BC9A05B8h\n \n \n ; Total bytes of code 1423, prolog size 74, PerfScore 196.71, instruction count 341, allocated bytes for code 1423 (MethodHash=5738527c) for method Silk.NET.Assimp.CustomFileIO:OpenFile(ptr,ptr,ptr):ptr (FullOpts)","Truncated":true,"BaseBytes":1423,"DiffBytes":1423},{"Assembly":"SixLabors.ImageSharp.dasm","Method":"SixLabors.ImageSharp.Memory.Internals.UniformUnmanagedMemoryPool:TimerCallback() (FullOpts)","Category":"same-size","Description":"511 -\u003E 511 bytes (0)","ExtraInfo":null,"Diff":"@@ -9,27 \u002B9,13 @@\n ; Final local variable assignments\n ;\n ;  V00 loc0         [V00,T30] (  4,  2   )     ref  -\u003E  [rbp-0x30]  class-hnd exact EH-live spill-single-def \u003CSystem.Collections.Generic.List\u00601[System.WeakReference\u00601[SixLabors.ImageSharp.Memory.Internals.UniformUnmanagedMemoryPool]]\u003E\n-;  ; Assembly listing for method SixLabors.ImageSharp.Memory.ByteMemoryOwner\u00601[int]:Dispose():this (FullOpts)\n-V01 loc1; Emitting          [V01,T31] (  3,  2   )BLENDED_CODE   ubyte  -\u003E  [rbp-0x24]  do-not-enreg[ for x64M \u002B VEX] ld-addr-op EH-live\n- \u002B EVEX on Unix\n-;  ; FullOpts code\n-; optimized code\n-; rbp based frame\n-; partially interruptible\n-; No PGO data\n-V02 loc2         [V02,T32]; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data\n- (  2,  2   )     int  -\u003E  rdi        \n\u002B;  V01 loc1         [V01,T31] (  3,  2   )   ubyte  -\u003E  [rbp-0x24]  do-not-enreg[M] ld-addr-op EH-live\n\u002B;  V02 loc2         [V02,T32] (  2,  2   )     int  -\u003E  rdi        \n ;* V03 loc3         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    ld-addr-op class-hnd \u003CSixLabors.ImageSharp.Memory.Internals.UniformUnmanagedMemoryPool\u003E\n-; Final;*  local variable assignments\n-;\n-V04 loc4         [V04    ];   (  0,  0   )  struct V00 this(24)          zero-ref   [V00,T00] ld-addr-op \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[System.WeakReference\u00601[SixLabors.ImageSharp.Memory.Internals.UniformUnmanagedMemoryPool]]\u003E\n-;*  (  5,  4   )V05 loc5              ref [V05 -\u003E      ]rbx         this (  0,  0   ) class-hnd single-def     ref  -\u003E  zero-ref    ld-addr-op class-hnd \u003CSixLabors.ImageSharp.Memory.Internals.UniformUnmanagedMemoryPool\u003E\n-;#  \u003CSixLabors.ImageSharp.Memory.ByteMemoryOwner\u00601[int]\u003E\n-V06 OutArgs      ;# [V06    ] (  1,  1   )  struct ( 0) V01 OutArgs      [rsp\u002B0x00] [V01 do-not-enreg[    ]X (  1,  1   )S] addr-exposed \u0022OutgoingArgSpace\u0022  struct  \u003CEmpty\u003E( 0) \n-;* V07 tmp1[rsp\u002B0x00]           do-not-enreg[[V07X    ]S] addr-exposed \u0022OutgoingArgSpace\u0022 (  0,  0   ) \u003CEmpty\u003E     ref  -\u003E  \n-zero-ref    class-hnd exact;\n- \u0022Inlining Arg\u0022; Lcl frame size = 8\n- \u003CSystem.Collections.Generic.List\u00601[System.WeakReference\u00601[SixLabors.ImageSharp.Memory.Internals.UniformUnmanagedMemoryPool]]\u003E\n\u002B;* V04 loc4         [V04    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[System.WeakReference\u00601[SixLabors.ImageSharp.Memory.Internals.UniformUnmanagedMemoryPool]]\u003E\n\u002B;* V05 loc5         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    ld-addr-op class-hnd \u003CSixLabors.ImageSharp.Memory.Internals.UniformUnmanagedMemoryPool\u003E\n\u002B;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n\u002B;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.WeakReference\u00601[SixLabors.ImageSharp.Memory.Internals.UniformUnmanagedMemoryPool]]\u003E\n ;  V08 tmp2         [V08,T04] (  3, 24   )     ref  -\u003E  rdi         class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.WeakReference\u00601[SixLabors.ImageSharp.Memory.Internals.UniformUnmanagedMemoryPool]]\u003E\n ;* V09 tmp3         [V09    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V10 tmp4         [V10,T03] (  4, 24   )     ref  -\u003E  r14         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n@@ -52,74 \u002B38,33 @@ zero-ref    class-hnd exact;\n ;* V27 tmp21        [V27    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V28 tmp22        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.__Canon[]\u003E\n ;* V29 tmp23        [V29    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V30 tmp24        [V30,T24]\n-G_M45751_IG01:\n- (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.WeakReference\u00601[SixLabors.ImageSharp.Memory.Internals.UniformUnmanagedMemoryPool]]\u003E\n-;*       V31 tmp25        [V31 push         ] (  0,  0   )  struct rbp(24) \n-zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022       \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[System.WeakReference\u00601[SixLabors.ImageSharp.Memory.Internals.UniformUnmanagedMemoryPool]]\u003E push     \n-;* rbx\n-V32 tmp26              [V32    ] push     rax\n- (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V33 tmp27        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022       \u003CSystem.__Canon\u003E lea      rbp\n-;* , [V34 tmp28rsp        \u002B[V340x10]    ]\n- (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSixLabors.ImageSharp.Memory.Internals.UniformUnmanagedMemoryPool\u003E\n-;  V35 tmp29              [V35 mov      ,T10]rbx, rdi\n- (  5, 12   )     ref  -\u003E  rdi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSixLabors.ImageSharp.Memory.Internals.UniformUnmanagedMemoryPool\u003E\n-;  V36 tmp30        [V36,T09]\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.75 (  5, 14   )    long  -\u003E  rdi        \n-G_M45751_IG02:\n- \u0022Inline stloc first use temp\u0022\n-;  V37 tmp31        [V37,T20] (  2,  8   )           ref  cmp      byte  ptr [ -\u003E  rbxrdi         class-hnd \u0022updating class info\u0022 \u003CSixLabors.ImageSharp.Memory.Internals.UniformUnmanagedMemoryPool\u003E\n-\u002B;  0x18V38 tmp32        [V38],T25], 0\n- (  3,  6   )     ref  -\u003E  rdi         class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.ComAwareWeakReference\u003E\n-      ;   jne      V39 tmp33        [V39,T21]SHORT  (  2,  8   )     ref  -\u003E  G_M45751_IG04rax        \n- class-hnd \u0022updating class info\u0022 \u003CSixLabors.ImageSharp.Memory.Internals.UniformUnmanagedMemoryPool\u003E\n-\t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 3.00;  \n-G_M45751_IG03:\n-V40 tmp34        [V40,T16] (  4,  8   )           ref  mov      rdi, gword ptr  -\u003E  [rbx\u002B0x08]rax        \n-\n-;* V41 tmp35        [V41          ] mov      r11 (  0,  0   ),      ref  -\u003E  zero-ref    ld-addr-op class-hnd \u0022Inline ldloca(s) first use temp\u00220xD1FFAB1E \u003CSixLabors.ImageSharp.Memory.Internals.UniformUnmanagedMemoryPool\u003E\n\u002B;  V30 tmp24        [V30,T24] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.WeakReference\u00601[SixLabors.ImageSharp.Memory.Internals.UniformUnmanagedMemoryPool]]\u003E\n\u002B;* V31 tmp25        [V31    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[System.WeakReference\u00601[SixLabors.ImageSharp.Memory.Internals.UniformUnmanagedMemoryPool]]\u003E\n\u002B;* V32 tmp26        [V32    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V33 tmp27        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n\u002B;* V34 tmp28        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSixLabors.ImageSharp.Memory.Internals.UniformUnmanagedMemoryPool\u003E\n\u002B;  V35 tmp29        [V35,T10] (  5, 12   )     ref  -\u003E  rdi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSixLabors.ImageSharp.Memory.Internals.UniformUnmanagedMemoryPool\u003E\n\u002B;  V36 tmp30        [V36,T09] (  5, 14   )    long  -\u003E  rdi         \u0022Inline stloc first use temp\u0022\n\u002B;  V37 tmp31        [V37,T20] (  2,  8   )     ref  -\u003E  rdi         class-hnd \u0022updating class info\u0022 \u003CSixLabors.ImageSharp.Memory.Internals.UniformUnmanagedMemoryPool\u003E\n\u002B;  V38 tmp32        [V38,T25] (  3,  6   )     ref  -\u003E  rdi         class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.ComAwareWeakReference\u003E\n\u002B;  V39 tmp33        [V39,T21] (  2,  8   )     ref  -\u003E  rax         class-hnd \u0022updating class info\u0022 \u003CSixLabors.ImageSharp.Memory.Internals.UniformUnmanagedMemoryPool\u003E\n\u002B;  V40 tmp34        [V40,T16] (  4,  8   )     ref  -\u003E  rax        \n\u002B;* V41 tmp35        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    ld-addr-op class-hnd \u0022Inline ldloca(s) first use temp\u0022 \u003CSixLabors.ImageSharp.Memory.Internals.UniformUnmanagedMemoryPool\u003E\n ;* V42 tmp36        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022updating class info\u0022 \u003CSystem.ComAwareWeakReference\u003E\n ;* V43 tmp37        [V43    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V44 tmp38        [V44    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V45 tmp39        [V45    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V46 tmp40        [V46    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.WeakReference\u00601[SixLabors.ImageSharp.Memory.Internals.UniformUnmanagedMemoryPool]]\u003E\n-;  V47 tmp41        [V47,T07] (  4, 17   )     ref  -\u003E  rbx         single-def \u0022field V04._list (fldOffset=0x0)\u0022      ; code for System.IDisposable:Dispose():this P-INDEP\n-;  \n-V48 tmp42        [V48,T11] (  4, 12   )     ref  -\u003E  r13         \u0022field V04._current (fldOffset=0x8)\u0022 P-INDEP\n-;  V49 tmp43              [V49 call     ,T27][ (  3,  6   )r11     int  -\u003E  r15         single-def] \u0022field V04._version (fldOffset=0x10)\u0022 P-INDEP\n-System.IDisposable:Dispose():this\n-;*       V50 tmp44 mov      byte  ptr [rbx\u002B        0x18[V50],T34],  (  0,  0   )1     int \n- -\u003E  zero-ref    \u0022field V04._index (fldOffset=0x14)\u0022 P-INDEP\n-;* V51 tmp45        [V51    ]\t\t\t\t\t\t;; size=21 bbWeight=0.50 PerfScore 3.12 (  0,  0   )\n-G_M45751_IG04:\n-     ref  -\u003E  zero-ref    single-def       \u0022field V31._list (fldOffset=0x0)\u0022 add       P-INDEPrsp, 8\n-;* \n-V52 tmp46        [V52    ]       (  0,  0   ) pop           ref  -\u003E  zero-ref    single-def \u0022field V31._current (fldOffset=0x8)\u0022 P-INDEP\n-rbx\n-;  V53 tmp47              [V53,T33] pop       (  2,  2   )rbp     int  -\u003E  \n-r15         single-def \u0022field V31._version (fldOffset=0x10)\u0022 P-INDEP\n-;*       V54 tmp48 ret              \n-[V54    ] (  0,  0   )     int  -\u003E  zero-ref    single-def\t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.25 \u0022field V31._index (fldOffset=0x14)\u0022\n- P-INDEP\n-;  V55 tmp49        [V55,T05] (  3, 24   )     ref  -\u003E  \n-rdi         \u0022arr expr\u0022\n-;  V56 tmp50        [V56,T12]; Total bytes of code 45, prolog size 8, PerfScore 12.12, instruction count 15, allocated bytes for code 45 (  3, 12   ) (MethodHash=e9ed4d48) for method SixLabors.ImageSharp.Memory.ByteMemoryOwner\u00601[int]:Dispose():this (FullOpts)\n-     ref ; ============================================================\n-\n- -\u003E  Unwind Info:\n-  \u003E\u003E Start offset   : 0x000000 (not in unwind data)\n-  \u003E\u003E   End offset   : 0xd1ffab1e (not in unwind data)\n-  Version           : 1\n-  Flags             : 0x00\n-  SizeOfProlog      : 0x03\n-  CountOfUnwindCodes: 3\n-  FrameRegister     : none (0)\n-  FrameOffset       : N/A (no FrameRegister) (Value=0)\n-  UnwindCodes       :\n-    CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 \u002B 8 = 8 = 0x08\n-    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)\n-    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)\n-rdi         \u0022arr expr\u0022\n\u002B;  V47 tmp41        [V47,T07] (  4, 17   )     ref  -\u003E  rbx         single-def \u0022field V04._list (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp42        [V48,T11] (  4, 12   )     ref  -\u003E  r13         \u0022field V04._current (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V49 tmp43        [V49,T27] (  3,  6   )     int  -\u003E  r15         single-def \u0022field V04._version (fldOffset=0x10)\u0022 P-INDEP\n\u002B;* V50 tmp44        [V50,T34] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V04._index (fldOffset=0x14)\u0022 P-INDEP\n\u002B;* V51 tmp45        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V31._list (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V52 tmp46        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V31._current (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V53 tmp47        [V53,T33] (  2,  2   )     int  -\u003E  r15         single-def \u0022field V31._version (fldOffset=0x10)\u0022 P-INDEP\n\u002B;* V54 tmp48        [V54    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V31._index (fldOffset=0x14)\u0022 P-INDEP\n\u002B;  V55 tmp49        [V55,T05] (  3, 24   )     ref  -\u003E  rdi         \u0022arr expr\u0022\n\u002B;  V56 tmp50        [V56,T12] (  3, 12   )     ref  -\u003E  rdi         \u0022arr expr\u0022\n ;  V57 tmp51        [V57,T13] (  3, 12   )    long  -\u003E  rsi         \u0022index expr\u0022\n ;  V58 tmp52        [V58,T06] (  3, 24   )     ref  -\u003E  rdi         \u0022arr expr\u0022\n ;  V59 cse0         [V59,T17] (  4,  8   )     int  -\u003E   r8         \u0022CSE #03: moderate\u0022","Truncated":true,"BaseBytes":511,"DiffBytes":511},{"Assembly":"SkiaSharp.dasm","Method":"SkiaSharp.SKAbstractManagedWStream:.cctor() (FullOpts)","Category":"same-size","Description":"199 -\u003E 199 bytes (0)","ExtraInfo":null,"Diff":"@@ -1,89 \u002B1,89 @@\n ; Assembly listing for method SkiaSharp.SKAbstractManagedWStream:.cctor() (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; Final local variable assignments\n ;\n ;* V00 loc0         [V00    ] (  0,  0   )  struct (32) zero-ref    ld-addr-op \u003CSkiaSharp.SKManagedWStreamDelegates\u003E\n ;  V01 OutArgs      [V01    ] (  1,  1   )  struct (32) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;  V02 FramesRoot   [V02,T00] (  6,  6   )    long  -\u003E  rbx         \u0022Pinvoke FrameListRoot\u0022\n ;  V03 PInvokeFrame [V03    ] (  8,  8   )  struct (56) [rbp-0x60]  do-not-enreg[XS] addr-exposed \u0022Pinvoke FrameVar\u0022 \u003CUNNAMED\u003E\n ;* V04 tmp3         [V04    ] (  0,  0   )    long  -\u003E  zero-ref    single-def \u0022field V00.fWrite (fldOffset=0x0)\u0022 P-INDEP\n ;* V05 tmp4         [V05    ] (  0,  0   )    long  -\u003E  zero-ref    single-def \u0022field V00.fFlush (fldOffset=0x8)\u0022 P-INDEP\n ;* V06 tmp5         [V06    ] (  0,  0   )    long  -\u003E  zero-ref    single-def \u0022field V00.fBytesWritten (fldOffset=0x10)\u0022 P-INDEP\n ;* V07 tmp6         [V07    ] (  0,  0   )    long  -\u003E  zero-ref    single-def \u0022field V00.fDestroy (fldOffset=0x18)\u0022 P-INDEP\n ;  V08 cse0         [V08,T01] (  3,  3   )    long  -\u003E  rax         \u0022CSE #01: aggressive\u0022\n ;\n ; Lcl frame size = 88\n \n G_M15798_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        sub      rsp, 88\n        lea      rbp, [rsp\u002B0x80]\n \t\t\t\t\t\t;; size=22 bbWeight=1 PerfScore 6.75\n G_M15798_IG02:\n        lea      rdi, [rbp-0x60]\n        call     CORINFO_HELP_INIT_PINVOKE_FRAME\n        mov      rbx, rax\n        mov      rax, rsp\n        mov      qword ptr [rbp-0x48], rax\n        mov      rax, rbp\n        mov      qword ptr [rbp-0x38], rax\n        mov      rax, 0xD1FFAB1E      ; data for SkiaSharp.SKAbstractManagedWStream:delegates\n        vmovups  ymm0, ymmword ptr [reloc @RWD00]\n        vmovups  ymmword ptr [rax], ymm0\n        vmovdqu  xmm0, xmmword ptr [rax]\n        vmovdqu  xmmword ptr [rsp], xmm0\n        vmovdqu  xmm0, xmmword ptr [rax\u002B0x10]\n        vmovdqu  xmmword ptr [rsp\u002B0x10], xmm0\n        mov      rax, 0xD1FFAB1E      ; function address\n        mov      qword ptr [rbp-0x50], rax\n        lea      rax, G_M15798_IG05\n        mov      qword ptr [rbp-0x40], rax\n        lea      rax, [rbp-0x60]\n        mov      qword ptr [rbx\u002B0x08], rax\n        mov      byte  ptr [rbx\u002B0x04], 0\n \t\t\t\t\t\t;; size=105 bbWeight=1 PerfScore 19.25\n G_M15798_IG03:\n        mov      rax, 0xD1FFAB1E      ; code for SkiaSharp.SkiaApi:sk_managedwstream_set_procs(SkiaSharp.SKManagedWStreamDelegates)\n \t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 0.25\n G_M15798_IG04:\n        vzeroupper \n        call     [rax]SkiaSharp.SkiaApi:sk_managedwstream_set_procs(SkiaSharp.SKManagedWStreamDelegates)\n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 4.00\n G_M15798_IG05:\n        mov      byte  ptr [rbx\u002B0x04], 1\n        mov      rcx, 0xD1FFAB1E      ; function address\n        cmp      dword ptr [rcx], 0\n        je       SHORT G_M15798_IG06\n        mov      rdi, 0xD1FFAB1E\n        call     [rdi]CORINFO_HELP_STOP_FOR_GC\n \t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.50\n G_M15798_IG06:\n        mov      rax, qword ptr [rbp-0x58]\n        mov      qword ptr [rbx\u002B0x08], rax\n \t\t\t\t\t\t;; size=8 bbWeight=1 PerfScore 2.00\n G_M15798_IG07:\n        vzeroupper \n        add      rsp, 88\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 5.25\n-RWD00  \tdq\t00007A20BCE83DC8h, 00007A20BCE83DB0h, 00007A20BCE83D80h, 00007A20BCE83D98h\n\u002BRWD00  \tdq\t0000775E8EC93DC8h, 0000775E8EC93DB0h, 0000775E8EC93D80h, 0000775E8EC93D98h\n \n \n ; Total bytes of code 199, prolog size 22, PerfScore 45.00, instruction count 49, allocated bytes for code 199 (MethodHash=46bdc249) for method SkiaSharp.SKAbstractManagedWStream:.cctor() (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":199,"DiffBytes":199},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.Contracts.PricingLines.QuantityChangeService:ListContractPricingLineQuantityChangesAutoPaging(System.String,System.String,Stripe.V2.Billing.Contracts.PricingLines.QuantityChangeListContractPricingLineQuantityChangesOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.ContractPricingLineQuantityChange]:this (FullOpts)","Category":"improvement","Description":"1,127 -\u003E 1,076 bytes (-51)","ExtraInfo":null,"Diff":"@@ -9,10 \u002B9,10 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T12] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.Contracts.PricingLines.QuantityChangeService\u003E\n-;  V01 arg1         [V01,T16] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CSystem.String\u003E\n-;  V02 arg2         [V02,T17] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CSystem.String\u003E\n-;  V03 arg3         [V03,T13] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.Contracts.PricingLines.QuantityChangeListContractPricingLineQuantityChangesOptions\u003E\n-;  V04 arg4         [V04,T14] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T15] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V02 arg2         [V02,T16] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V03 arg3         [V03,T17] (  3,  2.50)     ref  -\u003E  r12         class-hnd single-def \u003CStripe.V2.Billing.Contracts.PricingLines.QuantityChangeListContractPricingLineQuantityChangesOptions\u003E\n\u002B;  V04 arg4         [V04,T13] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;  V05 loc0         [V05    ] ( 40, 28.50)  struct (40) [rbp-0x50]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.DefaultInterpolatedStringHandler\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.Buffers.SharedArrayPool\u00601[char]\u003E\n@@ -23,19 \u002B23,19 @@\n ;* V12 tmp6         [V12    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Span\u00601[char]\u003E\n ;  V13 tmp7         [V13,T05] (  4,  8   )     int  -\u003E  rdi         \u0022Inlining Arg\u0022\n ;* V14 tmp8         [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;  V15 tmp9         [V15,T15] (  4,  5   )   byref  -\u003E  rax         single-def \u0022Inlining Arg\u0022\n\u002B;  V15 tmp9         [V15,T14] (  4,  5   )   byref  -\u003E  rax         single-def \u0022Inlining Arg\u0022\n ;  V16 tmp10        [V16,T21] (  2,  4   )     int  -\u003E  rsi         \u0022Inlining Arg\u0022\n-;* V17 tmp11        [V17,T40] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n\u002B;* V17 tmp11        [V17,T39] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Span\u00601[char]\u003E\n ;* V19 tmp13        [V19    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V20 tmp14        [V20    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V21 tmp15        [V21,T02] (  7,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V21 tmp15        [V21,T02] (  7,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Span\u00601[char]\u003E\n ;  V23 tmp17        [V23,T18] (  4,  4   )     int  -\u003E  rdi         \u0022Inlining Arg\u0022\n ;* V24 tmp18        [V24    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Span\u00601[char]\u003E\n ;  V25 tmp19        [V25,T31] (  2,  2   )   byref  -\u003E  rax         single-def \u0022Inlining Arg\u0022\n-;  V26 tmp20        [V26,T34] (  2,  2   )     int  -\u003E  rsi         \u0022Inlining Arg\u0022\n-;* V27 tmp21        [V27,T43] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n\u002B;  V26 tmp20        [V26,T33] (  2,  2   )     int  -\u003E  rsi         \u0022Inlining Arg\u0022\n\u002B;* V27 tmp21        [V27,T42] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n ;* V28 tmp22        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Span\u00601[char]\u003E\n ;* V29 tmp23        [V29    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V30 tmp24        [V30    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n@@ -43,19 \u002B43,19 @@\n ;* V32 tmp26        [V32    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Span\u00601[char]\u003E\n ;  V33 tmp27        [V33,T06] (  4,  8   )     int  -\u003E  rdi         \u0022Inlining Arg\u0022\n ;* V34 tmp28        [V34    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;  V35 tmp29        [V35,T08] (  5,  6   )   byref  -\u003E  r13         single-def \u0022Inlining Arg\u0022\n\u002B;  V35 tmp29        [V35,T08] (  5,  6   )   byref  -\u003E  r14         single-def \u0022Inlining Arg\u0022\n ;  V36 tmp30        [V36,T22] (  2,  4   )     int  -\u003E  rsi         \u0022Inlining Arg\u0022\n-;* V37 tmp31        [V37,T41] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n\u002B;* V37 tmp31        [V37,T40] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n ;* V38 tmp32        [V38    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Span\u00601[char]\u003E\n ;* V39 tmp33        [V39    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V40 tmp34        [V40    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V41 tmp35        [V41,T03] (  7,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V41 tmp35        [V41,T03] (  7,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V42 tmp36        [V42    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Span\u00601[char]\u003E\n ;  V43 tmp37        [V43,T19] (  4,  4   )     int  -\u003E  rdi         \u0022Inlining Arg\u0022\n ;* V44 tmp38        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Span\u00601[char]\u003E\n ;  V45 tmp39        [V45,T32] (  2,  2   )   byref  -\u003E  rax         single-def \u0022Inlining Arg\u0022\n-;  V46 tmp40        [V46,T35] (  2,  2   )     int  -\u003E  rsi         \u0022Inlining Arg\u0022\n-;* V47 tmp41        [V47,T44] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n\u002B;  V46 tmp40        [V46,T34] (  2,  2   )     int  -\u003E  rsi         \u0022Inlining Arg\u0022\n\u002B;* V47 tmp41        [V47,T43] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n ;* V48 tmp42        [V48    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Span\u00601[char]\u003E\n ;* V49 tmp43        [V49    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V50 tmp44        [V50    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n@@ -63,69 \u002B63,68 @@\n ;* V52 tmp46        [V52    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Span\u00601[char]\u003E\n ;  V53 tmp47        [V53,T07] (  4,  8   )     int  -\u003E  rdi         \u0022Inlining Arg\u0022\n ;* V54 tmp48        [V54    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;  V55 tmp49        [V55,T20] (  3,  4   )   byref  -\u003E  r13         single-def \u0022Inlining Arg\u0022\n\u002B;  V55 tmp49        [V55,T20] (  3,  4   )   byref  -\u003E  r14         single-def \u0022Inlining Arg\u0022\n ;  V56 tmp50        [V56,T23] (  2,  4   )     int  -\u003E  rsi         \u0022Inlining Arg\u0022\n-;* V57 tmp51        [V57,T42] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n\u002B;* V57 tmp51        [V57,T41] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n ;* V58 tmp52        [V58    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Span\u00601[char]\u003E\n ;* V59 tmp53        [V59    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V60 tmp54        [V60    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V61 tmp55        [V61,T28] (  3,  2   )     ref  -\u003E  r15         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.ContractPricingLineQuantityChange]\u003E\n-;  V62 tmp56        [V62,T09] (  4,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V62 tmp56        [V62,T09] (  4,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V63 tmp57        [V63    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V64 tmp58        [V64,T33] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;  V65 tmp59        [V65,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.ContractPricingLineQuantityChange]\u003E\n-;* V66 tmp60        [V66    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V67 tmp61        [V67    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V68 tmp62        [V68,T10] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.ContractPricingLineQuantityChange]\u003E\n... diff truncated; middle omitted ...\n\u002B\t\t\t\t\t\t;; size=51 bbWeight=0.50 PerfScore 3.75\n G_M6871_IG15:\n-       mov      rdi, r12\n\u002B       mov      rdi, r13\n        mov      rax, 0xD1FFAB1E      ; code for System.Net.WebUtility:UrlEncode(System.String):System.String\n        call     [rax]System.Net.WebUtility:UrlEncode(System.String):System.String\n-       mov      r13, rax\n\u002B       mov      r14, rax\n        cmp      byte  ptr [rbp-0x3C], 0\n        jne      SHORT G_M6871_IG17\n \t\t\t\t\t\t;; size=24 bbWeight=1 PerfScore 5.75\n G_M6871_IG16:\n-       test     r13, r13\n\u002B       test     r14, r14\n        je       SHORT G_M6871_IG17\n        mov      edi, dword ptr [rbp-0x40]\n        cmp      edi, dword ptr [rbp-0x30]\n@@ -290,24 \u002B289,24 @@ G_M6871_IG16:\n        lea      rax, bword ptr [rsi\u002B2*rax]\n        mov      esi, dword ptr [rbp-0x30]\n        sub      esi, edi\n-       cmp      dword ptr [r13\u002B0x08], esi\n\u002B       cmp      dword ptr [r14\u002B0x08], esi\n        jbe      SHORT G_M6871_IG18\n \t\t\t\t\t\t;; size=38 bbWeight=0.50 PerfScore 5.12\n G_M6871_IG17:\n        lea      rdi, [rbp-0x50]\n-       mov      rsi, r13\n\u002B       mov      rsi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormattedSlow(System.String):this\n        call     [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormattedSlow(System.String):this\n        jmp      SHORT G_M6871_IG19\n \t\t\t\t\t\t;; size=21 bbWeight=0.50 PerfScore 3.00\n G_M6871_IG18:\n-       mov      edx, dword ptr [r13\u002B0x08]\n\u002B       mov      edx, dword ptr [r14\u002B0x08]\n        add      rdx, rdx\n-       lea      rsi, bword ptr [r13\u002B0x0C]\n\u002B       lea      rsi, bword ptr [r14\u002B0x0C]\n        mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,nuint)\n        call     [rax]System.SpanHelpers:Memmove(byref,byref,nuint)\n-       mov      edi, dword ptr [r13\u002B0x08]\n\u002B       mov      edi, dword ptr [r14\u002B0x08]\n        add      edi, dword ptr [rbp-0x40]\n        mov      dword ptr [rbp-0x40], edi\n \t\t\t\t\t\t;; size=36 bbWeight=0.50 PerfScore 5.12\n@@ -318,7 \u002B317,7 @@ G_M6871_IG19:\n        ja       G_M6871_IG27\n        mov      rax, bword ptr [rbp-0x38]\n        mov      ecx, edi\n-       lea      r13, bword ptr [rax\u002B2*rcx]\n\u002B       lea      r14, bword ptr [rax\u002B2*rcx]\n        sub      esi, edi\n        cmp      esi, 17\n        jae      SHORT G_M6871_IG21\n@@ -332,29 \u002B331,24 @@ G_M6871_IG20:\n \t\t\t\t\t\t;; size=28 bbWeight=0.50 PerfScore 3.00\n G_M6871_IG21:\n        vmovups  ymm0, ymmword ptr [reloc @RWD64]\n-       vmovups  ymmword ptr [r13], ymm0\n-       mov      word  ptr [r13\u002B0x20], 115\n\u002B       vmovups  ymmword ptr [r14], ymm0\n\u002B       mov      word  ptr [r14\u002B0x20], 115\n        mov      edi, dword ptr [rbp-0x40]\n        add      edi, 17\n        mov      dword ptr [rbp-0x40], edi\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 3.12\n\u002B\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 3.12\n G_M6871_IG22:\n        lea      rdi, [rbp-0x50]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this\n        call     [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this\n-       mov      r13, rax\n-       mov      rdi, r13\n\u002B       mov      r14, rax\n\u002B       mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for Stripe.ApiModeUtils:GetApiMode(System.String):int\n        call     [rax]Stripe.ApiModeUtils:GetApiMode(System.String):int\n        cmp      eax, 1\n        je       G_M6871_IG24\n \t\t\t\t\t\t;; size=43 bbWeight=1 PerfScore 8.75\n G_M6871_IG23:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.ContractPricingLineQuantityChange]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n@@ -365,41 \u002B359,38 @@ G_M6871_IG23:\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n-       mov      eax, dword ptr [rax\u002B0x10]\n-       mov      dword ptr [rbp-0x54], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n\u002B       mov      r13d, dword ptr [rax\u002B0x10]\n\u002B       mov      dword ptr [r12\u002B0x6C], r13d\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x28]\n-       mov      rsi, r13\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n        mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r12\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r12\u002B0x48]\n\u002B       mov      rsi, r15\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.ContractPricingLineQuantityChange]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        mov      dword ptr [r15\u002B0x28], -2\n-       mov      r14d, dword ptr [rbp-0x54]\n-       mov      dword ptr [r15\u002B0x2C], r14d\n\u002B       mov      dword ptr [r15\u002B0x2C], r13d\n        lea      rdi, bword ptr [r15\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M6871_IG25\n-\t\t\t\t\t\t;; size=212 bbWeight=0.50 PerfScore 16.00\n\u002B\t\t\t\t\t\t;; size=172 bbWeight=0.50 PerfScore 12.75\n G_M6871_IG24:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.ContractPricingLineQuantityChange]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r13, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x70], rdi\n-       mov      dword ptr [r12\u002B0x60], -2\n\u002B       mov      qword ptr [r13\u002B0x70], rdi\n\u002B       mov      dword ptr [r13\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n@@ -407,31 \u002B398,31 @@ G_M6871_IG24:\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      eax, edi\n        mov      dword ptr [rbp-0x54], eax\n-       mov      dword ptr [r12\u002B0x64], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      dword ptr [r13\u002B0x64], eax\n\u002B       lea      rdi, bword ptr [r13\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x28]\n-       mov      rsi, r13\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n\u002B       lea      rdi, bword ptr [r13\u002B0x28]\n        mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n\u002B       lea      rdi, bword ptr [r13\u002B0x38]\n\u002B       mov      rsi, r12\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       lea      rdi, bword ptr [r13\u002B0x48]\n\u002B       mov      rsi, r15\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xA8], rdi\n\u002B       mov      qword ptr [r13\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.ContractPricingLineQuantityChange]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        mov      dword ptr [r15\u002B0x28], -2\n-       mov      r14d, dword ptr [rbp-0x54]\n-       mov      dword ptr [r15\u002B0x2C], r14d\n\u002B       mov      ebx, dword ptr [rbp-0x54]\n\u002B       mov      dword ptr [r15\u002B0x2C], ebx\n        lea      rdi, bword ptr [r15\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=181 bbWeight=0.50 PerfScore 13.12\n\u002B\t\t\t\t\t\t;; size=172 bbWeight=0.50 PerfScore 13.12\n G_M6871_IG25:\n        mov      rax, r15\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n@@ -456,5 \u002B447,5 @@ RWD32  \tdq\t006900720070002Fh, 0067006E00690063h\n RWD64  \tdq\t006100750071002Fh, 007400690074006Eh, 00680063005F0079h, 00650067006E0061h\n \n \n-; Total bytes of code 1127, prolog size 35, PerfScore 145.83, instruction count 268, allocated bytes for code 1127 (MethodHash=7d51e528) for method Stripe.V2.Billing.Contracts.PricingLines.QuantityChangeService:ListContractPricingLineQuantityChangesAutoPaging(System.String,System.String,Stripe.V2.Billing.Contracts.PricingLines.QuantityChangeListContractPricingLineQuantityChangesOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.ContractPricingLineQuantityChange]:this (FullOpts)\n\u002B; Total bytes of code 1076, prolog size 35, PerfScore 142.58, instruction count 260, allocated bytes for code 1076 (MethodHash=7d51e528) for method Stripe.V2.Billing.Contracts.PricingLines.QuantityChangeService:ListContractPricingLineQuantityChangesAutoPaging(System.String,System.String,Stripe.V2.Billing.Contracts.PricingLines.QuantityChangeListContractPricingLineQuantityChangesOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.ContractPricingLineQuantityChange]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1127,"DiffBytes":1076},{"Assembly":"System.CommandLine.dasm","Method":"System.CommandLine.Argument\u00601[System.Numerics.Vector\u00601[float]]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,System.Numerics.Vector\u00601[float]]:this (FullOpts)","Category":"improvement","Description":"234 -\u003E 5 bytes (-229)","ExtraInfo":null,"Diff":"@@ -1,100 \u002B1,35 @@\n ; Assembly listing for method System.CommandLine.Argument\u00601[System.Numerics.Vector\u00601[float]]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,System.Numerics.Vector\u00601[float]]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] (  4,  3.50)     ref  -\u003E  rdi         this class-hnd single-def \u003CSystem.CommandLine.Argument\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V01 loc0         [V01,T06] (  3,  1.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.CommandLine.Argument\u00601[bool]\u003E\n\u002B;  V00 this         [V00,T00] (  3,  3   )     ref  -\u003E  rdi         this class-hnd single-def \u003CSystem.CommandLine.Argument\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;* V01 loc0         [V01    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.CommandLine.Argument\u00601[bool]\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V03 tmp1         [V03,T05] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\u003E\n-;* V04 tmp2         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V05 tmp3         [V05,T04] (  4,  2   )     ref  -\u003E  rsi        \n-;  V06 tmp4         [V06,T01] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\u003E\n-;  V07 tmp5         [V07,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.CommandLine.Argument\u00601\u002B\u003C\u003Ec[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;* V03 tmp1         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\u003E\n\u002B;* V04 tmp2         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref   \n\u002B;* V05 tmp3         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref   \n\u002B;* V06 tmp4         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\u003E\n\u002B;* V07 tmp5         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.CommandLine.Argument\u00601\u002B\u003C\u003Ec[System.Numerics.Vector\u00601[float]]\u003E\n ;* V08 tmp6         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.CommandLine.Argument\u00601[bool]\u003E\n ;* V09 tmp7         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\u003E\n-;* V10 cse0         [V10,T07] (  0,  0   )   byref  -\u003E  zero-ref    \u0022CSE #02: aggressive\u0022\n-;  V11 cse1         [V11,T03] (  3,  3   )     ref  -\u003E  rbx         \u0022CSE #04: aggressive\u0022\n\u002B;  V10 cse0         [V10,T01] (  2,  2   )     ref  -\u003E  rax         \u0022CSE #01: aggressive\u0022\n ;\n-; Lcl frame size = 8\n\u002B; Lcl frame size = 0\n \n G_M20631_IG01:\n-       push     rbp\n-       push     r15\n-       push     r14\n-       push     rbx\n-       push     rax\n-       lea      rbp, [rsp\u002B0x20]\n-\t\t\t\t\t\t;; size=12 bbWeight=1 PerfScore 5.50\n\u002B\t\t\t\t\t\t;; size=0 bbWeight=1 PerfScore 0.00\n G_M20631_IG02:\n-       mov      rbx, gword ptr [rdi\u002B0x60]\n-       test     rbx, rbx\n-       jne      G_M20631_IG06\n-\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.25\n\u002B       mov      rax, gword ptr [rdi\u002B0x60]\n\u002B\t\t\t\t\t\t;; size=4 bbWeight=1 PerfScore 2.00\n G_M20631_IG03:\n-       mov      rsi, rdi\n-       mov      rdi, 0xD1FFAB1E      ; System.CommandLine.Argument\u00601[bool]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n-       test     r15, r15\n-       je       SHORT G_M20631_IG06\n-       mov      rdi, 0xD1FFAB1E      ; global ptr\n-       test     byte  ptr [rdi], 1\n-       je       SHORT G_M20631_IG08\n-\t\t\t\t\t\t;; size=48 bbWeight=0.50 PerfScore 4.25\n-G_M20631_IG04:\n-       mov      rdi, 0xD1FFAB1E      ; data for System.CommandLine.Argument\u00601\u002B\u003C\u003Ec[System.Numerics.Vector\u00601[float]]:\u003C\u003E9__4_0\n-       mov      rsi, gword ptr [rdi]\n-       test     rsi, rsi\n-       jne      SHORT G_M20631_IG05\n-       mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      rdi, 0xD1FFAB1E      ; data for System.CommandLine.Argument\u00601\u002B\u003C\u003Ec[System.Numerics.Vector\u00601[float]]:\u003C\u003E9\n-       mov      rsi, gword ptr [rdi]\n-       test     rsi, rsi\n-       je       SHORT G_M20631_IG09\n-       lea      rdi, bword ptr [r14\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, 0xD1FFAB1E      ; code for System.CommandLine.Argument\u00601\u002B\u003C\u003Ec[System.Numerics.Vector\u00601[float]]:\u003Cget_DefaultValueFactory\u003Eb__4_0(System.CommandLine.Parsing.ArgumentResult):bool:this\n-       mov      qword ptr [r14\u002B0x18], rdi\n-       mov      rdi, 0xD1FFAB1E      ; data for System.CommandLine.Argument\u00601\u002B\u003C\u003Ec[System.Numerics.Vector\u00601[float]]:\u003C\u003E9__4_0\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rsi, r14\n-\t\t\t\t\t\t;; size=98 bbWeight=0.50 PerfScore 6.50\n-G_M20631_IG05:\n-       lea      rdi, bword ptr [r15\u002B0x60]\n-       call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 0.75\n-G_M20631_IG06:\n-       mov      rax, rbx\n-\t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M20631_IG07:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M20631_IG08:\n-       mov      rdi, 0xD1FFAB1E      ; System.CommandLine.Argument\u00601\u002B\u003C\u003Ec[System.Numerics.Vector\u00601[float]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M20631_IG04\n-\t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M20631_IG09:\n-       mov      rax, 0xD1FFAB1E      ; code for System.Delegate:ThrowNullThisInDelegateToInstance()\n-       call     [rax]System.Delegate:ThrowNullThisInDelegateToInstance()\n-       int3     \n-\t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n\u002B\t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 1.00\n \n-; Total bytes of code 234, prolog size 12, PerfScore 23.75, instruction count 54, allocated bytes for code 234 (MethodHash=bcbeaf68) for method System.CommandLine.Argument\u00601[System.Numerics.Vector\u00601[float]]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,System.Numerics.Vector\u00601[float]]:this (FullOpts)\n\u002B; Total bytes of code 5, prolog size 0, PerfScore 3.00, instruction count 2, allocated bytes for code 5 (MethodHash=bcbeaf68) for method System.CommandLine.Argument\u00601[System.Numerics.Vector\u00601[float]]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,System.Numerics.Vector\u00601[float]]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":234,"DiffBytes":5},{"Assembly":"System.Data.Common.dasm","Method":"System.Data.EnumerableRowCollectionExtensions:Select[byte,System.Nullable\u00601[int]](System.Data.EnumerableRowCollection\u00601[byte],System.Func\u00602[byte,System.Nullable\u00601[int]]):System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]] (FullOpts)","Category":"regression","Description":"147 -\u003E 249 bytes (\u002B102)","ExtraInfo":null,"Diff":"@@ -1,66 \u002B1,94 @@\n ; Assembly listing for method System.Data.EnumerableRowCollectionExtensions:Select[byte,System.Nullable\u00601[int]](System.Data.EnumerableRowCollection\u00601[byte],System.Func\u00602[byte,System.Nullable\u00601[int]]):System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]] (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n\u002B; 0 inlinees with PGO data; 4 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T00] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.EnumerableRowCollection\u00601[byte]\u003E\n-;  V01 arg1         [V01,T01] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Func\u00602[byte,System.Nullable\u00601[int]]\u003E\n-;  V02 loc0         [V02,T05] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V00 arg0         [V00,T04] (  3,  3   )     ref  -\u003E  rdi         class-hnd single-def \u003CSystem.Data.EnumerableRowCollection\u00601[byte]\u003E\n\u002B;  V01 arg1         [V01,T01] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Func\u00602[byte,System.Nullable\u00601[int]]\u003E\n\u002B;  V02 loc0         [V02,T07] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V04 tmp1         [V04,T02] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]]\u003E\n-;  V05 tmp2         [V05,T03] (  2,  4   )     ref  -\u003E  rbx         single-def \u0022argument with side effect\u0022\n-;  V06 tmp3         [V06,T04] (  2,  4   )     ref  -\u003E  rcx         single-def \u0022argument with side effect\u0022\n\u002B;  V04 tmp1         [V04,T00] (  6, 12   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V05 tmp2         [V05,T05] (  2,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]\u003E\n\u002B;  V06 tmp3         [V06,T02] (  3,  6   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Func\u00602[System.Nullable\u00601[int],bool]]\u003E\n\u002B;  V07 tmp4         [V07,T03] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.SortExpressionBuilder\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V08 cse0         [V08,T06] (  3,  2   )    long  -\u003E  rbx         \u0022CSE #01: aggressive\u0022\n ;\n-; Lcl frame size = 0\n\u002B; Lcl frame size = 8\n \n G_M26529_IG01:\n        push     rbp\n        push     r15\n        push     r14\n-       push     r13\n        push     rbx\n\u002B       push     rax\n        lea      rbp, [rsp\u002B0x20]\n-       mov      rbx, rdi\n-       mov      r15, rsi\n-\t\t\t\t\t\t;; size=19 bbWeight=1 PerfScore 6.00\n\u002B       mov      rbx, rsi\n\u002B\t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 5.75\n G_M26529_IG02:\n-       mov      rdi, rbx\n-       mov      rsi, r15\n\u002B       mov      rsi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:Select[byte,System.Nullable\u00601[int]](System.Collections.Generic.IEnumerable\u00601[byte],System.Func\u00602[byte,System.Nullable\u00601[int]]):System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]\n        call     [rax]System.Linq.Enumerable:Select[byte,System.Nullable\u00601[int]](System.Collections.Generic.IEnumerable\u00601[byte],System.Func\u00602[byte,System.Nullable\u00601[int]]):System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]\n-       mov      r14, rax\n\u002B       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n\u002B       mov      r14, rax\n        mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      rbx, rax\n-       mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFANY\n        call     [rax]CORINFO_HELP_ISINSTANCEOFANY\n-       mov      rcx, rax\n\u002B       mov      rbx, rax\n\u002B       lea      rdi, bword ptr [r14\u002B0x10]\n\u002B       mov      rsi, r15\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       lea      rdi, bword ptr [r14\u002B0x28]\n        mov      rsi, rbx\n-       mov      rdx, r14\n-       mov      rdi, r13\n-       mov      rax, 0xD1FFAB1E      ; code for System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]]:.ctor(System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]],System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]],System.Func\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]):this\n-       call     [rax]System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]]:.ctor(System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]],System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]],System.Func\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]):this\n-       mov      rax, r13\n-\t\t\t\t\t\t;; size=119 bbWeight=1 PerfScore 17.75\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       mov      rbx, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.Func\u00602[System.Nullable\u00601[int],bool]]\n\u002B       mov      rdi, rbx\n\u002B       call     CORINFO_HELP_NEWSFAST\n\u002B       mov      r15, rax\n\u002B       mov      rdi, 0xD1FFAB1E      ; global ptr\n\u002B       test     byte  ptr [rdi], 1\n\u002B       je       SHORT G_M26529_IG05\n\u002B\t\t\t\t\t\t;; size=124 bbWeight=1 PerfScore 17.75\n G_M26529_IG03:\n\u002B       mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.List\u00601[System.Func\u00602[System.Nullable\u00601[int],bool]]:s_emptyArray\n\u002B       mov      rsi, gword ptr [rdi]\n\u002B       lea      rdi, bword ptr [r15\u002B0x08]\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n\u002B       mov      rsi, r15\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       mov      rdi, 0xD1FFAB1E      ; System.Data.SortExpressionBuilder\u00601[System.Nullable\u00601[int]]\n\u002B       call     CORINFO_HELP_NEWSFAST\n\u002B       mov      rbx, rax\n\u002B       mov      rdi, rbx\n\u002B       mov      rax, 0xD1FFAB1E      ; code for System.Data.SortExpressionBuilder\u00601[System.Nullable\u00601[int]]:.ctor():this\n\u002B       call     [rax]System.Data.SortExpressionBuilder\u00601[System.Nullable\u00601[int]]:.ctor():this\n\u002B       lea      rdi, bword ptr [r14\u002B0x20]\n\u002B       mov      rsi, rbx\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       mov      rax, r14\n\u002B\t\t\t\t\t\t;; size=82 bbWeight=1 PerfScore 12.50\n\u002BG_M26529_IG04:\n\u002B       add      rsp, 8\n        pop      rbx\n-       pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.50\n\u002B\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n\u002BG_M26529_IG05:\n\u002B       mov      rdi, rbx\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n\u002B       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n\u002B       jmp      SHORT G_M26529_IG03\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 147, prolog size 13, PerfScore 27.25, instruction count 38, allocated bytes for code 147 (MethodHash=149a985e) for method System.Data.EnumerableRowCollectionExtensions:Select[byte,System.Nullable\u00601[int]](System.Data.EnumerableRowCollection\u00601[byte],System.Func\u00602[byte,System.Nullable\u00601[int]]):System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]] (FullOpts)\n\u002B; Total bytes of code 249, prolog size 12, PerfScore 39.25, instruction count 59, allocated bytes for code 249 (MethodHash=149a985e) for method System.Data.EnumerableRowCollectionExtensions:Select[byte,System.Nullable\u00601[int]](System.Data.EnumerableRowCollection\u00601[byte],System.Func\u00602[byte,System.Nullable\u00601[int]]):System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]] (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":147,"DiffBytes":249},{"Assembly":"System.Linq.Dynamic.Core.dasm","Method":"System.Linq.Dynamic.Core.Parser.ExpressionHelper:GetMethodCallExpression(System.Linq.Expressions.MethodCallExpression):System.Linq.Expressions.Expression (FullOpts)","Category":"improvement","Description":"173 -\u003E 121 bytes (-52)","ExtraInfo":null,"Diff":"@@ -1,93 \u002B1,76 @@\n ; Assembly listing for method System.Linq.Dynamic.Core.Parser.ExpressionHelper:GetMethodCallExpression(System.Linq.Expressions.MethodCallExpression):System.Linq.Expressions.Expression (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 5 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 arg0         [V00,T00] (  6,  5   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V02 tmp1         [V02,T01] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V03 tmp2         [V03    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V04 tmp3         [V04,T04] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V05 tmp4         [V05,T03] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V06 cse0         [V06,T02] (  4,  3   )    long  -\u003E  r15         \u0022CSE #02: aggressive\u0022\n\u002B;  V02 tmp1         [V02,T02] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V03 tmp2         [V03    ] (  1,  0.50)   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V04 tmp3         [V04,T03] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;* V05 tmp4         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V06 cse0         [V06,T01] (  4,  3   )    long  -\u003E  r15         \u0022CSE #02: aggressive\u0022\n ;\n ; Lcl frame size = 16\n \n G_M41619_IG01:\n        push     rbp\n        push     r15\n        push     rbx\n        sub      rsp, 16\n        lea      rbp, [rsp\u002B0x20]\n        mov      rbx, rdi\n \t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 4.00\n G_M41619_IG02:\n        mov      rdi, rbx\n        mov      rax, qword ptr [rbx]\n        mov      r15, qword ptr [rax\u002B0x48]\n        call     [r15\u002B0x10]System.Linq.Expressions.MethodCallExpression:GetInstance():System.Linq.Expressions.Expression:this\n        test     rax, rax\n-       jne      SHORT G_M41619_IG07\n\u002B       jne      SHORT G_M41619_IG05\n \t\t\t\t\t\t;; size=19 bbWeight=1 PerfScore 8.50\n G_M41619_IG03:\n        mov      rdi, rbx\n        call     [r15\u002B0x20]System.Linq.Expressions.MethodCallExpression:GetOrMakeArguments():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]:this\n-       mov      rbx, rax\n-       test     rbx, rbx\n-       je       SHORT G_M41619_IG09\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M41619_IG04\n-       lea      rsi, [rbp-0x18]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M41619_IG05\n-\t\t\t\t\t\t;; size=64 bbWeight=0.50 PerfScore 9.75\n-G_M41619_IG04:\n\u002B       je       SHORT G_M41619_IG07\n        lea      rdx, [rbp-0x18]\n-       mov      rsi, rbx\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Linq.Expressions.Expression](System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.Expression],byref):System.Linq.Expressions.Expression\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M41619_IG05:\n        nop      \n-\t\t\t\t\t\t;; size=1 bbWeight=0.50 PerfScore 0.12\n\u002B\t\t\t\t\t\t;; size=42 bbWeight=0.50 PerfScore 4.50\n\u002BG_M41619_IG04:\n\u002B       add      rsp, 16\n\u002B       pop      rbx\n\u002B       pop      r15\n\u002B       pop      rbp\n\u002B       ret      \n\u002B\t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 1.38\n\u002BG_M41619_IG05:\n\u002B       mov      rdi, rbx\n\u002B       call     [r15\u002B0x10]System.Linq.Expressions.MethodCallExpression:GetInstance():System.Linq.Expressions.Expression:this\n\u002B       nop      \n\u002B\t\t\t\t\t\t;; size=8 bbWeight=0.50 PerfScore 1.75\n G_M41619_IG06:\n        add      rsp, 16\n        pop      rbx\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 1.38\n G_M41619_IG07:\n-       mov      rdi, rbx\n-       call     [r15\u002B0x10]System.Linq.Expressions.MethodCallExpression:GetInstance():System.Linq.Expressions.Expression:this\n-       nop      \n-\t\t\t\t\t\t;; size=8 bbWeight=0.50 PerfScore 1.75\n-G_M41619_IG08:\n-       add      rsp, 16\n-       pop      rbx\n-       pop      r15\n-       pop      rbp\n-       ret      \n-\t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 1.38\n-G_M41619_IG09:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 173, prolog size 13, PerfScore 29.00, instruction count 52, allocated bytes for code 173 (MethodHash=e89f5d6c) for method System.Linq.Dynamic.Core.Parser.ExpressionHelper:GetMethodCallExpression(System.Linq.Expressions.MethodCallExpression):System.Linq.Expressions.Expression (FullOpts)\n\u002B; Total bytes of code 121, prolog size 13, PerfScore 21.50, instruction count 39, allocated bytes for code 121 (MethodHash=e89f5d6c) for method System.Linq.Dynamic.Core.Parser.ExpressionHelper:GetMethodCallExpression(System.Linq.Expressions.MethodCallExpression):System.Linq.Expressions.Expression (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":173,"DiffBytes":121},{"Assembly":"System.Private.CoreLib.dasm","Method":"System.Runtime.CompilerServices.AsyncProfiler\u002BContinuationWrapper:InitContinuationWrappers():System.Runtime.CompilerServices.AsyncProfiler\u002BContinuationWrapper\u002BContinuationWrapperTable (FullOpts)","Category":"same-size","Description":"79 -\u003E 79 bytes (0)","ExtraInfo":null,"Diff":"@@ -1,76 \u002B1,76 @@\n ; Assembly listing for method System.Runtime.CompilerServices.AsyncProfiler\u002BContinuationWrapper:InitContinuationWrappers():System.Runtime.CompilerServices.AsyncProfiler\u002BContinuationWrapper\u002BContinuationWrapperTable (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 32 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 RetBuf       [V00,T00] (  7,  7   )    long  -\u003E  rdi         single-def\n ;* V01 loc0         [V01    ] (  0,  0   )  struct (256) zero-ref    do-not-enreg[SF] ld-addr-op \u003CSystem.Runtime.CompilerServices.AsyncProfiler\u002BContinuationWrapper\u002BContinuationWrapperTable\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V03 tmp1         [V03    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V01.[000..008)\u0022\n ;* V04 tmp2         [V04    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V01.[008..016)\u0022\n ;* V05 tmp3         [V05    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V01.[016..024)\u0022\n ;* V06 tmp4         [V06    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V01.[024..032)\u0022\n ;* V07 tmp5         [V07    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V01.[032..040)\u0022\n ;* V08 tmp6         [V08    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V01.[040..048)\u0022\n ;* V09 tmp7         [V09    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V01.[048..056)\u0022\n ;* V10 tmp8         [V10    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V01.[056..064)\u0022\n ;* V11 tmp9         [V11    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V01.[064..072)\u0022\n ;* V12 tmp10        [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V01.[072..080)\u0022\n ;* V13 tmp11        [V13    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V01.[080..088)\u0022\n ;* V14 tmp12        [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V01.[088..096)\u0022\n ;* V15 tmp13        [V15    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V01.[096..104)\u0022\n ;* V16 tmp14        [V16    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V01.[104..112)\u0022\n ;* V17 tmp15        [V17    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V01.[112..120)\u0022\n ;* V18 tmp16        [V18    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V01.[120..128)\u0022\n ;* V19 tmp17        [V19    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V01.[128..136)\u0022\n ;* V20 tmp18        [V20    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V01.[136..144)\u0022\n ;* V21 tmp19        [V21    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V01.[144..152)\u0022\n ;* V22 tmp20        [V22    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V01.[152..160)\u0022\n ;* V23 tmp21        [V23    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V01.[160..168)\u0022\n ;* V24 tmp22        [V24    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V01.[168..176)\u0022\n ;* V25 tmp23        [V25    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V01.[176..184)\u0022\n ;* V26 tmp24        [V26    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V01.[184..192)\u0022\n ;* V27 tmp25        [V27    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V01.[192..200)\u0022\n ;* V28 tmp26        [V28    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V01.[200..208)\u0022\n ;* V29 tmp27        [V29    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V01.[208..216)\u0022\n ;* V30 tmp28        [V30    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V01.[216..224)\u0022\n ;* V31 tmp29        [V31    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V01.[224..232)\u0022\n ;* V32 tmp30        [V32    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V01.[232..240)\u0022\n ;* V33 tmp31        [V33    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V01.[240..248)\u0022\n ;* V34 tmp32        [V34    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V01.[248..256)\u0022\n ;\n ; Lcl frame size = 0\n \n G_M36615_IG01:\n        push     rbp\n        mov      rbp, rsp\n \t\t\t\t\t\t;; size=4 bbWeight=1 PerfScore 1.25\n G_M36615_IG02:\n        vmovups  zmm0, zmmword ptr [reloc @RWD00]\n        vmovups  zmmword ptr [rdi], zmm0\n        vmovups  zmm0, zmmword ptr [reloc @RWD64]\n        vmovups  zmmword ptr [rdi\u002B0x40], zmm0\n        vmovups  zmm0, zmmword ptr [reloc @RWD128]\n        vmovups  zmmword ptr [rdi\u002B0x80], zmm0\n        vmovups  zmm0, zmmword ptr [reloc @RWD192]\n        vmovups  zmmword ptr [rdi\u002B0xC0], zmm0\n        mov      rax, rdi\n \t\t\t\t\t\t;; size=70 bbWeight=1 PerfScore 20.25\n G_M36615_IG03:\n        vzeroupper \n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 2.50\n-RWD00  \tdq\t00007907D4741320h, 00007907D4741338h, 00007907D4741350h, 00007907D4741368h, 00007907D4741380h, 00007907D4741398h, 00007907D47413B0h, 00007907D47413C8h\n-RWD64  \tdq\t00007907D47413E0h, 00007907D47413F8h, 00007907D4741410h, 00007907D4741428h, 00007907D4741440h, 00007907D4741458h, 00007907D4741470h, 00007907D4741488h\n-RWD128 \tdq\t00007907D47414A0h, 00007907D47414B8h, 00007907D47414D0h, 00007907D47414E8h, 00007907D4741500h, 00007907D4741518h, 00007907D4741530h, 00007907D4741548h\n-RWD192 \tdq\t00007907D4741560h, 00007907D4741578h, 00007907D4741590h, 00007907D47415A8h, 00007907D47415C0h, 00007907D47415D8h, 00007907D47415F0h, 00007907D4741608h\n\u002BRWD00  \tdq\t000076F765341320h, 000076F765341338h, 000076F765341350h, 000076F765341368h, 000076F765341380h, 000076F765341398h, 000076F7653413B0h, 000076F7653413C8h\n\u002BRWD64  \tdq\t000076F7653413E0h, 000076F7653413F8h, 000076F765341410h, 000076F765341428h, 000076F765341440h, 000076F765341458h, 000076F765341470h, 000076F765341488h\n\u002BRWD128 \tdq\t000076F7653414A0h, 000076F7653414B8h, 000076F7653414D0h, 000076F7653414E8h, 000076F765341500h, 000076F765341518h, 000076F765341530h, 000076F765341548h\n\u002BRWD192 \tdq\t000076F765341560h, 000076F765341578h, 000076F765341590h, 000076F7653415A8h, 000076F7653415C0h, 000076F7653415D8h, 000076F7653415F0h, 000076F765341608h\n \n \n ; Total bytes of code 79, prolog size 4, PerfScore 24.00, instruction count 14, allocated bytes for code 79 (MethodHash=14f070f8) for method System.Runtime.CompilerServices.AsyncProfiler\u002BContinuationWrapper:InitContinuationWrappers():System.Runtime.CompilerServices.AsyncProfiler\u002BContinuationWrapper\u002BContinuationWrapperTable (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":79,"DiffBytes":79},{"Assembly":"ZstdSharp.dasm","Method":"ZstdSharp.Unsafe.Methods:ZSTD_resetCCtx_internal(ptr,ptr,ulong,nuint,int,int):nuint (FullOpts)","Category":"same-size","Description":"3,633 -\u003E 3,633 bytes (0)","ExtraInfo":null,"Diff":"@@ -1545,7 \u002B1545,7 @@ G_M60040_IG144:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=21 bbWeight=1 PerfScore 5.25\n-RWD00  \tdq\t00007FF4AC6774CAh, 00007FF4AC6774C8h, 00007FF4AC6774C8h, 0000000200000002h\n\u002BRWD00  \tdq\t000072B6C22754CAh, 000072B6C22754C8h, 000072B6C22754C8h, 0000000200000002h\n \n \n ; Total bytes of code 3633, prolog size 25, PerfScore 618.17, instruction count 940, allocated bytes for code 3633 (MethodHash=b0cb1577) for method ZstdSharp.Unsafe.Methods:ZSTD_resetCCtx_internal(ptr,ptr,ulong,nuint,int,int):nuint (FullOpts)","Truncated":true,"BaseBytes":3633,"DiffBytes":3633},{"Assembly":"Castle.Windsor.dasm","Method":"Castle.Core.ComponentModel:get_HasClassServices():bool:this (FullOpts)","Category":"improvement","Description":"207 -\u003E 151 bytes (-56)","ExtraInfo":null,"Diff":"@@ -1,103 \u002B1,84 @@\n ; Assembly listing for method Castle.Core.ComponentModel:get_HasClassServices():bool:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 2 single block inlinees; 3 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  3,  3   )     ref  -\u003E  rdi         this class-hnd single-def \u003CCastle.Core.ComponentModel\u003E\n ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V02 tmp1         [V02,T00] (  4,  7   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Type]\u003E\n-;  V03 tmp2         [V03    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V02 tmp1         [V02,T01] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Type]\u003E\n\u002B;  V03 tmp2         [V03    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V04 tmp3         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V05 tmp4         [V05,T05] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Type\u003E\n-;  V06 tmp5         [V06,T03] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Type]\u003E\n-;  V07 tmp6         [V07,T06] (  3,  2   )   ubyte  -\u003E  rax         \u0022Inline return value spill temp\u0022\n-;  V08 tmp7         [V08,T01] (  4,  7   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Reflection.TypeInfo\u003E\n-;  V09 cse0         [V09,T04] (  3,  2.50)    long  -\u003E  r15         \u0022CSE #01: aggressive\u0022\n\u002B;  V05 tmp4         [V05,T05] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Type\u003E\n\u002B;* V06 tmp5         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Type]\u003E\n\u002B;  V07 tmp6         [V07,T04] (  3,  2   )   ubyte  -\u003E  rax         \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp7         [V08,T00] (  4,  7   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Reflection.TypeInfo\u003E\n\u002B;  V09 cse0         [V09,T03] (  3,  2.50)    long  -\u003E  r15         \u0022CSE #01: aggressive\u0022\n ;\n ; Lcl frame size = 16\n \n G_M64141_IG01:\n        push     rbp\n        push     r15\n        push     rbx\n        sub      rsp, 16\n        lea      rbp, [rsp\u002B0x20]\n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n G_M64141_IG02:\n-       mov      rbx, gword ptr [rdi\u002B0x20]\n-       test     rbx, rbx\n-       je       G_M64141_IG09\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Type]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M64141_IG04\n-\t\t\t\t\t\t;; size=43 bbWeight=1 PerfScore 8.25\n-G_M64141_IG03:\n-       lea      rsi, [rbp-0x18]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M64141_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M64141_IG04:\n\u002B       mov      rsi, gword ptr [rdi\u002B0x20]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M64141_IG06\n        lea      rdx, [rbp-0x18]\n-       mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Type](System.Collections.Generic.IEnumerable\u00601[System.Type],byref):System.Type\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M64141_IG05:\n-       cmp      byte  ptr [rbp-0x18], 0\n-       je       SHORT G_M64141_IG10\n        mov      rdi, rax\n\u002B       cmp      byte  ptr [rbp-0x18], 0\n\u002B       je       SHORT G_M64141_IG07\n        mov      rax, 0xD1FFAB1E      ; code for System.Reflection.IntrospectionExtensions:GetTypeInfo(System.Type):System.Reflection.TypeInfo\n        call     [rax]System.Reflection.IntrospectionExtensions:GetTypeInfo(System.Type):System.Reflection.TypeInfo\n        mov      rbx, rax\n        mov      rdi, rbx\n        mov      r15, qword ptr [rbx]\n        mov      rax, qword ptr [r15\u002B0x70]\n        call     [rax\u002B0x18]System.Type:GetAttributeFlagsImpl():int:this\n        test     al, 32\n-       je       SHORT G_M64141_IG07\n-\t\t\t\t\t\t;; size=41 bbWeight=1 PerfScore 14.25\n-G_M64141_IG06:\n\u002B       je       SHORT G_M64141_IG04\n\u002B\t\t\t\t\t\t;; size=76 bbWeight=1 PerfScore 21.50\n\u002BG_M64141_IG03:\n        xor      eax, eax\n-       jmp      SHORT G_M64141_IG08\n\u002B       jmp      SHORT G_M64141_IG05\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 1.12\n-G_M64141_IG07:\n\u002BG_M64141_IG04:\n        mov      rdi, rbx\n        mov      rax, qword ptr [r15\u002B0x78]\n        call     [rax\u002B0x08]System.Type:IsValueTypeImpl():bool:this\n        test     eax, eax\n        sete     al\n        movzx    rax, al\n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 3.12\n-G_M64141_IG08:\n\u002BG_M64141_IG05:\n        add      rsp, 16\n        pop      rbx\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 2.75\n-G_M64141_IG09:\n\u002BG_M64141_IG06:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M64141_IG10:\n\u002BG_M64141_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 207, prolog size 13, PerfScore 40.25, instruction count 57, allocated bytes for code 207 (MethodHash=0b320572) for method Castle.Core.ComponentModel:get_HasClassServices():bool:this (FullOpts)\n\u002B; Total bytes of code 151, prolog size 13, PerfScore 32.25, instruction count 44, allocated bytes for code 151 (MethodHash=0b320572) for method Castle.Core.ComponentModel:get_HasClassServices():bool:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":207,"DiffBytes":151},{"Assembly":"ClosedXML.dasm","Method":"ClosedXML.Excel.XLDataValidations\u002B\u003C\u003Ec__DisplayClass19_0:\u003CConsolidate\u003Eb__1(ClosedXML.Excel.IXLDataValidation):bool:this (FullOpts)","Category":"improvement","Description":"169 -\u003E 116 bytes (-53)","ExtraInfo":null,"Diff":"@@ -1,89 \u002B1,68 @@\n ; Assembly listing for method ClosedXML.Excel.XLDataValidations\u002B\u003C\u003Ec__DisplayClass19_0:\u003CConsolidate\u003Eb__1(ClosedXML.Excel.IXLDataValidation):bool:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  rdi         this class-hnd single-def \u003CClosedXML.Excel.XLDataValidations\u002B\u003C\u003Ec__DisplayClass19_0\u003E\n\u002B;  V00 this         [V00,T00] (  4,  4   )     ref  -\u003E  rdi         this class-hnd single-def \u003CClosedXML.Excel.XLDataValidations\u002B\u003C\u003Ec__DisplayClass19_0\u003E\n ;  V01 arg1         [V01,T03] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CClosedXML.Excel.IXLDataValidation\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V03 tmp1         [V03,T02] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Func\u00603[ClosedXML.Excel.IXLDataValidation,ClosedXML.Excel.IXLDataValidation,bool]\u003E\n-;  V04 tmp2         [V04,T00] (  4,  7   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[ClosedXML.Excel.IXLDataValidation]\u003E\n-;  V05 tmp3         [V05    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V03 tmp1         [V03,T01] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Func\u00603[ClosedXML.Excel.IXLDataValidation,ClosedXML.Excel.IXLDataValidation,bool]\u003E\n\u002B;  V04 tmp2         [V04,T02] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[ClosedXML.Excel.IXLDataValidation]\u003E\n\u002B;  V05 tmp3         [V05    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V06 tmp4         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V07 tmp5         [V07,T05] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CClosedXML.Excel.IXLDataValidation\u003E\n-;  V08 tmp6         [V08,T04] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[ClosedXML.Excel.IXLDataValidation]\u003E\n\u002B;  V07 tmp5         [V07,T04] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CClosedXML.Excel.IXLDataValidation\u003E\n\u002B;* V08 tmp6         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[ClosedXML.Excel.IXLDataValidation]\u003E\n ;\n-; Lcl frame size = 8\n\u002B; Lcl frame size = 16\n \n G_M32308_IG01:\n        push     rbp\n        push     r15\n-       push     r14\n        push     rbx\n-       push     rax\n\u002B       sub      rsp, 16\n        lea      rbp, [rsp\u002B0x20]\n        mov      rbx, rsi\n-\t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 5.75\n\u002B\t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 4.00\n G_M32308_IG02:\n        mov      r15, gword ptr [rdi\u002B0x08]\n-       mov      r14, gword ptr [rdi\u002B0x10]\n-       test     r14, r14\n-       je       SHORT G_M32308_IG07\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[ClosedXML.Excel.IXLDataValidation]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n\u002B       mov      rsi, gword ptr [rdi\u002B0x10]\n\u002B       test     rsi, rsi\n        je       SHORT G_M32308_IG04\n-\t\t\t\t\t\t;; size=43 bbWeight=1 PerfScore 10.25\n-G_M32308_IG03:\n-       lea      rsi, [rbp-0x20]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M32308_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M32308_IG04:\n-       lea      rdx, [rbp-0x20]\n-       mov      rsi, r14\n\u002B       lea      rdx, [rbp-0x18]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[ClosedXML.Excel.IXLDataValidation](System.Collections.Generic.IEnumerable\u00601[ClosedXML.Excel.IXLDataValidation],byref):ClosedXML.Excel.IXLDataValidation\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M32308_IG05:\n-       cmp      byte  ptr [rbp-0x20], 0\n-       je       SHORT G_M32308_IG08\n        mov      rsi, rax\n\u002B       cmp      byte  ptr [rbp-0x18], 0\n\u002B       je       SHORT G_M32308_IG05\n        mov      rdx, rbx\n        mov      rdi, gword ptr [r15\u002B0x10]\n        call     [r15\u002B0x18]System.Func\u00603[System.__Canon,System.__Canon,bool]:Invoke(System.__Canon,System.__Canon):bool:this\n        nop      \n-\t\t\t\t\t\t;; size=21 bbWeight=1 PerfScore 7.75\n-G_M32308_IG06:\n-       add      rsp, 8\n\u002B\t\t\t\t\t\t;; size=60 bbWeight=1 PerfScore 17.00\n\u002BG_M32308_IG03:\n\u002B       add      rsp, 16\n        pop      rbx\n-       pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M32308_IG07:\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 2.75\n\u002BG_M32308_IG04:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M32308_IG08:\n\u002BG_M32308_IG05:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 169, prolog size 12, PerfScore 34.00, instruction count 48, allocated bytes for code 169 (MethodHash=6a0581cb) for method ClosedXML.Excel.XLDataValidations\u002B\u003C\u003Ec__DisplayClass19_0:\u003CConsolidate\u003Eb__1(ClosedXML.Excel.IXLDataValidation):bool:this (FullOpts)\n\u002B; Total bytes of code 116, prolog size 13, PerfScore 23.75, instruction count 33, allocated bytes for code 116 (MethodHash=6a0581cb) for method ClosedXML.Excel.XLDataValidations\u002B\u003C\u003Ec__DisplayClass19_0:\u003CConsolidate\u003Eb__1(ClosedXML.Excel.IXLDataValidation):bool:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":169,"DiffBytes":116},{"Assembly":"Consul.dasm","Method":"Consul.GetRequest\u00601\u002B\u003CExecuteStreaming\u003Ed__11[byte]:MoveNext():this (FullOpts)","Category":"improvement","Description":"1,458 -\u003E 1,431 bytes (-27)","ExtraInfo":null,"Diff":"@@ -8,8 \u002B8,8 @@\n ; 0 inlinees with PGO data; 57 single block inlinees; 13 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 45, 39   )   byref  -\u003E  [rbp-0x68]  this EH-live single-def\n-;  V01 loc0         [V01,T33] (  3,  3   )     int  -\u003E  rdi         single-def\n\u002B;  V00 this         [V00,T00] ( 42, 36   )   byref  -\u003E  [rbp-0x68]  this EH-live single-def\n\u002B;  V01 loc0         [V01,T35] (  3,  3   )     int  -\u003E  rdi         single-def\n ;  V02 loc1         [V02,T02] ( 11, 11   )     ref  -\u003E  rbx         class-hnd single-def \u003CConsul.GetRequest\u00601[byte]\u003E\n ;  V03 loc2         [V03,T14] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n ;* V04 loc3         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CSystem.Net.Http.HttpRequestMessage\u003E\n@@ -22,106 \u002B22,108 @@\n ;* V11 loc10        [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Exception\u003E\n ;  V12 OutArgs      [V12    ] (  1,  1   )  struct ( 8) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V13 tmp1         [V13    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;* V14 tmp2         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;  V14 tmp2         [V14,T16] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Net.Http.HttpResponseMessage\u003E\n ;* V15 tmp3         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n-;  V16 tmp4         [V16,T16] (  2,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n-;* V17 tmp5         [V17    ] (  0,  0   )  struct ( 8) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.TimeSpan\u003E\n-;  V18 tmp6         [V18,T39] (  3,  0   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Net.HttpStatusCode\u003E\n-;  V19 tmp7         [V19,T41] (  2,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V20 tmp8         [V20,T40] (  3,  0   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CConsul.ConsulRequestException\u003E\n-;* V21 tmp9         [V21    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n\u002B;* V16 tmp4         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;  V17 tmp5         [V17,T17] (  2,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;* V18 tmp6         [V18    ] (  0,  0   )  struct ( 8) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.TimeSpan\u003E\n\u002B;  V19 tmp7         [V19,T41] (  3,  0   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Net.HttpStatusCode\u003E\n\u002B;  V20 tmp8         [V20,T43] (  2,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V21 tmp9         [V21,T42] (  3,  0   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CConsul.ConsulRequestException\u003E\n ;* V22 tmp10        [V22    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;* V23 tmp11        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n-;  V24 tmp12        [V24,T17] (  2,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.Net.Http.HttpMethod\u003E\n-;  V25 tmp13        [V25,T18] (  2,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V26 tmp14        [V26,T01] (  8, 16   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Net.Http.HttpRequestMessage\u003E\n-;  V27 tmp15        [V27,T42] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n-;  V28 tmp16        [V28,T03] (  5, 10   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Diagnostics.Stopwatch\u003E\n-;  V29 tmp17        [V29,T19] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Uri\u003E\n-;* V30 tmp18        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CConsul.ConsulClient\u003E\n\u002B;* V23 tmp11        [V23    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n\u002B;* V24 tmp12        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;  V25 tmp13        [V25,T18] (  2,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.Net.Http.HttpMethod\u003E\n\u002B;  V26 tmp14        [V26,T19] (  2,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V27 tmp15        [V27,T01] (  8, 16   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Net.Http.HttpRequestMessage\u003E\n\u002B;  V28 tmp16        [V28,T44] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V29 tmp17        [V29,T03] (  5, 10   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Diagnostics.Stopwatch\u003E\n\u002B;  V30 tmp18        [V30,T20] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Uri\u003E\n ;* V31 tmp19        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CConsul.ConsulClient\u003E\n-;  V32 tmp20        [V32,T29] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Net.Http.HttpResponseMessage]\u003E\n-;  V33 tmp21        [V33,T04] (  5, 10   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Net.Http.HttpClient\u003E\n-;* V34 tmp22        [V34    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V35 tmp23        [V35,T08] (  4,  8   )  struct (24) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u0022dup spill\u0022 \u003CSystem.ValueTuple\u00603[System.Threading.CancellationTokenSource,bool,System.Threading.CancellationTokenSource]\u003E\n-;* V36 tmp24        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;* V37 tmp25        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n-;* V38 tmp26        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;* V39 tmp27        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;* V40 tmp28        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;* V41 tmp29        [V41    ] (  0,  0   )     int  -\u003E  zero-ref    single-def\n-;* V42 tmp30        [V42    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[System.Net.Http.HttpResponseMessage]\u003E\n-;* V43 tmp31        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Net.Http.HttpResponseMessage]\u003E\n-;* V44 tmp32        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.Net.Http.HttpResponseMessage]\u003E\n-;* V45 tmp33        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Net.Http.HttpResponseMessage]\u003E\n-;* V46 tmp34        [V46,T36] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V47 tmp35        [V47,T20] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n-;* V48 tmp36        [V48    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;* V49 tmp37        [V49    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n\u002B;* V32 tmp20        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CConsul.ConsulClient\u003E\n\u002B;  V33 tmp21        [V33,T28] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Net.Http.HttpResponseMessage]\u003E\n\u002B;  V34 tmp22        [V34,T04] (  5, 10   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Net.Http.HttpClient\u003E\n\u002B;* V35 tmp23        [V35    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;  V36 tmp24        [V36,T07] (  4,  8   )  struct (24) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u0022dup spill\u0022 \u003CSystem.ValueTuple\u00603[System.Threading.CancellationTokenSource,bool,System.Threading.CancellationTokenSource]\u003E\n\u002B;* V37 tmp25        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;* V38 tmp26        [V38    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n\u002B;* V39 tmp27        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;* V40 tmp28        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref   \n... diff truncated; middle omitted ...\n\u002B;* V83 tmp71        [V83    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.TimeSpan\u003E\n\u002B;  V84 tmp72        [V84,T15] (  4,  4   )    long  -\u003E  r13         \u0022Inline stloc first use temp\u0022\n\u002B;* V85 tmp73        [V85    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n\u002B;  V86 tmp74        [V86,T12] (  3,  6   )   byref  -\u003E  rbx         single-def \u0022Inlining Arg\u0022\n\u002B;  V87 tmp75        [V87,T29] (  3,  3   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[Consul.QueryResult\u00601[System.IO.Stream]]\u003E\n\u002B;* V88 tmp76        [V88    ] (  0,  0   )     ref  -\u003E  zero-ref    ld-addr-op class-hnd single-def \u0022Inlining Arg\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;  V89 tmp77        [V89,T06] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[Consul.QueryResult\u00601[System.IO.Stream]]\u003E\n\u002B;* V90 tmp78        [V90    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V91 tmp79        [V91    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;* V92 tmp80        [V92    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n\u002B;  V93 tmp81        [V93    ] (  7,  7   )     ref  -\u003E  [rbp-0x38]  do-not-enreg[X] addr-exposed \u0022field V06.m_task (fldOffset=0x0)\u0022 P-DEP\n\u002B;  V94 tmp82        [V94    ] (  5,  5   )     int  -\u003E  [rbp-0x30]  do-not-enreg[X] addr-exposed \u0022field V06.m_options (fldOffset=0x8)\u0022 P-DEP\n\u002B;  V95 tmp83        [V95    ] (  7,  7   )     ref  -\u003E  [rbp-0x48]  do-not-enreg[X] addr-exposed \u0022field V09.m_task (fldOffset=0x0)\u0022 P-DEP\n\u002B;  V96 tmp84        [V96    ] (  5,  5   )     int  -\u003E  [rbp-0x40]  do-not-enreg[X] addr-exposed \u0022field V09.m_options (fldOffset=0x8)\u0022 P-DEP\n\u002B;* V97 tmp85        [V97    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022field V18._ticks (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V98 tmp86        [V98,T30] (  3,  3   )     ref  -\u003E  r13         single-def \u0022field V35._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V99 tmp87        [V99    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V45.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V100 tmp88       [V100    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V45.m_options (fldOffset=0x8)\u0022 P-INDEP\n\u002B;* V101 tmp89       [V101    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V58._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V102 tmp90       [V102    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V59._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V103 tmp91       [V103    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V66.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V104 tmp92       [V104    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V66.m_options (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V105 tmp93       [V105,T36] (  2,  2   )    long  -\u003E  rsi         single-def \u0022field V83._ticks (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V106 tmp94       [V106    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V90._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V107 tmp95       [V107,T25] (  2,  4   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n ;  V108 tmp96       [V108,T26] (  2,  4   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V109 tmp97       [V109,T27] (  2,  4   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V110 cse0        [V110,T13] (  5,  4   )     int  -\u003E  r15         \u0022CSE #06: moderate\u0022\n-;  V111 cse1        [V111,T32] (  3,  3   )     ref  -\u003E  r15         \u0022CSE #04: conservative\u0022\n-;  V112 cse2        [V112,T28] (  2,  2   )     ref  -\u003E  rax         \u0022CSE #05: conservative\u0022\n-;  V113 rat0        [V113,T38] (  5, 10   )  simd16  -\u003E  mm0         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n\u002B;  V109 cse0        [V109,T13] (  5,  4   )     int  -\u003E  r15         \u0022CSE #06: moderate\u0022\n\u002B;  V110 cse1        [V110,T31] (  3,  3   )     ref  -\u003E  r15         \u0022CSE #04: moderate\u0022\n\u002B;  V111 cse2        [V111,T27] (  2,  2   )     ref  -\u003E  rax         \u0022CSE #05: moderate\u0022\n\u002B;  V112 cse3        [V112,T32] (  3,  3   )   byref  -\u003E  rdi         \u0022CSE #01: moderate\u0022\n\u002B;  V113 cse4        [V113,T33] (  3,  3   )   byref  -\u003E  rdi         \u0022CSE #03: moderate\u0022\n\u002B;  V114 cse5        [V114,T34] (  3,  3   )     ref  -\u003E  rsi         \u0022CSE #08: moderate\u0022\n\u002B;  V115 rat0        [V115,T40] (  5, 10   )  simd16  -\u003E  mm0         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n ;\n ; Lcl frame size = 72\n \n@@ -150,17 \u002B152,18 @@ G_M6265_IG02:\n G_M6265_IG03:\n        test     edi, edi\n        jne      G_M6265_IG09\n-\t\t\t\t\t\t;; size=8 bbWeight=1 PerfScore 1.25\n\u002B       lea      rdi, bword ptr [rsi\u002B0x38]\n\u002B\t\t\t\t\t\t;; size=12 bbWeight=1 PerfScore 1.75\n G_M6265_IG04:\n-       vmovdqu  xmm0, xmmword ptr [rsi\u002B0x38]\n\u002B       vmovdqu  xmm0, xmmword ptr [rdi]\n        vmovdqu  xmmword ptr [rbp-0x38], xmm0\n-\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.00\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.00\n G_M6265_IG05:\n-       xor      edi, edi\n-       mov      qword ptr [rsi\u002B0x38], rdi\n-       mov      qword ptr [rsi\u002B0x40], rdi\n\u002B       xor      eax, eax\n\u002B       mov      qword ptr [rdi], rax\n\u002B       mov      qword ptr [rdi\u002B0x08], rax\n        mov      dword ptr [rsi\u002B0x20], -1\n-\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 3.25\n\u002B\t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 3.25\n G_M6265_IG06:\n        mov      rsi, bword ptr [rbp-0x68]\n        mov      rdi, gword ptr [rbp-0x38]\n@@ -178,14 \u002B181,9 @@ G_M6265_IG07:\n        mov      r15, bword ptr [rbp-0x68]\n        lea      rdi, bword ptr [r15\u002B0x18]\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n-       mov      r14, gword ptr [r15\u002B0x18]\n-       mov      rsi, gword ptr [r15\u002B0x10]\n-       mov      rdi, 0xD1FFAB1E      ; Consul.QueryResult\u00601[byte]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      rdx, rax\n-       mov      rsi, r14\n\u002B       mov      rsi, gword ptr [r15\u002B0x18]\n        mov      rdi, rbx\n\u002B       xor      rdx, rdx\n        mov      rax, 0xD1FFAB1E      ; code for Consul.GetRequest\u00601[byte]:ParseQueryHeaders(System.Net.Http.HttpResponseMessage,Consul.QueryResult\u00601[byte]):this\n        call     [rax]Consul.GetRequest\u00601[byte]:ParseQueryHeaders(System.Net.Http.HttpResponseMessage,Consul.QueryResult\u00601[byte]):this\n        mov      rdi, gword ptr [r15\u002B0x10]\n@@ -210,7 \u002B208,7 @@ G_M6265_IG07:\n        mov      rdi, gword ptr [rbp-0x48]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M6265_IG12\n-\t\t\t\t\t\t;; size=157 bbWeight=1 PerfScore 47.25\n\u002B\t\t\t\t\t\t;; size=127 bbWeight=1 PerfScore 41.50\n G_M6265_IG08:\n        mov      r15, bword ptr [rbp-0x68]\n        mov      dword ptr [r15\u002B0x20], 1\n@@ -234,17 \u002B232,18 @@ G_M6265_IG08:\n G_M6265_IG09:\n        cmp      edi, 1\n        jne      G_M6265_IG16\n-\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 1.25\n\u002B       lea      rdi, bword ptr [rsi\u002B0x48]\n\u002B\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 1.75\n G_M6265_IG10:\n-       vmovdqu  xmm0, xmmword ptr [rsi\u002B0x48]\n\u002B       vmovdqu  xmm0, xmmword ptr [rdi]\n        vmovdqu  xmmword ptr [rbp-0x48], xmm0\n-\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.00\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.00\n G_M6265_IG11:\n-       xor      edi, edi\n-       mov      qword ptr [rsi\u002B0x48], rdi\n-       mov      qword ptr [rsi\u002B0x50], rdi\n\u002B       xor      eax, eax\n\u002B       mov      qword ptr [rdi], rax\n\u002B       mov      qword ptr [rdi\u002B0x08], rax\n        mov      dword ptr [rsi\u002B0x20], -1\n-\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 3.25\n\u002B\t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 3.25\n G_M6265_IG12:\n        mov      rdi, gword ptr [rbp-0x48]\n        mov      eax, dword ptr [rdi\u002B0x34]\n@@ -445,15 \u002B444,15 @@ G_M6265_IG22:\n G_M6265_IG23:\n        mov      gword ptr [rbx\u002B0x18], rsi\n        add      rbx, 40\n-       cmp      gword ptr [rbx], 0\n-       je       SHORT G_M6265_IG24\n        mov      rsi, gword ptr [rbx]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M6265_IG24\n        mov      rdx, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[Consul.QueryResult\u00601[System.IO.Stream]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        jmp      SHORT G_M6265_IG28\n-\t\t\t\t\t\t;; size=44 bbWeight=1 PerfScore 12.00\n\u002B\t\t\t\t\t\t;; size=43 bbWeight=1 PerfScore 10.25\n G_M6265_IG24:\n        test     r15, r15\n        je       SHORT G_M6265_IG25\n@@ -529,5 \u002B528,5 @@ RWD00  \tdq\t3F847AE147AE147Bh\t;         0.01\n RWD08  \tdq\t43E0000000000000h\n \n \n-; Total bytes of code 1458, prolog size 50, PerfScore 315.75, instruction count 330, allocated bytes for code 1458 (MethodHash=f70ce786) for method Consul.GetRequest\u00601\u002B\u003CExecuteStreaming\u003Ed__11[byte]:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 1431, prolog size 50, PerfScore 309.25, instruction count 327, allocated bytes for code 1431 (MethodHash=f70ce786) for method Consul.GetRequest\u00601\u002B\u003CExecuteStreaming\u003Ed__11[byte]:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1458,"DiffBytes":1431},{"Assembly":"CsvHelper.dasm","Method":"CsvHelper.TypeConversion.BooleanConverter:ConvertToString(System.Object,CsvHelper.IWriterRow,CsvHelper.Configuration.MemberMapData):System.String:this (FullOpts)","Category":"improvement","Description":"492 -\u003E 380 bytes (-112)","ExtraInfo":null,"Diff":"@@ -16,32 \u002B16,32 @@\n ;* V05 loc1         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u003CSystem.Nullable\u00601[bool]\u003E\n ;* V06 loc2         [V06    ] (  0,  0   )   ubyte  -\u003E  zero-ref   \n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;* V08 tmp1         [V08,T13] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CSystem.Boolean\u003E\n\u002B;* V08 tmp1         [V08,T11] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CSystem.Boolean\u003E\n ;  V09 tmp2         [V09    ] (  5,  5.50)  struct ( 8) [rbp-0x30]  do-not-enreg[XS] addr-exposed ld-addr-op \u0022Nullable\u003CT\u003E tmp\u0022 \u003CSystem.Nullable\u00601[bool]\u003E\n ;* V10 tmp3         [V10    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022impAppendStmt\u0022\n ;* V11 tmp4         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CCsvHelper.TypeConversion.TypeConverterOptions\u003E\n ;* V12 tmp5         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.String]\u003E\n ;* V13 tmp6         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CCsvHelper.TypeConversion.TypeConverterOptions\u003E\n-;  V14 tmp7         [V14,T04] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.String]\u003E\n-;  V15 tmp8         [V15    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V14 tmp7         [V14,T05] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.String]\u003E\n\u002B;  V15 tmp8         [V15    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V16 tmp9         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V17 tmp10        [V17,T10] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n-;  V18 tmp11        [V18,T08] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n\u002B;  V17 tmp10        [V17,T09] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n\u002B;* V18 tmp11        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n ;* V19 tmp12        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CCsvHelper.TypeConversion.TypeConverterOptions\u003E\n ;* V20 tmp13        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.String]\u003E\n ;* V21 tmp14        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CCsvHelper.TypeConversion.TypeConverterOptions\u003E\n-;  V22 tmp15        [V22,T05] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.String]\u003E\n-;  V23 tmp16        [V23    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V22 tmp15        [V22,T06] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.String]\u003E\n\u002B;  V23 tmp16        [V23    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V24 tmp17        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V25 tmp18        [V25,T11] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n-;  V26 tmp19        [V26,T09] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n-;  V27 tmp20        [V27,T12] (  2,  1.50)   ubyte  -\u003E  r12         single-def \u0022field V04.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V25 tmp18        [V25,T10] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n\u002B;* V26 tmp19        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n\u002B;  V27 tmp20        [V27,T08] (  2,  1.50)   ubyte  -\u003E  r12         single-def \u0022field V04.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;  V28 tmp21        [V28,T07] (  3,  2.50)   ubyte  -\u003E  [rbp-0x44]  spill-single-def \u0022field V04.value (fldOffset=0x1)\u0022 P-INDEP\n ;* V29 tmp22        [V29    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V05.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V30 tmp23        [V30    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V05.value (fldOffset=0x1)\u0022 P-INDEP\n ;  V31 tmp24        [V31    ] (  3,  1.75)   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] addr-exposed \u0022field V09.hasValue (fldOffset=0x0)\u0022 P-DEP\n ;  V32 tmp25        [V32    ] (  3,  1.75)   ubyte  -\u003E  [rbp-0x2F]  do-not-enreg[X] addr-exposed \u0022field V09.value (fldOffset=0x1)\u0022 P-DEP\n-;  V33 cse0         [V33,T06] (  6,  3   )    long  -\u003E  [rbp-0x50]  multi-def \u0022CSE #02: moderate\u0022\n\u002B;  V33 cse0         [V33,T04] (  6,  3   )    long  -\u003E  [rbp-0x50]  multi-def \u0022CSE #02: moderate\u0022\n ;\n ; Lcl frame size = 40\n \n@@ -93,7 \u002B93,7 @@ G_M57556_IG06:\n        call     [rcx\u002B0x18]CsvHelper.Configuration.MemberMapData:get_TypeConverterOptions():CsvHelper.TypeConversion.TypeConverterOptions:this\n        mov      rdi, gword ptr [rax\u002B0x18]\n        cmp      dword ptr [rdi\u002B0x10], 0\n-       jg       G_M57556_IG14\n\u002B       jg       G_M57556_IG12\n \t\t\t\t\t\t;; size=31 bbWeight=0.50 PerfScore 6.62\n G_M57556_IG07:\n        cmp      byte  ptr [rbp-0x44], 0\n@@ -133,33 \u002B133,40 @@ G_M57556_IG09:\n G_M57556_IG10:\n        mov      rdi, rbx\n        call     [r12\u002B0x18]CsvHelper.Configuration.MemberMapData:get_TypeConverterOptions():CsvHelper.TypeConversion.TypeConverterOptions:this\n-       mov      r12, gword ptr [rax\u002B0x20]\n-       test     r12, r12\n-       je       G_M57556_IG18\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.String]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M57556_IG11\n-       lea      rsi, [rbp-0x40]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M57556_IG12\n-\t\t\t\t\t\t;; size=70 bbWeight=0.50 PerfScore 10.62\n-G_M57556_IG11:\n\u002B       mov      rsi, gword ptr [rax\u002B0x20]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M57556_IG14\n        lea      rdx, [rbp-0x40]\n-       mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.String](System.Collections.Generic.IEnumerable\u00601[System.String],byref):System.String\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M57556_IG12:\n        cmp      byte  ptr [rbp-0x40], 0\n-       je       G_M57556_IG19\n-\t\t\t\t\t\t;; size=10 bbWeight=0.50 PerfScore 1.00\n\u002B       je       SHORT G_M57556_IG15\n\u002B\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 6.25\n\u002BG_M57556_IG11:\n\u002B       add      rsp, 40\n\u002B       pop      rbx\n\u002B       pop      r12\n\u002B       pop      r13\n\u002B       pop      r14\n\u002B       pop      r15\n\u002B       pop      rbp\n\u002B       ret      \n\u002B\t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n\u002BG_M57556_IG12:\n\u002B       mov      r12, qword ptr [rbp-0x50]\n\u002B       mov      rdi, rbx\n\u002B       call     [r12\u002B0x18]CsvHelper.Configuration.MemberMapData:get_TypeConverterOptions():CsvHelper.TypeConversion.TypeConverterOptions:this\n\u002B       mov      rsi, gword ptr [rax\u002B0x18]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M57556_IG14\n\u002B       lea      rdx, [rbp-0x38]\n\u002B       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.String](System.Collections.Generic.IEnumerable\u00601[System.String],byref):System.String\n\u002B       mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n\u002B       call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n\u002B       cmp      byte  ptr [rbp-0x38], 0\n\u002B       je       SHORT G_M57556_IG15\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 6.75\n G_M57556_IG13:\n        add      rsp, 40\n        pop      rbx\n@@ -171,57 \u002B178,16 @@ G_M57556_IG13:\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n G_M57556_IG14:\n-       mov      r12, qword ptr [rbp-0x50]\n-       mov      rdi, rbx\n-       call     [r12\u002B0x18]CsvHelper.Configuration.MemberMapData:get_TypeConverterOptions():CsvHelper.TypeConversion.TypeConverterOptions:this\n-       mov      rbx, gword ptr [rax\u002B0x18]\n-       test     rbx, rbx\n-       je       SHORT G_M57556_IG18\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.String]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M57556_IG15\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M57556_IG16\n-\t\t\t\t\t\t;; size=70 bbWeight=0.50 PerfScore 11.12\n-G_M57556_IG15:\n-       lea      rdx, [rbp-0x38]\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.String](System.Collections.Generic.IEnumerable\u00601[System.String],byref):System.String\n-       mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M57556_IG16:\n-       cmp      byte  ptr [rbp-0x38], 0\n-       je       SHORT G_M57556_IG19\n-\t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 1.00\n-G_M57556_IG17:\n-       add      rsp, 40\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       ret      \n-\t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M57556_IG18:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M57556_IG19:\n\u002BG_M57556_IG15:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 492, prolog size 29, PerfScore 69.19, instruction count 139, allocated bytes for code 492 (MethodHash=fece1f2b) for method CsvHelper.TypeConversion.BooleanConverter:ConvertToString(System.Object,CsvHelper.IWriterRow,CsvHelper.Configuration.MemberMapData):System.String:this (FullOpts)\n\u002B; Total bytes of code 380, prolog size 29, PerfScore 54.19, instruction count 113, allocated bytes for code 380 (MethodHash=fece1f2b) for method CsvHelper.TypeConversion.BooleanConverter:ConvertToString(System.Object,CsvHelper.IWriterRow,CsvHelper.Configuration.MemberMapData):System.String:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":492,"DiffBytes":380},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.CompositeDistributedLockHandleExtensions\u002B\u003C\u003Ec:\u003CTryAcquireAllSemaphoresInternalAsync\u003Eb__5_1(Medallion.Threading.IDistributedSemaphore,System.TimeSpan,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask\u00601[Medallion.Threading.IDistributedSynchronizationHandle]:this (FullOpts)","Category":"same-size","Description":"153 -\u003E 153 bytes (0)","ExtraInfo":null,"Diff":"@@ -1,91 \u002B1,91 @@\n ; Assembly listing for method Medallion.Threading.CompositeDistributedLockHandleExtensions\u002B\u003C\u003Ec:\u003CTryAcquireAllSemaphoresInternalAsync\u003Eb__5_1(Medallion.Threading.IDistributedSemaphore,System.TimeSpan,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask\u00601[Medallion.Threading.IDistributedSynchronizationHandle]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; fully interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;* V00 this         [V00    ] (  0,  0   )     ref  -\u003E  zero-ref    this class-hnd single-def \u003CMedallion.Threading.CompositeDistributedLockHandleExtensions\u002B\u003C\u003Ec\u003E\n ;  V01 RetBuf       [V01,T00] (  8,  5   )    long  -\u003E  rbx         single-def\n ;  V02 arg1         [V02,T01] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CMedallion.Threading.IDistributedSemaphore\u003E\n ;* V03 arg2         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.TimeSpan\u003E\n ;* V04 arg3         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V06 tmp1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMedallion.Threading.IDistributedSynchronizationHandle\u003E\n ;* V07 tmp2         [V07    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.ValueTask\u00601[Medallion.Threading.IDistributedSynchronizationHandle]\u003E\n ;  V08 tmp3         [V08,T03] (  3,  2   )    long  -\u003E  r13         single-def \u0022field V03._ticks (fldOffset=0x0)\u0022 P-INDEP\n ;  V09 tmp4         [V09,T02] (  3,  2   )     ref  -\u003E  r14         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n ;* V10 tmp5         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V07._obj (fldOffset=0x0)\u0022 P-INDEP\n ;  V11 tmp6         [V11,T06] (  2,  1   )     ref  -\u003E  rax         single-def \u0022field V07._result (fldOffset=0x8)\u0022 P-INDEP\n ;* V12 tmp7         [V12    ] (  0,  0   )   short  -\u003E  zero-ref    \u0022field V07._token (fldOffset=0x10)\u0022 P-INDEP\n ;* V13 tmp8         [V13    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022field V07._continueOnCapturedContext (fldOffset=0x12)\u0022 P-INDEP\n ;  V14 rat0         [V14,T04] (  2,  4   )    long  -\u003E  rax         \u0022TLS field access\u0022\n ;  V15 rat1         [V15,T05] (  2,  4   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 0\n \n G_M32835_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     rbx\n        lea      rbp, [rsp\u002B0x20]\n        mov      rbx, rsi\n        mov      r15, rdx\n        mov      r13, rcx\n        mov      r14, r8\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 6.50\n G_M32835_IG02:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        cmp      byte  ptr [rax\u002B0x10], 0\n        je       SHORT G_M32835_IG05\n \t\t\t\t\t\t;; size=32 bbWeight=1 PerfScore 6.75\n G_M32835_IG03:\n        mov      rdi, r15\n        mov      rdx, r14\n        mov      rsi, r13\n        mov      r11, 0xD1FFAB1E      ; code for Medallion.Threading.IDistributedSemaphore:TryAcquire(System.TimeSpan,System.Threading.CancellationToken):Medallion.Threading.IDistributedSynchronizationHandle:this\n        call     [r11]Medallion.Threading.IDistributedSemaphore:TryAcquire(System.TimeSpan,System.Threading.CancellationToken):Medallion.Threading.IDistributedSynchronizationHandle:this\n        xor      rdi, rdi\n        mov      gword ptr [rbx], rdi\n        lea      rdi, [rbx\u002B0x08]\n        mov      rsi, rax\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n        mov      word  ptr [rbx\u002B0x10], 0\n        mov      byte  ptr [rbx\u002B0x12], 1\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 4.62\n G_M32835_IG04:\n        pop      rbx\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 1.75\n G_M32835_IG05:\n        mov      rdi, r15\n        mov      rcx, r14\n        mov      rsi, rbx\n        mov      rdx, r13\n        mov      r11, 0xD1FFAB1E      ; code for Medallion.Threading.IDistributedSemaphore:TryAcquireAsync(System.TimeSpan,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask\u00601[Medallion.Threading.IDistributedSynchronizationHandle]:this\n        cmp      dword ptr [rdi], edi\n \t\t\t\t\t\t;; size=24 bbWeight=0.50 PerfScore 1.62\n G_M32835_IG06:\n        pop      rbx\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        tail.jmp [r11]Medallion.Threading.IDistributedSemaphore:TryAcquireAsync(System.TimeSpan,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask\u00601[Medallion.Threading.IDistributedSynchronizationHandle]:this\n \t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 2.25\n \n ; Total bytes of code 153, prolog size 25, PerfScore 23.50, instruction count 47, allocated bytes for code 153 (MethodHash=65d97fbc) for method Medallion.Threading.CompositeDistributedLockHandleExtensions\u002B\u003C\u003Ec:\u003CTryAcquireAllSemaphoresInternalAsync\u003Eb__5_1(Medallion.Threading.IDistributedSemaphore,System.TimeSpan,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask\u00601[Medallion.Threading.IDistributedSynchronizationHandle]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":153,"DiffBytes":153},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Metadata.Edm.EdmModelSemanticValidationRules\u002B\u003C\u003Ec:\u003C.cctor\u003Eb__52_4(System.Data.Entity.Core.Metadata.Edm.EdmModelValidationContext,System.Data.Entity.Core.Metadata.Edm.EntityContainer):this (FullOpts)","Category":"improvement","Description":"1,762 -\u003E 1,507 bytes (-255)","ExtraInfo":null,"Diff":"@@ -10,86 \u002B10,86 @@\n ;\n ;* V00 this         [V00    ] (  0,  0   )     ref  -\u003E  zero-ref    this class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmModelSemanticValidationRules\u002B\u003C\u003Ec\u003E\n ;  V01 arg1         [V01,T05] (  8, 14   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmModelValidationContext\u003E\n-;  V02 arg2         [V02,T21] (  6,  7.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityContainer\u003E\n\u002B;  V02 arg2         [V02,T20] (  6,  7.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityContainer\u003E\n ;* V03 loc0         [V03    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601\u002BEnumerator[System.Data.Entity.Core.Metadata.Edm.AssociationSet]\u003E\n ;* V04 loc1         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationSet\u003E\n ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V06 tmp1         [V06,T38] (  2,  8   )     ref  -\u003E  [rbp-0x50]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EntitySet]\u003E\n-;  V07 tmp2         [V07,T39] (  2,  8   )     ref  -\u003E  [rbp-0x58]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySet\u003E\n-;  V08 tmp3         [V08,T40] (  2,  8   )     ref  -\u003E  [rbp-0x60]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V09 tmp4         [V09,T41] (  2,  8   )     ref  -\u003E  [rbp-0x68]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EntitySet]\u003E\n-;  V10 tmp5         [V10,T18] (  3, 12   )     ref  -\u003E  [rbp-0x70]  class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySet\u003E\n-;  V11 tmp6         [V11,T42] (  2,  8   )     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V12 tmp7         [V12,T58] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSet]\u003E\n\u002B;  V06 tmp1         [V06,T31] (  2,  8   )     ref  -\u003E  [rbp-0x50]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EntitySet]\u003E\n\u002B;  V07 tmp2         [V07,T32] (  2,  8   )     ref  -\u003E  [rbp-0x58]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySet\u003E\n\u002B;  V08 tmp3         [V08,T33] (  2,  8   )     ref  -\u003E  [rbp-0x60]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V09 tmp4         [V09,T34] (  2,  8   )     ref  -\u003E  [rbp-0x68]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EntitySet]\u003E\n\u002B;  V10 tmp5         [V10,T14] (  3, 12   )     ref  -\u003E  [rbp-0x70]  class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySet\u003E\n\u002B;  V11 tmp6         [V11,T35] (  2,  8   )     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V12 tmp7         [V12,T54] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSet]\u003E\n ;* V13 tmp8         [V13    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601\u002BEnumerator[System.Data.Entity.Core.Metadata.Edm.AssociationSet]\u003E\n ;* V14 tmp9         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IList\u00601[System.__Canon]\u003E\n-;  V15 tmp10        [V15,T57] (  2,  4   )     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySet\u003E\n\u002B;  V15 tmp10        [V15,T53] (  2,  4   )     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySet\u003E\n ;* V16 tmp11        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationSetEnd\u003E\n-;  V17 tmp12        [V17,T01] (  4, 28   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n-;  V18 tmp13        [V18    ] (  2,  4   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V19 tmp14        [V19,T20] (  4, 10   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationSetEnd\u003E\n-;  V20 tmp15        [V20,T17] (  4, 12   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n-;  V21 tmp16        [V21,T48] (  3,  6   )     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySet\u003E\n\u002B;  V17 tmp12        [V17,T01] (  3, 24   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n\u002B;  V18 tmp13        [V18    ] (  1,  4   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V19 tmp14        [V19,T19] (  3, 10   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationSetEnd\u003E\n\u002B;* V20 tmp15        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n\u002B;  V21 tmp16        [V21,T41] (  3,  6   )     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySet\u003E\n ;* V22 tmp17        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationSetEnd\u003E\n-;  V23 tmp18        [V23,T06] (  4, 16   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n-;  V24 tmp19        [V24    ] (  2,  4   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V25 tmp20        [V25,T29] (  4,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationSetEnd\u003E\n-;  V26 tmp21        [V26,T30] (  4,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n\u002B;  V23 tmp18        [V23,T15] (  3, 12   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n\u002B;  V24 tmp19        [V24    ] (  1,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V25 tmp20        [V25,T42] (  3,  6   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationSetEnd\u003E\n\u002B;* V26 tmp21        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n ;* V27 tmp22        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationSetEnd\u003E\n-;  V28 tmp23        [V28,T07] (  4, 16   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n-;  V29 tmp24        [V29    ] (  2,  4   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp25        [V30,T31] (  4,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationSetEnd\u003E\n-;  V31 tmp26        [V31,T32] (  4,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n-;  V32 tmp27        [V32,T33] (  4,  8   )     ref  -\u003E  rdi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySet\u003E\n\u002B;  V28 tmp23        [V28,T16] (  3, 12   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n... diff truncated; middle omitted ...\n-G_M31824_IG31:\n\u002BG_M31824_IG22:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.AssociationSet:get_TargetSet():System.Data.Entity.Core.Metadata.Edm.EntitySet:this\n        call     [rax]System.Data.Entity.Core.Metadata.Edm.AssociationSet:get_TargetSet():System.Data.Entity.Core.Metadata.Edm.EntitySet:this\n        test     rax, rax\n-       je       G_M31824_IG42\n\u002B       je       G_M31824_IG33\n \t\t\t\t\t\t;; size=24 bbWeight=4 PerfScore 19.00\n-G_M31824_IG32:\n\u002BG_M31824_IG23:\n        mov      rsi, gword ptr [r12\u002B0x30]\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Metadata.Edm.RelationshipType\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rax]CORINFO_HELP_CHKCASTCLASS\n        mov      rsi, rax\n-       mov      gword ptr [rbp-0xD8], rsi\n\u002B       mov      gword ptr [rbp-0xB8], rsi\n        mov      rdi, rsi\n        mov      rax, rdi\n        test     rax, rax\n-       je       SHORT G_M31824_IG35\n\u002B       je       SHORT G_M31824_IG26\n \t\t\t\t\t\t;; size=48 bbWeight=2 PerfScore 17.00\n-G_M31824_IG33:\n\u002BG_M31824_IG24:\n        mov      rcx, 0xD1FFAB1E      ; System.Data.Entity.Core.Metadata.Edm.AssociationType\n        cmp      qword ptr [rax], rcx\n-       je       SHORT G_M31824_IG35\n\u002B       je       SHORT G_M31824_IG26\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 3.25\n-G_M31824_IG34:\n\u002BG_M31824_IG25:\n        mov      rsi, rdi\n        mov      rdi, rcx\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL\n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 1.88\n-G_M31824_IG35:\n\u002BG_M31824_IG26:\n        test     rax, rax\n-       je       G_M31824_IG42\n-       mov      rsi, gword ptr [rbp-0xD8]\n\u002B       je       G_M31824_IG33\n\u002B       mov      rsi, gword ptr [rbp-0xB8]\n        mov      rdi, rsi\n        test     rdi, rdi\n-       je       SHORT G_M31824_IG38\n\u002B       je       SHORT G_M31824_IG29\n \t\t\t\t\t\t;; size=24 bbWeight=2 PerfScore 7.50\n-G_M31824_IG36:\n\u002BG_M31824_IG27:\n        mov      rax, 0xD1FFAB1E      ; System.Data.Entity.Core.Metadata.Edm.AssociationType\n        cmp      qword ptr [rdi], rax\n-       je       SHORT G_M31824_IG38\n\u002B       je       SHORT G_M31824_IG29\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 3.25\n-G_M31824_IG37:\n\u002BG_M31824_IG28:\n        mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        mov      rdi, rax\n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 1.88\n-G_M31824_IG38:\n\u002BG_M31824_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.AssociationType:get_TargetEnd():System.Data.Entity.Core.Metadata.Edm.AssociationEndMember:this\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.Data.Entity.Core.Metadata.Edm.AssociationType:get_TargetEnd():System.Data.Entity.Core.Metadata.Edm.AssociationEndMember:this\n        test     rax, rax\n-       je       G_M31824_IG42\n\u002B       je       G_M31824_IG33\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.EntityContainer:get_EntitySets():System.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EntitySet]:this\n        call     [rax]System.Data.Entity.Core.Metadata.Edm.EntityContainer:get_EntitySets():System.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EntitySet]:this\n@@ -467,7 \u002B393,7 @@ G_M31824_IG38:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:Contains(System.__Canon):bool:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:Contains(System.__Canon):bool:this\n        test     eax, eax\n-       jne      G_M31824_IG42\n\u002B       jne      G_M31824_IG33\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.AssociationSet:get_TargetSet():System.Data.Entity.Core.Metadata.Edm.EntitySet:this\n        call     [rax]System.Data.Entity.Core.Metadata.Edm.AssociationSet:get_TargetSet():System.Data.Entity.Core.Metadata.Edm.EntitySet:this\n@@ -486,21 \u002B412,21 @@ G_M31824_IG38:\n        call     [rcx]CORINFO_HELP_CHKCASTCLASS\n        mov      rdi, rax\n        test     rdi, rdi\n-       je       SHORT G_M31824_IG41\n\u002B       je       SHORT G_M31824_IG32\n \t\t\t\t\t\t;; size=175 bbWeight=2 PerfScore 91.00\n-G_M31824_IG39:\n\u002BG_M31824_IG30:\n        mov      rcx, 0xD1FFAB1E      ; System.Data.Entity.Core.Metadata.Edm.AssociationType\n        cmp      qword ptr [rdi], rcx\n-       je       SHORT G_M31824_IG41\n\u002B       je       SHORT G_M31824_IG32\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 3.25\n-G_M31824_IG40:\n\u002BG_M31824_IG31:\n        mov      rsi, rax\n        mov      rdi, rcx\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        mov      rdi, rax\n \t\t\t\t\t\t;; size=21 bbWeight=0.50 PerfScore 2.00\n-G_M31824_IG41:\n\u002BG_M31824_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.AssociationType:get_TargetEnd():System.Data.Entity.Core.Metadata.Edm.AssociationEndMember:this\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.Data.Entity.Core.Metadata.Edm.AssociationType:get_TargetEnd():System.Data.Entity.Core.Metadata.Edm.AssociationEndMember:this\n@@ -508,15 \u002B434,15 @@ G_M31824_IG41:\n        mov      rdi, 0xD1FFAB1E      ; System.Object[]\n        mov      esi, 2\n        call     CORINFO_HELP_NEWARR_1_PTR\n-       mov      gword ptr [rbp-0xC0], rax\n\u002B       mov      gword ptr [rbp-0xA0], rax\n        lea      rdi, bword ptr [rax\u002B0x10]\n        mov      rsi, gword ptr [rbp-0x60]\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rax, gword ptr [rbp-0xC0]\n\u002B       mov      rax, gword ptr [rbp-0xA0]\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rsi, gword ptr [rbp-0xC0]\n\u002B       mov      rsi, gword ptr [rbp-0xA0]\n        mov      rdi, 0xD1FFAB1E      ; \u0027EdmModel_Validator_Semantic_InvalidEntitySetNameReference\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Resources.EntityRes:GetString(System.String,System.Object[]):System.String\n        call     [rax]System.Data.Entity.Resources.EntityRes:GetString(System.String,System.Object[]):System.String\n@@ -524,11 \u002B450,11 @@ G_M31824_IG41:\n        cmp      byte  ptr [rbx], bl\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Metadata.Edm.DataModelErrorEventArgs\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0xC8], rax\n\u002B       mov      gword ptr [rbp-0xA8], rax\n        lea      rdi, bword ptr [rax\u002B0x10]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r12, gword ptr [rbp-0xC8]\n\u002B       mov      r12, gword ptr [rbp-0xA8]\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, gword ptr [rbp-0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -536,21 \u002B462,21 @@ G_M31824_IG41:\n        mov      gword ptr [r12\u002B0x08], rsi\n        mov      rax, gword ptr [rbx\u002B0x08]\n        test     rax, rax\n-       je       SHORT G_M31824_IG42\n\u002B       je       SHORT G_M31824_IG33\n        mov      rsi, rbx\n        mov      rdx, r12\n        mov      rdi, gword ptr [rax\u002B0x10]\n        call     [rax\u002B0x18]System.EventHandler\u00601[System.__Canon]:Invoke(System.Object,System.__Canon):this\n \t\t\t\t\t\t;; size=195 bbWeight=2 PerfScore 78.50\n-G_M31824_IG42:\n\u002BG_M31824_IG33:\n        mov      rdi, r14\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        cmp      eax, r13d\n        ja       G_M31824_IG04\n \t\t\t\t\t\t;; size=25 bbWeight=4 PerfScore 19.00\n-G_M31824_IG43:\n-       add      rsp, 184\n\u002BG_M31824_IG34:\n\u002B       add      rsp, 152\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -559,12 \u002B485,12 @@ G_M31824_IG43:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M31824_IG44:\n\u002BG_M31824_IG35:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1762, prolog size 45, PerfScore 744.08, instruction count 386, allocated bytes for code 1762 (MethodHash=3daf83af) for method System.Data.Entity.Core.Metadata.Edm.EdmModelSemanticValidationRules\u002B\u003C\u003Ec:\u003C.cctor\u003Eb__52_4(System.Data.Entity.Core.Metadata.Edm.EdmModelValidationContext,System.Data.Entity.Core.Metadata.Edm.EntityContainer):this (FullOpts)\n\u002B; Total bytes of code 1507, prolog size 45, PerfScore 606.08, instruction count 330, allocated bytes for code 1507 (MethodHash=3daf83af) for method System.Data.Entity.Core.Metadata.Edm.EdmModelSemanticValidationRules\u002B\u003C\u003Ec:\u003C.cctor\u003Eb__52_4(System.Data.Entity.Core.Metadata.Edm.EdmModelValidationContext,System.Data.Entity.Core.Metadata.Edm.EntityContainer):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1762,"DiffBytes":1507},{"Assembly":"LaunchDarkly.ServerSdk.dasm","Method":"LaunchDarkly.Sdk.Server.Integrations.DataSystemBuilder:Build():LaunchDarkly.Sdk.Server.Subsystems.DataSystemConfiguration:this (FullOpts)","Category":"improvement","Description":"662 -\u003E 573 bytes (-89)","ExtraInfo":null,"Diff":"@@ -10,38 \u002B10,35 @@\n ;\n ;  V00 this         [V00,T01] (  7,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CLaunchDarkly.Sdk.Server.Integrations.DataSystemBuilder\u003E\n ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V02 tmp1         [V02,T06] (  3,  4   )     ref  -\u003E  r15         class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.Collections.Immutable.ImmutableList\u00601[LaunchDarkly.Sdk.Server.Subsystems.IComponentConfigurer\u00601[LaunchDarkly.Sdk.Server.Subsystems.IDataSource]]\u003E\n\u002B;* V02 tmp1         [V02    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Immutable.ImmutableList\u00601[LaunchDarkly.Sdk.Server.Subsystems.IComponentConfigurer\u00601[LaunchDarkly.Sdk.Server.Subsystems.IDataSource]]\u003E\n ;  V03 tmp2         [V03,T00] (  7, 14   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CLaunchDarkly.Sdk.Server.Subsystems.DataSystemConfiguration\u003E\n-;  V04 tmp3         [V04,T02] (  7,  8.50)     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[LaunchDarkly.Sdk.Server.Subsystems.IComponentConfigurer\u00601[LaunchDarkly.Sdk.Server.Subsystems.IDataSource]]\u003E\n-;* V05 tmp4         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CSystem.Collections.Immutable.ImmutableList\u00601[LaunchDarkly.Sdk.Server.Subsystems.IComponentConfigurer\u00601[LaunchDarkly.Sdk.Server.Subsystems.IDataSource]]\u003E\n-;  V06 tmp5         [V06,T24] (  2,  1   )     ref  -\u003E  r15         class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Immutable.ImmutableList\u00601[LaunchDarkly.Sdk.Server.Subsystems.IComponentConfigurer\u00601[LaunchDarkly.Sdk.Server.Subsystems.IDataSource]]\u003E\n-;  V07 tmp6         [V07,T18] (  3,  1.50)     ref  -\u003E  r15         class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableList\u00601[LaunchDarkly.Sdk.Server.Subsystems.IComponentConfigurer\u00601[LaunchDarkly.Sdk.Server.Subsystems.IDataSource]]\u003E\n-;  V08 tmp7         [V08,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Immutable.ImmutableList\u00601[LaunchDarkly.Sdk.Server.Subsystems.IComponentConfigurer\u00601[LaunchDarkly.Sdk.Server.Subsystems.IDataSource]]\u003E\n-;  V09 tmp8         [V09,T10] (  7,  3.50)     ref  -\u003E  r15         class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Immutable.ImmutableList\u00601\u002BNode[LaunchDarkly.Sdk.Server.Subsystems.IComponentConfigurer\u00601[LaunchDarkly.Sdk.Server.Subsystems.IDataSource]]\u003E\n-;* V10 tmp9         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Collections.Immutable.ImmutableList\u00601\u002BNode[System.__Canon]\u003E\n-;  V11 tmp10        [V11,T15] (  4,  2   )     ref  -\u003E  r13         class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableList\u00601[LaunchDarkly.Sdk.Server.Subsystems.IComponentConfigurer\u00601[LaunchDarkly.Sdk.Server.Subsystems.IDataSource]]\u003E\n-;  V12 tmp11        [V12,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Immutable.ImmutableList\u00601[LaunchDarkly.Sdk.Server.Subsystems.IComponentConfigurer\u00601[LaunchDarkly.Sdk.Server.Subsystems.IDataSource]]\u003E\n-;  V13 tmp12        [V13,T17] (  3,  2   )     ref  -\u003E  r13         class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableList\u00601[LaunchDarkly.Sdk.Server.Subsystems.IComponentConfigurer\u00601[LaunchDarkly.Sdk.Server.Subsystems.IDataSource]]\u003E\n-;  V14 tmp13        [V14,T03] (  7,  8.50)     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[LaunchDarkly.Sdk.Server.Subsystems.IComponentConfigurer\u00601[LaunchDarkly.Sdk.Server.Subsystems.IDataSource]]\u003E\n-;* V15 tmp14        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CSystem.Collections.Immutable.ImmutableList\u00601[LaunchDarkly.Sdk.Server.Subsystems.IComponentConfigurer\u00601[LaunchDarkly.Sdk.Server.Subsystems.IDataSource]]\u003E\n-;  V16 tmp15        [V16,T25] (  2,  1   )     ref  -\u003E  r13         class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Immutable.ImmutableList\u00601[LaunchDarkly.Sdk.Server.Subsystems.IComponentConfigurer\u00601[LaunchDarkly.Sdk.Server.Subsystems.IDataSource]]\u003E\n-;  V17 tmp16        [V17,T19] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableList\u00601[LaunchDarkly.Sdk.Server.Subsystems.IComponentConfigurer\u00601[LaunchDarkly.Sdk.Server.Subsystems.IDataSource]]\u003E\n-;  V18 tmp17        [V18,T05] (  5,  5   )     ref  -\u003E  r12         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Immutable.ImmutableList\u00601[LaunchDarkly.Sdk.Server.Subsystems.IComponentConfigurer\u00601[LaunchDarkly.Sdk.Server.Subsystems.IDataSource]]\u003E\n-;  V19 tmp18        [V19,T11] (  7,  3.50)     ref  -\u003E  r13         class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Immutable.ImmutableList\u00601\u002BNode[LaunchDarkly.Sdk.Server.Subsystems.IComponentConfigurer\u00601[LaunchDarkly.Sdk.Server.Subsystems.IDataSource]]\u003E\n-;* V20 tmp19        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Collections.Immutable.ImmutableList\u00601\u002BNode[System.__Canon]\u003E\n-;  V21 tmp20        [V21,T16] (  4,  2   )     ref  -\u003E  r12         class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableList\u00601[LaunchDarkly.Sdk.Server.Subsystems.IComponentConfigurer\u00601[LaunchDarkly.Sdk.Server.Subsystems.IDataSource]]\u003E\n-;  V22 tmp21        [V22,T14] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Immutable.ImmutableList\u00601[LaunchDarkly.Sdk.Server.Subsystems.IComponentConfigurer\u00601[LaunchDarkly.Sdk.Server.Subsystems.IDataSource]]\u003E\n-;  V23 tmp22        [V23,T07] (  2,  4   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CLaunchDarkly.Sdk.Server.Subsystems.IComponentConfigurer\u00601[LaunchDarkly.Sdk.Server.Subsystems.IDataSource]\u003E\n-;  V24 tmp23        [V24,T08] (  2,  4   )     ref  -\u003E  [rbp-0x30]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CLaunchDarkly.Sdk.Server.Subsystems.IComponentConfigurer\u00601[LaunchDarkly.Sdk.Server.Subsystems.IDataStore]\u003E\n-;  V25 tmp24        [V25,T09] (  2,  4   )     int  -\u003E  rbx         \u0022Inlining Arg\u0022\n-;* V26 cse0         [V26,T26] (  0,  0   )   byref  -\u003E  zero-ref    multi-def \u0022CSE #04: moderate\u0022\n-;  V27 cse1         [V27,T20] (  3,  1.50)     ref  -\u003E  rdi         \u0022CSE #02: moderate\u0022\n-;  V28 cse2         [V28,T21] (  3,  1.50)     ref  -\u003E  r12         \u0022CSE #03: moderate\u0022\n-;  V29 cse3         [V29,T22] (  3,  1.50)     ref  -\u003E  rdi         \u0022CSE #06: moderate\u0022\n-;  V30 cse4         [V30,T23] (  3,  1.50)     ref  -\u003E  r12         \u0022CSE #07: moderate\u0022\n-;  V31 cse5         [V31,T12] ( 10,  3.25)    long  -\u003E  r14         multi-def \u0022CSE #01: moderate\u0022\n\u002B;  V04 tmp3         [V04,T04] (  4,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[LaunchDarkly.Sdk.Server.Subsystems.IComponentConfigurer\u00601[LaunchDarkly.Sdk.Server.Subsystems.IDataSource]]\u003E\n\u002B;* V05 tmp4         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Immutable.ImmutableList\u00601[LaunchDarkly.Sdk.Server.Subsystems.IComponentConfigurer\u00601[LaunchDarkly.Sdk.Server.Subsystems.IDataSource]]\u003E\n\u002B;  V06 tmp5         [V06,T17] (  3,  2   )     ref  -\u003E  r12         class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableList\u00601[LaunchDarkly.Sdk.Server.Subsystems.IComponentConfigurer\u00601[LaunchDarkly.Sdk.Server.Subsystems.IDataSource]]\u003E\n\u002B;  V07 tmp6         [V07,T02] (  6,  9   )     ref  -\u003E  r12         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Immutable.ImmutableList\u00601[LaunchDarkly.Sdk.Server.Subsystems.IComponentConfigurer\u00601[LaunchDarkly.Sdk.Server.Subsystems.IDataSource]]\u003E\n\u002B;  V08 tmp7         [V08,T10] (  7,  3.50)     ref  -\u003E  r15         class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Immutable.ImmutableList\u00601\u002BNode[LaunchDarkly.Sdk.Server.Subsystems.IComponentConfigurer\u00601[LaunchDarkly.Sdk.Server.Subsystems.IDataSource]]\u003E\n\u002B;* V09 tmp8         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Collections.Immutable.ImmutableList\u00601\u002BNode[System.__Canon]\u003E\n\u002B;  V10 tmp9         [V10,T15] (  4,  2   )     ref  -\u003E  r12         class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableList\u00601[LaunchDarkly.Sdk.Server.Subsystems.IComponentConfigurer\u00601[LaunchDarkly.Sdk.Server.Subsystems.IDataSource]]\u003E\n\u002B;  V11 tmp10        [V11,T13] (  3,  3   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Immutable.ImmutableList\u00601[LaunchDarkly.Sdk.Server.Subsystems.IComponentConfigurer\u00601[LaunchDarkly.Sdk.Server.Subsystems.IDataSource]]\u003E\n\u002B;* V12 tmp11        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Immutable.ImmutableList\u00601[LaunchDarkly.Sdk.Server.Subsystems.IComponentConfigurer\u00601[LaunchDarkly.Sdk.Server.Subsystems.IDataSource]]\u003E\n... diff truncated; middle omitted ...\n\u002BG_M40223_IG07:\n\u002B       mov      rax, gword ptr [rbp-0x30]\n\u002B       lea      rdi, bword ptr [rax\u002B0x08]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=12 bbWeight=0.50 PerfScore 0.88\n-G_M40223_IG10:\n-       mov      r15, r13\n-       jmp      SHORT G_M40223_IG12\n-\t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 1.12\n-G_M40223_IG11:\n\u002B       mov      r12, gword ptr [rbp-0x30]\n\u002B\t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 1.88\n\u002BG_M40223_IG08:\n\u002B       jmp      SHORT G_M40223_IG10\n\u002B\t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 1.00\n\u002BG_M40223_IG09:\n        mov      rsi, r15\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableList\u00601[System.__Canon]:CreateRange(System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.Collections.Immutable.ImmutableList\u00601[System.__Canon]\n        call     [rax]System.Collections.Immutable.ImmutableList\u00601[System.__Canon]:CreateRange(System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.Collections.Immutable.ImmutableList\u00601[System.__Canon]\n-       mov      r15, rax\n\u002B       mov      r12, rax\n \t\t\t\t\t\t;; size=21 bbWeight=0.50 PerfScore 2.00\n-G_M40223_IG12:\n-       mov      r13, gword ptr [rbx\u002B0x10]\n-       test     r13, r13\n-       je       SHORT G_M40223_IG15\n-\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.25\n-G_M40223_IG13:\n-       cmp      qword ptr [r13], r14\n-       jne      SHORT G_M40223_IG15\n-\t\t\t\t\t\t;; size=6 bbWeight=0.25 PerfScore 0.75\n-G_M40223_IG14:\n-       jmp      G_M40223_IG22\n-\t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 1.00\n-G_M40223_IG15:\n-       mov      rdi, 0xD1FFAB1E      ; global ptr\n-       test     byte  ptr [rdi], 1\n-       je       G_M40223_IG26\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n-G_M40223_IG16:\n-       mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Immutable.ImmutableList\u00601[LaunchDarkly.Sdk.Server.Subsystems.IComponentConfigurer\u00601[LaunchDarkly.Sdk.Server.Subsystems.IDataSource]]:Empty\n-       mov      r12, gword ptr [rdi]\n-       cmp      byte  ptr [r12], r12b\n-       test     r13, r13\n-       je       G_M40223_IG25\n-       mov      rdi, gword ptr [r12\u002B0x08]\n\u002BG_M40223_IG10:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x10]\n\u002B       mov      r15, gword ptr [r13]\n\u002B       cmp      byte  ptr [r15], r15b\n\u002B       test     rsi, rsi\n\u002B       je       G_M40223_IG20\n\u002B       mov      rdi, gword ptr [r15\u002B0x08]\n        cmp      gword ptr [rdi\u002B0x10], 0\n-       je       G_M40223_IG21\n-       mov      rsi, r13\n\u002B       je       G_M40223_IG16\n\u002B\t\t\t\t\t\t;; size=35 bbWeight=1 PerfScore 12.25\n\u002BG_M40223_IG11:\n\u002B       mov      rdi, gword ptr [r15\u002B0x08]\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableList\u00601\u002BNode[System.__Canon]:AddRange(System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.Collections.Immutable.ImmutableList\u00601\u002BNode[System.__Canon]:this\n\u002B       cmp      dword ptr [rdi], edi\n        call     [rax]System.Collections.Immutable.ImmutableList\u00601\u002BNode[System.__Canon]:AddRange(System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.Collections.Immutable.ImmutableList\u00601\u002BNode[System.__Canon]:this\n-       mov      r13, rax\n-       cmp      r13, gword ptr [r12\u002B0x08]\n-       jne      SHORT G_M40223_IG17\n-       jmp      SHORT G_M40223_IG20\n-\t\t\t\t\t\t;; size=69 bbWeight=0.50 PerfScore 9.62\n-G_M40223_IG17:\n-       mov      r12, gword ptr [r13\u002B0x10]\n-       test     r12, r12\n-       jne      SHORT G_M40223_IG18\n-       mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Immutable.ImmutableList\u00601[LaunchDarkly.Sdk.Server.Subsystems.IComponentConfigurer\u00601[LaunchDarkly.Sdk.Server.Subsystems.IDataSource]]:Empty\n-       mov      r12, gword ptr [rdi]\n-       jmp      SHORT G_M40223_IG20\n-\t\t\t\t\t\t;; size=24 bbWeight=0.50 PerfScore 3.75\n-G_M40223_IG18:\n\u002B       mov      gword ptr [rbp-0x38], rax\n\u002B       cmp      rax, gword ptr [r15\u002B0x08]\n\u002B       jne      SHORT G_M40223_IG12\n\u002B       jmp      SHORT G_M40223_IG15\n\u002B\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 6.62\n\u002BG_M40223_IG12:\n\u002B       mov      r15, gword ptr [rax\u002B0x10]\n\u002B       test     r15, r15\n\u002B       jne      SHORT G_M40223_IG13\n\u002B       mov      r15, gword ptr [r13]\n\u002B       jmp      SHORT G_M40223_IG15\n\u002B\t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 3.62\n\u002BG_M40223_IG13:\n        mov      rdi, r14\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n\u002B       mov      r13, gword ptr [rbp-0x38]\n        cmp      byte  ptr [r13\u002B0x24], 0\n-       jne      SHORT G_M40223_IG19\n-       mov      rdi, r12\n\u002B       jne      SHORT G_M40223_IG14\n\u002B       mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableList\u00601\u002BNode[System.__Canon]:Freeze():this\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.Collections.Immutable.ImmutableList\u00601\u002BNode[System.__Canon]:Freeze():this\n@@ -187,49 \u002B162,47 @@ G_M40223_IG18:\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.Collections.Immutable.ImmutableList\u00601\u002BNode[System.__Canon]:Freeze():this\n        mov      byte  ptr [r13\u002B0x24], 1\n-\t\t\t\t\t\t;; size=58 bbWeight=0.50 PerfScore 9.12\n-G_M40223_IG19:\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 9.62\n\u002BG_M40223_IG14:\n        lea      rdi, bword ptr [r14\u002B0x08]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r12, r14\n\u002B       mov      r15, r14\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 1.00\n-G_M40223_IG20:\n-       mov      r13, r12\n-       jmp      SHORT G_M40223_IG22\n-\t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 1.12\n-G_M40223_IG21:\n-       mov      rsi, r13\n\u002BG_M40223_IG15:\n\u002B       jmp      SHORT G_M40223_IG17\n\u002B\t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 1.00\n\u002BG_M40223_IG16:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableList\u00601[System.__Canon]:CreateRange(System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.Collections.Immutable.ImmutableList\u00601[System.__Canon]\n        call     [rax]System.Collections.Immutable.ImmutableList\u00601[System.__Canon]:CreateRange(System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.Collections.Immutable.ImmutableList\u00601[System.__Canon]\n-       mov      r13, rax\n-\t\t\t\t\t\t;; size=21 bbWeight=0.50 PerfScore 2.00\n-G_M40223_IG22:\n\u002B       mov      r15, rax\n\u002B\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 1.88\n\u002BG_M40223_IG17:\n        mov      rdi, 0xD1FFAB1E      ; LaunchDarkly.Sdk.Server.Subsystems.DataSystemConfiguration\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n-       mov      r12, gword ptr [rbx\u002B0x18]\n\u002B       mov      r13, gword ptr [rbx\u002B0x18]\n        mov      rax, gword ptr [rbx\u002B0x20]\n-       mov      gword ptr [rbp-0x30], rax\n\u002B       mov      gword ptr [rbp-0x40], rax\n        mov      ebx, dword ptr [rbx\u002B0x28]\n        lea      rdi, bword ptr [r14\u002B0x08]\n-       mov      rsi, r15\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r14\u002B0x10]\n-       mov      rsi, r13\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n\u002B       lea      rdi, bword ptr [r14\u002B0x10]\n\u002B       mov      rsi, r15\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n\u002B       mov      rsi, r13\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r14\u002B0x20]\n-       mov      rsi, gword ptr [rbp-0x30]\n\u002B       mov      rsi, gword ptr [rbp-0x40]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      dword ptr [r14\u002B0x28], ebx\n        mov      rax, r14\n \t\t\t\t\t\t;; size=89 bbWeight=1 PerfScore 17.50\n-G_M40223_IG23:\n-       add      rsp, 8\n\u002BG_M40223_IG18:\n\u002B       add      rsp, 24\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -238,24 \u002B211,18 @@ G_M40223_IG23:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M40223_IG24:\n\u002BG_M40223_IG19:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M40223_IG06\n\u002B       jmp      G_M40223_IG03\n \t\t\t\t\t\t;; size=20 bbWeight=0 PerfScore 0.00\n-G_M40223_IG25:\n\u002BG_M40223_IG20:\n        mov      rdi, 0xD1FFAB1E      ; \u0027items\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)\n        call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)\n        int3     \n \t\t\t\t\t\t;; size=23 bbWeight=0 PerfScore 0.00\n-G_M40223_IG26:\n-       mov      rdi, r14\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M40223_IG16\n-\t\t\t\t\t\t;; size=20 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 662, prolog size 16, PerfScore 96.06, instruction count 161, allocated bytes for code 662 (MethodHash=ea3f62e0) for method LaunchDarkly.Sdk.Server.Integrations.DataSystemBuilder:Build():LaunchDarkly.Sdk.Server.Subsystems.DataSystemConfiguration:this (FullOpts)\n\u002B; Total bytes of code 573, prolog size 19, PerfScore 105.12, instruction count 143, allocated bytes for code 573 (MethodHash=ea3f62e0) for method LaunchDarkly.Sdk.Server.Integrations.DataSystemBuilder:Build():LaunchDarkly.Sdk.Server.Subsystems.DataSystemConfiguration:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":662,"DiffBytes":573},{"Assembly":"MathNet.Numerics.dasm","Method":"MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:SameAs[int](MathNet.Numerics.LinearAlgebra.Matrix\u00601[int],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)","Category":"improvement","Description":"594 -\u003E 120 bytes (-474)","ExtraInfo":null,"Diff":"@@ -1,214 \u002B1,65 @@\n ; Assembly listing for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:SameAs[int](MathNet.Numerics.LinearAlgebra.Matrix\u00601[int],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n-; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data\n\u002B; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 12,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V01 arg1         [V01,T03] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[int]\u003E\n-;  V02 arg2         [V02,T01] ( 11,  6.50)     int  -\u003E  r15         single-def\n-;  V03 arg3         [V03,T02] ( 11,  6.50)     int  -\u003E  r14         single-def\n-;  V04 arg4         [V04,T04] (  3,  2.50)   ubyte  -\u003E  r13         single-def\n-;  V05 loc0         [V05,T08] (  4,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]\u003E\n\u002B;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V01 arg1         [V01,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[int]\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  4   )     int  -\u003E  r15         single-def\n\u002B;  V03 arg3         [V03,T04] (  4,  4   )     int  -\u003E  r14         single-def\n\u002B;* V04 arg4         [V04    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def\n\u002B;* V05 loc0         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V07 tmp1         [V07,T00] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003CSystem.Numerics.Vector\u00601[float][]\u003E\n-;  V09 tmp3         [V09,T06] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003CSystem.Numerics.Vector\u00601[float][]\u003E\n-;  V11 tmp5         [V11,T11] (  2,  1   )     int  -\u003E  rsi         \u0022Inline return value spill temp\u0022\n-;  V12 tmp6         [V12,T09] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V13 tmp7         [V13,T10] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V14 tmp8         [V14,T07] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003CSystem.Numerics.Vector\u00601[float][]\u003E\n-;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022Single return block return value\u0022\n ;\n ; Lcl frame size = 8\n \n G_M59260_IG01:\n-       push     rbp\n        push     r15\n        push     r14\n        push     r13\n-       push     r12\n        push     rbx\n        push     rax\n-       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n        mov      r15d, edx\n        mov      r14d, ecx\n-       mov      r13d, r8d\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.75\n G_M59260_IG02:\n-       mov      r12, gword ptr [rsi\u002B0x08]\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M59260_IG11\n-\t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 7.00\n-G_M59260_IG03:\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M59260_IG07\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      SHORT G_M59260_IG05\n\u002B       cmp      byte  ptr [rsi], sil\n        mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        mov      rdi, r13\n        mov      esi, r15d\n        mov      edx, r14d\n        mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n        call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n        imul     r15d, r14d\n        movsxd   rsi, r15d\n        mov      rdi, 0xD1FFAB1E      ; System.Numerics.Vector\u00601[float][]\n        call     CORINFO_HELP_NEWARR_1_VC\n        mov      rsi, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, rbx\n        mov      rsi, r13\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=150 bbWeight=0.50 PerfScore 12.62\n-G_M59260_IG04:\n\u002B\t\t\t\t\t\t;; size=89 bbWeight=1 PerfScore 17.25\n\u002BG_M59260_IG03:\n        add      rsp, 8\n        pop      rbx\n-       pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n-       pop      rbp\n        tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M59260_IG05:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 5.00\n-G_M59260_IG06:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M59260_IG07:\n-       test     r13b, r13b\n-       je       SHORT G_M59260_IG09\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 5.62\n-G_M59260_IG08:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M59260_IG09:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       cmp      r15d, r14d\n-       mov      esi, r14d\n-       cmovle   esi, r15d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; System.Numerics.Vector\u00601[float][]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 7.12\n-G_M59260_IG10:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x10]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:Diagonal(MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M59260_IG11:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       mov      esi, r15d\n-       imul     esi, r14d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; System.Numerics.Vector\u00601[float][]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=89 bbWeight=0.50 PerfScore 7.75\n-G_M59260_IG12:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n\u002B\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 594, prolog size 16, PerfScore 66.75, instruction count 157, allocated bytes for code 594 (MethodHash=82c21883) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:SameAs[int](MathNet.Numerics.LinearAlgebra.Matrix\u00601[int],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n\u002B; Total bytes of code 120, prolog size 8, PerfScore 27.25, instruction count 34, allocated bytes for code 120 (MethodHash=82c21883) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:SameAs[int](MathNet.Numerics.LinearAlgebra.Matrix\u00601[int],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":594,"DiffBytes":120},{"Assembly":"Microsoft.AspNetCore.OData.dasm","Method":"Microsoft.AspNetCore.OData.Query.Expressions.SelectExpandBinder:CreatePropertyValueExpression(Microsoft.AspNetCore.OData.Query.Expressions.QueryBinderContext,Microsoft.OData.Edm.IEdmStructuredType,Microsoft.OData.Edm.IEdmProperty,System.Linq.Expressions.Expression,Microsoft.OData.UriParser.FilterClause,Microsoft.OData.UriParser.ComputeClause,Microsoft.OData.UriParser.SearchClause):System.Linq.Expressions.Expression:this (FullOpts)","Category":"improvement","Description":"3,099 -\u003E 3,032 bytes (-67)","ExtraInfo":null,"Diff":"@@ -14,106 \u002B14,106 @@\n ;  V03 arg3         [V03,T01] ( 13,  8   )     ref  -\u003E  r15         class-hnd single-def \u003CMicrosoft.OData.Edm.IEdmProperty\u003E\n ;  V04 arg4         [V04,T00] ( 11,  8.50)     ref  -\u003E  rbx         class-hnd \u003CSystem.Linq.Expressions.Expression\u003E\n ;  V05 arg5         [V05,T07] (  5,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CMicrosoft.OData.UriParser.FilterClause\u003E\n-;  V06 arg6         [V06,T52] (  2,  1   )     ref  -\u003E  [rbp\u002B0x10]  class-hnd single-def \u003CMicrosoft.OData.UriParser.ComputeClause\u003E\n-;  V07 arg7         [V07,T50] (  2,  1.50)     ref  -\u003E  [rbp\u002B0x18]  class-hnd single-def \u003CMicrosoft.OData.UriParser.SearchClause\u003E\n-;  V08 loc0         [V08,T22] (  4,  3.50)     ref  -\u003E  [rbp-0x58]  class-hnd exact spill-single-def \u003CMicrosoft.AspNetCore.OData.Query.Expressions.SelectExpandBinder\u002B\u003C\u003Ec__DisplayClass11_0\u003E\n\u002B;  V06 arg6         [V06,T50] (  2,  1   )     ref  -\u003E  [rbp\u002B0x10]  class-hnd single-def \u003CMicrosoft.OData.UriParser.ComputeClause\u003E\n\u002B;  V07 arg7         [V07,T48] (  2,  1.50)     ref  -\u003E  [rbp\u002B0x18]  class-hnd single-def \u003CMicrosoft.OData.UriParser.SearchClause\u003E\n\u002B;  V08 loc0         [V08,T21] (  4,  3.50)     ref  -\u003E  [rbp-0x58]  class-hnd exact spill-single-def \u003CMicrosoft.AspNetCore.OData.Query.Expressions.SelectExpandBinder\u002B\u003C\u003Ec__DisplayClass11_0\u003E\n ;  V09 loc1         [V09,T10] (  8,  5   )     ref  -\u003E  [rbp-0x60]  class-hnd spill-single-def \u003CMicrosoft.OData.Edm.IEdmModel\u003E\n-;  V10 loc2         [V10,T21] (  5,  3.50)     ref  -\u003E  [rbp-0x68]  class-hnd spill-single-def \u003CMicrosoft.AspNetCore.OData.Query.ODataQuerySettings\u003E\n-;  V11 loc3         [V11,T23] (  4,  3.50)     ref  -\u003E  rax         class-hnd \u003CSystem.Reflection.PropertyInfo\u003E\n\u002B;  V10 loc2         [V10,T20] (  5,  3.50)     ref  -\u003E  [rbp-0x68]  class-hnd spill-single-def \u003CMicrosoft.AspNetCore.OData.Query.ODataQuerySettings\u003E\n\u002B;  V11 loc3         [V11,T22] (  4,  3.50)     ref  -\u003E  rax         class-hnd \u003CSystem.Reflection.PropertyInfo\u003E\n ;  V12 loc4         [V12,T05] (  7,  6   )     ref  -\u003E  [rbp-0x70]  class-hnd \u003CSystem.Linq.Expressions.Expression\u003E\n ;  V13 loc5         [V13,T11] (  7,  4   )     ref  -\u003E  [rbp-0x78]  class-hnd \u003CSystem.Type\u003E\n ;  V14 loc6         [V14,T03] ( 16,  8.50)     ref  -\u003E  [rbp-0x80]  class-hnd \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V15 loc7         [V15,T42] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Type\u003E\n-;  V16 loc8         [V16,T49] (  3,  1.50)   ubyte  -\u003E  [rbp-0x2C]  spill-single-def\n\u002B;  V15 loc7         [V15,T41] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Type\u003E\n\u002B;  V16 loc8         [V16,T47] (  3,  1.50)   ubyte  -\u003E  [rbp-0x2C]  spill-single-def\n ;* V17 loc9         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMicrosoft.OData.Edm.IEdmTypeReference\u003E\n-;  V18 loc10        [V18,T43] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Type\u003E\n-;  V19 loc11        [V19,T20] (  7,  3.50)     ref  -\u003E  [rbp-0x88]  class-hnd \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V20 loc12        [V20,T44] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u003CMicrosoft.AspNetCore.OData.Query.Expressions.QueryBinderContext\u003E\n\u002B;  V18 loc10        [V18,T42] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Type\u003E\n\u002B;  V19 loc11        [V19,T19] (  7,  3.50)     ref  -\u003E  [rbp-0x88]  class-hnd \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;  V20 loc12        [V20,T43] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u003CMicrosoft.AspNetCore.OData.Query.Expressions.QueryBinderContext\u003E\n ;* V21 loc13        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Linq.Expressions.Expression\u003E\n ;  V22 loc14        [V22,T25] (  5,  2.50)     ref  -\u003E  r12         class-hnd single-def \u003CSystem.Linq.Expressions.LambdaExpression\u003E\n ;* V23 loc15        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n ;* V24 loc16        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Linq.Expressions.Expression\u003E\n ;* V25 loc17        [V25    ] (  0,  0   )   ubyte  -\u003E  zero-ref   \n-;  V26 loc18        [V26,T51] (  3,  1   )     ref  -\u003E  r15         class-hnd single-def \u003CMicrosoft.OData.Edm.IEdmTypeReference\u003E\n-;  V27 loc19        [V27,T45] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Type\u003E\n-;  V28 loc20        [V28,T53] (  2,  1   )     ref  -\u003E  rcx         class-hnd single-def \u003CMicrosoft.AspNetCore.OData.Query.Expressions.QueryBinderContext\u003E\n\u002B;  V26 loc18        [V26,T49] (  3,  1   )     ref  -\u003E  r15         class-hnd single-def \u003CMicrosoft.OData.Edm.IEdmTypeReference\u003E\n\u002B;  V27 loc19        [V27,T44] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Type\u003E\n\u002B;  V28 loc20        [V28,T51] (  2,  1   )     ref  -\u003E  rcx         class-hnd single-def \u003CMicrosoft.AspNetCore.OData.Query.Expressions.QueryBinderContext\u003E\n ;  V29 loc21        [V29,T26] (  5,  2.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Linq.Expressions.Expression\u003E\n ;  V30 OutArgs      [V30    ] (  1,  1   )  struct ( 8) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V31 tmp1         [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMicrosoft.AspNetCore.OData.Query.Expressions.SelectExpandBinder\u002B\u003C\u003Ec__DisplayClass11_0\u003E\n ;* V32 tmp2         [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Linq.Expressions.BinaryExpression\u003E\n ;* V33 tmp3         [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Linq.Expressions.BinaryExpression\u003E\n-;  V34 tmp4         [V34,T58] (  3,  0   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n-;  V35 tmp5         [V35,T69] (  2,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V36 tmp6         [V36,T70] (  2,  0   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n-;  V37 tmp7         [V37,T59] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.OData.ODataException\u003E\n-;  V38 tmp8         [V38,T41] (  4,  1.50)     ref  -\u003E  [rbp-0x90] \n\u002B;  V34 tmp4         [V34,T57] (  3,  0   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n\u002B;  V35 tmp5         [V35,T68] (  2,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V36 tmp6         [V36,T69] (  2,  0   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n\u002B;  V37 tmp7         [V37,T58] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.OData.ODataException\u003E\n\u002B;  V38 tmp8         [V38,T40] (  4,  1.50)     ref  -\u003E  [rbp-0x90] \n ;* V39 tmp9         [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Linq.Expressions.BinaryExpression\u003E\n ;  V40 tmp10        [V40,T12] (  4,  4   )     ref  -\u003E  [rbp-0x98]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.AspNetCore.OData.Query.Expressions.SelectExpandBinder\u002BReferenceNavigationPropertyExpandFilterVisitor\u003E\n-;  V41 tmp11        [V41,T57] (  4,  0   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n-;  V42 tmp12        [V42,T71] (  2,  0   )     ref  -\u003E  r13         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V43 tmp13        [V43,T72] (  2,  0   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n-;  V44 tmp14        [V44,T60] (  3,  0   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.OData.ODataException\u003E\n-;  V45 tmp15        [V45,T61] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n-;  V46 tmp16        [V46,T73] (  2,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V47 tmp17        [V47,T74] (  2,  0   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n-;  V48 tmp18        [V48,T62] (  3,  0   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.OData.ODataException\u003E\n\u002B;  V41 tmp11        [V41,T56] (  4,  0   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n\u002B;  V42 tmp12        [V42,T70] (  2,  0   )     ref  -\u003E  r13         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V43 tmp13        [V43,T71] (  2,  0   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n\u002B;  V44 tmp14        [V44,T59] (  3,  0   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.OData.ODataException\u003E\n\u002B;  V45 tmp15        [V45,T60] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n\u002B;  V46 tmp16        [V46,T72] (  2,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n... diff truncated; middle omitted ...\n@@ -548,7 \u002B532,7 @@ G_M50674_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.AspNetCore.OData.Edm.IODataTypeMapperExtensions:GetClrType(Microsoft.AspNetCore.OData.Edm.IODataTypeMapper,Microsoft.OData.Edm.IEdmModel,Microsoft.OData.Edm.IEdmTypeReference,Microsoft.OData.ModelBuilder.IAssemblyResolver):System.Type\n        call     [rax]Microsoft.AspNetCore.OData.Edm.IODataTypeMapperExtensions:GetClrType(Microsoft.AspNetCore.OData.Edm.IODataTypeMapper,Microsoft.OData.Edm.IEdmModel,Microsoft.OData.Edm.IEdmTypeReference,Microsoft.OData.ModelBuilder.IAssemblyResolver):System.Type\n        test     rax, rax\n-       je       G_M50674_IG47\n\u002B       je       G_M50674_IG46\n        mov      rdi, r13\n        mov      rsi, r14\n        mov      rdx, gword ptr [rbp\u002B0x10]\n@@ -569,19 \u002B553,19 @@ G_M50674_IG29:\n        call     [rax\u002B0x28]System.Linq.Expressions.Expression:get_Type():System.Type:this\n        mov      r14, rax\n \t\t\t\t\t\t;; size=185 bbWeight=0.50 PerfScore 21.50\n-G_M50674_IG30:\n\u002BG_M50674_IG29:\n        mov      r13, gword ptr [rbp-0x68]\n        cmp      dword ptr [r13\u002B0x10], 1\n-       je       SHORT G_M50674_IG31\n\u002B       je       SHORT G_M50674_IG30\n        mov      r12, r15\n        mov      gword ptr [rbp-0x80], r12\n-       jmp      G_M50674_IG32\n\u002B       jmp      G_M50674_IG31\n \t\t\t\t\t\t;; size=23 bbWeight=0.50 PerfScore 3.62\n-G_M50674_IG31:\n\u002BG_M50674_IG30:\n        mov      r12, gword ptr [rbp-0x80]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Expressions.ConstantExpression\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0xF0], rax\n\u002B       mov      gword ptr [rbp-0xE8], rax\n        xor      rdi, rdi\n        mov      gword ptr [rax\u002B0x08], rdi\n        mov      rdi, r12\n@@ -589,13 \u002B573,13 @@ G_M50674_IG31:\n        mov      edx, -1\n        mov      rcx, 0xD1FFAB1E      ; code for System.Dynamic.Utils.ExpressionUtils:RequiresCanRead(System.Linq.Expressions.Expression,System.String,int)\n        call     [rcx]System.Dynamic.Utils.ExpressionUtils:RequiresCanRead(System.Linq.Expressions.Expression,System.String,int)\n-       mov      rdi, gword ptr [rbp-0xF0]\n\u002B       mov      rdi, gword ptr [rbp-0xE8]\n        mov      rsi, 0xD1FFAB1E      ; \u0027right\u0027\n        mov      edx, -1\n        mov      rax, 0xD1FFAB1E      ; code for System.Dynamic.Utils.ExpressionUtils:RequiresCanRead(System.Linq.Expressions.Expression,System.String,int)\n        call     [rax]System.Dynamic.Utils.ExpressionUtils:RequiresCanRead(System.Linq.Expressions.Expression,System.String,int)\n        mov      rdx, r12\n-       mov      rcx, gword ptr [rbp-0xF0]\n\u002B       mov      rcx, gword ptr [rbp-0xE8]\n        mov      edi, 13\n        mov      rsi, 0xD1FFAB1E      ; \u0027op_Equality\u0027\n        xor      r8d, r8d\n@@ -614,17 \u002B598,17 @@ G_M50674_IG31:\n        mov      r12, rax\n        mov      gword ptr [rbp-0x80], r12\n \t\t\t\t\t\t;; size=184 bbWeight=0.50 PerfScore 13.88\n-G_M50674_IG32:\n\u002BG_M50674_IG31:\n        mov      r13, gword ptr [rbp-0x68]\n        cmp      dword ptr [r13\u002B0x10], 1\n-       je       SHORT G_M50674_IG34\n\u002B       je       SHORT G_M50674_IG33\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 4.00\n-G_M50674_IG33:\n\u002BG_M50674_IG32:\n        mov      rdi, gword ptr [rbp-0x80]\n        mov      r15, rdi\n-       jmp      G_M50674_IG35\n\u002B       jmp      G_M50674_IG34\n \t\t\t\t\t\t;; size=12 bbWeight=0.50 PerfScore 1.62\n-G_M50674_IG34:\n\u002BG_M50674_IG33:\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Expressions.ConstantExpression\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -659,11 \u002B643,11 @@ G_M50674_IG34:\n        call     [rax]System.Linq.Expressions.Expression:Condition(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression):System.Linq.Expressions.ConditionalExpression\n        mov      r15, rax\n \t\t\t\t\t\t;; size=165 bbWeight=0.50 PerfScore 12.12\n-G_M50674_IG35:\n\u002BG_M50674_IG34:\n        mov      rax, r15\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M50674_IG36:\n-       add      rsp, 216\n\u002BG_M50674_IG35:\n\u002B       add      rsp, 200\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -672,7 \u002B656,7 @@ G_M50674_IG36:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M50674_IG37:\n\u002BG_M50674_IG36:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -684,7 \u002B668,7 @@ G_M50674_IG37:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M50674_IG38:\n\u002BG_M50674_IG37:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -696,7 \u002B680,7 @@ G_M50674_IG38:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M50674_IG39:\n\u002BG_M50674_IG38:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -708,7 \u002B692,7 @@ G_M50674_IG39:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M50674_IG40:\n\u002BG_M50674_IG39:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -720,7 \u002B704,7 @@ G_M50674_IG40:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M50674_IG41:\n\u002BG_M50674_IG40:\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.AspNetCore.OData.SRResources:get_MappingDoesNotContainResourceType():System.String\n        call     [rax]Microsoft.AspNetCore.OData.SRResources:get_MappingDoesNotContainResourceType():System.String\n        mov      rbx, rax\n@@ -753,19 \u002B737,19 @@ G_M50674_IG41:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=146 bbWeight=0 PerfScore 0.00\n-G_M50674_IG42:\n\u002BG_M50674_IG41:\n        mov      rdi, 0xD1FFAB1E      ; \u0027name\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:Throw(System.String)\n        call     [rax]System.ArgumentNullException:Throw(System.String)\n        int3     \n \t\t\t\t\t\t;; size=23 bbWeight=0 PerfScore 0.00\n-G_M50674_IG43:\n\u002BG_M50674_IG42:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M50674_IG44:\n\u002BG_M50674_IG43:\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.AspNetCore.OData.SRResources:get_MappingDoesNotContainResourceType():System.String\n        call     [rax]Microsoft.AspNetCore.OData.SRResources:get_MappingDoesNotContainResourceType():System.String\n        mov      rbx, rax\n@@ -795,7 \u002B779,7 @@ G_M50674_IG44:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=134 bbWeight=0 PerfScore 0.00\n-G_M50674_IG45:\n\u002BG_M50674_IG44:\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.AspNetCore.OData.SRResources:get_ExpandFilterExpressionNotLambdaExpression():System.String\n        call     [rax]Microsoft.AspNetCore.OData.SRResources:get_ExpandFilterExpressionNotLambdaExpression():System.String\n        mov      r13, rax\n@@ -827,12 \u002B811,12 @@ G_M50674_IG45:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=147 bbWeight=0 PerfScore 0.00\n-G_M50674_IG46:\n\u002BG_M50674_IG45:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M50674_IG47:\n\u002BG_M50674_IG46:\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.AspNetCore.OData.SRResources:get_MappingDoesNotContainResourceType():System.String\n        call     [rax]Microsoft.AspNetCore.OData.SRResources:get_MappingDoesNotContainResourceType():System.String\n        mov      rbx, rax\n@@ -863,5 \u002B847,5 @@ G_M50674_IG47:\n        int3     \n \t\t\t\t\t\t;; size=130 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 3099, prolog size 35, PerfScore 293.50, instruction count 653, allocated bytes for code 3099 (MethodHash=5b183a0d) for method Microsoft.AspNetCore.OData.Query.Expressions.SelectExpandBinder:CreatePropertyValueExpression(Microsoft.AspNetCore.OData.Query.Expressions.QueryBinderContext,Microsoft.OData.Edm.IEdmStructuredType,Microsoft.OData.Edm.IEdmProperty,System.Linq.Expressions.Expression,Microsoft.OData.UriParser.FilterClause,Microsoft.OData.UriParser.ComputeClause,Microsoft.OData.UriParser.SearchClause):System.Linq.Expressions.Expression:this (FullOpts)\n\u002B; Total bytes of code 3032, prolog size 35, PerfScore 284.75, instruction count 639, allocated bytes for code 3032 (MethodHash=5b183a0d) for method Microsoft.AspNetCore.OData.Query.Expressions.SelectExpandBinder:CreatePropertyValueExpression(Microsoft.AspNetCore.OData.Query.Expressions.QueryBinderContext,Microsoft.OData.Edm.IEdmStructuredType,Microsoft.OData.Edm.IEdmProperty,System.Linq.Expressions.Expression,Microsoft.OData.UriParser.FilterClause,Microsoft.OData.UriParser.ComputeClause,Microsoft.OData.UriParser.SearchClause):System.Linq.Expressions.Expression:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":3099,"DiffBytes":3032},{"Assembly":"Microsoft.CodeAnalysis.AnalyzerUtilities.dasm","Method":"Microsoft.CodeAnalysis.ErrorReporting.FatalError\u002B\u003C\u003Ec:\u003CReportNonFatalErrorAsync\u003Eb__15_0(System.Threading.Tasks.Task):bool:this (FullOpts)","Category":"improvement","Description":"93 -\u003E 47 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,58 \u002B1,42 @@\n ; Assembly listing for method Microsoft.CodeAnalysis.ErrorReporting.FatalError\u002B\u003C\u003Ec:\u003CReportNonFatalErrorAsync\u003Eb__15_0(System.Threading.Tasks.Task):bool:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;* V00 this         [V00    ] (  0,  0   )     ref  -\u003E  zero-ref    this class-hnd single-def \u003CMicrosoft.CodeAnalysis.ErrorReporting.FatalError\u002B\u003C\u003Ec\u003E\n ;  V01 arg1         [V01,T00] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.Threading.Tasks.Task\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V03 tmp1         [V03,T02] (  3,  2   )   ubyte  -\u003E  rax         \u0022Inline return value spill temp\u0022\n-;  V04 tmp2         [V04,T01] (  3,  5   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.AggregateException\u003E\n\u002B;* V03 tmp1         [V03    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V04 tmp2         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.AggregateException\u003E\n\u002B;  V05 tmp3         [V05,T01] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;\n-; Lcl frame size = 8\n\u002B; Lcl frame size = 0\n \n G_M59146_IG01:\n        push     rbp\n-       push     rbx\n-       push     rax\n-       lea      rbp, [rsp\u002B0x10]\n-\t\t\t\t\t\t;; size=8 bbWeight=1 PerfScore 3.50\n\u002B       mov      rbp, rsp\n\u002B\t\t\t\t\t\t;; size=4 bbWeight=1 PerfScore 1.25\n G_M59146_IG02:\n        mov      rdi, rsi\n        mov      rax, 0xD1FFAB1E      ; code for System.Threading.Tasks.Task:get_Exception():System.AggregateException:this\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.Threading.Tasks.Task:get_Exception():System.AggregateException:this\n-       mov      rbx, rax\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.OperationCanceledException\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      SHORT G_M59146_IG04\n-\t\t\t\t\t\t;; size=50 bbWeight=1 PerfScore 10.75\n-G_M59146_IG03:\n-       mov      rdi, rbx\n\u002B       mov      rdi, rax\n        xor      esi, esi\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.CodeAnalysis.ErrorReporting.FatalError:Report(System.Exception,int,bool)\n        call     [rax]Microsoft.CodeAnalysis.ErrorReporting.FatalError:Report(System.Exception,int,bool)\n        mov      eax, 1\n-       jmp      SHORT G_M59146_IG05\n-\t\t\t\t\t\t;; size=26 bbWeight=0.50 PerfScore 3.12\n-G_M59146_IG04:\n-       xor      eax, eax\n-\t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M59146_IG05:\n-       add      rsp, 8\n-       pop      rbx\n\u002B\t\t\t\t\t\t;; size=41 bbWeight=1 PerfScore 9.75\n\u002BG_M59146_IG03:\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.25\n\u002B\t\t\t\t\t\t;; size=2 bbWeight=1 PerfScore 1.50\n \n-; Total bytes of code 93, prolog size 8, PerfScore 19.75, instruction count 27, allocated bytes for code 93 (MethodHash=ae6418f5) for method Microsoft.CodeAnalysis.ErrorReporting.FatalError\u002B\u003C\u003Ec:\u003CReportNonFatalErrorAsync\u003Eb__15_0(System.Threading.Tasks.Task):bool:this (FullOpts)\n\u002B; Total bytes of code 47, prolog size 4, PerfScore 12.50, instruction count 14, allocated bytes for code 47 (MethodHash=ae6418f5) for method Microsoft.CodeAnalysis.ErrorReporting.FatalError\u002B\u003C\u003Ec:\u003CReportNonFatalErrorAsync\u003Eb__15_0(System.Threading.Tasks.Task):bool:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":93,"DiffBytes":47},{"Assembly":"Microsoft.CodeAnalysis.Features.dasm","Method":"Microsoft.CodeAnalysis.AddPackage.InstallPackageDirectlyCodeActionOperation:.ctor(Microsoft.CodeAnalysis.Packaging.IPackageInstallerService,Microsoft.CodeAnalysis.Document,System.String,System.String,System.String,bool,bool):this (FullOpts)","Category":"improvement","Description":"851 -\u003E 730 bytes (-121)","ExtraInfo":null,"Diff":"@@ -14,38 \u002B14,38 @@\n ;  V03 arg3         [V03,T09] (  3,  3   )     ref  -\u003E  [rbp-0x30]  class-hnd single-def \u003CSystem.String\u003E\n ;  V04 arg4         [V04,T05] (  4,  3.50)     ref  -\u003E  r13         class-hnd single-def \u003CSystem.String\u003E\n ;  V05 arg5         [V05,T02] (  5,  4.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.String\u003E\n-;  V06 arg6         [V06,T29] (  1,  1   )   ubyte  -\u003E  [rbp\u002B0x10]  single-def\n-;  V07 arg7         [V07,T30] (  1,  1   )   ubyte  -\u003E  [rbp\u002B0x18]  single-def\n-;  V08 loc0         [V08,T10] (  6,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[Microsoft.CodeAnalysis.Project]\u003E\n\u002B;  V06 arg6         [V06,T25] (  1,  1   )   ubyte  -\u003E  [rbp\u002B0x10]  single-def\n\u002B;  V07 arg7         [V07,T26] (  1,  1   )   ubyte  -\u003E  [rbp\u002B0x18]  single-def\n\u002B;  V08 loc0         [V08,T12] (  5,  2.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[Microsoft.CodeAnalysis.Project]\u003E\n ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V10 tmp1         [V10,T03] (  3,  6   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.String]\u003E\n-;  V11 tmp2         [V11,T11] (  3,  3   )     ref  -\u003E  [rbp-0x40]  class-hnd exact spill-single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Collections.Immutable.ImmutableArray\u00601[Microsoft.CodeAnalysis.Project]\u003E\n-;  V12 tmp3         [V12,T17] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[System.String]\u003E\n-;  V13 tmp4         [V13,T18] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[Microsoft.CodeAnalysis.Project,System.String]\u003E\n-;  V14 tmp5         [V14,T12] (  3,  3   )     ref  -\u003E  r13         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.CodeAnalysis.Project]\u003E\n\u002B;  V11 tmp2         [V11,T10] (  3,  3   )     ref  -\u003E  [rbp-0x40]  class-hnd exact spill-single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Collections.Immutable.ImmutableArray\u00601[Microsoft.CodeAnalysis.Project]\u003E\n\u002B;  V12 tmp3         [V12,T15] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[System.String]\u003E\n\u002B;  V13 tmp4         [V13,T16] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[Microsoft.CodeAnalysis.Project,System.String]\u003E\n\u002B;  V14 tmp5         [V14,T11] (  3,  3   )     ref  -\u003E  r13         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.CodeAnalysis.Project]\u003E\n ;* V15 tmp6         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V16 tmp7         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V17 tmp8         [V17,T13] (  4,  2   )     ref  -\u003E  rdx        \n ;  V18 tmp9         [V18,T06] (  5,  5   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[Microsoft.CodeAnalysis.Project,System.String]\u003E\n ;* V19 tmp10        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMicrosoft.CodeAnalysis.Document\u003E\n-;  V20 tmp11        [V20,T19] (  2,  2   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.CodeAnalysis.Project\u003E\n-;* V21 tmp12        [V21,T31] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V22 tmp13        [V22,T24] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.CodeAnalysis.Project[]\u003E\n-;  V23 tmp14        [V23,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.CodeAnalysis.Project]\u003E\n-;  V24 tmp15        [V24,T14] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Microsoft.CodeAnalysis.Project]\u003E\n-;  V25 tmp16        [V25,T27] (  2,  1   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.CodeAnalysis.Project]\u003E\n-;  V26 tmp17        [V26,T15] (  4,  2   )     ref  -\u003E  rax        \n\u002B;  V20 tmp11        [V20,T17] (  2,  2   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.CodeAnalysis.Project\u003E\n\u002B;* V21 tmp12        [V21,T27] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V22 tmp13        [V22,T22] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.CodeAnalysis.Project[]\u003E\n\u002B;* V23 tmp14        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.CodeAnalysis.Project]\u003E\n\u002B;* V24 tmp15        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Microsoft.CodeAnalysis.Project]\u003E\n\u002B;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.CodeAnalysis.Project]\u003E\n\u002B;* V26 tmp17        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp18        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.CodeAnalysis.Project]\u003E\n ;  V28 tmp19        [V28,T07] (  5,  5   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Enumerable\u002BIListSkipTakeIterator\u00601[Microsoft.CodeAnalysis.Project]\u003E\n ;* V29 tmp20        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Enumerable\u002BIEnumerableSkipTakeIterator\u00601[Microsoft.CodeAnalysis.Project]\u003E\n-;  V30 tmp21        [V30,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.CodeAnalysis.AddPackage.InstallPackageDirectlyCodeActionOperation\u002B\u003C\u003Ec\u003E\n\u002B;  V30 tmp21        [V30,T18] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.CodeAnalysis.AddPackage.InstallPackageDirectlyCodeActionOperation\u002B\u003C\u003Ec\u003E\n ;  V31 tmp22        [V31,T01] (  7,  7   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.String]\u003E\n-;  V32 tmp23        [V32,T26] (  3,  1.50)     ref  -\u003E  rbx         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String[]\u003E\n-;  V33 tmp24        [V33,T16] (  4,  2   )     int  -\u003E  r15         single-def \u0022Inline stloc first use temp\u0022\n-;  V34 tmp25        [V34,T21] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V35 cse0         [V35,T28] (  2,  1   )     int  -\u003E  rsi         \u0022CSE #05: moderate\u0022\n-;  V36 rat0         [V36,T22] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V37 rat1         [V37,T23] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V32 tmp23        [V32,T23] (  3,  1.50)     ref  -\u003E  rbx         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String[]\u003E\n\u002B;  V33 tmp24        [V33,T14] (  4,  2   )     int  -\u003E  r15         single-def \u0022Inline stloc first use temp\u0022\n\u002B;  V34 tmp25        [V34,T19] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V35 cse0         [V35,T24] (  2,  1   )     int  -\u003E  rsi         \u0022CSE #02: moderate\u0022\n\u002B;  V36 rat0         [V36,T20] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V37 rat1         [V37,T21] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 24\n \n@@ -96,7 \u002B96,7 @@ G_M2490_IG02:\n        movzx    r12, byte  ptr [rbp\u002B0x18]\n        mov      byte  ptr [rbx\u002B0x39], r12b\n        test     r15, r15\n-       je       G_M2490_IG15\n\u002B       je       G_M2490_IG11\n \t\t\t\t\t\t;; size=142 bbWeight=1 PerfScore 23.25\n G_M2490_IG03:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n@@ -121,7 \u002B121,7 @@ G_M2490_IG03:\n        mov      r15, rax\n        mov      r14, gword ptr [rbx\u002B0x30]\n        test     r15, r15\n-       je       G_M2490_IG16\n\u002B       je       G_M2490_IG12\n        mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.Project[]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFARRAY\n@@ -129,35 \u002B129,9 @@ G_M2490_IG03:\n        test     rax, rax\n        je       SHORT G_M2490_IG04\n        cmp      dword ptr [rax\u002B0x08], 0\n-       je       G_M2490_IG09\n-\t\t\t\t\t\t;; size=151 bbWeight=0.50 PerfScore 15.12\n\u002B       je       SHORT G_M2490_IG05\n\u002B\t\t\t\t\t\t;; size=147 bbWeight=0.50 PerfScore 15.12\n G_M2490_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[Microsoft.CodeAnalysis.Project]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M2490_IG07\n-       mov      rdi, rax\n-       mov      esi, 5\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x10]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:Take(int):System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:this\n-       test     rax, rax\n-       jne      SHORT G_M2490_IG06\n-       mov      rdi, 0xD1FFAB1E      ; global ptr\n-       test     byte  ptr [rdi], 1\n-       je       G_M2490_IG18\n-\t\t\t\t\t\t;; size=72 bbWeight=0.50 PerfScore 8.50\n-G_M2490_IG05:\n-       mov      rdi, 0xD1FFAB1E      ; data for System.Array\u002BEmptyArray\u00601[Microsoft.CodeAnalysis.Project]:Value\n-       mov      rax, gword ptr [rdi]\n-\t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 1.12\n-G_M2490_IG06:\n-       mov      r13, rax\n-       jmp      SHORT G_M2490_IG08\n-\t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 1.12\n-G_M2490_IG07:\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIListSkipTakeIterator\u00601[Microsoft.CodeAnalysis.Project]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n@@ -172,24 \u002B146,22 @@ G_M2490_IG07:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, 0xD1FFAB1E\n        mov      qword ptr [r13\u002B0x20], rdi\n-\t\t\t\t\t\t;; size=77 bbWeight=0.50 PerfScore 5.62\n-G_M2490_IG08:\n-       jmp      SHORT G_M2490_IG11\n-\t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 1.00\n-G_M2490_IG09:\n\u002B       jmp      SHORT G_M2490_IG07\n\u002B\t\t\t\t\t\t;; size=79 bbWeight=0.50 PerfScore 6.62\n\u002BG_M2490_IG05:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M2490_IG17\n\u002B       je       G_M2490_IG13\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n-G_M2490_IG10:\n\u002BG_M2490_IG06:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Array\u002BEmptyArray\u00601[Microsoft.CodeAnalysis.Project]:Value\n        mov      r13, gword ptr [rdi]\n \t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 1.12\n-G_M2490_IG11:\n\u002BG_M2490_IG07:\n        mov      rdi, 0xD1FFAB1E      ; data for Microsoft.CodeAnalysis.AddPackage.InstallPackageDirectlyCodeActionOperation\u002B\u003C\u003Ec:\u003C\u003E9__8_0\n        mov      rdx, gword ptr [rdi]\n        test     rdx, rdx\n-       jne      SHORT G_M2490_IG12\n\u002B       jne      SHORT G_M2490_IG08\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[Microsoft.CodeAnalysis.Project,System.String]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n@@ -204,7 \u002B176,7 @@ G_M2490_IG11:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdx, r12\n \t\t\t\t\t\t;; size=95 bbWeight=0.50 PerfScore 5.88\n-G_M2490_IG12:\n\u002BG_M2490_IG08:\n        mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:Select[Microsoft.CodeAnalysis.Project,System.String](System.Collections.Generic.IEnumerable\u00601[Microsoft.CodeAnalysis.Project],System.Func\u00602[Microsoft.CodeAnalysis.Project,System.String]):System.Collections.Generic.IEnumerable\u00601[System.String]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:Select[System.__Canon,System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Func\u00602[System.__Canon,System.__Canon]):System.Collections.Generic.IEnumerable\u00601[System.__Canon]\n@@ -215,18 \u002B187,18 @@ G_M2490_IG12:\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddRange(System.Collections.Generic.IEnumerable\u00601[System.__Canon]):this\n        cmp      dword ptr [r15\u002B0x10], 5\n-       jle      SHORT G_M2490_IG15\n\u002B       jle      SHORT G_M2490_IG11\n        mov      rdi, gword ptr [rbx\u002B0x30]\n        inc      dword ptr [rdi\u002B0x14]\n        mov      rbx, gword ptr [rdi\u002B0x08]\n        mov      r15d, dword ptr [rdi\u002B0x10]\n        mov      esi, dword ptr [rbx\u002B0x08]\n        cmp      esi, r15d\n-       ja       SHORT G_M2490_IG14\n\u002B       ja       SHORT G_M2490_IG10\n        mov      rsi, 0xD1FFAB1E      ; \u0027...\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n \t\t\t\t\t\t;; size=95 bbWeight=0.50 PerfScore 12.62\n-G_M2490_IG13:\n\u002BG_M2490_IG09:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -236,14 \u002B208,14 @@ G_M2490_IG13:\n        pop      rbp\n        tail.jmp [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n \t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M2490_IG14:\n\u002BG_M2490_IG10:\n        lea      eax, [r15\u002B0x01]\n        mov      dword ptr [rdi\u002B0x10], eax\n        mov      edi, r15d\n        mov      rax, 0xD1FFAB1E      ; \u0027...\u0027\n        mov      gword ptr [rbx\u002B8*rdi\u002B0x10], rax\n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 1.50\n-G_M2490_IG15:\n\u002BG_M2490_IG11:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -253,24 \u002B225,18 @@ G_M2490_IG15:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M2490_IG16:\n\u002BG_M2490_IG12:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M2490_IG17:\n\u002BG_M2490_IG13:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[Microsoft.CodeAnalysis.Project]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M2490_IG10\n-\t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M2490_IG18:\n-       mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[Microsoft.CodeAnalysis.Project]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M2490_IG05\n\u002B       jmp      G_M2490_IG06\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 851, prolog size 19, PerfScore 92.25, instruction count 186, allocated bytes for code 851 (MethodHash=b26af645) for method Microsoft.CodeAnalysis.AddPackage.InstallPackageDirectlyCodeActionOperation:.ctor(Microsoft.CodeAnalysis.Packaging.IPackageInstallerService,Microsoft.CodeAnalysis.Document,System.String,System.String,System.String,bool,bool):this (FullOpts)\n\u002B; Total bytes of code 730, prolog size 19, PerfScore 81.50, instruction count 162, allocated bytes for code 730 (MethodHash=b26af645) for method Microsoft.CodeAnalysis.AddPackage.InstallPackageDirectlyCodeActionOperation:.ctor(Microsoft.CodeAnalysis.Packaging.IPackageInstallerService,Microsoft.CodeAnalysis.Document,System.String,System.String,System.String,bool,bool):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":851,"DiffBytes":730},{"Assembly":"Microsoft.EntityFrameworkCore.dasm","Method":"Microsoft.EntityFrameworkCore.Utilities.Multigraph\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]]:ThrowCycle(System.Collections.Generic.List\u00601[System.Numerics.Vector\u00601[float]],System.Func\u00602[System.Collections.Generic.IReadOnlyList\u00601[System.Tuple\u00603[System.Numerics.Vector\u00601[float],System.Numerics.Vector\u00601[float],System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]]],System.String],System.Func\u00602[System.String,System.String]):this (FullOpts)","Category":"improvement","Description":"894 -\u003E 838 bytes (-56)","ExtraInfo":null,"Diff":"@@ -9,44 \u002B9,44 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T06] (  5, 10   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Utilities.Multigraph\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]]\u003E\n-;  V01 arg1         [V01,T07] (  7,  6   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V01 arg1         [V01,T07] (  6,  5   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V02 arg2         [V02,T09] (  5,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Func\u00602[System.Collections.Generic.IReadOnlyList\u00601[System.Tuple\u00603[System.Numerics.Vector\u00601[float],System.Numerics.Vector\u00601[float],System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]]],System.String]\u003E\n ;  V03 arg3         [V03,T10] (  5,  2   )     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Func\u00602[System.String,System.String]\u003E\n-;  V04 loc0         [V04,T16] (  4,  0   )     ref  -\u003E  rdi         class-hnd \u003CSystem.String\u003E\n-;  V05 loc1         [V05,T14] (  4, 25   )  simd32  -\u003E  [rbp-0x50]  \u003CSystem.Numerics.Vector\u00601[float]\u003E\n\u002B;  V04 loc0         [V04,T15] (  4,  0   )     ref  -\u003E  rdi         class-hnd \u003CSystem.String\u003E\n\u002B;  V05 loc1         [V05,T13] (  4, 25   )  simd32  -\u003E  [rbp-0x50]  \u003CSystem.Numerics.Vector\u00601[float]\u003E\n ;  V06 loc2         [V06,T01] (  8, 41   )     ref  -\u003E  r12         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.Tuple\u00603[System.Numerics.Vector\u00601[float],System.Numerics.Vector\u00601[float],System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]]]\u003E\n ;  V07 loc3         [V07,T05] (  6, 16   )     ref  -\u003E  [rbp-0xB8]  class-hnd EH-live single-def \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V08 loc4         [V08,T13] (  4, 32   )  simd32  -\u003E  [rbp-0x70]  do-not-enreg[DAS] defined-via-address \u003CSystem.Numerics.Vector\u00601[float]\u003E\n\u002B;  V08 loc4         [V08,T12] (  4, 32   )  simd32  -\u003E  [rbp-0x70]  do-not-enreg[DAS] defined-via-address \u003CSystem.Numerics.Vector\u00601[float]\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (64) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;  V10 tmp1         [V10,T08] (  3,  6   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Tuple\u00603[System.Numerics.Vector\u00601[float],System.Numerics.Vector\u00601[float],System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]]]\u003E\n-;  V11 tmp2         [V11,T19] (  3,  0   )     ref  -\u003E  rbx        \n-;  V12 tmp3         [V12,T20] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n-;  V13 tmp4         [V13,T17] (  4,  0   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Numerics.Vector\u00601[float],System.String]\u003E\n-;  V14 tmp5         [V14,T23] (  2,  0   )     ref  -\u003E  rbx         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.__Canon]\u003E\n-;  V15 tmp6         [V15,T18] (  4,  0   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V11 tmp2         [V11,T18] (  3,  0   )     ref  -\u003E  rbx        \n\u002B;  V12 tmp3         [V12,T19] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V13 tmp4         [V13,T16] (  4,  0   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Numerics.Vector\u00601[float],System.String]\u003E\n\u002B;  V14 tmp5         [V14,T22] (  2,  0   )     ref  -\u003E  rbx         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.__Canon]\u003E\n\u002B;  V15 tmp6         [V15,T17] (  4,  0   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V16 tmp7         [V16    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.ReadOnlySpan\u00601[char]\u003E\n ;* V17 tmp8         [V17    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022Inline return value spill temp\u0022 \u003CSystem.ReadOnlySpan\u00601[char]\u003E\n ;* V18 tmp9         [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ReadOnlySpan\u00601[char]\u003E\n ;* V19 tmp10        [V19    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.ReadOnlySpan\u00601[char]\u003E\n-;  V20 tmp11        [V20,T24] (  2,  0   )   byref  -\u003E  rsi         single-def \u0022Inlining Arg\u0022\n-;  V21 tmp12        [V21,T25] (  2,  0   )     int  -\u003E  rdx         \u0022Inlining Arg\u0022\n-;  V22 tmp13        [V22    ] (  3,  3   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V20 tmp11        [V20,T23] (  2,  0   )   byref  -\u003E  rsi         single-def \u0022Inlining Arg\u0022\n\u002B;  V21 tmp12        [V21,T24] (  2,  0   )     int  -\u003E  rdx         \u0022Inlining Arg\u0022\n\u002B;  V22 tmp13        [V22    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V23 tmp14        [V23    ] (  0,  0   )  simd32  -\u003E  zero-ref    single-def\n-;  V24 tmp15        [V24,T15] (  3,  3   )  simd32  -\u003E  [rbp-0xB0]  do-not-enreg[DAS] defined-via-address \u0022Inline return value spill temp\u0022 \u003CSystem.Numerics.Vector\u00601[float]\u003E\n-;  V25 tmp16        [V25,T11] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V24 tmp15        [V24,T14] (  2,  2   )  simd32  -\u003E  [rbp-0xB0]  do-not-enreg[DAS] defined-via-address \u0022Inline return value spill temp\u0022 \u003CSystem.Numerics.Vector\u00601[float]\u003E\n\u002B;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V26 tmp17        [V26,T02] (  2, 32   )     ref  -\u003E  r15         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]\u003E\n ;  V27 tmp18        [V27,T00] (  6, 80   )     ref  -\u003E  [rbp-0xC0]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Tuple\u00603[System.Numerics.Vector\u00601[float],System.Numerics.Vector\u00601[float],System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]]\u003E\n ;  V28 tmp19        [V28,T04] (  3, 20   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Tuple\u00603[System.Numerics.Vector\u00601[float],System.Numerics.Vector\u00601[float],System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]][]\u003E\n ;  V29 tmp20        [V29,T03] (  4, 24   )     int  -\u003E  r15         \u0022Inline stloc first use temp\u0022\n ;* V30 tmp21        [V30    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022field V16._reference (fldOffset=0x0)\u0022 P-INDEP\n ;* V31 tmp22        [V31    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V16._length (fldOffset=0x8)\u0022 P-INDEP\n-;  V32 tmp23        [V32,T21] (  3,  0   )   byref  -\u003E  rsi         \u0022field V17._reference (fldOffset=0x0)\u0022 P-INDEP\n-;  V33 tmp24        [V33,T22] (  3,  0   )     int  -\u003E  rdx         \u0022field V17._length (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V32 tmp23        [V32,T20] (  3,  0   )   byref  -\u003E  rsi         \u0022field V17._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V33 tmp24        [V33,T21] (  3,  0   )     int  -\u003E  rdx         \u0022field V17._length (fldOffset=0x8)\u0022 P-INDEP\n ;* V34 tmp25        [V34    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V18._reference (fldOffset=0x0)\u0022 P-INDEP\n ;* V35 tmp26        [V35    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V18._length (fldOffset=0x8)\u0022 P-INDEP\n ;* V36 tmp27        [V36    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V19._reference (fldOffset=0x0)\u0022 P-INDEP\n ;* V37 tmp28        [V37    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V19._length (fldOffset=0x8)\u0022 P-INDEP\n-;  V38 tmp29        [V38,T12] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V38 tmp29        [V38,T11] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 216\n \n@@ -68,33 \u002B68,16 @@ G_M35902_IG01:\n \t\t\t\t\t\t;; size=43 bbWeight=1 PerfScore 9.00\n G_M35902_IG02:\n        test     r14, r14\n-       je       G_M35902_IG10\n\u002B       je       G_M35902_IG08\n        test     r15, r15\n-       je       G_M35902_IG14\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Numerics.Vector\u00601[float]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M35902_IG03\n-       lea      rdx, [rbp-0x78]\n-       lea      rsi, [rbp-0xB0]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.Numerics.Vector\u00601[float]]:TryGetFirst(byref):System.Numerics.Vector\u00601[float]:this\n-       jmp      SHORT G_M35902_IG04\n-\t\t\t\t\t\t;; size=74 bbWeight=1 PerfScore 17.75\n-G_M35902_IG03:\n\u002B       je       G_M35902_IG12\n        lea      rdi, [rbp-0xB0]\n        lea      rdx, [rbp-0x78]\n        mov      rsi, r15\n... diff truncated; middle omitted ...\n-\t\t\t\t\t\t;; size=60 bbWeight=1 PerfScore 9.75\n-G_M35902_IG05:\n\u002B       je       G_M35902_IG14\n\u002B\t\t\t\t\t\t;; size=104 bbWeight=1 PerfScore 16.75\n\u002BG_M35902_IG03:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.List\u00601[System.Tuple\u00603[System.Numerics.Vector\u00601[float],System.Numerics.Vector\u00601[float],System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]]]:s_emptyArray\n        mov      rsi, gword ptr [rdi]\n        lea      rdi, bword ptr [r12\u002B0x08]\n@@ -118,12 \u002B101,12 @@ G_M35902_IG05:\n        call     [r11]System.Collections.Generic.IEnumerable\u00601[System.Numerics.Vector\u00601[float]]:GetEnumerator():System.Collections.Generic.IEnumerator\u00601[System.Numerics.Vector\u00601[float]]:this\n        mov      gword ptr [rbp-0xB8], rax\n \t\t\t\t\t\t;; size=66 bbWeight=1 PerfScore 12.00\n-G_M35902_IG06:\n\u002BG_M35902_IG04:\n        mov      rdi, gword ptr [rbp-0xB8]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():bool:this\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n-       je       G_M35902_IG17\n\u002B       je       G_M35902_IG15\n        lea      rsi, [rbp-0x70]\n        mov      rdi, gword ptr [rbp-0xB8]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEnumerator\u00601[System.Numerics.Vector\u00601[float]]:get_Current():System.Numerics.Vector\u00601[float]:this\n@@ -150,16 \u002B133,16 @@ G_M35902_IG06:\n        mov      rdi, gword ptr [r12\u002B0x08]\n        mov      r15d, dword ptr [r12\u002B0x10]\n        cmp      dword ptr [rdi\u002B0x08], r15d\n-       ja       SHORT G_M35902_IG08\n\u002B       ja       SHORT G_M35902_IG06\n \t\t\t\t\t\t;; size=166 bbWeight=8 PerfScore 320.00\n-G_M35902_IG07:\n\u002BG_M35902_IG05:\n        mov      rdi, r12\n        mov      rsi, gword ptr [rbp-0xC0]\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n-       jmp      SHORT G_M35902_IG09\n\u002B       jmp      SHORT G_M35902_IG07\n \t\t\t\t\t\t;; size=24 bbWeight=4 PerfScore 26.00\n-G_M35902_IG08:\n\u002BG_M35902_IG06:\n        lea      esi, [r15\u002B0x01]\n        mov      dword ptr [r12\u002B0x10], esi\n        mov      esi, r15d\n@@ -167,22 \u002B150,22 @@ G_M35902_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST\n        call     [rax]CORINFO_HELP_ARRADDR_ST\n \t\t\t\t\t\t;; size=31 bbWeight=4 PerfScore 24.00\n-G_M35902_IG09:\n\u002BG_M35902_IG07:\n        vmovups  ymm0, ymmword ptr [rbp-0x70]\n        vmovups  ymmword ptr [rbp-0x50], ymm0\n-       jmp      G_M35902_IG06\n\u002B       jmp      G_M35902_IG04\n \t\t\t\t\t\t;; size=15 bbWeight=8 PerfScore 40.00\n-G_M35902_IG10:\n\u002BG_M35902_IG08:\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[System.Numerics.Vector\u00601[float],System.String]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        test     rbx, rbx\n-       jne      SHORT G_M35902_IG11\n\u002B       jne      SHORT G_M35902_IG09\n        mov      rax, 0xD1FFAB1E      ; code for System.Delegate:ThrowNullThisInDelegateToInstance()\n        call     [rax]System.Delegate:ThrowNullThisInDelegateToInstance()\n        int3     \n \t\t\t\t\t\t;; size=36 bbWeight=0 PerfScore 0.00\n-G_M35902_IG11:\n\u002BG_M35902_IG09:\n        lea      rdi, bword ptr [r14\u002B0x10]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -199,41 \u002B182,41 @@ G_M35902_IG11:\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Concat(System.String,System.String):System.String\n        call     [rax]System.String:Concat(System.String,System.String):System.String\n        test     rax, rax\n-       jne      SHORT G_M35902_IG12\n\u002B       jne      SHORT G_M35902_IG10\n        xor      rsi, rsi\n        xor      edx, edx\n-       jmp      SHORT G_M35902_IG13\n\u002B       jmp      SHORT G_M35902_IG11\n \t\t\t\t\t\t;; size=100 bbWeight=0 PerfScore 0.00\n-G_M35902_IG12:\n\u002BG_M35902_IG10:\n        lea      rsi, bword ptr [rax\u002B0x0C]\n        mov      edx, dword ptr [rax\u002B0x08]\n \t\t\t\t\t\t;; size=7 bbWeight=0 PerfScore 0.00\n-G_M35902_IG13:\n\u002BG_M35902_IG11:\n        mov      rcx, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.String:JoinCore[System.Object](System.ReadOnlySpan\u00601[char],System.Collections.Generic.IEnumerable\u00601[System.Object]):System.String\n        mov      rax, 0xD1FFAB1E      ; code for System.String:JoinCore[System.__Canon](System.ReadOnlySpan\u00601[char],System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.String\n        call     [rax]System.String:JoinCore[System.__Canon](System.ReadOnlySpan\u00601[char],System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.String\n        mov      rdi, rax\n-       jmp      SHORT G_M35902_IG18\n\u002B       jmp      SHORT G_M35902_IG16\n \t\t\t\t\t\t;; size=30 bbWeight=0 PerfScore 0.00\n-G_M35902_IG14:\n\u002BG_M35902_IG12:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M35902_IG15:\n\u002BG_M35902_IG13:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M35902_IG16:\n\u002BG_M35902_IG14:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.Tuple\u00603[System.Numerics.Vector\u00601[float],System.Numerics.Vector\u00601[float],System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M35902_IG05\n\u002B       jmp      G_M35902_IG03\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M35902_IG17:\n\u002BG_M35902_IG15:\n        mov      rdi, gword ptr [rbp-0xB8]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n@@ -242,21 \u002B225,21 @@ G_M35902_IG17:\n        call     [r14\u002B0x18]System.Func\u00602[System.__Canon,System.__Canon]:Invoke(System.__Canon):System.__Canon:this\n        mov      rdi, rax\n \t\t\t\t\t\t;; size=34 bbWeight=0 PerfScore 0.00\n-G_M35902_IG18:\n\u002BG_M35902_IG16:\n        test     r13, r13\n-       je       SHORT G_M35902_IG19\n\u002B       je       SHORT G_M35902_IG17\n        mov      rsi, rdi\n        mov      rdi, gword ptr [r13\u002B0x10]\n        call     [r13\u002B0x18]System.Func\u00602[System.__Canon,System.__Canon]:Invoke(System.__Canon):System.__Canon:this\n        mov      rbx, rax\n-       jmp      SHORT G_M35902_IG20\n\u002B       jmp      SHORT G_M35902_IG18\n \t\t\t\t\t\t;; size=21 bbWeight=0 PerfScore 0.00\n-G_M35902_IG19:\n\u002BG_M35902_IG17:\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Diagnostics.CoreStrings:CircularDependency(System.Object):System.String\n        call     [rax]Microsoft.EntityFrameworkCore.Diagnostics.CoreStrings:CircularDependency(System.Object):System.String\n        mov      rbx, rax\n \t\t\t\t\t\t;; size=15 bbWeight=0 PerfScore 0.00\n-G_M35902_IG20:\n\u002BG_M35902_IG18:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -268,24 \u002B251,24 @@ G_M35902_IG20:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=45 bbWeight=0 PerfScore 0.00\n-G_M35902_IG21:\n\u002BG_M35902_IG19:\n        sub      rsp, 72\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M35902_IG22:\n\u002BG_M35902_IG20:\n        cmp      gword ptr [rbp-0xB8], 0\n-       je       SHORT G_M35902_IG23\n\u002B       je       SHORT G_M35902_IG21\n        mov      rdi, gword ptr [rbp-0xB8]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=30 bbWeight=0 PerfScore 0.00\n-G_M35902_IG23:\n\u002BG_M35902_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M35902_IG24:\n\u002BG_M35902_IG22:\n        vzeroupper \n        add      rsp, 72\n        ret      \n \t\t\t\t\t\t;; size=8 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 894, prolog size 43, PerfScore 463.00, instruction count 188, allocated bytes for code 894 (MethodHash=6a4473c1) for method Microsoft.EntityFrameworkCore.Utilities.Multigraph\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]]:ThrowCycle(System.Collections.Generic.List\u00601[System.Numerics.Vector\u00601[float]],System.Func\u00602[System.Collections.Generic.IReadOnlyList\u00601[System.Tuple\u00603[System.Numerics.Vector\u00601[float],System.Numerics.Vector\u00601[float],System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]]],System.String],System.Func\u00602[System.String,System.String]):this (FullOpts)\n\u002B; Total bytes of code 838, prolog size 43, PerfScore 447.75, instruction count 175, allocated bytes for code 838 (MethodHash=6a4473c1) for method Microsoft.EntityFrameworkCore.Utilities.Multigraph\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]]:ThrowCycle(System.Collections.Generic.List\u00601[System.Numerics.Vector\u00601[float]],System.Func\u00602[System.Collections.Generic.IReadOnlyList\u00601[System.Tuple\u00603[System.Numerics.Vector\u00601[float],System.Numerics.Vector\u00601[float],System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]]],System.String],System.Func\u00602[System.String,System.String]):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":894,"DiffBytes":838},{"Assembly":"Microsoft.Identity.Client.dasm","Method":"Microsoft.Identity.Client.Internal.Requests.RequestBase:ParseScopesForTelemetry():System.Tuple\u00602[System.String,System.String]:this (FullOpts)","Category":"improvement","Description":"952 -\u003E 897 bytes (-55)","ExtraInfo":null,"Diff":"@@ -9,17 \u002B9,17 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T09] (  5,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMicrosoft.Identity.Client.Internal.Requests.RequestBase\u003E\n-;  V01 loc0         [V01,T22] (  3,  2.50)     ref  -\u003E  r15         class-hnd \u003CSystem.String\u003E\n-;  V02 loc1         [V02,T16] (  4,  3   )     ref  -\u003E  r14         class-hnd \u003CSystem.String\u003E\n\u002B;  V01 loc0         [V01,T21] (  3,  2.50)     ref  -\u003E  r15         class-hnd \u003CSystem.String\u003E\n\u002B;  V02 loc1         [V02,T15] (  4,  3   )     ref  -\u003E  r14         class-hnd \u003CSystem.String\u003E\n ;* V03 loc2         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CSystem.String\u003E\n ;  V04 loc3         [V04,T11] (  4,  5.50)     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.Uri\u003E\n-;  V05 loc4         [V05,T17] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CSystem.Text.StringBuilder\u003E\n\u002B;  V05 loc4         [V05,T16] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CSystem.Text.StringBuilder\u003E\n ;  V06 loc5         [V06    ] (  7, 10.50)  struct (24) [rbp-0x40]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Collections.Generic.HashSet\u00601\u002BEnumerator[System.String]\u003E\n ;  V07 loc6         [V07,T04] (  4, 12   )     ref  -\u003E  rax         class-hnd exact \u003CSystem.String[]\u003E\n ;* V08 loc7         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.String\u003E\n ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V10 tmp1         [V10,T06] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Tuple\u00602[System.String,System.String]\u003E\n-;  V11 tmp2         [V11,T18] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Uri\u003E\n\u002B;  V11 tmp2         [V11,T17] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Uri\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n ;  V13 tmp4         [V13,T13] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Text.StringBuilder\u003E\n ;  V14 tmp5         [V14,T00] (  3, 24   )     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u0022NewArr temp\u0022 \u003CSystem.String[]\u003E\n@@ -27,24 \u002B27,24 @@\n ;  V16 tmp7         [V16,T02] (  2, 16   )     ref  -\u003E  rax         class-hnd exact \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n ;  V17 tmp8         [V17,T03] (  5, 12   )     ref  -\u003E  rsi        \n ;* V18 tmp9         [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMicrosoft.Identity.Client.Internal.Requests.AuthenticationRequestParameters\u003E\n-;  V19 tmp10        [V19,T10] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.String]\u003E\n\u002B;  V19 tmp10        [V19,T10] (  3,  6   )     ref  -\u003E  rdx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.String]\u003E\n ;* V20 tmp11        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMicrosoft.Identity.Client.Internal.Requests.AuthenticationRequestParameters\u003E\n-;  V21 tmp12        [V21,T14] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.String]\u003E\n-;  V22 tmp13        [V22    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V21 tmp12        [V21,T18] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.String]\u003E\n\u002B;  V22 tmp13        [V22    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V23 tmp14        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V24 tmp15        [V24,T21] (  5,  2.50)     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n-;  V25 tmp16        [V25,T24] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n-;  V26 tmp17        [V26,T29] (  2,  1   )   ubyte  -\u003E  rax         \u0022Inline return value spill temp\u0022\n-;  V27 tmp18        [V27,T27] (  3,  1.50)     ref  -\u003E  rax         ld-addr-op class-hnd single-def \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Uri\u003E\n\u002B;  V24 tmp15        [V24,T23] (  4,  2   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n\u002B;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n\u002B;  V26 tmp17        [V26,T28] (  2,  1   )   ubyte  -\u003E  rax         \u0022Inline return value spill temp\u0022\n\u002B;  V27 tmp18        [V27,T26] (  3,  1.50)     ref  -\u003E  rax         ld-addr-op class-hnd single-def \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Uri\u003E\n ;  V28 tmp19        [V28    ] (  2,  1   )  struct ( 8) [rbp-0x50]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.UriCreationOptions\u003E\n ;  V29 tmp20        [V29    ] (  2,  1   )  struct ( 8) [rbp-0x58]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.UriCreationOptions\u003E\n-;  V30 tmp21        [V30,T28] (  3,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.UriFormatException\u003E\n\u002B;  V30 tmp21        [V30,T27] (  3,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.UriFormatException\u003E\n ;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cchar[]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMicrosoft.Identity.Client.Internal.Requests.AuthenticationRequestParameters\u003E\n ;  V33 tmp24        [V33,T19] (  3,  3   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.String]\u003E\n ;* V34 tmp25        [V34    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.HashSet\u00601\u002BEnumerator[System.String]\u003E\n ;  V35 tmp26        [V35    ] (  1,  2   )   ubyte  -\u003E  [rbp-0x60]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V36 tmp27        [V36,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n\u002B;  V36 tmp27        [V36,T14] (  2,  4   )     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n ;  V38 tmp29        [V38,T05] (  3, 12   )     ref  -\u003E  rdi         class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V39 tmp30        [V39    ] (  2,  8   )  ushort  -\u003E  [rbp-0x68]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inlining Arg\u0022\n@@ -59,12 \u002B59,12 @@\n ;  V48 tmp39        [V48    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x58]  do-not-enreg[X] addr-exposed \u0022field V29._disablePathAndQueryCanonicalization (fldOffset=0x0)\u0022 P-DEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V34._hashSet (fldOffset=0x0)\u0022 P-INDEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V34._current (fldOffset=0x8)\u0022 P-INDEP\n-;  V51 tmp42        [V51,T30] (  2,  1   )     int  -\u003E  rsi         single-def \u0022field V34._version (fldOffset=0x10)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T29] (  2,  1   )     int  -\u003E  rsi         single-def \u0022field V34._version (fldOffset=0x10)\u0022 P-INDEP\n ;* V52 tmp43        [V52    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V34._index (fldOffset=0x14)\u0022 P-INDEP\n-;  V53 tmp44        [V53,T25] (  2,  2   )     ref  -\u003E  r15         single-def \u0022argument with side effect\u0022\n-;  V54 tmp45        [V54,T26] (  2,  2   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;  V53 tmp44        [V53,T24] (  2,  2   )     ref  -\u003E  r15         single-def \u0022argument with side effect\u0022\n\u002B;  V54 tmp45        [V54,T25] (  2,  2   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n ;  V55 tmp46        [V55,T07] (  2,  8   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n-;  V56 cse0         [V56,T23] (  3,  2.50)     ref  -\u003E  r13         \u0022CSE #02: moderate\u0022\n\u002B;  V56 cse0         [V56,T22] (  3,  2.50)     ref  -\u003E  rsi         \u0022CSE #02: moderate\u0022\n ;  V57 cse1         [V57,T12] (  3,  5   )    long  -\u003E  rbx         \u0022CSE #04: moderate\u0022\n ;  V58 cse2         [V58,T08] (  2,  8   )     int  -\u003E  rsi         \u0022CSE #03: aggressive\u0022\n ;\n@@ -89,81 \u002B89,63 @@ G_M12384_IG01:\n G_M12384_IG02:\n        xor      r15, r15\n        xor      r14, r14\n-       mov      rsi, gword ptr [rbx\u002B0x08]\n-       mov      r13, gword ptr [rsi\u002B0x40]\n-       mov      rsi, r13\n-       mov      edi, dword ptr [rsi\u002B0x28]\n-       sub      edi, dword ptr [rsi\u002B0x30]\n\u002B       mov      rdx, gword ptr [rbx\u002B0x08]\n\u002B       mov      rsi, gword ptr [rdx\u002B0x40]\n\u002B       mov      rdx, rsi\n\u002B       mov      edi, dword ptr [rdx\u002B0x28]\n\u002B       sub      edi, dword ptr [rdx\u002B0x30]\n... diff truncated; middle omitted ...\n-       jmp      SHORT G_M12384_IG05\n-\t\t\t\t\t\t;; size=61 bbWeight=0.50 PerfScore 8.12\n-G_M12384_IG04:\n\u002B       test     rsi, rsi\n\u002B       je       G_M12384_IG16\n        lea      rdx, [rbp-0x48]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.String](System.Collections.Generic.IEnumerable\u00601[System.String],byref):System.String\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      r12, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M12384_IG05:\n\u002B       mov      r13, rax\n        cmp      byte  ptr [rbp-0x48], 0\n-       je       G_M12384_IG19\n\u002B       je       G_M12384_IG17\n        mov      byte  ptr [rbp-0x50], 0\n        lea      rcx, [rbp-0x50]\n-       mov      rdi, r12\n\u002B       mov      rdi, r13\n        xor      esi, esi\n        mov      edx, 1\n        mov      rax, 0xD1FFAB1E      ; code for System.Uri:CreateHelper(System.String,bool,int,byref):System.Uri\n        call     [rax]System.Uri:CreateHelper(System.String,bool,int,byref):System.Uri\n        test     rax, rax\n-       je       SHORT G_M12384_IG06\n\u002B       je       SHORT G_M12384_IG04\n        mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for System.Uri:IsWellFormedOriginalString():bool:this\n        call     [rax]System.Uri:IsWellFormedOriginalString():bool:this\n        test     eax, eax\n-       jne      SHORT G_M12384_IG07\n-\t\t\t\t\t\t;; size=64 bbWeight=0.50 PerfScore 6.75\n-G_M12384_IG06:\n\u002B       jne      SHORT G_M12384_IG05\n\u002B\t\t\t\t\t\t;; size=102 bbWeight=0.50 PerfScore 9.50\n\u002BG_M12384_IG04:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      rdi, gword ptr [rdi\u002B0x40]\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.Identity.Client.Utils.EnumerableExtensions:AsSingleString(System.Collections.Generic.IEnumerable\u00601[System.String]):System.String\n        call     [rax]Microsoft.Identity.Client.Utils.EnumerableExtensions:AsSingleString(System.Collections.Generic.IEnumerable\u00601[System.String]):System.String\n        mov      r14, rax\n-       jmp      G_M12384_IG16\n\u002B       jmp      G_M12384_IG14\n \t\t\t\t\t\t;; size=28 bbWeight=0.50 PerfScore 4.75\n-G_M12384_IG07:\n\u002BG_M12384_IG05:\n        mov      rdi, 0xD1FFAB1E      ; System.Uri\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n-       test     r12, r12\n-       je       G_M12384_IG20\n\u002B       test     r13, r13\n\u002B       je       G_M12384_IG18\n        mov      byte  ptr [rbp-0x58], 0\n        lea      r8, [rbp-0x58]\n        mov      rdi, r14\n-       mov      rsi, r12\n\u002B       mov      rsi, r13\n        xor      edx, edx\n        mov      ecx, 1\n        mov      rax, 0xD1FFAB1E      ; code for System.Uri:TryCreateThis(System.String,bool,int,byref):System.UriFormatException:this\n        call     [rax]System.Uri:TryCreateThis(System.String,bool,int,byref):System.UriFormatException:this\n        test     rax, rax\n-       jne      G_M12384_IG21\n\u002B       jne      G_M12384_IG19\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.Uri:get_Scheme():System.String:this\n        call     [rax]System.Uri:get_Scheme():System.String:this\n@@ -195,7 \u002B177,7 @@ G_M12384_IG07:\n        mov      gword ptr [rbp-0x38], rdi\n        mov      dword ptr [rbp-0x30], esi\n \t\t\t\t\t\t;; size=215 bbWeight=0.50 PerfScore 18.12\n-G_M12384_IG08:\n\u002BG_M12384_IG06:\n        mov      dword ptr [rbp-0x2C], edi\n        lea      rdi, [rbp-0x40]\n        mov      rbx, 0xD1FFAB1E      ; System.Collections.Generic.HashSet\u00601\u002BEnumerator[System.String]\n@@ -203,9 \u002B185,9 @@ G_M12384_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.HashSet\u00601\u002BEnumerator[System.__Canon]:MoveNext():bool:this\n        call     [rax]System.Collections.Generic.HashSet\u00601\u002BEnumerator[System.__Canon]:MoveNext():bool:this\n        test     eax, eax\n-       je       G_M12384_IG15\n\u002B       je       G_M12384_IG13\n \t\t\t\t\t\t;; size=40 bbWeight=0.50 PerfScore 3.25\n-G_M12384_IG09:\n\u002BG_M12384_IG07:\n        mov      r12, gword ptr [rbp-0x38]\n        mov      rdi, 0xD1FFAB1E      ; System.String[]\n        mov      esi, 1\n@@ -228,9 \u002B210,9 @@ G_M12384_IG09:\n        call     [rax]System.String:SplitInternal(System.String,System.String[],int,int):System.String[]:this\n        mov      esi, dword ptr [rax\u002B0x08]\n        cmp      esi, 1\n-       jle      SHORT G_M12384_IG11\n\u002B       jle      SHORT G_M12384_IG09\n \t\t\t\t\t\t;; size=100 bbWeight=4 PerfScore 81.00\n-G_M12384_IG10:\n\u002BG_M12384_IG08:\n        mov      rdi, gword ptr [rax\u002B0x18]\n        mov      dword ptr [rbp-0x68], 47\n        cmp      byte  ptr [rdi], dil\n@@ -244,9 \u002B226,9 @@ G_M12384_IG10:\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Concat(System.String,System.String):System.String\n        call     [rax]System.String:Concat(System.String,System.String):System.String\n        mov      rsi, rax\n-       jmp      SHORT G_M12384_IG12\n\u002B       jmp      SHORT G_M12384_IG10\n \t\t\t\t\t\t;; size=70 bbWeight=2 PerfScore 30.50\n-G_M12384_IG11:\n\u002BG_M12384_IG09:\n        lea      rdx, [rbp-0x60]\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.String](System.Collections.Generic.IEnumerable\u00601[System.String],byref):System.String\n@@ -254,26 \u002B236,26 @@ G_M12384_IG11:\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        mov      rsi, rax\n \t\t\t\t\t\t;; size=32 bbWeight=2 PerfScore 9.00\n-G_M12384_IG12:\n\u002BG_M12384_IG10:\n        test     rsi, rsi\n-       je       SHORT G_M12384_IG14\n\u002B       je       SHORT G_M12384_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=4 PerfScore 5.00\n-G_M12384_IG13:\n\u002BG_M12384_IG11:\n        mov      edx, dword ptr [rsi\u002B0x08]\n        add      rsi, 12\n        mov      rdi, r13\n        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:Append(byref,int):this\n        call     [rax]System.Text.StringBuilder:Append(byref,int):this\n \t\t\t\t\t\t;; size=22 bbWeight=2 PerfScore 11.50\n-G_M12384_IG14:\n\u002BG_M12384_IG12:\n        lea      rdi, [rbp-0x40]\n        mov      rsi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.HashSet\u00601\u002BEnumerator[System.__Canon]:MoveNext():bool:this\n        call     [rax]System.Collections.Generic.HashSet\u00601\u002BEnumerator[System.__Canon]:MoveNext():bool:this\n        test     eax, eax\n-       jne      G_M12384_IG09\n\u002B       jne      G_M12384_IG07\n \t\t\t\t\t\t;; size=27 bbWeight=4 PerfScore 21.00\n-G_M12384_IG15:\n\u002BG_M12384_IG13:\n        mov      rdi, r13\n        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:ToString():System.String:this\n        call     [rax]System.Text.StringBuilder:ToString():System.String:this\n@@ -287,7 \u002B269,7 @@ G_M12384_IG15:\n        call     [rax]System.String:TrimHelper(ptr,int,int):System.String:this\n        mov      r14, rax\n \t\t\t\t\t\t;; size=56 bbWeight=0.50 PerfScore 5.62\n-G_M12384_IG16:\n\u002BG_M12384_IG14:\n        mov      rdi, 0xD1FFAB1E      ; System.Tuple\u00602[System.String,System.String]\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -299,7 \u002B281,7 @@ G_M12384_IG16:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.25\n-G_M12384_IG17:\n\u002BG_M12384_IG15:\n        add      rsp, 88\n        pop      rbx\n        pop      r12\n@@ -309,28 \u002B291,28 @@ G_M12384_IG17:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M12384_IG18:\n\u002BG_M12384_IG16:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M12384_IG19:\n\u002BG_M12384_IG17:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M12384_IG20:\n\u002BG_M12384_IG18:\n        mov      rdi, 0xD1FFAB1E      ; \u0027uriString\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:Throw(System.String)\n        call     [rax]System.ArgumentNullException:Throw(System.String)\n        int3     \n \t\t\t\t\t\t;; size=23 bbWeight=0 PerfScore 0.00\n-G_M12384_IG21:\n\u002BG_M12384_IG19:\n        mov      rdi, rax\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=9 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 952, prolog size 43, PerfScore 236.96, instruction count 219, allocated bytes for code 952 (MethodHash=d2fecf9f) for method Microsoft.Identity.Client.Internal.Requests.RequestBase:ParseScopesForTelemetry():System.Tuple\u00602[System.String,System.String]:this (FullOpts)\n\u002B; Total bytes of code 897, prolog size 43, PerfScore 229.33, instruction count 205, allocated bytes for code 897 (MethodHash=d2fecf9f) for method Microsoft.Identity.Client.Internal.Requests.RequestBase:ParseScopesForTelemetry():System.Tuple\u00602[System.String,System.String]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":952,"DiffBytes":897},{"Assembly":"Microsoft.NET.StringTools.dasm","Method":"Microsoft.NET.StringTools.Strings:ReturnSpanBasedStringBuilder(Microsoft.NET.StringTools.SpanBasedStringBuilder) (FullOpts)","Category":"same-size","Description":"132 -\u003E 132 bytes (0)","ExtraInfo":null,"Diff":"@@ -1,76 \u002B1,76 @@\n ; Assembly listing for method Microsoft.NET.StringTools.Strings:ReturnSpanBasedStringBuilder(Microsoft.NET.StringTools.SpanBasedStringBuilder) (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 arg0         [V00,T01] (  5,  5   )     ref  -\u003E  rbx         class-hnd single-def \u003CMicrosoft.NET.StringTools.SpanBasedStringBuilder\u003E\n ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V02 tmp1         [V02,T00] (  6, 11   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.ReadOnlyMemory\u00601[char]]\u003E\n ;  V03 tmp2         [V03,T05] (  3,  2.50)     int  -\u003E  rdx         \u0022Inline stloc first use temp\u0022\n ;  V04 rat0         [V04,T04] (  3,  4   )   byref  -\u003E  rax         \u0022TLS field access\u0022\n ;  V05 rat1         [V05,T03] (  3,  6   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;  V06 rat2         [V06,T02] (  3,  6   )   byref  -\u003E  rax         \u0022ThreadStaticBlockBase access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M25581_IG01:\n        push     rbp\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x10]\n        mov      rbx, rdi\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.75\n G_M25581_IG02:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        inc      dword ptr [rdi\u002B0x14]\n        mov      edx, dword ptr [rdi\u002B0x10]\n        xor      esi, esi\n        mov      dword ptr [rdi\u002B0x10], esi\n        test     edx, edx\n        jle      SHORT G_M25581_IG04\n \t\t\t\t\t\t;; size=19 bbWeight=1 PerfScore 9.50\n G_M25581_IG03:\n        mov      rdi, gword ptr [rdi\u002B0x08]\n        xor      esi, esi\n        mov      rax, 0xD1FFAB1E      ; code for System.Array:Clear(System.Array,int,int)\n        call     [rax]System.Array:Clear(System.Array,int,int)\n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.75\n G_M25581_IG04:\n        xor      edi, edi\n        mov      dword ptr [rbx\u002B0x10], edi\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       cmp      dword ptr [rax], 11\n\u002B       cmp      dword ptr [rax], 10\n        jle      SHORT G_M25581_IG07\n        mov      rdi, gword ptr [rax\u002B0x08]\n-       mov      rax, bword ptr [rdi\u002B0x58]\n\u002B       mov      rax, bword ptr [rdi\u002B0x50]\n        test     rax, rax\n        je       SHORT G_M25581_IG07\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 13.00\n G_M25581_IG05:\n        lea      rdi, bword ptr [rax\u002B0x10]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        nop      \n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 2.00\n G_M25581_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.25\n G_M25581_IG07:\n-       mov      edi, 11\n\u002B       mov      edi, 10\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED\n        call     [rax]CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED\n        jmp      SHORT G_M25581_IG05\n \t\t\t\t\t\t;; size=19 bbWeight=0 PerfScore 0.00\n \n ; Total bytes of code 132, prolog size 8, PerfScore 33.25, instruction count 39, allocated bytes for code 132 (MethodHash=8c7d9c12) for method Microsoft.NET.StringTools.Strings:ReturnSpanBasedStringBuilder(Microsoft.NET.StringTools.SpanBasedStringBuilder) (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":132,"DiffBytes":132},{"Assembly":"Microsoft.OData.Edm.dasm","Method":"Microsoft.OData.Edm.Vocabularies.EdmExpressionEvaluator:Eval(Microsoft.OData.Edm.IEdmExpression,Microsoft.OData.Edm.Vocabularies.IEdmStructuredValue):Microsoft.OData.Edm.Vocabularies.IEdmValue:this (FullOpts)","Category":"improvement","Description":"5,960 -\u003E 5,911 bytes (-49)","ExtraInfo":null,"Diff":"@@ -11,10 \u002B11,10 @@\n ;  V00 this         [V00,T06] ( 25, 31   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMicrosoft.OData.Edm.Vocabularies.EdmExpressionEvaluator\u003E\n ;  V01 arg1         [V01,T23] ( 29, 15.50)     ref  -\u003E  r14         class-hnd single-def \u003CMicrosoft.OData.Edm.IEdmExpression\u003E\n ;  V02 arg2         [V02,T11] ( 23, 24   )     ref  -\u003E  r15         class-hnd single-def \u003CMicrosoft.OData.Edm.Vocabularies.IEdmStructuredValue\u003E\n-;  V03 loc0         [V03,T132] (  3,  1.50)     ref  -\u003E  r14         class-hnd single-def \u003CMicrosoft.OData.Edm.Vocabularies.IEdmEnumMemberExpression\u003E\n-;  V04 loc1         [V04,T89] (  7,  3.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[Microsoft.OData.Edm.IEdmEnumMember]\u003E\n\u002B;  V03 loc0         [V03,T131] (  3,  1.50)     ref  -\u003E  r14         class-hnd single-def \u003CMicrosoft.OData.Edm.Vocabularies.IEdmEnumMemberExpression\u003E\n\u002B;  V04 loc1         [V04,T89] (  6,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[Microsoft.OData.Edm.IEdmEnumMember]\u003E\n ;  V05 loc2         [V05,T96] (  6,  2.50)     ref  -\u003E  rbx         class-hnd single-def \u003CMicrosoft.OData.Edm.IEdmEnumType\u003E\n-;  V06 loc3         [V06,T140] (  2,  1   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMicrosoft.OData.Edm.EdmEnumTypeReference\u003E\n\u002B;  V06 loc3         [V06,T138] (  2,  1   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMicrosoft.OData.Edm.EdmEnumTypeReference\u003E\n ;* V07 loc4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref   \n ;  V08 loc5         [V08,T16] ( 13, 21.50)     ref  -\u003E  r13         class-hnd \u003CMicrosoft.OData.Edm.Vocabularies.IEdmValue\u003E\n ;  V09 loc6         [V09,T21] ( 12, 18   )     ref  -\u003E  [rbp-0x68]  do-not-enreg[Z] class-hnd EH-live \u003CSystem.Collections.Generic.IEnumerator\u00601[System.String]\u003E\n@@ -34,7 \u002B34,7 @@\n ;  V23 loc20        [V23,T04] (  4, 48   )     ref  -\u003E  r13         class-hnd \u003CMicrosoft.OData.Edm.Vocabularies.IEdmDelayedValue\u003E\n ;  V24 loc21        [V24,T32] (  5, 13   )     ref  -\u003E  r15         class-hnd \u003CMicrosoft.OData.Edm.Vocabularies.IEdmValue\u003E\n ;  V25 loc22        [V25,T53] (  3,  8   )     ref  -\u003E  r14         class-hnd \u003CSystem.String\u003E\n-;  V26 loc23        [V26,T133] (  3,  1.50)     ref  -\u003E  r14         class-hnd \u003CMicrosoft.OData.Edm.Vocabularies.IEdmApplyExpression\u003E\n\u002B;  V26 loc23        [V26,T132] (  3,  1.50)     ref  -\u003E  r14         class-hnd \u003CMicrosoft.OData.Edm.Vocabularies.IEdmApplyExpression\u003E\n ;  V27 loc24        [V27,T97] (  6,  2   )     ref  -\u003E  r13         class-hnd \u003CMicrosoft.OData.Edm.IEdmFunction\u003E\n ;  V28 loc25        [V28,T44] (  5,  9.50)     ref  -\u003E  r12         class-hnd exact \u003CMicrosoft.OData.Edm.Vocabularies.IEdmValue[]\u003E\n ;  V29 loc26        [V29    ] (  3,  1.50)     ref  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003CSystem.Func\u00602[Microsoft.OData.Edm.Vocabularies.IEdmValue[],Microsoft.OData.Edm.Vocabularies.IEdmValue]\u003E\n@@ -42,10 \u002B42,10 @@\n ;  V31 loc28        [V31,T22] ( 12, 18   )     ref  -\u003E  [rbp-0x78]  do-not-enreg[Z] class-hnd EH-live \u003CSystem.Collections.Generic.IEnumerator\u00601[Microsoft.OData.Edm.IEdmExpression]\u003E\n ;  V32 loc29        [V32,T54] (  2,  8   )     ref  -\u003E  rsi         class-hnd \u003CMicrosoft.OData.Edm.IEdmExpression\u003E\n ;  V33 loc30        [V33,T98] (  4,  2   )     ref  -\u003E  r14         class-hnd \u003CMicrosoft.OData.Edm.Vocabularies.IEdmIfExpression\u003E\n-;  V34 loc31        [V34,T134] (  3,  1.50)     ref  -\u003E  r14         class-hnd single-def \u003CMicrosoft.OData.Edm.Vocabularies.IEdmIsOfExpression\u003E\n-;  V35 loc32        [V35,T141] (  2,  1   )     ref  -\u003E  rbx         class-hnd single-def \u003CMicrosoft.OData.Edm.Vocabularies.IEdmValue\u003E\n-;  V36 loc33        [V36,T135] (  3,  1.50)     ref  -\u003E  r14         class-hnd single-def \u003CMicrosoft.OData.Edm.Vocabularies.IEdmCastExpression\u003E\n-;  V37 loc34        [V37,T142] (  2,  1   )     ref  -\u003E  rbx         class-hnd single-def \u003CMicrosoft.OData.Edm.Vocabularies.IEdmValue\u003E\n\u002B;  V34 loc31        [V34,T133] (  3,  1.50)     ref  -\u003E  r14         class-hnd single-def \u003CMicrosoft.OData.Edm.Vocabularies.IEdmIsOfExpression\u003E\n\u002B;  V35 loc32        [V35,T139] (  2,  1   )     ref  -\u003E  rbx         class-hnd single-def \u003CMicrosoft.OData.Edm.Vocabularies.IEdmValue\u003E\n\u002B;  V36 loc33        [V36,T134] (  3,  1.50)     ref  -\u003E  r14         class-hnd single-def \u003CMicrosoft.OData.Edm.Vocabularies.IEdmCastExpression\u003E\n\u002B;  V37 loc34        [V37,T140] (  2,  1   )     ref  -\u003E  rbx         class-hnd single-def \u003CMicrosoft.OData.Edm.Vocabularies.IEdmValue\u003E\n ;  V38 loc35        [V38,T99] (  4,  2   )     ref  -\u003E  r14         class-hnd single-def \u003CMicrosoft.OData.Edm.Vocabularies.IEdmRecordExpression\u003E\n ;  V39 loc36        [V39,T78] (  2,  4.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMicrosoft.OData.Edm.Vocabularies.EdmExpressionEvaluator\u002BDelayedExpressionContext\u003E\n ;  V40 loc37        [V40,T17] (  9, 21.50)     ref  -\u003E  rbx         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[Microsoft.OData.Edm.Vocabularies.IEdmPropertyValue]\u003E\n@@ -60,21 \u002B60,21 @@\n ;* V49 loc46        [V49    ] (  0,  0   )    long  -\u003E  zero-ref   \n ;  V50 loc47        [V50    ] (  2,  0   )     int  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op\n ;# V51 OutArgs      [V51    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V52 tmp1         [V52,T146] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n-;  V53 tmp2         [V53,T161] (  2,  0   )     ref  -\u003E  rbx         class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V54 tmp3         [V54,T162] (  2,  0   )     ref  -\u003E  rax         class-hnd exact \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n-;  V55 tmp4         [V55,T147] (  3,  0   )     ref  -\u003E  r14         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V52 tmp1         [V52,T145] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n\u002B;  V53 tmp2         [V53,T160] (  2,  0   )     ref  -\u003E  rbx         class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V54 tmp3         [V54,T161] (  2,  0   )     ref  -\u003E  rax         class-hnd exact \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.String\u003E\n\u002B;  V55 tmp4         [V55,T146] (  3,  0   )     ref  -\u003E  r14         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;  V56 tmp5         [V56,T76] (  5,  5   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.OData.Edm.EdmEnumTypeReference\u003E\n-;  V57 tmp6         [V57,T148] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V57 tmp6         [V57,T147] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;  V58 tmp7         [V58,T90] (  3,  3   )     ref  -\u003E  r15         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMicrosoft.OData.Edm.EdmEnumMemberValue\u003E\n ;  V59 tmp8         [V59,T81] (  4,  4   )     ref  -\u003E  rbx         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMicrosoft.OData.Edm.Vocabularies.EdmEnumValue\u003E\n ;  V60 tmp9         [V60,T82] (  4,  4   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.OData.Edm.Vocabularies.EdmEnumValue\u003E\n-;  V61 tmp10        [V61,T149] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n-;  V62 tmp11        [V62,T163] (  2,  0   )     ref  -\u003E  r15         class-hnd exact \u0022impSpillLclRefs\u0022 \u003CSystem.String\u003E\n-;  V63 tmp12        [V63,T150] (  3,  0   )     ref  -\u003E  r14         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V61 tmp10        [V61,T148] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n\u002B;  V62 tmp11        [V62,T162] (  2,  0   )     ref  -\u003E  r15         class-hnd exact \u0022impSpillLclRefs\u0022 \u003CSystem.String\u003E\n\u002B;  V63 tmp12        [V63,T149] (  3,  0   )     ref  -\u003E  r14         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;  V64 tmp13        [V64,T83] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.OData.Edm.Vocabularies.EdmExpressionEvaluator\u002BDelayedExpressionContext\u003E\n-;  V65 tmp14        [V65,T151] (  3,  0   )     ref  -\u003E  r12         class-hnd exact \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n-;  V66 tmp15        [V66,T164] (  2,  0   )     ref  -\u003E  rbx         class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V65 tmp14        [V65,T150] (  3,  0   )     ref  -\u003E  r12         class-hnd exact \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n\u002B;  V66 tmp15        [V66,T163] (  2,  0   )     ref  -\u003E  rbx         class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n ;* V67 tmp16        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V68 tmp17        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V69 tmp18        [V69    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -83,22 \u002B83,22 @@\n ;* V72 tmp21        [V72    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V73 tmp22        [V73    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V74 tmp23        [V74    ] (  0,  0   )     int  -\u003E  zero-ref   \n-;  V75 tmp24        [V75,T152] (  3,  0   )     ref  -\u003E  rax        \n... diff truncated; middle omitted ...\n        call     [rax]Microsoft.OData.Edm.SRResources:get_Edm_Evaluator_UnboundFunction():System.String\n        mov      rbx, rax\n@@ -1551,16 \u002B1535,16 @@ G_M9068_IG90:\n        call     CORINFO_HELP_NEWARR_1_PTR\n        mov      r12, rax\n        test     r13, r13\n-       jne      SHORT G_M9068_IG91\n\u002B       jne      SHORT G_M9068_IG89\n        mov      rax, 0xD1FFAB1E      ; \u0027\u0027\n-       jmp      SHORT G_M9068_IG92\n\u002B       jmp      SHORT G_M9068_IG90\n \t\t\t\t\t\t;; size=55 bbWeight=0 PerfScore 0.00\n-G_M9068_IG91:\n\u002BG_M9068_IG89:\n        mov      rdi, r13\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.OData.Edm.ExtensionMethods:FullName(Microsoft.OData.Edm.IEdmSchemaElement):System.String\n        call     [rax]Microsoft.OData.Edm.ExtensionMethods:FullName(Microsoft.OData.Edm.IEdmSchemaElement):System.String\n \t\t\t\t\t\t;; size=15 bbWeight=0 PerfScore 0.00\n-G_M9068_IG92:\n\u002BG_M9068_IG90:\n        lea      rdi, bword ptr [r12\u002B0x10]\n        mov      rsi, rax\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -1579,30 \u002B1563,30 @@ G_M9068_IG92:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=76 bbWeight=0 PerfScore 0.00\n-G_M9068_IG93:\n\u002BG_M9068_IG91:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[Microsoft.OData.Edm.Vocabularies.IEdmPropertyValue]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M9068_IG56\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M9068_IG94:\n\u002BG_M9068_IG92:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[Microsoft.OData.Edm.Vocabularies.IEdmDelayedValue]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M9068_IG48\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M9068_IG95:\n\u002BG_M9068_IG93:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M9068_IG96:\n\u002BG_M9068_IG94:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M9068_IG97:\n\u002BG_M9068_IG95:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -1614,7 \u002B1598,7 @@ G_M9068_IG97:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M9068_IG98:\n\u002BG_M9068_IG96:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -1634,114 \u002B1618,114 @@ G_M9068_IG98:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=95 bbWeight=0 PerfScore 0.00\n-G_M9068_IG99:\n\u002BG_M9068_IG97:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M9068_IG100:\n\u002BG_M9068_IG98:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n-G_M9068_IG101:\n\u002BG_M9068_IG99:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M9068_IG102:\n\u002BG_M9068_IG100:\n        cmp      gword ptr [rbp-0x70], 0\n-       je       SHORT G_M9068_IG103\n\u002B       je       SHORT G_M9068_IG101\n        mov      rdi, gword ptr [rbp-0x70]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M9068_IG103:\n\u002BG_M9068_IG101:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n\u002BG_M9068_IG102:\n\u002B       add      rsp, 8\n\u002B       ret      \n\u002B\t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n\u002BG_M9068_IG103:\n\u002B       push     rax\n\u002B\t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n G_M9068_IG104:\n-       add      rsp, 8\n-       ret      \n-\t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n\u002B       cmp      gword ptr [rbp-0x68], 0\n\u002B       je       SHORT G_M9068_IG105\n\u002B       mov      rdi, gword ptr [rbp-0x68]\n\u002B       mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n\u002B       call     [r11]System.IDisposable:Dispose():this\n\u002B\t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n G_M9068_IG105:\n-       push     rax\n\u002B       nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n G_M9068_IG106:\n-       cmp      gword ptr [rbp-0x68], 0\n-       je       SHORT G_M9068_IG107\n-       mov      rdi, gword ptr [rbp-0x68]\n-       mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n-       call     [r11]System.IDisposable:Dispose():this\n-\t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n\u002B       add      rsp, 8\n\u002B       ret      \n\u002B\t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n G_M9068_IG107:\n-       nop      \n\u002B       push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n G_M9068_IG108:\n-       add      rsp, 8\n-       ret      \n-\t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M9068_IG109:\n-       push     rax\n-\t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M9068_IG110:\n        cmp      gword ptr [rbp-0x68], 0\n-       je       SHORT G_M9068_IG111\n\u002B       je       SHORT G_M9068_IG109\n        mov      rdi, gword ptr [rbp-0x68]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M9068_IG111:\n\u002BG_M9068_IG109:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M9068_IG112:\n\u002BG_M9068_IG110:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M9068_IG113:\n\u002BG_M9068_IG111:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M9068_IG114:\n\u002BG_M9068_IG112:\n        cmp      gword ptr [rbp-0x78], 0\n-       je       SHORT G_M9068_IG115\n\u002B       je       SHORT G_M9068_IG113\n        mov      rdi, gword ptr [rbp-0x78]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M9068_IG115:\n\u002BG_M9068_IG113:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M9068_IG116:\n\u002BG_M9068_IG114:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M9068_IG117:\n\u002BG_M9068_IG115:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M9068_IG118:\n\u002BG_M9068_IG116:\n        cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M9068_IG119\n\u002B       je       SHORT G_M9068_IG117\n        mov      rdi, gword ptr [rbp-0x80]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M9068_IG119:\n\u002BG_M9068_IG117:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M9068_IG120:\n\u002BG_M9068_IG118:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M9068_IG121:\n\u002BG_M9068_IG119:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M9068_IG122:\n\u002BG_M9068_IG120:\n        cmp      gword ptr [rbp-0x78], 0\n-       je       SHORT G_M9068_IG123\n\u002B       je       SHORT G_M9068_IG121\n        mov      rdi, gword ptr [rbp-0x78]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M9068_IG123:\n\u002BG_M9068_IG121:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M9068_IG124:\n\u002BG_M9068_IG122:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n@@ -1766,13 \u002B1750,13 @@ RWD00  \tdd\tG_M9068_IG73 - G_M9068_IG02\n        \tdd\tG_M9068_IG08 - G_M9068_IG02\n        \tdd\tG_M9068_IG04 - G_M9068_IG02\n        \tdd\tG_M9068_IG04 - G_M9068_IG02\n-       \tdd\tG_M9068_IG86 - G_M9068_IG02\n-       \tdd\tG_M9068_IG85 - G_M9068_IG02\n\u002B       \tdd\tG_M9068_IG84 - G_M9068_IG02\n\u002B       \tdd\tG_M9068_IG83 - G_M9068_IG02\n        \tdd\tG_M9068_IG78 - G_M9068_IG02\n        \tdd\tG_M9068_IG19 - G_M9068_IG02\n        \tdd\tG_M9068_IG77 - G_M9068_IG02\n        \tdd\tG_M9068_IG76 - G_M9068_IG02\n \n \n-; Total bytes of code 5960, prolog size 52, PerfScore 1866.93, instruction count 1265, allocated bytes for code 5960 (MethodHash=ce7fdc93) for method Microsoft.OData.Edm.Vocabularies.EdmExpressionEvaluator:Eval(Microsoft.OData.Edm.IEdmExpression,Microsoft.OData.Edm.Vocabularies.IEdmStructuredValue):Microsoft.OData.Edm.Vocabularies.IEdmValue:this (FullOpts)\n\u002B; Total bytes of code 5911, prolog size 52, PerfScore 1859.56, instruction count 1253, allocated bytes for code 5911 (MethodHash=ce7fdc93) for method Microsoft.OData.Edm.Vocabularies.EdmExpressionEvaluator:Eval(Microsoft.OData.Edm.IEdmExpression,Microsoft.OData.Edm.Vocabularies.IEdmStructuredValue):Microsoft.OData.Edm.Vocabularies.IEdmValue:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":5960,"DiffBytes":5911},{"Assembly":"Microsoft.OpenApi.dasm","Method":"Microsoft.OpenApi.JsonSchemaReference:SerializeAdditionalV3XProperties(Microsoft.OpenApi.IOpenApiWriter,System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable],System.Action\u00601[Microsoft.OpenApi.IOpenApiWriter]):this (FullOpts)","Category":"improvement","Description":"8,025 -\u003E 7,977 bytes (-48)","ExtraInfo":null,"Diff":"@@ -11,11 \u002B11,11 @@\n ;  V00 this         [V00,T00] ( 83, 76   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMicrosoft.OpenApi.JsonSchemaReference\u003E\n ;  V01 arg1         [V01,T01] (107, 57.50)     ref  -\u003E  r15         class-hnd single-def \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n ;  V02 arg2         [V02,T02] ( 48, 25   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;  V03 arg3         [V03,T16] (  4,  4   )     ref  -\u003E  rcx         class-hnd single-def \u003CSystem.Action\u00601[Microsoft.OpenApi.IOpenApiWriter]\u003E\n\u002B;  V03 arg3         [V03,T13] (  4,  4   )     ref  -\u003E  rcx         class-hnd single-def \u003CSystem.Action\u00601[Microsoft.OpenApi.IOpenApiWriter]\u003E\n ;  V04 loc0         [V04    ] ( 17,  0   )  struct (40) [rbp-0x50]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.DefaultInterpolatedStringHandler\u003E\n ;* V05 loc1         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u003CSystem.Nullable\u00601[bool]\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T17] (  4,  6   )     ref  -\u003E  rdi         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Uri\u003E\n\u002B;  V07 tmp1         [V07,T14] (  4,  6   )     ref  -\u003E  rdi         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Uri\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V09 tmp3         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -23,7 \u002B23,7 @@\n ;* V12 tmp6         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V13 tmp7         [V13,T91] (  3,  2   )     ref  -\u003E  rax        \n ;  V14 tmp8         [V14,T61] (  2,  4   )     ref  -\u003E  r12         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,bool]\u003E\n-;  V15 tmp9         [V15,T18] (  4,  6   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IDictionary\u00602[System.String,bool]\u003E\n\u002B;  V15 tmp9         [V15,T15] (  4,  6   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IDictionary\u00602[System.String,bool]\u003E\n ;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V17 tmp11        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -38,13 \u002B38,13 @@\n ;* V27 tmp21        [V27    ] (  0,  0   )  struct ( 8) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n ;* V28 tmp22        [V28    ] (  0,  0   )  struct ( 8) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n ;  V29 tmp23        [V29,T62] (  2,  4   )     ref  -\u003E  r12         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,System.String]\u003E\n-;  V30 tmp24        [V30,T19] (  4,  6   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.ISet\u00601[System.String]\u003E\n\u002B;  V30 tmp24        [V30,T16] (  4,  6   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.ISet\u00601[System.String]\u003E\n ;* V31 tmp25        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V32 tmp26        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V33 tmp27        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V34 tmp28        [V34,T72] (  4,  3   )     ref  -\u003E  r12        \n ;  V35 tmp29        [V35,T63] (  2,  4   )     ref  -\u003E  r12         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,System.Text.Json.Nodes.JsonNode]\u003E\n-;  V36 tmp30        [V36,T20] (  4,  6   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IList\u00601[System.Text.Json.Nodes.JsonNode]\u003E\n\u002B;  V36 tmp30        [V36,T17] (  4,  6   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IList\u00601[System.Text.Json.Nodes.JsonNode]\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V38 tmp32        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V39 tmp33        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -56,7 \u002B56,7 @@\n ;* V45 tmp39        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V46 tmp40        [V46,T69] (  4,  3.50)     ref  -\u003E   r8        \n ;  V47 tmp41        [V47,T66] (  2,  4   )     ref  -\u003E  r12         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,System.Collections.Generic.HashSet\u00601[System.String]]\u003E\n-;  V48 tmp42        [V48,T21] (  4,  6   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IDictionary\u00602[System.String,System.Collections.Generic.HashSet\u00601[System.String]]\u003E\n\u002B;  V48 tmp42        [V48,T18] (  4,  6   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IDictionary\u00602[System.String,System.Collections.Generic.HashSet\u00601[System.String]]\u003E\n ;* V49 tmp43        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V50 tmp44        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V51 tmp45        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -114,7 \u002B114,7 @@\n ;* V103 tmp97       [V103    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n ;* V104 tmp98       [V104    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V105 tmp99       [V105,T53] (  4,  4   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u00603[Microsoft.OpenApi.IOpenApiWriter,System.String,bool]\u003E\n-;  V106 tmp100      [V106,T22] (  4,  6   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IDictionary\u00602[System.String,Microsoft.OpenApi.IOpenApiSchema]\u003E\n\u002B;  V106 tmp100      [V106,T19] (  4,  6   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IDictionary\u00602[System.String,Microsoft.OpenApi.IOpenApiSchema]\u003E\n ;* V107 tmp101      [V107    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMicrosoft.OpenApi.OpenApiWriterExtensions\u002B\u003C\u003Ec__DisplayClass21_0\u00601[Microsoft.OpenApi.IOpenApiSchema]\u003E\n ;  V108 tmp102      [V108,T127] (  3,  1.50)     ref  -\u003E  r12         class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.OpenApi.OpenApiWriterExtensions\u002B\u003C\u003Ec__DisplayClass21_0\u00601[Microsoft.OpenApi.IOpenApiSchema]\u003E\n ;  V109 tmp103      [V109,T54] (  4,  4   )     ref  -\u003E  [rbp-0x68]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u00603[Microsoft.OpenApi.IOpenApiWriter,System.String,Microsoft.OpenApi.IOpenApiSchema]\u003E\n@@ -126,13 \u002B126,13 @@\n ;* V115 tmp109      [V115    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[SF] ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[System.Decimal]\u003E\n ;* V116 tmp110      [V116    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Decimal\u003E\n ;  V117 tmp111      [V117,T41] (  5,  5   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Decimal\u003E\n-;  V118 tmp112      [V118,T23] (  4,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V118 tmp112      [V118,T20] (  4,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V119 tmp113      [V119,T159] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V120 tmp114      [V120,T24] (  4,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V120 tmp114      [V120,T21] (  4,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V121 tmp115      [V121,T160] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V122 tmp116      [V122,T25] (  4,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V122 tmp116      [V122,T22] (  4,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V123 tmp117      [V123,T161] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V124 tmp118      [V124,T26] (  4,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V124 tmp118      [V124,T23] (  4,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V125 tmp119      [V125,T162] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V126 tmp120      [V126    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n ;* V127 tmp121      [V127    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n@@ -166,20 \u002B166,20 @@\n ;* V155 tmp149      [V155    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n ;* V156 tmp150      [V156    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n... diff truncated; middle omitted ...\n\u002B;  V280 tmp274      [V280,T116] (  2,  2   )   ubyte  -\u003E  rdi         single-def \u0022field V126.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V281 tmp275      [V281,T147] (  2,  1.50)     int  -\u003E  r13         single-def \u0022field V126.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V282 tmp276      [V282,T117] (  2,  2   )   ubyte  -\u003E  rdi         single-def \u0022field V129.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V283 tmp277      [V283,T148] (  2,  1.50)     int  -\u003E  r13         single-def \u0022field V129.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V284 tmp278      [V284,T118] (  2,  2   )   ubyte  -\u003E  rdi         single-def \u0022field V133.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V285 tmp279      [V285,T149] (  2,  1.50)     int  -\u003E  r13         single-def \u0022field V133.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V286 tmp280      [V286,T119] (  2,  2   )   ubyte  -\u003E  rdi         single-def \u0022field V136.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V287 tmp281      [V287,T150] (  2,  1.50)     int  -\u003E  r13         single-def \u0022field V136.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V288 tmp282      [V288,T120] (  2,  2   )   ubyte  -\u003E  rdi         single-def \u0022field V139.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V289 tmp283      [V289,T151] (  2,  1.50)   ubyte  -\u003E  r13         single-def \u0022field V139.value (fldOffset=0x1)\u0022 P-INDEP\n\u002B;  V290 tmp284      [V290,T121] (  2,  2   )   ubyte  -\u003E  rdi         single-def \u0022field V142.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V291 tmp285      [V291,T152] (  2,  1.50)     int  -\u003E  r13         single-def \u0022field V142.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V292 tmp286      [V292,T122] (  2,  2   )   ubyte  -\u003E  rdi         single-def \u0022field V145.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V293 tmp287      [V293,T153] (  2,  1.50)     int  -\u003E  r13         single-def \u0022field V145.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V294 tmp288      [V294,T123] (  2,  2   )   ubyte  -\u003E  rdi         single-def \u0022field V206.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V295 tmp289      [V295,T154] (  2,  1.50)     int  -\u003E  r13         single-def \u0022field V206.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V296 tmp290      [V296,T124] (  2,  2   )   ubyte  -\u003E  rdi         single-def \u0022field V209.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V297 tmp291      [V297,T155] (  2,  1.50)     int  -\u003E  r13         single-def \u0022field V209.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V298 tmp292      [V298,T125] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022V115.[000..001)\u0022\n\u002B;  V299 tmp293      [V299,T156] (  2,  1.50)     int  -\u003E  r13         single-def \u0022V115.[008..012)\u0022\n\u002B;  V300 tmp294      [V300,T157] (  2,  1.50)     int  -\u003E  r12         single-def \u0022V115.[012..016)\u0022\n\u002B;  V301 tmp295      [V301,T158] (  2,  1.50)    long  -\u003E  [rbp-0x58]  spill-single-def \u0022V115.[016..024)\u0022\n\u002B;  V302 tmp296      [V302,T04] (  5, 10   )   byref  -\u003E  rdi         single-def \u0022Spilling address for field-by-field copy\u0022\n\u002B;  V303 tmp297      [V303,T100] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V304 tmp298      [V304,T101] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V305 tmp299      [V305,T102] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V306 tmp300      [V306,T103] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V307 tmp301      [V307,T104] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V308 tmp302      [V308,T105] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V309 tmp303      [V309,T106] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V310 tmp304      [V310,T107] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V311 tmp305      [V311,T108] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V312 tmp306      [V312,T109] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V313 tmp307      [V313,T110] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V314 tmp308      [V314,T111] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V315 tmp309      [V315,T112] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V316 tmp310      [V316,T168] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V317 cse0        [V317,T145] (  2,  1   )     int  -\u003E  rax         \u0022CSE #32: conservative\u0022\n\u002B;  V318 cse1        [V318,T146] (  2,  1   )     int  -\u003E  rax         \u0022CSE #38: conservative\u0022\n ;\n ; Lcl frame size = 104\n \n@@ -1248,9 \u002B1245,6 @@ G_M12269_IG81:\n        call     [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE\n        test     rax, rax\n        je       SHORT G_M12269_IG82\n-       mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Nodes.JsonArray\n-       cmp      qword ptr [r13], rdi\n-       je       SHORT G_M12269_IG82\n        mov      rdi, rax\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n        call     [r11]System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n@@ -1259,7 \u002B1253,7 @@ G_M12269_IG81:\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n        je       SHORT G_M12269_IG83\n-\t\t\t\t\t\t;; size=82 bbWeight=0.50 PerfScore 8.25\n\u002B\t\t\t\t\t\t;; size=66 bbWeight=0.50 PerfScore 6.62\n G_M12269_IG82:\n        mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.OpenApi.Utils:CheckArgumentNull[System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]](System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable],System.String):System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\n@@ -1376,9 \u002B1370,6 @@ G_M12269_IG90:\n        call     [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE\n        test     rax, rax\n        je       SHORT G_M12269_IG91\n-       mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Nodes.JsonArray\n-       cmp      qword ptr [r13], rdi\n-       je       SHORT G_M12269_IG91\n        mov      rdi, rax\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n        call     [r11]System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n@@ -1387,7 \u002B1378,7 @@ G_M12269_IG90:\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n        je       SHORT G_M12269_IG92\n-\t\t\t\t\t\t;; size=82 bbWeight=0.50 PerfScore 8.25\n\u002B\t\t\t\t\t\t;; size=66 bbWeight=0.50 PerfScore 6.62\n G_M12269_IG91:\n        mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.OpenApi.Utils:CheckArgumentNull[System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]](System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable],System.String):System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\n@@ -1415,9 \u002B1406,6 @@ G_M12269_IG93:\n        call     [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE\n        test     rax, rax\n        je       SHORT G_M12269_IG94\n-       mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Nodes.JsonArray\n-       cmp      qword ptr [r13], rdi\n-       je       SHORT G_M12269_IG94\n        mov      rdi, rax\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n        call     [r11]System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n@@ -1426,7 \u002B1414,7 @@ G_M12269_IG93:\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n        je       SHORT G_M12269_IG95\n-\t\t\t\t\t\t;; size=82 bbWeight=0.50 PerfScore 8.25\n\u002B\t\t\t\t\t\t;; size=66 bbWeight=0.50 PerfScore 6.62\n G_M12269_IG94:\n        mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.OpenApi.Utils:CheckArgumentNull[System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]](System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable],System.String):System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\n@@ -2117,5 \u002B2105,5 @@ RWD64  \tdq\t0069007200650073h, 007A0069006C0061h, 0066002000640065h, 005200200072\n RWD128 \tdq\t002C0061006D0065h, 0074007500620020h\n \n \n-; Total bytes of code 8025, prolog size 38, PerfScore 792.08, instruction count 1483, allocated bytes for code 8025 (MethodHash=8437d012) for method Microsoft.OpenApi.JsonSchemaReference:SerializeAdditionalV3XProperties(Microsoft.OpenApi.IOpenApiWriter,System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable],System.Action\u00601[Microsoft.OpenApi.IOpenApiWriter]):this (FullOpts)\n\u002B; Total bytes of code 7977, prolog size 38, PerfScore 787.21, instruction count 1474, allocated bytes for code 7977 (MethodHash=8437d012) for method Microsoft.OpenApi.JsonSchemaReference:SerializeAdditionalV3XProperties(Microsoft.OpenApi.IOpenApiWriter,System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable],System.Action\u00601[Microsoft.OpenApi.IOpenApiWriter]):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":8025,"DiffBytes":7977},{"Assembly":"MongoDB.Bson.dasm","Method":"MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[System.Numerics.Vector\u00601[float]](MongoDB.Bson.BinaryVector\u00601[System.Numerics.Vector\u00601[float]]):byte[] (FullOpts)","Category":"improvement","Description":"173 -\u003E 145 bytes (-28)","ExtraInfo":null,"Diff":"@@ -1,126 \u002B1,112 @@\n ; Assembly listing for method MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[System.Numerics.Vector\u00601[float]](MongoDB.Bson.BinaryVector\u00601[System.Numerics.Vector\u00601[float]]):byte[] (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; fully interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 7 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T00] (  9,  7.75)     ref  -\u003E  rbx         class-hnd single-def \u003CMongoDB.Bson.BinaryVector\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V01 loc0         [V01,T04] (  3,  2.50)   ubyte  -\u003E  r15        \n-;* V02 loc1         [V02,T12] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CMongoDB.Bson.BinaryVectorPackedBit\u003E\n\u002B;  V00 arg0         [V00,T00] (  6,  6   )     ref  -\u003E  rbx         class-hnd single-def \u003CMongoDB.Bson.BinaryVector\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;* V01 loc0         [V01,T11] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def\n\u002B;* V02 loc1         [V02    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Bson.BinaryVectorPackedBit\u003E\n ;* V03 loc2         [V03    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u003CSystem.ReadOnlyMemory\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;* V05 tmp1         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CMongoDB.Bson.BinaryVectorPackedBit\u003E\n-;* V06 tmp2         [V06    ] (  0,  0   )  struct (16) zero-ref    \u0022impAppendStmt\u0022 \u003CSystem.ReadOnlySpan\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V07 tmp3         [V07,T01] (  6,  4   )   byref  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n-;  V08 tmp4         [V08,T03] (  6,  4   )     int  -\u003E  rsi         \u0022Inline stloc first use temp\u0022\n-;* V09 tmp5         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Object\u003E\n-;* V10 tmp6         [V10    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ReadOnlySpan\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;* V11 tmp7         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022updating class info\u0022 \u003CSystem.Buffers.MemoryManager\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CSystem.Span\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;* V13 tmp9         [V13    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Span\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V14 tmp10        [V14,T07] (  3,  1.50)    long  -\u003E  rdi         single-def \u0022Inline stloc first use temp\u0022\n-;* V15 tmp11        [V15    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022Inline stloc first use temp\u0022\n-;* V16 tmp12        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022updating class info\u0022 \u003CSystem.Numerics.Vector\u00601[float][]\u003E\n-;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022updating class info\u0022 \u003CSystem.Numerics.Vector\u00601[float][]\u003E\n-;  V18 tmp14        [V18,T06] (  2,  2   )   byref  -\u003E  rcx         single-def \u0022Inlining Arg\u0022\n-;* V19 tmp15        [V19    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Span\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V20 tmp16        [V20,T02] (  6,  4   )     ref  -\u003E  rdi         single-def \u0022field V03._object (fldOffset=0x0)\u0022 P-INDEP\n-;  V21 tmp17        [V21,T09] (  2,  1.50)     int  -\u003E  r14         single-def \u0022field V03._index (fldOffset=0x8)\u0022 P-INDEP\n-;  V22 tmp18        [V22,T05] (  3,  2   )     int  -\u003E  r13         single-def \u0022field V03._length (fldOffset=0xc)\u0022 P-INDEP\n-;* V23 tmp19        [V23    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V06._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V24 tmp20        [V24    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V06._length (fldOffset=0x8)\u0022 P-INDEP\n-;* V25 tmp21        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V10._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V26 tmp22        [V26    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V10._length (fldOffset=0x8)\u0022 P-INDEP\n-;* V27 tmp23        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref    do-not-enreg[] \u0022field V12._reference (fldOffset=0x0)\u0022 P-DEP\n-;* V28 tmp24        [V28    ] (  0,  0   )     int  -\u003E  zero-ref    do-not-enreg[] \u0022field V12._length (fldOffset=0x8)\u0022 P-DEP\n-;  V29 tmp25        [V29,T10] (  2,  1   )   byref  -\u003E  rax         \u0022field V13._reference (fldOffset=0x0)\u0022 P-INDEP\n-;  V30 tmp26        [V30,T11] (  2,  1   )     int  -\u003E  rsi         \u0022field V13._length (fldOffset=0x8)\u0022 P-INDEP\n-;* V31 tmp27        [V31    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V19._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V32 tmp28        [V32    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V19._length (fldOffset=0x8)\u0022 P-INDEP\n-;  V33 cse0         [V33,T08] (  3,  1.50)    long  -\u003E  rax         \u0022CSE #01: moderate\u0022\n\u002B;* V05 tmp1         [V05    ] (  0,  0   )  struct (16) zero-ref    \u0022impAppendStmt\u0022 \u003CSystem.ReadOnlySpan\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V06 tmp2         [V06,T01] (  6,  4   )   byref  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n\u002B;  V07 tmp3         [V07,T03] (  6,  4   )     int  -\u003E  rsi         \u0022Inline stloc first use temp\u0022\n\u002B;* V08 tmp4         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Object\u003E\n\u002B;* V09 tmp5         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ReadOnlySpan\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;* V10 tmp6         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022updating class info\u0022 \u003CSystem.Buffers.MemoryManager\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CSystem.Span\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;* V12 tmp8         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Span\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V13 tmp9         [V13,T06] (  3,  1.50)    long  -\u003E  rdi         single-def \u0022Inline stloc first use temp\u0022\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022Inline stloc first use temp\u0022\n\u002B;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022updating class info\u0022 \u003CSystem.Numerics.Vector\u00601[float][]\u003E\n\u002B;* V16 tmp12        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022updating class info\u0022 \u003CSystem.Numerics.Vector\u00601[float][]\u003E\n\u002B;  V17 tmp13        [V17,T05] (  2,  2   )   byref  -\u003E  rcx         single-def \u0022Inlining Arg\u0022\n\u002B;* V18 tmp14        [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Span\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V19 tmp15        [V19,T02] (  6,  4   )     ref  -\u003E  rdi         single-def \u0022field V03._object (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V20 tmp16        [V20,T08] (  2,  1.50)     int  -\u003E  r15         single-def \u0022field V03._index (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V21 tmp17        [V21,T04] (  3,  2   )     int  -\u003E  r14         single-def \u0022field V03._length (fldOffset=0xc)\u0022 P-INDEP\n\u002B;* V22 tmp18        [V22    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V05._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V23 tmp19        [V23    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V05._length (fldOffset=0x8)\u0022 P-INDEP\n\u002B;* V24 tmp20        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V09._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V25 tmp21        [V25    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V09._length (fldOffset=0x8)\u0022 P-INDEP\n\u002B;* V26 tmp22        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref    do-not-enreg[] \u0022field V11._reference (fldOffset=0x0)\u0022 P-DEP\n\u002B;* V27 tmp23        [V27    ] (  0,  0   )     int  -\u003E  zero-ref    do-not-enreg[] \u0022field V11._length (fldOffset=0x8)\u0022 P-DEP\n\u002B;  V28 tmp24        [V28,T09] (  2,  1   )   byref  -\u003E  rax         \u0022field V12._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V29 tmp25        [V29,T10] (  2,  1   )     int  -\u003E  rsi         \u0022field V12._length (fldOffset=0x8)\u0022 P-INDEP\n\u002B;* V30 tmp26        [V30    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V18._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V31 tmp27        [V31    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V18._length (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V32 cse0         [V32,T07] (  3,  1.50)    long  -\u003E  rax         \u0022CSE #01: moderate\u0022\n ;\n-; Lcl frame size = 0\n\u002B; Lcl frame size = 8\n \n G_M31734_IG01:\n        push     rbp\n        push     r15\n        push     r14\n-       push     r13\n        push     rbx\n\u002B       push     rax\n        lea      rbp, [rsp\u002B0x20]\n        mov      rbx, rdi\n-\t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 5.75\n\u002B\t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 5.75\n G_M31734_IG02:\n-       xor      r15d, r15d\n-       test     rbx, rbx\n-       je       SHORT G_M31734_IG05\n-\t\t\t\t\t\t;; size=8 bbWeight=1 PerfScore 1.50\n-G_M31734_IG03:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BinaryVectorPackedBit\n-       cmp      qword ptr [rbx], rdi\n-       jne      SHORT G_M31734_IG05\n-\t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M31734_IG04:\n-       movzx    r15, byte  ptr [rbx\u002B0x20]\n-\t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 1.00\n-G_M31734_IG05:\n        mov      rdi, gword ptr [rbx\u002B0x10]\n-       mov      r14d, dword ptr [rbx\u002B0x18]\n-       mov      r13d, dword ptr [rbx\u002B0x1C]\n\u002B       mov      r15d, dword ptr [rbx\u002B0x18]\n\u002B       mov      r14d, dword ptr [rbx\u002B0x1C]\n        xor      rax, rax\n        xor      esi, esi\n        test     rdi, rdi\n-       je       SHORT G_M31734_IG09\n\u002B       je       SHORT G_M31734_IG06\n \t\t\t\t\t\t;; size=21 bbWeight=1 PerfScore 7.75\n-G_M31734_IG06:\n\u002BG_M31734_IG03:\n        mov      rax, qword ptr [rdi]\n        mov      rcx, rax\n        test     dword ptr [rcx], 0xD1FFAB1E\n-       jne      SHORT G_M31734_IG07\n\u002B       jne      SHORT G_M31734_IG04\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x28]System.Buffers.MemoryManager\u00601[System.Numerics.Vector\u00601[float]]:GetSpan():System.Span\u00601[System.Numerics.Vector\u00601[float]]:this\n        mov      esi, edx\n-       jmp      SHORT G_M31734_IG08\n\u002B       jmp      SHORT G_M31734_IG05\n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 6.25\n-G_M31734_IG07:\n\u002BG_M31734_IG04:\n        lea      rax, bword ptr [rdi\u002B0x10]\n        mov      esi, dword ptr [rdi\u002B0x08]\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.25\n-G_M31734_IG08:\n-       and      r14d, 0xD1FFAB1E\n-       mov      edi, r14d\n-       mov      edx, r13d\n\u002BG_M31734_IG05:\n\u002B       and      r15d, 0xD1FFAB1E\n\u002B       mov      edi, r15d\n\u002B       mov      edx, r14d\n        add      rdx, rdi\n        mov      esi, esi\n        cmp      rdx, rsi\n-       ja       SHORT G_M31734_IG11\n\u002B       ja       SHORT G_M31734_IG08\n        shl      rdi, 5\n        add      rax, rdi\n-       mov      esi, r13d\n\u002B       mov      esi, r14d\n \t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 1.75\n-G_M31734_IG09:\n\u002BG_M31734_IG06:\n        mov      rdi, rax\n        mov      edx, dword ptr [rbx\u002B0x08]\n-       mov      ecx, r15d\n\u002B       xor      ecx, ecx\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[System.Numerics.Vector\u00601[float]](System.ReadOnlySpan\u00601[System.Numerics.Vector\u00601[float]],int,byte):byte[]\n-\t\t\t\t\t\t;; size=19 bbWeight=1 PerfScore 2.75\n-G_M31734_IG10:\n\u002B\t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 2.75\n\u002BG_M31734_IG07:\n\u002B       add      rsp, 8\n        pop      rbx\n-       pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        tail.jmp [rax]MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[System.Numerics.Vector\u00601[float]](System.ReadOnlySpan\u00601[System.Numerics.Vector\u00601[float]],int,byte):byte[]\n-\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 4.50\n-G_M31734_IG11:\n\u002B\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 4.25\n\u002BG_M31734_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 173, prolog size 16, PerfScore 33.31, instruction count 54, allocated bytes for code 173 (MethodHash=9a478409) for method MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[System.Numerics.Vector\u00601[float]](MongoDB.Bson.BinaryVector\u00601[System.Numerics.Vector\u00601[float]]):byte[] (FullOpts)\n\u002B; Total bytes of code 145, prolog size 15, PerfScore 29.75, instruction count 47, allocated bytes for code 145 (MethodHash=9a478409) for method MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[System.Numerics.Vector\u00601[float]](MongoDB.Bson.BinaryVector\u00601[System.Numerics.Vector\u00601[float]]):byte[] (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":173,"DiffBytes":145},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.BinaryVectorDriverExtensions:ToQueryVector[int](MongoDB.Bson.BinaryVector\u00601[int]):MongoDB.Driver.QueryVector (FullOpts)","Category":"improvement","Description":"698 -\u003E 334 bytes (-364)","ExtraInfo":null,"Diff":"@@ -8,52 \u002B8,46 @@\n ; 0 inlinees with PGO data; 8 single block inlinees; 6 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T00] ( 13,  6.25)     ref  -\u003E  rbx         class-hnd single-def \u003CMongoDB.Bson.BinaryVector\u00601[int]\u003E\n-;  V01 loc0         [V01,T11] (  2,  1   )     ref  -\u003E  rbx         class-hnd exact \u003CMongoDB.Bson.BinaryVectorFloat32\u003E\n-;  V02 loc1         [V02,T12] (  2,  1   )     ref  -\u003E  rbx         class-hnd exact \u003CMongoDB.Bson.BinaryVectorInt8\u003E\n-;  V03 loc2         [V03,T13] (  2,  1   )     ref  -\u003E  rbx         class-hnd exact \u003CMongoDB.Bson.BinaryVectorPackedBit\u003E\n-;  V04 loc3         [V04,T07] (  4,  2.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.QueryVector\u003E\n-;  V05 loc4         [V05    ] ( 15,  0   )  struct (40) [rbp-0x38]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.DefaultInterpolatedStringHandler\u003E\n\u002B;  V00 arg0         [V00,T00] (  4,  2   )     ref  -\u003E  rbx         class-hnd single-def \u003CMongoDB.Bson.BinaryVector\u00601[int]\u003E\n\u002B;* V01 loc0         [V01    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Bson.BinaryVectorFloat32\u003E\n\u002B;* V02 loc1         [V02    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Bson.BinaryVectorInt8\u003E\n\u002B;* V03 loc2         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Bson.BinaryVectorPackedBit\u003E\n\u002B;* V04 loc3         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMongoDB.Driver.QueryVector\u003E\n\u002B;  V05 loc4         [V05    ] ( 14,  0   )  struct (40) [rbp-0x38]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.DefaultInterpolatedStringHandler\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CMongoDB.Bson.BinaryVectorFloat32\u003E\n-;  V08 tmp2         [V08,T01] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.QueryVector\u003E\n-;* V09 tmp3         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CMongoDB.Bson.BinaryVectorInt8\u003E\n-;  V10 tmp4         [V10,T02] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.QueryVector\u003E\n-;* V11 tmp5         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CMongoDB.Bson.BinaryVectorPackedBit\u003E\n-;  V12 tmp6         [V12,T03] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.QueryVector\u003E\n-;* V13 tmp7         [V13    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;* V14 tmp8         [V14    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V15 tmp9         [V15,T17] (  3,  0   )     ref  -\u003E  rax        \n-;  V16 tmp10        [V16,T18] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n-;  V17 tmp11        [V17,T04] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n-;  V18 tmp12        [V18,T05] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n-;  V19 tmp13        [V19,T06] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n-;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.Buffers.SharedArrayPool\u00601[char]\u003E\n-;  V21 tmp15        [V21,T14] (  5,  0   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003Cchar[]\u003E\n-;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003Cchar[]\u003E\n-;* V23 tmp17        [V23    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.QueryVector\u003E\n\u002B;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.QueryVector\u003E\n\u002B;* V09 tmp3         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.QueryVector\u003E\n\u002B;* V10 tmp4         [V10    ] (  0,  0   )   byref  -\u003E  zero-ref   \n\u002B;* V11 tmp5         [V11    ] (  0,  0   )   byref  -\u003E  zero-ref   \n\u002B;  V12 tmp6         [V12,T04] (  3,  0   )     ref  -\u003E  rax        \n\u002B;  V13 tmp7         [V13,T05] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;* V14 tmp8         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n\u002B;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n\u002B;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n\u002B;* V17 tmp11        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.Buffers.SharedArrayPool\u00601[char]\u003E\n\u002B;  V18 tmp12        [V18,T01] (  5,  0   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003Cchar[]\u003E\n\u002B;* V19 tmp13        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003Cchar[]\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V21 tmp15        [V21    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Span\u00601[char]\u003E\n\u002B;* V22 tmp16        [V22    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Span\u00601[char]\u003E\n\u002B;  V23 tmp17        [V23,T03] (  4,  0   )     int  -\u003E  rdi         \u0022Inlining Arg\u0022\n ;* V24 tmp18        [V24    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;* V25 tmp19        [V25    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;  V26 tmp20        [V26,T16] (  4,  0   )     int  -\u003E  rdi         \u0022Inlining Arg\u0022\n-;* V27 tmp21        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;  V28 tmp22        [V28,T15] (  5,  0   )   byref  -\u003E  r15         single-def \u0022Inlining Arg\u0022\n-;  V29 tmp23        [V29,T22] (  2,  0   )     int  -\u003E  rsi         \u0022Inlining Arg\u0022\n-;* V30 tmp24        [V30,T23] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n-;* V31 tmp25        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;* V32 tmp26        [V32    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;* V33 tmp27        [V33    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V34 tmp28        [V34,T19] (  3,  0   )   byref  -\u003E  rdi         \u0022field V24._reference (fldOffset=0x0)\u0022 P-INDEP\n-;  V35 tmp29        [V35,T20] (  3,  0   )     int  -\u003E  rsi         \u0022field V24._length (fldOffset=0x8)\u0022 P-INDEP\n-;* V36 tmp30        [V36    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022field V25._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V37 tmp31        [V37    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V25._length (fldOffset=0x8)\u0022 P-INDEP\n-;* V38 tmp32        [V38    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V27._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V39 tmp33        [V39    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V27._length (fldOffset=0x8)\u0022 P-INDEP\n-;* V40 tmp34        [V40    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V31._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V41 tmp35        [V41    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V31._length (fldOffset=0x8)\u0022 P-INDEP\n-;  V42 tmp36        [V42,T08] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V43 tmp37        [V43,T09] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V44 tmp38        [V44,T10] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V45 tmp39        [V45,T21] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V25 tmp19        [V25,T02] (  5,  0   )   byref  -\u003E  r15         single-def \u0022Inlining Arg\u0022\n\u002B;  V26 tmp20        [V26,T09] (  2,  0   )     int  -\u003E  rsi         \u0022Inlining Arg\u0022\n\u002B;* V27 tmp21        [V27,T10] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n\u002B;* V28 tmp22        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Span\u00601[char]\u003E\n\u002B;* V29 tmp23        [V29    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n\u002B;* V30 tmp24        [V30    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n\u002B;  V31 tmp25        [V31,T06] (  3,  0   )   byref  -\u003E  rdi         \u0022field V21._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V32 tmp26        [V32,T07] (  3,  0   )     int  -\u003E  rsi         \u0022field V21._length (fldOffset=0x8)\u0022 P-INDEP\n\u002B;* V33 tmp27        [V33    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022field V22._reference (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n\u002B;  V39 tmp33        [V39,T08] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 48\n \n@@ -68,110 \u002B62,8 @@ G_M39479_IG01:\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu  ymmword ptr [rbp-0x30], ymm8\n        mov      rbx, rdi\n-\t\t\t\t\t\t;; size=32 bbWeight=1 PerfScore 6.58\n\u002B\t\t\t\t\t\t;; size=32 bbWeight=0 PerfScore 0.00\n G_M39479_IG02:\n-       test     rbx, rbx\n-       je       SHORT G_M39479_IG05\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M39479_IG03:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BinaryVectorFloat32\n-       cmp      qword ptr [rbx], rdi\n-       jne      SHORT G_M39479_IG05\n-\t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M39479_IG04:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonBinaryData\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r15, rax\n-       mov      rdi, rbx\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[float](MongoDB.Bson.BinaryVector\u00601[float]):byte[]\n-       call     [rax]MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[float](MongoDB.Bson.BinaryVector\u00601[float]):byte[]\n-       mov      rsi, rax\n-       mov      rdi, r15\n-       mov      edx, 9\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.BsonBinaryData:.ctor(byte[],int):this\n-       call     [rax]MongoDB.Bson.BsonBinaryData:.ctor(byte[],int):this\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.QueryVector\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      rbx, rax\n-       mov      rdi, rbx\n-       mov      rsi, r15\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.QueryVector:.ctor(MongoDB.Bson.BsonBinaryData):this\n-       call     [rax]MongoDB.Driver.QueryVector:.ctor(MongoDB.Bson.BsonBinaryData):this\n-       jmp      G_M39479_IG11\n-\t\t\t\t\t\t;; size=97 bbWeight=0.50 PerfScore 8.12\n-G_M39479_IG05:\n-       test     rbx, rbx\n-       je       SHORT G_M39479_IG08\n-\t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 0.62\n-G_M39479_IG06:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BinaryVectorInt8\n-       cmp      qword ptr [rbx], rdi\n-       jne      SHORT G_M39479_IG08\n-\t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M39479_IG07:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonBinaryData\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r15, rax\n-       mov      rdi, rbx\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[sbyte](MongoDB.Bson.BinaryVector\u00601[sbyte]):byte[]\n-       call     [rax]MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[sbyte](MongoDB.Bson.BinaryVector\u00601[sbyte]):byte[]\n-       mov      rsi, rax\n-       mov      rdi, r15\n-       mov      edx, 9\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.BsonBinaryData:.ctor(byte[],int):this\n-       call     [rax]MongoDB.Bson.BsonBinaryData:.ctor(byte[],int):this\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.QueryVector\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      rbx, rax\n-       mov      rdi, rbx\n-       mov      rsi, r15\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.QueryVector:.ctor(MongoDB.Bson.BsonBinaryData):this\n-       call     [rax]MongoDB.Driver.QueryVector:.ctor(MongoDB.Bson.BsonBinaryData):this\n-       jmp      SHORT G_M39479_IG11\n-\t\t\t\t\t\t;; size=94 bbWeight=0.50 PerfScore 8.12\n-G_M39479_IG08:\n-       test     rbx, rbx\n-       je       SHORT G_M39479_IG13\n-\t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 0.62\n-G_M39479_IG09:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BinaryVectorPackedBit\n-       cmp      qword ptr [rbx], rdi\n-       jne      SHORT G_M39479_IG13\n-\t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M39479_IG10:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonBinaryData\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r15, rax\n-       mov      rdi, rbx\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[byte](MongoDB.Bson.BinaryVector\u00601[byte]):byte[]\n-       call     [rax]MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[byte](MongoDB.Bson.BinaryVector\u00601[byte]):byte[]\n-       mov      rsi, rax\n-       mov      rdi, r15\n-       mov      edx, 9\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.BsonBinaryData:.ctor(byte[],int):this\n-       call     [rax]MongoDB.Bson.BsonBinaryData:.ctor(byte[],int):this\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.QueryVector\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      rbx, rax\n-       mov      rdi, rbx\n-       mov      rsi, r15\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.QueryVector:.ctor(MongoDB.Bson.BsonBinaryData):this\n-       call     [rax]MongoDB.Driver.QueryVector:.ctor(MongoDB.Bson.BsonBinaryData):this\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 7.12\n-G_M39479_IG11:\n-       mov      rax, rbx\n-\t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M39479_IG12:\n-       vzeroupper \n-       add      rsp, 48\n-       pop      rbx\n-       pop      r15\n-       pop      rbp\n-       ret      \n-\t\t\t\t\t\t;; size=12 bbWeight=1 PerfScore 3.75\n-G_M39479_IG13:\n-       xor      rdi, rdi\n-       mov      gword ptr [rbp-0x38], rdi\n        mov      rdi, 0xD1FFAB1E      ; const ptr\n        mov      rdi, gword ptr [rdi]\n        mov      esi, 256\n@@ -179,16 \u002B71,16 @@ G_M39479_IG13:\n        call     [rax]System.Buffers.SharedArrayPool\u00601[char]:Rent(int):char[]:this\n        mov      gword ptr [rbp-0x30], rax\n        test     rax, rax\n-       jne      SHORT G_M39479_IG14\n\u002B       jne      SHORT G_M39479_IG03\n        xor      rdi, rdi\n        xor      esi, esi\n-       jmp      SHORT G_M39479_IG15\n-\t\t\t\t\t\t;; size=51 bbWeight=0 PerfScore 0.00\n-G_M39479_IG14:\n\u002B       jmp      SHORT G_M39479_IG04\n\u002B\t\t\t\t\t\t;; size=45 bbWeight=0 PerfScore 0.00\n\u002BG_M39479_IG03:\n        lea      rdi, bword ptr [rax\u002B0x10]\n        mov      esi, dword ptr [rax\u002B0x08]\n \t\t\t\t\t\t;; size=7 bbWeight=0 PerfScore 0.00\n-G_M39479_IG15:\n\u002BG_M39479_IG04:\n        mov      bword ptr [rbp-0x20], rdi\n        mov      dword ptr [rbp-0x18], esi\n        xor      edi, edi\n@@ -196,19 \u002B88,19 @@ G_M39479_IG15:\n        mov      byte  ptr [rbp-0x24], 0\n        mov      edi, dword ptr [rbp-0x28]\n        cmp      edi, dword ptr [rbp-0x18]\n-       jbe      SHORT G_M39479_IG16\n\u002B       jbe      SHORT G_M39479_IG05\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()\n        int3     \n \t\t\t\t\t\t;; size=37 bbWeight=0 PerfScore 0.00\n-G_M39479_IG16:\n\u002BG_M39479_IG05:\n        mov      rsi, bword ptr [rbp-0x20]\n        mov      eax, edi\n        lea      r15, bword ptr [rsi\u002B2*rax]\n        mov      esi, dword ptr [rbp-0x18]\n        sub      esi, edi\n        cmp      esi, 27\n-       jb       SHORT G_M39479_IG17\n\u002B       jb       SHORT G_M39479_IG06\n        vmovups  ymm0, ymmword ptr [reloc @RWD00]\n        vmovups  ymmword ptr [r15], ymm0\n        vmovups  xmm0, xmmword ptr [reloc @RWD32]\n@@ -218,26 \u002B110,26 @@ G_M39479_IG16:\n        mov      edi, dword ptr [rbp-0x28]\n        add      edi, 27\n        mov      dword ptr [rbp-0x28], edi\n-       jmp      SHORT G_M39479_IG18\n\u002B       jmp      SHORT G_M39479_IG07\n \t\t\t\t\t\t;; size=73 bbWeight=0 PerfScore 0.00\n-G_M39479_IG17:\n\u002BG_M39479_IG06:\n        lea      rdi, [rbp-0x38]\n        mov      rsi, 0xD1FFAB1E      ; \u0027Invalid binary vector type \u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this\n        call     [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this\n \t\t\t\t\t\t;; size=26 bbWeight=0 PerfScore 0.00\n-G_M39479_IG18:\n\u002BG_M39479_IG07:\n        test     rbx, rbx\n-       jne      SHORT G_M39479_IG19\n\u002B       jne      SHORT G_M39479_IG08\n        xor      rax, rax\n-       jmp      SHORT G_M39479_IG20\n\u002B       jmp      SHORT G_M39479_IG09\n \t\t\t\t\t\t;; size=9 bbWeight=0 PerfScore 0.00\n-G_M39479_IG19:\n\u002BG_M39479_IG08:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Object:GetType():System.Type:this\n        call     [rax]System.Object:GetType():System.Type:this\n \t\t\t\t\t\t;; size=15 bbWeight=0 PerfScore 0.00\n-G_M39479_IG20:\n\u002BG_M39479_IG09:\n        lea      rdi, [rbp-0x38]\n        mov      rdx, rax\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[System.Type](System.Type):this\n@@ -261,5 \u002B153,5 @@ RWD00  \tdq\t00610076006E0049h, 002000640069006Ch, 0061006E00690062h, 007600200079\n RWD32  \tdq\t006F007400630065h, 0079007400200072h\n \n \n-; Total bytes of code 698, prolog size 29, PerfScore 38.90, instruction count 160, allocated bytes for code 698 (MethodHash=cff765c8) for method MongoDB.Driver.BinaryVectorDriverExtensions:ToQueryVector[int](MongoDB.Bson.BinaryVector\u00601[int]):MongoDB.Driver.QueryVector (FullOpts)\n\u002B; Total bytes of code 334, prolog size 29, PerfScore 0.00, instruction count 80, allocated bytes for code 334 (MethodHash=cff765c8) for method MongoDB.Driver.BinaryVectorDriverExtensions:ToQueryVector[int](MongoDB.Bson.BinaryVector\u00601[int]):MongoDB.Driver.QueryVector (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":698,"DiffBytes":334},{"Assembly":"Nest.dasm","Method":"Nest.FieldExpressionVisitor:VisitConstantOrVariable(System.Linq.Expressions.MethodCallExpression,System.Collections.Generic.Stack\u00601[System.String]) (FullOpts)","Category":"improvement","Description":"373 -\u003E 318 bytes (-55)","ExtraInfo":null,"Diff":"@@ -1,160 \u002B1,140 @@\n ; Assembly listing for method Nest.FieldExpressionVisitor:VisitConstantOrVariable(System.Linq.Expressions.MethodCallExpression,System.Collections.Generic.Stack\u00601[System.String]) (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 7 single block inlinees; 3 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T02] (  4,  4   )     ref  -\u003E  rdi         class-hnd single-def \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n\u002B;  V00 arg0         [V00,T01] (  4,  4   )     ref  -\u003E  rdi         class-hnd single-def \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n ;  V01 arg1         [V01,T00] (  8,  6   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Collections.Generic.Stack\u00601[System.String]\u003E\n ;* V02 loc0         [V02    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Linq.Expressions.Expression\u003E\n ;* V03 loc1         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.String\u003E\n-;  V04 loc2         [V04,T09] (  3,  2.50)     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Linq.Expressions.ConstantExpression\u003E\n\u002B;  V04 loc2         [V04,T07] (  3,  2.50)     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Linq.Expressions.ConstantExpression\u003E\n ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V06 tmp1         [V06,T11] (  4,  2   )     ref  -\u003E  rax        \n\u002B;  V06 tmp1         [V06,T10] (  4,  2   )     ref  -\u003E  rax        \n ;* V07 tmp2         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Delegate\u003E\n-;  V08 tmp3         [V08,T01] (  4,  7   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V09 tmp4         [V09    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V08 tmp3         [V08,T02] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V09 tmp4         [V09    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V10 tmp5         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V11 tmp6         [V11,T08] (  4,  2.50)     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V12 tmp7         [V12,T03] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V11 tmp6         [V11,T08] (  3,  2.50)     ref  -\u003E  r15         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;* V12 tmp7         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n ;* V13 tmp8         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Linq.Expressions.ParameterExpression[]\u003E\n ;* V14 tmp9         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Linq.Expressions.ParameterExpression[]\u003E\n ;* V15 tmp10        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Object[]\u003E\n-;  V16 tmp11        [V16,T04] (  4,  3   )     int  -\u003E  r15         single-def \u0022Inline stloc first use temp\u0022\n-;  V17 tmp12        [V17,T10] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String[]\u003E\n-;  V18 tmp13        [V18,T05] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V19 tmp14        [V19,T06] (  3,  3   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n-;  V20 tmp15        [V20,T07] (  3,  3   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n\u002B;  V16 tmp11        [V16,T03] (  4,  3   )     int  -\u003E  r15         single-def \u0022Inline stloc first use temp\u0022\n\u002B;  V17 tmp12        [V17,T09] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String[]\u003E\n\u002B;  V18 tmp13        [V18,T04] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V19 tmp14        [V19,T05] (  3,  3   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n\u002B;  V20 tmp15        [V20,T06] (  3,  3   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 8\n \n G_M36608_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x20]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x20], rax\n        mov      rbx, rsi\n \t\t\t\t\t\t;; size=21 bbWeight=1 PerfScore 7.00\n G_M36608_IG02:\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x20]System.Linq.Expressions.MethodCallExpression:GetOrMakeArguments():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]:this\n-       mov      r15, rax\n-       test     r15, r15\n-       je       G_M36608_IG12\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M36608_IG04\n-\t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 13.50\n-G_M36608_IG03:\n-       lea      rsi, [rbp-0x20]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       mov      r14, rax\n-       jmp      SHORT G_M36608_IG05\n-\t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 5.00\n-G_M36608_IG04:\n\u002B       je       G_M36608_IG09\n        lea      rdx, [rbp-0x20]\n-       mov      rsi, r15\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.Linq.Expressions.Expression](System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.Expression],byref):System.Linq.Expressions.Expression\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      r14, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M36608_IG05:\n\u002B       mov      r15, rax\n        cmp      byte  ptr [rbp-0x20], 0\n-       je       G_M36608_IG13\n-       mov      rsi, r14\n\u002B       je       G_M36608_IG10\n\u002B       mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Expressions.ConstantExpression\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M36608_IG07\n-\t\t\t\t\t\t;; size=40 bbWeight=1 PerfScore 7.00\n-G_M36608_IG06:\n\u002B       je       SHORT G_M36608_IG04\n\u002B\t\t\t\t\t\t;; size=91 bbWeight=1 PerfScore 19.75\n\u002BG_M36608_IG03:\n        mov      rdi, gword ptr [rax\u002B0x08]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x08]System.Object:ToString():System.String:this\n-       jmp      SHORT G_M36608_IG08\n\u002B       jmp      SHORT G_M36608_IG05\n \t\t\t\t\t\t;; size=16 bbWeight=0.50 PerfScore 5.50\n-G_M36608_IG07:\n\u002BG_M36608_IG04:\n        mov      rcx, 0xD1FFAB1E      ; const ptr\n        mov      rcx, gword ptr [rcx]\n-       mov      rdi, r14\n\u002B       mov      rdi, r15\n        xor      rsi, rsi\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Expressions.Expression:Lambda(System.Linq.Expressions.Expression,System.String,bool,System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.ParameterExpression]):System.Linq.Expressions.LambdaExpression\n        call     [rax]System.Linq.Expressions.Expression:Lambda(System.Linq.Expressions.Expression,System.String,bool,System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.ParameterExpression]):System.Linq.Expressions.LambdaExpression\n        mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Expressions.LambdaExpression:Compile():System.Delegate:this\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.Linq.Expressions.LambdaExpression:Compile():System.Delegate:this\n        mov      rdi, rax\n        mov      rsi, 0xD1FFAB1E      ; const ptr\n        mov      rsi, gword ptr [rsi]\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x20]System.Delegate:DynamicInvokeImpl(System.Object[]):System.Object:this\n        mov      rdi, rax\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x08]System.Object:ToString():System.String:this\n \t\t\t\t\t\t;; size=88 bbWeight=0.50 PerfScore 14.25\n-G_M36608_IG08:\n\u002BG_M36608_IG05:\n        mov      r15d, dword ptr [rbx\u002B0x10]\n        mov      r14, gword ptr [rbx\u002B0x08]\n        cmp      dword ptr [r14\u002B0x08], r15d\n-       ja       SHORT G_M36608_IG10\n\u002B       ja       SHORT G_M36608_IG07\n \t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 7.00\n-G_M36608_IG09:\n\u002BG_M36608_IG06:\n        mov      rdi, rbx\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Stack\u00601[System.__Canon]:PushWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.Stack\u00601[System.__Canon]:PushWithResize(System.__Canon):this\n-       jmp      SHORT G_M36608_IG11\n\u002B       jmp      SHORT G_M36608_IG08\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 2.88\n-G_M36608_IG10:\n\u002BG_M36608_IG07:\n        mov      edi, r15d\n        lea      rdi, bword ptr [r14\u002B8*rdi\u002B0x10]\n        mov      rsi, rax\n        call     CORINFO_HELP_ASSIGN_REF\n        inc      dword ptr [rbx\u002B0x14]\n        inc      r15d\n        mov      dword ptr [rbx\u002B0x10], r15d\n \t\t\t\t\t\t;; size=26 bbWeight=0.50 PerfScore 3.38\n-G_M36608_IG11:\n\u002BG_M36608_IG08:\n        add      rsp, 8\n        pop      rbx\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M36608_IG12:\n\u002BG_M36608_IG09:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M36608_IG13:\n\u002BG_M36608_IG10:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 373, prolog size 18, PerfScore 71.00, instruction count 97, allocated bytes for code 373 (MethodHash=2ec270ff) for method Nest.FieldExpressionVisitor:VisitConstantOrVariable(System.Linq.Expressions.MethodCallExpression,System.Collections.Generic.Stack\u00601[System.String]) (FullOpts)\n\u002B; Total bytes of code 318, prolog size 18, PerfScore 63.00, instruction count 83, allocated bytes for code 318 (MethodHash=2ec270ff) for method Nest.FieldExpressionVisitor:VisitConstantOrVariable(System.Linq.Expressions.MethodCallExpression,System.Collections.Generic.Stack\u00601[System.String]) (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":373,"DiffBytes":318},{"Assembly":"OpenAI.dasm","Method":"OpenAI.Images.ImageClient\u002B\u003CGenerateImageAsync\u003Ed__12:MoveNext():this (FullOpts)","Category":"improvement","Description":"977 -\u003E 925 bytes (-52)","ExtraInfo":null,"Diff":"@@ -9,10 \u002B9,10 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T00] ( 28, 25   )   byref  -\u003E  [rbp-0x48]  this EH-live single-def\n-;  V01 loc0         [V01,T03] (  7,  7   )     int  -\u003E  [rbp-0x24]  do-not-enreg[M] EH-live\n\u002B;  V01 loc0         [V01,T02] (  7,  7   )     int  -\u003E  [rbp-0x24]  do-not-enreg[M] EH-live\n ;  V02 loc1         [V02,T09] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003COpenAI.Images.ImageClient\u003E\n ;  V03 loc2         [V03,T10] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]\u003E\n-;  V04 loc3         [V04,T19] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u003E\n\u002B;  V04 loc3         [V04,T18] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u003E\n ;* V05 loc4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u003CSystem.Nullable\u00601[int]\u003E\n ;  V06 loc5         [V06    ] ( 10, 10   )  struct (16) [rbp-0x38]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.ClientModel.ClientResult]\u003E\n ;* V07 loc6         [V07    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[System.ClientModel.ClientResult]\u003E\n@@ -21,16 \u002B21,16 @@\n ;* V10 tmp1         [V10    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;* V11 tmp2         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003COpenAI.Images.GeneratedImage\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.ClientModel.BinaryContent\u003E\n-;  V13 tmp4         [V13,T12] (  2,  4   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V13 tmp4         [V13,T11] (  2,  4   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n ;* V14 tmp5         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003COpenAI.Images.ImageGenerationOptions\u003E\n-;  V15 tmp6         [V15,T28] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n-;  V16 tmp7         [V16,T04] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Images.ImageGenerationOptions\u003E\n-;  V17 tmp8         [V17,T13] (  2,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.ClientModel.Primitives.ModelReaderWriterOptions\u003E\n\u002B;  V15 tmp6         [V15,T27] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V16 tmp7         [V16,T03] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Images.ImageGenerationOptions\u003E\n\u002B;  V17 tmp8         [V17,T12] (  2,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.ClientModel.Primitives.ModelReaderWriterOptions\u003E\n ;* V18 tmp9         [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp10        [V19,T26] (  2,  2   )     ref  -\u003E  r14        \n-;  V20 tmp11        [V20,T05] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ClientModel.BinaryContent\u002BModelBinaryContent\u00601[OpenAI.Images.ImageGenerationOptions]\u003E\n\u002B;  V19 tmp10        [V19,T24] (  2,  2   )     ref  -\u003E  r14        \n\u002B;  V20 tmp11        [V20,T04] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ClientModel.BinaryContent\u002BModelBinaryContent\u00601[OpenAI.Images.ImageGenerationOptions]\u003E\n ;* V21 tmp12        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V22 tmp13        [V22,T06] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult]\u003E\n\u002B;  V22 tmp13        [V22,T05] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult]\u003E\n ;* V23 tmp14        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V24 tmp15        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V25 tmp16        [V25    ] (  0,  0   )     int  -\u003E  zero-ref    single-def\n@@ -38,22 \u002B38,22 @@\n ;* V27 tmp18        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult]\u003E\n ;* V28 tmp19        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.ClientModel.ClientResult]\u003E\n ;* V29 tmp20        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult]\u003E\n-;* V30 tmp21        [V30,T27] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V31 tmp22        [V31,T14] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;* V30 tmp21        [V30,T26] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V31 tmp22        [V31,T13] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V33 tmp24        [V33    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V35 tmp26        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Runtime.CompilerServices.IAsyncStateMachineBox\u003E\n-;  V36 tmp27        [V36,T07] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n-;  V37 tmp28        [V37,T15] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n-;  V38 tmp29        [V38,T01] (  4,  8   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Images.GeneratedImageCollection\u003E\n-;  V39 tmp30        [V39    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V40 tmp31        [V40,T20] (  3,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003COpenAI.Images.GeneratedImage\u003E\n-;  V41 tmp32        [V41,T11] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[OpenAI.Images.GeneratedImage]\u003E\n\u002B;  V36 tmp27        [V36,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;  V37 tmp28        [V37,T14] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;  V38 tmp29        [V38,T07] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Images.GeneratedImageCollection\u003E\n\u002B;  V39 tmp30        [V39    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V40 tmp31        [V40,T25] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003COpenAI.Images.GeneratedImage\u003E\n\u002B;* V41 tmp32        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[OpenAI.Images.GeneratedImage]\u003E\n ;  V42 tmp33        [V42,T08] (  3,  6   )   byref  -\u003E  r15         single-def \u0022Inlining Arg\u0022\n-;  V43 tmp34        [V43,T21] (  3,  3   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]\u003E\n\u002B;  V43 tmp34        [V43,T19] (  3,  3   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]\u003E\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    ld-addr-op class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]\u003E\n-;  V45 tmp36        [V45,T02] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]\u003E\n\u002B;  V45 tmp36        [V45,T01] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]\u003E\n ;* V46 tmp37        [V46    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]\u003E\n ;* V48 tmp39        [V48    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n@@ -64,13 \u002B64,13 @@\n... diff truncated; middle omitted ...\n\u002B       mov      rdx, gword ptr [rbx\u002B0x08]\n        mov      rdi, 0xD1FFAB1E      ; System.ClientModel.ClientResult:FromValue[OpenAI.Images.GeneratedImage](OpenAI.Images.GeneratedImage,System.ClientModel.Primitives.PipelineResponse):System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]\n        mov      rax, 0xD1FFAB1E      ; code for System.ClientModel.ClientResult:FromValue[System.__Canon](System.__Canon,System.ClientModel.Primitives.PipelineResponse):System.ClientModel.ClientResult\u00601[System.__Canon]\n        call     [rax]System.ClientModel.ClientResult:FromValue[System.__Canon](System.__Canon,System.ClientModel.Primitives.PipelineResponse):System.ClientModel.ClientResult\u00601[System.__Canon]\n        mov      rbx, rax\n-       jmp      G_M26361_IG16\n-\t\t\t\t\t\t;; size=37 bbWeight=1 PerfScore 8.00\n-G_M26361_IG12:\n\u002B       jmp      G_M26361_IG14\n\u002B\t\t\t\t\t\t;; size=98 bbWeight=1 PerfScore 20.00\n\u002BG_M26361_IG10:\n        mov      r15, gword ptr [rdi\u002B0x18]\n        mov      rdi, gword ptr [rdi\u002B0x30]\n        mov      rax, 0xD1FFAB1E      ; code for OpenAI.CancellationTokenExtensions:ToRequestOptions(System.Threading.CancellationToken):System.ClientModel.Primitives.RequestOptions\n@@ -219,16 \u002B202,16 @@ G_M26361_IG12:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x30], edi\n        test     byte  ptr [rbp-0x30], 4\n-       jne      SHORT G_M26361_IG13\n\u002B       jne      SHORT G_M26361_IG11\n        mov      rdi, gword ptr [rbp-0x38]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M26361_IG08\n \t\t\t\t\t\t;; size=73 bbWeight=1 PerfScore 25.25\n-G_M26361_IG13:\n\u002BG_M26361_IG11:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x24], edi\n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M26361_IG14:\n\u002BG_M26361_IG12:\n        mov      rbx, bword ptr [rbp-0x48]\n        mov      dword ptr [rbx\u002B0x20], edi\n        lea      rdi, bword ptr [rbx\u002B0x38]\n@@ -246,31 \u002B229,31 @@ G_M26361_IG14:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.ClientModel.ClientResult]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      SHORT G_M26361_IG17\n\u002B       jmp      SHORT G_M26361_IG15\n \t\t\t\t\t\t;; size=86 bbWeight=1 PerfScore 17.00\n-G_M26361_IG15:\n\u002BG_M26361_IG13:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M26361_IG16:\n\u002BG_M26361_IG14:\n        cmp      dword ptr [rbp-0x24], 0\n-       jge      SHORT G_M26361_IG18\n\u002B       jge      SHORT G_M26361_IG16\n        mov      rdi, bword ptr [rbp-0x48]\n        mov      r11, gword ptr [rdi\u002B0x18]\n        test     r11, r11\n-       je       SHORT G_M26361_IG18\n\u002B       je       SHORT G_M26361_IG16\n        mov      rdi, r11\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n-       jmp      SHORT G_M26361_IG18\n\u002B       jmp      SHORT G_M26361_IG16\n \t\t\t\t\t\t;; size=37 bbWeight=1 PerfScore 11.75\n-G_M26361_IG17:\n-       call     G_M26361_IG26\n-       jmp      G_M26361_IG23\n\u002BG_M26361_IG15:\n\u002B       call     G_M26361_IG24\n\u002B       jmp      G_M26361_IG21\n \t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.00\n-G_M26361_IG18:\n\u002BG_M26361_IG16:\n        mov      rdi, bword ptr [rbp-0x48]\n        mov      dword ptr [rdi\u002B0x20], -2\n        xor      rsi, rsi\n@@ -278,16 \u002B261,16 @@ G_M26361_IG18:\n        lea      r15, bword ptr [rdi\u002B0x28]\n        mov      rsi, gword ptr [r15]\n        test     rsi, rsi\n-       je       SHORT G_M26361_IG19\n\u002B       je       SHORT G_M26361_IG17\n        mov      rdx, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n-       jmp      SHORT G_M26361_IG23\n\u002B       jmp      SHORT G_M26361_IG21\n \t\t\t\t\t\t;; size=56 bbWeight=1 PerfScore 12.75\n-G_M26361_IG19:\n\u002BG_M26361_IG17:\n        test     rbx, rbx\n-       je       SHORT G_M26361_IG20\n\u002B       je       SHORT G_M26361_IG18\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -295,26 \u002B278,26 @@ G_M26361_IG19:\n        lea      rdi, bword ptr [r14\u002B0x38]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      SHORT G_M26361_IG22\n\u002B       jmp      SHORT G_M26361_IG20\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 7.50\n-G_M26361_IG20:\n\u002BG_M26361_IG18:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       SHORT G_M26361_IG25\n\u002B       je       SHORT G_M26361_IG23\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 3.25\n-G_M26361_IG21:\n\u002BG_M26361_IG19:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]:s_defaultResultTask\n        mov      r14, gword ptr [rdi]\n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 2.25\n-G_M26361_IG22:\n\u002BG_M26361_IG20:\n        mov      rdi, r15\n        mov      rsi, r14\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 1.50\n-G_M26361_IG23:\n\u002BG_M26361_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M26361_IG24:\n\u002BG_M26361_IG22:\n        add      rsp, 48\n        pop      rbx\n        pop      r13\n@@ -323,34 \u002B306,34 @@ G_M26361_IG24:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n-G_M26361_IG25:\n\u002BG_M26361_IG23:\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      SHORT G_M26361_IG21\n\u002B       jmp      SHORT G_M26361_IG19\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M26361_IG26:\n\u002BG_M26361_IG24:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 1.00\n-G_M26361_IG27:\n\u002BG_M26361_IG25:\n        cmp      dword ptr [rbp-0x24], 0\n-       jge      SHORT G_M26361_IG28\n\u002B       jge      SHORT G_M26361_IG26\n        mov      r15, bword ptr [rbp-0x48]\n        mov      rdi, gword ptr [r15\u002B0x18]\n        test     rdi, rdi\n-       je       SHORT G_M26361_IG28\n\u002B       je       SHORT G_M26361_IG26\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        nop      \n \t\t\t\t\t\t;; size=33 bbWeight=1 PerfScore 9.75\n-G_M26361_IG28:\n\u002BG_M26361_IG26:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M26361_IG29:\n\u002BG_M26361_IG27:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M26361_IG30:\n\u002BG_M26361_IG28:\n        mov      rdx, rdi\n        mov      r15, bword ptr [rbp-0x48]\n        mov      dword ptr [r15\u002B0x20], -2\n@@ -360,12 \u002B343,12 @@ G_M26361_IG30:\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n-       lea      rax, G_M26361_IG23\n\u002B       lea      rax, G_M26361_IG21\n \t\t\t\t\t\t;; size=54 bbWeight=0 PerfScore 0.00\n-G_M26361_IG31:\n\u002BG_M26361_IG29:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 977, prolog size 37, PerfScore 209.08, instruction count 230, allocated bytes for code 977 (MethodHash=02d69906) for method OpenAI.Images.ImageClient\u002B\u003CGenerateImageAsync\u003Ed__12:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 925, prolog size 37, PerfScore 194.08, instruction count 217, allocated bytes for code 925 (MethodHash=02d69906) for method OpenAI.Images.ImageClient\u002B\u003CGenerateImageAsync\u003Ed__12:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":977,"DiffBytes":925},{"Assembly":"Pipelines.Sockets.Unofficial.dasm","Method":"Pipelines.Sockets.Unofficial.Threading.MutexSlim\u002BSyncPendingLockToken:ResetPerThreadLockObject() (FullOpts)","Category":"same-size","Description":"71 -\u003E 71 bytes (0)","ExtraInfo":null,"Diff":"@@ -1,48 \u002B1,48 @@\n ; Assembly listing for method Pipelines.Sockets.Unofficial.Threading.MutexSlim\u002BSyncPendingLockToken:ResetPerThreadLockObject() (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; Final local variable assignments\n ;\n ;# V00 OutArgs      [V00    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V01 rat0         [V01,T02] (  3,  4   )   byref  -\u003E  rax         \u0022TLS field access\u0022\n ;  V02 rat1         [V02,T01] (  3,  6   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;  V03 rat2         [V03,T00] (  3,  6   )   byref  -\u003E  rax         \u0022ThreadStaticBlockBase access\u0022\n ;\n ; Lcl frame size = 0\n \n G_M37529_IG01:\n        push     rbp\n        mov      rbp, rsp\n \t\t\t\t\t\t;; size=4 bbWeight=1 PerfScore 1.25\n G_M37529_IG02:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       cmp      dword ptr [rax], 13\n\u002B       cmp      dword ptr [rax], 12\n        jle      SHORT G_M37529_IG05\n        mov      rdi, gword ptr [rax\u002B0x08]\n-       mov      rax, bword ptr [rdi\u002B0x68]\n\u002B       mov      rax, bword ptr [rdi\u002B0x60]\n        test     rax, rax\n        je       SHORT G_M37529_IG05\n \t\t\t\t\t\t;; size=40 bbWeight=1 PerfScore 11.75\n G_M37529_IG03:\n        xor      rcx, rcx\n        mov      gword ptr [rax\u002B0x10], rcx\n \t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 1.25\n G_M37529_IG04:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=2 bbWeight=1 PerfScore 1.50\n G_M37529_IG05:\n-       mov      edi, 13\n\u002B       mov      edi, 12\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED\n        call     [rax]CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED\n        jmp      SHORT G_M37529_IG03\n \t\t\t\t\t\t;; size=19 bbWeight=0 PerfScore 0.00\n \n ; Total bytes of code 71, prolog size 4, PerfScore 15.75, instruction count 19, allocated bytes for code 71 (MethodHash=0c8a6d66) for method Pipelines.Sockets.Unofficial.Threading.MutexSlim\u002BSyncPendingLockToken:ResetPerThreadLockObject() (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":71,"DiffBytes":71},{"Assembly":"Pomelo.EntityFrameworkCore.MySql.dasm","Method":"Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitSqlConstant(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlConstantExpression):System.Linq.Expressions.Expression:this (FullOpts)","Category":"improvement","Description":"308 -\u003E 110 bytes (-198)","ExtraInfo":null,"Diff":"@@ -1,119 \u002B1,55 @@\n ; Assembly listing for method Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitSqlConstant(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlConstantExpression):System.Linq.Expressions.Expression:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 0 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T01] (  4,  3.50)     ref  -\u003E  r15         this class-hnd single-def \u003CPomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor\u003E\n-;  V01 arg1         [V01,T00] (  9,  6   )     ref  -\u003E  rbx         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlConstantExpression\u003E\n\u002B;  V00 this         [V00,T00] (  3,  3   )     ref  -\u003E  rdi         this class-hnd single-def \u003CPomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor\u003E\n\u002B;  V01 arg1         [V01,T01] (  4,  4   )     ref  -\u003E  rsi         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlConstantExpression\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V03 tmp1         [V03,T09] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;* V04 tmp2         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V05 tmp3         [V05,T02] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Boolean\u003E\n-;  V06 tmp4         [V06,T03] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impImportAndPushBox\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.ISqlExpressionFactory\u003E\n-;  V07 tmp5         [V07,T04] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022impImportAndPushBox\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.ISqlExpressionFactory\u003E\n-;  V08 tmp6         [V08,T05] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V09 tmp7         [V09,T06] (  2,  2   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V10 cse0         [V10,T07] (  3,  1.50)     ref  -\u003E  rdi         \u0022CSE #03: aggressive\u0022\n-;  V11 cse1         [V11,T08] (  3,  1.50)    long  -\u003E  r14         \u0022CSE #02: aggressive\u0022\n\u002B;  V03 tmp1         [V03,T02] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;* V04 tmp2         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlConstantExpression\u003E\n ;\n ; Lcl frame size = 8\n \n G_M9903_IG01:\n        push     rbp\n-       push     r15\n-       push     r14\n        push     rbx\n        push     rax\n-       lea      rbp, [rsp\u002B0x20]\n-       mov      r15, rdi\n-       mov      rbx, rsi\n-\t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 6.00\n\u002B       lea      rbp, [rsp\u002B0x10]\n\u002B\t\t\t\t\t\t;; size=8 bbWeight=1 PerfScore 3.50\n G_M9903_IG02:\n-       test     rbx, rbx\n-       je       G_M9903_IG08\n-       cmp      byte  ptr [r15\u002B0x10], 0\n\u002B       test     rsi, rsi\n        je       SHORT G_M9903_IG04\n-\t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 4.25\n\u002B       cmp      byte  ptr [rdi], dil\n\u002B       mov      rax, rsi\n\u002B\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.50\n G_M9903_IG03:\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; Microsoft.EntityFrameworkCore.Query.SqlExpressions.ColumnExpression\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M9903_IG04\n-       mov      rdi, rbx\n-       mov      r14, qword ptr [rbx]\n-       mov      rax, qword ptr [r14\u002B0x48]\n-       call     [rax\u002B0x10]Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:get_TypeMapping():Microsoft.EntityFrameworkCore.Storage.RelationalTypeMapping:this\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; Pomelo.EntityFrameworkCore.MySql.Storage.Internal.MySqlBoolTypeMapping\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M9903_IG04\n-       mov      rdi, rbx\n-       mov      rax, qword ptr [r14\u002B0x40]\n-       call     [rax\u002B0x28]System.Linq.Expressions.Expression:get_Type():System.Type:this\n-       mov      rdi, 0xD1FFAB1E      ; \u0027System.Boolean\u0027\n-       cmp      rax, rdi\n-       je       SHORT G_M9903_IG06\n-\t\t\t\t\t\t;; size=98 bbWeight=0.50 PerfScore 12.00\n-G_M9903_IG04:\n-       mov      rax, rbx\n-\t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M9903_IG05:\n        add      rsp, 8\n        pop      rbx\n-       pop      r14\n-       pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 1.62\n-G_M9903_IG06:\n-       mov      rdi, 0xD1FFAB1E      ; System.Boolean\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      rdi, gword ptr [r15\u002B0x08]\n-       mov      r15, rdi\n-       mov      byte  ptr [rax\u002B0x08], 1\n-       mov      rsi, rax\n-       mov      r11, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Constant(System.Object,Microsoft.EntityFrameworkCore.Storage.RelationalTypeMapping):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-       xor      rdx, rdx\n-       call     [r11]Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Constant(System.Object,Microsoft.EntityFrameworkCore.Storage.RelationalTypeMapping):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-       mov      rdx, rax\n-       mov      rdi, r15\n-       mov      rsi, rbx\n-       mov      r11, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Equal(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-       cmp      dword ptr [rdi], edi\n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 5.62\n-G_M9903_IG07:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [r11]Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Equal(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-\t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 2.12\n-G_M9903_IG08:\n\u002B\t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.25\n\u002BG_M9903_IG04:\n        mov      rdi, 0xD1FFAB1E      ; \u0027sqlConstantExpression\u0027\n        mov      rsi, 0xD1FFAB1E      ; \u0027parameterName\u0027\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Utilities.Check:NotEmpty(System.String,System.String):System.String\n        call     [rax]Microsoft.EntityFrameworkCore.Utilities.Check:NotEmpty(System.String,System.String):System.String\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; \u0027sqlConstantExpression\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:.ctor(System.String):this\n        call     [rax]System.ArgumentNullException:.ctor(System.String):this\n        mov      rdi, rbx\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=84 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 308, prolog size 12, PerfScore 31.75, instruction count 75, allocated bytes for code 308 (MethodHash=a21ed950) for method Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitSqlConstant(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlConstantExpression):System.Linq.Expressions.Expression:this (FullOpts)\n\u002B; Total bytes of code 110, prolog size 8, PerfScore 9.25, instruction count 26, allocated bytes for code 110 (MethodHash=a21ed950) for method Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitSqlConstant(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlConstantExpression):System.Linq.Expressions.Expression:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":308,"DiffBytes":110},{"Assembly":"SharpCompress.dasm","Method":"SharpCompress.IO.SourceStream:LoadStream(int):bool:this (FullOpts)","Category":"improvement","Description":"901 -\u003E 849 bytes (-52)","ExtraInfo":null,"Diff":"@@ -20,42 \u002B20,42 @@\n ;* V09 tmp4         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Func\u00602[int,System.IO.FileInfo]\u003E\n ;  V10 tmp5         [V10,T03] (  7, 28   )     ref  -\u003E  r14         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[System.IO.Stream]\u003E\n ;  V11 tmp6         [V11,T06] (  4, 16   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[int,System.IO.FileInfo]\u003E\n-;  V12 tmp7         [V12,T27] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V12 tmp7         [V12,T26] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n ;* V13 tmp8         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.IO.Stream]\u003E\n ;* V14 tmp9         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.IO.Stream]\u003E\n ;  V15 tmp10        [V15,T04] (  7, 28   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.IO.FileInfo]\u003E\n-;  V16 tmp11        [V16,T20] (  3,  6   )     ref  -\u003E  r14         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.IO.FileInfo[]\u003E\n-;  V17 tmp12        [V17,T16] (  4,  8   )     int  -\u003E  r13         \u0022Inline stloc first use temp\u0022\n-;  V18 tmp13        [V18,T07] (  4, 16   )     ref  -\u003E  r13         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.IO.FileInfo]\u003E\n-;  V19 tmp14        [V19    ] (  3,  6   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V16 tmp11        [V16,T19] (  3,  6   )     ref  -\u003E  r14         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.IO.FileInfo[]\u003E\n\u002B;  V17 tmp12        [V17,T15] (  4,  8   )     int  -\u003E  r13         \u0022Inline stloc first use temp\u0022\n\u002B;  V18 tmp13        [V18,T09] (  3, 12   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.IO.FileInfo]\u003E\n\u002B;  V19 tmp14        [V19    ] (  2,  4   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V20 tmp15        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V21 tmp16        [V21,T21] (  3,  6   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.IO.FileInfo\u003E\n-;  V22 tmp17        [V22,T15] (  4,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.IO.FileInfo]\u003E\n-;  V23 tmp18        [V23,T22] (  3,  6   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.IO.Stream[]\u003E\n-;  V24 tmp19        [V24,T17] (  4,  8   )     int  -\u003E  r13         \u0022Inline stloc first use temp\u0022\n\u002B;  V21 tmp16        [V21,T23] (  2,  4   )     ref  -\u003E  rdi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.IO.FileInfo\u003E\n\u002B;* V22 tmp17        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.IO.FileInfo]\u003E\n\u002B;  V23 tmp18        [V23,T20] (  3,  6   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.IO.Stream[]\u003E\n\u002B;  V24 tmp19        [V24,T16] (  4,  8   )     int  -\u003E  r13         \u0022Inline stloc first use temp\u0022\n ;  V25 tmp20        [V25,T10] (  3, 12   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.IO.FileStream\u003E\n-;  V26 tmp21        [V26,T08] (  4, 16   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[int,System.IO.Stream]\u003E\n-;  V27 tmp22        [V27,T28] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V26 tmp21        [V26,T07] (  4, 16   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[int,System.IO.Stream]\u003E\n\u002B;  V27 tmp22        [V27,T27] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n ;* V28 tmp23        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.IO.Stream]\u003E\n ;* V29 tmp24        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.IO.Stream]\u003E\n ;  V30 tmp25        [V30,T05] (  7, 28   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.IO.Stream]\u003E\n-;  V31 tmp26        [V31,T23] (  3,  6   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.IO.Stream[]\u003E\n-;  V32 tmp27        [V32,T18] (  4,  8   )     int  -\u003E  r13         \u0022Inline stloc first use temp\u0022\n-;  V33 tmp28        [V33,T09] (  4, 16   )     ref  -\u003E  r14         class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V31 tmp26        [V31,T21] (  3,  6   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.IO.Stream[]\u003E\n\u002B;  V32 tmp27        [V32,T17] (  4,  8   )     int  -\u003E  r13         \u0022Inline stloc first use temp\u0022\n\u002B;  V33 tmp28        [V33,T08] (  4, 16   )     ref  -\u003E  r14         class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V34 tmp29        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V35 tmp30        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V36 tmp31        [V36,T29] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V36 tmp31        [V36,T28] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n ;* V37 tmp32        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.IO.FileInfo\u003E\n ;* V38 tmp33        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V39 tmp34        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V40 tmp35        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V41 tmp36        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V42 tmp37        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V43 tmp38        [V43,T24] (  3,  6   )     ref  -\u003E  r14         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.IO.FileInfo[]\u003E\n-;  V44 tmp39        [V44,T19] (  4,  8   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n\u002B;  V43 tmp38        [V43,T22] (  3,  6   )     ref  -\u003E  r14         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.IO.FileInfo[]\u003E\n\u002B;  V44 tmp39        [V44,T18] (  4,  8   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n ;* V45 tmp40        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.IO.Stream]\u003E\n-;  V46 cse0         [V46,T25] (  2,  4   )     int  -\u003E  rsi         \u0022CSE #01: moderate\u0022\n-;  V47 cse1         [V47,T26] (  2,  4   )     int  -\u003E  rdi         \u0022CSE #04: moderate\u0022\n\u002B;  V46 cse0         [V46,T24] (  2,  4   )     int  -\u003E  rsi         \u0022CSE #01: moderate\u0022\n\u002B;  V47 cse1         [V47,T25] (  2,  4   )     int  -\u003E  rdi         \u0022CSE #04: moderate\u0022\n ;\n ; Lcl frame size = 8\n \n@@ -76,7 \u002B76,7 @@ G_M281_IG01:\n G_M281_IG02:\n        mov      rsi, gword ptr [rbx\u002B0x18]\n        cmp      dword ptr [rsi\u002B0x10], r15d\n-       jg       G_M281_IG15\n\u002B       jg       G_M281_IG13\n \t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 5.00\n G_M281_IG03:\n        cmp      byte  ptr [rbx\u002B0x45], 0\n@@ -85,14 \u002B85,14 @@ G_M281_IG03:\n G_M281_IG04:\n        mov      rax, gword ptr [rbx\u002B0x28]\n        test     rax, rax\n-       je       G_M281_IG22\n\u002B       je       G_M281_IG20\n        mov      rsi, gword ptr [rbx\u002B0x18]\n        mov      esi, dword ptr [rsi\u002B0x10]\n        mov      rdi, gword ptr [rax\u002B0x10]\n        call     [rax\u002B0x18]System.Func\u00602[int,System.__Canon]:Invoke(int):System.__Canon:this\n        mov      r14, rax\n        test     r14, r14\n-       je       G_M281_IG17\n\u002B       je       G_M281_IG15\n        mov      rdi, gword ptr [rbx\u002B0x18]\n        inc      dword ptr [rdi\u002B0x14]\n        mov      rax, gword ptr [rdi\u002B0x08]\n@@ -120,7 \u002B120,7 @@ G_M281_IG06:\n        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        mov      r14, rax\n        test     r14, r14\n-       je       G_M281_IG14\n\u002B       je       G_M281_IG12\n        mov      r13, gword ptr [rbx\u002B0x10]\n        mov      rdi, 0xD1FFAB1E      ; System.IO.FileInfo\n        call     CORINFO_HELP_NEWSFAST\n@@ -131,7 \u002B131,7 @@ G_M281_IG06:\n        call     [rax\u002B0x30]System.IO.FileStream:get_Name():System.String:this\n        mov      r14, rax\n        test     r14, r14\n-       je       G_M281_IG23\n\u002B       je       G_M281_IG21\n        mov      byte  ptr [r12\u002B0x29], 0\n        lea      rdi, bword ptr [r12\u002B0x10]\n        mov      rsi, r14\n@@ -154,7 \u002B154,7 @@ G_M281_IG06:\n        mov      rsi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n-       jmp      G_M281_IG14\n\u002B       jmp      G_M281_IG12\n \t\t\t\t\t\t;; size=181 bbWeight=2 PerfScore 85.50\n G_M281_IG07:\n        lea      edi, [rax\u002B0x01]\n@@ -163,18 \u002B163,18 @@ G_M281_IG07:\n        lea      rdi, bword ptr [r14\u002B8*rdi\u002B0x10]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M281_IG14\n\u002B       jmp      G_M281_IG12\n \t\t\t\t\t\t;; size=27 bbWeight=2 PerfScore 12.00\n G_M281_IG08:\n        mov      rax, gword ptr [rbx\u002B0x20]\n        test     rax, rax\n-       je       G_M281_IG19\n\u002B       je       G_M281_IG17\n        mov      rsi, gword ptr [rbx\u002B0x18]\n        mov      esi, dword ptr [rsi\u002B0x10]\n        mov      rdi, gword ptr [rax\u002B0x10]\n        call     [rax\u002B0x18]System.Func\u00602[int,System.__Canon]:Invoke(int):System.__Canon:this\n        test     rax, rax\n-       je       G_M281_IG17\n\u002B       je       G_M281_IG15\n        mov      rdi, gword ptr [rbx\u002B0x10]\n        inc      dword ptr [rdi\u002B0x14]\n        mov      r14, gword ptr [rdi\u002B0x08]\n@@ -197,33 \u002B197,16 @@ G_M281_IG09:\n \t\t\t\t\t\t;; size=23 bbWeight=2 PerfScore 8.00\n G_M281_IG10:\n        mov      r14, gword ptr [rbx\u002B0x18]\n-       mov      r13, gword ptr [rbx\u002B0x10]\n-       test     r13, r13\n-       je       G_M281_IG20\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.IO.FileInfo]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M281_IG11\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M281_IG12\n-\t\t\t\t\t\t;; size=66 bbWeight=2 PerfScore 40.00\n-G_M281_IG11:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x10]\n\u002B       test     rsi, rsi\n\u002B       je       G_M281_IG18\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.IO.FileInfo](System.Collections.Generic.IEnumerable\u00601[System.IO.FileInfo],byref):System.IO.FileInfo\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=2 PerfScore 8.50\n-G_M281_IG12:\n-       cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M281_IG21\n        mov      rdi, rax\n\u002B       cmp      byte  ptr [rbp-0x30], 0\n\u002B       je       G_M281_IG19\n        mov      rax, 0xD1FFAB1E      ; code for System.IO.FileInfo:OpenRead():System.IO.FileStream:this\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.IO.FileInfo:OpenRead():System.IO.FileStream:this\n@@ -231,14 \u002B214,14 @@ G_M281_IG12:\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r13d, dword ptr [r14\u002B0x10]\n        cmp      dword ptr [rdi\u002B0x08], r13d\n-       ja       SHORT G_M281_IG13\n\u002B       ja       SHORT G_M281_IG11\n        mov      rdi, r14\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n-       jmp      SHORT G_M281_IG14\n-\t\t\t\t\t\t;; size=65 bbWeight=2 PerfScore 46.50\n-G_M281_IG13:\n\u002B       jmp      SHORT G_M281_IG12\n\u002B\t\t\t\t\t\t;; size=108 bbWeight=2 PerfScore 65.00\n\u002BG_M281_IG11:\n        lea      esi, [r13\u002B0x01]\n        mov      dword ptr [r14\u002B0x10], esi\n        mov      esi, r13d\n@@ -246,14 \u002B229,31 @@ G_M281_IG13:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST\n        call     [rax]CORINFO_HELP_ARRADDR_ST\n \t\t\t\t\t\t;; size=26 bbWeight=2 PerfScore 10.50\n-G_M281_IG14:\n\u002BG_M281_IG12:\n        mov      rdi, gword ptr [rbx\u002B0x18]\n        cmp      dword ptr [rdi\u002B0x10], r15d\n        jle      G_M281_IG03\n \t\t\t\t\t\t;; size=14 bbWeight=4 PerfScore 20.00\n-G_M281_IG15:\n\u002BG_M281_IG13:\n        mov      eax, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 0.12\n\u002BG_M281_IG14:\n\u002B       add      rsp, 8\n\u002B       pop      rbx\n\u002B       pop      r12\n\u002B       pop      r13\n\u002B       pop      r14\n\u002B       pop      r15\n\u002B       pop      rbp\n\u002B       ret      \n\u002B\t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n\u002BG_M281_IG15:\n\u002B       mov      rax, gword ptr [rbx\u002B0x18]\n\u002B       mov      eax, dword ptr [rax\u002B0x10]\n\u002B       dec      eax\n\u002B       mov      dword ptr [rbx\u002B0x40], eax\n\u002B       xor      eax, eax\n\u002B\t\t\t\t\t\t;; size=14 bbWeight=0.50 PerfScore 2.75\n G_M281_IG16:\n        add      rsp, 8\n        pop      rbx\n@@ -265,23 \u002B265,6 @@ G_M281_IG16:\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n G_M281_IG17:\n-       mov      rax, gword ptr [rbx\u002B0x18]\n-       mov      eax, dword ptr [rax\u002B0x10]\n-       dec      eax\n-       mov      dword ptr [rbx\u002B0x40], eax\n-       xor      eax, eax\n-\t\t\t\t\t\t;; size=14 bbWeight=0.50 PerfScore 2.75\n-G_M281_IG18:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       ret      \n-\t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M281_IG19:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -293,18 \u002B276,18 @@ G_M281_IG19:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M281_IG20:\n\u002BG_M281_IG18:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M281_IG21:\n\u002BG_M281_IG19:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M281_IG22:\n\u002BG_M281_IG20:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -316,7 \u002B299,7 @@ G_M281_IG22:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M281_IG23:\n\u002BG_M281_IG21:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -329,5 \u002B312,5 @@ G_M281_IG23:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 901, prolog size 22, PerfScore 400.38, instruction count 223, allocated bytes for code 901 (MethodHash=767cfee6) for method SharpCompress.IO.SourceStream:LoadStream(int):bool:this (FullOpts)\n\u002B; Total bytes of code 849, prolog size 22, PerfScore 370.38, instruction count 210, allocated bytes for code 849 (MethodHash=767cfee6) for method SharpCompress.IO.SourceStream:LoadStream(int):bool:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":901,"DiffBytes":849},{"Assembly":"SharpCompress.dasm","Method":"SharpCompress.Compressors.ZStandard.Unsafe.Methods:ZSTD_reset_matchState(ptr,ptr,ptr,int,int,int,int):nuint (FullOpts)","Category":"same-size","Description":"13,312 -\u003E 13,312 bytes (0)","ExtraInfo":null,"Diff":"@@ -4296,7 \u002B4296,7 @@ G_M41884_IG245:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-RWD00  \tdq\t0000753F25DFBD7Ah, 0000753F25DFBD78h, 0000753F25DFBD78h, 0000000200000002h\n\u002BRWD00  \tdq\t000072275C3FBD7Ah, 000072275C3FBD78h, 000072275C3FBD78h, 0000000200000002h\n \n \n ; Total bytes of code 13312, prolog size 19, PerfScore 658.88, instruction count 2790, allocated bytes for code 13312 (MethodHash=8fa35c63) for method SharpCompress.Compressors.ZStandard.Unsafe.Methods:ZSTD_reset_matchState(ptr,ptr,ptr,int,int,int,int):nuint (FullOpts)","Truncated":true,"BaseBytes":13312,"DiffBytes":13312},{"Assembly":"SkiaSharp.dasm","Method":"SkiaSharp.SKDrawable:.cctor() (FullOpts)","Category":"same-size","Description":"231 -\u003E 231 bytes (0)","ExtraInfo":null,"Diff":"@@ -1,95 \u002B1,95 @@\n ; Assembly listing for method SkiaSharp.SKDrawable:.cctor() (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; Final local variable assignments\n ;\n ;* V00 loc0         [V00    ] (  0,  0   )  struct (40) zero-ref    do-not-enreg[SF] ld-addr-op \u003CSkiaSharp.SKManagedDrawableDelegates\u003E\n ;  V01 OutArgs      [V01    ] (  1,  1   )  struct (40) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;  V02 FramesRoot   [V02,T00] (  6,  6   )    long  -\u003E  rbx         \u0022Pinvoke FrameListRoot\u0022\n ;  V03 PInvokeFrame [V03    ] (  8,  8   )  struct (56) [rbp-0x60]  do-not-enreg[XS] addr-exposed \u0022Pinvoke FrameVar\u0022 \u003CUNNAMED\u003E\n ;* V04 tmp3         [V04    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V00.[000..008)\u0022\n ;* V05 tmp4         [V05    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V00.[008..016)\u0022\n ;* V06 tmp5         [V06    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V00.[016..024)\u0022\n ;* V07 tmp6         [V07    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V00.[024..032)\u0022\n ;* V08 tmp7         [V08    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V00.[032..040)\u0022\n ;  V09 cse0         [V09,T01] (  3,  3   )    long  -\u003E  rax         \u0022CSE #01: aggressive\u0022\n ;\n ; Lcl frame size = 104\n \n G_M54578_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        sub      rsp, 104\n        lea      rbp, [rsp\u002B0x90]\n \t\t\t\t\t\t;; size=22 bbWeight=1 PerfScore 6.75\n G_M54578_IG02:\n        lea      rdi, [rbp-0x60]\n        call     CORINFO_HELP_INIT_PINVOKE_FRAME\n        mov      rbx, rax\n        mov      rax, rsp\n        mov      qword ptr [rbp-0x48], rax\n        mov      rax, rbp\n        mov      qword ptr [rbp-0x38], rax\n        mov      rax, 0xD1FFAB1E      ; static handle\n        mov      rcx, 0xD1FFAB1E\n        mov      qword ptr [rax], rcx\n        vmovups  ymm0, ymmword ptr [reloc @RWD00]\n        mov      rcx, 0xD1FFAB1E\n        vmovups  ymmword ptr [rcx], ymm0\n        vmovdqu  xmm0, xmmword ptr [rax]\n        vmovdqu  xmmword ptr [rsp], xmm0\n        vmovdqu  xmm0, xmmword ptr [rax\u002B0x10]\n        vmovdqu  xmmword ptr [rsp\u002B0x10], xmm0\n        mov      rcx, qword ptr [rax\u002B0x20]\n        mov      qword ptr [rsp\u002B0x20], rcx\n        mov      rax, 0xD1FFAB1E      ; function address\n        mov      qword ptr [rbp-0x50], rax\n        lea      rax, G_M54578_IG05\n        mov      qword ptr [rbp-0x40], rax\n        lea      rax, [rbp-0x60]\n        mov      qword ptr [rbx\u002B0x08], rax\n        mov      byte  ptr [rbx\u002B0x04], 0\n \t\t\t\t\t\t;; size=137 bbWeight=1 PerfScore 23.75\n G_M54578_IG03:\n        mov      rax, 0xD1FFAB1E      ; code for SkiaSharp.SkiaApi:sk_manageddrawable_set_procs(SkiaSharp.SKManagedDrawableDelegates)\n \t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 0.25\n G_M54578_IG04:\n        vzeroupper \n        call     [rax]SkiaSharp.SkiaApi:sk_manageddrawable_set_procs(SkiaSharp.SKManagedDrawableDelegates)\n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 4.00\n G_M54578_IG05:\n        mov      byte  ptr [rbx\u002B0x04], 1\n        mov      rcx, 0xD1FFAB1E      ; function address\n        cmp      dword ptr [rcx], 0\n        je       SHORT G_M54578_IG06\n        mov      rdi, 0xD1FFAB1E\n        call     [rdi]CORINFO_HELP_STOP_FOR_GC\n \t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.50\n G_M54578_IG06:\n        mov      rax, qword ptr [rbp-0x58]\n        mov      qword ptr [rbx\u002B0x08], rax\n \t\t\t\t\t\t;; size=8 bbWeight=1 PerfScore 2.00\n G_M54578_IG07:\n        vzeroupper \n        add      rsp, 104\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 5.25\n-RWD00  \tdq\t00007A20BCE83BE8h, 00007A20BCE83BA0h, 00007A20BCE83C00h, 00007A20BCE83BB8h\n\u002BRWD00  \tdq\t0000775E8EC93BE8h, 0000775E8EC93BA0h, 0000775E8EC93C00h, 0000775E8EC93BB8h\n \n \n ; Total bytes of code 231, prolog size 22, PerfScore 49.50, instruction count 54, allocated bytes for code 231 (MethodHash=68ea2acd) for method SkiaSharp.SKDrawable:.cctor() (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":231,"DiffBytes":231},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.BillSettings.VersionService:ListAutoPaging(System.String,Stripe.V2.Billing.BillSettings.VersionListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.BillSettingVersion]:this (FullOpts)","Category":"improvement","Description":"513 -\u003E 464 bytes (-49)","ExtraInfo":null,"Diff":"@@ -9,33 \u002B9,32 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T05] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.BillSettings.VersionService\u003E\n-;  V01 arg1         [V01,T08] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.BillSettings.VersionListOptions\u003E\n-;  V03 arg3         [V03,T07] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T07] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V02 arg2         [V02,T08] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.BillSettings.VersionListOptions\u003E\n\u002B;  V03 arg3         [V03,T06] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T11] (  3,  2   )     ref  -\u003E  r15         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.BillSettingVersion]\u003E\n ;  V06 tmp2         [V06,T02] (  4,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V07 tmp3         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V08 tmp4         [V08,T12] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;  V09 tmp5         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.BillSettingVersion]\u003E\n-;* V10 tmp6         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp8         [V12,T03] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.BillSettingVersion]\u003E\n-;  V13 tmp9         [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.BillSettingVersion]\u003E\n-;* V14 tmp10        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp11        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp12        [V16,T04] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.BillSettingVersion]\u003E\n-;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V07._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp14        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp15        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp16        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp17        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 tmp18        [V22,T09] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V23 cse0         [V23,T10] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #02: moderate\u0022\n-;  V24 rat0         [V24,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T15] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T16] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.BillSettingVersion]\u003E\n\u002B;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp6         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp7         [V11,T03] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.BillSettingVersion]\u003E\n\u002B;  V12 tmp8         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.BillSettingVersion]\u003E\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp11        [V15,T04] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.BillSettingVersion]\u003E\n\u002B;* V16 tmp12        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V07._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp14        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp15        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp16        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 tmp17        [V21,T09] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V22 cse0         [V22,T10] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #02: moderate\u0022\n\u002B;  V23 rat0         [V23,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T15] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n@@ -49,8 \u002B48,8 @@ G_M20107_IG01:\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rdx\n-       mov      r14, rcx\n\u002B       mov      r14, rdx\n\u002B       mov      r15, rcx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M20107_IG02:\n        mov      rdi, rsi\n@@ -69,49 \u002B68,41 @@ G_M20107_IG02:\n        je       G_M20107_IG04\n \t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 12.50\n G_M20107_IG03:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.BillSettingVersion]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n-       mov      eax, dword ptr [rax\u002B0x10]\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, dword ptr [rax\u002B0x10]\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x28]\n\u002B       lea      rdi, bword ptr [r14\u002B0x28]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.BillSettingVersion]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        mov      dword ptr [r15\u002B0x28], -2\n-       mov      r14d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r15\u002B0x2C], r14d\n\u002B       mov      dword ptr [r15\u002B0x2C], r12d\n        lea      rdi, bword ptr [r15\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M20107_IG05\n-\t\t\t\t\t\t;; size=212 bbWeight=0.50 PerfScore 16.00\n\u002B\t\t\t\t\t\t;; size=164 bbWeight=0.50 PerfScore 12.75\n G_M20107_IG04:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.BillSettingVersion]\n        call     CORINFO_HELP_NEWSFAST\n@@ -134,10 \u002B125,10 @@ G_M20107_IG04:\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n@@ -145,12 \u002B136,12 @@ G_M20107_IG04:\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        mov      dword ptr [r15\u002B0x28], -2\n-       mov      r14d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r15\u002B0x2C], r14d\n\u002B       mov      ebx, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r15\u002B0x2C], ebx\n        lea      rdi, bword ptr [r15\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=181 bbWeight=0.50 PerfScore 13.12\n\u002B\t\t\t\t\t\t;; size=180 bbWeight=0.50 PerfScore 13.12\n G_M20107_IG05:\n        mov      rax, r15\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n@@ -165,5 \u002B156,5 @@ G_M20107_IG06:\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 513, prolog size 16, PerfScore 54.38, instruction count 113, allocated bytes for code 513 (MethodHash=6d08b174) for method Stripe.V2.Billing.BillSettings.VersionService:ListAutoPaging(System.String,Stripe.V2.Billing.BillSettings.VersionListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.BillSettingVersion]:this (FullOpts)\n\u002B; Total bytes of code 464, prolog size 16, PerfScore 51.12, instruction count 105, allocated bytes for code 464 (MethodHash=6d08b174) for method Stripe.V2.Billing.BillSettings.VersionService:ListAutoPaging(System.String,Stripe.V2.Billing.BillSettings.VersionListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.BillSettingVersion]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":513,"DiffBytes":464},{"Assembly":"System.CommandLine.dasm","Method":"System.CommandLine.Argument\u00601[byte]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,byte]:this (FullOpts)","Category":"improvement","Description":"234 -\u003E 5 bytes (-229)","ExtraInfo":null,"Diff":"@@ -1,100 \u002B1,35 @@\n ; Assembly listing for method System.CommandLine.Argument\u00601[byte]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,byte]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] (  4,  3.50)     ref  -\u003E  rdi         this class-hnd single-def \u003CSystem.CommandLine.Argument\u00601[byte]\u003E\n-;  V01 loc0         [V01,T06] (  3,  1.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.CommandLine.Argument\u00601[bool]\u003E\n\u002B;  V00 this         [V00,T00] (  3,  3   )     ref  -\u003E  rdi         this class-hnd single-def \u003CSystem.CommandLine.Argument\u00601[byte]\u003E\n\u002B;* V01 loc0         [V01    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.CommandLine.Argument\u00601[bool]\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V03 tmp1         [V03,T05] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\u003E\n-;* V04 tmp2         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V05 tmp3         [V05,T04] (  4,  2   )     ref  -\u003E  rsi        \n-;  V06 tmp4         [V06,T01] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\u003E\n-;  V07 tmp5         [V07,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.CommandLine.Argument\u00601\u002B\u003C\u003Ec[byte]\u003E\n\u002B;* V03 tmp1         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\u003E\n\u002B;* V04 tmp2         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref   \n\u002B;* V05 tmp3         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref   \n\u002B;* V06 tmp4         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\u003E\n\u002B;* V07 tmp5         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.CommandLine.Argument\u00601\u002B\u003C\u003Ec[byte]\u003E\n ;* V08 tmp6         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.CommandLine.Argument\u00601[bool]\u003E\n ;* V09 tmp7         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\u003E\n-;* V10 cse0         [V10,T07] (  0,  0   )   byref  -\u003E  zero-ref    \u0022CSE #02: aggressive\u0022\n-;  V11 cse1         [V11,T03] (  3,  3   )     ref  -\u003E  rbx         \u0022CSE #04: aggressive\u0022\n\u002B;  V10 cse0         [V10,T01] (  2,  2   )     ref  -\u003E  rax         \u0022CSE #01: aggressive\u0022\n ;\n-; Lcl frame size = 8\n\u002B; Lcl frame size = 0\n \n G_M3031_IG01:\n-       push     rbp\n-       push     r15\n-       push     r14\n-       push     rbx\n-       push     rax\n-       lea      rbp, [rsp\u002B0x20]\n-\t\t\t\t\t\t;; size=12 bbWeight=1 PerfScore 5.50\n\u002B\t\t\t\t\t\t;; size=0 bbWeight=1 PerfScore 0.00\n G_M3031_IG02:\n-       mov      rbx, gword ptr [rdi\u002B0x60]\n-       test     rbx, rbx\n-       jne      G_M3031_IG06\n-\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.25\n\u002B       mov      rax, gword ptr [rdi\u002B0x60]\n\u002B\t\t\t\t\t\t;; size=4 bbWeight=1 PerfScore 2.00\n G_M3031_IG03:\n-       mov      rsi, rdi\n-       mov      rdi, 0xD1FFAB1E      ; System.CommandLine.Argument\u00601[bool]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n-       test     r15, r15\n-       je       SHORT G_M3031_IG06\n-       mov      rdi, 0xD1FFAB1E      ; global ptr\n-       test     byte  ptr [rdi], 1\n-       je       SHORT G_M3031_IG08\n-\t\t\t\t\t\t;; size=48 bbWeight=0.50 PerfScore 4.25\n-G_M3031_IG04:\n-       mov      rdi, 0xD1FFAB1E      ; data for System.CommandLine.Argument\u00601\u002B\u003C\u003Ec[byte]:\u003C\u003E9__4_0\n-       mov      rsi, gword ptr [rdi]\n-       test     rsi, rsi\n-       jne      SHORT G_M3031_IG05\n-       mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      rdi, 0xD1FFAB1E      ; data for System.CommandLine.Argument\u00601\u002B\u003C\u003Ec[byte]:\u003C\u003E9\n-       mov      rsi, gword ptr [rdi]\n-       test     rsi, rsi\n-       je       SHORT G_M3031_IG09\n-       lea      rdi, bword ptr [r14\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, 0xD1FFAB1E      ; code for System.CommandLine.Argument\u00601\u002B\u003C\u003Ec[byte]:\u003Cget_DefaultValueFactory\u003Eb__4_0(System.CommandLine.Parsing.ArgumentResult):bool:this\n-       mov      qword ptr [r14\u002B0x18], rdi\n-       mov      rdi, 0xD1FFAB1E      ; data for System.CommandLine.Argument\u00601\u002B\u003C\u003Ec[byte]:\u003C\u003E9__4_0\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rsi, r14\n-\t\t\t\t\t\t;; size=98 bbWeight=0.50 PerfScore 6.50\n-G_M3031_IG05:\n-       lea      rdi, bword ptr [r15\u002B0x60]\n-       call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 0.75\n-G_M3031_IG06:\n-       mov      rax, rbx\n-\t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M3031_IG07:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M3031_IG08:\n-       mov      rdi, 0xD1FFAB1E      ; System.CommandLine.Argument\u00601\u002B\u003C\u003Ec[byte]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M3031_IG04\n-\t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M3031_IG09:\n-       mov      rax, 0xD1FFAB1E      ; code for System.Delegate:ThrowNullThisInDelegateToInstance()\n-       call     [rax]System.Delegate:ThrowNullThisInDelegateToInstance()\n-       int3     \n-\t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n\u002B\t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 1.00\n \n-; Total bytes of code 234, prolog size 12, PerfScore 23.75, instruction count 54, allocated bytes for code 234 (MethodHash=9d53f428) for method System.CommandLine.Argument\u00601[byte]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,byte]:this (FullOpts)\n\u002B; Total bytes of code 5, prolog size 0, PerfScore 3.00, instruction count 2, allocated bytes for code 5 (MethodHash=9d53f428) for method System.CommandLine.Argument\u00601[byte]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,byte]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":234,"DiffBytes":5},{"Assembly":"System.Data.Common.dasm","Method":"System.Data.EnumerableRowCollectionExtensions:Select[double,System.Nullable\u00601[int]](System.Data.EnumerableRowCollection\u00601[double],System.Func\u00602[double,System.Nullable\u00601[int]]):System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]] (FullOpts)","Category":"regression","Description":"147 -\u003E 249 bytes (\u002B102)","ExtraInfo":null,"Diff":"@@ -1,66 \u002B1,94 @@\n ; Assembly listing for method System.Data.EnumerableRowCollectionExtensions:Select[double,System.Nullable\u00601[int]](System.Data.EnumerableRowCollection\u00601[double],System.Func\u00602[double,System.Nullable\u00601[int]]):System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]] (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n\u002B; 0 inlinees with PGO data; 4 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T00] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.EnumerableRowCollection\u00601[double]\u003E\n-;  V01 arg1         [V01,T01] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Func\u00602[double,System.Nullable\u00601[int]]\u003E\n-;  V02 loc0         [V02,T05] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V00 arg0         [V00,T04] (  3,  3   )     ref  -\u003E  rdi         class-hnd single-def \u003CSystem.Data.EnumerableRowCollection\u00601[double]\u003E\n\u002B;  V01 arg1         [V01,T01] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Func\u00602[double,System.Nullable\u00601[int]]\u003E\n\u002B;  V02 loc0         [V02,T07] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V04 tmp1         [V04,T02] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]]\u003E\n-;  V05 tmp2         [V05,T03] (  2,  4   )     ref  -\u003E  rbx         single-def \u0022argument with side effect\u0022\n-;  V06 tmp3         [V06,T04] (  2,  4   )     ref  -\u003E  rcx         single-def \u0022argument with side effect\u0022\n\u002B;  V04 tmp1         [V04,T00] (  6, 12   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V05 tmp2         [V05,T05] (  2,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]\u003E\n\u002B;  V06 tmp3         [V06,T02] (  3,  6   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Func\u00602[System.Nullable\u00601[int],bool]]\u003E\n\u002B;  V07 tmp4         [V07,T03] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.SortExpressionBuilder\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V08 cse0         [V08,T06] (  3,  2   )    long  -\u003E  rbx         \u0022CSE #01: aggressive\u0022\n ;\n-; Lcl frame size = 0\n\u002B; Lcl frame size = 8\n \n G_M4318_IG01:\n        push     rbp\n        push     r15\n        push     r14\n-       push     r13\n        push     rbx\n\u002B       push     rax\n        lea      rbp, [rsp\u002B0x20]\n-       mov      rbx, rdi\n-       mov      r15, rsi\n-\t\t\t\t\t\t;; size=19 bbWeight=1 PerfScore 6.00\n\u002B       mov      rbx, rsi\n\u002B\t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 5.75\n G_M4318_IG02:\n-       mov      rdi, rbx\n-       mov      rsi, r15\n\u002B       mov      rsi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:Select[double,System.Nullable\u00601[int]](System.Collections.Generic.IEnumerable\u00601[double],System.Func\u00602[double,System.Nullable\u00601[int]]):System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]\n        call     [rax]System.Linq.Enumerable:Select[double,System.Nullable\u00601[int]](System.Collections.Generic.IEnumerable\u00601[double],System.Func\u00602[double,System.Nullable\u00601[int]]):System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]\n-       mov      r14, rax\n\u002B       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n\u002B       mov      r14, rax\n        mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      rbx, rax\n-       mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFANY\n        call     [rax]CORINFO_HELP_ISINSTANCEOFANY\n-       mov      rcx, rax\n\u002B       mov      rbx, rax\n\u002B       lea      rdi, bword ptr [r14\u002B0x10]\n\u002B       mov      rsi, r15\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       lea      rdi, bword ptr [r14\u002B0x28]\n        mov      rsi, rbx\n-       mov      rdx, r14\n-       mov      rdi, r13\n-       mov      rax, 0xD1FFAB1E      ; code for System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]]:.ctor(System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]],System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]],System.Func\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]):this\n-       call     [rax]System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]]:.ctor(System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]],System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]],System.Func\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]):this\n-       mov      rax, r13\n-\t\t\t\t\t\t;; size=119 bbWeight=1 PerfScore 17.75\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       mov      rbx, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.Func\u00602[System.Nullable\u00601[int],bool]]\n\u002B       mov      rdi, rbx\n\u002B       call     CORINFO_HELP_NEWSFAST\n\u002B       mov      r15, rax\n\u002B       mov      rdi, 0xD1FFAB1E      ; global ptr\n\u002B       test     byte  ptr [rdi], 1\n\u002B       je       SHORT G_M4318_IG05\n\u002B\t\t\t\t\t\t;; size=124 bbWeight=1 PerfScore 17.75\n G_M4318_IG03:\n\u002B       mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.List\u00601[System.Func\u00602[System.Nullable\u00601[int],bool]]:s_emptyArray\n\u002B       mov      rsi, gword ptr [rdi]\n\u002B       lea      rdi, bword ptr [r15\u002B0x08]\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n\u002B       mov      rsi, r15\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       mov      rdi, 0xD1FFAB1E      ; System.Data.SortExpressionBuilder\u00601[System.Nullable\u00601[int]]\n\u002B       call     CORINFO_HELP_NEWSFAST\n\u002B       mov      rbx, rax\n\u002B       mov      rdi, rbx\n\u002B       mov      rax, 0xD1FFAB1E      ; code for System.Data.SortExpressionBuilder\u00601[System.Nullable\u00601[int]]:.ctor():this\n\u002B       call     [rax]System.Data.SortExpressionBuilder\u00601[System.Nullable\u00601[int]]:.ctor():this\n\u002B       lea      rdi, bword ptr [r14\u002B0x20]\n\u002B       mov      rsi, rbx\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       mov      rax, r14\n\u002B\t\t\t\t\t\t;; size=82 bbWeight=1 PerfScore 12.50\n\u002BG_M4318_IG04:\n\u002B       add      rsp, 8\n        pop      rbx\n-       pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.50\n\u002B\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n\u002BG_M4318_IG05:\n\u002B       mov      rdi, rbx\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n\u002B       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n\u002B       jmp      SHORT G_M4318_IG03\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 147, prolog size 13, PerfScore 27.25, instruction count 38, allocated bytes for code 147 (MethodHash=6377ef21) for method System.Data.EnumerableRowCollectionExtensions:Select[double,System.Nullable\u00601[int]](System.Data.EnumerableRowCollection\u00601[double],System.Func\u00602[double,System.Nullable\u00601[int]]):System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]] (FullOpts)\n\u002B; Total bytes of code 249, prolog size 12, PerfScore 39.25, instruction count 59, allocated bytes for code 249 (MethodHash=6377ef21) for method System.Data.EnumerableRowCollectionExtensions:Select[double,System.Nullable\u00601[int]](System.Data.EnumerableRowCollection\u00601[double],System.Func\u00602[double,System.Nullable\u00601[int]]):System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]] (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":147,"DiffBytes":249},{"Assembly":"System.Private.CoreLib.dasm","Method":"System.Runtime.CompilerServices.RuntimeAsyncTaskContinuation\u002BTaskContinuationResume:.cctor() (FullOpts)","Category":"same-size","Description":"167 -\u003E 167 bytes (0)","ExtraInfo":null,"Diff":"@@ -1,73 \u002B1,73 @@\n ; Assembly listing for method System.Runtime.CompilerServices.RuntimeAsyncTaskContinuation\u002BTaskContinuationResume:.cctor() (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;* V00 loc0         [V00    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u003CSystem.Runtime.CompilerServices.ResumeInfo\u003E\n ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V02 tmp1         [V02,T00] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.SendOrPostCallback\u003E\n ;  V03 tmp2         [V03,T01] (  3,  6   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Runtime.CompilerServices.RuntimeAsyncTaskContinuation\u002BTaskContinuationResume\u002B\u003C\u003Ec\u003E\n ;* V04 tmp3         [V04    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022field V00.Resume (fldOffset=0x0)\u0022 P-INDEP\n ;* V05 tmp4         [V05    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022field V00.DiagnosticIP (fldOffset=0x8)\u0022 P-INDEP\n ;  V06 cse0         [V06,T02] (  2,  2   )    long  -\u003E  rdi         \u0022CSE #01: aggressive\u0022\n ;\n ; Lcl frame size = 8\n \n G_M63124_IG01:\n        push     rbp\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x10]\n \t\t\t\t\t\t;; size=8 bbWeight=1 PerfScore 3.50\n G_M63124_IG02:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Runtime.CompilerServices.RuntimeAsyncTaskContinuation\u002BTaskContinuationResume:ResumeInfo\n        vmovsd   xmm0, qword ptr [reloc @RWD00]\n        vmovups  xmmword ptr [rdi], xmm0\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.SendOrPostCallback\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n        je       SHORT G_M63124_IG05\n \t\t\t\t\t\t;; size=55 bbWeight=1 PerfScore 8.00\n G_M63124_IG03:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Runtime.CompilerServices.RuntimeAsyncTaskContinuation\u002BTaskContinuationResume\u002B\u003C\u003Ec:\u003C\u003E9\n        mov      rsi, gword ptr [rdi]\n        test     rsi, rsi\n        je       SHORT G_M63124_IG06\n        lea      rdi, bword ptr [rbx\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.RuntimeAsyncTaskContinuation\u002BTaskContinuationResume\u002B\u003C\u003Ec:\u003C.cctor\u003Eb__3_0(System.Object):this\n        mov      qword ptr [rbx\u002B0x18], rdi\n        mov      rdi, 0xD1FFAB1E      ; data for System.Runtime.CompilerServices.RuntimeAsyncTaskContinuation\u002BTaskContinuationResume:s_postCallback\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        nop      \n \t\t\t\t\t\t;; size=60 bbWeight=1 PerfScore 8.00\n G_M63124_IG04:\n        add      rsp, 8\n        pop      rbx\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.25\n G_M63124_IG05:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.RuntimeAsyncTaskContinuation\u002BTaskContinuationResume\u002B\u003C\u003Ec\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      SHORT G_M63124_IG03\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n G_M63124_IG06:\n        mov      rax, 0xD1FFAB1E      ; code for System.Delegate:ThrowNullThisInDelegateToInstance()\n        call     [rax]System.Delegate:ThrowNullThisInDelegateToInstance()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-RWD00  \tdq\t00007907D47416F8h\n\u002BRWD00  \tdq\t000076F7653416F8h\n \n \n ; Total bytes of code 167, prolog size 8, PerfScore 21.75, instruction count 36, allocated bytes for code 167 (MethodHash=4e05096b) for method System.Runtime.CompilerServices.RuntimeAsyncTaskContinuation\u002BTaskContinuationResume:.cctor() (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":167,"DiffBytes":167},{"Assembly":"ZstdSharp.dasm","Method":"ZstdSharp.Unsafe.Methods:ZSTD_reset_matchState(ptr,ptr,ptr,int,int,int,int):nuint (FullOpts)","Category":"same-size","Description":"2,171 -\u003E 2,171 bytes (0)","ExtraInfo":null,"Diff":"@@ -1088,7 \u002B1088,7 @@ G_M6090_IG108:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-RWD00  \tdq\t00007FF4AC6774CAh, 00007FF4AC6774C8h, 00007FF4AC6774C8h, 0000000200000002h\n\u002BRWD00  \tdq\t000072B6C22754CAh, 000072B6C22754C8h, 000072B6C22754C8h, 0000000200000002h\n \n \n ; Total bytes of code 2171, prolog size 19, PerfScore 335.62, instruction count 620, allocated bytes for code 2171 (MethodHash=af31e835) for method ZstdSharp.Unsafe.Methods:ZSTD_reset_matchState(ptr,ptr,ptr,int,int,int,int):nuint (FullOpts)","Truncated":true,"BaseBytes":2171,"DiffBytes":2171},{"Assembly":"Castle.Windsor.dasm","Method":"Castle.MicroKernel.ModelBuilder.Descriptors.DefaultsDescriptor:EnsureComponentName(Castle.Core.ComponentModel):this (FullOpts)","Category":"improvement","Description":"448 -\u003E 393 bytes (-55)","ExtraInfo":null,"Diff":"@@ -1,164 \u002B1,146 @@\n ; Assembly listing for method Castle.MicroKernel.ModelBuilder.Descriptors.DefaultsDescriptor:EnsureComponentName(Castle.Core.ComponentModel):this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 19 single block inlinees; 5 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T01] (  3,  2.50)     ref  -\u003E  rdi         this class-hnd single-def \u003CCastle.MicroKernel.ModelBuilder.Descriptors.DefaultsDescriptor\u003E\n ;  V01 arg1         [V01,T00] (  8,  5.50)     ref  -\u003E  rbx         class-hnd single-def \u003CCastle.Core.ComponentModel\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V03 tmp1         [V03,T02] (  4,  4   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CCastle.Core.ComponentName\u003E\n-;  V04 tmp2         [V04,T08] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CCastle.Core.ComponentName\u003E\n\u002B;  V03 tmp1         [V03,T02] (  4,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CCastle.Core.ComponentName\u003E\n\u002B;  V04 tmp2         [V04,T06] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CCastle.Core.ComponentName\u003E\n ;* V05 tmp3         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V06 tmp4         [V06,T03] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Type]\u003E\n-;  V07 tmp5         [V07    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V06 tmp4         [V06,T04] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Type]\u003E\n\u002B;  V07 tmp5         [V07    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V08 tmp6         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V09 tmp7         [V09,T06] (  4,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Type\u003E\n-;  V10 tmp8         [V10,T07] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Type]\u003E\n\u002B;  V09 tmp7         [V09,T10] (  3,  1.50)     ref  -\u003E  r15         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Type\u003E\n\u002B;* V10 tmp8         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Type]\u003E\n ;* V11 tmp9         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V12 tmp10        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V13 tmp11        [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n ;  V14 tmp12        [V14,T05] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Type\u003E\n-;  V15 tmp13        [V15,T04] (  4,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CCastle.Core.ComponentName\u003E\n\u002B;  V15 tmp13        [V15,T03] (  4,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CCastle.Core.ComponentName\u003E\n ;* V16 tmp14        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V17 tmp15        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V18 tmp16        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V19 tmp17        [V19,T09] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V20 tmp18        [V20,T10] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V21 tmp19        [V21,T11] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V22 cse0         [V22,T12] (  3,  1.50)     ref  -\u003E  rsi         \u0022CSE #01: moderate\u0022\n-;  V23 cse1         [V23,T13] (  3,  1.50)     ref  -\u003E  r15         \u0022CSE #02: moderate\u0022\n\u002B;  V19 tmp17        [V19,T07] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V20 tmp18        [V20,T08] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V21 tmp19        [V21,T09] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V22 cse0         [V22,T11] (  3,  1.50)     ref  -\u003E  rsi         \u0022CSE #01: moderate\u0022\n\u002B;  V23 cse1         [V23,T12] (  3,  1.50)     ref  -\u003E  r15         \u0022CSE #02: moderate\u0022\n ;\n ; Lcl frame size = 8\n \n G_M57232_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x20]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x20], rax\n        mov      rbx, rsi\n \t\t\t\t\t\t;; size=21 bbWeight=1 PerfScore 7.00\n G_M57232_IG02:\n        cmp      gword ptr [rbx\u002B0x30], 0\n-       jne      G_M57232_IG08\n\u002B       jne      G_M57232_IG06\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.00\n G_M57232_IG03:\n        mov      rsi, gword ptr [rdi\u002B0x10]\n        test     rsi, rsi\n-       jne      G_M57232_IG07\n\u002B       jne      G_M57232_IG05\n        mov      r15, gword ptr [rbx\u002B0x80]\n        mov      rdi, 0xD1FFAB1E      ; \u0027Castle.Core.Internal.LateBoundComponent\u0027\n        cmp      r15, rdi\n        je       SHORT G_M57232_IG04\n        mov      rdi, 0xD1FFAB1E      ; Castle.Core.ComponentName\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      rdi, r15\n        mov      rax, qword ptr [r15]\n        mov      rax, qword ptr [rax\u002B0x50]\n        call     [rax\u002B0x20]System.Type:get_FullName():System.String:this\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; Castle.Core.Internal.Must:NotBeEmpty[System.String](System.String,System.String):System.String\n        mov      rdx, 0xD1FFAB1E      ; \u0027name\u0027\n        mov      rax, 0xD1FFAB1E      ; code for Castle.Core.Internal.Must:NotBeEmpty[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]Castle.Core.Internal.Must:NotBeEmpty[System.__Canon](System.__Canon,System.String):System.__Canon\n        mov      rsi, rax\n        lea      rdi, bword ptr [r14\u002B0x08]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      byte  ptr [r14\u002B0x10], 0\n        lea      rdi, bword ptr [rbx\u002B0x30]\n        mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M57232_IG08\n\u002B       jmp      G_M57232_IG06\n \t\t\t\t\t\t;; size=135 bbWeight=0.50 PerfScore 13.00\n G_M57232_IG04:\n-       mov      r15, gword ptr [rbx\u002B0x20]\n-       test     r15, r15\n-       je       G_M57232_IG10\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Type]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M57232_IG05\n-       lea      rsi, [rbp-0x20]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      r14, rax\n-       jmp      SHORT G_M57232_IG06\n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 9.12\n-G_M57232_IG05:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x20]\n\u002B       test     rsi, rsi\n\u002B       je       G_M57232_IG08\n        lea      rdx, [rbp-0x20]\n-       mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Type](System.Collections.Generic.IEnumerable\u00601[System.Type],byref):System.Type\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      r14, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M57232_IG06:\n\u002B       mov      r15, rax\n        cmp      byte  ptr [rbp-0x20], 0\n-       je       G_M57232_IG11\n\u002B       je       G_M57232_IG09\n        mov      rdi, 0xD1FFAB1E      ; Castle.Core.ComponentName\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r15, rax\n-       mov      rdi, r14\n-       mov      rax, qword ptr [r14]\n\u002B       mov      r14, rax\n\u002B       mov      rdi, r15\n\u002B       mov      rax, qword ptr [r15]\n        mov      rax, qword ptr [rax\u002B0x50]\n        call     [rax\u002B0x20]System.Type:get_FullName():System.String:this\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; \u0027Late bound \u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Concat(System.String,System.String):System.String\n        call     [rax]System.String:Concat(System.String,System.String):System.String\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; Castle.Core.Internal.Must:NotBeEmpty[System.String](System.String,System.String):System.String\n        mov      rdx, 0xD1FFAB1E      ; \u0027name\u0027\n        mov      rax, 0xD1FFAB1E      ; code for Castle.Core.Internal.Must:NotBeEmpty[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]Castle.Core.Internal.Must:NotBeEmpty[System.__Canon](System.__Canon,System.String):System.__Canon\n        mov      rsi, rax\n-       lea      rdi, bword ptr [r15\u002B0x08]\n\u002B       lea      rdi, bword ptr [r14\u002B0x08]\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      byte  ptr [r15\u002B0x10], 0\n\u002B       mov      byte  ptr [r14\u002B0x10], 0\n        lea      rdi, bword ptr [rbx\u002B0x30]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      SHORT G_M57232_IG08\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 12.50\n-G_M57232_IG07:\n\u002B       jmp      SHORT G_M57232_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=0.50 PerfScore 16.25\n\u002BG_M57232_IG05:\n        lea      rdi, bword ptr [rbx\u002B0x30]\n        call     CORINFO_HELP_ASSIGN_REF\n \t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 0.75\n-G_M57232_IG08:\n\u002BG_M57232_IG06:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M57232_IG09:\n\u002BG_M57232_IG07:\n        add      rsp, 8\n        pop      rbx\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M57232_IG10:\n\u002BG_M57232_IG08:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M57232_IG11:\n\u002BG_M57232_IG09:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 448, prolog size 18, PerfScore 51.12, instruction count 102, allocated bytes for code 448 (MethodHash=d9ce206f) for method Castle.MicroKernel.ModelBuilder.Descriptors.DefaultsDescriptor:EnsureComponentName(Castle.Core.ComponentModel):this (FullOpts)\n\u002B; Total bytes of code 393, prolog size 18, PerfScore 43.50, instruction count 88, allocated bytes for code 393 (MethodHash=d9ce206f) for method Castle.MicroKernel.ModelBuilder.Descriptors.DefaultsDescriptor:EnsureComponentName(Castle.Core.ComponentModel):this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":448,"DiffBytes":393},{"Assembly":"ClosedXML.dasm","Method":"ClosedXML.Excel.XLConditionalFormats:Consolidate():this (FullOpts)","Category":"improvement","Description":"3,073 -\u003E 3,021 bytes (-52)","ExtraInfo":null,"Diff":"@@ -8,59 \u002B8,59 @@\n ; 0 inlinees with PGO data; 23 single block inlinees; 23 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T57] (  5,  8   )     ref  -\u003E  rbx         this class-hnd single-def \u003CClosedXML.Excel.XLConditionalFormats\u003E\n\u002B;  V00 this         [V00,T56] (  5,  8   )     ref  -\u003E  rbx         this class-hnd single-def \u003CClosedXML.Excel.XLConditionalFormats\u003E\n ;  V01 loc0         [V01,T09] ( 10, 48   )     ref  -\u003E  r15         class-hnd exact single-def \u003CClosedXML.Excel.XLConditionalFormats\u002B\u003C\u003Ec__DisplayClass6_0\u003E\n ;  V02 loc1         [V02,T31] (  6, 22   )     ref  -\u003E  r14         class-hnd exact \u003CClosedXML.Excel.XLConditionalFormats\u002B\u003C\u003Ec__DisplayClass6_1\u003E\n ;  V03 loc2         [V03,T00] ( 25, 98   )     ref  -\u003E  r13         class-hnd exact \u003CClosedXML.Excel.XLConditionalFormats\u002B\u003C\u003Ec__DisplayClass6_2\u003E\n ;  V04 loc3         [V04,T36] (  3, 18   )     ref  -\u003E  [rbp-0x70]  class-hnd exact spill-single-def \u003CSystem.Func\u00602[ClosedXML.Excel.IXLConditionalFormat,bool]\u003E\n ;* V05 loc4         [V05    ] (  0,  0   )  struct (32) zero-ref    do-not-enreg[SF] ld-addr-op \u003CClosedXML.Excel.XLAddress\u003E\n-;  V06 loc5         [V06,T91] (  3,  3.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact \u003CClosedXML.Excel.XLCell\u003E\n-;* V07 loc6         [V07,T95] (  0,  0   )     int  -\u003E  zero-ref   \n\u002B;  V06 loc5         [V06,T90] (  3,  3.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact \u003CClosedXML.Excel.XLCell\u003E\n\u002B;* V07 loc6         [V07,T94] (  0,  0   )     int  -\u003E  zero-ref   \n ;  V08 loc7         [V08,T07] (  4, 56   )   ubyte  -\u003E  [rbp-0x2C] \n ;  V09 loc8         [V09,T08] (  8, 52   )     ref  -\u003E  [rbp-0x80]  class-hnd exact spill-single-def \u003CSystem.Collections.Generic.List\u00601[ClosedXML.Excel.IXLConditionalFormat]\u003E\n-;  V10 loc9         [V10,T92] (  3,  3.50)     ref  -\u003E  r12         class-hnd exact \u003CClosedXML.Excel.XLCell\u003E\n\u002B;  V10 loc9         [V10,T91] (  3,  3.50)     ref  -\u003E  r12         class-hnd exact \u003CClosedXML.Excel.XLCell\u003E\n ;  V11 loc10        [V11,T04] (  8, 64   )     ref  -\u003E  [rbp-0x88]  class-hnd exact spill-single-def \u003CClosedXML.Excel.XLConditionalFormats\u002B\u003C\u003Ec__DisplayClass6_3\u003E\n ;  V12 loc11        [V12,T30] (  3, 24   )   ubyte  -\u003E  [rbp-0x30]  spill-single-def\n ;* V13 loc12        [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Action\u00601[ClosedXML.Excel.IXLRange]\u003E\n ;* V14 loc13        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CSystem.Action\u00601[ClosedXML.Excel.IXLConditionalFormat]\u003E\n ;# V15 OutArgs      [V15    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V16 tmp1         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CClosedXML.Excel.XLConditionalFormats\u002B\u003C\u003Ec__DisplayClass6_0\u003E\n-;  V17 tmp2         [V17,T87] (  2,  4   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[ClosedXML.Excel.IXLConditionalFormat,bool]\u003E\n-;  V18 tmp3         [V18,T88] (  2,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[ClosedXML.Excel.IXLConditionalFormat]\u003E\n\u002B;  V17 tmp2         [V17,T86] (  2,  4   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[ClosedXML.Excel.IXLConditionalFormat,bool]\u003E\n\u002B;  V18 tmp3         [V18,T87] (  2,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[ClosedXML.Excel.IXLConditionalFormat]\u003E\n ;* V19 tmp4         [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V20 tmp5         [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V21 tmp6         [V21,T90] (  4,  3.50)     ref  -\u003E  rdx        \n\u002B;  V21 tmp6         [V21,T89] (  4,  3.50)     ref  -\u003E  rdx        \n ;* V22 tmp7         [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CClosedXML.Excel.XLConditionalFormats\u002B\u003C\u003Ec__DisplayClass6_1\u003E\n ;* V23 tmp8         [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CClosedXML.Excel.XLConditionalFormats\u002B\u003C\u003Ec__DisplayClass6_2\u003E\n-;  V24 tmp9         [V24,T47] (  3, 12   )     ref  -\u003E  r12         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CClosedXML.Excel.XLRanges\u003E\n\u002B;  V24 tmp9         [V24,T46] (  3, 12   )     ref  -\u003E  r12         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CClosedXML.Excel.XLRanges\u003E\n ;  V25 tmp10        [V25,T37] (  4, 16   )     ref  -\u003E  [rbp-0x90]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u00601[ClosedXML.Excel.IXLRange]\u003E\n-;  V26 tmp11        [V26,T67] (  2,  8   )     ref  -\u003E  [rbp-0x98]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CClosedXML.Excel.IXLRanges\u003E\n-;  V27 tmp12        [V27,T48] (  3, 12   )     ref  -\u003E  [rbp-0xA0]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CClosedXML.Excel.XLRanges\u003E\n\u002B;  V26 tmp11        [V26,T65] (  2,  8   )     ref  -\u003E  [rbp-0x98]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CClosedXML.Excel.IXLRanges\u003E\n\u002B;  V27 tmp12        [V27,T47] (  3, 12   )     ref  -\u003E  [rbp-0xA0]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CClosedXML.Excel.XLRanges\u003E\n ;  V28 tmp13        [V28,T38] (  4, 16   )     ref  -\u003E  [rbp-0xA8]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[ClosedXML.Excel.IXLConditionalFormat,bool]\u003E\n-;  V29 tmp14        [V29,T68] (  2,  8   )     ref  -\u003E  rdx         class-hnd \u0022dup spill\u0022 \u003CSystem.Func\u00602[ClosedXML.Excel.IXLRange,int]\u003E\n-;  V30 tmp15        [V30,T69] (  2,  8   )     ref  -\u003E  [rbp-0xB0]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CClosedXML.Excel.IXLRanges\u003E\n\u002B;  V29 tmp14        [V29,T66] (  2,  8   )     ref  -\u003E  rdx         class-hnd \u0022dup spill\u0022 \u003CSystem.Func\u00602[ClosedXML.Excel.IXLRange,int]\u003E\n\u002B;  V30 tmp15        [V30,T67] (  2,  8   )     ref  -\u003E  [rbp-0xB0]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CClosedXML.Excel.IXLRanges\u003E\n ;* V31 tmp16        [V31    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V32 tmp17        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V33 tmp18        [V33,T61] (  4,  8   )     ref  -\u003E  rdx        \n-;  V34 tmp19        [V34,T81] (  2,  8   )     int  -\u003E  [rbp-0x34]  spill-single-def \u0022non-inline candidate call\u0022\n-;  V35 tmp20        [V35,T70] (  2,  8   )     ref  -\u003E  rdx         class-hnd \u0022dup spill\u0022 \u003CSystem.Func\u00602[ClosedXML.Excel.IXLRange,int]\u003E\n-;  V36 tmp21        [V36,T71] (  2,  8   )     ref  -\u003E  [rbp-0xB8]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CClosedXML.Excel.IXLRanges\u003E\n\u002B;  V33 tmp18        [V33,T60] (  4,  8   )     ref  -\u003E  rdx        \n\u002B;  V34 tmp19        [V34,T80] (  2,  8   )     int  -\u003E  [rbp-0x34]  spill-single-def \u0022non-inline candidate call\u0022\n\u002B;  V35 tmp20        [V35,T68] (  2,  8   )     ref  -\u003E  rdx         class-hnd \u0022dup spill\u0022 \u003CSystem.Func\u00602[ClosedXML.Excel.IXLRange,int]\u003E\n\u002B;  V36 tmp21        [V36,T69] (  2,  8   )     ref  -\u003E  [rbp-0xB8]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CClosedXML.Excel.IXLRanges\u003E\n ;* V37 tmp22        [V37    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V38 tmp23        [V38    ] (  0,  0   )     int  -\u003E  zero-ref   \n ;* V39 tmp24        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V40 tmp25        [V40,T62] (  4,  8   )     ref  -\u003E  rdx        \n\u002B;  V40 tmp25        [V40,T61] (  4,  8   )     ref  -\u003E  rdx        \n ;  V41 tmp26        [V41,T25] (  7, 28   )     ref  -\u003E  [rbp-0xC0]  class-hnd exact spill-single-def \u0022Single-def Box Helper\u0022 \u003CClosedXML.Excel.XLAddress\u003E\n-;  V42 tmp27        [V42,T72] (  2,  8   )     ref  -\u003E  rdi         class-hnd \u0022impImportAndPushBox\u0022 \u003CClosedXML.Excel.IXLWorksheet\u003E\n-;  V43 tmp28        [V43,T55] (  4, 11   )     ref  -\u003E  rax         \u0022ISINST eval op1\u0022\n\u002B;  V42 tmp27        [V42,T70] (  2,  8   )     ref  -\u003E  rdi         class-hnd \u0022impImportAndPushBox\u0022 \u003CClosedXML.Excel.IXLWorksheet\u003E\n\u002B;  V43 tmp28        [V43,T54] (  4, 11   )     ref  -\u003E  rax         \u0022ISINST eval op1\u0022\n ;* V44 tmp29        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CClosedXML.Excel.XLCell\u003E\n-;  V45 tmp30        [V45,T49] (  3, 12   )     ref  -\u003E  [rbp-0xC8]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[ClosedXML.Excel.IXLConditionalFormat]\u003E\n-;  V46 tmp31        [V46,T73] (  2,  8   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022non-inline candidate call\u0022 \u003CClosedXML.Excel.IXLRanges\u003E\n\u002B;  V45 tmp30        [V45,T48] (  3, 12   )     ref  -\u003E  [rbp-0xC8]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[ClosedXML.Excel.IXLConditionalFormat]\u003E\n\u002B;  V46 tmp31        [V46,T71] (  2,  8   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022non-inline candidate call\u0022 \u003CClosedXML.Excel.IXLRanges\u003E\n ;  V47 tmp32        [V47,T39] (  4, 16   )     ref  -\u003E  r12         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u00601[ClosedXML.Excel.IXLRange]\u003E\n-;  V48 tmp33        [V48,T56] (  4, 11   )     ref  -\u003E  r12         \u0022ISINST eval op1\u0022\n\u002B;  V48 tmp33        [V48,T55] (  4, 11   )     ref  -\u003E  r12         \u0022ISINST eval op1\u0022\n ;* V49 tmp34        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CClosedXML.Excel.XLCell\u003E\n-;  V50 tmp35        [V50,T74] (  2,  8   )     ref  -\u003E  rsi         class-hnd \u0022dup spill\u0022 \u003CSystem.Action\u00601[ClosedXML.Excel.IXLConditionalFormat]\u003E\n... diff truncated; middle omitted ...\n        mov      r12, rax\n        test     r12, r12\n-       je       G_M34580_IG59\n\u002B       je       G_M34580_IG56\n        mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[ClosedXML.Excel.IXLRange]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M34580_IG40\n\u002B       je       SHORT G_M34580_IG37\n        lea      rsi, [rbp-0x58]\n        mov      rdi, rax\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x50]\n        call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M34580_IG41\n\u002B       jmp      SHORT G_M34580_IG38\n \t\t\t\t\t\t;; size=78 bbWeight=2 PerfScore 43.00\n-G_M34580_IG40:\n\u002BG_M34580_IG37:\n        lea      rdx, [rbp-0x58]\n        mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[ClosedXML.Excel.IXLRange](System.Collections.Generic.IEnumerable\u00601[ClosedXML.Excel.IXLRange],byref):ClosedXML.Excel.IXLRange\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n \t\t\t\t\t\t;; size=29 bbWeight=2 PerfScore 8.50\n-G_M34580_IG41:\n\u002BG_M34580_IG38:\n        cmp      byte  ptr [rbp-0x58], 0\n-       je       G_M34580_IG60\n\u002B       je       G_M34580_IG57\n        mov      rdi, rax\n        mov      r11, 0xD1FFAB1E      ; code for ClosedXML.Excel.IXLRangeBase:FirstCell():ClosedXML.Excel.IXLCell:this\n        call     [r11]ClosedXML.Excel.IXLRangeBase:FirstCell():ClosedXML.Excel.IXLCell:this\n        mov      r12, rax\n        test     r12, r12\n-       je       SHORT G_M34580_IG44\n\u002B       je       SHORT G_M34580_IG41\n \t\t\t\t\t\t;; size=34 bbWeight=2 PerfScore 14.00\n-G_M34580_IG42:\n\u002BG_M34580_IG39:\n        mov      rsi, 0xD1FFAB1E      ; ClosedXML.Excel.XLCell\n        cmp      qword ptr [r12], rsi\n-       jne      SHORT G_M34580_IG44\n\u002B       jne      SHORT G_M34580_IG41\n \t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 3.25\n-G_M34580_IG43:\n-       jmp      SHORT G_M34580_IG45\n\u002BG_M34580_IG40:\n\u002B       jmp      SHORT G_M34580_IG42\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 1.00\n-G_M34580_IG44:\n\u002BG_M34580_IG41:\n        xor      r12, r12\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M34580_IG45:\n\u002BG_M34580_IG42:\n        mov      rsi, gword ptr [r13\u002B0x20]\n        mov      rsi, gword ptr [rsi\u002B0x08]\n        mov      rdi, rsi\n        test     rdi, rdi\n-       je       SHORT G_M34580_IG48\n\u002B       je       SHORT G_M34580_IG45\n \t\t\t\t\t\t;; size=16 bbWeight=2 PerfScore 11.00\n-G_M34580_IG46:\n\u002BG_M34580_IG43:\n        mov      rax, 0xD1FFAB1E      ; ClosedXML.Excel.XLConditionalFormat\n        cmp      qword ptr [rdi], rax\n-       je       SHORT G_M34580_IG48\n\u002B       je       SHORT G_M34580_IG45\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 3.25\n-G_M34580_IG47:\n\u002BG_M34580_IG44:\n        mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        mov      rdi, rax\n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 1.88\n-G_M34580_IG48:\n\u002BG_M34580_IG45:\n        mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r12\n        mov      rax, 0xD1FFAB1E      ; code for ClosedXML.Excel.XLConditionalFormat:AdjustFormulas(ClosedXML.Excel.XLCell,ClosedXML.Excel.XLCell):this\n@@ -786,7 \u002B767,7 @@ G_M34580_IG48:\n        call     [rax]ClosedXML.Excel.XLConditionalFormat:AdjustFormulas(ClosedXML.Excel.XLCell,ClosedXML.Excel.XLCell):this\n        mov      rsi, gword ptr [r15\u002B0x10]\n        test     rsi, rsi\n-       jne      SHORT G_M34580_IG49\n\u002B       jne      SHORT G_M34580_IG46\n        mov      rdi, 0xD1FFAB1E      ; System.Action\u00601[ClosedXML.Excel.IXLConditionalFormat]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n@@ -800,27 \u002B781,27 @@ G_M34580_IG48:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rsi, r13\n \t\t\t\t\t\t;; size=89 bbWeight=2 PerfScore 32.50\n-G_M34580_IG49:\n\u002BG_M34580_IG46:\n        mov      rdi, gword ptr [rbp-0x80]\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:ForEach(System.Action\u00601[System.__Canon]):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:ForEach(System.Action\u00601[System.__Canon]):this\n \t\t\t\t\t\t;; size=16 bbWeight=2 PerfScore 8.50\n-G_M34580_IG50:\n\u002BG_M34580_IG47:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      rdx, gword ptr [r14\u002B0x08]\n        inc      dword ptr [rdi\u002B0x14]\n        mov      rax, gword ptr [rdi\u002B0x08]\n        mov      r13d, dword ptr [rdi\u002B0x10]\n        cmp      dword ptr [rax\u002B0x08], r13d\n-       ja       SHORT G_M34580_IG52\n\u002B       ja       SHORT G_M34580_IG49\n \t\t\t\t\t\t;; size=25 bbWeight=4 PerfScore 56.00\n-G_M34580_IG51:\n\u002BG_M34580_IG48:\n        mov      rsi, rdx\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n-       jmp      SHORT G_M34580_IG53\n\u002B       jmp      SHORT G_M34580_IG50\n \t\t\t\t\t\t;; size=17 bbWeight=2 PerfScore 11.00\n-G_M34580_IG52:\n\u002BG_M34580_IG49:\n        lea      esi, [r13\u002B0x01]\n        mov      dword ptr [rdi\u002B0x10], esi\n        mov      esi, r13d\n@@ -828,7 \u002B809,7 @@ G_M34580_IG52:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST\n        call     [rax]CORINFO_HELP_ARRADDR_ST\n \t\t\t\t\t\t;; size=25 bbWeight=2 PerfScore 10.50\n-G_M34580_IG53:\n\u002BG_M34580_IG50:\n        mov      r13, gword ptr [r15\u002B0x08]\n        mov      rdx, gword ptr [r14\u002B0x08]\n        mov      r8d, dword ptr [r13\u002B0x10]\n@@ -838,20 \u002B819,20 @@ G_M34580_IG53:\n        mov      rax, 0xD1FFAB1E      ; code for System.Array:IndexOf[System.__Canon](System.__Canon[],System.__Canon,int,int):int\n        call     [rax]System.Array:IndexOf[System.__Canon](System.__Canon[],System.__Canon,int,int):int\n        test     eax, eax\n-       jl       SHORT G_M34580_IG55\n\u002B       jl       SHORT G_M34580_IG52\n \t\t\t\t\t\t;; size=44 bbWeight=4 PerfScore 52.00\n-G_M34580_IG54:\n\u002BG_M34580_IG51:\n        mov      rdi, r13\n        mov      esi, eax\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:RemoveAt(int):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:RemoveAt(int):this\n \t\t\t\t\t\t;; size=17 bbWeight=2 PerfScore 7.50\n-G_M34580_IG55:\n\u002BG_M34580_IG52:\n        mov      rdi, gword ptr [r15\u002B0x08]\n        cmp      dword ptr [rdi\u002B0x10], 0\n        jg       G_M34580_IG06\n \t\t\t\t\t\t;; size=14 bbWeight=8 PerfScore 40.00\n-G_M34580_IG56:\n\u002BG_M34580_IG53:\n        add      rsp, 280\n        pop      rbx\n        pop      r12\n@@ -861,37 \u002B842,37 @@ G_M34580_IG56:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M34580_IG57:\n\u002BG_M34580_IG54:\n        mov      rax, 0xD1FFAB1E      ; code for System.Delegate:ThrowNullThisInDelegateToInstance()\n        call     [rax]System.Delegate:ThrowNullThisInDelegateToInstance()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M34580_IG58:\n\u002BG_M34580_IG55:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[ClosedXML.Excel.IXLConditionalFormat]\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rcx]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M34580_IG24\n\u002B       jmp      G_M34580_IG21\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M34580_IG59:\n\u002BG_M34580_IG56:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M34580_IG60:\n\u002BG_M34580_IG57:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M34580_IG61:\n\u002BG_M34580_IG58:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M34580_IG62:\n\u002BG_M34580_IG59:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 3073, prolog size 48, PerfScore 2292.58, instruction count 621, allocated bytes for code 3073 (MethodHash=fccf78eb) for method ClosedXML.Excel.XLConditionalFormats:Consolidate():this (FullOpts)\n\u002B; Total bytes of code 3021, prolog size 48, PerfScore 2260.58, instruction count 608, allocated bytes for code 3021 (MethodHash=fccf78eb) for method ClosedXML.Excel.XLConditionalFormats:Consolidate():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":3073,"DiffBytes":3021},{"Assembly":"Consul.dasm","Method":"Consul.GetRequest\u00601\u002B\u003CExecuteStreaming\u003Ed__11[double]:MoveNext():this (FullOpts)","Category":"improvement","Description":"1,458 -\u003E 1,431 bytes (-27)","ExtraInfo":null,"Diff":"@@ -8,8 \u002B8,8 @@\n ; 0 inlinees with PGO data; 57 single block inlinees; 13 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 45, 39   )   byref  -\u003E  [rbp-0x68]  this EH-live single-def\n-;  V01 loc0         [V01,T33] (  3,  3   )     int  -\u003E  rdi         single-def\n\u002B;  V00 this         [V00,T00] ( 42, 36   )   byref  -\u003E  [rbp-0x68]  this EH-live single-def\n\u002B;  V01 loc0         [V01,T35] (  3,  3   )     int  -\u003E  rdi         single-def\n ;  V02 loc1         [V02,T02] ( 11, 11   )     ref  -\u003E  rbx         class-hnd single-def \u003CConsul.GetRequest\u00601[double]\u003E\n ;  V03 loc2         [V03,T14] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n ;* V04 loc3         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CSystem.Net.Http.HttpRequestMessage\u003E\n@@ -22,106 \u002B22,108 @@\n ;* V11 loc10        [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Exception\u003E\n ;  V12 OutArgs      [V12    ] (  1,  1   )  struct ( 8) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V13 tmp1         [V13    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;* V14 tmp2         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;  V14 tmp2         [V14,T16] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Net.Http.HttpResponseMessage\u003E\n ;* V15 tmp3         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n-;  V16 tmp4         [V16,T16] (  2,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n-;* V17 tmp5         [V17    ] (  0,  0   )  struct ( 8) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.TimeSpan\u003E\n-;  V18 tmp6         [V18,T39] (  3,  0   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Net.HttpStatusCode\u003E\n-;  V19 tmp7         [V19,T41] (  2,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V20 tmp8         [V20,T40] (  3,  0   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CConsul.ConsulRequestException\u003E\n-;* V21 tmp9         [V21    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n\u002B;* V16 tmp4         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;  V17 tmp5         [V17,T17] (  2,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;* V18 tmp6         [V18    ] (  0,  0   )  struct ( 8) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.TimeSpan\u003E\n\u002B;  V19 tmp7         [V19,T41] (  3,  0   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Net.HttpStatusCode\u003E\n\u002B;  V20 tmp8         [V20,T43] (  2,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V21 tmp9         [V21,T42] (  3,  0   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CConsul.ConsulRequestException\u003E\n ;* V22 tmp10        [V22    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;* V23 tmp11        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n-;  V24 tmp12        [V24,T17] (  2,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.Net.Http.HttpMethod\u003E\n-;  V25 tmp13        [V25,T18] (  2,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V26 tmp14        [V26,T01] (  8, 16   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Net.Http.HttpRequestMessage\u003E\n-;  V27 tmp15        [V27,T42] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n-;  V28 tmp16        [V28,T03] (  5, 10   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Diagnostics.Stopwatch\u003E\n-;  V29 tmp17        [V29,T19] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Uri\u003E\n-;* V30 tmp18        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CConsul.ConsulClient\u003E\n\u002B;* V23 tmp11        [V23    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n\u002B;* V24 tmp12        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;  V25 tmp13        [V25,T18] (  2,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.Net.Http.HttpMethod\u003E\n\u002B;  V26 tmp14        [V26,T19] (  2,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V27 tmp15        [V27,T01] (  8, 16   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Net.Http.HttpRequestMessage\u003E\n\u002B;  V28 tmp16        [V28,T44] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V29 tmp17        [V29,T03] (  5, 10   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Diagnostics.Stopwatch\u003E\n\u002B;  V30 tmp18        [V30,T20] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Uri\u003E\n ;* V31 tmp19        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CConsul.ConsulClient\u003E\n-;  V32 tmp20        [V32,T29] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Net.Http.HttpResponseMessage]\u003E\n-;  V33 tmp21        [V33,T04] (  5, 10   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Net.Http.HttpClient\u003E\n-;* V34 tmp22        [V34    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V35 tmp23        [V35,T08] (  4,  8   )  struct (24) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u0022dup spill\u0022 \u003CSystem.ValueTuple\u00603[System.Threading.CancellationTokenSource,bool,System.Threading.CancellationTokenSource]\u003E\n-;* V36 tmp24        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;* V37 tmp25        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n-;* V38 tmp26        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;* V39 tmp27        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;* V40 tmp28        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;* V41 tmp29        [V41    ] (  0,  0   )     int  -\u003E  zero-ref    single-def\n-;* V42 tmp30        [V42    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[System.Net.Http.HttpResponseMessage]\u003E\n-;* V43 tmp31        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Net.Http.HttpResponseMessage]\u003E\n-;* V44 tmp32        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.Net.Http.HttpResponseMessage]\u003E\n-;* V45 tmp33        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Net.Http.HttpResponseMessage]\u003E\n-;* V46 tmp34        [V46,T36] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V47 tmp35        [V47,T20] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n-;* V48 tmp36        [V48    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;* V49 tmp37        [V49    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n\u002B;* V32 tmp20        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CConsul.ConsulClient\u003E\n\u002B;  V33 tmp21        [V33,T28] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Net.Http.HttpResponseMessage]\u003E\n\u002B;  V34 tmp22        [V34,T04] (  5, 10   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Net.Http.HttpClient\u003E\n\u002B;* V35 tmp23        [V35    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;  V36 tmp24        [V36,T07] (  4,  8   )  struct (24) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u0022dup spill\u0022 \u003CSystem.ValueTuple\u00603[System.Threading.CancellationTokenSource,bool,System.Threading.CancellationTokenSource]\u003E\n\u002B;* V37 tmp25        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;* V38 tmp26        [V38    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n\u002B;* V39 tmp27        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;* V40 tmp28        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref   \n... diff truncated; middle omitted ...\n\u002B;* V83 tmp71        [V83    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.TimeSpan\u003E\n\u002B;  V84 tmp72        [V84,T15] (  4,  4   )    long  -\u003E  r13         \u0022Inline stloc first use temp\u0022\n\u002B;* V85 tmp73        [V85    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n\u002B;  V86 tmp74        [V86,T12] (  3,  6   )   byref  -\u003E  rbx         single-def \u0022Inlining Arg\u0022\n\u002B;  V87 tmp75        [V87,T29] (  3,  3   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[Consul.QueryResult\u00601[System.IO.Stream]]\u003E\n\u002B;* V88 tmp76        [V88    ] (  0,  0   )     ref  -\u003E  zero-ref    ld-addr-op class-hnd single-def \u0022Inlining Arg\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;  V89 tmp77        [V89,T06] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[Consul.QueryResult\u00601[System.IO.Stream]]\u003E\n\u002B;* V90 tmp78        [V90    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V91 tmp79        [V91    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;* V92 tmp80        [V92    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n\u002B;  V93 tmp81        [V93    ] (  7,  7   )     ref  -\u003E  [rbp-0x38]  do-not-enreg[X] addr-exposed \u0022field V06.m_task (fldOffset=0x0)\u0022 P-DEP\n\u002B;  V94 tmp82        [V94    ] (  5,  5   )     int  -\u003E  [rbp-0x30]  do-not-enreg[X] addr-exposed \u0022field V06.m_options (fldOffset=0x8)\u0022 P-DEP\n\u002B;  V95 tmp83        [V95    ] (  7,  7   )     ref  -\u003E  [rbp-0x48]  do-not-enreg[X] addr-exposed \u0022field V09.m_task (fldOffset=0x0)\u0022 P-DEP\n\u002B;  V96 tmp84        [V96    ] (  5,  5   )     int  -\u003E  [rbp-0x40]  do-not-enreg[X] addr-exposed \u0022field V09.m_options (fldOffset=0x8)\u0022 P-DEP\n\u002B;* V97 tmp85        [V97    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022field V18._ticks (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V98 tmp86        [V98,T30] (  3,  3   )     ref  -\u003E  r13         single-def \u0022field V35._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V99 tmp87        [V99    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V45.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V100 tmp88       [V100    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V45.m_options (fldOffset=0x8)\u0022 P-INDEP\n\u002B;* V101 tmp89       [V101    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V58._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V102 tmp90       [V102    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V59._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V103 tmp91       [V103    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V66.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V104 tmp92       [V104    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V66.m_options (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V105 tmp93       [V105,T36] (  2,  2   )    long  -\u003E  rsi         single-def \u0022field V83._ticks (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V106 tmp94       [V106    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V90._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V107 tmp95       [V107,T25] (  2,  4   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n ;  V108 tmp96       [V108,T26] (  2,  4   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V109 tmp97       [V109,T27] (  2,  4   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V110 cse0        [V110,T13] (  5,  4   )     int  -\u003E  r15         \u0022CSE #06: moderate\u0022\n-;  V111 cse1        [V111,T32] (  3,  3   )     ref  -\u003E  r15         \u0022CSE #04: conservative\u0022\n-;  V112 cse2        [V112,T28] (  2,  2   )     ref  -\u003E  rax         \u0022CSE #05: conservative\u0022\n-;  V113 rat0        [V113,T38] (  5, 10   )  simd16  -\u003E  mm0         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n\u002B;  V109 cse0        [V109,T13] (  5,  4   )     int  -\u003E  r15         \u0022CSE #06: moderate\u0022\n\u002B;  V110 cse1        [V110,T31] (  3,  3   )     ref  -\u003E  r15         \u0022CSE #04: moderate\u0022\n\u002B;  V111 cse2        [V111,T27] (  2,  2   )     ref  -\u003E  rax         \u0022CSE #05: moderate\u0022\n\u002B;  V112 cse3        [V112,T32] (  3,  3   )   byref  -\u003E  rdi         \u0022CSE #01: moderate\u0022\n\u002B;  V113 cse4        [V113,T33] (  3,  3   )   byref  -\u003E  rdi         \u0022CSE #03: moderate\u0022\n\u002B;  V114 cse5        [V114,T34] (  3,  3   )     ref  -\u003E  rsi         \u0022CSE #08: moderate\u0022\n\u002B;  V115 rat0        [V115,T40] (  5, 10   )  simd16  -\u003E  mm0         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n ;\n ; Lcl frame size = 72\n \n@@ -150,17 \u002B152,18 @@ G_M5990_IG02:\n G_M5990_IG03:\n        test     edi, edi\n        jne      G_M5990_IG09\n-\t\t\t\t\t\t;; size=8 bbWeight=1 PerfScore 1.25\n\u002B       lea      rdi, bword ptr [rsi\u002B0x38]\n\u002B\t\t\t\t\t\t;; size=12 bbWeight=1 PerfScore 1.75\n G_M5990_IG04:\n-       vmovdqu  xmm0, xmmword ptr [rsi\u002B0x38]\n\u002B       vmovdqu  xmm0, xmmword ptr [rdi]\n        vmovdqu  xmmword ptr [rbp-0x38], xmm0\n-\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.00\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.00\n G_M5990_IG05:\n-       xor      edi, edi\n-       mov      qword ptr [rsi\u002B0x38], rdi\n-       mov      qword ptr [rsi\u002B0x40], rdi\n\u002B       xor      eax, eax\n\u002B       mov      qword ptr [rdi], rax\n\u002B       mov      qword ptr [rdi\u002B0x08], rax\n        mov      dword ptr [rsi\u002B0x20], -1\n-\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 3.25\n\u002B\t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 3.25\n G_M5990_IG06:\n        mov      rsi, bword ptr [rbp-0x68]\n        mov      rdi, gword ptr [rbp-0x38]\n@@ -178,14 \u002B181,9 @@ G_M5990_IG07:\n        mov      r15, bword ptr [rbp-0x68]\n        lea      rdi, bword ptr [r15\u002B0x18]\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n-       mov      r14, gword ptr [r15\u002B0x18]\n-       mov      rsi, gword ptr [r15\u002B0x10]\n-       mov      rdi, 0xD1FFAB1E      ; Consul.QueryResult\u00601[double]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      rdx, rax\n-       mov      rsi, r14\n\u002B       mov      rsi, gword ptr [r15\u002B0x18]\n        mov      rdi, rbx\n\u002B       xor      rdx, rdx\n        mov      rax, 0xD1FFAB1E      ; code for Consul.GetRequest\u00601[double]:ParseQueryHeaders(System.Net.Http.HttpResponseMessage,Consul.QueryResult\u00601[double]):this\n        call     [rax]Consul.GetRequest\u00601[double]:ParseQueryHeaders(System.Net.Http.HttpResponseMessage,Consul.QueryResult\u00601[double]):this\n        mov      rdi, gword ptr [r15\u002B0x10]\n@@ -210,7 \u002B208,7 @@ G_M5990_IG07:\n        mov      rdi, gword ptr [rbp-0x48]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M5990_IG12\n-\t\t\t\t\t\t;; size=157 bbWeight=1 PerfScore 47.25\n\u002B\t\t\t\t\t\t;; size=127 bbWeight=1 PerfScore 41.50\n G_M5990_IG08:\n        mov      r15, bword ptr [rbp-0x68]\n        mov      dword ptr [r15\u002B0x20], 1\n@@ -234,17 \u002B232,18 @@ G_M5990_IG08:\n G_M5990_IG09:\n        cmp      edi, 1\n        jne      G_M5990_IG16\n-\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 1.25\n\u002B       lea      rdi, bword ptr [rsi\u002B0x48]\n\u002B\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 1.75\n G_M5990_IG10:\n-       vmovdqu  xmm0, xmmword ptr [rsi\u002B0x48]\n\u002B       vmovdqu  xmm0, xmmword ptr [rdi]\n        vmovdqu  xmmword ptr [rbp-0x48], xmm0\n-\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.00\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.00\n G_M5990_IG11:\n-       xor      edi, edi\n-       mov      qword ptr [rsi\u002B0x48], rdi\n-       mov      qword ptr [rsi\u002B0x50], rdi\n\u002B       xor      eax, eax\n\u002B       mov      qword ptr [rdi], rax\n\u002B       mov      qword ptr [rdi\u002B0x08], rax\n        mov      dword ptr [rsi\u002B0x20], -1\n-\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 3.25\n\u002B\t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 3.25\n G_M5990_IG12:\n        mov      rdi, gword ptr [rbp-0x48]\n        mov      eax, dword ptr [rdi\u002B0x34]\n@@ -445,15 \u002B444,15 @@ G_M5990_IG22:\n G_M5990_IG23:\n        mov      gword ptr [rbx\u002B0x18], rsi\n        add      rbx, 40\n-       cmp      gword ptr [rbx], 0\n-       je       SHORT G_M5990_IG24\n        mov      rsi, gword ptr [rbx]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M5990_IG24\n        mov      rdx, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[Consul.QueryResult\u00601[System.IO.Stream]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        jmp      SHORT G_M5990_IG28\n-\t\t\t\t\t\t;; size=44 bbWeight=1 PerfScore 12.00\n\u002B\t\t\t\t\t\t;; size=43 bbWeight=1 PerfScore 10.25\n G_M5990_IG24:\n        test     r15, r15\n        je       SHORT G_M5990_IG25\n@@ -529,5 \u002B528,5 @@ RWD00  \tdq\t3F847AE147AE147Bh\t;         0.01\n RWD08  \tdq\t43E0000000000000h\n \n \n-; Total bytes of code 1458, prolog size 50, PerfScore 315.75, instruction count 330, allocated bytes for code 1458 (MethodHash=64cee899) for method Consul.GetRequest\u00601\u002B\u003CExecuteStreaming\u003Ed__11[double]:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 1431, prolog size 50, PerfScore 309.25, instruction count 327, allocated bytes for code 1431 (MethodHash=64cee899) for method Consul.GetRequest\u00601\u002B\u003CExecuteStreaming\u003Ed__11[double]:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1458,"DiffBytes":1431},{"Assembly":"CsvHelper.dasm","Method":"CsvHelper.TypeConversion.CollectionGenericConverter:ConvertFromString(System.String,CsvHelper.IReaderRow,CsvHelper.Configuration.MemberMapData):System.Object:this (FullOpts)","Category":"improvement","Description":"994 -\u003E 926 bytes (-68)","ExtraInfo":null,"Diff":"@@ -12,52 \u002B12,52 @@\n ;* V01 arg1         [V01    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.String\u003E\n ;  V02 arg2         [V02,T02] (  8, 16   )     ref  -\u003E  r15         class-hnd single-def \u003CCsvHelper.IReaderRow\u003E\n ;  V03 arg3         [V03,T01] ( 15, 18   )     ref  -\u003E  rbx         class-hnd single-def \u003CCsvHelper.Configuration.MemberMapData\u003E\n-;  V04 loc0         [V04,T09] (  4, 10   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Collections.IList\u003E\n-;  V05 loc1         [V05,T12] (  3,  6   )     ref  -\u003E  r12         class-hnd single-def \u003CSystem.Type\u003E\n-;  V06 loc2         [V06,T18] (  2,  5   )     ref  -\u003E  [rbp-0x50]  class-hnd spill-single-def \u003CCsvHelper.TypeConversion.ITypeConverter\u003E\n\u002B;  V04 loc0         [V04,T08] (  4, 10   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Collections.IList\u003E\n\u002B;  V05 loc1         [V05,T11] (  3,  6   )     ref  -\u003E  r12         class-hnd single-def \u003CSystem.Type\u003E\n\u002B;  V06 loc2         [V06,T17] (  2,  5   )     ref  -\u003E  [rbp-0x50]  class-hnd spill-single-def \u003CCsvHelper.TypeConversion.ITypeConverter\u003E\n ;  V07 loc3         [V07,T07] (  4, 12.50)     int  -\u003E  [rbp-0x2C] \n ;  V08 loc4         [V08    ] (  2,  8   )     ref  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003CSystem.Object\u003E\n-;  V09 loc5         [V09,T17] (  3,  5   )     int  -\u003E  r12         single-def\n\u002B;  V09 loc5         [V09,T16] (  3,  5   )     int  -\u003E  r12         single-def\n ;  V10 loc6         [V10,T03] (  6, 17   )     int  -\u003E  r13        \n ;* V11 loc7         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Object\u003E\n ;# V12 OutArgs      [V12    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V13 tmp1         [V13,T21] (  2,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022non-inline candidate call\u0022 \u003CCsvHelper.IObjectResolver\u003E\n-;  V14 tmp2         [V14,T20] (  3,  4   )     ref  -\u003E  rax         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Type\u003E\n\u002B;  V13 tmp1         [V13,T20] (  2,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022non-inline candidate call\u0022 \u003CCsvHelper.IObjectResolver\u003E\n\u002B;  V14 tmp2         [V14,T19] (  3,  4   )     ref  -\u003E  rax         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Type\u003E\n ;* V15 tmp3         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022dup spill\u0022 \u003CSystem.String\u003E\n ;* V16 tmp4         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V17 tmp5         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;  V18 tmp6         [V18,T06] (  4, 14   )     ref  -\u003E  rdx        \n ;* V19 tmp7         [V19    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022non-inline candidate call\u0022\n-;  V20 tmp8         [V20,T31] (  3,  1.50)     int  -\u003E  r12        \n-;  V21 tmp9         [V21,T15] (  3,  5   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Reflection.MemberInfo\u003E\n-;  V22 tmp10        [V22,T24] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Reflection.PropertyInfo\u003E\n-;  V23 tmp11        [V23,T27] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Reflection.FieldInfo\u003E\n-;  V24 tmp12        [V24,T32] (  3,  0   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V20 tmp8         [V20,T30] (  3,  1.50)     int  -\u003E  r12        \n\u002B;  V21 tmp9         [V21,T14] (  3,  5   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Reflection.MemberInfo\u003E\n\u002B;  V22 tmp10        [V22,T23] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Reflection.PropertyInfo\u003E\n\u002B;  V23 tmp11        [V23,T26] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Reflection.FieldInfo\u003E\n\u002B;  V24 tmp12        [V24,T31] (  3,  0   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V25 tmp13        [V25    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V26 tmp14        [V26    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V27 tmp15        [V27,T25] (  4,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Type\u003E\n-;  V28 tmp16        [V28,T16] (  3,  5   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Reflection.MemberInfo\u003E\n-;  V29 tmp17        [V29,T26] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Reflection.PropertyInfo\u003E\n-;  V30 tmp18        [V30,T28] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Reflection.FieldInfo\u003E\n-;  V31 tmp19        [V31,T33] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V27 tmp15        [V27,T24] (  4,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Type\u003E\n\u002B;  V28 tmp16        [V28,T15] (  3,  5   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Reflection.MemberInfo\u003E\n\u002B;  V29 tmp17        [V29,T25] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Reflection.PropertyInfo\u003E\n\u002B;  V30 tmp18        [V30,T27] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Reflection.FieldInfo\u003E\n\u002B;  V31 tmp19        [V31,T32] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V32 tmp20        [V32    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V33 tmp21        [V33    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V34 tmp22        [V34,T00] (  6, 30   )     ref  -\u003E  [rbp-0x58]  class-hnd \u0022Inlining Arg\u0022 \u003CCsvHelper.Configuration.MemberNameCollection\u003E\n-;  V35 tmp23        [V35    ] (  2,  4   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V36 tmp24        [V36,T10] (  3,  8   )     ref  -\u003E  rdx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n-;  V37 tmp25        [V37,T08] (  4, 12   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n-;  V38 tmp26        [V38,T22] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V39 tmp27        [V39,T13] (  3,  6   )     ref  -\u003E  rax         single-def \u0022arr expr\u0022\n-;  V40 tmp28        [V40,T14] (  3,  6   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n-;  V41 tmp29        [V41,T23] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V42 tmp30        [V42,T29] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V43 tmp31        [V43,T30] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V34 tmp22        [V34,T00] (  5, 26   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CCsvHelper.Configuration.MemberNameCollection\u003E\n\u002B;  V35 tmp23        [V35    ] (  1,  4   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V36 tmp24        [V36,T09] (  2,  8   )     ref  -\u003E  rdx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n\u002B;* V37 tmp25        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n\u002B;  V38 tmp26        [V38,T21] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V39 tmp27        [V39,T12] (  3,  6   )     ref  -\u003E  rax         single-def \u0022arr expr\u0022\n\u002B;  V40 tmp28        [V40,T13] (  3,  6   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n\u002B;  V41 tmp29        [V41,T22] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V42 tmp30        [V42,T28] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V43 tmp31        [V43,T29] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V44 tmp32        [V44,T04] (  2, 16   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n ;  V45 tmp33        [V45,T05] (  2, 16   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n-;  V46 cse0         [V46,T11] (  5,  7.50)    long  -\u003E  r13         \u0022CSE #02: moderate\u0022\n-;  V47 cse1         [V47,T19] (  7,  4.50)    long  -\u003E  [rbp-0x48]  spill-single-def \u0022CSE #05: moderate\u0022\n\u002B;  V46 cse0         [V46,T10] (  5,  7.50)    long  -\u003E  r13         \u0022CSE #02: moderate\u0022\n\u002B;  V47 cse1         [V47,T18] (  7,  4.50)    long  -\u003E  [rbp-0x48]  spill-single-def \u0022CSE #05: moderate\u0022\n ;\n-; Lcl frame size = 56\n\u002B; Lcl frame size = 40\n \n G_M54928_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M54928_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 56\n-       lea      rbp, [rsp\u002B0x60]\n\u002B       sub      rsp, 40\n\u002B       lea      rbp, [rsp\u002B0x50]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x38], rax\n        mov      qword ptr [rbp-0x40], rax\n@@ -95,7 \u002B95,7 @@ G_M54928_IG03:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       G_M54928_IG23\n\u002B       je       G_M54928_IG20\n        mov      rdi, rax\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x50]\n@@ -136,7 \u002B136,7 @@ G_M54928_IG06:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       G_M54928_IG24\n\u002B       je       G_M54928_IG21\n        mov      rdi, rax\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x50]\n@@ -155,7 \u002B155,7 @@ G_M54928_IG08:\n        mov      rax, qword ptr [rax\u002B0x68]\n        call     [rax\u002B0x28]System.Type:GetGenericArguments():System.Type[]:this\n        cmp      dword ptr [rax\u002B0x08], 0\n-       jbe      G_M54928_IG26\n\u002B       jbe      G_M54928_IG23\n        mov      r12, gword ptr [rax\u002B0x10]\n        mov      rdi, r15\n        mov      r11, 0xD1FFAB1E      ; code for CsvHelper.IReaderRow:get_Context():CsvHelper.CsvContext:this\n@@ -247,7 \u002B247,7 @@ G_M54928_IG14:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M54928_IG15:\n-       add      rsp, 56\n\u002B       add      rsp, 40\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -262,25 \u002B262,22 @@ G_M54928_IG16:\n        mov      rdi, rbx\n        call     [r13\u002B0x30]CsvHelper.Configuration.MemberMapData:get_Names():CsvHelper.Configuration.MemberNameCollection:this\n        test     rax, rax\n-       je       G_M54928_IG25\n-       jmp      SHORT G_M54928_IG21\n-\t\t\t\t\t\t;; size=23 bbWeight=0.50 PerfScore 3.88\n\u002B       je       G_M54928_IG22\n\u002B\t\t\t\t\t\t;; size=21 bbWeight=0.50 PerfScore 2.88\n G_M54928_IG17:\n        lea      rdx, [rbp-0x40]\n-       mov      rsi, gword ptr [rbp-0x58]\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.String](System.Collections.Generic.IEnumerable\u00601[System.String],byref):System.String\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        mov      rdx, rax\n-\t\t\t\t\t\t;; size=33 bbWeight=2 PerfScore 10.50\n-G_M54928_IG18:\n        test     rdx, rdx\n-       jne      SHORT G_M54928_IG20\n-\t\t\t\t\t\t;; size=5 bbWeight=4 PerfScore 5.00\n-G_M54928_IG19:\n\u002B       jne      SHORT G_M54928_IG19\n\u002B\t\t\t\t\t\t;; size=37 bbWeight=4 PerfScore 23.00\n\u002BG_M54928_IG18:\n        mov      rdx, 0xD1FFAB1E      ; \u0027\u0027\n \t\t\t\t\t\t;; size=10 bbWeight=2 PerfScore 0.50\n-G_M54928_IG20:\n\u002BG_M54928_IG19:\n        lea      r8, [rbp-0x38]\n        mov      rdi, r15\n        mov      rsi, r12\n@@ -299,27 \u002B296,10 @@ G_M54928_IG20:\n        mov      rdi, rbx\n        call     [r13\u002B0x30]CsvHelper.Configuration.MemberMapData:get_Names():CsvHelper.Configuration.MemberNameCollection:this\n        test     rax, rax\n-       je       G_M54928_IG25\n-\t\t\t\t\t\t;; size=74 bbWeight=4 PerfScore 71.00\n-G_M54928_IG21:\n-       mov      gword ptr [rbp-0x58], rax\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.String]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       G_M54928_IG17\n-\t\t\t\t\t\t;; size=38 bbWeight=4 PerfScore 24.00\n-G_M54928_IG22:\n-       lea      rsi, [rbp-0x40]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      rdx, rax\n-       jmp      G_M54928_IG18\n-\t\t\t\t\t\t;; size=25 bbWeight=2 PerfScore 20.00\n-G_M54928_IG23:\n\u002B       jne      SHORT G_M54928_IG17\n\u002B       jmp      SHORT G_M54928_IG22\n\u002B\t\t\t\t\t\t;; size=72 bbWeight=4 PerfScore 79.00\n\u002BG_M54928_IG20:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -331,7 \u002B311,7 @@ G_M54928_IG23:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M54928_IG24:\n\u002BG_M54928_IG21:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -343,16 \u002B323,16 @@ G_M54928_IG24:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M54928_IG25:\n\u002BG_M54928_IG22:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M54928_IG26:\n\u002BG_M54928_IG23:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 994, prolog size 29, PerfScore 319.12, instruction count 242, allocated bytes for code 994 (MethodHash=6198296f) for method CsvHelper.TypeConversion.CollectionGenericConverter:ConvertFromString(System.String,CsvHelper.IReaderRow,CsvHelper.Configuration.MemberMapData):System.Object:this (FullOpts)\n\u002B; Total bytes of code 926, prolog size 29, PerfScore 289.62, instruction count 228, allocated bytes for code 926 (MethodHash=6198296f) for method CsvHelper.TypeConversion.CollectionGenericConverter:ConvertFromString(System.String,CsvHelper.IReaderRow,CsvHelper.Configuration.MemberMapData):System.Object:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":994,"DiffBytes":926},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.CompositeDistributedLockHandleExtensions\u002B\u003C\u003Ec:\u003CTryAcquireAllWriteLocksInternalAsync\u003Eb__4_1(Medallion.Threading.IDistributedReaderWriterLock,System.TimeSpan,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask\u00601[Medallion.Threading.IDistributedSynchronizationHandle]:this (FullOpts)","Category":"same-size","Description":"153 -\u003E 153 bytes (0)","ExtraInfo":null,"Diff":"@@ -1,91 \u002B1,91 @@\n ; Assembly listing for method Medallion.Threading.CompositeDistributedLockHandleExtensions\u002B\u003C\u003Ec:\u003CTryAcquireAllWriteLocksInternalAsync\u003Eb__4_1(Medallion.Threading.IDistributedReaderWriterLock,System.TimeSpan,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask\u00601[Medallion.Threading.IDistributedSynchronizationHandle]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; fully interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;* V00 this         [V00    ] (  0,  0   )     ref  -\u003E  zero-ref    this class-hnd single-def \u003CMedallion.Threading.CompositeDistributedLockHandleExtensions\u002B\u003C\u003Ec\u003E\n ;  V01 RetBuf       [V01,T00] (  8,  5   )    long  -\u003E  rbx         single-def\n ;  V02 arg1         [V02,T01] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CMedallion.Threading.IDistributedReaderWriterLock\u003E\n ;* V03 arg2         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.TimeSpan\u003E\n ;* V04 arg3         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V06 tmp1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMedallion.Threading.IDistributedSynchronizationHandle\u003E\n ;* V07 tmp2         [V07    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.ValueTask\u00601[Medallion.Threading.IDistributedSynchronizationHandle]\u003E\n ;  V08 tmp3         [V08,T03] (  3,  2   )    long  -\u003E  r13         single-def \u0022field V03._ticks (fldOffset=0x0)\u0022 P-INDEP\n ;  V09 tmp4         [V09,T02] (  3,  2   )     ref  -\u003E  r14         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n ;* V10 tmp5         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V07._obj (fldOffset=0x0)\u0022 P-INDEP\n ;  V11 tmp6         [V11,T06] (  2,  1   )     ref  -\u003E  rax         single-def \u0022field V07._result (fldOffset=0x8)\u0022 P-INDEP\n ;* V12 tmp7         [V12    ] (  0,  0   )   short  -\u003E  zero-ref    \u0022field V07._token (fldOffset=0x10)\u0022 P-INDEP\n ;* V13 tmp8         [V13    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022field V07._continueOnCapturedContext (fldOffset=0x12)\u0022 P-INDEP\n ;  V14 rat0         [V14,T04] (  2,  4   )    long  -\u003E  rax         \u0022TLS field access\u0022\n ;  V15 rat1         [V15,T05] (  2,  4   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 0\n \n G_M3957_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     rbx\n        lea      rbp, [rsp\u002B0x20]\n        mov      rbx, rsi\n        mov      r15, rdx\n        mov      r13, rcx\n        mov      r14, r8\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 6.50\n G_M3957_IG02:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        cmp      byte  ptr [rax\u002B0x10], 0\n        je       SHORT G_M3957_IG05\n \t\t\t\t\t\t;; size=32 bbWeight=1 PerfScore 6.75\n G_M3957_IG03:\n        mov      rdi, r15\n        mov      rdx, r14\n        mov      rsi, r13\n        mov      r11, 0xD1FFAB1E      ; code for Medallion.Threading.IDistributedReaderWriterLock:TryAcquireWriteLock(System.TimeSpan,System.Threading.CancellationToken):Medallion.Threading.IDistributedSynchronizationHandle:this\n        call     [r11]Medallion.Threading.IDistributedReaderWriterLock:TryAcquireWriteLock(System.TimeSpan,System.Threading.CancellationToken):Medallion.Threading.IDistributedSynchronizationHandle:this\n        xor      rdi, rdi\n        mov      gword ptr [rbx], rdi\n        lea      rdi, [rbx\u002B0x08]\n        mov      rsi, rax\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n        mov      word  ptr [rbx\u002B0x10], 0\n        mov      byte  ptr [rbx\u002B0x12], 1\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 4.62\n G_M3957_IG04:\n        pop      rbx\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 1.75\n G_M3957_IG05:\n        mov      rdi, r15\n        mov      rcx, r14\n        mov      rsi, rbx\n        mov      rdx, r13\n        mov      r11, 0xD1FFAB1E      ; code for Medallion.Threading.IDistributedReaderWriterLock:TryAcquireWriteLockAsync(System.TimeSpan,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask\u00601[Medallion.Threading.IDistributedSynchronizationHandle]:this\n        cmp      dword ptr [rdi], edi\n \t\t\t\t\t\t;; size=24 bbWeight=0.50 PerfScore 1.62\n G_M3957_IG06:\n        pop      rbx\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        tail.jmp [r11]Medallion.Threading.IDistributedReaderWriterLock:TryAcquireWriteLockAsync(System.TimeSpan,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask\u00601[Medallion.Threading.IDistributedSynchronizationHandle]:this\n \t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 2.25\n \n ; Total bytes of code 153, prolog size 25, PerfScore 23.50, instruction count 47, allocated bytes for code 153 (MethodHash=85b7f08a) for method Medallion.Threading.CompositeDistributedLockHandleExtensions\u002B\u003C\u003Ec:\u003CTryAcquireAllWriteLocksInternalAsync\u003Eb__4_1(Medallion.Threading.IDistributedReaderWriterLock,System.TimeSpan,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask\u00601[Medallion.Threading.IDistributedSynchronizationHandle]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":153,"DiffBytes":153},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.ModelConfiguration.Conventions.StoreGeneratedIdentityKeyConvention:IsNonTableSplittingForeignKey(System.Data.Entity.Core.Metadata.Edm.AssociationType,System.Data.Entity.Core.Metadata.Edm.EdmProperty):bool (FullOpts)","Category":"improvement","Description":"1,000 -\u003E 777 bytes (-223)","ExtraInfo":null,"Diff":"@@ -10,89 \u002B10,86 @@\n ;\n ;  V00 arg0         [V00,T00] (  6,  4.50)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationType\u003E\n ;  V01 arg1         [V01,T02] (  3,  2.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmProperty\u003E\n-;  V02 loc0         [V02,T09] (  6,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration\u003E\n-;  V03 loc1         [V03,T10] (  6,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration\u003E\n\u002B;  V02 loc0         [V02,T05] (  6,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration\u003E\n\u002B;  V03 loc1         [V03,T06] (  6,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T01] (  6,  6   )     ref  -\u003E  r15         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Utilities.DatabaseName\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint]\u003E\n-;  V07 tmp3         [V07    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V07 tmp3         [V07    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V08 tmp4         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint]\u003E\n-;  V09 tmp5         [V09    ] (  1,  0.50)   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V09 tmp5         [V09    ] (  1,  0.50)   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V10 tmp6         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V11 tmp7         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n ;* V12 tmp8         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n ;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.MetadataProperty]\u003E\n ;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n ;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.MetadataProperty]\u003E\n-;  V16 tmp12        [V16,T29] (  2,  1   )     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Utilities.DatabaseName\u003E\n-;  V17 tmp13        [V17,T03] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\u003E\n-;  V18 tmp14        [V18    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V16 tmp12        [V16,T21] (  2,  1   )     ref  -\u003E  rdx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Utilities.DatabaseName\u003E\n\u002B;  V17 tmp13        [V17,T08] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\u003E\n\u002B;  V18 tmp14        [V18    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V19 tmp15        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V20 tmp16        [V20,T23] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u003E\n-;  V21 tmp17        [V21,T16] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\u003E\n\u002B;  V20 tmp16        [V20,T22] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u003E\n\u002B;* V21 tmp17        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\u003E\n ;* V22 tmp18        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u003E\n-;  V23 tmp19        [V23,T30] (  2,  1   )     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Utilities.DatabaseName\u003E\n-;  V24 tmp20        [V24,T04] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\u003E\n-;  V25 tmp21        [V25    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V23 tmp19        [V23,T23] (  2,  1   )     ref  -\u003E  rdx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Utilities.DatabaseName\u003E\n\u002B;  V24 tmp20        [V24,T09] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\u003E\n\u002B;  V25 tmp21        [V25    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V26 tmp22        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V27 tmp23        [V27,T24] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u003E\n-;  V28 tmp24        [V28,T17] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\u003E\n\u002B;  V27 tmp23        [V27,T24] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u003E\n\u002B;* V28 tmp24        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\u003E\n ;* V29 tmp25        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u003E\n-;  V30 tmp26        [V30,T05] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\u003E\n-;  V31 tmp27        [V31    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp26        [V30,T10] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\u003E\n\u002B;  V31 tmp27        [V31    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V32 tmp28        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V33 tmp29        [V33,T25] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u003E\n-;  V34 tmp30        [V34,T18] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\u003E\n\u002B;  V33 tmp29        [V33,T25] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u003E\n... diff truncated; middle omitted ...\n\u002B       je       G_M37642_IG17\n\u002B       mov      rsi, gword ptr [rbx\u002B0x40]\n        test     rsi, rsi\n-       je       G_M37642_IG24\n-       cmp      byte  ptr [r15\u002B0x70], 0\n-       je       SHORT G_M37642_IG16\n-       mov      r15, gword ptr [r15\u002B0x40]\n-       test     r15, r15\n-       je       G_M37642_IG26\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M37642_IG14\n-       lea      rsi, [rbp-0x40]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M37642_IG15\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 13.12\n-G_M37642_IG14:\n-       lea      rdx, [rbp-0x40]\n-       mov      rsi, r15\n\u002B       je       G_M37642_IG19\n\u002B       lea      rdx, [rbp-0x30]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration],byref):System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M37642_IG15:\n-       cmp      byte  ptr [rbp-0x40], 0\n-       je       G_M37642_IG27\n\u002B       cmp      byte  ptr [rbp-0x30], 0\n\u002B       je       G_M37642_IG20\n\u002B       mov      rdx, gword ptr [rax\u002B0x08]\n\u002B       test     rdx, rdx\n\u002B       je       G_M37642_IG17\n\u002B       cmp      byte  ptr [r15\u002B0x70], 0\n\u002B       je       SHORT G_M37642_IG11\n\u002B       mov      rsi, gword ptr [r15\u002B0x40]\n\u002B       test     rsi, rsi\n\u002B       je       G_M37642_IG19\n\u002B       lea      rdx, [rbp-0x38]\n\u002B       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration],byref):System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\n\u002B       mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n\u002B       call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n\u002B       cmp      byte  ptr [rbp-0x38], 0\n\u002B\t\t\t\t\t\t;; size=213 bbWeight=0.50 PerfScore 22.38\n\u002BG_M37642_IG10:\n\u002B       je       G_M37642_IG20\n        mov      r15, gword ptr [rax\u002B0x08]\n-       jmp      SHORT G_M37642_IG17\n-\t\t\t\t\t\t;; size=16 bbWeight=0.50 PerfScore 3.00\n-G_M37642_IG16:\n\u002B       jmp      SHORT G_M37642_IG12\n\u002B\t\t\t\t\t\t;; size=12 bbWeight=0.50 PerfScore 2.50\n\u002BG_M37642_IG11:\n        xor      r15, r15\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M37642_IG17:\n\u002BG_M37642_IG12:\n        cmp      byte  ptr [rbx\u002B0x70], 0\n-       je       SHORT G_M37642_IG20\n-       mov      rbx, gword ptr [rbx\u002B0x40]\n-       test     rbx, rbx\n-       je       G_M37642_IG26\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M37642_IG18\n-       lea      rsi, [rbp-0x48]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M37642_IG19\n-\t\t\t\t\t\t;; size=68 bbWeight=0.50 PerfScore 10.50\n-G_M37642_IG18:\n-       lea      rdx, [rbp-0x48]\n-       mov      rsi, rbx\n\u002B       je       SHORT G_M37642_IG13\n\u002B       mov      rsi, gword ptr [rbx\u002B0x40]\n\u002B       test     rsi, rsi\n\u002B       je       G_M37642_IG19\n\u002B       lea      rdx, [rbp-0x40]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration],byref):System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M37642_IG19:\n-       cmp      byte  ptr [rbp-0x48], 0\n-       je       G_M37642_IG27\n\u002B       cmp      byte  ptr [rbp-0x40], 0\n\u002B       je       SHORT G_M37642_IG20\n        mov      rbx, gword ptr [rax\u002B0x08]\n-       jmp      SHORT G_M37642_IG21\n-\t\t\t\t\t\t;; size=16 bbWeight=0.50 PerfScore 3.00\n-G_M37642_IG20:\n\u002B       jmp      SHORT G_M37642_IG14\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.12\n\u002BG_M37642_IG13:\n        xor      rbx, rbx\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M37642_IG21:\n\u002BG_M37642_IG14:\n        cmp      byte  ptr [r15], r15b\n        test     rbx, rbx\n-       je       SHORT G_M37642_IG24\n\u002B       je       SHORT G_M37642_IG17\n        cmp      r15, rbx\n-       je       SHORT G_M37642_IG22\n\u002B       je       SHORT G_M37642_IG15\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      rsi, gword ptr [r15\u002B0x08]\n        mov      edx, 4\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Equals(System.String,System.String,int):bool\n        call     [rax]System.String:Equals(System.String,System.String,int):bool\n        test     eax, eax\n-       je       SHORT G_M37642_IG24\n\u002B       je       SHORT G_M37642_IG17\n        mov      rdi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [r15\u002B0x10]\n        mov      edx, 4\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Equals(System.String,System.String,int):bool\n        call     [rax]System.String:Equals(System.String,System.String,int):bool\n        test     eax, eax\n-       je       SHORT G_M37642_IG24\n\u002B       je       SHORT G_M37642_IG17\n \t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 11.00\n-G_M37642_IG22:\n\u002BG_M37642_IG15:\n        xor      eax, eax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M37642_IG23:\n-       add      rsp, 56\n\u002BG_M37642_IG16:\n\u002B       add      rsp, 48\n        pop      rbx\n-       pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 1.62\n-G_M37642_IG24:\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 1.38\n\u002BG_M37642_IG17:\n        mov      eax, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 0.12\n-G_M37642_IG25:\n-       add      rsp, 56\n\u002BG_M37642_IG18:\n\u002B       add      rsp, 48\n        pop      rbx\n-       pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 1.62\n-G_M37642_IG26:\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 1.38\n\u002BG_M37642_IG19:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M37642_IG27:\n\u002BG_M37642_IG20:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1000, prolog size 35, PerfScore 125.27, instruction count 234, allocated bytes for code 1000 (MethodHash=1cd16cf5) for method System.Data.Entity.ModelConfiguration.Conventions.StoreGeneratedIdentityKeyConvention:IsNonTableSplittingForeignKey(System.Data.Entity.Core.Metadata.Edm.AssociationType,System.Data.Entity.Core.Metadata.Edm.EdmProperty):bool (FullOpts)\n\u002B; Total bytes of code 777, prolog size 28, PerfScore 92.52, instruction count 177, allocated bytes for code 777 (MethodHash=1cd16cf5) for method System.Data.Entity.ModelConfiguration.Conventions.StoreGeneratedIdentityKeyConvention:IsNonTableSplittingForeignKey(System.Data.Entity.Core.Metadata.Edm.AssociationType,System.Data.Entity.Core.Metadata.Edm.EdmProperty):bool (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1000,"DiffBytes":777},{"Assembly":"MathNet.Numerics.dasm","Method":"MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:SameAs[long](MathNet.Numerics.LinearAlgebra.Matrix\u00601[long],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)","Category":"improvement","Description":"594 -\u003E 120 bytes (-474)","ExtraInfo":null,"Diff":"@@ -1,214 \u002B1,65 @@\n ; Assembly listing for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:SameAs[long](MathNet.Numerics.LinearAlgebra.Matrix\u00601[long],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n-; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data\n\u002B; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 12,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V01 arg1         [V01,T03] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[long]\u003E\n-;  V02 arg2         [V02,T01] ( 11,  6.50)     int  -\u003E  r15         single-def\n-;  V03 arg3         [V03,T02] ( 11,  6.50)     int  -\u003E  r14         single-def\n-;  V04 arg4         [V04,T04] (  3,  2.50)   ubyte  -\u003E  r13         single-def\n-;  V05 loc0         [V05,T08] (  4,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]\u003E\n\u002B;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V01 arg1         [V01,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[long]\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  4   )     int  -\u003E  r15         single-def\n\u002B;  V03 arg3         [V03,T04] (  4,  4   )     int  -\u003E  r14         single-def\n\u002B;* V04 arg4         [V04    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def\n\u002B;* V05 loc0         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V07 tmp1         [V07,T00] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003CSystem.Numerics.Vector\u00601[float][]\u003E\n-;  V09 tmp3         [V09,T06] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003CSystem.Numerics.Vector\u00601[float][]\u003E\n-;  V11 tmp5         [V11,T11] (  2,  1   )     int  -\u003E  rsi         \u0022Inline return value spill temp\u0022\n-;  V12 tmp6         [V12,T09] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V13 tmp7         [V13,T10] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V14 tmp8         [V14,T07] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003CSystem.Numerics.Vector\u00601[float][]\u003E\n-;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022Single return block return value\u0022\n ;\n ; Lcl frame size = 8\n \n G_M27420_IG01:\n-       push     rbp\n        push     r15\n        push     r14\n        push     r13\n-       push     r12\n        push     rbx\n        push     rax\n-       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n        mov      r15d, edx\n        mov      r14d, ecx\n-       mov      r13d, r8d\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.75\n G_M27420_IG02:\n-       mov      r12, gword ptr [rsi\u002B0x08]\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M27420_IG11\n-\t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 7.00\n-G_M27420_IG03:\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M27420_IG07\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      SHORT G_M27420_IG05\n\u002B       cmp      byte  ptr [rsi], sil\n        mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        mov      rdi, r13\n        mov      esi, r15d\n        mov      edx, r14d\n        mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n        call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n        imul     r15d, r14d\n        movsxd   rsi, r15d\n        mov      rdi, 0xD1FFAB1E      ; System.Numerics.Vector\u00601[float][]\n        call     CORINFO_HELP_NEWARR_1_VC\n        mov      rsi, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, rbx\n        mov      rsi, r13\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=150 bbWeight=0.50 PerfScore 12.62\n-G_M27420_IG04:\n\u002B\t\t\t\t\t\t;; size=89 bbWeight=1 PerfScore 17.25\n\u002BG_M27420_IG03:\n        add      rsp, 8\n        pop      rbx\n-       pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n-       pop      rbp\n        tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M27420_IG05:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 5.00\n-G_M27420_IG06:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M27420_IG07:\n-       test     r13b, r13b\n-       je       SHORT G_M27420_IG09\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 5.62\n-G_M27420_IG08:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M27420_IG09:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       cmp      r15d, r14d\n-       mov      esi, r14d\n-       cmovle   esi, r15d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; System.Numerics.Vector\u00601[float][]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 7.12\n-G_M27420_IG10:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x10]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:Diagonal(MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M27420_IG11:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       mov      esi, r15d\n-       imul     esi, r14d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; System.Numerics.Vector\u00601[float][]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=89 bbWeight=0.50 PerfScore 7.75\n-G_M27420_IG12:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n\u002B\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 594, prolog size 16, PerfScore 66.75, instruction count 157, allocated bytes for code 594 (MethodHash=d37594e3) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:SameAs[long](MathNet.Numerics.LinearAlgebra.Matrix\u00601[long],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n\u002B; Total bytes of code 120, prolog size 8, PerfScore 27.25, instruction count 34, allocated bytes for code 120 (MethodHash=d37594e3) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:SameAs[long](MathNet.Numerics.LinearAlgebra.Matrix\u00601[long],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":594,"DiffBytes":120},{"Assembly":"Microsoft.AspNetCore.OData.dasm","Method":"Microsoft.AspNetCore.OData.Routing.Template.ActionSegmentTemplate:.ctor(Microsoft.OData.UriParser.OperationSegment):this (FullOpts)","Category":"improvement","Description":"460 -\u003E 398 bytes (-62)","ExtraInfo":null,"Diff":"@@ -1,157 \u002B1,135 @@\n ; Assembly listing for method Microsoft.AspNetCore.OData.Routing.Template.ActionSegmentTemplate:.ctor(Microsoft.OData.UriParser.OperationSegment):this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 10 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T01] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMicrosoft.AspNetCore.OData.Routing.Template.ActionSegmentTemplate\u003E\n ;  V01 arg1         [V01,T00] (  6,  6   )     ref  -\u003E  rbx         class-hnd single-def \u003CMicrosoft.OData.UriParser.OperationSegment\u003E\n ;* V02 loc0         [V02    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMicrosoft.OData.Edm.IEdmOperation\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V04 tmp1         [V04,T05] (  4,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n-;  V05 tmp2         [V05,T08] (  2,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V06 tmp3         [V06,T06] (  3,  0   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.OData.ODataException\u003E\n-;  V07 tmp4         [V07,T07] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V08 tmp5         [V08,T02] (  4,  7   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[Microsoft.OData.Edm.IEdmOperation]\u003E\n-;  V09 tmp6         [V09    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V04 tmp1         [V04,T04] (  4,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n\u002B;  V05 tmp2         [V05,T07] (  2,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V06 tmp3         [V06,T05] (  3,  0   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.OData.ODataException\u003E\n\u002B;  V07 tmp4         [V07,T06] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V08 tmp5         [V08,T02] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[Microsoft.OData.Edm.IEdmOperation]\u003E\n\u002B;  V09 tmp6         [V09    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V10 tmp7         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V11 tmp8         [V11,T03] (  4,  3   )     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CMicrosoft.OData.Edm.IEdmOperation\u003E\n-;  V12 tmp9         [V12,T04] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Microsoft.OData.Edm.IEdmOperation]\u003E\n\u002B;  V11 tmp8         [V11,T03] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMicrosoft.OData.Edm.IEdmOperation\u003E\n\u002B;* V12 tmp9         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Microsoft.OData.Edm.IEdmOperation]\u003E\n ;* V13 tmp10        [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V14 tmp11        [V14,T09] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V14 tmp11        [V14,T08] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;\n-; Lcl frame size = 16\n\u002B; Lcl frame size = 8\n \n G_M41057_IG01:\n        push     rbp\n        push     r15\n        push     r14\n-       push     r13\n        push     rbx\n-       sub      rsp, 16\n-       lea      rbp, [rsp\u002B0x30]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x20]\n        xor      eax, eax\n-       mov      qword ptr [rbp-0x28], rax\n\u002B       mov      qword ptr [rbp-0x20], rax\n        mov      r15, rdi\n        mov      rbx, rsi\n-\t\t\t\t\t\t;; size=29 bbWeight=1 PerfScore 7.50\n\u002B\t\t\t\t\t\t;; size=24 bbWeight=1 PerfScore 7.25\n G_M41057_IG02:\n        test     rbx, rbx\n-       je       G_M41057_IG07\n-       mov      r14, gword ptr [rbx\u002B0x28]\n-       test     r14, r14\n-       je       G_M41057_IG08\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[Microsoft.OData.Edm.IEdmOperation]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M41057_IG04\n-\t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 9.50\n-G_M41057_IG03:\n-       lea      rsi, [rbp-0x28]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      r13, rax\n-       jmp      SHORT G_M41057_IG05\n-\t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 5.00\n-G_M41057_IG04:\n-       lea      rdx, [rbp-0x28]\n-       mov      rsi, r14\n\u002B       je       G_M41057_IG04\n\u002B       mov      rsi, gword ptr [rbx\u002B0x28]\n\u002B       test     rsi, rsi\n\u002B       je       G_M41057_IG05\n\u002B       lea      rdx, [rbp-0x20]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[Microsoft.OData.Edm.IEdmOperation](System.Collections.Generic.IEnumerable\u00601[Microsoft.OData.Edm.IEdmOperation],byref):Microsoft.OData.Edm.IEdmOperation\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      r13, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M41057_IG05:\n-       cmp      byte  ptr [rbp-0x28], 0\n-       je       G_M41057_IG09\n-       mov      rdi, r13\n\u002B       mov      r14, rax\n\u002B       cmp      byte  ptr [rbp-0x20], 0\n\u002B       je       G_M41057_IG06\n\u002B       mov      rdi, r14\n        mov      r11, 0xD1FFAB1E      ; code for Microsoft.OData.Edm.IEdmSchemaElement:get_SchemaElementKind():int:this\n        call     [r11]Microsoft.OData.Edm.IEdmSchemaElement:get_SchemaElementKind():int:this\n        cmp      eax, 3\n-       jne      G_M41057_IG10\n-       mov      rsi, r13\n\u002B       jne      G_M41057_IG07\n\u002B       mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.OData.Edm.IEdmAction\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTINTERFACE\n        call     [rax]CORINFO_HELP_CHKCASTINTERFACE\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x08]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rsi, gword ptr [rbx\u002B0x38]\n        lea      rdi, bword ptr [r15\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r15\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        nop      \n-\t\t\t\t\t\t;; size=98 bbWeight=1 PerfScore 17.75\n-G_M41057_IG06:\n-       add      rsp, 16\n\u002B\t\t\t\t\t\t;; size=149 bbWeight=1 PerfScore 26.50\n\u002BG_M41057_IG03:\n\u002B       add      rsp, 8\n        pop      rbx\n-       pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n-G_M41057_IG07:\n\u002B\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n\u002BG_M41057_IG04:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; \u0027segment\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:.ctor(System.String):this\n        call     [rax]System.ArgumentNullException:.ctor(System.String):this\n        mov      rdi, rbx\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M41057_IG08:\n\u002BG_M41057_IG05:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M41057_IG09:\n\u002BG_M41057_IG06:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M41057_IG10:\n\u002BG_M41057_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.AspNetCore.OData.SRResources:get_SegmentShouldBeKind():System.String\n        call     [rax]Microsoft.AspNetCore.OData.SRResources:get_SegmentShouldBeKind():System.String\n        mov      rbx, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Object[]\n        mov      esi, 2\n        call     CORINFO_HELP_NEWARR_1_PTR\n        mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; \u0027Action\u0027\n        mov      gword ptr [r15\u002B0x10], rdi\n        mov      rdi, 0xD1FFAB1E      ; \u0027ActionSegmentTemplate\u0027\n        mov      gword ptr [r15\u002B0x18], rdi\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.OData.ODataException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      rdi, rbx\n        mov      rsi, r15\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.AspNetCore.OData.Error:Format(System.String,System.Object[]):System.String\n        call     [rax]Microsoft.AspNetCore.OData.Error:Format(System.String,System.Object[]):System.String\n        mov      rsi, rax\n        mov      rdi, r14\n        xor      rdx, rdx\n        mov      rax, 0xD1FFAB1E      ; code for System.InvalidOperationException:.ctor(System.String,System.Exception):this\n        call     [rax]System.InvalidOperationException:.ctor(System.String,System.Exception):this\n        mov      rdi, r14\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=131 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 460, prolog size 23, PerfScore 45.75, instruction count 106, allocated bytes for code 460 (MethodHash=20e05f9e) for method Microsoft.AspNetCore.OData.Routing.Template.ActionSegmentTemplate:.ctor(Microsoft.OData.UriParser.OperationSegment):this (FullOpts)\n\u002B; Total bytes of code 398, prolog size 18, PerfScore 37.00, instruction count 90, allocated bytes for code 398 (MethodHash=20e05f9e) for method Microsoft.AspNetCore.OData.Routing.Template.ActionSegmentTemplate:.ctor(Microsoft.OData.UriParser.OperationSegment):this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":460,"DiffBytes":398},{"Assembly":"Microsoft.CodeAnalysis.Features.dasm","Method":"Microsoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002B\u003CComputeFromLinkedDocumentsAsync\u003Ed__3:MoveNext():this (FullOpts)","Category":"improvement","Description":"4,065 -\u003E 4,000 bytes (-65)","ExtraInfo":null,"Diff":"@@ -9,24 \u002B9,24 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T01] ( 70, 63   )   byref  -\u003E  [rbp-0x238]  this EH-live single-def\n-;  V01 loc0         [V01,T42] (  7,  6   )     int  -\u003E  [rbp-0x2C]  do-not-enreg[M] EH-live\n-;  V02 loc1         [V02,T84] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CMicrosoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u003E\n-;  V03 loc2         [V03,T94] (  3,  3   )  struct (32) [rbp-0x50]  do-not-enreg[S] must-init ld-addr-op \u003CSystem.ValueTuple\u00602[Microsoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002BTokenInformation,Microsoft.CodeAnalysis.Shared.Utilities.SupportedPlatformData]\u003E\n\u002B;  V01 loc0         [V01,T41] (  7,  6   )     int  -\u003E  [rbp-0x2C]  do-not-enreg[M] EH-live\n\u002B;  V02 loc1         [V02,T83] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CMicrosoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u003E\n\u002B;  V03 loc2         [V03,T93] (  3,  3   )  struct (32) [rbp-0x50]  do-not-enreg[S] must-init ld-addr-op \u003CSystem.ValueTuple\u00602[Microsoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002BTokenInformation,Microsoft.CodeAnalysis.Shared.Utilities.SupportedPlatformData]\u003E\n ;* V04 loc3         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMicrosoft.CodeAnalysis.SemanticModel\u003E\n-;  V05 loc4         [V05,T107] (  2,  2   )  struct (24) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMicrosoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002BTokenInformation\u003E\n-;  V06 loc5         [V06,T58] (  4,  4   )  struct (32) [rbp-0x88]  do-not-enreg[SF] must-init ld-addr-op \u003CSystem.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentId,Microsoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002BTokenInformation]\u003E\n\u002B;  V05 loc4         [V05,T105] (  2,  2   )  struct (24) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMicrosoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002BTokenInformation\u003E\n\u002B;  V06 loc5         [V06,T57] (  4,  4   )  struct (32) [rbp-0x88]  do-not-enreg[SF] must-init ld-addr-op \u003CSystem.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentId,Microsoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002BTokenInformation]\u003E\n ;* V07 loc6         [V07    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Collections.Immutable.ImmutableArray\u00601[Microsoft.CodeAnalysis.ProjectId]\u003E\n ;* V08 loc7         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u003CMicrosoft.CodeAnalysis.PooledObjects.PooledDisposer\u00601[Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder\u00601[Microsoft.CodeAnalysis.ProjectId]]\u003E\n-;  V09 loc8         [V09,T41] (  4,  7   )     ref  -\u003E  r13         ld-addr-op class-hnd single-def \u003CMicrosoft.CodeAnalysis.PooledObjects.ArrayBuilder\u00601[Microsoft.CodeAnalysis.ProjectId]\u003E\n\u002B;  V09 loc8         [V09,T40] (  4,  7   )     ref  -\u003E  r13         ld-addr-op class-hnd single-def \u003CMicrosoft.CodeAnalysis.PooledObjects.ArrayBuilder\u00601[Microsoft.CodeAnalysis.ProjectId]\u003E\n ;* V10 loc9         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CMicrosoft.CodeAnalysis.Shared.Utilities.SupportedPlatformData\u003E\n ;  V11 loc10        [V11    ] ( 28, 28   )  struct (24) [rbp-0xA0]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredValueTaskAwaitable\u00601\u002BConfiguredValueTaskAwaiter[Microsoft.CodeAnalysis.SemanticModel]\u003E\n ;  V12 loc11        [V12,T33] (  8,  8   )  struct (24) [rbp-0xB8]  do-not-enreg[DAS] must-init defined-via-address ld-addr-op \u003CSystem.Threading.Tasks.ValueTask\u00601[Microsoft.CodeAnalysis.SemanticModel]\u003E\n ;* V13 loc12        [V13    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredValueTaskAwaitable\u00601[Microsoft.CodeAnalysis.SemanticModel]\u003E\n ;* V14 loc13        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMicrosoft.CodeAnalysis.SemanticModel\u003E\n-;  V15 loc14        [V15,T43] (  6,  6   )  struct (24) [rbp-0xD0]  do-not-enreg[DAS] must-init defined-via-address \u003CMicrosoft.CodeAnalysis.SyntaxToken\u003E\n\u002B;  V15 loc14        [V15,T42] (  6,  6   )  struct (24) [rbp-0xD0]  do-not-enreg[DAS] must-init defined-via-address \u003CMicrosoft.CodeAnalysis.SyntaxToken\u003E\n ;* V16 loc15        [V16    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[S] ld-addr-op \u003CMicrosoft.CodeAnalysis.SyntaxToken\u003E\n-;  V17 loc16        [V17,T108] (  2,  2   )  struct (24) [rbp-0xE8]  do-not-enreg[DAS] must-init defined-via-address \u003CMicrosoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002BTokenInformation\u003E\n-;  V18 loc17        [V18,T95] (  3,  3   )  struct (40) [rbp-0x110]  do-not-enreg[DAS] must-init defined-via-address ld-addr-op \u003CSystem.Nullable\u00601[System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentId,Microsoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002BTokenInformation]]\u003E\n\u002B;  V17 loc16        [V17,T106] (  2,  2   )  struct (24) [rbp-0xE8]  do-not-enreg[DAS] must-init defined-via-address \u003CMicrosoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002BTokenInformation\u003E\n\u002B;  V18 loc17        [V18,T94] (  3,  3   )  struct (40) [rbp-0x110]  do-not-enreg[DAS] must-init defined-via-address ld-addr-op \u003CSystem.Nullable\u00601[System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentId,Microsoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002BTokenInformation]]\u003E\n ;* V19 loc18        [V19    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op single-def \u003CSystem.Collections.Immutable.ImmutableArray\u00601[Microsoft.CodeAnalysis.ISymbol]\u003E\n ;* V20 loc19        [V20    ] (  0,  0   )  struct (48) zero-ref    do-not-enreg[SF] ld-addr-op \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentId,Microsoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002BTokenInformation]]\u003E\n ;* V21 loc20        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMicrosoft.CodeAnalysis.DocumentId\u003E\n@@ -35,48 \u002B35,48 @@\n ;  V24 OutArgs      [V24    ] (  1,  1   )  struct (32) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V25 tmp1         [V25    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;  V26 tmp2         [V26,T15] (  8, 16   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentId,Microsoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002BTokenInformation]]\u003E\n-;  V27 tmp3         [V27,T79] (  2,  4   )  struct (32) [rbp-0x130]  do-not-enreg[SF] must-init ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentId,Microsoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002BTokenInformation]\u003E\n-;  V28 tmp4         [V28,T80] (  2,  4   )  struct (32) [rbp-0x150]  do-not-enreg[SF] must-init ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentId,Microsoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002BTokenInformation]\u003E\n\u002B;  V27 tmp3         [V27,T78] (  2,  4   )  struct (32) [rbp-0x130]  do-not-enreg[SF] must-init ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentId,Microsoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002BTokenInformation]\u003E\n\u002B;  V28 tmp4         [V28,T79] (  2,  4   )  struct (32) [rbp-0x150]  do-not-enreg[SF] must-init ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentId,Microsoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002BTokenInformation]\u003E\n ;  V29 tmp5         [V29,T18] (  7, 14   )     ref  -\u003E  [rbp-0x240]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentId,Microsoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002BTokenInformation]]\u003E\n ;* V30 tmp6         [V30    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;  V31 tmp7         [V31,T61] (  2,  4   )     ref  -\u003E  rcx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentId,Microsoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002BTokenInformation],bool]\u003E\n-;  V32 tmp8         [V32,T62] (  2,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022impSpillLclRefs\u0022 \u003CSystem.Collections.Generic.List\u00601[System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentId,Microsoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002BTokenInformation]]\u003E\n\u002B;  V31 tmp7         [V31,T60] (  2,  4   )     ref  -\u003E  rcx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentId,Microsoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002BTokenInformation],bool]\u003E\n\u002B;  V32 tmp8         [V32,T61] (  2,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022impSpillLclRefs\u0022 \u003CSystem.Collections.Generic.List\u00601[System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentId,Microsoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002BTokenInformation]]\u003E\n ;* V33 tmp9         [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V34 tmp10        [V34,T50] (  4,  4   )     ref  -\u003E  rcx        \n-;  V35 tmp11        [V35,T96] (  3,  3   )  struct (32) [rbp-0x170]  do-not-enreg[SF] must-init \u003CSystem.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentId,Microsoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002BTokenInformation]\u003E\n... diff truncated; middle omitted ...\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M48686_IG69:\n\u002BG_M48686_IG67:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n-G_M48686_IG70:\n\u002BG_M48686_IG68:\n        cmp      dword ptr [rbp-0x2C], 0\n-       jge      G_M48686_IG77\n\u002B       jge      G_M48686_IG75\n        mov      esi, 1\n        mov      rdi, gword ptr [rbp-0x280]\n        mov      r11, 0xD1FFAB1E      ; code for Microsoft.CodeAnalysis.PooledObjects.IPooled:Free(bool):this\n        call     [r11]Microsoft.CodeAnalysis.PooledObjects.IPooled:Free(bool):this\n-       jmp      SHORT G_M48686_IG77\n\u002B       jmp      SHORT G_M48686_IG75\n \t\t\t\t\t\t;; size=37 bbWeight=1 PerfScore 8.50\n-G_M48686_IG71:\n\u002BG_M48686_IG69:\n        xor      r12, r12\n        vxorps   ymm0, ymm0, ymm0\n        vmovdqu  ymmword ptr [rbp-0x50], ymm0\n-       jmp      SHORT G_M48686_IG77\n\u002B       jmp      SHORT G_M48686_IG75\n \t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 3.58\n-G_M48686_IG72:\n\u002BG_M48686_IG70:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.ValueTuple\u00602[Microsoft.CodeAnalysis.DocumentId,Microsoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002BTokenInformation]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M48686_IG19\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M48686_IG73:\n\u002BG_M48686_IG71:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M48686_IG74:\n\u002BG_M48686_IG72:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M48686_IG75:\n\u002BG_M48686_IG73:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n-G_M48686_IG76:\n\u002BG_M48686_IG74:\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder\u00601[Microsoft.CodeAnalysis.ProjectId]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M48686_IG51\n\u002B       jmp      G_M48686_IG49\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M48686_IG77:\n\u002BG_M48686_IG75:\n        mov      dword ptr [r15\u002B0x38], -2\n        xor      ecx, ecx\n        mov      qword ptr [r15\u002B0x68], rcx\n \t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 2.25\n-G_M48686_IG78:\n\u002BG_M48686_IG76:\n        mov      gword ptr [r15\u002B0x10], rcx\n \t\t\t\t\t\t;; size=4 bbWeight=1 PerfScore 1.00\n-G_M48686_IG79:\n\u002BG_M48686_IG77:\n        mov      gword ptr [r15\u002B0x18], rcx\n \t\t\t\t\t\t;; size=4 bbWeight=1 PerfScore 1.00\n-G_M48686_IG80:\n\u002BG_M48686_IG78:\n        mov      gword ptr [r15\u002B0x20], rcx\n \t\t\t\t\t\t;; size=4 bbWeight=1 PerfScore 1.00\n-G_M48686_IG81:\n\u002BG_M48686_IG79:\n        mov      gword ptr [r15\u002B0x28], rcx\n        add      r15, 64\n \t\t\t\t\t\t;; size=8 bbWeight=1 PerfScore 1.25\n-G_M48686_IG82:\n\u002BG_M48686_IG80:\n        vmovdqu  ymm0, ymmword ptr [rbp-0x50]\n        vmovdqu32 ymmword ptr [rbp-0x220], ymm0\n \t\t\t\t\t\t;; size=12 bbWeight=1 PerfScore 3.00\n-G_M48686_IG83:\n\u002BG_M48686_IG81:\n        mov      gword ptr [rbp-0x220], r12\n        cmp      gword ptr [r15], 0\n-       je       SHORT G_M48686_IG84\n\u002B       je       SHORT G_M48686_IG82\n        lea      rdi, [rsp]\n        lea      rsi, [rbp-0x220]\n        mov      rcx, gword ptr [rsi]\n@@ -1183,9 \u002B1165,9 @@ G_M48686_IG83:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.ValueTuple\u00602[Microsoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002BTokenInformation,Microsoft.CodeAnalysis.Shared.Utilities.SupportedPlatformData]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.ValueTuple\u00602[Microsoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002BTokenInformation,System.__Canon]]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.ValueTuple\u00602[Microsoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002BTokenInformation,System.__Canon]],System.ValueTuple\u00602[Microsoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002BTokenInformation,System.__Canon])\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.ValueTuple\u00602[Microsoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002BTokenInformation,System.__Canon]]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.ValueTuple\u00602[Microsoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002BTokenInformation,System.__Canon]],System.ValueTuple\u00602[Microsoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002BTokenInformation,System.__Canon])\n-       jmp      SHORT G_M48686_IG85\n\u002B       jmp      SHORT G_M48686_IG83\n \t\t\t\t\t\t;; size=92 bbWeight=1 PerfScore 23.50\n-G_M48686_IG84:\n\u002BG_M48686_IG82:\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[System.ValueTuple\u00602[Microsoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002BTokenInformation,Microsoft.CodeAnalysis.Shared.Utilities.SupportedPlatformData]]\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -1206,10 \u002B1188,10 @@ G_M48686_IG84:\n        mov      rsi, rbx\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n \t\t\t\t\t\t;; size=98 bbWeight=1 PerfScore 13.75\n-G_M48686_IG85:\n\u002BG_M48686_IG83:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M48686_IG86:\n\u002BG_M48686_IG84:\n        vzeroupper \n        add      rsp, 648\n        pop      rbx\n@@ -1220,59 \u002B1202,59 @@ G_M48686_IG86:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=21 bbWeight=1 PerfScore 5.25\n-G_M48686_IG87:\n\u002BG_M48686_IG85:\n        sub      rsp, 40\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M48686_IG88:\n\u002BG_M48686_IG86:\n        cmp      dword ptr [rbp-0x2C], 0\n-       jge      SHORT G_M48686_IG89\n\u002B       jge      SHORT G_M48686_IG87\n        cmp      gword ptr [rbp-0x280], 0\n-       je       SHORT G_M48686_IG89\n\u002B       je       SHORT G_M48686_IG87\n        mov      esi, 1\n        mov      rdi, gword ptr [rbp-0x280]\n        mov      r11, 0xD1FFAB1E      ; code for Microsoft.CodeAnalysis.PooledObjects.IPooled:Free(bool):this\n        call     [r11]Microsoft.CodeAnalysis.PooledObjects.IPooled:Free(bool):this\n \t\t\t\t\t\t;; size=41 bbWeight=0 PerfScore 0.00\n-G_M48686_IG89:\n\u002BG_M48686_IG87:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M48686_IG90:\n\u002BG_M48686_IG88:\n        vzeroupper \n        add      rsp, 40\n        ret      \n \t\t\t\t\t\t;; size=8 bbWeight=0 PerfScore 0.00\n-G_M48686_IG91:\n\u002BG_M48686_IG89:\n        sub      rsp, 40\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M48686_IG92:\n\u002BG_M48686_IG90:\n        mov      rdx, rdi\n        mov      r15, bword ptr [rbp-0x238]\n        mov      dword ptr [r15\u002B0x38], -2\n        xor      edi, edi\n        mov      qword ptr [r15\u002B0x68], rdi\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M48686_IG93:\n\u002BG_M48686_IG91:\n        mov      gword ptr [r15\u002B0x10], rdi\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M48686_IG94:\n\u002BG_M48686_IG92:\n        mov      gword ptr [r15\u002B0x18], rdi\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M48686_IG95:\n\u002BG_M48686_IG93:\n        mov      gword ptr [r15\u002B0x20], rdi\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M48686_IG96:\n\u002BG_M48686_IG94:\n        mov      gword ptr [r15\u002B0x28], rdi\n        lea      rdi, bword ptr [r15\u002B0x40]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.ValueTuple\u00602[Microsoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002BTokenInformation,Microsoft.CodeAnalysis.Shared.Utilities.SupportedPlatformData]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.ValueTuple\u00602[Microsoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002BTokenInformation,System.__Canon]]:SetException(System.Exception):this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.ValueTuple\u00602[Microsoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002BTokenInformation,System.__Canon]]:SetException(System.Exception):this\n-       lea      rax, G_M48686_IG85\n\u002B       lea      rax, G_M48686_IG83\n \t\t\t\t\t\t;; size=37 bbWeight=0 PerfScore 0.00\n-G_M48686_IG97:\n\u002BG_M48686_IG95:\n        vzeroupper \n        add      rsp, 40\n        ret      \n \t\t\t\t\t\t;; size=8 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 4065, prolog size 81, PerfScore 1394.92, instruction count 817, allocated bytes for code 4065 (MethodHash=856a41d1) for method Microsoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002B\u003CComputeFromLinkedDocumentsAsync\u003Ed__3:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 4000, prolog size 81, PerfScore 1379.42, instruction count 803, allocated bytes for code 4000 (MethodHash=856a41d1) for method Microsoft.CodeAnalysis.QuickInfo.CommonSemanticQuickInfoProvider\u002B\u003CComputeFromLinkedDocumentsAsync\u003Ed__3:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":4065,"DiffBytes":4000},{"Assembly":"Microsoft.EntityFrameworkCore.dasm","Method":"Microsoft.EntityFrameworkCore.Metadata.Conventions.KeyDiscoveryConvention:DiscoverKeyProperties(Microsoft.EntityFrameworkCore.Metadata.IConventionEntityType):System.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Metadata.IConventionProperty]:this (FullOpts)","Category":"improvement","Description":"1,904 -\u003E 1,851 bytes (-53)","ExtraInfo":null,"Diff":"@@ -11,87 \u002B11,87 @@\n ;  V00 this         [V00,T07] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Metadata.Conventions.KeyDiscoveryConvention\u003E\n ;  V01 arg1         [V01,T08] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Metadata.IConventionEntityType\u003E\n ;  V02 loc0         [V02,T02] ( 10,  7   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMicrosoft.EntityFrameworkCore.Metadata.Conventions.KeyDiscoveryConvention\u002B\u003C\u003Ec__DisplayClass7_0\u003E\n-;  V03 loc1         [V03,T00] ( 38, 20   )     ref  -\u003E  r15         class-hnd \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Metadata.IConventionProperty]\u003E\n\u002B;  V03 loc1         [V03,T00] ( 37, 19.50)     ref  -\u003E  r15         class-hnd \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Metadata.IConventionProperty]\u003E\n ;  V04 loc2         [V04,T01] ( 12,  7   )     ref  -\u003E  r13         class-hnd \u003CMicrosoft.EntityFrameworkCore.Metadata.IConventionForeignKey\u003E\n-;  V05 loc3         [V05,T63] (  2,  1   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.EntityFrameworkCore.Metadata.IConventionProperty]\u003E\n-;  V06 loc4         [V06,T51] (  3,  1.50)     ref  -\u003E  rbx         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Metadata.IConventionProperty\u003E\n\u002B;  V05 loc3         [V05,T61] (  2,  1   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.EntityFrameworkCore.Metadata.IConventionProperty]\u003E\n\u002B;  V06 loc4         [V06,T50] (  3,  1.50)     ref  -\u003E  rbx         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Metadata.IConventionProperty\u003E\n ;  V07 loc5         [V07,T18] (  4,  2   )     ref  -\u003E  rbx         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Metadata.IConventionKey\u003E\n ;  V08 loc6         [V08,T11] (  6,  3   )     ref  -\u003E  r12         class-hnd \u003CMicrosoft.EntityFrameworkCore.Metadata.IConventionProperty\u003E\n ;  V09 loc7         [V09,T17] (  5,  2.50)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Metadata.IConventionForeignKey]\u003E\n ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMicrosoft.EntityFrameworkCore.Metadata.Conventions.KeyDiscoveryConvention\u002B\u003C\u003Ec__DisplayClass7_0\u003E\n-;  V12 tmp2         [V12,T28] (  3,  2   )     ref  -\u003E  rax        \n-;  V13 tmp3         [V13,T29] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[Microsoft.EntityFrameworkCore.Metadata.IConventionForeignKey,bool]\u003E\n-;  V14 tmp4         [V14,T30] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.EntityFrameworkCore.Metadata.IConventionForeignKey]\u003E\n\u002B;  V12 tmp2         [V12,T27] (  3,  2   )     ref  -\u003E  rax        \n\u002B;  V13 tmp3         [V13,T28] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[Microsoft.EntityFrameworkCore.Metadata.IConventionForeignKey,bool]\u003E\n\u002B;  V14 tmp4         [V14,T29] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.EntityFrameworkCore.Metadata.IConventionForeignKey]\u003E\n ;* V15 tmp5         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V16 tmp6         [V16,T19] (  4,  2   )     ref  -\u003E  rdx        \n ;  V17 tmp7         [V17,T09] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[Microsoft.EntityFrameworkCore.Metadata.IConventionForeignKey,bool]\u003E\n-;  V18 tmp8         [V18,T31] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[Microsoft.EntityFrameworkCore.Metadata.IConventionForeignKey,System.Collections.Generic.IEnumerable\u00601[Microsoft.EntityFrameworkCore.Metadata.IConventionProperty]]\u003E\n\u002B;  V18 tmp8         [V18,T30] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[Microsoft.EntityFrameworkCore.Metadata.IConventionForeignKey,System.Collections.Generic.IEnumerable\u00601[Microsoft.EntityFrameworkCore.Metadata.IConventionProperty]]\u003E\n ;* V19 tmp9         [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V20 tmp10        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V21 tmp11        [V21,T20] (  4,  2   )     ref  -\u003E  r14        \n ;  V22 tmp12        [V22,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[Microsoft.EntityFrameworkCore.Metadata.IConventionForeignKey,System.Collections.Generic.IEnumerable\u00601[Microsoft.EntityFrameworkCore.Metadata.IConventionProperty]]\u003E\n ;  V23 tmp13        [V23,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[Microsoft.EntityFrameworkCore.Metadata.IConventionForeignKey,bool]\u003E\n-;  V24 tmp14        [V24,T52] (  3,  1.50)     ref  -\u003E  r12        \n-;  V25 tmp15        [V25,T32] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Metadata.IConventionProperty]\u003E\n-;  V26 tmp16        [V26,T33] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[Microsoft.EntityFrameworkCore.Metadata.IConventionProperty,bool]\u003E\n-;  V27 tmp17        [V27,T34] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.EntityFrameworkCore.Metadata.IConventionProperty]\u003E\n\u002B;  V24 tmp14        [V24,T51] (  3,  1.50)     ref  -\u003E  r12        \n\u002B;  V25 tmp15        [V25,T31] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Metadata.IConventionProperty]\u003E\n\u002B;  V26 tmp16        [V26,T32] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[Microsoft.EntityFrameworkCore.Metadata.IConventionProperty,bool]\u003E\n\u002B;  V27 tmp17        [V27,T33] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.EntityFrameworkCore.Metadata.IConventionProperty]\u003E\n ;* V28 tmp18        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V29 tmp19        [V29,T21] (  4,  2   )     ref  -\u003E  rdx        \n-;  V30 tmp20        [V30,T35] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.EntityFrameworkCore.Diagnostics.IDiagnosticsLogger\u00601[Microsoft.EntityFrameworkCore.DbLoggerCategory\u002BModel]\u003E\n-;  V31 tmp21        [V31,T36] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.EntityFrameworkCore.Metadata.IConventionProperty\u003E\n\u002B;  V30 tmp20        [V30,T34] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.EntityFrameworkCore.Diagnostics.IDiagnosticsLogger\u00601[Microsoft.EntityFrameworkCore.DbLoggerCategory\u002BModel]\u003E\n\u002B;  V31 tmp21        [V31,T35] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.EntityFrameworkCore.Metadata.IConventionProperty\u003E\n ;  V32 tmp22        [V32,T05] (  5,  5   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[Microsoft.EntityFrameworkCore.Metadata.IConventionProperty,bool]\u003E\n-;  V33 tmp23        [V33,T37] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.EntityFrameworkCore.Metadata.Conventions.KeyDiscoveryConvention\u002B\u003C\u003Ec\u003E\n\u002B;  V33 tmp23        [V33,T36] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.EntityFrameworkCore.Metadata.Conventions.KeyDiscoveryConvention\u002B\u003C\u003Ec\u003E\n ;* V34 tmp24        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMicrosoft.EntityFrameworkCore.Metadata.Conventions.Infrastructure.ProviderConventionSetBuilderDependencies\u003E\n-;  V35 tmp25        [V35    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V35 tmp25        [V35    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V37 tmp27        [V37,T53] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMicrosoft.EntityFrameworkCore.Metadata.IConventionProperty\u003E\n-;  V38 tmp28        [V38,T22] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Microsoft.EntityFrameworkCore.Metadata.IConventionProperty]\u003E\n\u002B;  V37 tmp27        [V37,T62] (  2,  1   )     ref  -\u003E  rdx         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMicrosoft.EntityFrameworkCore.Metadata.IConventionProperty\u003E\n\u002B;* V38 tmp28        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Microsoft.EntityFrameworkCore.Metadata.IConventionProperty]\u003E\n... diff truncated; middle omitted ...\n        test     eax, eax\n-       je       G_M45351_IG33\n\u002B       je       G_M45351_IG31\n        mov      rdi, 0xD1FFAB1E      ; data for Microsoft.EntityFrameworkCore.Metadata.Conventions.KeyDiscoveryConvention\u002B\u003C\u003Ec:\u003C\u003E9__7_3\n        mov      r14, gword ptr [rdi]\n        test     r14, r14\n-       jne      SHORT G_M45351_IG28\n\u002B       jne      SHORT G_M45351_IG26\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[Microsoft.EntityFrameworkCore.Metadata.IConventionForeignKey,System.Collections.Generic.IEnumerable\u00601[Microsoft.EntityFrameworkCore.Metadata.IConventionProperty]]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -483,17 \u002B467,17 @@ G_M45351_IG27:\n        mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n \t\t\t\t\t\t;; size=233 bbWeight=0.50 PerfScore 16.00\n-G_M45351_IG28:\n\u002BG_M45351_IG26:\n        mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.EntityFrameworkCore.Metadata.IConventionForeignKey[]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFARRAY\n        call     [rax]CORINFO_HELP_ISINSTANCEOFARRAY\n        test     rax, rax\n-       je       SHORT G_M45351_IG29\n\u002B       je       SHORT G_M45351_IG27\n        cmp      dword ptr [rax\u002B0x08], 0\n-       je       SHORT G_M45351_IG30\n\u002B       je       SHORT G_M45351_IG28\n \t\t\t\t\t\t;; size=36 bbWeight=0.50 PerfScore 4.00\n-G_M45351_IG29:\n\u002BG_M45351_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BSelectManySingleSelectorIterator\u00602[Microsoft.EntityFrameworkCore.Metadata.IConventionForeignKey,Microsoft.EntityFrameworkCore.Metadata.IConventionProperty]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n@@ -509,26 \u002B493,60 @@ G_M45351_IG29:\n        lea      rdi, bword ptr [r13\u002B0x20]\n        mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      SHORT G_M45351_IG32\n\u002B       jmp      SHORT G_M45351_IG30\n \t\t\t\t\t\t;; size=77 bbWeight=0.50 PerfScore 6.88\n-G_M45351_IG30:\n\u002BG_M45351_IG28:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M45351_IG40\n\u002B       je       G_M45351_IG38\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n-G_M45351_IG31:\n\u002BG_M45351_IG29:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Array\u002BEmptyArray\u00601[Microsoft.EntityFrameworkCore.Metadata.IConventionProperty]:Value\n        mov      r13, gword ptr [rdi]\n \t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 1.12\n-G_M45351_IG32:\n\u002BG_M45351_IG30:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddRange(System.Collections.Generic.IEnumerable\u00601[System.__Canon]):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddRange(System.Collections.Generic.IEnumerable\u00601[System.__Canon]):this\n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 1.88\n-G_M45351_IG33:\n\u002BG_M45351_IG31:\n        mov      rax, r15\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n\u002BG_M45351_IG32:\n\u002B       add      rsp, 24\n\u002B       pop      rbx\n\u002B       pop      r12\n\u002B       pop      r13\n\u002B       pop      r14\n\u002B       pop      r15\n\u002B       pop      rbp\n\u002B       ret      \n\u002B\t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n\u002BG_M45351_IG33:\n\u002B       mov      rdi, rbx\n\u002B       mov      rax, qword ptr [rbx]\n\u002B       mov      rax, qword ptr [rax\u002B0x40]\n\u002B       call     [rax\u002B0x20]Microsoft.EntityFrameworkCore.Metadata.Conventions.KeyDiscoveryConvention:get_Dependencies():Microsoft.EntityFrameworkCore.Metadata.Conventions.Infrastructure.ProviderConventionSetBuilderDependencies:this\n\u002B       mov      rdi, gword ptr [rax\u002B0x30]\n\u002B       mov      edx, dword ptr [r15\u002B0x10]\n\u002B       test     edx, edx\n\u002B       je       SHORT G_M45351_IG35\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       mov      rax, rsi\n\u002B       cmp      dword ptr [rax\u002B0x08], 0\n\u002B       jbe      SHORT G_M45351_IG39\n\u002B       mov      rax, gword ptr [rax\u002B0x10]\n\u002B       cmp      edx, 1\n\u002B       jbe      SHORT G_M45351_IG35\n\u002B       cmp      dword ptr [rsi\u002B0x08], 1\n\u002B       jbe      SHORT G_M45351_IG39\n\u002B       mov      rdx, gword ptr [rsi\u002B0x18]\n\u002B       mov      rsi, rax\n\u002B       mov      rax, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Diagnostics.CoreLoggerExtensions:MultiplePrimaryKeyCandidates(Microsoft.EntityFrameworkCore.Diagnostics.IDiagnosticsLogger\u00601[Microsoft.EntityFrameworkCore.DbLoggerCategory\u002BModel],Microsoft.EntityFrameworkCore.Metadata.IReadOnlyProperty,Microsoft.EntityFrameworkCore.Metadata.IReadOnlyProperty)\n\u002B       call     [rax]Microsoft.EntityFrameworkCore.Diagnostics.CoreLoggerExtensions:MultiplePrimaryKeyCandidates(Microsoft.EntityFrameworkCore.Diagnostics.IDiagnosticsLogger\u00601[Microsoft.EntityFrameworkCore.DbLoggerCategory\u002BModel],Microsoft.EntityFrameworkCore.Metadata.IReadOnlyProperty,Microsoft.EntityFrameworkCore.Metadata.IReadOnlyProperty)\n\u002B       xor      rax, rax\n\u002B\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 14.88\n G_M45351_IG34:\n        add      rsp, 24\n        pop      rbx\n@@ -540,65 \u002B558,31 @@ G_M45351_IG34:\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n G_M45351_IG35:\n-       mov      rdi, rbx\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x40]\n-       call     [rax\u002B0x20]Microsoft.EntityFrameworkCore.Metadata.Conventions.KeyDiscoveryConvention:get_Dependencies():Microsoft.EntityFrameworkCore.Metadata.Conventions.Infrastructure.ProviderConventionSetBuilderDependencies:this\n-       mov      rdi, gword ptr [rax\u002B0x30]\n-       mov      edx, dword ptr [r15\u002B0x10]\n-       test     edx, edx\n-       je       SHORT G_M45351_IG37\n-       mov      rsi, gword ptr [r15\u002B0x08]\n-       mov      rax, rsi\n-       cmp      dword ptr [rax\u002B0x08], 0\n-       jbe      SHORT G_M45351_IG41\n-       mov      rax, gword ptr [rax\u002B0x10]\n-       cmp      edx, 1\n-       jbe      SHORT G_M45351_IG37\n-       cmp      dword ptr [rsi\u002B0x08], 1\n-       jbe      SHORT G_M45351_IG41\n-       mov      rdx, gword ptr [rsi\u002B0x18]\n-       mov      rsi, rax\n-       mov      rax, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Diagnostics.CoreLoggerExtensions:MultiplePrimaryKeyCandidates(Microsoft.EntityFrameworkCore.Diagnostics.IDiagnosticsLogger\u00601[Microsoft.EntityFrameworkCore.DbLoggerCategory\u002BModel],Microsoft.EntityFrameworkCore.Metadata.IReadOnlyProperty,Microsoft.EntityFrameworkCore.Metadata.IReadOnlyProperty)\n-       call     [rax]Microsoft.EntityFrameworkCore.Diagnostics.CoreLoggerExtensions:MultiplePrimaryKeyCandidates(Microsoft.EntityFrameworkCore.Diagnostics.IDiagnosticsLogger\u00601[Microsoft.EntityFrameworkCore.DbLoggerCategory\u002BModel],Microsoft.EntityFrameworkCore.Metadata.IReadOnlyProperty,Microsoft.EntityFrameworkCore.Metadata.IReadOnlyProperty)\n-       xor      rax, rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 14.88\n-G_M45351_IG36:\n-       add      rsp, 24\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       ret      \n-\t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M45351_IG37:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M45351_IG38:\n\u002BG_M45351_IG36:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M45351_IG39:\n\u002BG_M45351_IG37:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M45351_IG40:\n\u002BG_M45351_IG38:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[Microsoft.EntityFrameworkCore.Metadata.IConventionProperty]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M45351_IG31\n\u002B       jmp      G_M45351_IG29\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M45351_IG41:\n\u002BG_M45351_IG39:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1904, prolog size 29, PerfScore 210.75, instruction count 422, allocated bytes for code 1904 (MethodHash=44824ed8) for method Microsoft.EntityFrameworkCore.Metadata.Conventions.KeyDiscoveryConvention:DiscoverKeyProperties(Microsoft.EntityFrameworkCore.Metadata.IConventionEntityType):System.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Metadata.IConventionProperty]:this (FullOpts)\n\u002B; Total bytes of code 1851, prolog size 29, PerfScore 203.38, instruction count 410, allocated bytes for code 1851 (MethodHash=44824ed8) for method Microsoft.EntityFrameworkCore.Metadata.Conventions.KeyDiscoveryConvention:DiscoverKeyProperties(Microsoft.EntityFrameworkCore.Metadata.IConventionEntityType):System.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Metadata.IConventionProperty]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1904,"DiffBytes":1851},{"Assembly":"Microsoft.OpenApi.dasm","Method":"Microsoft.OpenApi.OpenApiSchema:SerializeInternal(Microsoft.OpenApi.IOpenApiWriter,int,System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]):this (FullOpts)","Category":"improvement","Description":"5,913 -\u003E 5,865 bytes (-48)","ExtraInfo":null,"Diff":"@@ -34,7 \u002B34,7 @@\n ;* V23 tmp13        [V23    ] (  0,  0   )  struct ( 8) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n ;* V24 tmp14        [V24    ] (  0,  0   )  struct ( 8) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n ;  V25 tmp15        [V25,T43] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,System.String]\u003E\n-;  V26 tmp16        [V26,T13] (  4,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.ISet\u00601[System.String]\u003E\n\u002B;  V26 tmp16        [V26,T10] (  4,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.ISet\u00601[System.String]\u003E\n ;* V27 tmp17        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V28 tmp18        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V29 tmp19        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -113,7 \u002B113,7 @@\n ;* V102 tmp92       [V102    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,System.String]\u003E\n ;  V103 tmp93       [V103,T65] (  4,  2   )     ref  -\u003E  rdx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Text.Json.Nodes.JsonValue\u003E\n ;* V104 tmp94       [V104    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[System.Text.Json.Nodes.JsonNodeOptions]\u003E\n-;  V105 tmp95       [V105,T12] (  6,  6   )     ref  -\u003E  [rbp-0x88]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Text.Json.Nodes.JsonValuePrimitive\u00601[System.String]\u003E\n\u002B;  V105 tmp95       [V105,T09] (  6,  6   )     ref  -\u003E  [rbp-0x88]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Text.Json.Nodes.JsonValuePrimitive\u00601[System.String]\u003E\n ;  V106 tmp96       [V106,T72] (  2,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Text.Json.Serialization.JsonConverter\u00601[System.String]\u003E\n ;  V107 tmp97       [V107,T98] (  3,  1.50)     ref  -\u003E  rdi         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Text.Json.Nodes.JsonNode[]\u003E\n ;  V108 tmp98       [V108,T66] (  4,  2   )     int  -\u003E  rax         single-def \u0022Inline stloc first use temp\u0022\n@@ -127,16 \u002B127,16 @@\n ;* V116 tmp106      [V116    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n ;* V117 tmp107      [V117    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V118 tmp108      [V118    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,System.Text.Json.Nodes.JsonNode]\u003E\n-;  V119 tmp109      [V119,T14] (  4,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IList\u00601[Microsoft.OpenApi.IOpenApiSchema]\u003E\n-;  V120 tmp110      [V120,T15] (  4,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IList\u00601[Microsoft.OpenApi.IOpenApiSchema]\u003E\n-;  V121 tmp111      [V121,T16] (  4,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IList\u00601[Microsoft.OpenApi.IOpenApiSchema]\u003E\n\u002B;  V119 tmp109      [V119,T11] (  4,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IList\u00601[Microsoft.OpenApi.IOpenApiSchema]\u003E\n\u002B;  V120 tmp110      [V120,T12] (  4,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IList\u00601[Microsoft.OpenApi.IOpenApiSchema]\u003E\n\u002B;  V121 tmp111      [V121,T13] (  4,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IList\u00601[Microsoft.OpenApi.IOpenApiSchema]\u003E\n ;  V122 tmp112      [V122,T07] (  5,  7   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiSchema\u003E\n ;  V123 tmp113      [V123,T99] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n ;* V124 tmp114      [V124    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling qmarkNull\u0022\n ;  V125 tmp115      [V125,T08] (  5,  7   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiSchema\u003E\n ;  V126 tmp116      [V126,T100] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n ;* V127 tmp117      [V127    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling qmarkNull\u0022\n-;  V128 tmp118      [V128,T17] (  4,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IDictionary\u00602[System.String,Microsoft.OpenApi.IOpenApiSchema]\u003E\n\u002B;  V128 tmp118      [V128,T14] (  4,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IDictionary\u00602[System.String,Microsoft.OpenApi.IOpenApiSchema]\u003E\n ;* V129 tmp119      [V129    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMicrosoft.OpenApi.OpenApiWriterExtensions\u002B\u003C\u003Ec__DisplayClass21_0\u00601[Microsoft.OpenApi.IOpenApiSchema]\u003E\n ;  V130 tmp120      [V130,T101] (  3,  1.50)     ref  -\u003E  [rbp-0x98]  class-hnd exact spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.OpenApi.OpenApiWriterExtensions\u002B\u003C\u003Ec__DisplayClass21_0\u00601[Microsoft.OpenApi.IOpenApiSchema]\u003E\n ;  V131 tmp121      [V131,T37] (  4,  4   )     ref  -\u003E  [rbp-0xA0]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u00603[Microsoft.OpenApi.IOpenApiWriter,System.String,Microsoft.OpenApi.IOpenApiSchema]\u003E\n@@ -157,98 \u002B157,95 @@\n ;* V146 tmp136      [V146    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,System.Text.Json.Nodes.JsonNode]\u003E\n ;* V147 tmp137      [V147    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n ;* V148 tmp138      [V148    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V149 tmp139      [V149,T09] (  5,  7   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiDiscriminator\u003E\n\u002B;  V149 tmp139      [V149,T15] (  4,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiDiscriminator\u003E\n ;  V150 tmp140      [V150,T104] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n-;* V151 tmp141      [V151    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling qmarkNull\u0022\n-;  V152 tmp142      [V152,T29] (  3,  5   )   ubyte  -\u003E  r12         \u0022Inlining Arg\u0022\n-;  V153 tmp143      [V153,T30] (  3,  5   )   ubyte  -\u003E  r12         \u0022Inlining Arg\u0022\n-;  V154 tmp144      [V154,T10] (  5,  7   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiXml\u003E\n-;  V155 tmp145      [V155,T105] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n-;* V156 tmp146      [V156    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling qmarkNull\u0022\n-;  V157 tmp147      [V157,T11] (  5,  7   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiExternalDocs\u003E\n-;  V158 tmp148      [V158,T106] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n-;* V159 tmp149      [V159    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling qmarkNull\u0022\n-;  V160 tmp150      [V160,T76] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiSchema\u002B\u003C\u003Ec\u003E\n-;  V161 tmp151      [V161,T31] (  3,  5   )   ubyte  -\u003E  r12         \u0022Inlining Arg\u0022\n-;  V162 tmp152      [V162,T39] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiSchema\u003E\n-;  V163 tmp153      [V163,T107] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n-;* V164 tmp154      [V164    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling qmarkNull\u0022\n-;  V165 tmp155      [V165,T40] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IDictionary\u00602[System.String,Microsoft.OpenApi.IOpenApiSchema]\u003E\n-;* V166 tmp156      [V166    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMicrosoft.OpenApi.OpenApiWriterExtensions\u002B\u003C\u003Ec__DisplayClass21_0\u00601[Microsoft.OpenApi.IOpenApiSchema]\u003E\n-;  V167 tmp157      [V167,T108] (  3,  1.50)     ref  -\u003E  [rbp-0xA8]  class-hnd exact spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.OpenApi.OpenApiWriterExtensions\u002B\u003C\u003Ec__DisplayClass21_0\u00601[Microsoft.OpenApi.IOpenApiSchema]\u003E\n-;  V168 tmp158      [V168,T41] (  4,  4   )     ref  -\u003E  [rbp-0xB0]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u00603[Microsoft.OpenApi.IOpenApiWriter,System.String,Microsoft.OpenApi.IOpenApiSchema]\u003E\n-;  V169 tmp159      [V169,T77] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiSchema\u002B\u003C\u003Ec\u003E\n... diff truncated; middle omitted ...\n\u002B;* V197 tmp187      [V197    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022field V24.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V198 tmp188      [V198    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V24.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;* V199 tmp189      [V199    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V74._flags (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V200 tmp190      [V200    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V74._hi32 (fldOffset=0x4)\u0022 P-INDEP\n\u002B;* V201 tmp191      [V201    ] (  0,  0   )    long  -\u003E  zero-ref    single-def \u0022field V74._lo64 (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V202 tmp192      [V202,T88] (  2,  2   )   ubyte  -\u003E  rdi         single-def \u0022field V76.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V203 tmp193      [V203,T114] (  2,  1.50)     int  -\u003E  r12         single-def \u0022field V76.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V204 tmp194      [V204,T89] (  2,  2   )   ubyte  -\u003E  rdi         single-def \u0022field V79.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V205 tmp195      [V205,T115] (  2,  1.50)     int  -\u003E  r12         single-def \u0022field V79.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V206 tmp196      [V206,T90] (  2,  2   )   ubyte  -\u003E  rdi         single-def \u0022field V83.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V207 tmp197      [V207,T116] (  2,  1.50)     int  -\u003E  r12         single-def \u0022field V83.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V208 tmp198      [V208,T91] (  2,  2   )   ubyte  -\u003E  rdi         single-def \u0022field V86.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V209 tmp199      [V209,T117] (  2,  1.50)     int  -\u003E  r12         single-def \u0022field V86.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V210 tmp200      [V210,T92] (  2,  2   )   ubyte  -\u003E  rdi         single-def \u0022field V89.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V211 tmp201      [V211,T118] (  2,  1.50)   ubyte  -\u003E  r12         single-def \u0022field V89.value (fldOffset=0x1)\u0022 P-INDEP\n\u002B;  V212 tmp202      [V212,T93] (  2,  2   )   ubyte  -\u003E  rdi         single-def \u0022field V92.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V213 tmp203      [V213,T119] (  2,  1.50)     int  -\u003E  r12         single-def \u0022field V92.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V214 tmp204      [V214,T94] (  2,  2   )   ubyte  -\u003E  rdi         single-def \u0022field V95.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V215 tmp205      [V215,T120] (  2,  1.50)     int  -\u003E  r12         single-def \u0022field V95.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;* V216 tmp206      [V216    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V104.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V217 tmp207      [V217    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V104.value (fldOffset=0x1)\u0022 P-INDEP\n\u002B;  V218 tmp208      [V218,T95] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022V73.[000..001)\u0022\n\u002B;  V219 tmp209      [V219,T121] (  2,  1.50)     int  -\u003E  r12         single-def \u0022V73.[008..012)\u0022\n\u002B;  V220 tmp210      [V220,T122] (  2,  1.50)     int  -\u003E  [rbp-0x2C]  spill-single-def \u0022V73.[012..016)\u0022\n\u002B;  V221 tmp211      [V221,T123] (  2,  1.50)    long  -\u003E  [rbp-0x38]  spill-single-def \u0022V73.[016..024)\u0022\n\u002B;  V222 tmp212      [V222,T04] (  5, 10   )   byref  -\u003E  rdi         single-def \u0022Spilling address for field-by-field copy\u0022\n\u002B;  V223 tmp213      [V223,T47] (  2,  4   )     ref  -\u003E  r12         single-def \u0022argument with side effect\u0022\n\u002B;  V224 tmp214      [V224,T48] (  2,  4   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n\u002B;  V225 tmp215      [V225,T49] (  2,  4   )     ref  -\u003E  r12         single-def \u0022argument with side effect\u0022\n\u002B;  V226 tmp216      [V226,T50] (  2,  4   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n\u002B;  V227 tmp217      [V227,T78] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V228 tmp218      [V228,T79] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V229 tmp219      [V229,T80] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V230 tmp220      [V230,T81] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V231 tmp221      [V231,T82] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V232 tmp222      [V232,T83] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V233 tmp223      [V233,T84] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V234 tmp224      [V234,T85] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V235 cse0        [V235,T112] (  3,  1.50)     int  -\u003E  r12         \u0022CSE #25: conservative\u0022\n\u002B;  V236 cse1        [V236,T113] (  2,  1   )     int  -\u003E  rdi         \u0022CSE #35: conservative\u0022\n\u002B;  V237 cse2        [V237,T110] (  3,  1.50)     ref  -\u003E  r12         \u0022CSE #36: conservative\u0022\n ;\n ; Lcl frame size = 152\n \n@@ -1173,9 \u002B1170,6 @@ G_M52083_IG81:\n        call     [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE\n        test     rax, rax\n        je       SHORT G_M52083_IG82\n-       mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Nodes.JsonArray\n-       cmp      qword ptr [r12], rdi\n-       je       SHORT G_M52083_IG82\n        mov      rdi, rax\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n        call     [r11]System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n@@ -1184,7 \u002B1178,7 @@ G_M52083_IG81:\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n        je       SHORT G_M52083_IG83\n-\t\t\t\t\t\t;; size=82 bbWeight=0.50 PerfScore 8.25\n\u002B\t\t\t\t\t\t;; size=66 bbWeight=0.50 PerfScore 6.62\n G_M52083_IG82:\n        mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.OpenApi.Utils:CheckArgumentNull[System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]](System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable],System.String):System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\n@@ -1250,9 \u002B1244,6 @@ G_M52083_IG88:\n        call     [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE\n        test     rax, rax\n        je       SHORT G_M52083_IG89\n-       mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Nodes.JsonArray\n-       cmp      qword ptr [r12], rdi\n-       je       SHORT G_M52083_IG89\n        mov      rdi, rax\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n        call     [r11]System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n@@ -1261,7 \u002B1252,7 @@ G_M52083_IG88:\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n        je       SHORT G_M52083_IG90\n-\t\t\t\t\t\t;; size=82 bbWeight=0.50 PerfScore 8.25\n\u002B\t\t\t\t\t\t;; size=66 bbWeight=0.50 PerfScore 6.62\n G_M52083_IG89:\n        mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.OpenApi.Utils:CheckArgumentNull[System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]](System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable],System.String):System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\n@@ -1289,9 \u002B1280,6 @@ G_M52083_IG91:\n        call     [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE\n        test     rax, rax\n        je       SHORT G_M52083_IG92\n-       mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Nodes.JsonArray\n-       cmp      qword ptr [r12], rdi\n-       je       SHORT G_M52083_IG92\n        mov      rdi, rax\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n        call     [r11]System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n@@ -1300,7 \u002B1288,7 @@ G_M52083_IG91:\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n        je       SHORT G_M52083_IG93\n-\t\t\t\t\t\t;; size=82 bbWeight=0.50 PerfScore 8.25\n\u002B\t\t\t\t\t\t;; size=66 bbWeight=0.50 PerfScore 6.62\n G_M52083_IG92:\n        mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.OpenApi.Utils:CheckArgumentNull[System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]](System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable],System.String):System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\n@@ -1572,5 \u002B1560,5 @@ G_M52083_IG112:\n        jmp      G_M52083_IG31\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 5913, prolog size 25, PerfScore 611.12, instruction count 1095, allocated bytes for code 5913 (MethodHash=d073348c) for method Microsoft.OpenApi.OpenApiSchema:SerializeInternal(Microsoft.OpenApi.IOpenApiWriter,int,System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]):this (FullOpts)\n\u002B; Total bytes of code 5865, prolog size 25, PerfScore 606.25, instruction count 1086, allocated bytes for code 5865 (MethodHash=d073348c) for method Microsoft.OpenApi.OpenApiSchema:SerializeInternal(Microsoft.OpenApi.IOpenApiWriter,int,System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":5913,"DiffBytes":5865},{"Assembly":"MongoDB.Bson.dasm","Method":"MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[double](MongoDB.Bson.BinaryVector\u00601[double]):byte[] (FullOpts)","Category":"improvement","Description":"170 -\u003E 142 bytes (-28)","ExtraInfo":null,"Diff":"@@ -1,125 \u002B1,111 @@\n ; Assembly listing for method MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[double](MongoDB.Bson.BinaryVector\u00601[double]):byte[] (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; fully interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 7 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T00] (  9,  7.75)     ref  -\u003E  rbx         class-hnd single-def \u003CMongoDB.Bson.BinaryVector\u00601[double]\u003E\n-;  V01 loc0         [V01,T04] (  3,  2.50)   ubyte  -\u003E  r15        \n-;* V02 loc1         [V02,T12] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CMongoDB.Bson.BinaryVectorPackedBit\u003E\n\u002B;  V00 arg0         [V00,T00] (  6,  6   )     ref  -\u003E  rbx         class-hnd single-def \u003CMongoDB.Bson.BinaryVector\u00601[double]\u003E\n\u002B;* V01 loc0         [V01,T11] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def\n\u002B;* V02 loc1         [V02    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Bson.BinaryVectorPackedBit\u003E\n ;* V03 loc2         [V03    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u003CSystem.ReadOnlyMemory\u00601[double]\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;* V05 tmp1         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CMongoDB.Bson.BinaryVectorPackedBit\u003E\n-;* V06 tmp2         [V06    ] (  0,  0   )  struct (16) zero-ref    \u0022impAppendStmt\u0022 \u003CSystem.ReadOnlySpan\u00601[double]\u003E\n-;  V07 tmp3         [V07,T01] (  6,  4   )   byref  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n-;  V08 tmp4         [V08,T03] (  6,  4   )     int  -\u003E  rsi         \u0022Inline stloc first use temp\u0022\n-;* V09 tmp5         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Object\u003E\n-;* V10 tmp6         [V10    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ReadOnlySpan\u00601[double]\u003E\n-;* V11 tmp7         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022updating class info\u0022 \u003CSystem.Buffers.MemoryManager\u00601[double]\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CSystem.Span\u00601[double]\u003E\n-;* V13 tmp9         [V13    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Span\u00601[double]\u003E\n-;  V14 tmp10        [V14,T07] (  3,  1.50)    long  -\u003E  rdi         single-def \u0022Inline stloc first use temp\u0022\n-;* V15 tmp11        [V15    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022Inline stloc first use temp\u0022\n-;* V16 tmp12        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022updating class info\u0022 \u003Cdouble[]\u003E\n-;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022updating class info\u0022 \u003Cdouble[]\u003E\n-;  V18 tmp14        [V18,T06] (  2,  2   )   byref  -\u003E  rcx         single-def \u0022Inlining Arg\u0022\n-;* V19 tmp15        [V19    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Span\u00601[double]\u003E\n-;  V20 tmp16        [V20,T02] (  6,  4   )     ref  -\u003E  rdi         single-def \u0022field V03._object (fldOffset=0x0)\u0022 P-INDEP\n-;  V21 tmp17        [V21,T09] (  2,  1.50)     int  -\u003E  r14         single-def \u0022field V03._index (fldOffset=0x8)\u0022 P-INDEP\n-;  V22 tmp18        [V22,T05] (  3,  2   )     int  -\u003E  r13         single-def \u0022field V03._length (fldOffset=0xc)\u0022 P-INDEP\n-;* V23 tmp19        [V23    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V06._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V24 tmp20        [V24    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V06._length (fldOffset=0x8)\u0022 P-INDEP\n-;* V25 tmp21        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V10._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V26 tmp22        [V26    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V10._length (fldOffset=0x8)\u0022 P-INDEP\n-;* V27 tmp23        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref    do-not-enreg[] \u0022field V12._reference (fldOffset=0x0)\u0022 P-DEP\n-;* V28 tmp24        [V28    ] (  0,  0   )     int  -\u003E  zero-ref    do-not-enreg[] \u0022field V12._length (fldOffset=0x8)\u0022 P-DEP\n-;  V29 tmp25        [V29,T10] (  2,  1   )   byref  -\u003E  rax         \u0022field V13._reference (fldOffset=0x0)\u0022 P-INDEP\n-;  V30 tmp26        [V30,T11] (  2,  1   )     int  -\u003E  rsi         \u0022field V13._length (fldOffset=0x8)\u0022 P-INDEP\n-;* V31 tmp27        [V31    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V19._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V32 tmp28        [V32    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V19._length (fldOffset=0x8)\u0022 P-INDEP\n-;  V33 cse0         [V33,T08] (  3,  1.50)    long  -\u003E  rax         \u0022CSE #01: moderate\u0022\n\u002B;* V05 tmp1         [V05    ] (  0,  0   )  struct (16) zero-ref    \u0022impAppendStmt\u0022 \u003CSystem.ReadOnlySpan\u00601[double]\u003E\n\u002B;  V06 tmp2         [V06,T01] (  6,  4   )   byref  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n\u002B;  V07 tmp3         [V07,T03] (  6,  4   )     int  -\u003E  rsi         \u0022Inline stloc first use temp\u0022\n\u002B;* V08 tmp4         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Object\u003E\n\u002B;* V09 tmp5         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ReadOnlySpan\u00601[double]\u003E\n\u002B;* V10 tmp6         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022updating class info\u0022 \u003CSystem.Buffers.MemoryManager\u00601[double]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CSystem.Span\u00601[double]\u003E\n\u002B;* V12 tmp8         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Span\u00601[double]\u003E\n\u002B;  V13 tmp9         [V13,T06] (  3,  1.50)    long  -\u003E  rdi         single-def \u0022Inline stloc first use temp\u0022\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022Inline stloc first use temp\u0022\n\u002B;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022updating class info\u0022 \u003Cdouble[]\u003E\n\u002B;* V16 tmp12        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022updating class info\u0022 \u003Cdouble[]\u003E\n\u002B;  V17 tmp13        [V17,T05] (  2,  2   )   byref  -\u003E  rcx         single-def \u0022Inlining Arg\u0022\n\u002B;* V18 tmp14        [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Span\u00601[double]\u003E\n\u002B;  V19 tmp15        [V19,T02] (  6,  4   )     ref  -\u003E  rdi         single-def \u0022field V03._object (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V20 tmp16        [V20,T08] (  2,  1.50)     int  -\u003E  r15         single-def \u0022field V03._index (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V21 tmp17        [V21,T04] (  3,  2   )     int  -\u003E  r14         single-def \u0022field V03._length (fldOffset=0xc)\u0022 P-INDEP\n\u002B;* V22 tmp18        [V22    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V05._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V23 tmp19        [V23    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V05._length (fldOffset=0x8)\u0022 P-INDEP\n\u002B;* V24 tmp20        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V09._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V25 tmp21        [V25    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V09._length (fldOffset=0x8)\u0022 P-INDEP\n\u002B;* V26 tmp22        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref    do-not-enreg[] \u0022field V11._reference (fldOffset=0x0)\u0022 P-DEP\n\u002B;* V27 tmp23        [V27    ] (  0,  0   )     int  -\u003E  zero-ref    do-not-enreg[] \u0022field V11._length (fldOffset=0x8)\u0022 P-DEP\n\u002B;  V28 tmp24        [V28,T09] (  2,  1   )   byref  -\u003E  rax         \u0022field V12._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V29 tmp25        [V29,T10] (  2,  1   )     int  -\u003E  rsi         \u0022field V12._length (fldOffset=0x8)\u0022 P-INDEP\n\u002B;* V30 tmp26        [V30    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V18._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V31 tmp27        [V31    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V18._length (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V32 cse0         [V32,T07] (  3,  1.50)    long  -\u003E  rax         \u0022CSE #01: moderate\u0022\n ;\n-; Lcl frame size = 0\n\u002B; Lcl frame size = 8\n \n G_M20342_IG01:\n        push     rbp\n        push     r15\n        push     r14\n-       push     r13\n        push     rbx\n\u002B       push     rax\n        lea      rbp, [rsp\u002B0x20]\n        mov      rbx, rdi\n-\t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 5.75\n\u002B\t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 5.75\n G_M20342_IG02:\n-       xor      r15d, r15d\n-       test     rbx, rbx\n-       je       SHORT G_M20342_IG05\n-\t\t\t\t\t\t;; size=8 bbWeight=1 PerfScore 1.50\n-G_M20342_IG03:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BinaryVectorPackedBit\n-       cmp      qword ptr [rbx], rdi\n-       jne      SHORT G_M20342_IG05\n-\t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M20342_IG04:\n-       movzx    r15, byte  ptr [rbx\u002B0x20]\n-\t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 1.00\n-G_M20342_IG05:\n        mov      rdi, gword ptr [rbx\u002B0x10]\n-       mov      r14d, dword ptr [rbx\u002B0x18]\n-       mov      r13d, dword ptr [rbx\u002B0x1C]\n\u002B       mov      r15d, dword ptr [rbx\u002B0x18]\n\u002B       mov      r14d, dword ptr [rbx\u002B0x1C]\n        xor      rax, rax\n        xor      esi, esi\n        test     rdi, rdi\n-       je       SHORT G_M20342_IG09\n\u002B       je       SHORT G_M20342_IG06\n \t\t\t\t\t\t;; size=21 bbWeight=1 PerfScore 7.75\n-G_M20342_IG06:\n\u002BG_M20342_IG03:\n        mov      rax, qword ptr [rdi]\n        mov      rcx, rax\n        test     dword ptr [rcx], 0xD1FFAB1E\n-       jne      SHORT G_M20342_IG07\n\u002B       jne      SHORT G_M20342_IG04\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x28]System.Buffers.MemoryManager\u00601[double]:GetSpan():System.Span\u00601[double]:this\n        mov      esi, edx\n-       jmp      SHORT G_M20342_IG08\n\u002B       jmp      SHORT G_M20342_IG05\n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 6.25\n-G_M20342_IG07:\n\u002BG_M20342_IG04:\n        lea      rax, bword ptr [rdi\u002B0x10]\n        mov      esi, dword ptr [rdi\u002B0x08]\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.25\n-G_M20342_IG08:\n-       and      r14d, 0xD1FFAB1E\n-       mov      edi, r14d\n-       mov      edx, r13d\n\u002BG_M20342_IG05:\n\u002B       and      r15d, 0xD1FFAB1E\n\u002B       mov      edi, r15d\n\u002B       mov      edx, r14d\n        add      rdx, rdi\n        mov      esi, esi\n        cmp      rdx, rsi\n-       ja       SHORT G_M20342_IG11\n\u002B       ja       SHORT G_M20342_IG08\n        lea      rax, bword ptr [rax\u002B8*rdi]\n-       mov      esi, r13d\n\u002B       mov      esi, r14d\n \t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 1.62\n-G_M20342_IG09:\n\u002BG_M20342_IG06:\n        mov      rdi, rax\n        mov      edx, dword ptr [rbx\u002B0x08]\n-       mov      ecx, r15d\n\u002B       xor      ecx, ecx\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[double](System.ReadOnlySpan\u00601[double],int,byte):byte[]\n-\t\t\t\t\t\t;; size=19 bbWeight=1 PerfScore 2.75\n-G_M20342_IG10:\n\u002B\t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 2.75\n\u002BG_M20342_IG07:\n\u002B       add      rsp, 8\n        pop      rbx\n-       pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        tail.jmp [rax]MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[double](System.ReadOnlySpan\u00601[double],int,byte):byte[]\n-\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 4.50\n-G_M20342_IG11:\n\u002B\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 4.25\n\u002BG_M20342_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 170, prolog size 16, PerfScore 33.19, instruction count 53, allocated bytes for code 170 (MethodHash=bffab089) for method MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[double](MongoDB.Bson.BinaryVector\u00601[double]):byte[] (FullOpts)\n\u002B; Total bytes of code 142, prolog size 15, PerfScore 29.62, instruction count 46, allocated bytes for code 142 (MethodHash=bffab089) for method MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[double](MongoDB.Bson.BinaryVector\u00601[double]):byte[] (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":170,"DiffBytes":142},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.BinaryVectorDriverExtensions:ToQueryVector[long](MongoDB.Bson.BinaryVector\u00601[long]):MongoDB.Driver.QueryVector (FullOpts)","Category":"improvement","Description":"698 -\u003E 334 bytes (-364)","ExtraInfo":null,"Diff":"@@ -8,52 \u002B8,46 @@\n ; 0 inlinees with PGO data; 8 single block inlinees; 6 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T00] ( 13,  6.25)     ref  -\u003E  rbx         class-hnd single-def \u003CMongoDB.Bson.BinaryVector\u00601[long]\u003E\n-;  V01 loc0         [V01,T11] (  2,  1   )     ref  -\u003E  rbx         class-hnd exact \u003CMongoDB.Bson.BinaryVectorFloat32\u003E\n-;  V02 loc1         [V02,T12] (  2,  1   )     ref  -\u003E  rbx         class-hnd exact \u003CMongoDB.Bson.BinaryVectorInt8\u003E\n-;  V03 loc2         [V03,T13] (  2,  1   )     ref  -\u003E  rbx         class-hnd exact \u003CMongoDB.Bson.BinaryVectorPackedBit\u003E\n-;  V04 loc3         [V04,T07] (  4,  2.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.QueryVector\u003E\n-;  V05 loc4         [V05    ] ( 15,  0   )  struct (40) [rbp-0x38]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.DefaultInterpolatedStringHandler\u003E\n\u002B;  V00 arg0         [V00,T00] (  4,  2   )     ref  -\u003E  rbx         class-hnd single-def \u003CMongoDB.Bson.BinaryVector\u00601[long]\u003E\n\u002B;* V01 loc0         [V01    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Bson.BinaryVectorFloat32\u003E\n\u002B;* V02 loc1         [V02    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Bson.BinaryVectorInt8\u003E\n\u002B;* V03 loc2         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Bson.BinaryVectorPackedBit\u003E\n\u002B;* V04 loc3         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMongoDB.Driver.QueryVector\u003E\n\u002B;  V05 loc4         [V05    ] ( 14,  0   )  struct (40) [rbp-0x38]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.DefaultInterpolatedStringHandler\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CMongoDB.Bson.BinaryVectorFloat32\u003E\n-;  V08 tmp2         [V08,T01] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.QueryVector\u003E\n-;* V09 tmp3         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CMongoDB.Bson.BinaryVectorInt8\u003E\n-;  V10 tmp4         [V10,T02] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.QueryVector\u003E\n-;* V11 tmp5         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CMongoDB.Bson.BinaryVectorPackedBit\u003E\n-;  V12 tmp6         [V12,T03] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.QueryVector\u003E\n-;* V13 tmp7         [V13    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;* V14 tmp8         [V14    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V15 tmp9         [V15,T17] (  3,  0   )     ref  -\u003E  rax        \n-;  V16 tmp10        [V16,T18] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n-;  V17 tmp11        [V17,T04] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n-;  V18 tmp12        [V18,T05] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n-;  V19 tmp13        [V19,T06] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n-;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.Buffers.SharedArrayPool\u00601[char]\u003E\n-;  V21 tmp15        [V21,T14] (  5,  0   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003Cchar[]\u003E\n-;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003Cchar[]\u003E\n-;* V23 tmp17        [V23    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.QueryVector\u003E\n\u002B;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.QueryVector\u003E\n\u002B;* V09 tmp3         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.QueryVector\u003E\n\u002B;* V10 tmp4         [V10    ] (  0,  0   )   byref  -\u003E  zero-ref   \n\u002B;* V11 tmp5         [V11    ] (  0,  0   )   byref  -\u003E  zero-ref   \n\u002B;  V12 tmp6         [V12,T04] (  3,  0   )     ref  -\u003E  rax        \n\u002B;  V13 tmp7         [V13,T05] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;* V14 tmp8         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n\u002B;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n\u002B;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n\u002B;* V17 tmp11        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.Buffers.SharedArrayPool\u00601[char]\u003E\n\u002B;  V18 tmp12        [V18,T01] (  5,  0   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003Cchar[]\u003E\n\u002B;* V19 tmp13        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003Cchar[]\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V21 tmp15        [V21    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Span\u00601[char]\u003E\n\u002B;* V22 tmp16        [V22    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Span\u00601[char]\u003E\n\u002B;  V23 tmp17        [V23,T03] (  4,  0   )     int  -\u003E  rdi         \u0022Inlining Arg\u0022\n ;* V24 tmp18        [V24    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;* V25 tmp19        [V25    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;  V26 tmp20        [V26,T16] (  4,  0   )     int  -\u003E  rdi         \u0022Inlining Arg\u0022\n-;* V27 tmp21        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;  V28 tmp22        [V28,T15] (  5,  0   )   byref  -\u003E  r15         single-def \u0022Inlining Arg\u0022\n-;  V29 tmp23        [V29,T22] (  2,  0   )     int  -\u003E  rsi         \u0022Inlining Arg\u0022\n-;* V30 tmp24        [V30,T23] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n-;* V31 tmp25        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;* V32 tmp26        [V32    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;* V33 tmp27        [V33    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V34 tmp28        [V34,T19] (  3,  0   )   byref  -\u003E  rdi         \u0022field V24._reference (fldOffset=0x0)\u0022 P-INDEP\n-;  V35 tmp29        [V35,T20] (  3,  0   )     int  -\u003E  rsi         \u0022field V24._length (fldOffset=0x8)\u0022 P-INDEP\n-;* V36 tmp30        [V36    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022field V25._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V37 tmp31        [V37    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V25._length (fldOffset=0x8)\u0022 P-INDEP\n-;* V38 tmp32        [V38    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V27._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V39 tmp33        [V39    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V27._length (fldOffset=0x8)\u0022 P-INDEP\n-;* V40 tmp34        [V40    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V31._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V41 tmp35        [V41    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V31._length (fldOffset=0x8)\u0022 P-INDEP\n-;  V42 tmp36        [V42,T08] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V43 tmp37        [V43,T09] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V44 tmp38        [V44,T10] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V45 tmp39        [V45,T21] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V25 tmp19        [V25,T02] (  5,  0   )   byref  -\u003E  r15         single-def \u0022Inlining Arg\u0022\n\u002B;  V26 tmp20        [V26,T09] (  2,  0   )     int  -\u003E  rsi         \u0022Inlining Arg\u0022\n\u002B;* V27 tmp21        [V27,T10] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n\u002B;* V28 tmp22        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Span\u00601[char]\u003E\n\u002B;* V29 tmp23        [V29    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n\u002B;* V30 tmp24        [V30    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n\u002B;  V31 tmp25        [V31,T06] (  3,  0   )   byref  -\u003E  rdi         \u0022field V21._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V32 tmp26        [V32,T07] (  3,  0   )     int  -\u003E  rsi         \u0022field V21._length (fldOffset=0x8)\u0022 P-INDEP\n\u002B;* V33 tmp27        [V33    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022field V22._reference (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n\u002B;  V39 tmp33        [V39,T08] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 48\n \n@@ -68,110 \u002B62,8 @@ G_M30007_IG01:\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu  ymmword ptr [rbp-0x30], ymm8\n        mov      rbx, rdi\n-\t\t\t\t\t\t;; size=32 bbWeight=1 PerfScore 6.58\n\u002B\t\t\t\t\t\t;; size=32 bbWeight=0 PerfScore 0.00\n G_M30007_IG02:\n-       test     rbx, rbx\n-       je       SHORT G_M30007_IG05\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M30007_IG03:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BinaryVectorFloat32\n-       cmp      qword ptr [rbx], rdi\n-       jne      SHORT G_M30007_IG05\n-\t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M30007_IG04:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonBinaryData\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r15, rax\n-       mov      rdi, rbx\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[float](MongoDB.Bson.BinaryVector\u00601[float]):byte[]\n-       call     [rax]MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[float](MongoDB.Bson.BinaryVector\u00601[float]):byte[]\n-       mov      rsi, rax\n-       mov      rdi, r15\n-       mov      edx, 9\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.BsonBinaryData:.ctor(byte[],int):this\n-       call     [rax]MongoDB.Bson.BsonBinaryData:.ctor(byte[],int):this\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.QueryVector\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      rbx, rax\n-       mov      rdi, rbx\n-       mov      rsi, r15\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.QueryVector:.ctor(MongoDB.Bson.BsonBinaryData):this\n-       call     [rax]MongoDB.Driver.QueryVector:.ctor(MongoDB.Bson.BsonBinaryData):this\n-       jmp      G_M30007_IG11\n-\t\t\t\t\t\t;; size=97 bbWeight=0.50 PerfScore 8.12\n-G_M30007_IG05:\n-       test     rbx, rbx\n-       je       SHORT G_M30007_IG08\n-\t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 0.62\n-G_M30007_IG06:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BinaryVectorInt8\n-       cmp      qword ptr [rbx], rdi\n-       jne      SHORT G_M30007_IG08\n-\t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M30007_IG07:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonBinaryData\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r15, rax\n-       mov      rdi, rbx\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[sbyte](MongoDB.Bson.BinaryVector\u00601[sbyte]):byte[]\n-       call     [rax]MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[sbyte](MongoDB.Bson.BinaryVector\u00601[sbyte]):byte[]\n-       mov      rsi, rax\n-       mov      rdi, r15\n-       mov      edx, 9\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.BsonBinaryData:.ctor(byte[],int):this\n-       call     [rax]MongoDB.Bson.BsonBinaryData:.ctor(byte[],int):this\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.QueryVector\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      rbx, rax\n-       mov      rdi, rbx\n-       mov      rsi, r15\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.QueryVector:.ctor(MongoDB.Bson.BsonBinaryData):this\n-       call     [rax]MongoDB.Driver.QueryVector:.ctor(MongoDB.Bson.BsonBinaryData):this\n-       jmp      SHORT G_M30007_IG11\n-\t\t\t\t\t\t;; size=94 bbWeight=0.50 PerfScore 8.12\n-G_M30007_IG08:\n-       test     rbx, rbx\n-       je       SHORT G_M30007_IG13\n-\t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 0.62\n-G_M30007_IG09:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BinaryVectorPackedBit\n-       cmp      qword ptr [rbx], rdi\n-       jne      SHORT G_M30007_IG13\n-\t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M30007_IG10:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonBinaryData\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r15, rax\n-       mov      rdi, rbx\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[byte](MongoDB.Bson.BinaryVector\u00601[byte]):byte[]\n-       call     [rax]MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[byte](MongoDB.Bson.BinaryVector\u00601[byte]):byte[]\n-       mov      rsi, rax\n-       mov      rdi, r15\n-       mov      edx, 9\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.BsonBinaryData:.ctor(byte[],int):this\n-       call     [rax]MongoDB.Bson.BsonBinaryData:.ctor(byte[],int):this\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.QueryVector\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      rbx, rax\n-       mov      rdi, rbx\n-       mov      rsi, r15\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.QueryVector:.ctor(MongoDB.Bson.BsonBinaryData):this\n-       call     [rax]MongoDB.Driver.QueryVector:.ctor(MongoDB.Bson.BsonBinaryData):this\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 7.12\n-G_M30007_IG11:\n-       mov      rax, rbx\n-\t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M30007_IG12:\n-       vzeroupper \n-       add      rsp, 48\n-       pop      rbx\n-       pop      r15\n-       pop      rbp\n-       ret      \n-\t\t\t\t\t\t;; size=12 bbWeight=1 PerfScore 3.75\n-G_M30007_IG13:\n-       xor      rdi, rdi\n-       mov      gword ptr [rbp-0x38], rdi\n        mov      rdi, 0xD1FFAB1E      ; const ptr\n        mov      rdi, gword ptr [rdi]\n        mov      esi, 256\n@@ -179,16 \u002B71,16 @@ G_M30007_IG13:\n        call     [rax]System.Buffers.SharedArrayPool\u00601[char]:Rent(int):char[]:this\n        mov      gword ptr [rbp-0x30], rax\n        test     rax, rax\n-       jne      SHORT G_M30007_IG14\n\u002B       jne      SHORT G_M30007_IG03\n        xor      rdi, rdi\n        xor      esi, esi\n-       jmp      SHORT G_M30007_IG15\n-\t\t\t\t\t\t;; size=51 bbWeight=0 PerfScore 0.00\n-G_M30007_IG14:\n\u002B       jmp      SHORT G_M30007_IG04\n\u002B\t\t\t\t\t\t;; size=45 bbWeight=0 PerfScore 0.00\n\u002BG_M30007_IG03:\n        lea      rdi, bword ptr [rax\u002B0x10]\n        mov      esi, dword ptr [rax\u002B0x08]\n \t\t\t\t\t\t;; size=7 bbWeight=0 PerfScore 0.00\n-G_M30007_IG15:\n\u002BG_M30007_IG04:\n        mov      bword ptr [rbp-0x20], rdi\n        mov      dword ptr [rbp-0x18], esi\n        xor      edi, edi\n@@ -196,19 \u002B88,19 @@ G_M30007_IG15:\n        mov      byte  ptr [rbp-0x24], 0\n        mov      edi, dword ptr [rbp-0x28]\n        cmp      edi, dword ptr [rbp-0x18]\n-       jbe      SHORT G_M30007_IG16\n\u002B       jbe      SHORT G_M30007_IG05\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()\n        int3     \n \t\t\t\t\t\t;; size=37 bbWeight=0 PerfScore 0.00\n-G_M30007_IG16:\n\u002BG_M30007_IG05:\n        mov      rsi, bword ptr [rbp-0x20]\n        mov      eax, edi\n        lea      r15, bword ptr [rsi\u002B2*rax]\n        mov      esi, dword ptr [rbp-0x18]\n        sub      esi, edi\n        cmp      esi, 27\n-       jb       SHORT G_M30007_IG17\n\u002B       jb       SHORT G_M30007_IG06\n        vmovups  ymm0, ymmword ptr [reloc @RWD00]\n        vmovups  ymmword ptr [r15], ymm0\n        vmovups  xmm0, xmmword ptr [reloc @RWD32]\n@@ -218,26 \u002B110,26 @@ G_M30007_IG16:\n        mov      edi, dword ptr [rbp-0x28]\n        add      edi, 27\n        mov      dword ptr [rbp-0x28], edi\n-       jmp      SHORT G_M30007_IG18\n\u002B       jmp      SHORT G_M30007_IG07\n \t\t\t\t\t\t;; size=73 bbWeight=0 PerfScore 0.00\n-G_M30007_IG17:\n\u002BG_M30007_IG06:\n        lea      rdi, [rbp-0x38]\n        mov      rsi, 0xD1FFAB1E      ; \u0027Invalid binary vector type \u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this\n        call     [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this\n \t\t\t\t\t\t;; size=26 bbWeight=0 PerfScore 0.00\n-G_M30007_IG18:\n\u002BG_M30007_IG07:\n        test     rbx, rbx\n-       jne      SHORT G_M30007_IG19\n\u002B       jne      SHORT G_M30007_IG08\n        xor      rax, rax\n-       jmp      SHORT G_M30007_IG20\n\u002B       jmp      SHORT G_M30007_IG09\n \t\t\t\t\t\t;; size=9 bbWeight=0 PerfScore 0.00\n-G_M30007_IG19:\n\u002BG_M30007_IG08:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Object:GetType():System.Type:this\n        call     [rax]System.Object:GetType():System.Type:this\n \t\t\t\t\t\t;; size=15 bbWeight=0 PerfScore 0.00\n-G_M30007_IG20:\n\u002BG_M30007_IG09:\n        lea      rdi, [rbp-0x38]\n        mov      rdx, rax\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[System.Type](System.Type):this\n@@ -261,5 \u002B153,5 @@ RWD00  \tdq\t00610076006E0049h, 002000640069006Ch, 0061006E00690062h, 007600200079\n RWD32  \tdq\t006F007400630065h, 0079007400200072h\n \n \n-; Total bytes of code 698, prolog size 29, PerfScore 38.90, instruction count 160, allocated bytes for code 698 (MethodHash=81248ac8) for method MongoDB.Driver.BinaryVectorDriverExtensions:ToQueryVector[long](MongoDB.Bson.BinaryVector\u00601[long]):MongoDB.Driver.QueryVector (FullOpts)\n\u002B; Total bytes of code 334, prolog size 29, PerfScore 0.00, instruction count 80, allocated bytes for code 334 (MethodHash=81248ac8) for method MongoDB.Driver.BinaryVectorDriverExtensions:ToQueryVector[long](MongoDB.Bson.BinaryVector\u00601[long]):MongoDB.Driver.QueryVector (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":698,"DiffBytes":334},{"Assembly":"Nest.dasm","Method":"Nest.BulkAllObservable\u00601\u002B\u003CHandleBulkRequest\u003Ed__22[System.__Canon]:MoveNext():this (FullOpts)","Category":"improvement","Description":"1,573 -\u003E 1,521 bytes (-52)","ExtraInfo":null,"Diff":"@@ -9,8 \u002B9,8 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T00] ( 29, 27   )   byref  -\u003E  [rbp-0x80]  this EH-live single-def\n-;  V01 TypeCtx      [V01,T04] (  7,  5.40)    long  -\u003E  r15         single-def\n-;  V02 loc0         [V02,T49] (  3,  3   )     int  -\u003E  rdi         single-def\n\u002B;  V01 TypeCtx      [V01,T03] (  7,  5.40)    long  -\u003E  r15         single-def\n\u002B;  V02 loc0         [V02,T47] (  3,  3   )     int  -\u003E  rdi         single-def\n ;  V03 loc1         [V03,T18] (  8,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CNest.BulkAllObservable\u00601[System.__Canon]\u003E\n ;  V04 loc2         [V04,T19] (  5,  5   )     ref  -\u003E  r13         class-hnd \u003CNest.BulkAllResponse\u003E\n ;  V05 loc3         [V05    ] ( 18, 14   )  struct (32) [rbp-0x50]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CNest.BulkAllObservable\u00601\u002B\u003C\u003Ec__DisplayClass22_0[System.__Canon]\u003E\n@@ -20,7 \u002B20,7 @@\n ;* V09 loc7         [V09    ] (  0,  0   )     int  -\u003E  zero-ref   \n ;* V10 loc8         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CNest.BulkAllResponse\u003E\n ;  V11 loc9         [V11    ] ( 10, 10   )  struct (16) [rbp-0x60]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[Nest.BulkAllResponse]\u003E\n-;  V12 loc10        [V12,T06] (  6,  6   )     int  -\u003E  rdx        \n\u002B;  V12 loc10        [V12,T05] (  6,  6   )     int  -\u003E  rdx        \n ;* V13 loc11        [V13    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[Nest.BulkAllResponse]\u003E\n ;* V14 loc12        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CNest.BulkAllResponse\u003E\n ;  V15 loc13        [V15    ] ( 10, 10   )  struct (16) [rbp-0x70]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[Nest.BulkAllResponse]\u003E\n@@ -30,23 \u002B30,23 @@\n ;* V19 tmp2         [V19    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;* V20 tmp3         [V20    ] (  0,  0   )  struct ( 8) zero-ref    \u003CSystem.Nullable\u00601[int]\u003E\n ;* V21 tmp4         [V21    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V22 tmp5         [V22,T07] (  3,  6   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CElasticsearch.Net.PipelineFailure\u003E\n\u002B;  V22 tmp5         [V22,T06] (  3,  6   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CElasticsearch.Net.PipelineFailure\u003E\n ;* V23 tmp6         [V23    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V24 tmp7         [V24,T46] (  3,  3   )     ref  -\u003E  rax        \n\u002B;  V24 tmp7         [V24,T45] (  3,  3   )     ref  -\u003E  rax        \n ;* V25 tmp8         [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;  V26 tmp9         [V26,T20] (  5,  5   )     ref  -\u003E  rax        \n-;  V27 tmp10        [V27,T42] (  2,  4   )    long  -\u003E  rsi         \u0022impSpillLclRefs\u0022\n\u002B;  V27 tmp10        [V27,T41] (  2,  4   )    long  -\u003E  rsi         \u0022impSpillLclRefs\u0022\n ;* V28 tmp11        [V28    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;  V29 tmp12        [V29,T22] (  4,  4.40)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n-;  V30 tmp13        [V30,T43] (  2,  4   )    long  -\u003E  rsi         \u0022impSpillLclRefs\u0022\n\u002B;  V30 tmp13        [V30,T42] (  2,  4   )    long  -\u003E  rsi         \u0022impSpillLclRefs\u0022\n ;  V31 tmp14        [V31,T23] (  4,  4.40)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n-;  V32 tmp15        [V32,T52] (  2,  0   )     ref  -\u003E  r13         class-hnd single-def \u0022non-inline candidate call\u0022 \u003CNest.BulkResponse\u003E\n-;  V33 tmp16        [V33,T53] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n-;  V34 tmp17        [V34,T01] (  4,  8   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Elasticsearch.Net.Audit]\u003E\n-;  V35 tmp18        [V35    ] (  3,  3   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V32 tmp15        [V32,T51] (  2,  0   )     ref  -\u003E  r13         class-hnd single-def \u0022non-inline candidate call\u0022 \u003CNest.BulkResponse\u003E\n\u002B;  V33 tmp16        [V33,T52] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V34 tmp17        [V34,T07] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Elasticsearch.Net.Audit]\u003E\n\u002B;  V35 tmp18        [V35    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V36 tmp19        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V37 tmp20        [V37,T47] (  3,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CElasticsearch.Net.Audit\u003E\n-;  V38 tmp21        [V38,T27] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Elasticsearch.Net.Audit]\u003E\n\u002B;  V37 tmp20        [V37,T48] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CElasticsearch.Net.Audit\u003E\n\u002B;* V38 tmp21        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Elasticsearch.Net.Audit]\u003E\n ;* V39 tmp22        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CElasticsearch.Net.Audit\u003E\n ;  V40 tmp23        [V40,T08] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[Nest.BulkAllResponse]\u003E\n ;* V41 tmp24        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -56,10 \u002B56,10 @@\n ;* V45 tmp28        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[Nest.BulkAllResponse]\u003E\n ;* V46 tmp29        [V46    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[Nest.BulkAllResponse]\u003E\n ;* V47 tmp30        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[Nest.BulkAllResponse]\u003E\n-;* V48 tmp31        [V48,T50] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V49 tmp32        [V49,T31] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;* V48 tmp31        [V48,T49] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V49 tmp32        [V49,T30] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;* V50 tmp33        [V50    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V51 tmp34        [V51,T32] (  2,  4   )   byref  -\u003E  r14         single-def \u0022Inlining Arg\u0022\n\u002B;  V51 tmp34        [V51,T31] (  2,  4   )   byref  -\u003E  r14         single-def \u0022Inlining Arg\u0022\n ;* V52 tmp35        [V52    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V53 tmp36        [V53,T24] (  4,  4.40)    long  -\u003E  rsi         \u0022spilling helperCall\u0022\n ;* V54 tmp37        [V54    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022Inlining Arg\u0022\n@@ -67,7 \u002B67,7 @@\n ;* V56 tmp39        [V56    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V57 tmp40        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Runtime.CompilerServices.IAsyncStateMachineBox\u003E\n ;  V58 tmp41        [V58,T09] (  3,  6   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n-;  V59 tmp42        [V59,T33] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;  V59 tmp42        [V59,T32] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V60 tmp43        [V60,T10] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[Nest.BulkAllResponse]\u003E\n ;* V61 tmp44        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V62 tmp45        [V62    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -76,10 \u002B76,10 @@\n ;* V65 tmp48        [V65    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[Nest.BulkAllResponse]\u003E\n ;* V66 tmp49        [V66    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[Nest.BulkAllResponse]\u003E\n ;* V67 tmp50        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[Nest.BulkAllResponse]\u003E\n-;* V68 tmp51        [V68,T51] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V69 tmp52        [V69,T34] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;* V68 tmp51        [V68,T50] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V69 tmp52        [V69,T33] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n... diff truncated; middle omitted ...\n\u002B       je       SHORT G_M61626_IG33\n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.75\n-G_M61626_IG32:\n\u002BG_M61626_IG30:\n        mov      rdi, qword ptr [rsi\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x18]\n        test     rdi, rdi\n-       je       SHORT G_M61626_IG36\n\u002B       je       SHORT G_M61626_IG34\n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 5.25\n-G_M61626_IG33:\n\u002BG_M61626_IG31:\n        mov      rsi, rbx\n        mov      rdx, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:GetStateMachineBox[Nest.BulkAllObservable\u00601\u002B\u003CHandleBulkRequest\u003Ed__22[System.__Canon]](byref,byref):System.Runtime.CompilerServices.IAsyncStateMachineBox\n@@ -457,32 \u002B440,32 @@ G_M61626_IG33:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[Nest.BulkAllResponse]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[Nest.BulkAllResponse]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      G_M61626_IG43\n\u002B       jmp      G_M61626_IG41\n \t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 10.00\n-G_M61626_IG34:\n\u002BG_M61626_IG32:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_CLASS\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_CLASS\n        mov      rdi, rax\n-       jmp      SHORT G_M61626_IG31\n\u002B       jmp      SHORT G_M61626_IG29\n \t\t\t\t\t\t;; size=30 bbWeight=0.20 PerfScore 1.20\n-G_M61626_IG35:\n\u002BG_M61626_IG33:\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      SHORT G_M61626_IG32\n\u002B       jmp      SHORT G_M61626_IG30\n \t\t\t\t\t\t;; size=27 bbWeight=0.20 PerfScore 1.15\n-G_M61626_IG36:\n\u002BG_M61626_IG34:\n        mov      rdi, rsi\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M61626_IG33\n\u002B       jmp      G_M61626_IG31\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M61626_IG37:\n\u002BG_M61626_IG35:\n        mov      rdi, r14\n        mov      rsi, gword ptr [rbp-0x48]\n        mov      rdx, 0xD1FFAB1E      ; \u0027BulkAll halted after failed product check\u0027\n@@ -492,18 \u002B475,18 @@ G_M61626_IG37:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=38 bbWeight=0 PerfScore 0.00\n-G_M61626_IG38:\n\u002BG_M61626_IG36:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M61626_IG39:\n\u002BG_M61626_IG37:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M61626_IG40:\n\u002BG_M61626_IG38:\n        mov      rdi, r14\n        mov      rsi, gword ptr [rbp-0x48]\n        mov      rdx, 0xD1FFAB1E      ; \u0027BulkAll halted after attempted bulk failed over all the active \u0027\n@@ -513,7 \u002B496,7 @@ G_M61626_IG40:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=38 bbWeight=0 PerfScore 0.00\n-G_M61626_IG41:\n\u002BG_M61626_IG39:\n        mov      r13, gword ptr [rbp-0x48]\n        mov      rsi, gword ptr [rbp-0x40]\n        mov      rdi, 0xD1FFAB1E      ; \u0027BulkAll halted after PipelineFailure.\u0027\n@@ -529,21 \u002B512,21 @@ G_M61626_IG41:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=70 bbWeight=0 PerfScore 0.00\n-G_M61626_IG42:\n\u002BG_M61626_IG40:\n        mov      dword ptr [rbx\u002B0x20], -2\n        add      rbx, 40\n        cmp      gword ptr [rbx], 0\n-       je       SHORT G_M61626_IG45\n\u002B       je       SHORT G_M61626_IG43\n        mov      rsi, gword ptr [rbx]\n        mov      rdx, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[Nest.BulkAllResponse]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 10.00\n-G_M61626_IG43:\n\u002BG_M61626_IG41:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M61626_IG44:\n\u002BG_M61626_IG42:\n        add      rsp, 88\n        pop      rbx\n        pop      r12\n@@ -553,9 \u002B536,9 @@ G_M61626_IG44:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M61626_IG45:\n\u002BG_M61626_IG43:\n        test     r13, r13\n-       je       SHORT G_M61626_IG46\n\u002B       je       SHORT G_M61626_IG44\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[Nest.BulkAllResponse]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -563,33 \u002B546,33 @@ G_M61626_IG45:\n        lea      rdi, bword ptr [r15\u002B0x38]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      SHORT G_M61626_IG48\n\u002B       jmp      SHORT G_M61626_IG46\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 7.50\n-G_M61626_IG46:\n\u002BG_M61626_IG44:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       SHORT G_M61626_IG49\n\u002B       je       SHORT G_M61626_IG47\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 3.25\n-G_M61626_IG47:\n\u002BG_M61626_IG45:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Threading.Tasks.Task\u00601[Nest.BulkAllResponse]:s_defaultResultTask\n        mov      r15, gword ptr [rdi]\n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 2.25\n-G_M61626_IG48:\n\u002BG_M61626_IG46:\n        mov      rdi, rbx\n        mov      rsi, r15\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n-       jmp      SHORT G_M61626_IG43\n\u002B       jmp      SHORT G_M61626_IG41\n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.50\n-G_M61626_IG49:\n\u002BG_M61626_IG47:\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[Nest.BulkAllResponse]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      SHORT G_M61626_IG47\n\u002B       jmp      SHORT G_M61626_IG45\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M61626_IG50:\n\u002BG_M61626_IG48:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M61626_IG51:\n\u002BG_M61626_IG49:\n        mov      rdx, rdi\n        mov      rbx, bword ptr [rbp-0x80]\n        mov      dword ptr [rbx\u002B0x20], -2\n@@ -597,24 \u002B580,24 @@ G_M61626_IG51:\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[Nest.BulkAllResponse]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n-       lea      rax, G_M61626_IG43\n\u002B       lea      rax, G_M61626_IG41\n \t\t\t\t\t\t;; size=47 bbWeight=0 PerfScore 0.00\n-G_M61626_IG52:\n\u002BG_M61626_IG50:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-RWD00  \tdd\tG_M61626_IG41 - G_M61626_IG02\n\u002BRWD00  \tdd\tG_M61626_IG39 - G_M61626_IG02\n        \tdd\tG_M61626_IG19 - G_M61626_IG02\n        \tdd\tG_M61626_IG19 - G_M61626_IG02\n-       \tdd\tG_M61626_IG41 - G_M61626_IG02\n-       \tdd\tG_M61626_IG41 - G_M61626_IG02\n\u002B       \tdd\tG_M61626_IG39 - G_M61626_IG02\n\u002B       \tdd\tG_M61626_IG39 - G_M61626_IG02\n        \tdd\tG_M61626_IG19 - G_M61626_IG02\n        \tdd\tG_M61626_IG27 - G_M61626_IG02\n-       \tdd\tG_M61626_IG41 - G_M61626_IG02\n\u002B       \tdd\tG_M61626_IG39 - G_M61626_IG02\n        \tdd\tG_M61626_IG19 - G_M61626_IG02\n-       \tdd\tG_M61626_IG41 - G_M61626_IG02\n-       \tdd\tG_M61626_IG37 - G_M61626_IG02\n\u002B       \tdd\tG_M61626_IG39 - G_M61626_IG02\n\u002B       \tdd\tG_M61626_IG35 - G_M61626_IG02\n \n \n-; Total bytes of code 1573, prolog size 57, PerfScore 302.93, instruction count 365, allocated bytes for code 1573 (MethodHash=39460f45) for method Nest.BulkAllObservable\u00601\u002B\u003CHandleBulkRequest\u003Ed__22[System.__Canon]:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 1521, prolog size 57, PerfScore 287.93, instruction count 352, allocated bytes for code 1521 (MethodHash=39460f45) for method Nest.BulkAllObservable\u00601\u002B\u003CHandleBulkRequest\u003Ed__22[System.__Canon]:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1573,"DiffBytes":1521},{"Assembly":"OpenAI.dasm","Method":"OpenAI.Images.ImageClient\u002B\u003CGenerateImageEditAsync\u003Ed__16:MoveNext():this (FullOpts)","Category":"improvement","Description":"1,113 -\u003E 1,061 bytes (-52)","ExtraInfo":null,"Diff":"@@ -9,10 \u002B9,10 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T00] ( 32, 29   )   byref  -\u003E  [rbp-0x48]  this EH-live single-def\n-;  V01 loc0         [V01,T04] (  7,  7   )     int  -\u003E  [rbp-0x24]  do-not-enreg[M] EH-live\n\u002B;  V01 loc0         [V01,T03] (  7,  7   )     int  -\u003E  [rbp-0x24]  do-not-enreg[M] EH-live\n ;  V02 loc1         [V02,T09] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003COpenAI.Images.ImageClient\u003E\n ;  V03 loc2         [V03,T10] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]\u003E\n-;  V04 loc3         [V04,T20] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u003E\n\u002B;  V04 loc3         [V04,T19] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u003E\n ;* V05 loc4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u003CSystem.Nullable\u00601[int]\u003E\n ;  V06 loc5         [V06    ] ( 10, 10   )  struct (16) [rbp-0x38]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.ClientModel.ClientResult]\u003E\n ;* V07 loc6         [V07    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[System.ClientModel.ClientResult]\u003E\n@@ -24,26 \u002B24,26 @@\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n ;* V14 tmp5         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.IO.Stream\u003E\n ;* V15 tmp6         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V16 tmp7         [V16,T12] (  2,  4   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V16 tmp7         [V16,T11] (  2,  4   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n ;* V17 tmp8         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003COpenAI.Images.ImageEditOptions\u003E\n-;  V18 tmp9         [V18,T32] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V18 tmp9         [V18,T31] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n ;* V19 tmp10        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.IO.Stream\u003E\n-;  V20 tmp11        [V20,T31] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V20 tmp11        [V20,T30] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n ;  V21 tmp12        [V21,T01] (  4,  8   )   byref  -\u003E  r15         single-def \u0022Inlining Arg\u0022\n ;* V22 tmp13        [V22    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n ;* V23 tmp14        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline stloc first use temp\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n-;  V24 tmp15        [V24,T13] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Object\u003E\n\u002B;  V24 tmp15        [V24,T12] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Object\u003E\n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V26 tmp17        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Nullable\u00601[long]\u003E\n ;* V27 tmp18        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V28 tmp19        [V28    ] (  0,  0   )  struct (16) zero-ref    \u003CSystem.Nullable\u00601[long]\u003E\n-;  V29 tmp20        [V29,T05] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Object\u003E\n\u002B;  V29 tmp20        [V29,T04] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Object\u003E\n ;* V30 tmp21        [V30    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest single-def \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[OpenAI.Images.InternalCreateImageEditRequestModel]\u003E\n ;* V31 tmp22        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Nullable\u00601[long]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003COpenAI.Images.ImageEditOptions\u003E\n ;* V33 tmp24        [V33    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003COpenAI.Images.ImageEditOptions\u003E\n-;  V35 tmp26        [V35,T06] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult]\u003E\n\u002B;  V35 tmp26        [V35,T05] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult]\u003E\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V37 tmp28        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V38 tmp29        [V38    ] (  0,  0   )     int  -\u003E  zero-ref    single-def\n@@ -51,22 \u002B51,22 @@\n ;* V40 tmp31        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult]\u003E\n ;* V41 tmp32        [V41    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.ClientModel.ClientResult]\u003E\n ;* V42 tmp33        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult]\u003E\n-;* V43 tmp34        [V43,T30] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V44 tmp35        [V44,T14] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;* V43 tmp34        [V43,T29] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V44 tmp35        [V44,T13] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V46 tmp37        [V46    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V47 tmp38        [V47    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V48 tmp39        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Runtime.CompilerServices.IAsyncStateMachineBox\u003E\n-;  V49 tmp40        [V49,T07] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n-;  V50 tmp41        [V50,T15] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n-;  V51 tmp42        [V51,T02] (  4,  8   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Images.GeneratedImageCollection\u003E\n-;  V52 tmp43        [V52    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V53 tmp44        [V53,T21] (  3,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003COpenAI.Images.GeneratedImage\u003E\n-;  V54 tmp45        [V54,T11] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[OpenAI.Images.GeneratedImage]\u003E\n\u002B;  V49 tmp40        [V49,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;  V50 tmp41        [V50,T14] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;  V51 tmp42        [V51,T07] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Images.GeneratedImageCollection\u003E\n\u002B;  V52 tmp43        [V52    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V53 tmp44        [V53,T26] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003COpenAI.Images.GeneratedImage\u003E\n\u002B;* V54 tmp45        [V54    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[OpenAI.Images.GeneratedImage]\u003E\n ;  V55 tmp46        [V55,T08] (  3,  6   )   byref  -\u003E  r15         single-def \u0022Inlining Arg\u0022\n-;  V56 tmp47        [V56,T22] (  3,  3   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]\u003E\n\u002B;  V56 tmp47        [V56,T20] (  3,  3   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]\u003E\n ;* V57 tmp48        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref    ld-addr-op class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]\u003E\n... diff truncated; middle omitted ...\n        mov      rax, 0xD1FFAB1E      ; code for System.ClientModel.ClientResult:FromValue[System.__Canon](System.__Canon,System.ClientModel.Primitives.PipelineResponse):System.ClientModel.ClientResult\u00601[System.__Canon]\n        call     [rax]System.ClientModel.ClientResult:FromValue[System.__Canon](System.__Canon,System.ClientModel.Primitives.PipelineResponse):System.ClientModel.ClientResult\u00601[System.__Canon]\n        mov      rbx, rax\n-       jmp      G_M40769_IG16\n-\t\t\t\t\t\t;; size=37 bbWeight=1 PerfScore 8.00\n-G_M40769_IG12:\n\u002B       jmp      G_M40769_IG14\n\u002B\t\t\t\t\t\t;; size=98 bbWeight=1 PerfScore 20.00\n\u002BG_M40769_IG10:\n        mov      rax, gword ptr [rdi\u002B0x28]\n        mov      r15, rax\n        mov      rdi, rax\n@@ -267,16 \u002B250,16 @@ G_M40769_IG12:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x30], edi\n        test     byte  ptr [rbp-0x30], 4\n-       jne      SHORT G_M40769_IG13\n\u002B       jne      SHORT G_M40769_IG11\n        mov      rdi, gword ptr [rbp-0x38]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M40769_IG08\n \t\t\t\t\t\t;; size=103 bbWeight=1 PerfScore 32.50\n-G_M40769_IG13:\n\u002BG_M40769_IG11:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x24], edi\n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M40769_IG14:\n\u002BG_M40769_IG12:\n        mov      r13, bword ptr [rbp-0x48]\n        mov      dword ptr [r13\u002B0x30], edi\n        lea      rdi, bword ptr [r13\u002B0x48]\n@@ -294,30 \u002B277,30 @@ G_M40769_IG14:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.ClientModel.ClientResult]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      SHORT G_M40769_IG17\n\u002B       jmp      SHORT G_M40769_IG15\n \t\t\t\t\t\t;; size=88 bbWeight=1 PerfScore 17.00\n-G_M40769_IG15:\n\u002BG_M40769_IG13:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M40769_IG16:\n\u002BG_M40769_IG14:\n        cmp      dword ptr [rbp-0x24], 0\n-       jge      SHORT G_M40769_IG19\n\u002B       jge      SHORT G_M40769_IG17\n        mov      r15, bword ptr [rbp-0x48]\n        mov      rdi, gword ptr [r15\u002B0x28]\n        test     rdi, rdi\n-       je       SHORT G_M40769_IG19\n\u002B       je       SHORT G_M40769_IG17\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n-       jmp      SHORT G_M40769_IG19\n\u002B       jmp      SHORT G_M40769_IG17\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 11.50\n-G_M40769_IG17:\n-       call     G_M40769_IG27\n-       jmp      G_M40769_IG24\n\u002BG_M40769_IG15:\n\u002B       call     G_M40769_IG25\n\u002B       jmp      G_M40769_IG22\n \t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.00\n-G_M40769_IG18:\n\u002BG_M40769_IG16:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -329,7 \u002B312,7 @@ G_M40769_IG18:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M40769_IG19:\n\u002BG_M40769_IG17:\n        mov      r15, bword ptr [rbp-0x48]\n        mov      dword ptr [r15\u002B0x30], -2\n        xor      rsi, rsi\n@@ -337,16 \u002B320,16 @@ G_M40769_IG19:\n        add      r15, 56\n        mov      rsi, gword ptr [r15]\n        test     rsi, rsi\n-       je       SHORT G_M40769_IG20\n\u002B       je       SHORT G_M40769_IG18\n        mov      rdx, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n-       jmp      SHORT G_M40769_IG24\n\u002B       jmp      SHORT G_M40769_IG22\n \t\t\t\t\t\t;; size=57 bbWeight=1 PerfScore 12.50\n-G_M40769_IG20:\n\u002BG_M40769_IG18:\n        test     rbx, rbx\n-       je       SHORT G_M40769_IG21\n\u002B       je       SHORT G_M40769_IG19\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -354,26 \u002B337,26 @@ G_M40769_IG20:\n        lea      rdi, bword ptr [r14\u002B0x38]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      SHORT G_M40769_IG23\n\u002B       jmp      SHORT G_M40769_IG21\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 7.50\n-G_M40769_IG21:\n\u002BG_M40769_IG19:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       SHORT G_M40769_IG26\n\u002B       je       SHORT G_M40769_IG24\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 3.25\n-G_M40769_IG22:\n\u002BG_M40769_IG20:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]:s_defaultResultTask\n        mov      r14, gword ptr [rdi]\n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 2.25\n-G_M40769_IG23:\n\u002BG_M40769_IG21:\n        mov      rdi, r15\n        mov      rsi, r14\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 1.50\n-G_M40769_IG24:\n\u002BG_M40769_IG22:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M40769_IG25:\n\u002BG_M40769_IG23:\n        add      rsp, 48\n        pop      rbx\n        pop      r13\n@@ -382,36 \u002B365,36 @@ G_M40769_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n-G_M40769_IG26:\n\u002BG_M40769_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      SHORT G_M40769_IG22\n\u002B       jmp      SHORT G_M40769_IG20\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M40769_IG27:\n\u002BG_M40769_IG25:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 1.00\n-G_M40769_IG28:\n\u002BG_M40769_IG26:\n        cmp      dword ptr [rbp-0x24], 0\n-       jge      SHORT G_M40769_IG29\n\u002B       jge      SHORT G_M40769_IG27\n        mov      r15, bword ptr [rbp-0x48]\n        mov      rdi, gword ptr [r15\u002B0x28]\n        test     rdi, rdi\n-       je       SHORT G_M40769_IG29\n\u002B       je       SHORT G_M40769_IG27\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=32 bbWeight=1 PerfScore 9.50\n-G_M40769_IG29:\n\u002BG_M40769_IG27:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M40769_IG30:\n\u002BG_M40769_IG28:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M40769_IG31:\n\u002BG_M40769_IG29:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M40769_IG32:\n\u002BG_M40769_IG30:\n        mov      rdx, rdi\n        mov      r15, bword ptr [rbp-0x48]\n        mov      dword ptr [r15\u002B0x30], -2\n@@ -421,12 \u002B404,12 @@ G_M40769_IG32:\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n-       lea      rax, G_M40769_IG24\n\u002B       lea      rax, G_M40769_IG22\n \t\t\t\t\t\t;; size=54 bbWeight=0 PerfScore 0.00\n-G_M40769_IG33:\n\u002BG_M40769_IG31:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1113, prolog size 37, PerfScore 237.67, instruction count 260, allocated bytes for code 1113 (MethodHash=b7f960be) for method OpenAI.Images.ImageClient\u002B\u003CGenerateImageEditAsync\u003Ed__16:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 1061, prolog size 37, PerfScore 222.67, instruction count 247, allocated bytes for code 1061 (MethodHash=b7f960be) for method OpenAI.Images.ImageClient\u002B\u003CGenerateImageEditAsync\u003Ed__16:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1113,"DiffBytes":1061},{"Assembly":"Pipelines.Sockets.Unofficial.dasm","Method":"Pipelines.Sockets.Unofficial.Threading.MutexSlim:TakeWithTimeout(int):Pipelines.Sockets.Unofficial.Threading.MutexSlim\u002BLockToken:this (FullOpts)","Category":"same-size","Description":"1,283 -\u003E 1,283 bytes (0)","ExtraInfo":null,"Diff":"@@ -216,10 \u002B216,10 @@ G_M52109_IG11:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       cmp      dword ptr [rax], 13\n\u002B       cmp      dword ptr [rax], 12\n        jle      G_M52109_IG34\n        mov      rdi, gword ptr [rax\u002B0x08]\n-       mov      r13, bword ptr [rdi\u002B0x68]\n\u002B       mov      r13, bword ptr [rdi\u002B0x60]\n        test     r13, r13\n        je       G_M52109_IG34\n \t\t\t\t\t\t;; size=68 bbWeight=0.50 PerfScore 8.00\n@@ -482,7 \u002B482,7 @@ G_M52109_IG33:\n        jmp      G_M52109_IG07\n \t\t\t\t\t\t;; size=10 bbWeight=0 PerfScore 0.00\n G_M52109_IG34:\n-       mov      edi, 13\n\u002B       mov      edi, 12\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED\n        call     [rax]CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED\n        mov      r13, rax","Truncated":true,"BaseBytes":1283,"DiffBytes":1283},{"Assembly":"Pomelo.EntityFrameworkCore.MySql.dasm","Method":"Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitExists(Microsoft.EntityFrameworkCore.Query.SqlExpressions.ExistsExpression):System.Linq.Expressions.Expression:this (FullOpts)","Category":"improvement","Description":"403 -\u003E 207 bytes (-196)","ExtraInfo":null,"Diff":"@@ -1,158 \u002B1,98 @@\n ; Assembly listing for method Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitExists(Microsoft.EntityFrameworkCore.Query.SqlExpressions.ExistsExpression):System.Linq.Expressions.Expression:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 0 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] (  9,  8.50)     ref  -\u003E  rbx         this class-hnd single-def \u003CPomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor\u003E\n-;  V01 arg1         [V01,T02] (  6,  6   )     ref  -\u003E  r15         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.ExistsExpression\u003E\n-;  V02 loc0         [V02,T14] (  2,  2   )   ubyte  -\u003E  r14         single-def\n-;  V03 loc1         [V03,T09] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression\u003E\n\u002B;  V00 this         [V00,T00] (  7,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CPomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor\u003E\n\u002B;  V01 arg1         [V01,T01] (  6,  6   )     ref  -\u003E  r15         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.ExistsExpression\u003E\n\u002B;  V02 loc0         [V02,T09] (  2,  2   )   ubyte  -\u003E  r14         single-def\n\u002B;  V03 loc1         [V03,T08] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V05 tmp1         [V05,T16] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;* V06 tmp2         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V07 tmp3         [V07,T01] (  8,  9   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.ExistsExpression\u003E\n-;  V08 tmp4         [V08,T06] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Boolean\u003E\n-;  V09 tmp5         [V09,T10] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u0022impImportAndPushBox\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.ISqlExpressionFactory\u003E\n-;  V10 tmp6         [V10,T11] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022impImportAndPushBox\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.ISqlExpressionFactory\u003E\n-;  V11 tmp7         [V11,T05] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V12 tmp8         [V12,T04] (  3,  4   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n-;  V13 tmp9         [V13,T12] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V14 tmp10        [V14,T13] (  2,  2   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V15 cse0         [V15,T07] (  3,  3   )    long  -\u003E  r13         \u0022CSE #03: aggressive\u0022\n-;  V16 cse1         [V16,T15] (  3,  1.50)     ref  -\u003E  rdi         \u0022CSE #05: moderate\u0022\n-;  V17 rat0         [V17,T03] (  4,  7   )     ref  -\u003E  rsi         \u0022replacement local\u0022\n-;  V18 rat1         [V18,T08] (  3,  2   )    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n\u002B;  V05 tmp1         [V05,T10] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;* V06 tmp2         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.ExistsExpression\u003E\n\u002B;  V07 tmp3         [V07,T04] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.ExistsExpression\u003E\n\u002B;  V08 tmp4         [V08,T05] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V09 tmp5         [V09,T03] (  3,  4   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n\u002B;  V10 cse0         [V10,T06] (  3,  3   )    long  -\u003E  r13         \u0022CSE #03: aggressive\u0022\n\u002B;  V11 rat0         [V11,T02] (  4,  7   )     ref  -\u003E  rsi         \u0022replacement local\u0022\n\u002B;  V12 rat1         [V12,T07] (  3,  2   )    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n ;\n ; Lcl frame size = 0\n \n G_M21903_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     rbx\n        lea      rbp, [rsp\u002B0x20]\n        mov      rbx, rdi\n        mov      r15, rsi\n \t\t\t\t\t\t;; size=19 bbWeight=1 PerfScore 6.00\n G_M21903_IG02:\n        test     r15, r15\n-       je       G_M21903_IG10\n\u002B       je       SHORT G_M21903_IG06\n        movzx    r14, byte  ptr [rbx\u002B0x10]\n        mov      byte  ptr [rbx\u002B0x10], 0\n        mov      rdi, r15\n        mov      rax, qword ptr [r15]\n        mov      r13, qword ptr [rax\u002B0x48]\n        call     [r13\u002B0x30]Microsoft.EntityFrameworkCore.Query.SqlExpressions.ExistsExpression:get_Subquery():Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression:this\n        mov      rsi, rax\n        mov      rdi, rbx\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x20]System.Linq.Expressions.ExpressionVisitor:Visit(System.Linq.Expressions.Expression):System.Linq.Expressions.Expression:this\n        mov      rsi, rax\n        test     rsi, rsi\n        je       SHORT G_M21903_IG04\n-\t\t\t\t\t\t;; size=56 bbWeight=1 PerfScore 20.50\n\u002B\t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 20.50\n G_M21903_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression\n        cmp      qword ptr [rsi], rdi\n-       jne      G_M21903_IG11\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n\u002B       jne      SHORT G_M21903_IG07\n\u002B\t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 1.62\n G_M21903_IG04:\n        mov      byte  ptr [rbx\u002B0x10], r14b\n        mov      rdi, r15\n        call     [r13\u002B0x38]Microsoft.EntityFrameworkCore.Query.SqlExpressions.ExistsExpression:Update(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression):Microsoft.EntityFrameworkCore.Query.SqlExpressions.ExistsExpression:this\n-       mov      r15, rax\n-       cmp      byte  ptr [rbx\u002B0x10], 0\n-       je       SHORT G_M21903_IG06\n-\t\t\t\t\t\t;; size=20 bbWeight=1 PerfScore 7.50\n\u002B       nop      \n\u002B\t\t\t\t\t\t;; size=12 bbWeight=1 PerfScore 4.50\n G_M21903_IG05:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Microsoft.EntityFrameworkCore.Query.SqlExpressions.ColumnExpression\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M21903_IG06\n-       mov      rdi, r15\n-       mov      rax, qword ptr [r15]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-       call     [rax\u002B0x10]Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:get_TypeMapping():Microsoft.EntityFrameworkCore.Storage.RelationalTypeMapping:this\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; Pomelo.EntityFrameworkCore.MySql.Storage.Internal.MySqlBoolTypeMapping\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M21903_IG06\n-       mov      rdi, r15\n-       mov      rax, qword ptr [r15]\n-       mov      rax, qword ptr [rax\u002B0x40]\n-       call     [rax\u002B0x28]System.Linq.Expressions.Expression:get_Type():System.Type:this\n-       mov      rdi, 0xD1FFAB1E      ; \u0027System.Boolean\u0027\n-       cmp      rax, rdi\n-       je       SHORT G_M21903_IG08\n-\t\t\t\t\t\t;; size=101 bbWeight=0.50 PerfScore 13.00\n-G_M21903_IG06:\n-       mov      rax, r15\n-\t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M21903_IG07:\n        pop      rbx\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 1.75\n-G_M21903_IG08:\n-       mov      rdi, 0xD1FFAB1E      ; System.Boolean\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      rdi, gword ptr [rbx\u002B0x08]\n-       mov      rbx, rdi\n-       mov      byte  ptr [rax\u002B0x08], 1\n-       mov      rsi, rax\n-       mov      r11, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Constant(System.Object,Microsoft.EntityFrameworkCore.Storage.RelationalTypeMapping):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-       xor      rdx, rdx\n-       call     [r11]Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Constant(System.Object,Microsoft.EntityFrameworkCore.Storage.RelationalTypeMapping):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-       mov      rdx, rax\n-       mov      rdi, rbx\n-       mov      rsi, r15\n-       mov      r11, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Equal(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-       cmp      dword ptr [rdi], edi\n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 5.62\n-G_M21903_IG09:\n-       pop      rbx\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [r11]Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Equal(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-\t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 2.25\n-G_M21903_IG10:\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.50\n\u002BG_M21903_IG06:\n        mov      rdi, 0xD1FFAB1E      ; \u0027existsExpression\u0027\n        mov      rsi, 0xD1FFAB1E      ; \u0027parameterName\u0027\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Utilities.Check:NotEmpty(System.String,System.String):System.String\n        call     [rax]Microsoft.EntityFrameworkCore.Utilities.Check:NotEmpty(System.String,System.String):System.String\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; \u0027existsExpression\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:.ctor(System.String):this\n        call     [rax]System.ArgumentNullException:.ctor(System.String):this\n        mov      rdi, rbx\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=84 bbWeight=0 PerfScore 0.00\n-G_M21903_IG11:\n\u002BG_M21903_IG07:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rax]CORINFO_HELP_CHKCASTCLASS\n        int3     \n \t\t\t\t\t\t;; size=16 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 403, prolog size 13, PerfScore 58.38, instruction count 101, allocated bytes for code 403 (MethodHash=5067aa70) for method Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitExists(Microsoft.EntityFrameworkCore.Query.SqlExpressions.ExistsExpression):System.Linq.Expressions.Expression:this (FullOpts)\n\u002B; Total bytes of code 207, prolog size 13, PerfScore 36.12, instruction count 55, allocated bytes for code 207 (MethodHash=5067aa70) for method Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitExists(Microsoft.EntityFrameworkCore.Query.SqlExpressions.ExistsExpression):System.Linq.Expressions.Expression:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":403,"DiffBytes":207},{"Assembly":"SharpCompress.dasm","Method":"SharpCompress.Compressors.ZStandard.Unsafe.Methods:ZSTD_window_init(ptr) (FullOpts)","Category":"same-size","Description":"21 -\u003E 21 bytes (0)","ExtraInfo":null,"Diff":"@@ -1,69 \u002B1,69 @@\n ; Assembly listing for method SharpCompress.Compressors.ZStandard.Unsafe.Methods:ZSTD_window_init(ptr) (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rsp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 9 single block inlinees; 3 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 arg0         [V00,T00] (  4,  4   )    long  -\u003E  rdi         single-def\n ;* V01 loc0         [V01    ] (  0,  0   )  struct (40) zero-ref    do-not-enreg[SF] ld-addr-op \u003CSharpCompress.Compressors.ZStandard.Unsafe.ZSTD_window_t\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V03 tmp1         [V03    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.ReadOnlySpan\u00601[byte]\u003E\n ;* V04 tmp2         [V04    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ReadOnlySpan\u00601[byte]\u003E\n ;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.ReadOnlySpan\u00601[byte]\u003E\n ;* V06 tmp4         [V06    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.ReadOnlySpan\u00601[byte]\u003E\n ;* V07 tmp5         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ReadOnlySpan\u00601[byte]\u003E\n ;* V08 tmp6         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.ReadOnlySpan\u00601[byte]\u003E\n ;* V09 tmp7         [V09    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.ReadOnlySpan\u00601[byte]\u003E\n ;* V10 tmp8         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ReadOnlySpan\u00601[byte]\u003E\n ;* V11 tmp9         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.ReadOnlySpan\u00601[byte]\u003E\n ;* V12 tmp10        [V12    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022field V03._reference (fldOffset=0x0)\u0022 P-INDEP\n ;* V13 tmp11        [V13    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V03._length (fldOffset=0x8)\u0022 P-INDEP\n ;* V14 tmp12        [V14    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V04._reference (fldOffset=0x0)\u0022 P-INDEP\n ;* V15 tmp13        [V15    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V04._length (fldOffset=0x8)\u0022 P-INDEP\n ;* V16 tmp14        [V16    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V05._reference (fldOffset=0x0)\u0022 P-INDEP\n ;* V17 tmp15        [V17    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V05._length (fldOffset=0x8)\u0022 P-INDEP\n ;* V18 tmp16        [V18    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022field V06._reference (fldOffset=0x0)\u0022 P-INDEP\n ;* V19 tmp17        [V19    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V06._length (fldOffset=0x8)\u0022 P-INDEP\n ;* V20 tmp18        [V20    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V07._reference (fldOffset=0x0)\u0022 P-INDEP\n ;* V21 tmp19        [V21    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V07._length (fldOffset=0x8)\u0022 P-INDEP\n ;* V22 tmp20        [V22    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V08._reference (fldOffset=0x0)\u0022 P-INDEP\n ;* V23 tmp21        [V23    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V08._length (fldOffset=0x8)\u0022 P-INDEP\n ;* V24 tmp22        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022field V09._reference (fldOffset=0x0)\u0022 P-INDEP\n ;* V25 tmp23        [V25    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V09._length (fldOffset=0x8)\u0022 P-INDEP\n ;* V26 tmp24        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V10._reference (fldOffset=0x0)\u0022 P-INDEP\n ;* V27 tmp25        [V27    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V10._length (fldOffset=0x8)\u0022 P-INDEP\n ;* V28 tmp26        [V28    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V11._reference (fldOffset=0x0)\u0022 P-INDEP\n ;* V29 tmp27        [V29    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V11._length (fldOffset=0x8)\u0022 P-INDEP\n ;* V30 tmp28        [V30    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V01.[000..008)\u0022\n ;* V31 tmp29        [V31    ] (  0,  0   )    long  -\u003E  zero-ref    single-def \u0022V01.[008..016)\u0022\n ;* V32 tmp30        [V32    ] (  0,  0   )    long  -\u003E  zero-ref    single-def \u0022V01.[016..024)\u0022\n ;* V33 tmp31        [V33    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022V01.[024..028)\u0022\n ;* V34 tmp32        [V34    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022V01.[028..032)\u0022\n ;* V35 tmp33        [V35    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022V01.[032..036)\u0022\n ;* V36 tmp34        [V36    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Cast away GC\u0022\n ;* V37 tmp35        [V37    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Cast away GC\u0022\n ;* V38 tmp36        [V38    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Cast away GC\u0022\n ;\n ; Lcl frame size = 0\n \n G_M47049_IG01:\n \t\t\t\t\t\t;; size=0 bbWeight=1 PerfScore 0.00\n G_M47049_IG02:\n        vmovups  ymm0, ymmword ptr [reloc @RWD00]\n        vmovups  ymmword ptr [rdi], ymm0\n        xor      eax, eax\n        mov      dword ptr [rdi\u002B0x20], eax\n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 4.25\n G_M47049_IG03:\n        vzeroupper \n        ret      \n \t\t\t\t\t\t;; size=4 bbWeight=1 PerfScore 2.00\n-RWD00  \tdq\t0000753F25DFBD7Ah, 0000753F25DFBD78h, 0000753F25DFBD78h, 0000000200000002h\n\u002BRWD00  \tdq\t000072275C3FBD7Ah, 000072275C3FBD78h, 000072275C3FBD78h, 0000000200000002h\n \n \n ; Total bytes of code 21, prolog size 0, PerfScore 6.25, instruction count 6, allocated bytes for code 21 (MethodHash=a7054836) for method SharpCompress.Compressors.ZStandard.Unsafe.Methods:ZSTD_window_init(ptr) (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":21,"DiffBytes":21},{"Assembly":"SkiaSharp.dasm","Method":"SkiaSharp.SKTraceMemoryDump:.cctor() (FullOpts)","Category":"same-size","Description":"189 -\u003E 189 bytes (0)","ExtraInfo":null,"Diff":"@@ -1,85 \u002B1,85 @@\n ; Assembly listing for method SkiaSharp.SKTraceMemoryDump:.cctor() (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; Final local variable assignments\n ;\n ;* V00 loc0         [V00    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u003CSkiaSharp.SKManagedTraceMemoryDumpDelegates\u003E\n ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V02 FramesRoot   [V02,T00] (  6,  6   )    long  -\u003E  rbx         \u0022Pinvoke FrameListRoot\u0022\n ;  V03 PInvokeFrame [V03    ] (  8,  8   )  struct (56) [rbp-0x60]  do-not-enreg[XS] addr-exposed \u0022Pinvoke FrameVar\u0022 \u003CUNNAMED\u003E\n ;* V04 tmp3         [V04    ] (  0,  0   )    long  -\u003E  zero-ref    single-def \u0022field V00.fDumpNumericValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V05 tmp4         [V05    ] (  0,  0   )    long  -\u003E  zero-ref    single-def \u0022field V00.fDumpStringValue (fldOffset=0x8)\u0022 P-INDEP\n ;  V06 cse0         [V06,T01] (  3,  3   )    long  -\u003E  rdi         \u0022CSE #01: aggressive\u0022\n ;\n ; Lcl frame size = 56\n \n G_M50740_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        sub      rsp, 56\n        vzeroupper \n        lea      rbp, [rsp\u002B0x60]\n \t\t\t\t\t\t;; size=22 bbWeight=1 PerfScore 7.75\n G_M50740_IG02:\n        lea      rdi, [rbp-0x60]\n        call     CORINFO_HELP_INIT_PINVOKE_FRAME\n        mov      rbx, rax\n        mov      rdi, rsp\n        mov      qword ptr [rbp-0x48], rdi\n        mov      rdi, rbp\n        mov      qword ptr [rbp-0x38], rdi\n        mov      rdi, 0xD1FFAB1E      ; data for SkiaSharp.SKTraceMemoryDump:delegates\n        vmovups  xmm0, xmmword ptr [reloc @RWD00]\n        vmovups  xmmword ptr [rdi], xmm0\n        mov      rdi, qword ptr [rdi]\n        mov      rsi, 0xD1FFAB1E\n        mov      rsi, qword ptr [rsi]\n        mov      rax, 0xD1FFAB1E      ; function address\n        mov      qword ptr [rbp-0x50], rax\n        lea      rax, G_M50740_IG05\n        mov      qword ptr [rbp-0x40], rax\n        lea      rax, [rbp-0x60]\n        mov      qword ptr [rbx\u002B0x08], rax\n        mov      byte  ptr [rbx\u002B0x04], 0\n \t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 16.50\n G_M50740_IG03:\n        mov      rax, 0xD1FFAB1E      ; code for SkiaSharp.SkiaApi:sk_managedtracememorydump_set_procs(SkiaSharp.SKManagedTraceMemoryDumpDelegates)\n \t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 0.25\n G_M50740_IG04:\n        call     [rax]SkiaSharp.SkiaApi:sk_managedtracememorydump_set_procs(SkiaSharp.SKManagedTraceMemoryDumpDelegates)\n \t\t\t\t\t\t;; size=2 bbWeight=1 PerfScore 3.00\n G_M50740_IG05:\n        mov      byte  ptr [rbx\u002B0x04], 1\n        mov      rcx, 0xD1FFAB1E      ; function address\n        cmp      dword ptr [rcx], 0\n        je       SHORT G_M50740_IG06\n        mov      rdi, 0xD1FFAB1E\n        call     [rdi]CORINFO_HELP_STOP_FOR_GC\n \t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.50\n G_M50740_IG06:\n        mov      rax, qword ptr [rbp-0x58]\n        mov      qword ptr [rbx\u002B0x08], rax\n \t\t\t\t\t\t;; size=8 bbWeight=1 PerfScore 2.00\n G_M50740_IG07:\n        add      rsp, 56\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-RWD00  \tdq\t00007A20BCE83D50h, 00007A20BCE83D68h\n\u002BRWD00  \tdq\t0000775E8EC93D50h, 0000775E8EC93D68h\n \n \n ; Total bytes of code 189, prolog size 22, PerfScore 41.25, instruction count 47, allocated bytes for code 189 (MethodHash=dc2a39cb) for method SkiaSharp.SKTraceMemoryDump:.cctor() (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":189,"DiffBytes":189},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.Cadences.SpendModifierRuleService:ListAutoPaging(System.String,Stripe.V2.Billing.Cadences.SpendModifierRuleListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.CadenceSpendModifier]:this (FullOpts)","Category":"improvement","Description":"513 -\u003E 464 bytes (-49)","ExtraInfo":null,"Diff":"@@ -9,33 \u002B9,32 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T05] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.Cadences.SpendModifierRuleService\u003E\n-;  V01 arg1         [V01,T08] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.Cadences.SpendModifierRuleListOptions\u003E\n-;  V03 arg3         [V03,T07] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T07] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V02 arg2         [V02,T08] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.Cadences.SpendModifierRuleListOptions\u003E\n\u002B;  V03 arg3         [V03,T06] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T11] (  3,  2   )     ref  -\u003E  r15         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.CadenceSpendModifier]\u003E\n ;  V06 tmp2         [V06,T02] (  4,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V07 tmp3         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V08 tmp4         [V08,T12] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;  V09 tmp5         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.CadenceSpendModifier]\u003E\n-;* V10 tmp6         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp8         [V12,T03] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.CadenceSpendModifier]\u003E\n-;  V13 tmp9         [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.CadenceSpendModifier]\u003E\n-;* V14 tmp10        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp11        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp12        [V16,T04] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.CadenceSpendModifier]\u003E\n-;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V07._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp14        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp15        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp16        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp17        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 tmp18        [V22,T09] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V23 cse0         [V23,T10] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #02: moderate\u0022\n-;  V24 rat0         [V24,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T15] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T16] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.CadenceSpendModifier]\u003E\n\u002B;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp6         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp7         [V11,T03] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.CadenceSpendModifier]\u003E\n\u002B;  V12 tmp8         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.CadenceSpendModifier]\u003E\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp11        [V15,T04] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.CadenceSpendModifier]\u003E\n\u002B;* V16 tmp12        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V07._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp14        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp15        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp16        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 tmp17        [V21,T09] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V22 cse0         [V22,T10] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #02: moderate\u0022\n\u002B;  V23 rat0         [V23,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T15] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n@@ -49,8 \u002B48,8 @@ G_M36284_IG01:\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rdx\n-       mov      r14, rcx\n\u002B       mov      r14, rdx\n\u002B       mov      r15, rcx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M36284_IG02:\n        mov      rdi, rsi\n@@ -69,49 \u002B68,41 @@ G_M36284_IG02:\n        je       G_M36284_IG04\n \t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 12.50\n G_M36284_IG03:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.CadenceSpendModifier]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n-       mov      eax, dword ptr [rax\u002B0x10]\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, dword ptr [rax\u002B0x10]\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x28]\n\u002B       lea      rdi, bword ptr [r14\u002B0x28]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.CadenceSpendModifier]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        mov      dword ptr [r15\u002B0x28], -2\n-       mov      r14d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r15\u002B0x2C], r14d\n\u002B       mov      dword ptr [r15\u002B0x2C], r12d\n        lea      rdi, bword ptr [r15\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M36284_IG05\n-\t\t\t\t\t\t;; size=212 bbWeight=0.50 PerfScore 16.00\n\u002B\t\t\t\t\t\t;; size=164 bbWeight=0.50 PerfScore 12.75\n G_M36284_IG04:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.CadenceSpendModifier]\n        call     CORINFO_HELP_NEWSFAST\n@@ -134,10 \u002B125,10 @@ G_M36284_IG04:\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n@@ -145,12 \u002B136,12 @@ G_M36284_IG04:\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        mov      dword ptr [r15\u002B0x28], -2\n-       mov      r14d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r15\u002B0x2C], r14d\n\u002B       mov      ebx, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r15\u002B0x2C], ebx\n        lea      rdi, bword ptr [r15\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=181 bbWeight=0.50 PerfScore 13.12\n\u002B\t\t\t\t\t\t;; size=180 bbWeight=0.50 PerfScore 13.12\n G_M36284_IG05:\n        mov      rax, r15\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n@@ -165,5 \u002B156,5 @@ G_M36284_IG06:\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 513, prolog size 16, PerfScore 54.38, instruction count 113, allocated bytes for code 513 (MethodHash=d9ef7243) for method Stripe.V2.Billing.Cadences.SpendModifierRuleService:ListAutoPaging(System.String,Stripe.V2.Billing.Cadences.SpendModifierRuleListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.CadenceSpendModifier]:this (FullOpts)\n\u002B; Total bytes of code 464, prolog size 16, PerfScore 51.12, instruction count 105, allocated bytes for code 464 (MethodHash=d9ef7243) for method Stripe.V2.Billing.Cadences.SpendModifierRuleService:ListAutoPaging(System.String,Stripe.V2.Billing.Cadences.SpendModifierRuleListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.CadenceSpendModifier]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":513,"DiffBytes":464},{"Assembly":"System.CommandLine.dasm","Method":"System.CommandLine.Argument\u00601[double]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,double]:this (FullOpts)","Category":"improvement","Description":"234 -\u003E 5 bytes (-229)","ExtraInfo":null,"Diff":"@@ -1,100 \u002B1,35 @@\n ; Assembly listing for method System.CommandLine.Argument\u00601[double]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,double]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] (  4,  3.50)     ref  -\u003E  rdi         this class-hnd single-def \u003CSystem.CommandLine.Argument\u00601[double]\u003E\n-;  V01 loc0         [V01,T06] (  3,  1.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.CommandLine.Argument\u00601[bool]\u003E\n\u002B;  V00 this         [V00,T00] (  3,  3   )     ref  -\u003E  rdi         this class-hnd single-def \u003CSystem.CommandLine.Argument\u00601[double]\u003E\n\u002B;* V01 loc0         [V01    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.CommandLine.Argument\u00601[bool]\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V03 tmp1         [V03,T05] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\u003E\n-;* V04 tmp2         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V05 tmp3         [V05,T04] (  4,  2   )     ref  -\u003E  rsi        \n-;  V06 tmp4         [V06,T01] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\u003E\n-;  V07 tmp5         [V07,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.CommandLine.Argument\u00601\u002B\u003C\u003Ec[double]\u003E\n\u002B;* V03 tmp1         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\u003E\n\u002B;* V04 tmp2         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref   \n\u002B;* V05 tmp3         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref   \n\u002B;* V06 tmp4         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\u003E\n\u002B;* V07 tmp5         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.CommandLine.Argument\u00601\u002B\u003C\u003Ec[double]\u003E\n ;* V08 tmp6         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.CommandLine.Argument\u00601[bool]\u003E\n ;* V09 tmp7         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\u003E\n-;* V10 cse0         [V10,T07] (  0,  0   )   byref  -\u003E  zero-ref    \u0022CSE #02: aggressive\u0022\n-;  V11 cse1         [V11,T03] (  3,  3   )     ref  -\u003E  rbx         \u0022CSE #04: aggressive\u0022\n\u002B;  V10 cse0         [V10,T01] (  2,  2   )     ref  -\u003E  rax         \u0022CSE #01: aggressive\u0022\n ;\n-; Lcl frame size = 8\n\u002B; Lcl frame size = 0\n \n G_M52823_IG01:\n-       push     rbp\n-       push     r15\n-       push     r14\n-       push     rbx\n-       push     rax\n-       lea      rbp, [rsp\u002B0x20]\n-\t\t\t\t\t\t;; size=12 bbWeight=1 PerfScore 5.50\n\u002B\t\t\t\t\t\t;; size=0 bbWeight=1 PerfScore 0.00\n G_M52823_IG02:\n-       mov      rbx, gword ptr [rdi\u002B0x60]\n-       test     rbx, rbx\n-       jne      G_M52823_IG06\n-\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.25\n\u002B       mov      rax, gword ptr [rdi\u002B0x60]\n\u002B\t\t\t\t\t\t;; size=4 bbWeight=1 PerfScore 2.00\n G_M52823_IG03:\n-       mov      rsi, rdi\n-       mov      rdi, 0xD1FFAB1E      ; System.CommandLine.Argument\u00601[bool]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n-       test     r15, r15\n-       je       SHORT G_M52823_IG06\n-       mov      rdi, 0xD1FFAB1E      ; global ptr\n-       test     byte  ptr [rdi], 1\n-       je       SHORT G_M52823_IG08\n-\t\t\t\t\t\t;; size=48 bbWeight=0.50 PerfScore 4.25\n-G_M52823_IG04:\n-       mov      rdi, 0xD1FFAB1E      ; data for System.CommandLine.Argument\u00601\u002B\u003C\u003Ec[double]:\u003C\u003E9__4_0\n-       mov      rsi, gword ptr [rdi]\n-       test     rsi, rsi\n-       jne      SHORT G_M52823_IG05\n-       mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      rdi, 0xD1FFAB1E      ; data for System.CommandLine.Argument\u00601\u002B\u003C\u003Ec[double]:\u003C\u003E9\n-       mov      rsi, gword ptr [rdi]\n-       test     rsi, rsi\n-       je       SHORT G_M52823_IG09\n-       lea      rdi, bword ptr [r14\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, 0xD1FFAB1E      ; code for System.CommandLine.Argument\u00601\u002B\u003C\u003Ec[double]:\u003Cget_DefaultValueFactory\u003Eb__4_0(System.CommandLine.Parsing.ArgumentResult):bool:this\n-       mov      qword ptr [r14\u002B0x18], rdi\n-       mov      rdi, 0xD1FFAB1E      ; data for System.CommandLine.Argument\u00601\u002B\u003C\u003Ec[double]:\u003C\u003E9__4_0\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rsi, r14\n-\t\t\t\t\t\t;; size=98 bbWeight=0.50 PerfScore 6.50\n-G_M52823_IG05:\n-       lea      rdi, bword ptr [r15\u002B0x60]\n-       call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 0.75\n-G_M52823_IG06:\n-       mov      rax, rbx\n-\t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M52823_IG07:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M52823_IG08:\n-       mov      rdi, 0xD1FFAB1E      ; System.CommandLine.Argument\u00601\u002B\u003C\u003Ec[double]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M52823_IG04\n-\t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M52823_IG09:\n-       mov      rax, 0xD1FFAB1E      ; code for System.Delegate:ThrowNullThisInDelegateToInstance()\n-       call     [rax]System.Delegate:ThrowNullThisInDelegateToInstance()\n-       int3     \n-\t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n\u002B\t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 1.00\n \n-; Total bytes of code 234, prolog size 12, PerfScore 23.75, instruction count 54, allocated bytes for code 234 (MethodHash=04ac31a8) for method System.CommandLine.Argument\u00601[double]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,double]:this (FullOpts)\n\u002B; Total bytes of code 5, prolog size 0, PerfScore 3.00, instruction count 2, allocated bytes for code 5 (MethodHash=04ac31a8) for method System.CommandLine.Argument\u00601[double]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,double]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":234,"DiffBytes":5},{"Assembly":"System.Data.Common.dasm","Method":"System.Data.EnumerableRowCollectionExtensions:Select[int,System.Nullable\u00601[int]](System.Data.EnumerableRowCollection\u00601[int],System.Func\u00602[int,System.Nullable\u00601[int]]):System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]] (FullOpts)","Category":"regression","Description":"147 -\u003E 249 bytes (\u002B102)","ExtraInfo":null,"Diff":"@@ -1,66 \u002B1,94 @@\n ; Assembly listing for method System.Data.EnumerableRowCollectionExtensions:Select[int,System.Nullable\u00601[int]](System.Data.EnumerableRowCollection\u00601[int],System.Func\u00602[int,System.Nullable\u00601[int]]):System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]] (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n\u002B; 0 inlinees with PGO data; 4 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T00] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.EnumerableRowCollection\u00601[int]\u003E\n-;  V01 arg1         [V01,T01] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Func\u00602[int,System.Nullable\u00601[int]]\u003E\n-;  V02 loc0         [V02,T05] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V00 arg0         [V00,T04] (  3,  3   )     ref  -\u003E  rdi         class-hnd single-def \u003CSystem.Data.EnumerableRowCollection\u00601[int]\u003E\n\u002B;  V01 arg1         [V01,T01] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Func\u00602[int,System.Nullable\u00601[int]]\u003E\n\u002B;  V02 loc0         [V02,T07] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V04 tmp1         [V04,T02] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]]\u003E\n-;  V05 tmp2         [V05,T03] (  2,  4   )     ref  -\u003E  rbx         single-def \u0022argument with side effect\u0022\n-;  V06 tmp3         [V06,T04] (  2,  4   )     ref  -\u003E  rcx         single-def \u0022argument with side effect\u0022\n\u002B;  V04 tmp1         [V04,T00] (  6, 12   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V05 tmp2         [V05,T05] (  2,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]\u003E\n\u002B;  V06 tmp3         [V06,T02] (  3,  6   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Func\u00602[System.Nullable\u00601[int],bool]]\u003E\n\u002B;  V07 tmp4         [V07,T03] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.SortExpressionBuilder\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V08 cse0         [V08,T06] (  3,  2   )    long  -\u003E  rbx         \u0022CSE #01: aggressive\u0022\n ;\n-; Lcl frame size = 0\n\u002B; Lcl frame size = 8\n \n G_M20216_IG01:\n        push     rbp\n        push     r15\n        push     r14\n-       push     r13\n        push     rbx\n\u002B       push     rax\n        lea      rbp, [rsp\u002B0x20]\n-       mov      rbx, rdi\n-       mov      r15, rsi\n-\t\t\t\t\t\t;; size=19 bbWeight=1 PerfScore 6.00\n\u002B       mov      rbx, rsi\n\u002B\t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 5.75\n G_M20216_IG02:\n-       mov      rdi, rbx\n-       mov      rsi, r15\n\u002B       mov      rsi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:Select[int,System.Nullable\u00601[int]](System.Collections.Generic.IEnumerable\u00601[int],System.Func\u00602[int,System.Nullable\u00601[int]]):System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]\n        call     [rax]System.Linq.Enumerable:Select[int,System.Nullable\u00601[int]](System.Collections.Generic.IEnumerable\u00601[int],System.Func\u00602[int,System.Nullable\u00601[int]]):System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]\n-       mov      r14, rax\n\u002B       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n\u002B       mov      r14, rax\n        mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      rbx, rax\n-       mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFANY\n        call     [rax]CORINFO_HELP_ISINSTANCEOFANY\n-       mov      rcx, rax\n\u002B       mov      rbx, rax\n\u002B       lea      rdi, bword ptr [r14\u002B0x10]\n\u002B       mov      rsi, r15\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       lea      rdi, bword ptr [r14\u002B0x28]\n        mov      rsi, rbx\n-       mov      rdx, r14\n-       mov      rdi, r13\n-       mov      rax, 0xD1FFAB1E      ; code for System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]]:.ctor(System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]],System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]],System.Func\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]):this\n-       call     [rax]System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]]:.ctor(System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]],System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]],System.Func\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]):this\n-       mov      rax, r13\n-\t\t\t\t\t\t;; size=119 bbWeight=1 PerfScore 17.75\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       mov      rbx, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.Func\u00602[System.Nullable\u00601[int],bool]]\n\u002B       mov      rdi, rbx\n\u002B       call     CORINFO_HELP_NEWSFAST\n\u002B       mov      r15, rax\n\u002B       mov      rdi, 0xD1FFAB1E      ; global ptr\n\u002B       test     byte  ptr [rdi], 1\n\u002B       je       SHORT G_M20216_IG05\n\u002B\t\t\t\t\t\t;; size=124 bbWeight=1 PerfScore 17.75\n G_M20216_IG03:\n\u002B       mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.List\u00601[System.Func\u00602[System.Nullable\u00601[int],bool]]:s_emptyArray\n\u002B       mov      rsi, gword ptr [rdi]\n\u002B       lea      rdi, bword ptr [r15\u002B0x08]\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n\u002B       mov      rsi, r15\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       mov      rdi, 0xD1FFAB1E      ; System.Data.SortExpressionBuilder\u00601[System.Nullable\u00601[int]]\n\u002B       call     CORINFO_HELP_NEWSFAST\n\u002B       mov      rbx, rax\n\u002B       mov      rdi, rbx\n\u002B       mov      rax, 0xD1FFAB1E      ; code for System.Data.SortExpressionBuilder\u00601[System.Nullable\u00601[int]]:.ctor():this\n\u002B       call     [rax]System.Data.SortExpressionBuilder\u00601[System.Nullable\u00601[int]]:.ctor():this\n\u002B       lea      rdi, bword ptr [r14\u002B0x20]\n\u002B       mov      rsi, rbx\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       mov      rax, r14\n\u002B\t\t\t\t\t\t;; size=82 bbWeight=1 PerfScore 12.50\n\u002BG_M20216_IG04:\n\u002B       add      rsp, 8\n        pop      rbx\n-       pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.50\n\u002B\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n\u002BG_M20216_IG05:\n\u002B       mov      rdi, rbx\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n\u002B       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n\u002B       jmp      SHORT G_M20216_IG03\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 147, prolog size 13, PerfScore 27.25, instruction count 38, allocated bytes for code 147 (MethodHash=6ea9b107) for method System.Data.EnumerableRowCollectionExtensions:Select[int,System.Nullable\u00601[int]](System.Data.EnumerableRowCollection\u00601[int],System.Func\u00602[int,System.Nullable\u00601[int]]):System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]] (FullOpts)\n\u002B; Total bytes of code 249, prolog size 12, PerfScore 39.25, instruction count 59, allocated bytes for code 249 (MethodHash=6ea9b107) for method System.Data.EnumerableRowCollectionExtensions:Select[int,System.Nullable\u00601[int]](System.Data.EnumerableRowCollection\u00601[int],System.Func\u00602[int,System.Nullable\u00601[int]]):System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]] (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":147,"DiffBytes":249},{"Assembly":"ZstdSharp.dasm","Method":"ZstdSharp.Unsafe.Methods:ZSTD_window_init(ptr) (FullOpts)","Category":"same-size","Description":"21 -\u003E 21 bytes (0)","ExtraInfo":null,"Diff":"@@ -1,69 \u002B1,69 @@\n ; Assembly listing for method ZstdSharp.Unsafe.Methods:ZSTD_window_init(ptr) (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rsp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 9 single block inlinees; 3 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 arg0         [V00,T00] (  4,  4   )    long  -\u003E  rdi         single-def\n ;* V01 loc0         [V01    ] (  0,  0   )  struct (40) zero-ref    do-not-enreg[SF] ld-addr-op \u003CZstdSharp.Unsafe.ZSTD_window_t\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V03 tmp1         [V03    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.ReadOnlySpan\u00601[byte]\u003E\n ;* V04 tmp2         [V04    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ReadOnlySpan\u00601[byte]\u003E\n ;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.ReadOnlySpan\u00601[byte]\u003E\n ;* V06 tmp4         [V06    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.ReadOnlySpan\u00601[byte]\u003E\n ;* V07 tmp5         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ReadOnlySpan\u00601[byte]\u003E\n ;* V08 tmp6         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.ReadOnlySpan\u00601[byte]\u003E\n ;* V09 tmp7         [V09    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.ReadOnlySpan\u00601[byte]\u003E\n ;* V10 tmp8         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ReadOnlySpan\u00601[byte]\u003E\n ;* V11 tmp9         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.ReadOnlySpan\u00601[byte]\u003E\n ;* V12 tmp10        [V12    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022field V03._reference (fldOffset=0x0)\u0022 P-INDEP\n ;* V13 tmp11        [V13    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V03._length (fldOffset=0x8)\u0022 P-INDEP\n ;* V14 tmp12        [V14    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V04._reference (fldOffset=0x0)\u0022 P-INDEP\n ;* V15 tmp13        [V15    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V04._length (fldOffset=0x8)\u0022 P-INDEP\n ;* V16 tmp14        [V16    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V05._reference (fldOffset=0x0)\u0022 P-INDEP\n ;* V17 tmp15        [V17    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V05._length (fldOffset=0x8)\u0022 P-INDEP\n ;* V18 tmp16        [V18    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022field V06._reference (fldOffset=0x0)\u0022 P-INDEP\n ;* V19 tmp17        [V19    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V06._length (fldOffset=0x8)\u0022 P-INDEP\n ;* V20 tmp18        [V20    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V07._reference (fldOffset=0x0)\u0022 P-INDEP\n ;* V21 tmp19        [V21    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V07._length (fldOffset=0x8)\u0022 P-INDEP\n ;* V22 tmp20        [V22    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V08._reference (fldOffset=0x0)\u0022 P-INDEP\n ;* V23 tmp21        [V23    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V08._length (fldOffset=0x8)\u0022 P-INDEP\n ;* V24 tmp22        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022field V09._reference (fldOffset=0x0)\u0022 P-INDEP\n ;* V25 tmp23        [V25    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V09._length (fldOffset=0x8)\u0022 P-INDEP\n ;* V26 tmp24        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V10._reference (fldOffset=0x0)\u0022 P-INDEP\n ;* V27 tmp25        [V27    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V10._length (fldOffset=0x8)\u0022 P-INDEP\n ;* V28 tmp26        [V28    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V11._reference (fldOffset=0x0)\u0022 P-INDEP\n ;* V29 tmp27        [V29    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V11._length (fldOffset=0x8)\u0022 P-INDEP\n ;* V30 tmp28        [V30    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V01.[000..008)\u0022\n ;* V31 tmp29        [V31    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V01.[008..016)\u0022\n ;* V32 tmp30        [V32    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022V01.[016..024)\u0022\n ;* V33 tmp31        [V33    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022V01.[024..028)\u0022\n ;* V34 tmp32        [V34    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022V01.[028..032)\u0022\n ;* V35 tmp33        [V35    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022V01.[032..036)\u0022\n ;* V36 tmp34        [V36    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Cast away GC\u0022\n ;* V37 tmp35        [V37    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Cast away GC\u0022\n ;* V38 tmp36        [V38    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Cast away GC\u0022\n ;\n ; Lcl frame size = 0\n \n G_M7775_IG01:\n \t\t\t\t\t\t;; size=0 bbWeight=1 PerfScore 0.00\n G_M7775_IG02:\n        vmovups  ymm0, ymmword ptr [reloc @RWD00]\n        vmovups  ymmword ptr [rdi], ymm0\n        xor      eax, eax\n        mov      dword ptr [rdi\u002B0x20], eax\n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 4.25\n G_M7775_IG03:\n        vzeroupper \n        ret      \n \t\t\t\t\t\t;; size=4 bbWeight=1 PerfScore 2.00\n-RWD00  \tdq\t00007FF4AC6774CAh, 00007FF4AC6774C8h, 00007FF4AC6774C8h, 0000000200000002h\n\u002BRWD00  \tdq\t000072B6C22754CAh, 000072B6C22754C8h, 000072B6C22754C8h, 0000000200000002h\n \n \n ; Total bytes of code 21, prolog size 0, PerfScore 6.25, instruction count 6, allocated bytes for code 21 (MethodHash=9b56e1a0) for method ZstdSharp.Unsafe.Methods:ZSTD_window_init(ptr) (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":21,"DiffBytes":21},{"Assembly":"Castle.Windsor.dasm","Method":"Castle.MicroKernel.ModelBuilder.Descriptors.DefaultsDescriptor:FirstService(Castle.Core.ComponentModel):System.Type:this (FullOpts)","Category":"improvement","Description":"139 -\u003E 88 bytes (-51)","ExtraInfo":null,"Diff":"@@ -1,77 \u002B1,56 @@\n ; Assembly listing for method Castle.MicroKernel.ModelBuilder.Descriptors.DefaultsDescriptor:FirstService(Castle.Core.ComponentModel):System.Type:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 2 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;* V00 this         [V00    ] (  0,  0   )     ref  -\u003E  zero-ref    this class-hnd single-def \u003CCastle.MicroKernel.ModelBuilder.Descriptors.DefaultsDescriptor\u003E\n ;  V01 arg1         [V01,T01] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CCastle.Core.ComponentModel\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V03 tmp1         [V03,T00] (  4,  7   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Type]\u003E\n-;  V04 tmp2         [V04    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x10]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V03 tmp1         [V03,T00] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Type]\u003E\n\u002B;  V04 tmp2         [V04    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x08]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V05 tmp3         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V06 tmp4         [V06,T03] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Type\u003E\n-;  V07 tmp5         [V07,T02] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Type]\u003E\n\u002B;  V06 tmp4         [V06,T02] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Type\u003E\n\u002B;* V07 tmp5         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Type]\u003E\n ;\n-; Lcl frame size = 8\n\u002B; Lcl frame size = 16\n \n G_M45740_IG01:\n        push     rbp\n-       push     rbx\n-       push     rax\n\u002B       sub      rsp, 16\n        lea      rbp, [rsp\u002B0x10]\n-\t\t\t\t\t\t;; size=8 bbWeight=1 PerfScore 3.50\n\u002B\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 1.75\n G_M45740_IG02:\n-       mov      rbx, gword ptr [rsi\u002B0x20]\n-       test     rbx, rbx\n-       je       SHORT G_M45740_IG07\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Type]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n\u002B       mov      rsi, gword ptr [rsi\u002B0x20]\n\u002B       test     rsi, rsi\n        je       SHORT G_M45740_IG04\n-\t\t\t\t\t\t;; size=39 bbWeight=1 PerfScore 8.25\n-G_M45740_IG03:\n-       lea      rsi, [rbp-0x10]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M45740_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M45740_IG04:\n-       lea      rdx, [rbp-0x10]\n-       mov      rsi, rbx\n\u002B       lea      rdx, [rbp-0x08]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Type](System.Collections.Generic.IEnumerable\u00601[System.Type],byref):System.Type\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M45740_IG05:\n-       cmp      byte  ptr [rbp-0x10], 0\n-       je       SHORT G_M45740_IG08\n-\t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 2.00\n-G_M45740_IG06:\n-       add      rsp, 8\n-       pop      rbx\n\u002B       cmp      byte  ptr [rbp-0x08], 0\n\u002B       je       SHORT G_M45740_IG05\n\u002B\t\t\t\t\t\t;; size=41 bbWeight=1 PerfScore 9.25\n\u002BG_M45740_IG03:\n\u002B       add      rsp, 16\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.25\n-G_M45740_IG07:\n\u002B\t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 1.75\n\u002BG_M45740_IG04:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M45740_IG08:\n\u002BG_M45740_IG05:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 139, prolog size 8, PerfScore 23.00, instruction count 37, allocated bytes for code 139 (MethodHash=f3844d53) for method Castle.MicroKernel.ModelBuilder.Descriptors.DefaultsDescriptor:FirstService(Castle.Core.ComponentModel):System.Type:this (FullOpts)\n\u002B; Total bytes of code 88, prolog size 10, PerfScore 12.75, instruction count 22, allocated bytes for code 88 (MethodHash=f3844d53) for method Castle.MicroKernel.ModelBuilder.Descriptors.DefaultsDescriptor:FirstService(Castle.Core.ComponentModel):System.Type:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":139,"DiffBytes":88},{"Assembly":"Consul.dasm","Method":"Consul.GetRequest\u00601\u002B\u003CExecuteStreaming\u003Ed__11[int]:MoveNext():this (FullOpts)","Category":"improvement","Description":"1,458 -\u003E 1,431 bytes (-27)","ExtraInfo":null,"Diff":"@@ -8,8 \u002B8,8 @@\n ; 0 inlinees with PGO data; 57 single block inlinees; 13 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 45, 39   )   byref  -\u003E  [rbp-0x68]  this EH-live single-def\n-;  V01 loc0         [V01,T33] (  3,  3   )     int  -\u003E  rdi         single-def\n\u002B;  V00 this         [V00,T00] ( 42, 36   )   byref  -\u003E  [rbp-0x68]  this EH-live single-def\n\u002B;  V01 loc0         [V01,T35] (  3,  3   )     int  -\u003E  rdi         single-def\n ;  V02 loc1         [V02,T02] ( 11, 11   )     ref  -\u003E  rbx         class-hnd single-def \u003CConsul.GetRequest\u00601[int]\u003E\n ;  V03 loc2         [V03,T14] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n ;* V04 loc3         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CSystem.Net.Http.HttpRequestMessage\u003E\n@@ -22,106 \u002B22,108 @@\n ;* V11 loc10        [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Exception\u003E\n ;  V12 OutArgs      [V12    ] (  1,  1   )  struct ( 8) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V13 tmp1         [V13    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;* V14 tmp2         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;  V14 tmp2         [V14,T16] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Net.Http.HttpResponseMessage\u003E\n ;* V15 tmp3         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n-;  V16 tmp4         [V16,T16] (  2,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n-;* V17 tmp5         [V17    ] (  0,  0   )  struct ( 8) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.TimeSpan\u003E\n-;  V18 tmp6         [V18,T39] (  3,  0   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Net.HttpStatusCode\u003E\n-;  V19 tmp7         [V19,T41] (  2,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V20 tmp8         [V20,T40] (  3,  0   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CConsul.ConsulRequestException\u003E\n-;* V21 tmp9         [V21    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n\u002B;* V16 tmp4         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;  V17 tmp5         [V17,T17] (  2,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;* V18 tmp6         [V18    ] (  0,  0   )  struct ( 8) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.TimeSpan\u003E\n\u002B;  V19 tmp7         [V19,T41] (  3,  0   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Net.HttpStatusCode\u003E\n\u002B;  V20 tmp8         [V20,T43] (  2,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V21 tmp9         [V21,T42] (  3,  0   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CConsul.ConsulRequestException\u003E\n ;* V22 tmp10        [V22    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;* V23 tmp11        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n-;  V24 tmp12        [V24,T17] (  2,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.Net.Http.HttpMethod\u003E\n-;  V25 tmp13        [V25,T18] (  2,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V26 tmp14        [V26,T01] (  8, 16   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Net.Http.HttpRequestMessage\u003E\n-;  V27 tmp15        [V27,T42] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n-;  V28 tmp16        [V28,T03] (  5, 10   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Diagnostics.Stopwatch\u003E\n-;  V29 tmp17        [V29,T19] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Uri\u003E\n-;* V30 tmp18        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CConsul.ConsulClient\u003E\n\u002B;* V23 tmp11        [V23    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n\u002B;* V24 tmp12        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;  V25 tmp13        [V25,T18] (  2,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.Net.Http.HttpMethod\u003E\n\u002B;  V26 tmp14        [V26,T19] (  2,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V27 tmp15        [V27,T01] (  8, 16   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Net.Http.HttpRequestMessage\u003E\n\u002B;  V28 tmp16        [V28,T44] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V29 tmp17        [V29,T03] (  5, 10   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Diagnostics.Stopwatch\u003E\n\u002B;  V30 tmp18        [V30,T20] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Uri\u003E\n ;* V31 tmp19        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CConsul.ConsulClient\u003E\n-;  V32 tmp20        [V32,T29] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Net.Http.HttpResponseMessage]\u003E\n-;  V33 tmp21        [V33,T04] (  5, 10   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Net.Http.HttpClient\u003E\n-;* V34 tmp22        [V34    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V35 tmp23        [V35,T08] (  4,  8   )  struct (24) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u0022dup spill\u0022 \u003CSystem.ValueTuple\u00603[System.Threading.CancellationTokenSource,bool,System.Threading.CancellationTokenSource]\u003E\n-;* V36 tmp24        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;* V37 tmp25        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n-;* V38 tmp26        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;* V39 tmp27        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;* V40 tmp28        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;* V41 tmp29        [V41    ] (  0,  0   )     int  -\u003E  zero-ref    single-def\n-;* V42 tmp30        [V42    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[System.Net.Http.HttpResponseMessage]\u003E\n-;* V43 tmp31        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Net.Http.HttpResponseMessage]\u003E\n-;* V44 tmp32        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.Net.Http.HttpResponseMessage]\u003E\n-;* V45 tmp33        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Net.Http.HttpResponseMessage]\u003E\n-;* V46 tmp34        [V46,T36] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V47 tmp35        [V47,T20] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n-;* V48 tmp36        [V48    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;* V49 tmp37        [V49    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n\u002B;* V32 tmp20        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CConsul.ConsulClient\u003E\n\u002B;  V33 tmp21        [V33,T28] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Net.Http.HttpResponseMessage]\u003E\n\u002B;  V34 tmp22        [V34,T04] (  5, 10   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Net.Http.HttpClient\u003E\n\u002B;* V35 tmp23        [V35    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;  V36 tmp24        [V36,T07] (  4,  8   )  struct (24) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u0022dup spill\u0022 \u003CSystem.ValueTuple\u00603[System.Threading.CancellationTokenSource,bool,System.Threading.CancellationTokenSource]\u003E\n\u002B;* V37 tmp25        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;* V38 tmp26        [V38    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n\u002B;* V39 tmp27        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;* V40 tmp28        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref   \n... diff truncated; middle omitted ...\n\u002B;* V83 tmp71        [V83    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.TimeSpan\u003E\n\u002B;  V84 tmp72        [V84,T15] (  4,  4   )    long  -\u003E  r13         \u0022Inline stloc first use temp\u0022\n\u002B;* V85 tmp73        [V85    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n\u002B;  V86 tmp74        [V86,T12] (  3,  6   )   byref  -\u003E  rbx         single-def \u0022Inlining Arg\u0022\n\u002B;  V87 tmp75        [V87,T29] (  3,  3   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[Consul.QueryResult\u00601[System.IO.Stream]]\u003E\n\u002B;* V88 tmp76        [V88    ] (  0,  0   )     ref  -\u003E  zero-ref    ld-addr-op class-hnd single-def \u0022Inlining Arg\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;  V89 tmp77        [V89,T06] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[Consul.QueryResult\u00601[System.IO.Stream]]\u003E\n\u002B;* V90 tmp78        [V90    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V91 tmp79        [V91    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;* V92 tmp80        [V92    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n\u002B;  V93 tmp81        [V93    ] (  7,  7   )     ref  -\u003E  [rbp-0x38]  do-not-enreg[X] addr-exposed \u0022field V06.m_task (fldOffset=0x0)\u0022 P-DEP\n\u002B;  V94 tmp82        [V94    ] (  5,  5   )     int  -\u003E  [rbp-0x30]  do-not-enreg[X] addr-exposed \u0022field V06.m_options (fldOffset=0x8)\u0022 P-DEP\n\u002B;  V95 tmp83        [V95    ] (  7,  7   )     ref  -\u003E  [rbp-0x48]  do-not-enreg[X] addr-exposed \u0022field V09.m_task (fldOffset=0x0)\u0022 P-DEP\n\u002B;  V96 tmp84        [V96    ] (  5,  5   )     int  -\u003E  [rbp-0x40]  do-not-enreg[X] addr-exposed \u0022field V09.m_options (fldOffset=0x8)\u0022 P-DEP\n\u002B;* V97 tmp85        [V97    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022field V18._ticks (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V98 tmp86        [V98,T30] (  3,  3   )     ref  -\u003E  r13         single-def \u0022field V35._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V99 tmp87        [V99    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V45.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V100 tmp88       [V100    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V45.m_options (fldOffset=0x8)\u0022 P-INDEP\n\u002B;* V101 tmp89       [V101    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V58._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V102 tmp90       [V102    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V59._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V103 tmp91       [V103    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V66.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V104 tmp92       [V104    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V66.m_options (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V105 tmp93       [V105,T36] (  2,  2   )    long  -\u003E  rsi         single-def \u0022field V83._ticks (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V106 tmp94       [V106    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V90._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V107 tmp95       [V107,T25] (  2,  4   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n ;  V108 tmp96       [V108,T26] (  2,  4   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V109 tmp97       [V109,T27] (  2,  4   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V110 cse0        [V110,T13] (  5,  4   )     int  -\u003E  r15         \u0022CSE #06: moderate\u0022\n-;  V111 cse1        [V111,T32] (  3,  3   )     ref  -\u003E  r15         \u0022CSE #04: conservative\u0022\n-;  V112 cse2        [V112,T28] (  2,  2   )     ref  -\u003E  rax         \u0022CSE #05: conservative\u0022\n-;  V113 rat0        [V113,T38] (  5, 10   )  simd16  -\u003E  mm0         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n\u002B;  V109 cse0        [V109,T13] (  5,  4   )     int  -\u003E  r15         \u0022CSE #06: moderate\u0022\n\u002B;  V110 cse1        [V110,T31] (  3,  3   )     ref  -\u003E  r15         \u0022CSE #04: moderate\u0022\n\u002B;  V111 cse2        [V111,T27] (  2,  2   )     ref  -\u003E  rax         \u0022CSE #05: moderate\u0022\n\u002B;  V112 cse3        [V112,T32] (  3,  3   )   byref  -\u003E  rdi         \u0022CSE #01: moderate\u0022\n\u002B;  V113 cse4        [V113,T33] (  3,  3   )   byref  -\u003E  rdi         \u0022CSE #03: moderate\u0022\n\u002B;  V114 cse5        [V114,T34] (  3,  3   )     ref  -\u003E  rsi         \u0022CSE #08: moderate\u0022\n\u002B;  V115 rat0        [V115,T40] (  5, 10   )  simd16  -\u003E  mm0         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n ;\n ; Lcl frame size = 72\n \n@@ -150,17 \u002B152,18 @@ G_M18784_IG02:\n G_M18784_IG03:\n        test     edi, edi\n        jne      G_M18784_IG09\n-\t\t\t\t\t\t;; size=8 bbWeight=1 PerfScore 1.25\n\u002B       lea      rdi, bword ptr [rsi\u002B0x38]\n\u002B\t\t\t\t\t\t;; size=12 bbWeight=1 PerfScore 1.75\n G_M18784_IG04:\n-       vmovdqu  xmm0, xmmword ptr [rsi\u002B0x38]\n\u002B       vmovdqu  xmm0, xmmword ptr [rdi]\n        vmovdqu  xmmword ptr [rbp-0x38], xmm0\n-\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.00\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.00\n G_M18784_IG05:\n-       xor      edi, edi\n-       mov      qword ptr [rsi\u002B0x38], rdi\n-       mov      qword ptr [rsi\u002B0x40], rdi\n\u002B       xor      eax, eax\n\u002B       mov      qword ptr [rdi], rax\n\u002B       mov      qword ptr [rdi\u002B0x08], rax\n        mov      dword ptr [rsi\u002B0x20], -1\n-\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 3.25\n\u002B\t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 3.25\n G_M18784_IG06:\n        mov      rsi, bword ptr [rbp-0x68]\n        mov      rdi, gword ptr [rbp-0x38]\n@@ -178,14 \u002B181,9 @@ G_M18784_IG07:\n        mov      r15, bword ptr [rbp-0x68]\n        lea      rdi, bword ptr [r15\u002B0x18]\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n-       mov      r14, gword ptr [r15\u002B0x18]\n-       mov      rsi, gword ptr [r15\u002B0x10]\n-       mov      rdi, 0xD1FFAB1E      ; Consul.QueryResult\u00601[int]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      rdx, rax\n-       mov      rsi, r14\n\u002B       mov      rsi, gword ptr [r15\u002B0x18]\n        mov      rdi, rbx\n\u002B       xor      rdx, rdx\n        mov      rax, 0xD1FFAB1E      ; code for Consul.GetRequest\u00601[int]:ParseQueryHeaders(System.Net.Http.HttpResponseMessage,Consul.QueryResult\u00601[int]):this\n        call     [rax]Consul.GetRequest\u00601[int]:ParseQueryHeaders(System.Net.Http.HttpResponseMessage,Consul.QueryResult\u00601[int]):this\n        mov      rdi, gword ptr [r15\u002B0x10]\n@@ -210,7 \u002B208,7 @@ G_M18784_IG07:\n        mov      rdi, gword ptr [rbp-0x48]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M18784_IG12\n-\t\t\t\t\t\t;; size=157 bbWeight=1 PerfScore 47.25\n\u002B\t\t\t\t\t\t;; size=127 bbWeight=1 PerfScore 41.50\n G_M18784_IG08:\n        mov      r15, bword ptr [rbp-0x68]\n        mov      dword ptr [r15\u002B0x20], 1\n@@ -234,17 \u002B232,18 @@ G_M18784_IG08:\n G_M18784_IG09:\n        cmp      edi, 1\n        jne      G_M18784_IG16\n-\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 1.25\n\u002B       lea      rdi, bword ptr [rsi\u002B0x48]\n\u002B\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 1.75\n G_M18784_IG10:\n-       vmovdqu  xmm0, xmmword ptr [rsi\u002B0x48]\n\u002B       vmovdqu  xmm0, xmmword ptr [rdi]\n        vmovdqu  xmmword ptr [rbp-0x48], xmm0\n-\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.00\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.00\n G_M18784_IG11:\n-       xor      edi, edi\n-       mov      qword ptr [rsi\u002B0x48], rdi\n-       mov      qword ptr [rsi\u002B0x50], rdi\n\u002B       xor      eax, eax\n\u002B       mov      qword ptr [rdi], rax\n\u002B       mov      qword ptr [rdi\u002B0x08], rax\n        mov      dword ptr [rsi\u002B0x20], -1\n-\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 3.25\n\u002B\t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 3.25\n G_M18784_IG12:\n        mov      rdi, gword ptr [rbp-0x48]\n        mov      eax, dword ptr [rdi\u002B0x34]\n@@ -445,15 \u002B444,15 @@ G_M18784_IG22:\n G_M18784_IG23:\n        mov      gword ptr [rbx\u002B0x18], rsi\n        add      rbx, 40\n-       cmp      gword ptr [rbx], 0\n-       je       SHORT G_M18784_IG24\n        mov      rsi, gword ptr [rbx]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M18784_IG24\n        mov      rdx, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[Consul.QueryResult\u00601[System.IO.Stream]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        jmp      SHORT G_M18784_IG28\n-\t\t\t\t\t\t;; size=44 bbWeight=1 PerfScore 12.00\n\u002B\t\t\t\t\t\t;; size=43 bbWeight=1 PerfScore 10.25\n G_M18784_IG24:\n        test     r15, r15\n        je       SHORT G_M18784_IG25\n@@ -529,5 \u002B528,5 @@ RWD00  \tdq\t3F847AE147AE147Bh\t;         0.01\n RWD08  \tdq\t43E0000000000000h\n \n \n-; Total bytes of code 1458, prolog size 50, PerfScore 315.75, instruction count 330, allocated bytes for code 1458 (MethodHash=00fdb69f) for method Consul.GetRequest\u00601\u002B\u003CExecuteStreaming\u003Ed__11[int]:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 1431, prolog size 50, PerfScore 309.25, instruction count 327, allocated bytes for code 1431 (MethodHash=00fdb69f) for method Consul.GetRequest\u00601\u002B\u003CExecuteStreaming\u003Ed__11[int]:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1458,"DiffBytes":1431},{"Assembly":"CsvHelper.dasm","Method":"CsvHelper.TypeConversion.IEnumerableGenericConverter:ConvertFromString(System.String,CsvHelper.IReaderRow,CsvHelper.Configuration.MemberMapData):System.Object:this (FullOpts)","Category":"improvement","Description":"880 -\u003E 819 bytes (-61)","ExtraInfo":null,"Diff":"@@ -12,44 \u002B12,44 @@\n ;* V01 arg1         [V01    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.String\u003E\n ;  V02 arg2         [V02,T02] (  8, 16   )     ref  -\u003E  r15         class-hnd single-def \u003CCsvHelper.IReaderRow\u003E\n ;  V03 arg3         [V03,T01] ( 14, 17   )     ref  -\u003E  rbx         class-hnd single-def \u003CCsvHelper.Configuration.MemberMapData\u003E\n-;  V04 loc0         [V04,T10] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Type\u003E\n-;  V05 loc1         [V05,T24] (  2,  2   )     ref  -\u003E  rsi         class-hnd \u003CSystem.Type\u003E\n-;  V06 loc2         [V06,T08] (  4, 10   )     ref  -\u003E  r12         class-hnd single-def \u003CSystem.Collections.IList\u003E\n-;  V07 loc3         [V07,T17] (  2,  5   )     ref  -\u003E  [rbp-0x50]  class-hnd spill-single-def \u003CCsvHelper.TypeConversion.ITypeConverter\u003E\n\u002B;  V04 loc0         [V04,T09] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Type\u003E\n\u002B;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  rsi         class-hnd \u003CSystem.Type\u003E\n\u002B;  V06 loc2         [V06,T07] (  4, 10   )     ref  -\u003E  r12         class-hnd single-def \u003CSystem.Collections.IList\u003E\n\u002B;  V07 loc3         [V07,T16] (  2,  5   )     ref  -\u003E  [rbp-0x50]  class-hnd spill-single-def \u003CCsvHelper.TypeConversion.ITypeConverter\u003E\n ;  V08 loc4         [V08,T06] (  4, 12.50)     int  -\u003E  [rbp-0x2C] \n ;  V09 loc5         [V09    ] (  2,  8   )     ref  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003CSystem.Object\u003E\n-;  V10 loc6         [V10,T16] (  3,  5   )     int  -\u003E  r13         single-def\n\u002B;  V10 loc6         [V10,T15] (  3,  5   )     int  -\u003E  r13         single-def\n ;  V11 loc7         [V11,T03] (  6, 17   )     int  -\u003E  r14        \n ;* V12 loc8         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Object\u003E\n ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V14 tmp1         [V14,T12] (  3,  6   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Type[]\u003E\n\u002B;  V14 tmp1         [V14,T11] (  3,  6   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Type[]\u003E\n ;* V15 tmp2         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CCsvHelper.IObjectResolver\u003E\n ;* V16 tmp3         [V16    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022non-inline candidate call\u0022\n-;  V17 tmp4         [V17,T28] (  3,  1.50)     int  -\u003E  r13        \n-;  V18 tmp5         [V18,T21] (  4,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Type\u003E\n-;  V19 tmp6         [V19,T15] (  3,  5   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Reflection.MemberInfo\u003E\n-;  V20 tmp7         [V20,T22] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Reflection.PropertyInfo\u003E\n-;  V21 tmp8         [V21,T23] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Reflection.FieldInfo\u003E\n-;  V22 tmp9         [V22,T29] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V17 tmp4         [V17,T27] (  3,  1.50)     int  -\u003E  r13        \n\u002B;  V18 tmp5         [V18,T20] (  4,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Type\u003E\n\u002B;  V19 tmp6         [V19,T14] (  3,  5   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Reflection.MemberInfo\u003E\n\u002B;  V20 tmp7         [V20,T21] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Reflection.PropertyInfo\u003E\n\u002B;  V21 tmp8         [V21,T22] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Reflection.FieldInfo\u003E\n\u002B;  V22 tmp9         [V22,T28] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V23 tmp10        [V23    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V24 tmp11        [V24    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V25 tmp12        [V25,T00] (  6, 30   )     ref  -\u003E  [rbp-0x58]  class-hnd \u0022Inlining Arg\u0022 \u003CCsvHelper.Configuration.MemberNameCollection\u003E\n-;  V26 tmp13        [V26    ] (  2,  4   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V27 tmp14        [V27,T09] (  3,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n-;  V28 tmp15        [V28,T07] (  4, 12   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n-;  V29 tmp16        [V29,T13] (  3,  6   )     ref  -\u003E  rax         single-def \u0022arr expr\u0022\n-;* V30 tmp17        [V30,T27] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022argument with side effect\u0022\n-;  V31 tmp18        [V31,T19] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V32 tmp19        [V32,T14] (  3,  6   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n-;  V33 tmp20        [V33,T20] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V34 tmp21        [V34,T25] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V35 tmp22        [V35,T26] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V25 tmp12        [V25,T00] (  5, 26   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CCsvHelper.Configuration.MemberNameCollection\u003E\n\u002B;  V26 tmp13        [V26    ] (  1,  4   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V27 tmp14        [V27,T08] (  2,  8   )     ref  -\u003E  rdx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n\u002B;* V28 tmp15        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n\u002B;  V29 tmp16        [V29,T12] (  3,  6   )     ref  -\u003E  rax         single-def \u0022arr expr\u0022\n\u002B;* V30 tmp17        [V30,T26] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022argument with side effect\u0022\n\u002B;  V31 tmp18        [V31,T18] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V32 tmp19        [V32,T13] (  3,  6   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n\u002B;  V33 tmp20        [V33,T19] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V34 tmp21        [V34,T24] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V35 tmp22        [V35,T25] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V36 tmp23        [V36,T04] (  2, 16   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n ;  V37 tmp24        [V37,T05] (  2, 16   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n-;  V38 cse0         [V38,T11] (  4,  6.50)    long  -\u003E  r14         \u0022CSE #03: moderate\u0022\n-;  V39 cse1         [V39,T18] (  7,  4.50)    long  -\u003E  [rbp-0x48]  spill-single-def \u0022CSE #02: moderate\u0022\n\u002B;  V38 cse0         [V38,T10] (  4,  6.50)    long  -\u003E  r14         \u0022CSE #03: moderate\u0022\n\u002B;  V39 cse1         [V39,T17] (  7,  4.50)    long  -\u003E  [rbp-0x48]  spill-single-def \u0022CSE #02: moderate\u0022\n ;\n-; Lcl frame size = 56\n\u002B; Lcl frame size = 40\n \n G_M33761_IG01:\n        push     rbp\n@@ -58,8 \u002B58,8 @@ G_M33761_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 56\n-       lea      rbp, [rsp\u002B0x60]\n\u002B       sub      rsp, 40\n\u002B       lea      rbp, [rsp\u002B0x50]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x38], rax\n        mov      qword ptr [rbp-0x40], rax\n@@ -85,7 \u002B85,7 @@ G_M33761_IG03:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       G_M33761_IG18\n\u002B       je       G_M33761_IG15\n        mov      rdi, rax\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x50]\n@@ -104,7 \u002B104,7 @@ G_M33761_IG05:\n        mov      rax, qword ptr [rax\u002B0x68]\n        call     [rax\u002B0x28]System.Type:GetGenericArguments():System.Type[]:this\n        cmp      dword ptr [rax\u002B0x08], 0\n-       jbe      G_M33761_IG20\n\u002B       jbe      G_M33761_IG17\n        mov      r13, gword ptr [rax\u002B0x10]\n        mov      rdi, 0xD1FFAB1E      ; System.Type[]\n        mov      esi, 1\n@@ -220,7 \u002B220,7 @@ G_M33761_IG11:\n        mov      rax, r12\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M33761_IG12:\n-       add      rsp, 56\n\u002B       add      rsp, 40\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -235,21 \u002B235,18 @@ G_M33761_IG13:\n        mov      rdi, rbx\n        call     [r14\u002B0x30]CsvHelper.Configuration.MemberMapData:get_Names():CsvHelper.Configuration.MemberNameCollection:this\n        test     rax, rax\n-       je       G_M33761_IG19\n-       jmp      SHORT G_M33761_IG16\n-\t\t\t\t\t\t;; size=23 bbWeight=0.50 PerfScore 3.88\n\u002B       je       G_M33761_IG16\n\u002B\t\t\t\t\t\t;; size=21 bbWeight=0.50 PerfScore 2.88\n G_M33761_IG14:\n        lea      rdx, [rbp-0x40]\n-       mov      rsi, gword ptr [rbp-0x58]\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.String](System.Collections.Generic.IEnumerable\u00601[System.String],byref):System.String\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=2 PerfScore 10.00\n-G_M33761_IG15:\n\u002B       mov      rdx, rax\n        lea      r8, [rbp-0x38]\n        mov      rdi, r15\n        mov      rsi, r13\n-       mov      rdx, rax\n        mov      ecx, dword ptr [rbp-0x2C]\n        mov      r11, 0xD1FFAB1E      ; code for CsvHelper.IReaderRow:TryGetField(System.Type,System.String,int,byref):bool:this\n        call     [r11]CsvHelper.IReaderRow:TryGetField(System.Type,System.String,int,byref):bool:this\n@@ -265,26 \u002B262,10 @@ G_M33761_IG15:\n        mov      rdi, rbx\n        call     [r14\u002B0x30]CsvHelper.Configuration.MemberMapData:get_Names():CsvHelper.Configuration.MemberNameCollection:this\n        test     rax, rax\n-       je       SHORT G_M33761_IG19\n-\t\t\t\t\t\t;; size=73 bbWeight=4 PerfScore 72.00\n-G_M33761_IG16:\n-       mov      gword ptr [rbp-0x58], rax\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.String]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       G_M33761_IG14\n-\t\t\t\t\t\t;; size=38 bbWeight=4 PerfScore 24.00\n-G_M33761_IG17:\n-       lea      rsi, [rbp-0x40]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      G_M33761_IG15\n-\t\t\t\t\t\t;; size=22 bbWeight=2 PerfScore 19.50\n-G_M33761_IG18:\n\u002B       jne      SHORT G_M33761_IG14\n\u002B       jmp      SHORT G_M33761_IG16\n\u002B\t\t\t\t\t\t;; size=104 bbWeight=4 PerfScore 97.00\n\u002BG_M33761_IG15:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -296,16 \u002B277,16 @@ G_M33761_IG18:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M33761_IG19:\n\u002BG_M33761_IG16:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M33761_IG20:\n\u002BG_M33761_IG17:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 880, prolog size 29, PerfScore 303.38, instruction count 215, allocated bytes for code 880 (MethodHash=fe1b7c1e) for method CsvHelper.TypeConversion.IEnumerableGenericConverter:ConvertFromString(System.String,CsvHelper.IReaderRow,CsvHelper.Configuration.MemberMapData):System.Object:this (FullOpts)\n\u002B; Total bytes of code 819, prolog size 29, PerfScore 273.88, instruction count 202, allocated bytes for code 819 (MethodHash=fe1b7c1e) for method CsvHelper.TypeConversion.IEnumerableGenericConverter:ConvertFromString(System.String,CsvHelper.IReaderRow,CsvHelper.Configuration.MemberMapData):System.Object:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":880,"DiffBytes":819},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.CompositeDistributedSynchronizationHandle\u002B\u003CDisposeHandlesAsync\u003Ed__10:MoveNext():this (FullOpts)","Category":"same-size","Description":"897 -\u003E 897 bytes (0)","ExtraInfo":null,"Diff":"@@ -141,7 \u002B141,7 @@ G_M35482_IG09:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        cmp      byte  ptr [rax\u002B0x10], 0\n        jne      G_M35482_IG14\n        mov      rdi, bword ptr [rbp-0x48]","Truncated":true,"BaseBytes":897,"DiffBytes":897},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Metadata.Edm.StoreItemCollection:ConvertFunctionSignatureToCType(System.Data.Entity.Core.Metadata.Edm.EdmFunction):System.Data.Entity.Core.Metadata.Edm.EdmFunction (FullOpts)","Category":"improvement","Description":"1,897 -\u003E 1,686 bytes (-211)","ExtraInfo":null,"Diff":"@@ -12,18 \u002B12,18 @@\n ;  V01 loc0         [V01,T30] (  4,  2   )     ref  -\u003E  r15         class-hnd \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n ;  V02 loc1         [V02,T08] (  8, 21   )     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n ;* V03 loc2         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter[]\u003E\n-;  V04 loc3         [V04,T45] (  2,  1   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.TypeUsage\u003E\n\u002B;  V04 loc3         [V04,T37] (  2,  1   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.TypeUsage\u003E\n ;* V05 loc4         [V05    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601\u002BEnumerator[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n ;* V06 loc5         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n ;* V07 loc6         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CSystem.Data.Entity.Core.Metadata.Edm.TypeUsage\u003E\n ;* V08 loc7         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V10 tmp1         [V10,T26] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V10 tmp1         [V10,T22] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter[]\u003E\n-;  V12 tmp3         [V12,T40] (  3,  1.50)     ref  -\u003E  r13        \n-;  V13 tmp4         [V13,T35] (  2,  2   )     ref  -\u003E  r15         class-hnd exact single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n\u002B;  V12 tmp3         [V12,T36] (  3,  1.50)     ref  -\u003E  r13        \n\u002B;  V13 tmp4         [V13,T31] (  2,  2   )     ref  -\u003E  r15         class-hnd exact single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n ;  V14 tmp5         [V14,T07] ( 22, 22   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmFunctionPayload\u003E\n-;  V15 tmp6         [V15,T36] (  2,  2   )     ref  -\u003E  [rbp-0x58]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V15 tmp6         [V15,T32] (  2,  2   )     ref  -\u003E  [rbp-0x58]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n ;* V16 tmp7         [V16    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Nullable\u00601[bool]\u003E\n ;* V17 tmp8         [V17    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Nullable\u00601[bool]\u003E\n ;* V18 tmp9         [V18    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Nullable\u00601[bool]\u003E\n@@ -33,29 \u002B33,29 @@\n ;* V22 tmp13        [V22    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Nullable\u00601[bool]\u003E\n ;* V23 tmp14        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n ;  V24 tmp15        [V24,T21] (  4,  4   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmFunction\u003E\n-;  V25 tmp16        [V25,T27] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter[]\u003E\n\u002B;  V25 tmp16        [V25,T23] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter[]\u003E\n ;  V26 tmp17        [V26,T04] (  3, 24   )     ref  -\u003E  [rbp-0x60]  class-hnd exact spill-single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n ;  V27 tmp18        [V27,T00] (  8, 56   )     ref  -\u003E  [rbp-0x68]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n-;  V28 tmp19        [V28,T37] (  2,  2   )     ref  -\u003E  r14         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V29 tmp20        [V29,T28] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n-;  V30 tmp21        [V30,T22] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V31 tmp22        [V31    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V32 tmp23        [V32,T41] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n-;  V33 tmp24        [V33,T31] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V34 tmp25        [V34,T23] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V35 tmp26        [V35    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V36 tmp27        [V36,T42] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n-;  V37 tmp28        [V37,T32] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V38 tmp29        [V38,T24] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V39 tmp30        [V39    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V40 tmp31        [V40,T43] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n-;  V41 tmp32        [V41,T33] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V42 tmp33        [V42,T25] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V43 tmp34        [V43    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V44 tmp35        [V44,T44] (  3,  1.50)     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n-;  V45 tmp36        [V45,T34] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V28 tmp19        [V28,T33] (  2,  2   )     ref  -\u003E  r14         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V29 tmp20        [V29,T24] (  3,  3   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n\u002B;  V30 tmp21        [V30,T25] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V31 tmp22        [V31    ] (  1,  0.50)   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V32 tmp23        [V32,T38] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n\u002B;* V33 tmp24        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V34 tmp25        [V34,T26] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V35 tmp26        [V35    ] (  1,  0.50)   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n... diff truncated; middle omitted ...\n        call     [rax]System.Data.Entity.Core.Metadata.Edm.MetadataItem:GetParameterMode():int:this\n        mov      ecx, eax\n        mov      rsi, r14\n        mov      rdx, r15\n-       mov      rdi, r13\n\u002B       mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.FunctionParameter:.ctor(System.String,System.Data.Entity.Core.Metadata.Edm.TypeUsage,int):this\n        call     [rax]System.Data.Entity.Core.Metadata.Edm.FunctionParameter:.ctor(System.String,System.Data.Entity.Core.Metadata.Edm.TypeUsage,int):this\n-       mov      r15, r13\n-\t\t\t\t\t\t;; size=61 bbWeight=0.50 PerfScore 5.75\n-G_M26050_IG12:\n\u002B       mov      r15, r12\n\u002B\t\t\t\t\t\t;; size=255 bbWeight=0.50 PerfScore 24.88\n\u002BG_M26050_IG04:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M26050_IG28\n\u002B       je       G_M26050_IG20\n \t\t\t\t\t\t;; size=37 bbWeight=0.50 PerfScore 2.38\n-G_M26050_IG13:\n\u002BG_M26050_IG05:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.List\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]:s_emptyArray\n        mov      rsi, gword ptr [rdi]\n        lea      rdi, bword ptr [r14\u002B0x08]\n@@ -304,7 \u002B235,7 @@ G_M26050_IG13:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       jle      G_M26050_IG20\n\u002B       jle      G_M26050_IG12\n        mov      rdi, gword ptr [rbx\u002B0x50]\n        mov      r13, gword ptr [rdi\u002B0x08]\n        xor      r12d, r12d\n@@ -312,9 \u002B243,9 @@ G_M26050_IG13:\n        mov      r11, 0xD1FFAB1E      ; function address\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M26050_IG20\n\u002B       je       G_M26050_IG12\n \t\t\t\t\t\t;; size=86 bbWeight=0.50 PerfScore 10.62\n-G_M26050_IG14:\n\u002BG_M26050_IG06:\n        mov      rdi, r13\n        mov      esi, r12d\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IList\u00601[System.__Canon]:get_Item(int):System.__Canon:this\n@@ -347,7 \u002B278,7 @@ G_M26050_IG14:\n        mov      dword ptr [rax\u002B0x18], 8\n        mov      rdx, gword ptr [rbp-0x78]\n        test     rdx, rdx\n-       je       G_M26050_IG29\n\u002B       je       G_M26050_IG21\n        lea      rdi, bword ptr [rax\u002B0x28]\n        mov      rsi, rdx\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -357,7 \u002B288,7 @@ G_M26050_IG14:\n        call     [rax]System.Linq.Enumerable:ToList[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.Collections.Generic.List\u00601[System.__Canon]\n        mov      gword ptr [rbp-0x98], rax\n \t\t\t\t\t\t;; size=208 bbWeight=4 PerfScore 188.00\n-G_M26050_IG15:\n\u002BG_M26050_IG07:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Metadata.Edm.MetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.Facet]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0xA0], rax\n@@ -395,13 \u002B326,13 @@ G_M26050_IG15:\n        mov      rax, gword ptr [rbp-0x68]\n        lea      rdi, bword ptr [rax\u002B0x20]\n \t\t\t\t\t\t;; size=214 bbWeight=4 PerfScore 135.00\n-G_M26050_IG16:\n\u002BG_M26050_IG08:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, gword ptr [rbp-0x60]\n        mov      rax, 0xD1FFAB1E      ; code for System.String:IsNullOrWhiteSpace(System.String):bool\n        call     [rax]System.String:IsNullOrWhiteSpace(System.String):bool\n        test     eax, eax\n-       jne      G_M26050_IG30\n\u002B       jne      G_M26050_IG22\n        mov      rax, gword ptr [rbp-0x68]\n        lea      rdi, bword ptr [rax\u002B0x30]\n        mov      rsi, gword ptr [rbp-0x60]\n@@ -425,16 \u002B356,16 @@ G_M26050_IG16:\n        mov      rax, gword ptr [r14\u002B0x08]\n        mov      edx, dword ptr [r14\u002B0x10]\n        cmp      dword ptr [rax\u002B0x08], edx\n-       ja       SHORT G_M26050_IG18\n\u002B       ja       SHORT G_M26050_IG10\n \t\t\t\t\t\t;; size=135 bbWeight=4 PerfScore 141.00\n-G_M26050_IG17:\n\u002BG_M26050_IG09:\n        mov      rdi, r14\n        mov      rsi, rcx\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n-       jmp      SHORT G_M26050_IG19\n\u002B       jmp      SHORT G_M26050_IG11\n \t\t\t\t\t\t;; size=20 bbWeight=2 PerfScore 11.50\n-G_M26050_IG18:\n\u002BG_M26050_IG10:\n        lea      edi, [rdx\u002B0x01]\n        mov      dword ptr [r14\u002B0x10], edi\n        mov      edi, edx\n@@ -442,23 \u002B373,23 @@ G_M26050_IG18:\n        mov      rsi, rcx\n        call     CORINFO_HELP_ASSIGN_REF\n \t\t\t\t\t\t;; size=22 bbWeight=2 PerfScore 8.00\n-G_M26050_IG19:\n\u002BG_M26050_IG11:\n        mov      rdi, r13\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        cmp      eax, r12d\n-       ja       G_M26050_IG14\n\u002B       ja       G_M26050_IG06\n \t\t\t\t\t\t;; size=25 bbWeight=4 PerfScore 19.00\n-G_M26050_IG20:\n\u002BG_M26050_IG12:\n        test     r15, r15\n-       jne      SHORT G_M26050_IG21\n\u002B       jne      SHORT G_M26050_IG13\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Metadata.Edm.FunctionParameter[]\n        xor      esi, esi\n        call     CORINFO_HELP_NEWARR_1_PTR\n        mov      r13, rax\n-       jmp      SHORT G_M26050_IG22\n\u002B       jmp      SHORT G_M26050_IG14\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.50\n-G_M26050_IG21:\n\u002BG_M26050_IG13:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Metadata.Edm.FunctionParameter[]\n        mov      esi, 1\n        call     CORINFO_HELP_NEWARR_1_PTR\n@@ -467,7 \u002B398,7 @@ G_M26050_IG21:\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n \t\t\t\t\t\t;; size=35 bbWeight=0.50 PerfScore 1.75\n-G_M26050_IG22:\n\u002BG_M26050_IG14:\n        mov      rdi, rbx\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n@@ -522,7 \u002B453,7 @@ G_M26050_IG22:\n        movzx    rdi, dil\n        mov      byte  ptr [r12\u002B0x44], 1\n \t\t\t\t\t\t;; size=235 bbWeight=0.50 PerfScore 27.62\n-G_M26050_IG23:\n\u002BG_M26050_IG15:\n        mov      byte  ptr [r12\u002B0x45], dil\n        lea      rdi, bword ptr [r12\u002B0x28]\n        mov      rsi, r13\n@@ -551,7 \u002B482,7 @@ G_M26050_IG23:\n        call     [rax]System.Data.Entity.Core.Metadata.Edm.EdmFunction:SetReadOnly():this\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=126 bbWeight=0.50 PerfScore 11.25\n-G_M26050_IG24:\n\u002BG_M26050_IG16:\n        add      rsp, 152\n        pop      rbx\n        pop      r12\n@@ -561,10 \u002B492,10 @@ G_M26050_IG24:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M26050_IG25:\n\u002BG_M26050_IG17:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M26050_IG26:\n\u002BG_M26050_IG18:\n        add      rsp, 152\n        pop      rbx\n        pop      r12\n@@ -574,19 \u002B505,19 @@ G_M26050_IG26:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M26050_IG27:\n\u002BG_M26050_IG19:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M26050_IG28:\n\u002BG_M26050_IG20:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M26050_IG13\n\u002B       jmp      G_M26050_IG05\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M26050_IG29:\n\u002BG_M26050_IG21:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -598,7 \u002B529,7 @@ G_M26050_IG29:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M26050_IG30:\n\u002BG_M26050_IG22:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -614,5 \u002B545,5 @@ G_M26050_IG30:\n        int3     \n \t\t\t\t\t\t;; size=67 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1897, prolog size 45, PerfScore 631.58, instruction count 409, allocated bytes for code 1897 (MethodHash=650e9a3d) for method System.Data.Entity.Core.Metadata.Edm.StoreItemCollection:ConvertFunctionSignatureToCType(System.Data.Entity.Core.Metadata.Edm.EdmFunction):System.Data.Entity.Core.Metadata.Edm.EdmFunction (FullOpts)\n\u002B; Total bytes of code 1686, prolog size 45, PerfScore 601.46, instruction count 356, allocated bytes for code 1686 (MethodHash=650e9a3d) for method System.Data.Entity.Core.Metadata.Edm.StoreItemCollection:ConvertFunctionSignatureToCType(System.Data.Entity.Core.Metadata.Edm.EdmFunction):System.Data.Entity.Core.Metadata.Edm.EdmFunction (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1897,"DiffBytes":1686},{"Assembly":"MathNet.Numerics.dasm","Method":"MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:SameAs[short](MathNet.Numerics.LinearAlgebra.Matrix\u00601[short],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)","Category":"improvement","Description":"594 -\u003E 120 bytes (-474)","ExtraInfo":null,"Diff":"@@ -1,214 \u002B1,65 @@\n ; Assembly listing for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:SameAs[short](MathNet.Numerics.LinearAlgebra.Matrix\u00601[short],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n-; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data\n\u002B; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 12,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V01 arg1         [V01,T03] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[short]\u003E\n-;  V02 arg2         [V02,T01] ( 11,  6.50)     int  -\u003E  r15         single-def\n-;  V03 arg3         [V03,T02] ( 11,  6.50)     int  -\u003E  r14         single-def\n-;  V04 arg4         [V04,T04] (  3,  2.50)   ubyte  -\u003E  r13         single-def\n-;  V05 loc0         [V05,T08] (  4,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]\u003E\n\u002B;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V01 arg1         [V01,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[short]\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  4   )     int  -\u003E  r15         single-def\n\u002B;  V03 arg3         [V03,T04] (  4,  4   )     int  -\u003E  r14         single-def\n\u002B;* V04 arg4         [V04    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def\n\u002B;* V05 loc0         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V07 tmp1         [V07,T00] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003CSystem.Numerics.Vector\u00601[float][]\u003E\n-;  V09 tmp3         [V09,T06] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003CSystem.Numerics.Vector\u00601[float][]\u003E\n-;  V11 tmp5         [V11,T11] (  2,  1   )     int  -\u003E  rsi         \u0022Inline return value spill temp\u0022\n-;  V12 tmp6         [V12,T09] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V13 tmp7         [V13,T10] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V14 tmp8         [V14,T07] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003CSystem.Numerics.Vector\u00601[float][]\u003E\n-;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022Single return block return value\u0022\n ;\n ; Lcl frame size = 8\n \n G_M2012_IG01:\n-       push     rbp\n        push     r15\n        push     r14\n        push     r13\n-       push     r12\n        push     rbx\n        push     rax\n-       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n        mov      r15d, edx\n        mov      r14d, ecx\n-       mov      r13d, r8d\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.75\n G_M2012_IG02:\n-       mov      r12, gword ptr [rsi\u002B0x08]\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M2012_IG11\n-\t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 7.00\n-G_M2012_IG03:\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M2012_IG07\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      SHORT G_M2012_IG05\n\u002B       cmp      byte  ptr [rsi], sil\n        mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        mov      rdi, r13\n        mov      esi, r15d\n        mov      edx, r14d\n        mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n        call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n        imul     r15d, r14d\n        movsxd   rsi, r15d\n        mov      rdi, 0xD1FFAB1E      ; System.Numerics.Vector\u00601[float][]\n        call     CORINFO_HELP_NEWARR_1_VC\n        mov      rsi, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, rbx\n        mov      rsi, r13\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=150 bbWeight=0.50 PerfScore 12.62\n-G_M2012_IG04:\n\u002B\t\t\t\t\t\t;; size=89 bbWeight=1 PerfScore 17.25\n\u002BG_M2012_IG03:\n        add      rsp, 8\n        pop      rbx\n-       pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n-       pop      rbp\n        tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M2012_IG05:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 5.00\n-G_M2012_IG06:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M2012_IG07:\n-       test     r13b, r13b\n-       je       SHORT G_M2012_IG09\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 5.62\n-G_M2012_IG08:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M2012_IG09:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       cmp      r15d, r14d\n-       mov      esi, r14d\n-       cmovle   esi, r15d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; System.Numerics.Vector\u00601[float][]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 7.12\n-G_M2012_IG10:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x10]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:Diagonal(MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M2012_IG11:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]:.ctor(int,int):this\n-       mov      esi, r15d\n-       imul     esi, r14d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; System.Numerics.Vector\u00601[float][]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=89 bbWeight=0.50 PerfScore 7.75\n-G_M2012_IG12:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[System.Numerics.Vector\u00601[float]]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n\u002B\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 594, prolog size 16, PerfScore 66.75, instruction count 157, allocated bytes for code 594 (MethodHash=69f7f823) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:SameAs[short](MathNet.Numerics.LinearAlgebra.Matrix\u00601[short],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n\u002B; Total bytes of code 120, prolog size 8, PerfScore 27.25, instruction count 34, allocated bytes for code 120 (MethodHash=69f7f823) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[System.Numerics.Vector\u00601[float]]:SameAs[short](MathNet.Numerics.LinearAlgebra.Matrix\u00601[short],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":594,"DiffBytes":120},{"Assembly":"Microsoft.AspNetCore.OData.dasm","Method":"Microsoft.AspNetCore.OData.Routing.Template.FunctionImportSegmentTemplate:.ctor(Microsoft.OData.UriParser.OperationImportSegment):this (FullOpts)","Category":"improvement","Description":"498 -\u003E 436 bytes (-62)","ExtraInfo":null,"Diff":"@@ -13,74 \u002B13,53 @@\n ;* V02 loc0         [V02    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMicrosoft.OData.Edm.IEdmOperationImport\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V04 tmp1         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022non-inline candidate call\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[Microsoft.OData.UriParser.OperationSegmentParameter]\u003E\n-;  V05 tmp2         [V05,T07] (  4,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n-;  V06 tmp3         [V06,T10] (  2,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V07 tmp4         [V07,T08] (  3,  0   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.OData.ODataException\u003E\n-;  V08 tmp5         [V08,T09] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V09 tmp6         [V09,T02] (  4,  7   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[Microsoft.OData.Edm.IEdmOperationImport]\u003E\n-;  V10 tmp7         [V10    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V05 tmp2         [V05,T06] (  4,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n\u002B;  V06 tmp3         [V06,T09] (  2,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V07 tmp4         [V07,T07] (  3,  0   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.OData.ODataException\u003E\n\u002B;  V08 tmp5         [V08,T08] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V09 tmp6         [V09,T02] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[Microsoft.OData.Edm.IEdmOperationImport]\u003E\n\u002B;  V10 tmp7         [V10    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V11 tmp8         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V12 tmp9         [V12,T03] (  5,  4   )     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CMicrosoft.OData.Edm.IEdmOperationImport\u003E\n-;  V13 tmp10        [V13,T06] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Microsoft.OData.Edm.IEdmOperationImport]\u003E\n\u002B;  V12 tmp9         [V12,T03] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMicrosoft.OData.Edm.IEdmOperationImport\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Microsoft.OData.Edm.IEdmOperationImport]\u003E\n ;* V14 tmp11        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V15 tmp12        [V15,T04] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;  V16 tmp13        [V16,T05] (  2,  4   )     ref  -\u003E  rbx         single-def \u0022argument with side effect\u0022\n-;  V17 tmp14        [V17,T11] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V17 tmp14        [V17,T10] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;\n-; Lcl frame size = 16\n\u002B; Lcl frame size = 8\n \n G_M54653_IG01:\n        push     rbp\n        push     r15\n        push     r14\n-       push     r13\n        push     rbx\n-       sub      rsp, 16\n-       lea      rbp, [rsp\u002B0x30]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x20]\n        xor      eax, eax\n-       mov      qword ptr [rbp-0x28], rax\n\u002B       mov      qword ptr [rbp-0x20], rax\n        mov      r15, rdi\n        mov      rbx, rsi\n-\t\t\t\t\t\t;; size=29 bbWeight=1 PerfScore 7.50\n\u002B\t\t\t\t\t\t;; size=24 bbWeight=1 PerfScore 7.25\n G_M54653_IG02:\n        test     rbx, rbx\n-       je       G_M54653_IG07\n-       mov      r14, gword ptr [rbx\u002B0x28]\n-       test     r14, r14\n-       je       G_M54653_IG08\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[Microsoft.OData.Edm.IEdmOperationImport]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M54653_IG04\n-\t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 9.50\n-G_M54653_IG03:\n-       lea      rsi, [rbp-0x28]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      r13, rax\n-       jmp      SHORT G_M54653_IG05\n-\t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 5.00\n-G_M54653_IG04:\n-       lea      rdx, [rbp-0x28]\n-       mov      rsi, r14\n\u002B       je       G_M54653_IG04\n\u002B       mov      rsi, gword ptr [rbx\u002B0x28]\n\u002B       test     rsi, rsi\n\u002B       je       G_M54653_IG05\n\u002B       lea      rdx, [rbp-0x20]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[Microsoft.OData.Edm.IEdmOperationImport](System.Collections.Generic.IEnumerable\u00601[Microsoft.OData.Edm.IEdmOperationImport],byref):Microsoft.OData.Edm.IEdmOperationImport\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      r13, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M54653_IG05:\n-       cmp      byte  ptr [rbp-0x28], 0\n-       je       G_M54653_IG09\n-       mov      rdi, r13\n\u002B       mov      r14, rax\n\u002B       cmp      byte  ptr [rbp-0x20], 0\n\u002B       je       G_M54653_IG06\n\u002B       mov      rdi, r14\n        mov      r11, 0xD1FFAB1E      ; code for Microsoft.OData.Edm.IEdmEntityContainerElement:get_ContainerElementKind():int:this\n        call     [r11]Microsoft.OData.Edm.IEdmEntityContainerElement:get_ContainerElementKind():int:this\n        cmp      eax, 3\n-       jne      G_M54653_IG10\n-       mov      rsi, r13\n\u002B       jne      G_M54653_IG07\n\u002B       mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.OData.Edm.IEdmFunctionImport\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTINTERFACE\n        call     [rax]CORINFO_HELP_CHKCASTINTERFACE\n@@ -91,7 \u002B70,7 @@ G_M54653_IG05:\n        lea      rdi, bword ptr [r15\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbx\u002B0x30]\n-       mov      rdi, r13\n\u002B       mov      rdi, r14\n        mov      r11, 0xD1FFAB1E      ; code for Microsoft.OData.Edm.IEdmNamedElement:get_Name():System.String:this\n        call     [r11]Microsoft.OData.Edm.IEdmNamedElement:get_Name():System.String:this\n        mov      rsi, rax\n@@ -102,17 \u002B81,16 @@ G_M54653_IG05:\n        lea      rdi, bword ptr [r15\u002B0x08]\n        call     CORINFO_HELP_ASSIGN_REF\n        nop      \n-\t\t\t\t\t\t;; size=136 bbWeight=1 PerfScore 27.00\n-G_M54653_IG06:\n-       add      rsp, 16\n\u002B\t\t\t\t\t\t;; size=187 bbWeight=1 PerfScore 35.75\n\u002BG_M54653_IG03:\n\u002B       add      rsp, 8\n        pop      rbx\n-       pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n-G_M54653_IG07:\n\u002B\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n\u002BG_M54653_IG04:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -124,18 \u002B102,18 @@ G_M54653_IG07:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M54653_IG08:\n\u002BG_M54653_IG05:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M54653_IG09:\n\u002BG_M54653_IG06:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M54653_IG10:\n\u002BG_M54653_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.AspNetCore.OData.SRResources:get_SegmentShouldBeKind():System.String\n        call     [rax]Microsoft.AspNetCore.OData.SRResources:get_SegmentShouldBeKind():System.String\n        mov      rbx, rax\n@@ -164,5 \u002B142,5 @@ G_M54653_IG10:\n        int3     \n \t\t\t\t\t\t;; size=131 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 498, prolog size 23, PerfScore 55.00, instruction count 114, allocated bytes for code 498 (MethodHash=22972a82) for method Microsoft.AspNetCore.OData.Routing.Template.FunctionImportSegmentTemplate:.ctor(Microsoft.OData.UriParser.OperationImportSegment):this (FullOpts)\n\u002B; Total bytes of code 436, prolog size 18, PerfScore 46.25, instruction count 98, allocated bytes for code 436 (MethodHash=22972a82) for method Microsoft.AspNetCore.OData.Routing.Template.FunctionImportSegmentTemplate:.ctor(Microsoft.OData.UriParser.OperationImportSegment):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":498,"DiffBytes":436},{"Assembly":"Microsoft.CodeAnalysis.Features.dasm","Method":"Microsoft.CodeAnalysis.CodeFixes.Suppression.AbstractSuppressionCodeFixProvider\u002BRemoveSuppressionCodeAction\u002BRemoveSuppressionBatchFixAllProvider\u002B\u003CTryGetMergedFixAsync\u003Ed__4:MoveNext():this (FullOpts)","Category":"improvement","Description":"3,065 -\u003E 3,010 bytes (-55)","ExtraInfo":null,"Diff":"@@ -10,14 \u002B10,14 @@\n ;\n ;  V00 this         [V00,T00] ( 80, 80   )   byref  -\u003E  [rbp-0x78]  this EH-live single-def\n ;  V01 loc0         [V01,T16] ( 11, 11   )     int  -\u003E  [rbp-0x2C]  do-not-enreg[Z] EH-live\n-;  V02 loc1         [V02,T90] (  2,  2   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CMicrosoft.CodeAnalysis.CodeFixes.Suppression.AbstractSuppressionCodeFixProvider\u002BRemoveSuppressionCodeAction\u002BRemoveSuppressionBatchFixAllProvider\u003E\n\u002B;  V02 loc1         [V02,T88] (  2,  2   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CMicrosoft.CodeAnalysis.CodeFixes.Suppression.AbstractSuppressionCodeFixProvider\u002BRemoveSuppressionCodeAction\u002BRemoveSuppressionBatchFixAllProvider\u003E\n ;  V03 loc2         [V03,T50] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003CMicrosoft.CodeAnalysis.CodeActions.CodeAction\u003E\n ;* V04 loc3         [V04    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u003CSystem.Collections.Immutable.ImmutableArray\u00601\u002BEnumerator[System.ValueTuple\u00602[Microsoft.CodeAnalysis.Diagnostic,Microsoft.CodeAnalysis.CodeActions.CodeAction]]\u003E\n ;* V05 loc4         [V05    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u003CSystem.ValueTuple\u00602[Microsoft.CodeAnalysis.Diagnostic,Microsoft.CodeAnalysis.CodeActions.CodeAction]\u003E\n ;  V06 loc5         [V06,T13] (  3, 12   )     ref  -\u003E  rsi         class-hnd exact \u003CMicrosoft.CodeAnalysis.CodeFixes.Suppression.AbstractSuppressionCodeFixProvider\u002BRemoveSuppressionCodeAction\u002BAttributeRemoveAction\u003E\n-;  V07 loc6         [V07,T91] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u003CMicrosoft.CodeAnalysis.CodeActions.CodeAction\u003E\n-;  V08 loc7         [V08,T76] (  3,  3   )     ref  -\u003E  r14         class-hnd \u003CSystem.Linq.IGrouping\u00602[Microsoft.CodeAnalysis.SyntaxTree,Microsoft.CodeAnalysis.CodeFixes.Suppression.AbstractSuppressionCodeFixProvider\u002BRemoveSuppressionCodeAction\u002BAttributeRemoveAction]\u003E\n-;  V09 loc8         [V09,T92] (  2,  2   )     ref  -\u003E  r15         class-hnd \u003CMicrosoft.CodeAnalysis.SyntaxNode\u003E\n\u002B;  V07 loc6         [V07,T89] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u003CMicrosoft.CodeAnalysis.CodeActions.CodeAction\u003E\n\u002B;  V08 loc7         [V08,T75] (  3,  3   )     ref  -\u003E  r14         class-hnd \u003CSystem.Linq.IGrouping\u00602[Microsoft.CodeAnalysis.SyntaxTree,Microsoft.CodeAnalysis.CodeFixes.Suppression.AbstractSuppressionCodeFixProvider\u002BRemoveSuppressionCodeAction\u002BAttributeRemoveAction]\u003E\n\u002B;  V09 loc8         [V09,T90] (  2,  2   )     ref  -\u003E  r15         class-hnd \u003CMicrosoft.CodeAnalysis.SyntaxNode\u003E\n ;* V10 loc9         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u003CSystem.Collections.Immutable.ImmutableArray\u00601[Microsoft.CodeAnalysis.SyntaxNode]\u003E\n ;  V11 loc10        [V11    ] ( 10, 10   )  struct (16) [rbp-0x40]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.Collections.Immutable.ImmutableArray\u00601[Microsoft.CodeAnalysis.SyntaxNode]]\u003E\n ;* V12 loc11        [V12    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[System.Collections.Immutable.ImmutableArray\u00601[Microsoft.CodeAnalysis.SyntaxNode]]\u003E\n@@ -28,13 \u002B28,13 @@\n ;* V17 loc16        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Exception\u003E\n ;# V18 OutArgs      [V18    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V19 tmp1         [V19    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;  V20 tmp2         [V20,T32] (  3,  6   )     ref  -\u003E  r14         class-hnd exact \u0022Single-def Box Helper\u0022 \u003CSystem.Collections.Immutable.ImmutableArray\u00601[Microsoft.CodeAnalysis.SyntaxNode]\u003E\n-;  V21 tmp3         [V21,T33] (  3,  6   )     ref  -\u003E  r15         class-hnd \u0022impImportAndPushBox\u0022 \u003CMicrosoft.CodeAnalysis.SyntaxNode\u003E\n-;  V22 tmp4         [V22,T53] (  2,  4   )     ref  -\u003E  r14         class-hnd exact \u0022impAppendStmt\u0022 \u003CMicrosoft.CodeAnalysis.CodeFixes.Suppression.AbstractSuppressionCodeFixProvider\u002BRemoveSuppressionCodeAction\u002BRemoveSuppressionBatchFixAllProvider\u002B\u003C\u003Ec__DisplayClass4_0\u003E\n-;  V23 tmp5         [V23,T34] (  3,  6   )     ref  -\u003E  r12         class-hnd \u0022impAppendStmt\u0022 \u003CMicrosoft.CodeAnalysis.Solution\u003E\n\u002B;  V20 tmp2         [V20,T31] (  3,  6   )     ref  -\u003E  r14         class-hnd exact \u0022Single-def Box Helper\u0022 \u003CSystem.Collections.Immutable.ImmutableArray\u00601[Microsoft.CodeAnalysis.SyntaxNode]\u003E\n\u002B;  V21 tmp3         [V21,T32] (  3,  6   )     ref  -\u003E  r15         class-hnd \u0022impImportAndPushBox\u0022 \u003CMicrosoft.CodeAnalysis.SyntaxNode\u003E\n\u002B;  V22 tmp4         [V22,T52] (  2,  4   )     ref  -\u003E  r14         class-hnd exact \u0022impAppendStmt\u0022 \u003CMicrosoft.CodeAnalysis.CodeFixes.Suppression.AbstractSuppressionCodeFixProvider\u002BRemoveSuppressionCodeAction\u002BRemoveSuppressionBatchFixAllProvider\u002B\u003C\u003Ec__DisplayClass4_0\u003E\n\u002B;  V23 tmp5         [V23,T33] (  3,  6   )     ref  -\u003E  r12         class-hnd \u0022impAppendStmt\u0022 \u003CMicrosoft.CodeAnalysis.Solution\u003E\n ;* V24 tmp6         [V24    ] (  0,  0   )  struct ( 8) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Collections.Immutable.ImmutableArray\u00601[System.__Canon]\u003E\n-;  V25 tmp7         [V25,T22] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[Microsoft.CodeAnalysis.Solution]]\u003E\n-;  V26 tmp8         [V26,T54] (  2,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V25 tmp7         [V25,T22] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[Microsoft.CodeAnalysis.Solution]]\u003E\n\u002B;  V26 tmp8         [V26,T53] (  2,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n ;* V27 tmp9         [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ValueTuple\u00602[Microsoft.CodeAnalysis.Diagnostic,Microsoft.CodeAnalysis.CodeActions.CodeAction]\u003E\n ;  V28 tmp10        [V28,T08] (  9, 18   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[System.ValueTuple\u00602[Microsoft.CodeAnalysis.Diagnostic,Microsoft.CodeAnalysis.CodeActions.CodeAction]]\u003E\n ;* V29 tmp11        [V29    ] (  0,  0   )  struct ( 8) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Collections.Immutable.ImmutableArray\u00601[System.ValueTuple\u00602[System.__Canon,System.__Canon]]\u003E\n@@ -43,17 \u002B43,17 @@\n ;* V32 tmp14        [V32    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;* V33 tmp15        [V33    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;* V34 tmp16        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMicrosoft.CodeAnalysis.CodeFixes.Suppression.AbstractSuppressionCodeFixProvider\u002BRemoveSuppressionCodeAction\u002BRemoveSuppressionBatchFixAllProvider\u002B\u003C\u003Ec__DisplayClass4_0\u003E\n-;  V35 tmp17        [V35,T35] (  3,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.CodeAnalysis.CodeFixes.Suppression.AbstractSuppressionCodeFixProvider\u002BRemoveSuppressionCodeAction\u002BAttributeRemoveAction]\u003E\n-;  V36 tmp18        [V36,T36] (  3,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.ValueTuple\u00602[Microsoft.CodeAnalysis.Diagnostic,Microsoft.CodeAnalysis.CodeActions.CodeAction]]\u003E\n\u002B;  V35 tmp17        [V35,T34] (  3,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.CodeAnalysis.CodeFixes.Suppression.AbstractSuppressionCodeFixProvider\u002BRemoveSuppressionCodeAction\u002BAttributeRemoveAction]\u003E\n\u002B;  V36 tmp18        [V36,T35] (  3,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.ValueTuple\u00602[Microsoft.CodeAnalysis.Diagnostic,Microsoft.CodeAnalysis.CodeActions.CodeAction]]\u003E\n ;* V37 tmp19        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022ISINST eval op1\u0022\n ;* V38 tmp20        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CMicrosoft.CodeAnalysis.CodeFixes.Suppression.AbstractSuppressionCodeFixProvider\u002BRemoveSuppressionCodeAction\u002BAttributeRemoveAction\u003E\n-;  V39 tmp21        [V39,T55] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[Microsoft.CodeAnalysis.CodeFixes.Suppression.AbstractSuppressionCodeFixProvider\u002BRemoveSuppressionCodeAction\u002BAttributeRemoveAction,Microsoft.CodeAnalysis.SyntaxTree]\u003E\n-;  V40 tmp22        [V40,T31] (  4,  7   )     ref  -\u003E  r14         class-hnd single-def \u0022impSpillLclRefs\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.CodeAnalysis.CodeFixes.Suppression.AbstractSuppressionCodeFixProvider\u002BRemoveSuppressionCodeAction\u002BAttributeRemoveAction]\u003E\n\u002B;  V39 tmp21        [V39,T54] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[Microsoft.CodeAnalysis.CodeFixes.Suppression.AbstractSuppressionCodeFixProvider\u002BRemoveSuppressionCodeAction\u002BAttributeRemoveAction,Microsoft.CodeAnalysis.SyntaxTree]\u003E\n... diff truncated; middle omitted ...\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      G_M51602_IG80\n\u002B       jmp      G_M51602_IG78\n \t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 17.00\n-G_M51602_IG64:\n\u002BG_M51602_IG62:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[Microsoft.CodeAnalysis.CodeFixes.Suppression.AbstractSuppressionCodeFixProvider\u002BRemoveSuppressionCodeAction\u002BAttributeRemoveAction]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M51602_IG09\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M51602_IG65:\n\u002BG_M51602_IG63:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.ValueTuple\u00602[Microsoft.CodeAnalysis.Diagnostic,Microsoft.CodeAnalysis.CodeActions.CodeAction]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M51602_IG10\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M51602_IG66:\n\u002BG_M51602_IG64:\n        mov      rax, 0xD1FFAB1E      ; code for System.Delegate:ThrowNullThisInDelegateToInstance()\n        call     [rax]System.Delegate:ThrowNullThisInDelegateToInstance()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M51602_IG67:\n\u002BG_M51602_IG65:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M51602_IG68:\n\u002BG_M51602_IG66:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[System.Linq.IGrouping\u00602[Microsoft.CodeAnalysis.SyntaxTree,Microsoft.CodeAnalysis.CodeFixes.Suppression.AbstractSuppressionCodeFixProvider\u002BRemoveSuppressionCodeAction\u002BAttributeRemoveAction]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M51602_IG25\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M51602_IG69:\n\u002BG_M51602_IG67:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M51602_IG70:\n\u002BG_M51602_IG68:\n        call     CORINFO_HELP_OVERFLOW\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n-G_M51602_IG71:\n\u002BG_M51602_IG69:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n-G_M51602_IG72:\n\u002BG_M51602_IG70:\n        mov      rsi, bword ptr [rbp-0x78]\n        mov      dword ptr [rsi\u002B0x50], -2\n        xor      rdx, rdx\n        mov      gword ptr [rsi\u002B0x08], rdx\n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 3.25\n-G_M51602_IG73:\n\u002BG_M51602_IG71:\n        mov      gword ptr [rsi\u002B0x20], rdx\n \t\t\t\t\t\t;; size=4 bbWeight=1 PerfScore 1.00\n-G_M51602_IG74:\n\u002BG_M51602_IG72:\n        mov      gword ptr [rsi\u002B0x28], rdx\n \t\t\t\t\t\t;; size=4 bbWeight=1 PerfScore 1.00\n-G_M51602_IG75:\n\u002BG_M51602_IG73:\n        mov      gword ptr [rsi\u002B0x30], rdx\n        lea      r15, bword ptr [rsi\u002B0x58]\n        cmp      gword ptr [r15], 0\n-       je       SHORT G_M51602_IG76\n\u002B       je       SHORT G_M51602_IG74\n        mov      rsi, gword ptr [r15]\n        mov      rdx, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[Microsoft.CodeAnalysis.CodeActions.CodeAction]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n-       jmp      SHORT G_M51602_IG80\n\u002B       jmp      SHORT G_M51602_IG78\n \t\t\t\t\t\t;; size=44 bbWeight=1 PerfScore 12.25\n-G_M51602_IG76:\n\u002BG_M51602_IG74:\n        test     rbx, rbx\n-       je       SHORT G_M51602_IG77\n\u002B       je       SHORT G_M51602_IG75\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[Microsoft.CodeAnalysis.CodeActions.CodeAction]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -1018,26 \u002B1000,26 @@ G_M51602_IG76:\n        lea      rdi, bword ptr [r14\u002B0x38]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      SHORT G_M51602_IG79\n\u002B       jmp      SHORT G_M51602_IG77\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 7.50\n-G_M51602_IG77:\n\u002BG_M51602_IG75:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       SHORT G_M51602_IG82\n\u002B       je       SHORT G_M51602_IG80\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 3.25\n-G_M51602_IG78:\n\u002BG_M51602_IG76:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Threading.Tasks.Task\u00601[Microsoft.CodeAnalysis.CodeActions.CodeAction]:s_defaultResultTask\n        mov      r14, gword ptr [rdi]\n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 2.25\n-G_M51602_IG79:\n\u002BG_M51602_IG77:\n        mov      rdi, r15\n        mov      rsi, r14\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 1.50\n-G_M51602_IG80:\n\u002BG_M51602_IG78:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M51602_IG81:\n\u002BG_M51602_IG79:\n        add      rsp, 136\n        pop      rbx\n        pop      r12\n@@ -1047,58 \u002B1029,58 @@ G_M51602_IG81:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M51602_IG82:\n\u002BG_M51602_IG80:\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[Microsoft.CodeAnalysis.CodeActions.CodeAction]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      SHORT G_M51602_IG78\n\u002B       jmp      SHORT G_M51602_IG76\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M51602_IG83:\n\u002BG_M51602_IG81:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 1.00\n-G_M51602_IG84:\n\u002BG_M51602_IG82:\n        cmp      dword ptr [rbp-0x2C], 0\n-       jge      SHORT G_M51602_IG85\n\u002B       jge      SHORT G_M51602_IG83\n        mov      r15, bword ptr [rbp-0x78]\n        mov      rdi, gword ptr [r15\u002B0x38]\n        test     rdi, rdi\n-       je       SHORT G_M51602_IG85\n\u002B       je       SHORT G_M51602_IG83\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        nop      \n \t\t\t\t\t\t;; size=33 bbWeight=1 PerfScore 9.75\n-G_M51602_IG85:\n\u002BG_M51602_IG83:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M51602_IG86:\n\u002BG_M51602_IG84:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M51602_IG87:\n\u002BG_M51602_IG85:\n        mov      rdx, rdi\n        mov      r15, bword ptr [rbp-0x78]\n        mov      dword ptr [r15\u002B0x50], -2\n        xor      rdi, rdi\n        mov      gword ptr [r15\u002B0x08], rdi\n \t\t\t\t\t\t;; size=21 bbWeight=0 PerfScore 0.00\n-G_M51602_IG88:\n\u002BG_M51602_IG86:\n        mov      gword ptr [r15\u002B0x20], rdi\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M51602_IG89:\n\u002BG_M51602_IG87:\n        mov      gword ptr [r15\u002B0x28], rdi\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M51602_IG90:\n\u002BG_M51602_IG88:\n        mov      gword ptr [r15\u002B0x30], rdi\n        lea      rdi, bword ptr [r15\u002B0x58]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[Microsoft.CodeAnalysis.CodeActions.CodeAction]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n-       lea      rax, G_M51602_IG80\n\u002B       lea      rax, G_M51602_IG78\n \t\t\t\t\t\t;; size=37 bbWeight=0 PerfScore 0.00\n-G_M51602_IG91:\n\u002BG_M51602_IG89:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 3065, prolog size 53, PerfScore 853.90, instruction count 679, allocated bytes for code 3065 (MethodHash=b049366d) for method Microsoft.CodeAnalysis.CodeFixes.Suppression.AbstractSuppressionCodeFixProvider\u002BRemoveSuppressionCodeAction\u002BRemoveSuppressionBatchFixAllProvider\u002B\u003CTryGetMergedFixAsync\u003Ed__4:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 3010, prolog size 53, PerfScore 838.65, instruction count 665, allocated bytes for code 3010 (MethodHash=b049366d) for method Microsoft.CodeAnalysis.CodeFixes.Suppression.AbstractSuppressionCodeFixProvider\u002BRemoveSuppressionCodeAction\u002BRemoveSuppressionBatchFixAllProvider\u002B\u003CTryGetMergedFixAsync\u003Ed__4:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":3065,"DiffBytes":3010},{"Assembly":"Microsoft.EntityFrameworkCore.dasm","Method":"Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention:RemoveInheritedInverseNavigations(Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate,System.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate],System.Collections.Generic.HashSet\u00601[Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate]) (FullOpts)","Category":"improvement","Description":"645 -\u003E 593 bytes (-52)","ExtraInfo":null,"Diff":"@@ -23,23 \u002B23,23 @@\n ;* V12 tmp5         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;  V13 tmp6         [V13,T04] (  4, 14   )     ref  -\u003E  rsi        \n ;  V14 tmp7         [V14,T00] (  5, 20   )     ref  -\u003E  [rbp-0x48]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Predicate\u00601[System.Reflection.PropertyInfo]\u003E\n-;  V15 tmp8         [V15,T12] (  2,  4   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate\u003E\n\u002B;  V15 tmp8         [V15,T11] (  2,  4   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate\u003E\n ;* V16 tmp9         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMicrosoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate\u003E\n ;* V17 tmp10        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Reflection.PropertyInfo]\u003E\n ;* V18 tmp11        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMicrosoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate\u003E\n ;* V19 tmp12        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Reflection.PropertyInfo]\u003E\n ;* V20 tmp13        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMicrosoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate\u003E\n ;* V21 tmp14        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Reflection.PropertyInfo]\u003E\n-;  V22 tmp15        [V22,T15] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate\u003E\n\u002B;  V22 tmp15        [V22,T14] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate\u003E\n ;  V23 tmp16        [V23    ] (  1,  0.50)     int  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V24 tmp17        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMicrosoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate\u003E\n-;  V25 tmp18        [V25,T11] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Reflection.PropertyInfo]\u003E\n-;  V26 tmp19        [V26    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V27 tmp20        [V27,T17] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Reflection.PropertyInfo\u003E\n-;  V28 tmp21        [V28,T14] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Reflection.PropertyInfo]\u003E\n\u002B;  V25 tmp18        [V25,T12] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Reflection.PropertyInfo]\u003E\n\u002B;  V26 tmp19        [V26    ] (  1,  0.50)   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V27 tmp20        [V27,T16] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Reflection.PropertyInfo\u003E\n\u002B;* V28 tmp21        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Reflection.PropertyInfo]\u003E\n ;* V29 tmp22        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Reflection.PropertyInfo\u003E\n ;* V30 tmp23        [V30    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V31 tmp24        [V31,T16] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V31 tmp24        [V31,T15] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V32 cse0         [V32,T13] (  5,  2.50)     ref  -\u003E  rsi         \u0022CSE #01: moderate\u0022\n ;\n ; Lcl frame size = 40\n@@ -73,7 \u002B73,7 @@ G_M16706_IG02:\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.HashSet\u00601[System.__Canon]:FindItemIndex(System.__Canon):int:this\n        call     [rax]System.Collections.Generic.HashSet\u00601[System.__Canon]:FindItemIndex(System.__Canon):int:this\n        test     eax, eax\n-       jge      G_M16706_IG12\n\u002B       jge      G_M16706_IG10\n \t\t\t\t\t\t;; size=59 bbWeight=1 PerfScore 12.00\n G_M16706_IG03:\n        mov      rsi, gword ptr [r13\u002B0x08]\n@@ -82,46 \u002B82,29 @@ G_M16706_IG03:\n        jle      SHORT G_M16706_IG04\n        mov      rdx, gword ptr [rsi\u002B0x18]\n        cmp      dword ptr [rdx\u002B0x10], 0\n-       jg       G_M16706_IG12\n\u002B       jg       G_M16706_IG10\n \t\t\t\t\t\t;; size=28 bbWeight=0.50 PerfScore 6.00\n G_M16706_IG04:\n        mov      rdx, gword ptr [rsi\u002B0x18]\n        cmp      dword ptr [rdx\u002B0x10], 1\n-       jg       G_M16706_IG12\n\u002B       jg       G_M16706_IG10\n        lea      rdx, [rbp-0x30]\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.HashSet\u00601[System.__Canon]:AddIfNotPresent(System.__Canon,byref):bool:this\n        call     [rax]System.Collections.Generic.HashSet\u00601[System.__Canon]:AddIfNotPresent(System.__Canon,byref):bool:this\n-       mov      rsi, gword ptr [r13\u002B0x08]\n-       mov      r14, gword ptr [rsi\u002B0x18]\n-       test     r14, r14\n-       je       G_M16706_IG14\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Reflection.PropertyInfo]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M16706_IG05\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M16706_IG06\n-\t\t\t\t\t\t;; size=99 bbWeight=0.50 PerfScore 14.50\n-G_M16706_IG05:\n\u002B       mov      rdx, gword ptr [r13\u002B0x08]\n\u002B       mov      rsi, gword ptr [rdx\u002B0x18]\n\u002B       test     rsi, rsi\n\u002B       je       G_M16706_IG12\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Reflection.PropertyInfo](System.Collections.Generic.IEnumerable\u00601[System.Reflection.PropertyInfo],byref):System.Reflection.PropertyInfo\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M16706_IG06:\n        lea      rdi, bword ptr [r13\u002B0x10]\n        mov      rsi, rax\n        call     CORINFO_HELP_ASSIGN_REF\n        cmp      gword ptr [r13\u002B0x10], 0\n-       je       G_M16706_IG12\n\u002B       je       G_M16706_IG10\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate,bool]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -139,14 \u002B122,14 @@ G_M16706_IG06:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEnumerable\u00601[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator\u00601[System.__Canon]:this\n        call     [r11]System.Collections.Generic.IEnumerable\u00601[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator\u00601[System.__Canon]:this\n        mov      gword ptr [rbp-0x40], rax\n-\t\t\t\t\t\t;; size=115 bbWeight=0.50 PerfScore 8.88\n-G_M16706_IG07:\n\u002B\t\t\t\t\t\t;; size=191 bbWeight=0.50 PerfScore 18.00\n\u002BG_M16706_IG05:\n        mov      rax, gword ptr [rbp-0x40]\n        mov      rdi, rax\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():bool:this\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n-       je       G_M16706_IG11\n\u002B       je       G_M16706_IG09\n        mov      rdi, gword ptr [rbp-0x40]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEnumerator\u00601[System.__Canon]:get_Current():System.__Canon:this\n        call     [r11]System.Collections.Generic.IEnumerator\u00601[System.__Canon]:get_Current():System.__Canon:this\n@@ -154,9 \u002B137,9 @@ G_M16706_IG07:\n        mov      r12, gword ptr [r14\u002B0x18]\n        mov      rsi, gword ptr [r13\u002B0x18]\n        test     rsi, rsi\n-       jne      SHORT G_M16706_IG09\n\u002B       jne      SHORT G_M16706_IG07\n \t\t\t\t\t\t;; size=61 bbWeight=4 PerfScore 62.00\n-G_M16706_IG08:\n\u002BG_M16706_IG06:\n        mov      rdi, 0xD1FFAB1E      ; System.Predicate\u00601[System.Reflection.PropertyInfo]\n        call     CORINFO_HELP_NEWSFAST\n        mov      rsi, rax\n@@ -171,7 \u002B154,7 @@ G_M16706_IG08:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rsi, gword ptr [rbp-0x48]\n \t\t\t\t\t\t;; size=65 bbWeight=2 PerfScore 18.00\n-G_M16706_IG09:\n\u002BG_M16706_IG07:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:RemoveAll(System.Predicate\u00601[System.__Canon]):int:this\n        cmp      dword ptr [rdi], edi\n@@ -181,25 \u002B164,25 @@ G_M16706_IG09:\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.HashSet\u00601[System.__Canon]:FindItemIndex(System.__Canon):int:this\n        call     [rax]System.Collections.Generic.HashSet\u00601[System.__Canon]:FindItemIndex(System.__Canon):int:this\n        test     eax, eax\n-       jge      G_M16706_IG07\n\u002B       jge      G_M16706_IG05\n \t\t\t\t\t\t;; size=43 bbWeight=4 PerfScore 42.00\n-G_M16706_IG10:\n\u002BG_M16706_IG08:\n        mov      rdi, r14\n        mov      rsi, r15\n        mov      rdx, rbx\n        mov      rcx, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention:RemoveInheritedInverseNavigations(Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate,System.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate],System.Collections.Generic.HashSet\u00601[Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate])\n        call     [rcx]Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention:RemoveInheritedInverseNavigations(Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate,System.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate],System.Collections.Generic.HashSet\u00601[Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate])\n-       jmp      G_M16706_IG07\n\u002B       jmp      G_M16706_IG05\n \t\t\t\t\t\t;; size=26 bbWeight=2 PerfScore 12.00\n-G_M16706_IG11:\n\u002BG_M16706_IG09:\n        mov      rdi, gword ptr [rbp-0x40]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.12\n-G_M16706_IG12:\n\u002BG_M16706_IG10:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M16706_IG13:\n\u002BG_M16706_IG11:\n        add      rsp, 40\n        pop      rbx\n        pop      r12\n@@ -209,29 \u002B192,29 @@ G_M16706_IG13:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M16706_IG14:\n\u002BG_M16706_IG12:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M16706_IG15:\n\u002BG_M16706_IG13:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M16706_IG16:\n\u002BG_M16706_IG14:\n        cmp      gword ptr [rbp-0x40], 0\n-       je       SHORT G_M16706_IG17\n\u002B       je       SHORT G_M16706_IG15\n        mov      rdi, gword ptr [rbp-0x40]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M16706_IG17:\n\u002BG_M16706_IG15:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M16706_IG18:\n\u002BG_M16706_IG16:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 645, prolog size 38, PerfScore 193.88, instruction count 152, allocated bytes for code 645 (MethodHash=eeafbebd) for method Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention:RemoveInheritedInverseNavigations(Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate,System.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate],System.Collections.Generic.HashSet\u00601[Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate]) (FullOpts)\n\u002B; Total bytes of code 593, prolog size 38, PerfScore 186.38, instruction count 139, allocated bytes for code 593 (MethodHash=eeafbebd) for method Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention:RemoveInheritedInverseNavigations(Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate,System.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate],System.Collections.Generic.HashSet\u00601[Microsoft.EntityFrameworkCore.Metadata.Conventions.RelationshipDiscoveryConvention\u002BRelationshipCandidate]) (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":645,"DiffBytes":593},{"Assembly":"Microsoft.OpenApi.dasm","Method":"Microsoft.OpenApi.OpenApiInfo:SerializeInternal(Microsoft.OpenApi.IOpenApiWriter,int,System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]):this (FullOpts)","Category":"improvement","Description":"1,001 -\u003E 961 bytes (-40)","ExtraInfo":null,"Diff":"@@ -13,7 \u002B13,7 @@\n ;  V02 arg2         [V02,T09] (  3,  3   )     int  -\u003E  r13         single-def\n ;  V03 arg3         [V03,T02] (  8,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V05 tmp1         [V05,T05] (  4,  6   )     ref  -\u003E  rdi         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Uri\u003E\n\u002B;  V05 tmp1         [V05,T03] (  4,  6   )     ref  -\u003E  rdi         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Uri\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V07 tmp3         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V08 tmp4         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -31,24 \u002B31,22 @@\n ;* V20 tmp16        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V21 tmp17        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V22 tmp18        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n-;  V23 tmp19        [V23,T03] (  5,  7   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiContact\u003E\n\u002B;  V23 tmp19        [V23,T04] (  4,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiContact\u003E\n ;  V24 tmp20        [V24,T15] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n-;* V25 tmp21        [V25    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling qmarkNull\u0022\n-;* V26 tmp22        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;* V27 tmp23        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;  V28 tmp24        [V28,T18] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V29 tmp25        [V29,T04] (  5,  7   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiLicense\u003E\n-;  V30 tmp26        [V30,T16] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n-;* V31 tmp27        [V31    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling qmarkNull\u0022\n-;* V32 tmp28        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;* V33 tmp29        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;  V34 tmp30        [V34,T19] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V35 tmp31        [V35,T08] (  3,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V36 tmp32        [V36,T13] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V37 tmp33        [V37,T14] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V38 tmp34        [V38,T20] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V39 tmp35        [V39,T21] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V40 tmp36        [V40,T22] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;* V25 tmp21        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;* V26 tmp22        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;  V27 tmp23        [V27,T18] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V28 tmp24        [V28,T05] (  4,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiLicense\u003E\n\u002B;  V29 tmp25        [V29,T16] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n\u002B;* V30 tmp26        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;* V31 tmp27        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;  V32 tmp28        [V32,T19] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V33 tmp29        [V33,T08] (  3,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V34 tmp30        [V34,T13] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V35 tmp31        [V35,T14] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V36 tmp32        [V36,T20] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;  V37 tmp33        [V37,T21] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;  V38 tmp34        [V38,T22] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 8\n \n@@ -141,8 \u002B139,8 @@ G_M43532_IG09:\n G_M43532_IG10:\n        mov      r12, gword ptr [r15\u002B0x30]\n        test     r12, r12\n-       je       G_M43532_IG13\n-\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.25\n\u002B       je       SHORT G_M43532_IG13\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.25\n G_M43532_IG11:\n        mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.IEnumerable\n@@ -150,9 \u002B148,6 @@ G_M43532_IG11:\n        call     [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE\n        test     rax, rax\n        je       SHORT G_M43532_IG12\n-       mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Nodes.JsonArray\n-       cmp      qword ptr [r12], rdi\n-       je       SHORT G_M43532_IG12\n        mov      rdi, rax\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n        call     [r11]System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n@@ -161,7 \u002B156,7 @@ G_M43532_IG11:\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n        je       SHORT G_M43532_IG13\n-\t\t\t\t\t\t;; size=82 bbWeight=0.50 PerfScore 8.25\n\u002B\t\t\t\t\t\t;; size=66 bbWeight=0.50 PerfScore 6.62\n G_M43532_IG12:\n        test     r14, r14\n        je       G_M43532_IG21\n@@ -177,8 \u002B172,8 @@ G_M43532_IG12:\n G_M43532_IG13:\n        mov      r12, gword ptr [r15\u002B0x38]\n        test     r12, r12\n-       je       G_M43532_IG16\n-\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.25\n\u002B       je       SHORT G_M43532_IG16\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.25\n G_M43532_IG14:\n        mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.IEnumerable\n@@ -186,9 \u002B181,6 @@ G_M43532_IG14:\n        call     [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE\n        test     rax, rax\n        je       SHORT G_M43532_IG15\n-       mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Nodes.JsonArray\n-       cmp      qword ptr [r12], rdi\n-       je       SHORT G_M43532_IG15\n        mov      rdi, rax\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n        call     [r11]System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n@@ -197,7 \u002B189,7 @@ G_M43532_IG14:\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n        je       SHORT G_M43532_IG16\n-\t\t\t\t\t\t;; size=82 bbWeight=0.50 PerfScore 8.25\n\u002B\t\t\t\t\t\t;; size=66 bbWeight=0.50 PerfScore 6.62\n G_M43532_IG15:\n        test     r14, r14\n        je       G_M43532_IG22\n@@ -297,5 \u002B289,5 @@ G_M43532_IG22:\n        int3     \n \t\t\t\t\t\t;; size=87 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1001, prolog size 16, PerfScore 94.12, instruction count 200, allocated bytes for code 1001 (MethodHash=809355f3) for method Microsoft.OpenApi.OpenApiInfo:SerializeInternal(Microsoft.OpenApi.IOpenApiWriter,int,System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]):this (FullOpts)\n\u002B; Total bytes of code 961, prolog size 16, PerfScore 90.88, instruction count 194, allocated bytes for code 961 (MethodHash=809355f3) for method Microsoft.OpenApi.OpenApiInfo:SerializeInternal(Microsoft.OpenApi.IOpenApiWriter,int,System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1001,"DiffBytes":961},{"Assembly":"MongoDB.Bson.dasm","Method":"MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[int](MongoDB.Bson.BinaryVector\u00601[int]):byte[] (FullOpts)","Category":"improvement","Description":"170 -\u003E 142 bytes (-28)","ExtraInfo":null,"Diff":"@@ -1,125 \u002B1,111 @@\n ; Assembly listing for method MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[int](MongoDB.Bson.BinaryVector\u00601[int]):byte[] (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; fully interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 7 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T00] (  9,  7.75)     ref  -\u003E  rbx         class-hnd single-def \u003CMongoDB.Bson.BinaryVector\u00601[int]\u003E\n-;  V01 loc0         [V01,T04] (  3,  2.50)   ubyte  -\u003E  r15        \n-;* V02 loc1         [V02,T12] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CMongoDB.Bson.BinaryVectorPackedBit\u003E\n\u002B;  V00 arg0         [V00,T00] (  6,  6   )     ref  -\u003E  rbx         class-hnd single-def \u003CMongoDB.Bson.BinaryVector\u00601[int]\u003E\n\u002B;* V01 loc0         [V01,T11] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def\n\u002B;* V02 loc1         [V02    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Bson.BinaryVectorPackedBit\u003E\n ;* V03 loc2         [V03    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u003CSystem.ReadOnlyMemory\u00601[int]\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;* V05 tmp1         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CMongoDB.Bson.BinaryVectorPackedBit\u003E\n-;* V06 tmp2         [V06    ] (  0,  0   )  struct (16) zero-ref    \u0022impAppendStmt\u0022 \u003CSystem.ReadOnlySpan\u00601[int]\u003E\n-;  V07 tmp3         [V07,T01] (  6,  4   )   byref  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n-;  V08 tmp4         [V08,T03] (  6,  4   )     int  -\u003E  rsi         \u0022Inline stloc first use temp\u0022\n-;* V09 tmp5         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Object\u003E\n-;* V10 tmp6         [V10    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ReadOnlySpan\u00601[int]\u003E\n-;* V11 tmp7         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022updating class info\u0022 \u003CSystem.Buffers.MemoryManager\u00601[int]\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CSystem.Span\u00601[int]\u003E\n-;* V13 tmp9         [V13    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Span\u00601[int]\u003E\n-;  V14 tmp10        [V14,T07] (  3,  1.50)    long  -\u003E  rdi         single-def \u0022Inline stloc first use temp\u0022\n-;* V15 tmp11        [V15    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022Inline stloc first use temp\u0022\n-;* V16 tmp12        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022updating class info\u0022 \u003Cint[]\u003E\n-;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022updating class info\u0022 \u003Cint[]\u003E\n-;  V18 tmp14        [V18,T06] (  2,  2   )   byref  -\u003E  rcx         single-def \u0022Inlining Arg\u0022\n-;* V19 tmp15        [V19    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Span\u00601[int]\u003E\n-;  V20 tmp16        [V20,T02] (  6,  4   )     ref  -\u003E  rdi         single-def \u0022field V03._object (fldOffset=0x0)\u0022 P-INDEP\n-;  V21 tmp17        [V21,T09] (  2,  1.50)     int  -\u003E  r14         single-def \u0022field V03._index (fldOffset=0x8)\u0022 P-INDEP\n-;  V22 tmp18        [V22,T05] (  3,  2   )     int  -\u003E  r13         single-def \u0022field V03._length (fldOffset=0xc)\u0022 P-INDEP\n-;* V23 tmp19        [V23    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V06._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V24 tmp20        [V24    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V06._length (fldOffset=0x8)\u0022 P-INDEP\n-;* V25 tmp21        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V10._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V26 tmp22        [V26    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V10._length (fldOffset=0x8)\u0022 P-INDEP\n-;* V27 tmp23        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref    do-not-enreg[] \u0022field V12._reference (fldOffset=0x0)\u0022 P-DEP\n-;* V28 tmp24        [V28    ] (  0,  0   )     int  -\u003E  zero-ref    do-not-enreg[] \u0022field V12._length (fldOffset=0x8)\u0022 P-DEP\n-;  V29 tmp25        [V29,T10] (  2,  1   )   byref  -\u003E  rax         \u0022field V13._reference (fldOffset=0x0)\u0022 P-INDEP\n-;  V30 tmp26        [V30,T11] (  2,  1   )     int  -\u003E  rsi         \u0022field V13._length (fldOffset=0x8)\u0022 P-INDEP\n-;* V31 tmp27        [V31    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V19._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V32 tmp28        [V32    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V19._length (fldOffset=0x8)\u0022 P-INDEP\n-;  V33 cse0         [V33,T08] (  3,  1.50)    long  -\u003E  rax         \u0022CSE #01: moderate\u0022\n\u002B;* V05 tmp1         [V05    ] (  0,  0   )  struct (16) zero-ref    \u0022impAppendStmt\u0022 \u003CSystem.ReadOnlySpan\u00601[int]\u003E\n\u002B;  V06 tmp2         [V06,T01] (  6,  4   )   byref  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n\u002B;  V07 tmp3         [V07,T03] (  6,  4   )     int  -\u003E  rsi         \u0022Inline stloc first use temp\u0022\n\u002B;* V08 tmp4         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Object\u003E\n\u002B;* V09 tmp5         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ReadOnlySpan\u00601[int]\u003E\n\u002B;* V10 tmp6         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022updating class info\u0022 \u003CSystem.Buffers.MemoryManager\u00601[int]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CSystem.Span\u00601[int]\u003E\n\u002B;* V12 tmp8         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Span\u00601[int]\u003E\n\u002B;  V13 tmp9         [V13,T06] (  3,  1.50)    long  -\u003E  rdi         single-def \u0022Inline stloc first use temp\u0022\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022Inline stloc first use temp\u0022\n\u002B;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022updating class info\u0022 \u003Cint[]\u003E\n\u002B;* V16 tmp12        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022updating class info\u0022 \u003Cint[]\u003E\n\u002B;  V17 tmp13        [V17,T05] (  2,  2   )   byref  -\u003E  rcx         single-def \u0022Inlining Arg\u0022\n\u002B;* V18 tmp14        [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Span\u00601[int]\u003E\n\u002B;  V19 tmp15        [V19,T02] (  6,  4   )     ref  -\u003E  rdi         single-def \u0022field V03._object (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V20 tmp16        [V20,T08] (  2,  1.50)     int  -\u003E  r15         single-def \u0022field V03._index (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V21 tmp17        [V21,T04] (  3,  2   )     int  -\u003E  r14         single-def \u0022field V03._length (fldOffset=0xc)\u0022 P-INDEP\n\u002B;* V22 tmp18        [V22    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V05._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V23 tmp19        [V23    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V05._length (fldOffset=0x8)\u0022 P-INDEP\n\u002B;* V24 tmp20        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V09._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V25 tmp21        [V25    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V09._length (fldOffset=0x8)\u0022 P-INDEP\n\u002B;* V26 tmp22        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref    do-not-enreg[] \u0022field V11._reference (fldOffset=0x0)\u0022 P-DEP\n\u002B;* V27 tmp23        [V27    ] (  0,  0   )     int  -\u003E  zero-ref    do-not-enreg[] \u0022field V11._length (fldOffset=0x8)\u0022 P-DEP\n\u002B;  V28 tmp24        [V28,T09] (  2,  1   )   byref  -\u003E  rax         \u0022field V12._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V29 tmp25        [V29,T10] (  2,  1   )     int  -\u003E  rsi         \u0022field V12._length (fldOffset=0x8)\u0022 P-INDEP\n\u002B;* V30 tmp26        [V30    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V18._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V31 tmp27        [V31    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V18._length (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V32 cse0         [V32,T07] (  3,  1.50)    long  -\u003E  rax         \u0022CSE #01: moderate\u0022\n ;\n-; Lcl frame size = 0\n\u002B; Lcl frame size = 8\n \n G_M12150_IG01:\n        push     rbp\n        push     r15\n        push     r14\n-       push     r13\n        push     rbx\n\u002B       push     rax\n        lea      rbp, [rsp\u002B0x20]\n        mov      rbx, rdi\n-\t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 5.75\n\u002B\t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 5.75\n G_M12150_IG02:\n-       xor      r15d, r15d\n-       test     rbx, rbx\n-       je       SHORT G_M12150_IG05\n-\t\t\t\t\t\t;; size=8 bbWeight=1 PerfScore 1.50\n-G_M12150_IG03:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BinaryVectorPackedBit\n-       cmp      qword ptr [rbx], rdi\n-       jne      SHORT G_M12150_IG05\n-\t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M12150_IG04:\n-       movzx    r15, byte  ptr [rbx\u002B0x20]\n-\t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 1.00\n-G_M12150_IG05:\n        mov      rdi, gword ptr [rbx\u002B0x10]\n-       mov      r14d, dword ptr [rbx\u002B0x18]\n-       mov      r13d, dword ptr [rbx\u002B0x1C]\n\u002B       mov      r15d, dword ptr [rbx\u002B0x18]\n\u002B       mov      r14d, dword ptr [rbx\u002B0x1C]\n        xor      rax, rax\n        xor      esi, esi\n        test     rdi, rdi\n-       je       SHORT G_M12150_IG09\n\u002B       je       SHORT G_M12150_IG06\n \t\t\t\t\t\t;; size=21 bbWeight=1 PerfScore 7.75\n-G_M12150_IG06:\n\u002BG_M12150_IG03:\n        mov      rax, qword ptr [rdi]\n        mov      rcx, rax\n        test     dword ptr [rcx], 0xD1FFAB1E\n-       jne      SHORT G_M12150_IG07\n\u002B       jne      SHORT G_M12150_IG04\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x28]System.Buffers.MemoryManager\u00601[int]:GetSpan():System.Span\u00601[int]:this\n        mov      esi, edx\n-       jmp      SHORT G_M12150_IG08\n\u002B       jmp      SHORT G_M12150_IG05\n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 6.25\n-G_M12150_IG07:\n\u002BG_M12150_IG04:\n        lea      rax, bword ptr [rdi\u002B0x10]\n        mov      esi, dword ptr [rdi\u002B0x08]\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.25\n-G_M12150_IG08:\n-       and      r14d, 0xD1FFAB1E\n-       mov      edi, r14d\n-       mov      edx, r13d\n\u002BG_M12150_IG05:\n\u002B       and      r15d, 0xD1FFAB1E\n\u002B       mov      edi, r15d\n\u002B       mov      edx, r14d\n        add      rdx, rdi\n        mov      esi, esi\n        cmp      rdx, rsi\n-       ja       SHORT G_M12150_IG11\n\u002B       ja       SHORT G_M12150_IG08\n        lea      rax, bword ptr [rax\u002B4*rdi]\n-       mov      esi, r13d\n\u002B       mov      esi, r14d\n \t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 1.62\n-G_M12150_IG09:\n\u002BG_M12150_IG06:\n        mov      rdi, rax\n        mov      edx, dword ptr [rbx\u002B0x08]\n-       mov      ecx, r15d\n\u002B       xor      ecx, ecx\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[int](System.ReadOnlySpan\u00601[int],int,byte):byte[]\n-\t\t\t\t\t\t;; size=19 bbWeight=1 PerfScore 2.75\n-G_M12150_IG10:\n\u002B\t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 2.75\n\u002BG_M12150_IG07:\n\u002B       add      rsp, 8\n        pop      rbx\n-       pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        tail.jmp [rax]MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[int](System.ReadOnlySpan\u00601[int],int,byte):byte[]\n-\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 4.50\n-G_M12150_IG11:\n\u002B\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 4.25\n\u002BG_M12150_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 170, prolog size 16, PerfScore 33.19, instruction count 53, allocated bytes for code 170 (MethodHash=b8fdd089) for method MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[int](MongoDB.Bson.BinaryVector\u00601[int]):byte[] (FullOpts)\n\u002B; Total bytes of code 142, prolog size 15, PerfScore 29.62, instruction count 46, allocated bytes for code 142 (MethodHash=b8fdd089) for method MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[int](MongoDB.Bson.BinaryVector\u00601[int]):byte[] (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":170,"DiffBytes":142},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.BinaryVectorDriverExtensions:ToQueryVector[short](MongoDB.Bson.BinaryVector\u00601[short]):MongoDB.Driver.QueryVector (FullOpts)","Category":"improvement","Description":"698 -\u003E 334 bytes (-364)","ExtraInfo":null,"Diff":"@@ -8,52 \u002B8,46 @@\n ; 0 inlinees with PGO data; 8 single block inlinees; 6 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T00] ( 13,  6.25)     ref  -\u003E  rbx         class-hnd single-def \u003CMongoDB.Bson.BinaryVector\u00601[short]\u003E\n-;  V01 loc0         [V01,T11] (  2,  1   )     ref  -\u003E  rbx         class-hnd exact \u003CMongoDB.Bson.BinaryVectorFloat32\u003E\n-;  V02 loc1         [V02,T12] (  2,  1   )     ref  -\u003E  rbx         class-hnd exact \u003CMongoDB.Bson.BinaryVectorInt8\u003E\n-;  V03 loc2         [V03,T13] (  2,  1   )     ref  -\u003E  rbx         class-hnd exact \u003CMongoDB.Bson.BinaryVectorPackedBit\u003E\n-;  V04 loc3         [V04,T07] (  4,  2.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.QueryVector\u003E\n-;  V05 loc4         [V05    ] ( 15,  0   )  struct (40) [rbp-0x38]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.DefaultInterpolatedStringHandler\u003E\n\u002B;  V00 arg0         [V00,T00] (  4,  2   )     ref  -\u003E  rbx         class-hnd single-def \u003CMongoDB.Bson.BinaryVector\u00601[short]\u003E\n\u002B;* V01 loc0         [V01    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Bson.BinaryVectorFloat32\u003E\n\u002B;* V02 loc1         [V02    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Bson.BinaryVectorInt8\u003E\n\u002B;* V03 loc2         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Bson.BinaryVectorPackedBit\u003E\n\u002B;* V04 loc3         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMongoDB.Driver.QueryVector\u003E\n\u002B;  V05 loc4         [V05    ] ( 14,  0   )  struct (40) [rbp-0x38]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.DefaultInterpolatedStringHandler\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CMongoDB.Bson.BinaryVectorFloat32\u003E\n-;  V08 tmp2         [V08,T01] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.QueryVector\u003E\n-;* V09 tmp3         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CMongoDB.Bson.BinaryVectorInt8\u003E\n-;  V10 tmp4         [V10,T02] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.QueryVector\u003E\n-;* V11 tmp5         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CMongoDB.Bson.BinaryVectorPackedBit\u003E\n-;  V12 tmp6         [V12,T03] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.QueryVector\u003E\n-;* V13 tmp7         [V13    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;* V14 tmp8         [V14    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V15 tmp9         [V15,T17] (  3,  0   )     ref  -\u003E  rax        \n-;  V16 tmp10        [V16,T18] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n-;  V17 tmp11        [V17,T04] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n-;  V18 tmp12        [V18,T05] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n-;  V19 tmp13        [V19,T06] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n-;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.Buffers.SharedArrayPool\u00601[char]\u003E\n-;  V21 tmp15        [V21,T14] (  5,  0   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003Cchar[]\u003E\n-;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003Cchar[]\u003E\n-;* V23 tmp17        [V23    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.QueryVector\u003E\n\u002B;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.QueryVector\u003E\n\u002B;* V09 tmp3         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.QueryVector\u003E\n\u002B;* V10 tmp4         [V10    ] (  0,  0   )   byref  -\u003E  zero-ref   \n\u002B;* V11 tmp5         [V11    ] (  0,  0   )   byref  -\u003E  zero-ref   \n\u002B;  V12 tmp6         [V12,T04] (  3,  0   )     ref  -\u003E  rax        \n\u002B;  V13 tmp7         [V13,T05] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;* V14 tmp8         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n\u002B;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n\u002B;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n\u002B;* V17 tmp11        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.Buffers.SharedArrayPool\u00601[char]\u003E\n\u002B;  V18 tmp12        [V18,T01] (  5,  0   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003Cchar[]\u003E\n\u002B;* V19 tmp13        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003Cchar[]\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V21 tmp15        [V21    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Span\u00601[char]\u003E\n\u002B;* V22 tmp16        [V22    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Span\u00601[char]\u003E\n\u002B;  V23 tmp17        [V23,T03] (  4,  0   )     int  -\u003E  rdi         \u0022Inlining Arg\u0022\n ;* V24 tmp18        [V24    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;* V25 tmp19        [V25    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;  V26 tmp20        [V26,T16] (  4,  0   )     int  -\u003E  rdi         \u0022Inlining Arg\u0022\n-;* V27 tmp21        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;  V28 tmp22        [V28,T15] (  5,  0   )   byref  -\u003E  r15         single-def \u0022Inlining Arg\u0022\n-;  V29 tmp23        [V29,T22] (  2,  0   )     int  -\u003E  rsi         \u0022Inlining Arg\u0022\n-;* V30 tmp24        [V30,T23] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n-;* V31 tmp25        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;* V32 tmp26        [V32    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;* V33 tmp27        [V33    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V34 tmp28        [V34,T19] (  3,  0   )   byref  -\u003E  rdi         \u0022field V24._reference (fldOffset=0x0)\u0022 P-INDEP\n-;  V35 tmp29        [V35,T20] (  3,  0   )     int  -\u003E  rsi         \u0022field V24._length (fldOffset=0x8)\u0022 P-INDEP\n-;* V36 tmp30        [V36    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022field V25._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V37 tmp31        [V37    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V25._length (fldOffset=0x8)\u0022 P-INDEP\n-;* V38 tmp32        [V38    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V27._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V39 tmp33        [V39    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V27._length (fldOffset=0x8)\u0022 P-INDEP\n-;* V40 tmp34        [V40    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V31._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V41 tmp35        [V41    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V31._length (fldOffset=0x8)\u0022 P-INDEP\n-;  V42 tmp36        [V42,T08] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V43 tmp37        [V43,T09] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V44 tmp38        [V44,T10] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V45 tmp39        [V45,T21] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V25 tmp19        [V25,T02] (  5,  0   )   byref  -\u003E  r15         single-def \u0022Inlining Arg\u0022\n\u002B;  V26 tmp20        [V26,T09] (  2,  0   )     int  -\u003E  rsi         \u0022Inlining Arg\u0022\n\u002B;* V27 tmp21        [V27,T10] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n\u002B;* V28 tmp22        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Span\u00601[char]\u003E\n\u002B;* V29 tmp23        [V29    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n\u002B;* V30 tmp24        [V30    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n\u002B;  V31 tmp25        [V31,T06] (  3,  0   )   byref  -\u003E  rdi         \u0022field V21._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V32 tmp26        [V32,T07] (  3,  0   )     int  -\u003E  rsi         \u0022field V21._length (fldOffset=0x8)\u0022 P-INDEP\n\u002B;* V33 tmp27        [V33    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022field V22._reference (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n\u002B;  V39 tmp33        [V39,T08] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 48\n \n@@ -68,110 \u002B62,8 @@ G_M63639_IG01:\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu  ymmword ptr [rbp-0x30], ymm8\n        mov      rbx, rdi\n-\t\t\t\t\t\t;; size=32 bbWeight=1 PerfScore 6.58\n\u002B\t\t\t\t\t\t;; size=32 bbWeight=0 PerfScore 0.00\n G_M63639_IG02:\n-       test     rbx, rbx\n-       je       SHORT G_M63639_IG05\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M63639_IG03:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BinaryVectorFloat32\n-       cmp      qword ptr [rbx], rdi\n-       jne      SHORT G_M63639_IG05\n-\t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M63639_IG04:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonBinaryData\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r15, rax\n-       mov      rdi, rbx\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[float](MongoDB.Bson.BinaryVector\u00601[float]):byte[]\n-       call     [rax]MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[float](MongoDB.Bson.BinaryVector\u00601[float]):byte[]\n-       mov      rsi, rax\n-       mov      rdi, r15\n-       mov      edx, 9\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.BsonBinaryData:.ctor(byte[],int):this\n-       call     [rax]MongoDB.Bson.BsonBinaryData:.ctor(byte[],int):this\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.QueryVector\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      rbx, rax\n-       mov      rdi, rbx\n-       mov      rsi, r15\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.QueryVector:.ctor(MongoDB.Bson.BsonBinaryData):this\n-       call     [rax]MongoDB.Driver.QueryVector:.ctor(MongoDB.Bson.BsonBinaryData):this\n-       jmp      G_M63639_IG11\n-\t\t\t\t\t\t;; size=97 bbWeight=0.50 PerfScore 8.12\n-G_M63639_IG05:\n-       test     rbx, rbx\n-       je       SHORT G_M63639_IG08\n-\t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 0.62\n-G_M63639_IG06:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BinaryVectorInt8\n-       cmp      qword ptr [rbx], rdi\n-       jne      SHORT G_M63639_IG08\n-\t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M63639_IG07:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonBinaryData\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r15, rax\n-       mov      rdi, rbx\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[sbyte](MongoDB.Bson.BinaryVector\u00601[sbyte]):byte[]\n-       call     [rax]MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[sbyte](MongoDB.Bson.BinaryVector\u00601[sbyte]):byte[]\n-       mov      rsi, rax\n-       mov      rdi, r15\n-       mov      edx, 9\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.BsonBinaryData:.ctor(byte[],int):this\n-       call     [rax]MongoDB.Bson.BsonBinaryData:.ctor(byte[],int):this\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.QueryVector\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      rbx, rax\n-       mov      rdi, rbx\n-       mov      rsi, r15\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.QueryVector:.ctor(MongoDB.Bson.BsonBinaryData):this\n-       call     [rax]MongoDB.Driver.QueryVector:.ctor(MongoDB.Bson.BsonBinaryData):this\n-       jmp      SHORT G_M63639_IG11\n-\t\t\t\t\t\t;; size=94 bbWeight=0.50 PerfScore 8.12\n-G_M63639_IG08:\n-       test     rbx, rbx\n-       je       SHORT G_M63639_IG13\n-\t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 0.62\n-G_M63639_IG09:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BinaryVectorPackedBit\n-       cmp      qword ptr [rbx], rdi\n-       jne      SHORT G_M63639_IG13\n-\t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M63639_IG10:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonBinaryData\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r15, rax\n-       mov      rdi, rbx\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[byte](MongoDB.Bson.BinaryVector\u00601[byte]):byte[]\n-       call     [rax]MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[byte](MongoDB.Bson.BinaryVector\u00601[byte]):byte[]\n-       mov      rsi, rax\n-       mov      rdi, r15\n-       mov      edx, 9\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.BsonBinaryData:.ctor(byte[],int):this\n-       call     [rax]MongoDB.Bson.BsonBinaryData:.ctor(byte[],int):this\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.QueryVector\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      rbx, rax\n-       mov      rdi, rbx\n-       mov      rsi, r15\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.QueryVector:.ctor(MongoDB.Bson.BsonBinaryData):this\n-       call     [rax]MongoDB.Driver.QueryVector:.ctor(MongoDB.Bson.BsonBinaryData):this\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 7.12\n-G_M63639_IG11:\n-       mov      rax, rbx\n-\t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M63639_IG12:\n-       vzeroupper \n-       add      rsp, 48\n-       pop      rbx\n-       pop      r15\n-       pop      rbp\n-       ret      \n-\t\t\t\t\t\t;; size=12 bbWeight=1 PerfScore 3.75\n-G_M63639_IG13:\n-       xor      rdi, rdi\n-       mov      gword ptr [rbp-0x38], rdi\n        mov      rdi, 0xD1FFAB1E      ; const ptr\n        mov      rdi, gword ptr [rdi]\n        mov      esi, 256\n@@ -179,16 \u002B71,16 @@ G_M63639_IG13:\n        call     [rax]System.Buffers.SharedArrayPool\u00601[char]:Rent(int):char[]:this\n        mov      gword ptr [rbp-0x30], rax\n        test     rax, rax\n-       jne      SHORT G_M63639_IG14\n\u002B       jne      SHORT G_M63639_IG03\n        xor      rdi, rdi\n        xor      esi, esi\n-       jmp      SHORT G_M63639_IG15\n-\t\t\t\t\t\t;; size=51 bbWeight=0 PerfScore 0.00\n-G_M63639_IG14:\n\u002B       jmp      SHORT G_M63639_IG04\n\u002B\t\t\t\t\t\t;; size=45 bbWeight=0 PerfScore 0.00\n\u002BG_M63639_IG03:\n        lea      rdi, bword ptr [rax\u002B0x10]\n        mov      esi, dword ptr [rax\u002B0x08]\n \t\t\t\t\t\t;; size=7 bbWeight=0 PerfScore 0.00\n-G_M63639_IG15:\n\u002BG_M63639_IG04:\n        mov      bword ptr [rbp-0x20], rdi\n        mov      dword ptr [rbp-0x18], esi\n        xor      edi, edi\n@@ -196,19 \u002B88,19 @@ G_M63639_IG15:\n        mov      byte  ptr [rbp-0x24], 0\n        mov      edi, dword ptr [rbp-0x28]\n        cmp      edi, dword ptr [rbp-0x18]\n-       jbe      SHORT G_M63639_IG16\n\u002B       jbe      SHORT G_M63639_IG05\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()\n        int3     \n \t\t\t\t\t\t;; size=37 bbWeight=0 PerfScore 0.00\n-G_M63639_IG16:\n\u002BG_M63639_IG05:\n        mov      rsi, bword ptr [rbp-0x20]\n        mov      eax, edi\n        lea      r15, bword ptr [rsi\u002B2*rax]\n        mov      esi, dword ptr [rbp-0x18]\n        sub      esi, edi\n        cmp      esi, 27\n-       jb       SHORT G_M63639_IG17\n\u002B       jb       SHORT G_M63639_IG06\n        vmovups  ymm0, ymmword ptr [reloc @RWD00]\n        vmovups  ymmword ptr [r15], ymm0\n        vmovups  xmm0, xmmword ptr [reloc @RWD32]\n@@ -218,26 \u002B110,26 @@ G_M63639_IG16:\n        mov      edi, dword ptr [rbp-0x28]\n        add      edi, 27\n        mov      dword ptr [rbp-0x28], edi\n-       jmp      SHORT G_M63639_IG18\n\u002B       jmp      SHORT G_M63639_IG07\n \t\t\t\t\t\t;; size=73 bbWeight=0 PerfScore 0.00\n-G_M63639_IG17:\n\u002BG_M63639_IG06:\n        lea      rdi, [rbp-0x38]\n        mov      rsi, 0xD1FFAB1E      ; \u0027Invalid binary vector type \u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this\n        call     [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this\n \t\t\t\t\t\t;; size=26 bbWeight=0 PerfScore 0.00\n-G_M63639_IG18:\n\u002BG_M63639_IG07:\n        test     rbx, rbx\n-       jne      SHORT G_M63639_IG19\n\u002B       jne      SHORT G_M63639_IG08\n        xor      rax, rax\n-       jmp      SHORT G_M63639_IG20\n\u002B       jmp      SHORT G_M63639_IG09\n \t\t\t\t\t\t;; size=9 bbWeight=0 PerfScore 0.00\n-G_M63639_IG19:\n\u002BG_M63639_IG08:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Object:GetType():System.Type:this\n        call     [rax]System.Object:GetType():System.Type:this\n \t\t\t\t\t\t;; size=15 bbWeight=0 PerfScore 0.00\n-G_M63639_IG20:\n\u002BG_M63639_IG09:\n        lea      rdi, [rbp-0x38]\n        mov      rdx, rax\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[System.Type](System.Type):this\n@@ -261,5 \u002B153,5 @@ RWD00  \tdq\t00610076006E0049h, 002000640069006Ch, 0061006E00690062h, 007600200079\n RWD32  \tdq\t006F007400630065h, 0079007400200072h\n \n \n-; Total bytes of code 698, prolog size 29, PerfScore 38.90, instruction count 160, allocated bytes for code 698 (MethodHash=26290768) for method MongoDB.Driver.BinaryVectorDriverExtensions:ToQueryVector[short](MongoDB.Bson.BinaryVector\u00601[short]):MongoDB.Driver.QueryVector (FullOpts)\n\u002B; Total bytes of code 334, prolog size 29, PerfScore 0.00, instruction count 80, allocated bytes for code 334 (MethodHash=26290768) for method MongoDB.Driver.BinaryVectorDriverExtensions:ToQueryVector[short](MongoDB.Bson.BinaryVector\u00601[short]):MongoDB.Driver.QueryVector (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":698,"DiffBytes":334},{"Assembly":"Nest.dasm","Method":"Nest.Extensions\u002B\u003CForEachAsync\u003Ed__29\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]:MoveNext():this (FullOpts)","Category":"improvement","Description":"1,692 -\u003E 1,640 bytes (-52)","ExtraInfo":null,"Diff":"@@ -31,9 \u002B31,9 @@\n ;* V20 tmp7         [V20    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;* V21 tmp8         [V21    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;  V22 tmp9         [V22,T18] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Threading.Tasks.Task]\u003E\n-;  V23 tmp10        [V23,T46] (  2,  0   )     ref  -\u003E  rsi         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V23 tmp10        [V23,T45] (  2,  0   )     ref  -\u003E  rsi         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n ;  V24 tmp11        [V24,T19] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.SemaphoreSlim\u003E\n-;  V25 tmp12        [V25,T47] (  2,  0   )     ref  -\u003E  rsi         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V25 tmp12        [V25,T46] (  2,  0   )     ref  -\u003E  rsi         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n ;  V26 tmp13        [V26    ] ( 12, 92   )  struct (96) [rbp-0xA8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CNest.Extensions\u002B\u003CProcessAsync\u003Ed__30\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]\u003E\n ;* V27 tmp14        [V27    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u003E\n ;  V28 tmp15        [V28,T06] (  2, 32   )     ref  -\u003E  rdx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Threading.Tasks.VoidTaskResult]\u003E\n@@ -51,32 \u002B51,32 @@\n ;* V40 tmp27        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Threading.Tasks.Task]\u003E\n ;* V41 tmp28        [V41    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.Threading.Tasks.Task]\u003E\n ;* V42 tmp29        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Threading.Tasks.Task]\u003E\n-;* V43 tmp30        [V43,T42] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V44 tmp31        [V44,T28] (  2,  4   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;* V43 tmp30        [V43,T41] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V44 tmp31        [V44,T27] (  2,  4   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;* V45 tmp32        [V45    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V46 tmp33        [V46    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V47 tmp34        [V47    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V48 tmp35        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Runtime.CompilerServices.IAsyncStateMachineBox\u003E\n ;  V49 tmp36        [V49,T21] (  3,  6   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n-;  V50 tmp37        [V50,T29] (  2,  4   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;  V50 tmp37        [V50,T28] (  2,  4   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;* V51 tmp38        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.AggregateException\u003E\n-;  V52 tmp39        [V52,T37] (  2,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.AggregateException\u003E\n\u002B;  V52 tmp39        [V52,T35] (  2,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.AggregateException\u003E\n ;* V53 tmp40        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.AggregateException\u003E\n-;  V54 tmp41        [V54,T38] (  3,  3   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.AggregateException\u003E\n\u002B;  V54 tmp41        [V54,T36] (  3,  3   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.AggregateException\u003E\n ;* V55 tmp42        [V55    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n ;  V56 tmp43        [V56,T13] (  4,  8   )     ref  -\u003E  r15         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.AggregateException\u003E\n-;  V57 tmp44        [V57,T30] (  2,  4   )     ref  -\u003E  r14         class-hnd \u0022dup spill\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n-;  V58 tmp45        [V58,T26] (  5,  5   )     ref  -\u003E  r14        \n\u002B;  V57 tmp44        [V57,T29] (  2,  4   )     ref  -\u003E  rsi         class-hnd \u0022dup spill\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n\u002B;  V58 tmp45        [V58,T26] (  4,  4   )     ref  -\u003E  rsi        \n ;  V59 tmp46        [V59,T14] (  4,  8   )     ref  -\u003E  r14         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n ;* V60 tmp47        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n ;  V61 tmp48        [V61,T22] (  3,  6   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Exception[]\u003E\n-;  V62 tmp49        [V62    ] (  3,  3   )   ubyte  -\u003E  [rbp-0xB0]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V62 tmp49        [V62    ] (  2,  2   )   ubyte  -\u003E  [rbp-0xB0]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V63 tmp50        [V63    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V64 tmp51        [V64,T36] (  4,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Exception\u003E\n-;  V65 tmp52        [V65,T27] (  4,  4   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Exception]\u003E\n\u002B;  V64 tmp51        [V64,T40] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Exception\u003E\n\u002B;* V65 tmp52        [V65    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Exception]\u003E\n ;* V66 tmp53        [V66    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V67 tmp54        [V67,T15] (  4,  8   )     ref  -\u003E  r15         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Threading.Tasks.Task]\u003E\n-;  V68 tmp55        [V68,T40] (  3,  3   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n\u002B;  V68 tmp55        [V68,T38] (  3,  3   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n ;  V69 tmp56        [V69,T23] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n ;* V70 tmp57        [V70    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V71 tmp58        [V71    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -85,17 \u002B85,17 @@\n ;* V74 tmp61        [V74    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n ;* V75 tmp62        [V75    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u002BConfiguredTaskAwaiter\u003E\n ;* V76 tmp63        [V76    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n-;* V77 tmp64        [V77,T43] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V78 tmp65        [V78,T31] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n\u002B;* V77 tmp64        [V77,T42] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V78 tmp65        [V78,T30] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n ;* V79 tmp66        [V79    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V80 tmp67        [V80    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V81 tmp68        [V81    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V82 tmp69        [V82    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Runtime.CompilerServices.IAsyncStateMachineBox\u003E\n ;  V83 tmp70        [V83,T24] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n-;  V84 tmp71        [V84,T35] (  2,  4   )     int  -\u003E  rax         \u0022Inlining Arg\u0022\n\u002B;  V84 tmp71        [V84,T34] (  2,  4   )     int  -\u003E  rax         \u0022Inlining Arg\u0022\n ;  V85 tmp72        [V85,T16] (  4,  8   )   byref  -\u003E  rdi         single-def \u0022Inlining Arg\u0022\n-;* V86 tmp73        [V86,T44] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[SF] ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.Tasks.VoidTaskResult\u003E\n-;  V87 tmp74        [V87,T32] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Threading.Tasks.VoidTaskResult]\u003E\n... diff truncated; middle omitted ...\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task:WhenAny[System.Threading.Tasks.Task](System.Collections.Generic.IEnumerable\u00601[System.Threading.Tasks.Task]):System.Threading.Tasks.Task\u00601[System.Threading.Tasks.Task]\n@@ -411,16 \u002B395,16 @@ G_M8527_IG26:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x30], edi\n        test     byte  ptr [rbp-0x30], 4\n-       jne      SHORT G_M8527_IG27\n\u002B       jne      SHORT G_M8527_IG25\n        mov      rdi, gword ptr [rbp-0x38]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M8527_IG13\n \t\t\t\t\t\t;; size=67 bbWeight=1 PerfScore 16.75\n-G_M8527_IG27:\n\u002BG_M8527_IG25:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x1C], edi\n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M8527_IG28:\n\u002BG_M8527_IG26:\n        mov      rbx, bword ptr [rbp-0xB8]\n        mov      dword ptr [rbx\u002B0x48], edi\n        lea      rdi, bword ptr [rbx\u002B0x58]\n@@ -437,20 \u002B421,20 @@ G_M8527_IG28:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.Threading.Tasks.Task]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      SHORT G_M8527_IG32\n\u002B       jmp      SHORT G_M8527_IG30\n \t\t\t\t\t\t;; size=79 bbWeight=1 PerfScore 16.75\n-G_M8527_IG29:\n\u002BG_M8527_IG27:\n        mov      edi, 20\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M8527_IG30:\n\u002BG_M8527_IG28:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M8527_IG31:\n\u002BG_M8527_IG29:\n        mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.ExceptionServices.ExceptionDispatchInfo:Capture(System.Exception):System.Runtime.ExceptionServices.ExceptionDispatchInfo\n        call     [rax]System.Runtime.ExceptionServices.ExceptionDispatchInfo:Capture(System.Exception):System.Runtime.ExceptionServices.ExceptionDispatchInfo\n@@ -460,22 \u002B444,22 @@ G_M8527_IG31:\n        call     [rax]System.Runtime.ExceptionServices.ExceptionDispatchInfo:Throw():this\n        int3     \n \t\t\t\t\t\t;; size=33 bbWeight=0 PerfScore 0.00\n-G_M8527_IG32:\n-       call     G_M8527_IG40\n-       jmp      G_M8527_IG38\n\u002BG_M8527_IG30:\n\u002B       call     G_M8527_IG38\n\u002B       jmp      G_M8527_IG36\n \t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.00\n-G_M8527_IG33:\n\u002BG_M8527_IG31:\n        cmp      dword ptr [rbp-0x1C], 0\n-       jge      SHORT G_M8527_IG34\n\u002B       jge      SHORT G_M8527_IG32\n        mov      rbx, bword ptr [rbp-0xB8]\n        cmp      gword ptr [rbx\u002B0x38], 0\n-       je       SHORT G_M8527_IG34\n\u002B       je       SHORT G_M8527_IG32\n        mov      rdi, gword ptr [rbx\u002B0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        nop      \n \t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 11.50\n-G_M8527_IG34:\n\u002BG_M8527_IG32:\n        xor      rdi, rdi\n        mov      rbx, bword ptr [rbp-0xB8]\n        mov      gword ptr [rbx\u002B0x38], rdi\n@@ -487,12 \u002B471,12 @@ G_M8527_IG34:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x40], edi\n        test     byte  ptr [rbp-0x40], 4\n-       jne      SHORT G_M8527_IG35\n\u002B       jne      SHORT G_M8527_IG33\n        mov      rdi, gword ptr [rbp-0x48]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M8527_IG07\n \t\t\t\t\t\t;; size=63 bbWeight=1 PerfScore 17.75\n-G_M8527_IG35:\n\u002BG_M8527_IG33:\n        mov      rbx, bword ptr [rbp-0xB8]\n        mov      dword ptr [rbx\u002B0x48], 1\n        lea      rdi, bword ptr [rbx\u002B0x68]\n@@ -508,30 \u002B492,30 @@ G_M8527_IG35:\n        lea      rdi, [rbp-0x48]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u002BConfiguredTaskAwaiter](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u002BConfiguredTaskAwaiter](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      SHORT G_M8527_IG38\n\u002B       jmp      SHORT G_M8527_IG36\n \t\t\t\t\t\t;; size=73 bbWeight=1 PerfScore 16.50\n-G_M8527_IG36:\n\u002BG_M8527_IG34:\n        mov      dword ptr [rbx\u002B0x48], -2\n        xor      rdi, rdi\n        mov      gword ptr [rbx\u002B0x28], rdi\n        lea      rdi, bword ptr [rbx\u002B0x50]\n        cmp      gword ptr [rdi], 0\n-       je       SHORT G_M8527_IG37\n\u002B       je       SHORT G_M8527_IG35\n        mov      rdi, gword ptr [rdi]\n        xor      esi, esi\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.Threading.Tasks.VoidTaskResult],System.Threading.Tasks.VoidTaskResult)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.Threading.Tasks.VoidTaskResult],System.Threading.Tasks.VoidTaskResult)\n-       jmp      SHORT G_M8527_IG38\n\u002B       jmp      SHORT G_M8527_IG36\n \t\t\t\t\t\t;; size=42 bbWeight=1 PerfScore 13.25\n-G_M8527_IG37:\n\u002BG_M8527_IG35:\n        mov      rsi, 0xD1FFAB1E      ; const ptr\n        mov      rsi, gword ptr [rsi]\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 3.25\n-G_M8527_IG38:\n\u002BG_M8527_IG36:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M8527_IG39:\n\u002BG_M8527_IG37:\n        add      rsp, 168\n        pop      rbx\n        pop      r14\n@@ -539,28 \u002B523,28 @@ G_M8527_IG39:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 3.25\n-G_M8527_IG40:\n\u002BG_M8527_IG38:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 1.00\n-G_M8527_IG41:\n\u002BG_M8527_IG39:\n        cmp      dword ptr [rbp-0x1C], 0\n-       jge      SHORT G_M8527_IG42\n\u002B       jge      SHORT G_M8527_IG40\n        mov      rbx, bword ptr [rbp-0xB8]\n        mov      rdi, gword ptr [rbx\u002B0x38]\n        test     rdi, rdi\n-       je       SHORT G_M8527_IG42\n\u002B       je       SHORT G_M8527_IG40\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        nop      \n \t\t\t\t\t\t;; size=36 bbWeight=1 PerfScore 9.75\n-G_M8527_IG42:\n\u002BG_M8527_IG40:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M8527_IG43:\n\u002BG_M8527_IG41:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M8527_IG44:\n\u002BG_M8527_IG42:\n        mov      rsi, rdi\n        mov      rbx, bword ptr [rbp-0xB8]\n        mov      rax, gword ptr [rbx\u002B0x20]\n@@ -569,10 \u002B553,10 @@ G_M8527_IG44:\n        call     CORINFO_HELP_RETHROW\n        int3     \n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M8527_IG45:\n\u002BG_M8527_IG43:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M8527_IG46:\n\u002BG_M8527_IG44:\n        mov      rsi, rdi\n        mov      rbx, bword ptr [rbp-0xB8]\n        mov      dword ptr [rbx\u002B0x48], -2\n@@ -581,12 \u002B565,12 @@ G_M8527_IG46:\n        lea      rdi, bword ptr [rbx\u002B0x50]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder:SetException(System.Exception):this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder:SetException(System.Exception):this\n-       lea      rax, G_M8527_IG38\n\u002B       lea      rax, G_M8527_IG36\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M8527_IG47:\n\u002BG_M8527_IG45:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1692, prolog size 59, PerfScore 853.50, instruction count 379, allocated bytes for code 1692 (MethodHash=8f6cdeb0) for method Nest.Extensions\u002B\u003CForEachAsync\u003Ed__29\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 1640, prolog size 59, PerfScore 838.75, instruction count 367, allocated bytes for code 1640 (MethodHash=8f6cdeb0) for method Nest.Extensions\u002B\u003CForEachAsync\u003Ed__29\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1692,"DiffBytes":1640},{"Assembly":"OpenAI.dasm","Method":"OpenAI.Images.ImageClient\u002B\u003CGenerateImageEditAsync\u003Ed__20:MoveNext():this (FullOpts)","Category":"improvement","Description":"1,212 -\u003E 1,160 bytes (-52)","ExtraInfo":null,"Diff":"@@ -9,10 \u002B9,10 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T00] ( 40, 37   )   byref  -\u003E  [rbp-0x48]  this EH-live single-def\n-;  V01 loc0         [V01,T03] (  7,  7   )     int  -\u003E  [rbp-0x24]  do-not-enreg[M] EH-live\n\u002B;  V01 loc0         [V01,T02] (  7,  7   )     int  -\u003E  [rbp-0x24]  do-not-enreg[M] EH-live\n ;  V02 loc1         [V02,T07] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003COpenAI.Images.ImageClient\u003E\n ;  V03 loc2         [V03,T08] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]\u003E\n-;  V04 loc3         [V04,T21] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u003E\n\u002B;  V04 loc3         [V04,T20] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u003E\n ;* V05 loc4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u003CSystem.Nullable\u00601[int]\u003E\n ;  V06 loc5         [V06    ] ( 10, 10   )  struct (16) [rbp-0x38]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.ClientModel.ClientResult]\u003E\n ;* V07 loc6         [V07    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[System.ClientModel.ClientResult]\u003E\n@@ -22,18 \u002B22,18 @@\n ;* V11 tmp2         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003COpenAI.Images.GeneratedImage\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003COpenAI.MultiPartFormDataBinaryContent\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V14 tmp5         [V14,T10] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.IO.Stream\u003E\n-;  V15 tmp6         [V15,T11] (  2,  4   )     ref  -\u003E  rdx         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V16 tmp7         [V16,T12] (  2,  4   )     ref  -\u003E  rcx         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V17 tmp8         [V17,T13] (  2,  4   )     ref  -\u003E   r8         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.IO.Stream\u003E\n-;  V18 tmp9         [V18,T14] (  2,  4   )     ref  -\u003E   r9         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V14 tmp5         [V14,T09] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.IO.Stream\u003E\n\u002B;  V15 tmp6         [V15,T10] (  2,  4   )     ref  -\u003E  rdx         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V16 tmp7         [V16,T11] (  2,  4   )     ref  -\u003E  rcx         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V17 tmp8         [V17,T12] (  2,  4   )     ref  -\u003E   r8         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.IO.Stream\u003E\n\u002B;  V18 tmp9         [V18,T13] (  2,  4   )     ref  -\u003E   r9         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n ;* V19 tmp10        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003COpenAI.Images.ImageEditOptions\u003E\n-;  V20 tmp11        [V20,T32] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V20 tmp11        [V20,T31] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n ;* V21 tmp12        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.IO.Stream\u003E\n-;  V22 tmp13        [V22,T30] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V22 tmp13        [V22,T29] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n ;* V23 tmp14        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.IO.Stream\u003E\n-;  V24 tmp15        [V24,T31] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V25 tmp16        [V25,T04] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult]\u003E\n\u002B;  V24 tmp15        [V24,T30] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V25 tmp16        [V25,T03] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult]\u003E\n ;* V26 tmp17        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp18        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V28 tmp19        [V28    ] (  0,  0   )     int  -\u003E  zero-ref    single-def\n@@ -41,22 \u002B41,22 @@\n ;* V30 tmp21        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult]\u003E\n ;* V31 tmp22        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.ClientModel.ClientResult]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult]\u003E\n-;* V33 tmp24        [V33,T29] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V34 tmp25        [V34,T15] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;* V33 tmp24        [V33,T28] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V34 tmp25        [V34,T14] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;* V35 tmp26        [V35    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V37 tmp28        [V37    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V38 tmp29        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Runtime.CompilerServices.IAsyncStateMachineBox\u003E\n-;  V39 tmp30        [V39,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n-;  V40 tmp31        [V40,T16] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n-;  V41 tmp32        [V41,T01] (  4,  8   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Images.GeneratedImageCollection\u003E\n-;  V42 tmp33        [V42    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V43 tmp34        [V43,T22] (  3,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003COpenAI.Images.GeneratedImage\u003E\n-;  V44 tmp35        [V44,T09] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[OpenAI.Images.GeneratedImage]\u003E\n\u002B;  V39 tmp30        [V39,T04] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;  V40 tmp31        [V40,T15] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;  V41 tmp32        [V41,T05] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Images.GeneratedImageCollection\u003E\n\u002B;  V42 tmp33        [V42    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V43 tmp34        [V43,T27] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003COpenAI.Images.GeneratedImage\u003E\n\u002B;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[OpenAI.Images.GeneratedImage]\u003E\n ;  V45 tmp36        [V45,T06] (  3,  6   )   byref  -\u003E  r15         single-def \u0022Inlining Arg\u0022\n-;  V46 tmp37        [V46,T23] (  3,  3   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]\u003E\n\u002B;  V46 tmp37        [V46,T21] (  3,  3   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]\u003E\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    ld-addr-op class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]\u003E\n-;  V48 tmp39        [V48,T02] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]\u003E\n\u002B;  V48 tmp39        [V48,T01] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]\u003E\n... diff truncated; middle omitted ...\n        call     [rax]System.ClientModel.ClientResult:FromValue[System.__Canon](System.__Canon,System.ClientModel.Primitives.PipelineResponse):System.ClientModel.ClientResult\u00601[System.__Canon]\n        mov      rbx, rax\n-       jmp      G_M28708_IG16\n-\t\t\t\t\t\t;; size=37 bbWeight=1 PerfScore 8.00\n-G_M28708_IG12:\n\u002B       jmp      G_M28708_IG14\n\u002B\t\t\t\t\t\t;; size=98 bbWeight=1 PerfScore 20.00\n\u002BG_M28708_IG10:\n        mov      rax, gword ptr [rdi\u002B0x38]\n        mov      r15, rax\n        mov      rdi, rax\n@@ -250,16 \u002B233,16 @@ G_M28708_IG12:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x30], edi\n        test     byte  ptr [rbp-0x30], 4\n-       jne      SHORT G_M28708_IG13\n\u002B       jne      SHORT G_M28708_IG11\n        mov      rdi, gword ptr [rbp-0x38]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M28708_IG08\n \t\t\t\t\t\t;; size=103 bbWeight=1 PerfScore 32.50\n-G_M28708_IG13:\n\u002BG_M28708_IG11:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x24], edi\n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M28708_IG14:\n\u002BG_M28708_IG12:\n        mov      r13, bword ptr [rbp-0x48]\n        mov      dword ptr [r13\u002B0x40], edi\n        lea      rdi, bword ptr [r13\u002B0x58]\n@@ -277,30 \u002B260,30 @@ G_M28708_IG14:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.ClientModel.ClientResult]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      SHORT G_M28708_IG17\n\u002B       jmp      SHORT G_M28708_IG15\n \t\t\t\t\t\t;; size=88 bbWeight=1 PerfScore 17.00\n-G_M28708_IG15:\n\u002BG_M28708_IG13:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M28708_IG16:\n\u002BG_M28708_IG14:\n        cmp      dword ptr [rbp-0x24], 0\n-       jge      G_M28708_IG20\n\u002B       jge      G_M28708_IG18\n        mov      r15, bword ptr [rbp-0x48]\n        mov      rdi, gword ptr [r15\u002B0x38]\n        test     rdi, rdi\n-       je       G_M28708_IG20\n\u002B       je       G_M28708_IG18\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n-       jmp      SHORT G_M28708_IG20\n\u002B       jmp      SHORT G_M28708_IG18\n \t\t\t\t\t\t;; size=42 bbWeight=1 PerfScore 11.50\n-G_M28708_IG17:\n-       call     G_M28708_IG28\n-       jmp      G_M28708_IG25\n\u002BG_M28708_IG15:\n\u002B       call     G_M28708_IG26\n\u002B       jmp      G_M28708_IG23\n \t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.00\n-G_M28708_IG18:\n\u002BG_M28708_IG16:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -312,7 \u002B295,7 @@ G_M28708_IG18:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M28708_IG19:\n\u002BG_M28708_IG17:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -324,7 \u002B307,7 @@ G_M28708_IG19:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M28708_IG20:\n\u002BG_M28708_IG18:\n        mov      r15, bword ptr [rbp-0x48]\n        mov      dword ptr [r15\u002B0x40], -2\n        xor      rsi, rsi\n@@ -332,16 \u002B315,16 @@ G_M28708_IG20:\n        add      r15, 72\n        mov      rsi, gword ptr [r15]\n        test     rsi, rsi\n-       je       SHORT G_M28708_IG21\n\u002B       je       SHORT G_M28708_IG19\n        mov      rdx, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n-       jmp      SHORT G_M28708_IG25\n\u002B       jmp      SHORT G_M28708_IG23\n \t\t\t\t\t\t;; size=57 bbWeight=1 PerfScore 12.50\n-G_M28708_IG21:\n\u002BG_M28708_IG19:\n        test     rbx, rbx\n-       je       SHORT G_M28708_IG22\n\u002B       je       SHORT G_M28708_IG20\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -349,26 \u002B332,26 @@ G_M28708_IG21:\n        lea      rdi, bword ptr [r14\u002B0x38]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      SHORT G_M28708_IG24\n\u002B       jmp      SHORT G_M28708_IG22\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 7.50\n-G_M28708_IG22:\n\u002BG_M28708_IG20:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       SHORT G_M28708_IG27\n\u002B       je       SHORT G_M28708_IG25\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 3.25\n-G_M28708_IG23:\n\u002BG_M28708_IG21:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]:s_defaultResultTask\n        mov      r14, gword ptr [rdi]\n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 2.25\n-G_M28708_IG24:\n\u002BG_M28708_IG22:\n        mov      rdi, r15\n        mov      rsi, r14\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 1.50\n-G_M28708_IG25:\n\u002BG_M28708_IG23:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M28708_IG26:\n\u002BG_M28708_IG24:\n        add      rsp, 64\n        pop      rbx\n        pop      r13\n@@ -377,36 \u002B360,36 @@ G_M28708_IG26:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n-G_M28708_IG27:\n\u002BG_M28708_IG25:\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      SHORT G_M28708_IG23\n\u002B       jmp      SHORT G_M28708_IG21\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M28708_IG28:\n\u002BG_M28708_IG26:\n        sub      rsp, 24\n \t\t\t\t\t\t;; size=4 bbWeight=1 PerfScore 0.25\n-G_M28708_IG29:\n\u002BG_M28708_IG27:\n        cmp      dword ptr [rbp-0x24], 0\n-       jge      SHORT G_M28708_IG30\n\u002B       jge      SHORT G_M28708_IG28\n        mov      r15, bword ptr [rbp-0x48]\n        mov      rdi, gword ptr [r15\u002B0x38]\n        test     rdi, rdi\n-       je       SHORT G_M28708_IG30\n\u002B       je       SHORT G_M28708_IG28\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=32 bbWeight=1 PerfScore 9.50\n-G_M28708_IG30:\n\u002BG_M28708_IG28:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M28708_IG31:\n\u002BG_M28708_IG29:\n        add      rsp, 24\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M28708_IG32:\n\u002BG_M28708_IG30:\n        sub      rsp, 24\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M28708_IG33:\n\u002BG_M28708_IG31:\n        mov      rdx, rdi\n        mov      r15, bword ptr [rbp-0x48]\n        mov      dword ptr [r15\u002B0x40], -2\n@@ -416,12 \u002B399,12 @@ G_M28708_IG33:\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n-       lea      rax, G_M28708_IG25\n\u002B       lea      rax, G_M28708_IG23\n \t\t\t\t\t\t;; size=54 bbWeight=0 PerfScore 0.00\n-G_M28708_IG34:\n\u002BG_M28708_IG32:\n        add      rsp, 24\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1212, prolog size 37, PerfScore 248.08, instruction count 275, allocated bytes for code 1212 (MethodHash=db238fdb) for method OpenAI.Images.ImageClient\u002B\u003CGenerateImageEditAsync\u003Ed__20:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 1160, prolog size 37, PerfScore 233.08, instruction count 262, allocated bytes for code 1160 (MethodHash=db238fdb) for method OpenAI.Images.ImageClient\u002B\u003CGenerateImageEditAsync\u003Ed__20:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1212,"DiffBytes":1160},{"Assembly":"Pomelo.EntityFrameworkCore.MySql.dasm","Method":"Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitScalarSubquery(Microsoft.EntityFrameworkCore.Query.SqlExpressions.ScalarSubqueryExpression):System.Linq.Expressions.Expression:this (FullOpts)","Category":"improvement","Description":"400 -\u003E 204 bytes (-196)","ExtraInfo":null,"Diff":"@@ -1,158 \u002B1,98 @@\n ; Assembly listing for method Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitScalarSubquery(Microsoft.EntityFrameworkCore.Query.SqlExpressions.ScalarSubqueryExpression):System.Linq.Expressions.Expression:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 0 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] (  8,  7.50)     ref  -\u003E  rbx         this class-hnd single-def \u003CPomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor\u003E\n-;  V01 arg1         [V01,T02] (  6,  6   )     ref  -\u003E  r15         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.ScalarSubqueryExpression\u003E\n-;  V02 loc0         [V02,T14] (  2,  2   )   ubyte  -\u003E  r14         single-def\n-;  V03 loc1         [V03,T09] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression\u003E\n\u002B;  V00 this         [V00,T00] (  6,  6   )     ref  -\u003E  rbx         this class-hnd single-def \u003CPomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor\u003E\n\u002B;  V01 arg1         [V01,T01] (  6,  6   )     ref  -\u003E  r15         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.ScalarSubqueryExpression\u003E\n\u002B;  V02 loc0         [V02,T09] (  2,  2   )   ubyte  -\u003E  r14         single-def\n\u002B;  V03 loc1         [V03,T08] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V05 tmp1         [V05,T16] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;* V06 tmp2         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V07 tmp3         [V07,T01] (  8,  9   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.ScalarSubqueryExpression\u003E\n-;  V08 tmp4         [V08,T06] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Boolean\u003E\n-;  V09 tmp5         [V09,T10] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u0022impImportAndPushBox\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.ISqlExpressionFactory\u003E\n-;  V10 tmp6         [V10,T11] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022impImportAndPushBox\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.ISqlExpressionFactory\u003E\n-;  V11 tmp7         [V11,T05] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V12 tmp8         [V12,T04] (  3,  4   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n-;  V13 tmp9         [V13,T12] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V14 tmp10        [V14,T13] (  2,  2   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V15 cse0         [V15,T15] (  3,  1.50)     ref  -\u003E  rdi         \u0022CSE #04: moderate\u0022\n-;  V16 cse1         [V16,T07] (  3,  3   )    long  -\u003E  r13         \u0022CSE #02: aggressive\u0022\n-;  V17 rat0         [V17,T03] (  4,  7   )     ref  -\u003E  rsi         \u0022replacement local\u0022\n-;  V18 rat1         [V18,T08] (  3,  2   )    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n\u002B;  V05 tmp1         [V05,T10] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;* V06 tmp2         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.ScalarSubqueryExpression\u003E\n\u002B;  V07 tmp3         [V07,T04] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.ScalarSubqueryExpression\u003E\n\u002B;  V08 tmp4         [V08,T05] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V09 tmp5         [V09,T03] (  3,  4   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n\u002B;  V10 cse0         [V10,T06] (  3,  3   )    long  -\u003E  r13         \u0022CSE #02: aggressive\u0022\n\u002B;  V11 rat0         [V11,T02] (  4,  7   )     ref  -\u003E  rsi         \u0022replacement local\u0022\n\u002B;  V12 rat1         [V12,T07] (  3,  2   )    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n ;\n ; Lcl frame size = 0\n \n G_M60559_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     rbx\n        lea      rbp, [rsp\u002B0x20]\n        mov      rbx, rdi\n        mov      r15, rsi\n \t\t\t\t\t\t;; size=19 bbWeight=1 PerfScore 6.00\n G_M60559_IG02:\n        test     r15, r15\n-       je       G_M60559_IG10\n\u002B       je       SHORT G_M60559_IG06\n        movzx    r14, byte  ptr [rbx\u002B0x10]\n        mov      rdi, r15\n        mov      r13, qword ptr [r15]\n        mov      rax, qword ptr [r13\u002B0x48]\n        call     [rax\u002B0x30]Microsoft.EntityFrameworkCore.Query.SqlExpressions.ScalarSubqueryExpression:get_Subquery():Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression:this\n        mov      rsi, rax\n        mov      rdi, rbx\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x20]System.Linq.Expressions.ExpressionVisitor:Visit(System.Linq.Expressions.Expression):System.Linq.Expressions.Expression:this\n        mov      rsi, rax\n        test     rsi, rsi\n        je       SHORT G_M60559_IG04\n-\t\t\t\t\t\t;; size=51 bbWeight=1 PerfScore 19.50\n\u002B\t\t\t\t\t\t;; size=47 bbWeight=1 PerfScore 19.50\n G_M60559_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression\n        cmp      qword ptr [rsi], rdi\n-       jne      G_M60559_IG11\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n\u002B       jne      SHORT G_M60559_IG07\n\u002B\t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 1.62\n G_M60559_IG04:\n        mov      byte  ptr [rbx\u002B0x10], r14b\n        mov      rdi, r15\n        mov      rax, qword ptr [r13\u002B0x50]\n        call     [rax]Microsoft.EntityFrameworkCore.Query.SqlExpressions.ScalarSubqueryExpression:Update(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression):Microsoft.EntityFrameworkCore.Query.SqlExpressions.ScalarSubqueryExpression:this\n-       mov      r15, rax\n-       cmp      byte  ptr [rbx\u002B0x10], 0\n-       je       SHORT G_M60559_IG06\n-\t\t\t\t\t\t;; size=22 bbWeight=1 PerfScore 9.50\n\u002B       nop      \n\u002B\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 6.50\n G_M60559_IG05:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Microsoft.EntityFrameworkCore.Query.SqlExpressions.ColumnExpression\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M60559_IG06\n-       mov      rdi, r15\n-       mov      rax, qword ptr [r15]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-       call     [rax\u002B0x10]Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:get_TypeMapping():Microsoft.EntityFrameworkCore.Storage.RelationalTypeMapping:this\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; Pomelo.EntityFrameworkCore.MySql.Storage.Internal.MySqlBoolTypeMapping\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M60559_IG06\n-       mov      rdi, r15\n-       mov      rax, qword ptr [r15]\n-       mov      rax, qword ptr [rax\u002B0x40]\n-       call     [rax\u002B0x28]System.Linq.Expressions.Expression:get_Type():System.Type:this\n-       mov      rdi, 0xD1FFAB1E      ; \u0027System.Boolean\u0027\n-       cmp      rax, rdi\n-       je       SHORT G_M60559_IG08\n-\t\t\t\t\t\t;; size=101 bbWeight=0.50 PerfScore 13.00\n-G_M60559_IG06:\n-       mov      rax, r15\n-\t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M60559_IG07:\n        pop      rbx\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 1.75\n-G_M60559_IG08:\n-       mov      rdi, 0xD1FFAB1E      ; System.Boolean\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      rdi, gword ptr [rbx\u002B0x08]\n-       mov      rbx, rdi\n-       mov      byte  ptr [rax\u002B0x08], 1\n-       mov      rsi, rax\n-       mov      r11, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Constant(System.Object,Microsoft.EntityFrameworkCore.Storage.RelationalTypeMapping):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-       xor      rdx, rdx\n-       call     [r11]Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Constant(System.Object,Microsoft.EntityFrameworkCore.Storage.RelationalTypeMapping):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-       mov      rdx, rax\n-       mov      rdi, rbx\n-       mov      rsi, r15\n-       mov      r11, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Equal(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-       cmp      dword ptr [rdi], edi\n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 5.62\n-G_M60559_IG09:\n-       pop      rbx\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [r11]Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Equal(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-\t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 2.25\n-G_M60559_IG10:\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.50\n\u002BG_M60559_IG06:\n        mov      rdi, 0xD1FFAB1E      ; \u0027scalarSubqueryExpression\u0027\n        mov      rsi, 0xD1FFAB1E      ; \u0027parameterName\u0027\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Utilities.Check:NotEmpty(System.String,System.String):System.String\n        call     [rax]Microsoft.EntityFrameworkCore.Utilities.Check:NotEmpty(System.String,System.String):System.String\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; \u0027scalarSubqueryExpression\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:.ctor(System.String):this\n        call     [rax]System.ArgumentNullException:.ctor(System.String):this\n        mov      rdi, rbx\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=84 bbWeight=0 PerfScore 0.00\n-G_M60559_IG11:\n\u002BG_M60559_IG07:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rax]CORINFO_HELP_CHKCASTCLASS\n        int3     \n \t\t\t\t\t\t;; size=16 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 400, prolog size 13, PerfScore 59.38, instruction count 101, allocated bytes for code 400 (MethodHash=51c71370) for method Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitScalarSubquery(Microsoft.EntityFrameworkCore.Query.SqlExpressions.ScalarSubqueryExpression):System.Linq.Expressions.Expression:this (FullOpts)\n\u002B; Total bytes of code 204, prolog size 13, PerfScore 37.12, instruction count 55, allocated bytes for code 204 (MethodHash=51c71370) for method Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitScalarSubquery(Microsoft.EntityFrameworkCore.Query.SqlExpressions.ScalarSubqueryExpression):System.Linq.Expressions.Expression:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":400,"DiffBytes":204},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.CollectionSettings.VersionService:ListAutoPaging(System.String,Stripe.V2.Billing.CollectionSettings.VersionListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.CollectionSettingVersion]:this (FullOpts)","Category":"improvement","Description":"513 -\u003E 464 bytes (-49)","ExtraInfo":null,"Diff":"@@ -9,33 \u002B9,32 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T05] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.CollectionSettings.VersionService\u003E\n-;  V01 arg1         [V01,T08] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.CollectionSettings.VersionListOptions\u003E\n-;  V03 arg3         [V03,T07] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T07] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V02 arg2         [V02,T08] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.CollectionSettings.VersionListOptions\u003E\n\u002B;  V03 arg3         [V03,T06] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T11] (  3,  2   )     ref  -\u003E  r15         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.CollectionSettingVersion]\u003E\n ;  V06 tmp2         [V06,T02] (  4,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V07 tmp3         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V08 tmp4         [V08,T12] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;  V09 tmp5         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.CollectionSettingVersion]\u003E\n-;* V10 tmp6         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp8         [V12,T03] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.CollectionSettingVersion]\u003E\n-;  V13 tmp9         [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.CollectionSettingVersion]\u003E\n-;* V14 tmp10        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp11        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp12        [V16,T04] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.CollectionSettingVersion]\u003E\n-;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V07._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp14        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp15        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp16        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp17        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 tmp18        [V22,T09] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V23 cse0         [V23,T10] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #02: moderate\u0022\n-;  V24 rat0         [V24,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T15] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T16] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.CollectionSettingVersion]\u003E\n\u002B;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp6         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp7         [V11,T03] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.CollectionSettingVersion]\u003E\n\u002B;  V12 tmp8         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.CollectionSettingVersion]\u003E\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp11        [V15,T04] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.CollectionSettingVersion]\u003E\n\u002B;* V16 tmp12        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V07._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp14        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp15        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp16        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 tmp17        [V21,T09] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V22 cse0         [V22,T10] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #02: moderate\u0022\n\u002B;  V23 rat0         [V23,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T15] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n@@ -49,8 \u002B48,8 @@ G_M17174_IG01:\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rdx\n-       mov      r14, rcx\n\u002B       mov      r14, rdx\n\u002B       mov      r15, rcx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M17174_IG02:\n        mov      rdi, rsi\n@@ -69,49 \u002B68,41 @@ G_M17174_IG02:\n        je       G_M17174_IG04\n \t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 12.50\n G_M17174_IG03:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.CollectionSettingVersion]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n-       mov      eax, dword ptr [rax\u002B0x10]\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, dword ptr [rax\u002B0x10]\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x28]\n\u002B       lea      rdi, bword ptr [r14\u002B0x28]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.CollectionSettingVersion]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        mov      dword ptr [r15\u002B0x28], -2\n-       mov      r14d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r15\u002B0x2C], r14d\n\u002B       mov      dword ptr [r15\u002B0x2C], r12d\n        lea      rdi, bword ptr [r15\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M17174_IG05\n-\t\t\t\t\t\t;; size=212 bbWeight=0.50 PerfScore 16.00\n\u002B\t\t\t\t\t\t;; size=164 bbWeight=0.50 PerfScore 12.75\n G_M17174_IG04:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.CollectionSettingVersion]\n        call     CORINFO_HELP_NEWSFAST\n@@ -134,10 \u002B125,10 @@ G_M17174_IG04:\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n@@ -145,12 \u002B136,12 @@ G_M17174_IG04:\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        mov      dword ptr [r15\u002B0x28], -2\n-       mov      r14d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r15\u002B0x2C], r14d\n\u002B       mov      ebx, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r15\u002B0x2C], ebx\n        lea      rdi, bword ptr [r15\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=181 bbWeight=0.50 PerfScore 13.12\n\u002B\t\t\t\t\t\t;; size=180 bbWeight=0.50 PerfScore 13.12\n G_M17174_IG05:\n        mov      rax, r15\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n@@ -165,5 \u002B156,5 @@ G_M17174_IG06:\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 513, prolog size 16, PerfScore 54.38, instruction count 113, allocated bytes for code 513 (MethodHash=ad7cbce9) for method Stripe.V2.Billing.CollectionSettings.VersionService:ListAutoPaging(System.String,Stripe.V2.Billing.CollectionSettings.VersionListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.CollectionSettingVersion]:this (FullOpts)\n\u002B; Total bytes of code 464, prolog size 16, PerfScore 51.12, instruction count 105, allocated bytes for code 464 (MethodHash=ad7cbce9) for method Stripe.V2.Billing.CollectionSettings.VersionService:ListAutoPaging(System.String,Stripe.V2.Billing.CollectionSettings.VersionListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.CollectionSettingVersion]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":513,"DiffBytes":464},{"Assembly":"System.CommandLine.dasm","Method":"System.CommandLine.Argument\u00601[int]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,int]:this (FullOpts)","Category":"improvement","Description":"234 -\u003E 5 bytes (-229)","ExtraInfo":null,"Diff":"@@ -1,100 \u002B1,35 @@\n ; Assembly listing for method System.CommandLine.Argument\u00601[int]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,int]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] (  4,  3.50)     ref  -\u003E  rdi         this class-hnd single-def \u003CSystem.CommandLine.Argument\u00601[int]\u003E\n-;  V01 loc0         [V01,T06] (  3,  1.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.CommandLine.Argument\u00601[bool]\u003E\n\u002B;  V00 this         [V00,T00] (  3,  3   )     ref  -\u003E  rdi         this class-hnd single-def \u003CSystem.CommandLine.Argument\u00601[int]\u003E\n\u002B;* V01 loc0         [V01    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.CommandLine.Argument\u00601[bool]\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V03 tmp1         [V03,T05] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\u003E\n-;* V04 tmp2         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V05 tmp3         [V05,T04] (  4,  2   )     ref  -\u003E  rsi        \n-;  V06 tmp4         [V06,T01] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\u003E\n-;  V07 tmp5         [V07,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.CommandLine.Argument\u00601\u002B\u003C\u003Ec[int]\u003E\n\u002B;* V03 tmp1         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\u003E\n\u002B;* V04 tmp2         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref   \n\u002B;* V05 tmp3         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref   \n\u002B;* V06 tmp4         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\u003E\n\u002B;* V07 tmp5         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.CommandLine.Argument\u00601\u002B\u003C\u003Ec[int]\u003E\n ;* V08 tmp6         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.CommandLine.Argument\u00601[bool]\u003E\n ;* V09 tmp7         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\u003E\n-;* V10 cse0         [V10,T07] (  0,  0   )   byref  -\u003E  zero-ref    \u0022CSE #02: aggressive\u0022\n-;  V11 cse1         [V11,T03] (  3,  3   )     ref  -\u003E  rbx         \u0022CSE #04: aggressive\u0022\n\u002B;  V10 cse0         [V10,T01] (  2,  2   )     ref  -\u003E  rax         \u0022CSE #01: aggressive\u0022\n ;\n-; Lcl frame size = 8\n\u002B; Lcl frame size = 0\n \n G_M3223_IG01:\n-       push     rbp\n-       push     r15\n-       push     r14\n-       push     rbx\n-       push     rax\n-       lea      rbp, [rsp\u002B0x20]\n-\t\t\t\t\t\t;; size=12 bbWeight=1 PerfScore 5.50\n\u002B\t\t\t\t\t\t;; size=0 bbWeight=1 PerfScore 0.00\n G_M3223_IG02:\n-       mov      rbx, gword ptr [rdi\u002B0x60]\n-       test     rbx, rbx\n-       jne      G_M3223_IG06\n-\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.25\n\u002B       mov      rax, gword ptr [rdi\u002B0x60]\n\u002B\t\t\t\t\t\t;; size=4 bbWeight=1 PerfScore 2.00\n G_M3223_IG03:\n-       mov      rsi, rdi\n-       mov      rdi, 0xD1FFAB1E      ; System.CommandLine.Argument\u00601[bool]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n-       test     r15, r15\n-       je       SHORT G_M3223_IG06\n-       mov      rdi, 0xD1FFAB1E      ; global ptr\n-       test     byte  ptr [rdi], 1\n-       je       SHORT G_M3223_IG08\n-\t\t\t\t\t\t;; size=48 bbWeight=0.50 PerfScore 4.25\n-G_M3223_IG04:\n-       mov      rdi, 0xD1FFAB1E      ; data for System.CommandLine.Argument\u00601\u002B\u003C\u003Ec[int]:\u003C\u003E9__4_0\n-       mov      rsi, gword ptr [rdi]\n-       test     rsi, rsi\n-       jne      SHORT G_M3223_IG05\n-       mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      rdi, 0xD1FFAB1E      ; data for System.CommandLine.Argument\u00601\u002B\u003C\u003Ec[int]:\u003C\u003E9\n-       mov      rsi, gword ptr [rdi]\n-       test     rsi, rsi\n-       je       SHORT G_M3223_IG09\n-       lea      rdi, bword ptr [r14\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, 0xD1FFAB1E      ; code for System.CommandLine.Argument\u00601\u002B\u003C\u003Ec[int]:\u003Cget_DefaultValueFactory\u003Eb__4_0(System.CommandLine.Parsing.ArgumentResult):bool:this\n-       mov      qword ptr [r14\u002B0x18], rdi\n-       mov      rdi, 0xD1FFAB1E      ; data for System.CommandLine.Argument\u00601\u002B\u003C\u003Ec[int]:\u003C\u003E9__4_0\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rsi, r14\n-\t\t\t\t\t\t;; size=98 bbWeight=0.50 PerfScore 6.50\n-G_M3223_IG05:\n-       lea      rdi, bword ptr [r15\u002B0x60]\n-       call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 0.75\n-G_M3223_IG06:\n-       mov      rax, rbx\n-\t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M3223_IG07:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M3223_IG08:\n-       mov      rdi, 0xD1FFAB1E      ; System.CommandLine.Argument\u00601\u002B\u003C\u003Ec[int]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M3223_IG04\n-\t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M3223_IG09:\n-       mov      rax, 0xD1FFAB1E      ; code for System.Delegate:ThrowNullThisInDelegateToInstance()\n-       call     [rax]System.Delegate:ThrowNullThisInDelegateToInstance()\n-       int3     \n-\t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n\u002B\t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 1.00\n \n-; Total bytes of code 234, prolog size 12, PerfScore 23.75, instruction count 54, allocated bytes for code 234 (MethodHash=305ff368) for method System.CommandLine.Argument\u00601[int]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,int]:this (FullOpts)\n\u002B; Total bytes of code 5, prolog size 0, PerfScore 3.00, instruction count 2, allocated bytes for code 5 (MethodHash=305ff368) for method System.CommandLine.Argument\u00601[int]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,int]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":234,"DiffBytes":5},{"Assembly":"System.Data.Common.dasm","Method":"System.Data.EnumerableRowCollectionExtensions:Select[long,System.Nullable\u00601[int]](System.Data.EnumerableRowCollection\u00601[long],System.Func\u00602[long,System.Nullable\u00601[int]]):System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]] (FullOpts)","Category":"regression","Description":"147 -\u003E 249 bytes (\u002B102)","ExtraInfo":null,"Diff":"@@ -1,66 \u002B1,94 @@\n ; Assembly listing for method System.Data.EnumerableRowCollectionExtensions:Select[long,System.Nullable\u00601[int]](System.Data.EnumerableRowCollection\u00601[long],System.Func\u00602[long,System.Nullable\u00601[int]]):System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]] (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n\u002B; 0 inlinees with PGO data; 4 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T00] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.EnumerableRowCollection\u00601[long]\u003E\n-;  V01 arg1         [V01,T01] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Func\u00602[long,System.Nullable\u00601[int]]\u003E\n-;  V02 loc0         [V02,T05] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V00 arg0         [V00,T04] (  3,  3   )     ref  -\u003E  rdi         class-hnd single-def \u003CSystem.Data.EnumerableRowCollection\u00601[long]\u003E\n\u002B;  V01 arg1         [V01,T01] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Func\u00602[long,System.Nullable\u00601[int]]\u003E\n\u002B;  V02 loc0         [V02,T07] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V04 tmp1         [V04,T02] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]]\u003E\n-;  V05 tmp2         [V05,T03] (  2,  4   )     ref  -\u003E  rbx         single-def \u0022argument with side effect\u0022\n-;  V06 tmp3         [V06,T04] (  2,  4   )     ref  -\u003E  rcx         single-def \u0022argument with side effect\u0022\n\u002B;  V04 tmp1         [V04,T00] (  6, 12   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V05 tmp2         [V05,T05] (  2,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]\u003E\n\u002B;  V06 tmp3         [V06,T02] (  3,  6   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Func\u00602[System.Nullable\u00601[int],bool]]\u003E\n\u002B;  V07 tmp4         [V07,T03] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.SortExpressionBuilder\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V08 cse0         [V08,T06] (  3,  2   )    long  -\u003E  rbx         \u0022CSE #01: aggressive\u0022\n ;\n-; Lcl frame size = 0\n\u002B; Lcl frame size = 8\n \n G_M11937_IG01:\n        push     rbp\n        push     r15\n        push     r14\n-       push     r13\n        push     rbx\n\u002B       push     rax\n        lea      rbp, [rsp\u002B0x20]\n-       mov      rbx, rdi\n-       mov      r15, rsi\n-\t\t\t\t\t\t;; size=19 bbWeight=1 PerfScore 6.00\n\u002B       mov      rbx, rsi\n\u002B\t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 5.75\n G_M11937_IG02:\n-       mov      rdi, rbx\n-       mov      rsi, r15\n\u002B       mov      rsi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:Select[long,System.Nullable\u00601[int]](System.Collections.Generic.IEnumerable\u00601[long],System.Func\u00602[long,System.Nullable\u00601[int]]):System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]\n        call     [rax]System.Linq.Enumerable:Select[long,System.Nullable\u00601[int]](System.Collections.Generic.IEnumerable\u00601[long],System.Func\u00602[long,System.Nullable\u00601[int]]):System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]\n-       mov      r14, rax\n\u002B       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n\u002B       mov      r14, rax\n        mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      rbx, rax\n-       mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFANY\n        call     [rax]CORINFO_HELP_ISINSTANCEOFANY\n-       mov      rcx, rax\n\u002B       mov      rbx, rax\n\u002B       lea      rdi, bword ptr [r14\u002B0x10]\n\u002B       mov      rsi, r15\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       lea      rdi, bword ptr [r14\u002B0x28]\n        mov      rsi, rbx\n-       mov      rdx, r14\n-       mov      rdi, r13\n-       mov      rax, 0xD1FFAB1E      ; code for System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]]:.ctor(System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]],System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]],System.Func\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]):this\n-       call     [rax]System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]]:.ctor(System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]],System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]],System.Func\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]):this\n-       mov      rax, r13\n-\t\t\t\t\t\t;; size=119 bbWeight=1 PerfScore 17.75\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       mov      rbx, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.Func\u00602[System.Nullable\u00601[int],bool]]\n\u002B       mov      rdi, rbx\n\u002B       call     CORINFO_HELP_NEWSFAST\n\u002B       mov      r15, rax\n\u002B       mov      rdi, 0xD1FFAB1E      ; global ptr\n\u002B       test     byte  ptr [rdi], 1\n\u002B       je       SHORT G_M11937_IG05\n\u002B\t\t\t\t\t\t;; size=124 bbWeight=1 PerfScore 17.75\n G_M11937_IG03:\n\u002B       mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.List\u00601[System.Func\u00602[System.Nullable\u00601[int],bool]]:s_emptyArray\n\u002B       mov      rsi, gword ptr [rdi]\n\u002B       lea      rdi, bword ptr [r15\u002B0x08]\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n\u002B       mov      rsi, r15\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       mov      rdi, 0xD1FFAB1E      ; System.Data.SortExpressionBuilder\u00601[System.Nullable\u00601[int]]\n\u002B       call     CORINFO_HELP_NEWSFAST\n\u002B       mov      rbx, rax\n\u002B       mov      rdi, rbx\n\u002B       mov      rax, 0xD1FFAB1E      ; code for System.Data.SortExpressionBuilder\u00601[System.Nullable\u00601[int]]:.ctor():this\n\u002B       call     [rax]System.Data.SortExpressionBuilder\u00601[System.Nullable\u00601[int]]:.ctor():this\n\u002B       lea      rdi, bword ptr [r14\u002B0x20]\n\u002B       mov      rsi, rbx\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       mov      rax, r14\n\u002B\t\t\t\t\t\t;; size=82 bbWeight=1 PerfScore 12.50\n\u002BG_M11937_IG04:\n\u002B       add      rsp, 8\n        pop      rbx\n-       pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.50\n\u002B\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n\u002BG_M11937_IG05:\n\u002B       mov      rdi, rbx\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n\u002B       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n\u002B       jmp      SHORT G_M11937_IG03\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 147, prolog size 13, PerfScore 27.25, instruction count 38, allocated bytes for code 147 (MethodHash=f85cd15e) for method System.Data.EnumerableRowCollectionExtensions:Select[long,System.Nullable\u00601[int]](System.Data.EnumerableRowCollection\u00601[long],System.Func\u00602[long,System.Nullable\u00601[int]]):System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]] (FullOpts)\n\u002B; Total bytes of code 249, prolog size 12, PerfScore 39.25, instruction count 59, allocated bytes for code 249 (MethodHash=f85cd15e) for method System.Data.EnumerableRowCollectionExtensions:Select[long,System.Nullable\u00601[int]](System.Data.EnumerableRowCollection\u00601[long],System.Func\u00602[long,System.Nullable\u00601[int]]):System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]] (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":147,"DiffBytes":249},{"Assembly":"Consul.dasm","Method":"Consul.GetRequest\u00601\u002B\u003CExecuteStreaming\u003Ed__11[long]:MoveNext():this (FullOpts)","Category":"improvement","Description":"1,458 -\u003E 1,431 bytes (-27)","ExtraInfo":null,"Diff":"@@ -8,8 \u002B8,8 @@\n ; 0 inlinees with PGO data; 57 single block inlinees; 13 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 45, 39   )   byref  -\u003E  [rbp-0x68]  this EH-live single-def\n-;  V01 loc0         [V01,T33] (  3,  3   )     int  -\u003E  rdi         single-def\n\u002B;  V00 this         [V00,T00] ( 42, 36   )   byref  -\u003E  [rbp-0x68]  this EH-live single-def\n\u002B;  V01 loc0         [V01,T35] (  3,  3   )     int  -\u003E  rdi         single-def\n ;  V02 loc1         [V02,T02] ( 11, 11   )     ref  -\u003E  rbx         class-hnd single-def \u003CConsul.GetRequest\u00601[long]\u003E\n ;  V03 loc2         [V03,T14] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n ;* V04 loc3         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CSystem.Net.Http.HttpRequestMessage\u003E\n@@ -22,106 \u002B22,108 @@\n ;* V11 loc10        [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Exception\u003E\n ;  V12 OutArgs      [V12    ] (  1,  1   )  struct ( 8) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V13 tmp1         [V13    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;* V14 tmp2         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;  V14 tmp2         [V14,T16] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Net.Http.HttpResponseMessage\u003E\n ;* V15 tmp3         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n-;  V16 tmp4         [V16,T16] (  2,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n-;* V17 tmp5         [V17    ] (  0,  0   )  struct ( 8) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.TimeSpan\u003E\n-;  V18 tmp6         [V18,T39] (  3,  0   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Net.HttpStatusCode\u003E\n-;  V19 tmp7         [V19,T41] (  2,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V20 tmp8         [V20,T40] (  3,  0   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CConsul.ConsulRequestException\u003E\n-;* V21 tmp9         [V21    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n\u002B;* V16 tmp4         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;  V17 tmp5         [V17,T17] (  2,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;* V18 tmp6         [V18    ] (  0,  0   )  struct ( 8) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.TimeSpan\u003E\n\u002B;  V19 tmp7         [V19,T41] (  3,  0   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Net.HttpStatusCode\u003E\n\u002B;  V20 tmp8         [V20,T43] (  2,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V21 tmp9         [V21,T42] (  3,  0   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CConsul.ConsulRequestException\u003E\n ;* V22 tmp10        [V22    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;* V23 tmp11        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n-;  V24 tmp12        [V24,T17] (  2,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.Net.Http.HttpMethod\u003E\n-;  V25 tmp13        [V25,T18] (  2,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V26 tmp14        [V26,T01] (  8, 16   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Net.Http.HttpRequestMessage\u003E\n-;  V27 tmp15        [V27,T42] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n-;  V28 tmp16        [V28,T03] (  5, 10   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Diagnostics.Stopwatch\u003E\n-;  V29 tmp17        [V29,T19] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Uri\u003E\n-;* V30 tmp18        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CConsul.ConsulClient\u003E\n\u002B;* V23 tmp11        [V23    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n\u002B;* V24 tmp12        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;  V25 tmp13        [V25,T18] (  2,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.Net.Http.HttpMethod\u003E\n\u002B;  V26 tmp14        [V26,T19] (  2,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V27 tmp15        [V27,T01] (  8, 16   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Net.Http.HttpRequestMessage\u003E\n\u002B;  V28 tmp16        [V28,T44] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V29 tmp17        [V29,T03] (  5, 10   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Diagnostics.Stopwatch\u003E\n\u002B;  V30 tmp18        [V30,T20] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Uri\u003E\n ;* V31 tmp19        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CConsul.ConsulClient\u003E\n-;  V32 tmp20        [V32,T29] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Net.Http.HttpResponseMessage]\u003E\n-;  V33 tmp21        [V33,T04] (  5, 10   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Net.Http.HttpClient\u003E\n-;* V34 tmp22        [V34    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V35 tmp23        [V35,T08] (  4,  8   )  struct (24) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u0022dup spill\u0022 \u003CSystem.ValueTuple\u00603[System.Threading.CancellationTokenSource,bool,System.Threading.CancellationTokenSource]\u003E\n-;* V36 tmp24        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;* V37 tmp25        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n-;* V38 tmp26        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;* V39 tmp27        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;* V40 tmp28        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;* V41 tmp29        [V41    ] (  0,  0   )     int  -\u003E  zero-ref    single-def\n-;* V42 tmp30        [V42    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[System.Net.Http.HttpResponseMessage]\u003E\n-;* V43 tmp31        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Net.Http.HttpResponseMessage]\u003E\n-;* V44 tmp32        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.Net.Http.HttpResponseMessage]\u003E\n-;* V45 tmp33        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Net.Http.HttpResponseMessage]\u003E\n-;* V46 tmp34        [V46,T36] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V47 tmp35        [V47,T20] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n-;* V48 tmp36        [V48    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;* V49 tmp37        [V49    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n\u002B;* V32 tmp20        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CConsul.ConsulClient\u003E\n\u002B;  V33 tmp21        [V33,T28] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Net.Http.HttpResponseMessage]\u003E\n\u002B;  V34 tmp22        [V34,T04] (  5, 10   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Net.Http.HttpClient\u003E\n\u002B;* V35 tmp23        [V35    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;  V36 tmp24        [V36,T07] (  4,  8   )  struct (24) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u0022dup spill\u0022 \u003CSystem.ValueTuple\u00603[System.Threading.CancellationTokenSource,bool,System.Threading.CancellationTokenSource]\u003E\n\u002B;* V37 tmp25        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;* V38 tmp26        [V38    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n\u002B;* V39 tmp27        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;* V40 tmp28        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref   \n... diff truncated; middle omitted ...\n\u002B;* V83 tmp71        [V83    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.TimeSpan\u003E\n\u002B;  V84 tmp72        [V84,T15] (  4,  4   )    long  -\u003E  r13         \u0022Inline stloc first use temp\u0022\n\u002B;* V85 tmp73        [V85    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n\u002B;  V86 tmp74        [V86,T12] (  3,  6   )   byref  -\u003E  rbx         single-def \u0022Inlining Arg\u0022\n\u002B;  V87 tmp75        [V87,T29] (  3,  3   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[Consul.QueryResult\u00601[System.IO.Stream]]\u003E\n\u002B;* V88 tmp76        [V88    ] (  0,  0   )     ref  -\u003E  zero-ref    ld-addr-op class-hnd single-def \u0022Inlining Arg\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;  V89 tmp77        [V89,T06] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[Consul.QueryResult\u00601[System.IO.Stream]]\u003E\n\u002B;* V90 tmp78        [V90    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V91 tmp79        [V91    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;* V92 tmp80        [V92    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n\u002B;  V93 tmp81        [V93    ] (  7,  7   )     ref  -\u003E  [rbp-0x38]  do-not-enreg[X] addr-exposed \u0022field V06.m_task (fldOffset=0x0)\u0022 P-DEP\n\u002B;  V94 tmp82        [V94    ] (  5,  5   )     int  -\u003E  [rbp-0x30]  do-not-enreg[X] addr-exposed \u0022field V06.m_options (fldOffset=0x8)\u0022 P-DEP\n\u002B;  V95 tmp83        [V95    ] (  7,  7   )     ref  -\u003E  [rbp-0x48]  do-not-enreg[X] addr-exposed \u0022field V09.m_task (fldOffset=0x0)\u0022 P-DEP\n\u002B;  V96 tmp84        [V96    ] (  5,  5   )     int  -\u003E  [rbp-0x40]  do-not-enreg[X] addr-exposed \u0022field V09.m_options (fldOffset=0x8)\u0022 P-DEP\n\u002B;* V97 tmp85        [V97    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022field V18._ticks (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V98 tmp86        [V98,T30] (  3,  3   )     ref  -\u003E  r13         single-def \u0022field V35._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V99 tmp87        [V99    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V45.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V100 tmp88       [V100    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V45.m_options (fldOffset=0x8)\u0022 P-INDEP\n\u002B;* V101 tmp89       [V101    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V58._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V102 tmp90       [V102    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V59._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V103 tmp91       [V103    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V66.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V104 tmp92       [V104    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V66.m_options (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V105 tmp93       [V105,T36] (  2,  2   )    long  -\u003E  rsi         single-def \u0022field V83._ticks (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V106 tmp94       [V106    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V90._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V107 tmp95       [V107,T25] (  2,  4   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n ;  V108 tmp96       [V108,T26] (  2,  4   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V109 tmp97       [V109,T27] (  2,  4   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V110 cse0        [V110,T13] (  5,  4   )     int  -\u003E  r15         \u0022CSE #06: moderate\u0022\n-;  V111 cse1        [V111,T32] (  3,  3   )     ref  -\u003E  r15         \u0022CSE #04: conservative\u0022\n-;  V112 cse2        [V112,T28] (  2,  2   )     ref  -\u003E  rax         \u0022CSE #05: conservative\u0022\n-;  V113 rat0        [V113,T38] (  5, 10   )  simd16  -\u003E  mm0         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n\u002B;  V109 cse0        [V109,T13] (  5,  4   )     int  -\u003E  r15         \u0022CSE #06: moderate\u0022\n\u002B;  V110 cse1        [V110,T31] (  3,  3   )     ref  -\u003E  r15         \u0022CSE #04: moderate\u0022\n\u002B;  V111 cse2        [V111,T27] (  2,  2   )     ref  -\u003E  rax         \u0022CSE #05: moderate\u0022\n\u002B;  V112 cse3        [V112,T32] (  3,  3   )   byref  -\u003E  rdi         \u0022CSE #01: moderate\u0022\n\u002B;  V113 cse4        [V113,T33] (  3,  3   )   byref  -\u003E  rdi         \u0022CSE #03: moderate\u0022\n\u002B;  V114 cse5        [V114,T34] (  3,  3   )     ref  -\u003E  rsi         \u0022CSE #08: moderate\u0022\n\u002B;  V115 rat0        [V115,T40] (  5, 10   )  simd16  -\u003E  mm0         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n ;\n ; Lcl frame size = 72\n \n@@ -150,17 \u002B152,18 @@ G_M23161_IG02:\n G_M23161_IG03:\n        test     edi, edi\n        jne      G_M23161_IG09\n-\t\t\t\t\t\t;; size=8 bbWeight=1 PerfScore 1.25\n\u002B       lea      rdi, bword ptr [rsi\u002B0x38]\n\u002B\t\t\t\t\t\t;; size=12 bbWeight=1 PerfScore 1.75\n G_M23161_IG04:\n-       vmovdqu  xmm0, xmmword ptr [rsi\u002B0x38]\n\u002B       vmovdqu  xmm0, xmmword ptr [rdi]\n        vmovdqu  xmmword ptr [rbp-0x38], xmm0\n-\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.00\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.00\n G_M23161_IG05:\n-       xor      edi, edi\n-       mov      qword ptr [rsi\u002B0x38], rdi\n-       mov      qword ptr [rsi\u002B0x40], rdi\n\u002B       xor      eax, eax\n\u002B       mov      qword ptr [rdi], rax\n\u002B       mov      qword ptr [rdi\u002B0x08], rax\n        mov      dword ptr [rsi\u002B0x20], -1\n-\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 3.25\n\u002B\t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 3.25\n G_M23161_IG06:\n        mov      rsi, bword ptr [rbp-0x68]\n        mov      rdi, gword ptr [rbp-0x38]\n@@ -178,14 \u002B181,9 @@ G_M23161_IG07:\n        mov      r15, bword ptr [rbp-0x68]\n        lea      rdi, bword ptr [r15\u002B0x18]\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n-       mov      r14, gword ptr [r15\u002B0x18]\n-       mov      rsi, gword ptr [r15\u002B0x10]\n-       mov      rdi, 0xD1FFAB1E      ; Consul.QueryResult\u00601[long]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      rdx, rax\n-       mov      rsi, r14\n\u002B       mov      rsi, gword ptr [r15\u002B0x18]\n        mov      rdi, rbx\n\u002B       xor      rdx, rdx\n        mov      rax, 0xD1FFAB1E      ; code for Consul.GetRequest\u00601[long]:ParseQueryHeaders(System.Net.Http.HttpResponseMessage,Consul.QueryResult\u00601[long]):this\n        call     [rax]Consul.GetRequest\u00601[long]:ParseQueryHeaders(System.Net.Http.HttpResponseMessage,Consul.QueryResult\u00601[long]):this\n        mov      rdi, gword ptr [r15\u002B0x10]\n@@ -210,7 \u002B208,7 @@ G_M23161_IG07:\n        mov      rdi, gword ptr [rbp-0x48]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M23161_IG12\n-\t\t\t\t\t\t;; size=157 bbWeight=1 PerfScore 47.25\n\u002B\t\t\t\t\t\t;; size=127 bbWeight=1 PerfScore 41.50\n G_M23161_IG08:\n        mov      r15, bword ptr [rbp-0x68]\n        mov      dword ptr [r15\u002B0x20], 1\n@@ -234,17 \u002B232,18 @@ G_M23161_IG08:\n G_M23161_IG09:\n        cmp      edi, 1\n        jne      G_M23161_IG16\n-\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 1.25\n\u002B       lea      rdi, bword ptr [rsi\u002B0x48]\n\u002B\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 1.75\n G_M23161_IG10:\n-       vmovdqu  xmm0, xmmword ptr [rsi\u002B0x48]\n\u002B       vmovdqu  xmm0, xmmword ptr [rdi]\n        vmovdqu  xmmword ptr [rbp-0x48], xmm0\n-\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.00\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.00\n G_M23161_IG11:\n-       xor      edi, edi\n-       mov      qword ptr [rsi\u002B0x48], rdi\n-       mov      qword ptr [rsi\u002B0x50], rdi\n\u002B       xor      eax, eax\n\u002B       mov      qword ptr [rdi], rax\n\u002B       mov      qword ptr [rdi\u002B0x08], rax\n        mov      dword ptr [rsi\u002B0x20], -1\n-\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 3.25\n\u002B\t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 3.25\n G_M23161_IG12:\n        mov      rdi, gword ptr [rbp-0x48]\n        mov      eax, dword ptr [rdi\u002B0x34]\n@@ -445,15 \u002B444,15 @@ G_M23161_IG22:\n G_M23161_IG23:\n        mov      gword ptr [rbx\u002B0x18], rsi\n        add      rbx, 40\n-       cmp      gword ptr [rbx], 0\n-       je       SHORT G_M23161_IG24\n        mov      rsi, gword ptr [rbx]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M23161_IG24\n        mov      rdx, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[Consul.QueryResult\u00601[System.IO.Stream]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        jmp      SHORT G_M23161_IG28\n-\t\t\t\t\t\t;; size=44 bbWeight=1 PerfScore 12.00\n\u002B\t\t\t\t\t\t;; size=43 bbWeight=1 PerfScore 10.25\n G_M23161_IG24:\n        test     r15, r15\n        je       SHORT G_M23161_IG25\n@@ -529,5 \u002B528,5 @@ RWD00  \tdq\t3F847AE147AE147Bh\t;         0.01\n RWD08  \tdq\t43E0000000000000h\n \n \n-; Total bytes of code 1458, prolog size 50, PerfScore 315.75, instruction count 330, allocated bytes for code 1458 (MethodHash=b9afa586) for method Consul.GetRequest\u00601\u002B\u003CExecuteStreaming\u003Ed__11[long]:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 1431, prolog size 50, PerfScore 309.25, instruction count 327, allocated bytes for code 1431 (MethodHash=b9afa586) for method Consul.GetRequest\u00601\u002B\u003CExecuteStreaming\u003Ed__11[long]:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1458,"DiffBytes":1431},{"Assembly":"CsvHelper.dasm","Method":"CsvHelper.TypeConversion.IEnumerableConverter:ConvertFromString(System.String,CsvHelper.IReaderRow,CsvHelper.Configuration.MemberMapData):System.Object:this (FullOpts)","Category":"improvement","Description":"660 -\u003E 603 bytes (-57)","ExtraInfo":null,"Diff":"@@ -15,29 \u002B15,29 @@\n ;  V04 loc0         [V04,T00] ( 14, 34   )     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.String]\u003E\n ;  V05 loc1         [V05,T06] (  4, 12.50)     int  -\u003E  r13        \n ;  V06 loc2         [V06    ] (  2,  8   )     ref  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003CSystem.String\u003E\n-;  V07 loc3         [V07,T15] (  3,  5   )     int  -\u003E  r12         single-def\n\u002B;  V07 loc3         [V07,T14] (  3,  5   )     int  -\u003E  r12         single-def\n ;  V08 loc4         [V08,T03] (  6, 17   )     int  -\u003E  r15        \n ;  V09 loc5         [V09    ] (  2,  6   )     ref  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003CSystem.String\u003E\n ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V11 tmp1         [V11,T13] (  3,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.String]\u003E\n\u002B;  V11 tmp1         [V11,T12] (  3,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.String]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022non-inline candidate call\u0022\n-;  V13 tmp3         [V13,T22] (  3,  1.50)     int  -\u003E  r12        \n-;  V14 tmp4         [V14,T01] (  6, 30   )     ref  -\u003E  [rbp-0x48]  class-hnd \u0022Inlining Arg\u0022 \u003CCsvHelper.Configuration.MemberNameCollection\u003E\n-;  V15 tmp5         [V15    ] (  2,  4   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V16 tmp6         [V16,T12] (  3,  8   )     ref  -\u003E  [rbp-0x50]  class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n-;  V17 tmp7         [V17,T07] (  4, 12   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n-;  V18 tmp8         [V18,T10] (  3, 10   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.String[]\u003E\n-;  V19 tmp9         [V19,T08] (  4, 12   )     int  -\u003E  rcx         \u0022Inline stloc first use temp\u0022\n\u002B;  V13 tmp3         [V13,T21] (  3,  1.50)     int  -\u003E  r12        \n\u002B;  V14 tmp4         [V14,T01] (  5, 26   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CCsvHelper.Configuration.MemberNameCollection\u003E\n\u002B;  V15 tmp5         [V15    ] (  1,  4   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V16 tmp6         [V16,T11] (  2,  8   )     ref  -\u003E  [rbp-0x48]  class-hnd spill-single-def \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n\u002B;* V17 tmp7         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n\u002B;  V18 tmp8         [V18,T09] (  3, 10   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.String[]\u003E\n\u002B;  V19 tmp9         [V19,T07] (  4, 12   )     int  -\u003E  rcx         \u0022Inline stloc first use temp\u0022\n ;  V20 tmp10        [V20,T04] (  3, 16   )     ref  -\u003E  rsi         class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V21 tmp11        [V21,T14] (  3,  6   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.String[]\u003E\n-;  V22 tmp12        [V22,T11] (  4,  8   )     int  -\u003E  rcx         \u0022Inline stloc first use temp\u0022\n-;  V23 tmp13        [V23,T09] (  3, 12   )     ref  -\u003E  rsi         class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V24 tmp14        [V24,T20] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V25 tmp15        [V25,T21] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V26 cse0         [V26,T18] (  2,  4.50)    long  -\u003E  r13         hoist \u0022CSE #06: moderate\u0022\n-;  V27 cse1         [V27,T16] (  3,  5   )    long  -\u003E  r12         \u0022CSE #04: moderate\u0022\n-;  V28 cse2         [V28,T17] (  7,  4.50)    long  -\u003E  r13         \u0022CSE #02: moderate\u0022\n-;  V29 cse3         [V29,T19] (  2,  4   )     int  -\u003E  rdi         \u0022CSE #07: moderate\u0022\n\u002B;  V21 tmp11        [V21,T13] (  3,  6   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.String[]\u003E\n\u002B;  V22 tmp12        [V22,T10] (  4,  8   )     int  -\u003E  rcx         \u0022Inline stloc first use temp\u0022\n\u002B;  V23 tmp13        [V23,T08] (  3, 12   )     ref  -\u003E  rsi         class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V24 tmp14        [V24,T19] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V25 tmp15        [V25,T20] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V26 cse0         [V26,T17] (  2,  4.50)    long  -\u003E  r13         hoist \u0022CSE #06: moderate\u0022\n\u002B;  V27 cse1         [V27,T15] (  3,  5   )    long  -\u003E  r12         \u0022CSE #04: moderate\u0022\n\u002B;  V28 cse2         [V28,T16] (  7,  4.50)    long  -\u003E  r13         \u0022CSE #02: moderate\u0022\n\u002B;  V29 cse3         [V29,T18] (  2,  4   )     int  -\u003E  rdi         \u0022CSE #07: moderate\u0022\n ;\n ; Lcl frame size = 40\n \n@@ -175,18 \u002B175,30 @@ G_M36304_IG13:\n        mov      r12, qword ptr [rax\u002B0x40]\n        call     [r12\u002B0x30]CsvHelper.Configuration.MemberMapData:get_Names():CsvHelper.Configuration.MemberNameCollection:this\n        test     rax, rax\n-       je       G_M36304_IG21\n-       jmp      G_M36304_IG19\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 5.38\n\u002B       je       G_M36304_IG18\n\u002B       jmp      SHORT G_M36304_IG16\n\u002B\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 5.38\n G_M36304_IG14:\n\u002B       lea      edi, [rcx\u002B0x01]\n\u002B       mov      dword ptr [r14\u002B0x10], edi\n\u002B       mov      edi, ecx\n\u002B       lea      rdi, bword ptr [rax\u002B8*rdi\u002B0x10]\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B\t\t\t\t\t\t;; size=19 bbWeight=2 PerfScore 7.50\n\u002BG_M36304_IG15:\n\u002B       inc      r13d\n\u002B       mov      rdi, r15\n\u002B       call     [r12\u002B0x30]CsvHelper.Configuration.MemberMapData:get_Names():CsvHelper.Configuration.MemberNameCollection:this\n\u002B       test     rax, rax\n\u002B       je       G_M36304_IG18\n\u002B\t\t\t\t\t\t;; size=20 bbWeight=4 PerfScore 19.00\n\u002BG_M36304_IG16:\n        lea      rdx, [rbp-0x40]\n-       mov      rsi, gword ptr [rbp-0x48]\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.String](System.Collections.Generic.IEnumerable\u00601[System.String],byref):System.String\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      gword ptr [rbp-0x50], rax\n-\t\t\t\t\t\t;; size=34 bbWeight=2 PerfScore 12.00\n-G_M36304_IG15:\n\u002B       mov      gword ptr [rbp-0x48], rax\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; CsvHelper.IReaderRow\n        mov      rdx, 0xD1FFAB1E      ; token handle\n@@ -194,7 \u002B206,7 @@ G_M36304_IG15:\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        lea      rcx, [rbp-0x30]\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x50]\n\u002B       mov      rsi, gword ptr [rbp-0x48]\n        mov      edx, r13d\n        call     rax\n        test     eax, eax\n@@ -204,52 \u002B216,20 @@ G_M36304_IG15:\n        mov      rax, gword ptr [r14\u002B0x08]\n        mov      ecx, dword ptr [r14\u002B0x10]\n        cmp      dword ptr [rax\u002B0x08], ecx\n-       ja       SHORT G_M36304_IG17\n-\t\t\t\t\t\t;; size=80 bbWeight=4 PerfScore 85.00\n-G_M36304_IG16:\n\u002B       ja       G_M36304_IG14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=4 PerfScore 106.00\n\u002BG_M36304_IG17:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n-       jmp      SHORT G_M36304_IG18\n-\t\t\t\t\t\t;; size=17 bbWeight=2 PerfScore 11.00\n-G_M36304_IG17:\n-       lea      edi, [rcx\u002B0x01]\n-       mov      dword ptr [r14\u002B0x10], edi\n-       mov      edi, ecx\n-       lea      rdi, bword ptr [rax\u002B8*rdi\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=19 bbWeight=2 PerfScore 7.50\n-G_M36304_IG18:\n-       inc      r13d\n-       mov      rdi, r15\n-       call     [r12\u002B0x30]CsvHelper.Configuration.MemberMapData:get_Names():CsvHelper.Configuration.MemberNameCollection:this\n-       test     rax, rax\n-       je       SHORT G_M36304_IG21\n-\t\t\t\t\t\t;; size=16 bbWeight=4 PerfScore 19.00\n-G_M36304_IG19:\n-       mov      gword ptr [rbp-0x48], rax\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.String]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       G_M36304_IG14\n-\t\t\t\t\t\t;; size=38 bbWeight=4 PerfScore 24.00\n-G_M36304_IG20:\n-       lea      rsi, [rbp-0x40]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      gword ptr [rbp-0x50], rax\n        jmp      G_M36304_IG15\n-\t\t\t\t\t\t;; size=26 bbWeight=2 PerfScore 21.50\n-G_M36304_IG21:\n\u002B\t\t\t\t\t\t;; size=20 bbWeight=2 PerfScore 11.00\n\u002BG_M36304_IG18:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 660, prolog size 35, PerfScore 302.83, instruction count 167, allocated bytes for code 660 (MethodHash=0ef2722f) for method CsvHelper.TypeConversion.IEnumerableConverter:ConvertFromString(System.String,CsvHelper.IReaderRow,CsvHelper.Configuration.MemberMapData):System.Object:this (FullOpts)\n\u002B; Total bytes of code 603, prolog size 35, PerfScore 266.33, instruction count 153, allocated bytes for code 603 (MethodHash=0ef2722f) for method CsvHelper.TypeConversion.IEnumerableConverter:ConvertFromString(System.String,CsvHelper.IReaderRow,CsvHelper.Configuration.MemberMapData):System.Object:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":660,"DiffBytes":603},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.DistributedLockProviderExtensions:AcquireAllLocks(Medallion.Threading.IDistributedLockProvider,System.Collections.Generic.IReadOnlyList\u00601[System.String],System.Nullable\u00601[System.TimeSpan],System.Threading.CancellationToken):Medallion.Threading.IDistributedSynchronizationHandle (FullOpts)","Category":"same-size","Description":"787 -\u003E 787 bytes (0)","ExtraInfo":null,"Diff":"@@ -120,7 \u002B120,7 @@ G_M49215_IG04:\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n-       add      rax, 70\n\u002B       add      rax, 68\n        mov      rbx, rax\n        movzx    rcx, byte  ptr [rbx\u002B0x10]\n        mov      dword ptr [rbp-0x2C], ecx\n@@ -290,7 \u002B290,7 @@ G_M49215_IG23:\n        sub      rsp, 40\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n G_M49215_IG24:\n-       mov      edi, 70\n\u002B       mov      edi, 68\n        call     CORINFO_HELP_GETDYNAMIC_NONGCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED2\n        mov      rbx, rax\n        mov      eax, dword ptr [rbp-0x2C]","Truncated":true,"BaseBytes":787,"DiffBytes":787},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation:CheckFunction(System.Data.Entity.Core.Metadata.Edm.EdmFunction) (FullOpts)","Category":"improvement","Description":"1,040 -\u003E 880 bytes (-160)","ExtraInfo":null,"Diff":"@@ -13,21 \u002B13,21 @@\n ;  V02 loc1         [V02,T02] (  6, 21   )     int  -\u003E  r15        \n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T04] (  2, 16   )     ref  -\u003E  r14         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.__Canon\u003E\n-;  V05 tmp2         [V05,T26] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentException\u003E\n-;  V06 tmp3         [V06,T27] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentException\u003E\n-;  V07 tmp4         [V07,T28] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentException\u003E\n-;  V08 tmp5         [V08,T17] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V09 tmp6         [V09    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V10 tmp7         [V10,T24] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n-;  V11 tmp8         [V11,T21] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V12 tmp9         [V12,T16] (  4,  7   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V13 tmp10        [V13    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V14 tmp11        [V14,T23] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n-;  V15 tmp12        [V15,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V16 tmp13        [V16,T18] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V17 tmp14        [V17    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V18 tmp15        [V18,T25] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n-;  V19 tmp16        [V19,T22] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V05 tmp2         [V05,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentException\u003E\n\u002B;  V06 tmp3         [V06,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentException\u003E\n\u002B;  V07 tmp4         [V07,T25] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentException\u003E\n\u002B;  V08 tmp5         [V08,T17] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V09 tmp6         [V09    ] (  1,  0.50)   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V10 tmp7         [V10,T21] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n\u002B;* V11 tmp8         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V12 tmp9         [V12,T16] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V13 tmp10        [V13    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V14 tmp11        [V14,T20] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n\u002B;* V15 tmp12        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V16 tmp13        [V16,T18] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V17 tmp14        [V17    ] (  1,  0.50)   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V18 tmp15        [V18,T22] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n ;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.TypeUsage\u003E\n ;  V21 tmp18        [V21,T00] ( 13, 84   )     ref  -\u003E  r13         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Text.StringBuilder\u003E\n ;* V22 tmp19        [V22    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n@@ -46,11 \u002B46,11 @@\n ;  V35 tmp32        [V35,T01] (  7, 44   )     ref  -\u003E  r13         class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Text.StringBuilder\u003E\n ;  V36 tmp33        [V36,T14] (  3, 10   )     int  -\u003E  r12         \u0022Inline stloc first use temp\u0022\n ;  V37 tmp34        [V37,T12] (  3, 10   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003Cchar[]\u003E\n-;  V38 tmp35        [V38,T20] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V38 tmp35        [V38,T19] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V39 tmp36        [V39,T05] (  2, 16   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n-;  V40 tmp37        [V40,T29] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V41 tmp38        [V41,T30] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V42 tmp39        [V42,T31] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V40 tmp37        [V40,T26] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V41 tmp38        [V41,T27] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V42 tmp39        [V42,T28] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;  V43 rat0         [V43,T03] (  4, 16   )   byref  -\u003E  rdi         \u0022fgMakeTemp is creating a new local variable\u0022\n ;\n ; Lcl frame size = 24\n@@ -79,93 \u002B79,40 @@ G_M24441_IG02:\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation:CheckDataSpace(System.Data.Entity.Core.Metadata.Edm.GlobalItem):bool\n        call     [rax]System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation:CheckDataSpace(System.Data.Entity.Core.Metadata.Edm.GlobalItem):bool\n        test     eax, eax\n-       je       G_M24441_IG25\n\u002B       je       G_M24441_IG18\n        test     byte  ptr [rbx\u002B0x7C], 8\n-       je       SHORT G_M24441_IG06\n\u002B       je       SHORT G_M24441_IG04\n \t\t\t\t\t\t;; size=54 bbWeight=1 PerfScore 11.50\n G_M24441_IG03:\n-       mov      r15, gword ptr [rbx\u002B0x48]\n-       test     r15, r15\n-       je       G_M24441_IG26\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M24441_IG04\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M24441_IG05\n-\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 9.00\n-G_M24441_IG04:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x48]\n\u002B       test     rsi, rsi\n\u002B       je       G_M24441_IG19\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r15\n... diff truncated; middle omitted ...\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M24441_IG09:\n        test     rax, rax\n-       je       G_M24441_IG13\n-\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 1.25\n-G_M24441_IG10:\n-       mov      r15, gword ptr [rbx\u002B0x48]\n-       test     r15, r15\n-       je       G_M24441_IG26\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M24441_IG11\n-       lea      rsi, [rbp-0x40]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M24441_IG12\n-\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 9.00\n-G_M24441_IG11:\n\u002B       je       SHORT G_M24441_IG06\n\u002B\t\t\t\t\t\t;; size=44 bbWeight=1 PerfScore 8.50\n\u002BG_M24441_IG05:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x48]\n\u002B       test     rsi, rsi\n\u002B       je       G_M24441_IG19\n        lea      rdx, [rbp-0x40]\n-       mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.FunctionParameter](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter],byref):System.Data.Entity.Core.Metadata.Edm.FunctionParameter\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M24441_IG12:\n        mov      rdi, gword ptr [rax\u002B0x28]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x48]\n@@ -174,18 \u002B121,18 @@ G_M24441_IG12:\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation:CheckDataSpace(System.Data.Entity.Core.Metadata.Edm.GlobalItem):bool\n        call     [rax]System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation:CheckDataSpace(System.Data.Entity.Core.Metadata.Edm.GlobalItem):bool\n        test     eax, eax\n-       je       G_M24441_IG28\n-\t\t\t\t\t\t;; size=37 bbWeight=0.50 PerfScore 6.88\n-G_M24441_IG13:\n\u002B       je       G_M24441_IG21\n\u002B\t\t\t\t\t\t;; size=76 bbWeight=0.50 PerfScore 10.50\n\u002BG_M24441_IG06:\n        mov      rbx, gword ptr [rbx\u002B0x50]\n        xor      r15d, r15d\n        mov      rdi, rbx\n        mov      r11, 0xD1FFAB1E      ; function address\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       jle      G_M24441_IG24\n\u002B       jle      G_M24441_IG17\n \t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.00\n-G_M24441_IG14:\n\u002BG_M24441_IG07:\n        mov      rdi, rbx\n        mov      esi, r15d\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IList\u00601[System.__Canon]:get_Item(int):System.__Canon:this\n@@ -206,16 \u002B153,16 @@ G_M24441_IG14:\n        mov      eax, dword ptr [r13\u002B0x18]\n        lea      edi, [rax\u002B0x13]\n        cmp      dword ptr [r12\u002B0x08], edi\n-       jae      SHORT G_M24441_IG16\n\u002B       jae      SHORT G_M24441_IG09\n \t\t\t\t\t\t;; size=108 bbWeight=4 PerfScore 70.00\n-G_M24441_IG15:\n\u002BG_M24441_IG08:\n        mov      rdi, r13\n        mov      edx, 19\n        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this\n        call     [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this\n-       jmp      SHORT G_M24441_IG17\n\u002B       jmp      SHORT G_M24441_IG10\n \t\t\t\t\t\t;; size=22 bbWeight=2 PerfScore 11.50\n-G_M24441_IG16:\n\u002BG_M24441_IG09:\n        movsxd   rdi, eax\n        lea      rdi, bword ptr [r12\u002B2*rdi\u002B0x10]\n        vmovups  ymm0, ymmword ptr [reloc @RWD00]\n@@ -225,25 \u002B172,25 @@ G_M24441_IG16:\n        add      eax, 19\n        mov      dword ptr [r13\u002B0x18], eax\n \t\t\t\t\t\t;; size=40 bbWeight=2 PerfScore 15.00\n-G_M24441_IG17:\n\u002BG_M24441_IG10:\n        mov      r12d, dword ptr [r13\u002B0x18]\n        mov      rax, gword ptr [r13\u002B0x08]\n        cmp      dword ptr [rax\u002B0x08], r12d\n-       ja       SHORT G_M24441_IG19\n\u002B       ja       SHORT G_M24441_IG12\n \t\t\t\t\t\t;; size=14 bbWeight=4 PerfScore 28.00\n-G_M24441_IG18:\n\u002BG_M24441_IG11:\n        mov      rdi, r13\n        mov      esi, 91\n        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:AppendWithExpansion(char):this\n        call     [rax]System.Text.StringBuilder:AppendWithExpansion(char):this\n-       jmp      SHORT G_M24441_IG20\n\u002B       jmp      SHORT G_M24441_IG13\n \t\t\t\t\t\t;; size=22 bbWeight=2 PerfScore 11.50\n-G_M24441_IG19:\n\u002BG_M24441_IG12:\n        mov      edi, r12d\n        mov      word  ptr [rax\u002B2*rdi\u002B0x10], 91\n        inc      dword ptr [r13\u002B0x18]\n \t\t\t\t\t\t;; size=14 bbWeight=2 PerfScore 8.50\n-G_M24441_IG20:\n\u002BG_M24441_IG13:\n        mov      rdi, r13\n        mov      esi, r15d\n        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:AppendSpanFormattable[int](int):System.Text.StringBuilder:this\n@@ -252,21 \u002B199,21 @@ G_M24441_IG20:\n        mov      r12d, dword ptr [r13\u002B0x18]\n        mov      rax, gword ptr [r13\u002B0x08]\n        cmp      dword ptr [rax\u002B0x08], r12d\n-       ja       SHORT G_M24441_IG22\n\u002B       ja       SHORT G_M24441_IG15\n \t\t\t\t\t\t;; size=35 bbWeight=4 PerfScore 44.00\n-G_M24441_IG21:\n\u002BG_M24441_IG14:\n        mov      rdi, r13\n        mov      esi, 93\n        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:AppendWithExpansion(char):this\n        call     [rax]System.Text.StringBuilder:AppendWithExpansion(char):this\n-       jmp      SHORT G_M24441_IG23\n\u002B       jmp      SHORT G_M24441_IG16\n \t\t\t\t\t\t;; size=22 bbWeight=2 PerfScore 11.50\n-G_M24441_IG22:\n\u002BG_M24441_IG15:\n        mov      edi, r12d\n        mov      word  ptr [rax\u002B2*rdi\u002B0x10], 93\n        inc      dword ptr [r13\u002B0x18]\n \t\t\t\t\t\t;; size=14 bbWeight=2 PerfScore 8.50\n-G_M24441_IG23:\n\u002BG_M24441_IG16:\n        mov      rdi, r13\n        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:ToString():System.String:this\n        call     [rax]System.Text.StringBuilder:ToString():System.String:this\n@@ -279,9 \u002B226,9 @@ G_M24441_IG23:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        cmp      eax, r15d\n-       jg       G_M24441_IG14\n\u002B       jg       G_M24441_IG07\n \t\t\t\t\t\t;; size=61 bbWeight=4 PerfScore 49.00\n-G_M24441_IG24:\n\u002BG_M24441_IG17:\n        vzeroupper \n        add      rsp, 24\n        pop      rbx\n@@ -292,7 \u002B239,7 @@ G_M24441_IG24:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 5.25\n-G_M24441_IG25:\n\u002BG_M24441_IG18:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -307,13 \u002B254,13 @@ G_M24441_IG25:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=67 bbWeight=0 PerfScore 0.00\n-G_M24441_IG26:\n\u002BG_M24441_IG19:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M24441_IG27:\n\u002BG_M24441_IG20:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -328,7 \u002B275,7 @@ G_M24441_IG27:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=67 bbWeight=0 PerfScore 0.00\n-G_M24441_IG28:\n\u002BG_M24441_IG21:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -346,5 \u002B293,5 @@ G_M24441_IG28:\n RWD00  \tdq\t0063006E00750066h, 006E006F00690074h, 007200610050002Eh, 00740065006D0061h\n \n \n-; Total bytes of code 1040, prolog size 35, PerfScore 337.08, instruction count 232, allocated bytes for code 1040 (MethodHash=2607a086) for method System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation:CheckFunction(System.Data.Entity.Core.Metadata.Edm.EdmFunction) (FullOpts)\n\u002B; Total bytes of code 880, prolog size 35, PerfScore 314.08, instruction count 193, allocated bytes for code 880 (MethodHash=2607a086) for method System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation:CheckFunction(System.Data.Entity.Core.Metadata.Edm.EdmFunction) (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1040,"DiffBytes":880},{"Assembly":"MathNet.Numerics.dasm","Method":"MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:SameAs[System.Numerics.Vector\u00601[float]](MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this (FullOpts)","Category":"improvement","Description":"594 -\u003E 120 bytes (-474)","ExtraInfo":null,"Diff":"@@ -1,214 \u002B1,65 @@\n ; Assembly listing for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:SameAs[System.Numerics.Vector\u00601[float]](MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n-; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data\n\u002B; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 12,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]\u003E\n-;  V01 arg1         [V01,T03] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V02 arg2         [V02,T01] ( 11,  6.50)     int  -\u003E  r15         single-def\n-;  V03 arg3         [V03,T02] ( 11,  6.50)     int  -\u003E  r14         single-def\n-;  V04 arg4         [V04,T04] (  3,  2.50)   ubyte  -\u003E  r13         single-def\n-;  V05 loc0         [V05,T08] (  4,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]\u003E\n\u002B;  V01 arg1         [V01,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  4   )     int  -\u003E  r15         single-def\n\u002B;  V03 arg3         [V03,T04] (  4,  4   )     int  -\u003E  r14         single-def\n\u002B;* V04 arg4         [V04    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def\n\u002B;* V05 loc0         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]\u003E\n\u002B;  V07 tmp1         [V07,T00] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cbyte[]\u003E\n-;  V09 tmp3         [V09,T06] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[byte]\u003E\n-;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cbyte[]\u003E\n-;  V11 tmp5         [V11,T11] (  2,  1   )     int  -\u003E  rsi         \u0022Inline return value spill temp\u0022\n-;  V12 tmp6         [V12,T09] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]\u003E\n-;  V13 tmp7         [V13,T10] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]\u003E\n-;  V14 tmp8         [V14,T07] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]\u003E\n-;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cbyte[]\u003E\n-;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022Single return block return value\u0022\n ;\n ; Lcl frame size = 8\n \n G_M25756_IG01:\n-       push     rbp\n        push     r15\n        push     r14\n        push     r13\n-       push     r12\n        push     rbx\n        push     rax\n-       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n        mov      r15d, edx\n        mov      r14d, ecx\n-       mov      r13d, r8d\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.75\n G_M25756_IG02:\n-       mov      r12, gword ptr [rsi\u002B0x08]\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M25756_IG11\n-\t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 7.00\n-G_M25756_IG03:\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[byte]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M25756_IG07\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      SHORT G_M25756_IG05\n\u002B       cmp      byte  ptr [rsi], sil\n        mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        mov      rdi, r13\n        mov      esi, r15d\n        mov      edx, r14d\n        mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]:.ctor(int,int):this\n        call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]:.ctor(int,int):this\n        imul     r15d, r14d\n        movsxd   rsi, r15d\n        mov      rdi, 0xD1FFAB1E      ; byte[]\n        call     CORINFO_HELP_NEWARR_1_VC\n        mov      rsi, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, rbx\n        mov      rsi, r13\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=150 bbWeight=0.50 PerfScore 12.62\n-G_M25756_IG04:\n\u002B\t\t\t\t\t\t;; size=89 bbWeight=1 PerfScore 17.25\n\u002BG_M25756_IG03:\n        add      rsp, 8\n        pop      rbx\n-       pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n-       pop      rbp\n        tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M25756_IG05:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 5.00\n-G_M25756_IG06:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M25756_IG07:\n-       test     r13b, r13b\n-       je       SHORT G_M25756_IG09\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 5.62\n-G_M25756_IG08:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M25756_IG09:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[byte]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]:.ctor(int,int):this\n-       cmp      r15d, r14d\n-       mov      esi, r14d\n-       cmovle   esi, r15d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; byte[]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 7.12\n-G_M25756_IG10:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x10]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:Diagonal(MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[byte]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M25756_IG11:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]:.ctor(int,int):this\n-       mov      esi, r15d\n-       imul     esi, r14d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; byte[]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=89 bbWeight=0.50 PerfScore 7.75\n-G_M25756_IG12:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n\u002B\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 594, prolog size 16, PerfScore 66.75, instruction count 157, allocated bytes for code 594 (MethodHash=11f99b63) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:SameAs[System.Numerics.Vector\u00601[float]](MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this (FullOpts)\n\u002B; Total bytes of code 120, prolog size 8, PerfScore 27.25, instruction count 34, allocated bytes for code 120 (MethodHash=11f99b63) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:SameAs[System.Numerics.Vector\u00601[float]](MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":594,"DiffBytes":120},{"Assembly":"Microsoft.AspNetCore.OData.dasm","Method":"Microsoft.AspNetCore.OData.Routing.Template.FunctionSegmentTemplate:.ctor(Microsoft.OData.UriParser.OperationSegment):this (FullOpts)","Category":"improvement","Description":"497 -\u003E 435 bytes (-62)","ExtraInfo":null,"Diff":"@@ -13,75 \u002B13,54 @@\n ;* V02 loc0         [V02    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMicrosoft.OData.Edm.IEdmOperation\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V04 tmp1         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[Microsoft.OData.UriParser.OperationSegmentParameter]\u003E\n-;  V05 tmp2         [V05,T07] (  4,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n-;  V06 tmp3         [V06,T10] (  2,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V07 tmp4         [V07,T08] (  3,  0   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.OData.ODataException\u003E\n-;  V08 tmp5         [V08,T09] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V09 tmp6         [V09,T02] (  4,  7   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[Microsoft.OData.Edm.IEdmOperation]\u003E\n-;  V10 tmp7         [V10    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V05 tmp2         [V05,T06] (  4,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n\u002B;  V06 tmp3         [V06,T09] (  2,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V07 tmp4         [V07,T07] (  3,  0   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.OData.ODataException\u003E\n\u002B;  V08 tmp5         [V08,T08] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V09 tmp6         [V09,T02] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[Microsoft.OData.Edm.IEdmOperation]\u003E\n\u002B;  V10 tmp7         [V10    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V11 tmp8         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V12 tmp9         [V12,T03] (  5,  4   )     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CMicrosoft.OData.Edm.IEdmOperation\u003E\n-;  V13 tmp10        [V13,T06] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Microsoft.OData.Edm.IEdmOperation]\u003E\n\u002B;  V12 tmp9         [V12,T03] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMicrosoft.OData.Edm.IEdmOperation\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Microsoft.OData.Edm.IEdmOperation]\u003E\n ;* V14 tmp11        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V15 tmp12        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IDictionary\u00602[System.String,System.String]\u003E\n ;  V16 tmp13        [V16,T04] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;  V17 tmp14        [V17,T05] (  2,  4   )     ref  -\u003E  rbx         single-def \u0022argument with side effect\u0022\n-;  V18 tmp15        [V18,T11] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V18 tmp15        [V18,T10] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;\n-; Lcl frame size = 16\n\u002B; Lcl frame size = 8\n \n G_M47005_IG01:\n        push     rbp\n        push     r15\n        push     r14\n-       push     r13\n        push     rbx\n-       sub      rsp, 16\n-       lea      rbp, [rsp\u002B0x30]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x20]\n        xor      eax, eax\n-       mov      qword ptr [rbp-0x28], rax\n\u002B       mov      qword ptr [rbp-0x20], rax\n        mov      r15, rdi\n        mov      rbx, rsi\n-\t\t\t\t\t\t;; size=29 bbWeight=1 PerfScore 7.50\n\u002B\t\t\t\t\t\t;; size=24 bbWeight=1 PerfScore 7.25\n G_M47005_IG02:\n        test     rbx, rbx\n-       je       G_M47005_IG07\n-       mov      r14, gword ptr [rbx\u002B0x28]\n-       test     r14, r14\n-       je       G_M47005_IG08\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[Microsoft.OData.Edm.IEdmOperation]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M47005_IG04\n-\t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 9.50\n-G_M47005_IG03:\n-       lea      rsi, [rbp-0x28]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      r13, rax\n-       jmp      SHORT G_M47005_IG05\n-\t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 5.00\n-G_M47005_IG04:\n-       lea      rdx, [rbp-0x28]\n-       mov      rsi, r14\n\u002B       je       G_M47005_IG04\n\u002B       mov      rsi, gword ptr [rbx\u002B0x28]\n\u002B       test     rsi, rsi\n\u002B       je       G_M47005_IG05\n\u002B       lea      rdx, [rbp-0x20]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[Microsoft.OData.Edm.IEdmOperation](System.Collections.Generic.IEnumerable\u00601[Microsoft.OData.Edm.IEdmOperation],byref):Microsoft.OData.Edm.IEdmOperation\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      r13, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M47005_IG05:\n-       cmp      byte  ptr [rbp-0x28], 0\n-       je       G_M47005_IG09\n-       mov      rdi, r13\n\u002B       mov      r14, rax\n\u002B       cmp      byte  ptr [rbp-0x20], 0\n\u002B       je       G_M47005_IG06\n\u002B       mov      rdi, r14\n        mov      r11, 0xD1FFAB1E      ; code for Microsoft.OData.Edm.IEdmSchemaElement:get_SchemaElementKind():int:this\n        call     [r11]Microsoft.OData.Edm.IEdmSchemaElement:get_SchemaElementKind():int:this\n        cmp      eax, 5\n-       jne      G_M47005_IG10\n-       mov      rsi, r13\n\u002B       jne      G_M47005_IG07\n\u002B       mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.OData.Edm.IEdmFunction\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTINTERFACE\n        call     [rax]CORINFO_HELP_CHKCASTINTERFACE\n@@ -92,7 \u002B71,7 @@ G_M47005_IG05:\n        lea      rdi, bword ptr [r15\u002B0x18]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbx\u002B0x30]\n-       mov      rdi, r13\n\u002B       mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.OData.Edm.ExtensionMethods:FullName(Microsoft.OData.Edm.IEdmSchemaElement):System.String\n        call     [rax]Microsoft.OData.Edm.ExtensionMethods:FullName(Microsoft.OData.Edm.IEdmSchemaElement):System.String\n        mov      rsi, rax\n@@ -103,17 \u002B82,16 @@ G_M47005_IG05:\n        lea      rdi, bword ptr [r15\u002B0x08]\n        call     CORINFO_HELP_ASSIGN_REF\n        nop      \n-\t\t\t\t\t\t;; size=135 bbWeight=1 PerfScore 27.00\n-G_M47005_IG06:\n-       add      rsp, 16\n\u002B\t\t\t\t\t\t;; size=186 bbWeight=1 PerfScore 35.75\n\u002BG_M47005_IG03:\n\u002B       add      rsp, 8\n        pop      rbx\n-       pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n-G_M47005_IG07:\n\u002B\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n\u002BG_M47005_IG04:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -125,18 \u002B103,18 @@ G_M47005_IG07:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M47005_IG08:\n\u002BG_M47005_IG05:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M47005_IG09:\n\u002BG_M47005_IG06:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M47005_IG10:\n\u002BG_M47005_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.AspNetCore.OData.SRResources:get_SegmentShouldBeKind():System.String\n        call     [rax]Microsoft.AspNetCore.OData.SRResources:get_SegmentShouldBeKind():System.String\n        mov      rbx, rax\n@@ -165,5 \u002B143,5 @@ G_M47005_IG10:\n        int3     \n \t\t\t\t\t\t;; size=131 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 497, prolog size 23, PerfScore 55.00, instruction count 114, allocated bytes for code 497 (MethodHash=290b4862) for method Microsoft.AspNetCore.OData.Routing.Template.FunctionSegmentTemplate:.ctor(Microsoft.OData.UriParser.OperationSegment):this (FullOpts)\n\u002B; Total bytes of code 435, prolog size 18, PerfScore 46.25, instruction count 98, allocated bytes for code 435 (MethodHash=290b4862) for method Microsoft.AspNetCore.OData.Routing.Template.FunctionSegmentTemplate:.ctor(Microsoft.OData.UriParser.OperationSegment):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":497,"DiffBytes":435},{"Assembly":"Microsoft.CodeAnalysis.Features.dasm","Method":"Microsoft.CodeAnalysis.ChangeSignature.ParameterConfiguration:Create(System.Collections.Immutable.ImmutableArray\u00601[Microsoft.CodeAnalysis.ChangeSignature.Parameter],bool,int):Microsoft.CodeAnalysis.ChangeSignature.ParameterConfiguration (FullOpts)","Category":"improvement","Description":"1,262 -\u003E 1,213 bytes (-49)","ExtraInfo":null,"Diff":"@@ -11,20 \u002B11,20 @@\n ;* V00 arg0         [V00    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Collections.Immutable.ImmutableArray\u00601[Microsoft.CodeAnalysis.ChangeSignature.Parameter]\u003E\n ;  V01 arg1         [V01,T20] (  3,  3   )   ubyte  -\u003E  rbx         single-def\n ;  V02 arg2         [V02,T21] (  3,  3   )     int  -\u003E  r15         single-def\n-;  V03 loc0         [V03,T14] ( 18, 11.50)     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[Microsoft.CodeAnalysis.ChangeSignature.Parameter]\u003E\n-;  V04 loc1         [V04,T36] (  3,  2.50)     ref  -\u003E  r13         class-hnd \u003CMicrosoft.CodeAnalysis.ChangeSignature.ExistingParameter\u003E\n\u002B;  V03 loc0         [V03,T14] ( 17, 11   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[Microsoft.CodeAnalysis.ChangeSignature.Parameter]\u003E\n\u002B;  V04 loc1         [V04,T35] (  3,  2.50)     ref  -\u003E  r13         class-hnd \u003CMicrosoft.CodeAnalysis.ChangeSignature.ExistingParameter\u003E\n ;  V05 loc2         [V05,T25] (  3,  4   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMicrosoft.CodeAnalysis.PooledObjects.ArrayBuilder\u00601[Microsoft.CodeAnalysis.ChangeSignature.Parameter]\u003E\n ;  V06 loc3         [V06,T26] (  3,  4   )     ref  -\u003E  [rbp-0x58]  class-hnd exact spill-single-def \u003CMicrosoft.CodeAnalysis.PooledObjects.ArrayBuilder\u00601[Microsoft.CodeAnalysis.ChangeSignature.Parameter]\u003E\n-;  V07 loc4         [V07,T37] (  3,  2.50)     ref  -\u003E  [rbp-0x60]  class-hnd \u003CMicrosoft.CodeAnalysis.ChangeSignature.ExistingParameter\u003E\n\u002B;  V07 loc4         [V07,T36] (  3,  2.50)     ref  -\u003E  [rbp-0x60]  class-hnd \u003CMicrosoft.CodeAnalysis.ChangeSignature.ExistingParameter\u003E\n ;  V08 loc5         [V08,T22] (  3,  5   )   ubyte  -\u003E  [rbp-0x2C] \n ;* V09 loc6         [V09    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[Microsoft.CodeAnalysis.ChangeSignature.Parameter]\u003E\n ;* V10 loc7         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMicrosoft.CodeAnalysis.ChangeSignature.Parameter\u003E\n ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V12 tmp1         [V12,T17] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Collections.Immutable.ImmutableArray\u00601[Microsoft.CodeAnalysis.ChangeSignature.Parameter]\u003E\n ;* V13 tmp2         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022ISINST eval op1\u0022\n-;  V14 tmp3         [V14,T38] (  2,  2   )     ref  -\u003E  rax         class-hnd \u0022spilling qmarkNull\u0022 \u003CMicrosoft.CodeAnalysis.ChangeSignature.ExistingParameter\u003E\n\u002B;  V14 tmp3         [V14,T37] (  2,  2   )     ref  -\u003E  rax         class-hnd \u0022spilling qmarkNull\u0022 \u003CMicrosoft.CodeAnalysis.ChangeSignature.ExistingParameter\u003E\n ;* V15 tmp4         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V16 tmp5         [V16,T49] (  2,  1   )     int  -\u003E  rax        \n\u002B;  V16 tmp5         [V16,T48] (  2,  1   )     int  -\u003E  rax        \n ;  V17 tmp6         [V17,T16] (  3,  8   )     ref  -\u003E  rsi        \n ;* V18 tmp7         [V18    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Immutable.ImmutableArray\u00601[Microsoft.CodeAnalysis.ChangeSignature.Parameter]\u003E\n ;  V19 tmp8         [V19,T09] (  7, 14   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.CodeAnalysis.ChangeSignature.ParameterConfiguration\u003E\n@@ -35,9 \u002B35,9 @@\n ;* V24 tmp13        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.__Canon[]\u003E\n ;* V25 tmp14        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.__Canon[]\u003E\n ;* V26 tmp15        [V26    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V27 tmp16        [V27    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V28 tmp17        [V28,T35] (  5,  2.75)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMicrosoft.CodeAnalysis.ChangeSignature.Parameter\u003E\n-;  V29 tmp18        [V29,T30] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Microsoft.CodeAnalysis.ChangeSignature.Parameter]\u003E\n\u002B;  V27 tmp16        [V27    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V28 tmp17        [V28,T34] (  4,  2.75)     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMicrosoft.CodeAnalysis.ChangeSignature.Parameter\u003E\n\u002B;* V29 tmp18        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Microsoft.CodeAnalysis.ChangeSignature.Parameter]\u003E\n ;* V30 tmp19        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMicrosoft.CodeAnalysis.ChangeSignature.ExistingParameter\u003E\n ;  V31 tmp20        [V31,T24] (  4,  4   )     int  -\u003E  rdi         \u0022Inlining Arg\u0022\n ;* V32 tmp21        [V32    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[Microsoft.CodeAnalysis.ChangeSignature.Parameter]\u003E\n@@ -64,29 \u002B64,29 @@\n ;  V53 tmp42        [V53,T03] (  4, 17   )     ref  -\u003E  r14         single-def \u0022field V09._list (fldOffset=0x0)\u0022 P-INDEP\n ;  V54 tmp43        [V54,T07] (  4, 16   )     ref  -\u003E  [rbp-0x88]  spill-single-def \u0022field V09._current (fldOffset=0x8)\u0022 P-INDEP\n ;  V55 tmp44        [V55,T23] (  2,  5   )     int  -\u003E  [rbp-0x44]  spill-single-def \u0022field V09._version (fldOffset=0x10)\u0022 P-INDEP\n-;* V56 tmp45        [V56,T51] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V09._index (fldOffset=0x14)\u0022 P-INDEP\n-;  V57 tmp46        [V57,T43] (  2,  2   )     ref  -\u003E  r14         \u0022field V18.array (fldOffset=0x0)\u0022 P-INDEP\n-;  V58 tmp47        [V58,T44] (  2,  2   )     ref  -\u003E  [rbp-0x90]  spill-single-def \u0022field V20.array (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V56 tmp45        [V56,T50] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V09._index (fldOffset=0x14)\u0022 P-INDEP\n\u002B;  V57 tmp46        [V57,T42] (  2,  2   )     ref  -\u003E  r14         \u0022field V18.array (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V58 tmp47        [V58,T43] (  2,  2   )     ref  -\u003E  [rbp-0x90]  spill-single-def \u0022field V20.array (fldOffset=0x0)\u0022 P-INDEP\n ;* V59 tmp48        [V59    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V32._list (fldOffset=0x0)\u0022 P-INDEP\n ;* V60 tmp49        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V32._current (fldOffset=0x8)\u0022 P-INDEP\n-;  V61 tmp50        [V61,T45] (  2,  2   )     int  -\u003E  rcx         single-def \u0022field V32._version (fldOffset=0x10)\u0022 P-INDEP\n\u002B;  V61 tmp50        [V61,T44] (  2,  2   )     int  -\u003E  rcx         single-def \u0022field V32._version (fldOffset=0x10)\u0022 P-INDEP\n ;* V62 tmp51        [V62    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V32._index (fldOffset=0x14)\u0022 P-INDEP\n-;  V63 tmp52        [V63,T31] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022arr expr\u0022\n-;  V64 tmp53        [V64,T41] (  3,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V65 tmp54        [V65,T32] (  3,  3   )     ref  -\u003E  rsi         single-def \u0022arr expr\u0022\n-;  V66 tmp55        [V66,T34] (  3,  3   )    long  -\u003E  rdi         \u0022index expr\u0022\n-;  V67 tmp56        [V67,T33] (  3,  3   )     ref  -\u003E  rax         single-def \u0022arr expr\u0022\n-;  V68 tmp57        [V68,T42] (  3,  2   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n\u002B;  V63 tmp52        [V63,T30] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022arr expr\u0022\n\u002B;  V64 tmp53        [V64,T40] (  3,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V65 tmp54        [V65,T31] (  3,  3   )     ref  -\u003E  rdx         single-def \u0022arr expr\u0022\n\u002B;  V66 tmp55        [V66,T33] (  3,  3   )    long  -\u003E  rsi         \u0022index expr\u0022\n\u002B;  V67 tmp56        [V67,T32] (  3,  3   )     ref  -\u003E  rax         single-def \u0022arr expr\u0022\n\u002B;  V68 tmp57        [V68,T41] (  3,  2   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n ;  V69 tmp58        [V69,T02] (  3, 24   )     ref  -\u003E  rdx         \u0022arr expr\u0022\n-;* V70 cse0         [V70,T50] (  0,  0   )   byref  -\u003E  zero-ref    \u0022CSE #02: conservative\u0022\n-;  V71 cse1         [V71,T40] (  4,  2   )     int  -\u003E   r8         \u0022CSE #05: conservative\u0022\n-;  V72 cse2         [V72,T46] (  3,  1.50)     int  -\u003E  rsi         \u0022CSE #08: conservative\u0022\n-;  V73 cse3         [V73,T39] (  4,  2   )     ref  -\u003E  rdx         \u0022CSE #06: conservative\u0022\n\u002B;* V70 cse0         [V70,T49] (  0,  0   )   byref  -\u003E  zero-ref    \u0022CSE #02: conservative\u0022\n\u002B;  V71 cse1         [V71,T39] (  4,  2   )     int  -\u003E   r8         \u0022CSE #05: conservative\u0022\n\u002B;  V72 cse2         [V72,T45] (  3,  1.50)     int  -\u003E  rsi         \u0022CSE #08: conservative\u0022\n\u002B;  V73 cse3         [V73,T38] (  4,  2   )     ref  -\u003E  rdx         \u0022CSE #06: conservative\u0022\n ;  V74 rat0         [V74,T01] (  6, 25   )    long  -\u003E  [rbp-0x50]  \u0022Widened IV V56\u0022\n ;  V75 rat1         [V75,T28] (  4,  3.50)     ref  -\u003E  r13         \u0022replacement local\u0022\n-;  V76 rat2         [V76,T47] (  3,  1   )    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n\u002B;  V76 rat2         [V76,T46] (  3,  1   )    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n... diff truncated; middle omitted ...\n        test     eax, eax\n-       jne      SHORT G_M52940_IG23\n\u002B       jne      SHORT G_M52940_IG20\n \t\t\t\t\t\t;; size=49 bbWeight=4 PerfScore 71.00\n-G_M52940_IG20:\n\u002BG_M52940_IG17:\n        mov      eax, dword ptr [rbp-0x2C]\n        test     eax, eax\n-       je       SHORT G_M52940_IG22\n\u002B       je       SHORT G_M52940_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=2 PerfScore 4.50\n-G_M52940_IG21:\n\u002BG_M52940_IG18:\n        mov      dword ptr [rbp-0x2C], eax\n-       jmp      SHORT G_M52940_IG24\n\u002B       jmp      SHORT G_M52940_IG21\n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 3.00\n-G_M52940_IG22:\n\u002BG_M52940_IG19:\n        mov      rsi, r12\n-       jmp      SHORT G_M52940_IG25\n\u002B       jmp      SHORT G_M52940_IG22\n \t\t\t\t\t\t;; size=5 bbWeight=2 PerfScore 4.50\n-G_M52940_IG23:\n\u002BG_M52940_IG20:\n        mov      dword ptr [rbp-0x2C], 1\n \t\t\t\t\t\t;; size=7 bbWeight=2 PerfScore 2.00\n-G_M52940_IG24:\n\u002BG_M52940_IG21:\n        mov      rcx, gword ptr [rbp-0x58]\n        mov      rsi, rcx\n        mov      eax, dword ptr [rbp-0x2C]\n \t\t\t\t\t\t;; size=10 bbWeight=2 PerfScore 4.50\n-G_M52940_IG25:\n\u002BG_M52940_IG22:\n        mov      rdx, gword ptr [rsi\u002B0x08]\n        mov      gword ptr [rbp-0x68], rdx\n        mov      r8d, dword ptr [rdx\u002B0x10]\n@@ -307,41 \u002B289,41 @@ G_M52940_IG25:\n        mov      dword ptr [rbp-0x3C], r8d\n        mov      rsi, gword ptr [rdx\u002B0x08]\n        cmp      dword ptr [rsi\u002B0x08], r8d\n-       jl       SHORT G_M52940_IG27\n\u002B       jl       SHORT G_M52940_IG24\n \t\t\t\t\t\t;; size=29 bbWeight=4 PerfScore 45.00\n-G_M52940_IG26:\n\u002BG_M52940_IG23:\n        mov      dword ptr [rbp-0x2C], eax\n-       jmp      G_M52940_IG37\n\u002B       jmp      G_M52940_IG34\n \t\t\t\t\t\t;; size=8 bbWeight=2 PerfScore 6.00\n-G_M52940_IG27:\n\u002BG_M52940_IG24:\n        mov      rsi, gword ptr [rdx\u002B0x08]\n        mov      r9d, dword ptr [rsi\u002B0x08]\n        add      r9d, r9d\n        cmp      r9d, r8d\n-       jl       SHORT G_M52940_IG28\n-       jmp      SHORT G_M52940_IG29\n\u002B       jl       SHORT G_M52940_IG25\n\u002B       jmp      SHORT G_M52940_IG26\n \t\t\t\t\t\t;; size=18 bbWeight=2 PerfScore 15.00\n-G_M52940_IG28:\n\u002BG_M52940_IG25:\n        mov      r9d, r8d\n \t\t\t\t\t\t;; size=3 bbWeight=2 PerfScore 0.50\n-G_M52940_IG29:\n\u002BG_M52940_IG26:\n        lea      r10, bword ptr [rdx\u002B0x08]\n        mov      bword ptr [rbp-0x70], r10\n        test     r9d, r9d\n-       jl       G_M52940_IG46\n\u002B       jl       G_M52940_IG43\n        mov      r11, gword ptr [r10]\n        mov      gword ptr [rbp-0x78], r11\n        test     r11, r11\n-       je       G_M52940_IG36\n\u002B       je       G_M52940_IG33\n        cmp      dword ptr [r11\u002B0x08], r9d\n        mov      dword ptr [rbp-0x2C], eax\n-       jne      SHORT G_M52940_IG31\n\u002B       jne      SHORT G_M52940_IG28\n \t\t\t\t\t\t;; size=42 bbWeight=2 PerfScore 22.00\n-G_M52940_IG30:\n\u002BG_M52940_IG27:\n        mov      rdx, gword ptr [rbp-0x68]\n-       jmp      G_M52940_IG37\n\u002B       jmp      G_M52940_IG34\n \t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.00\n-G_M52940_IG31:\n\u002BG_M52940_IG28:\n        mov      dword ptr [rbp-0x40], r9d\n        mov      esi, r9d\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.ChangeSignature.Parameter[]\n@@ -353,38 \u002B335,38 @@ G_M52940_IG31:\n        mov      esi, dword ptr [rsi\u002B0x08]\n        mov      edx, dword ptr [rbp-0x40]\n        cmp      edx, esi\n-       jg       SHORT G_M52940_IG32\n-       jmp      SHORT G_M52940_IG33\n\u002B       jg       SHORT G_M52940_IG29\n\u002B       jmp      SHORT G_M52940_IG30\n \t\t\t\t\t\t;; size=50 bbWeight=2 PerfScore 23.50\n-G_M52940_IG32:\n\u002BG_M52940_IG29:\n        mov      edx, esi\n \t\t\t\t\t\t;; size=2 bbWeight=2 PerfScore 0.50\n-G_M52940_IG33:\n\u002BG_M52940_IG30:\n        mov      edx, edx\n        shl      rdx, 3\n        cmp      rdx, 0x4000\n-       jbe      SHORT G_M52940_IG34\n\u002B       jbe      SHORT G_M52940_IG31\n        mov      rsi, rcx\n        mov      rcx, 0xD1FFAB1E      ; code for System.Buffer:BulkMoveWithWriteBarrierBatch(byref,byref,nuint)\n        call     [rcx]System.Buffer:BulkMoveWithWriteBarrierBatch(byref,byref,nuint)\n-       jmp      SHORT G_M52940_IG35\n\u002B       jmp      SHORT G_M52940_IG32\n \t\t\t\t\t\t;; size=32 bbWeight=2 PerfScore 15.00\n-G_M52940_IG34:\n\u002BG_M52940_IG31:\n        mov      rsi, rcx\n        call     System.Buffer:BulkMoveWithWriteBarrierInternal(byref,byref,nuint)\n        mov      rax, 0xD1FFAB1E      ; global ptr\n        cmp      dword ptr [rax], 0\n-       je       SHORT G_M52940_IG35\n\u002B       je       SHORT G_M52940_IG32\n        call     CORINFO_HELP_POLL_GC\n \t\t\t\t\t\t;; size=28 bbWeight=2 PerfScore 11.00\n-G_M52940_IG35:\n\u002BG_M52940_IG32:\n        mov      rdi, bword ptr [rbp-0x70]\n        mov      rsi, gword ptr [rbp-0x80]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdx, gword ptr [rbp-0x68]\n-       jmp      SHORT G_M52940_IG37\n\u002B       jmp      SHORT G_M52940_IG34\n \t\t\t\t\t\t;; size=19 bbWeight=2 PerfScore 12.00\n-G_M52940_IG36:\n\u002BG_M52940_IG33:\n        mov      dword ptr [rbp-0x2C], eax\n        mov      esi, r9d\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.ChangeSignature.Parameter[]\n@@ -394,7 \u002B376,7 @@ G_M52940_IG36:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdx, gword ptr [rbp-0x68]\n \t\t\t\t\t\t;; size=37 bbWeight=2 PerfScore 11.50\n-G_M52940_IG37:\n\u002BG_M52940_IG34:\n        movsxd   rsi, dword ptr [rdx\u002B0x10]\n        mov      rdi, gword ptr [rdx\u002B0x08]\n        mov      rdx, gword ptr [rbp-0x88]\n@@ -405,16 \u002B387,16 @@ G_M52940_IG37:\n        mov      dword ptr [rdi\u002B0x10], r8d\n        mov      edi, dword ptr [rbp-0x44]\n        cmp      edi, dword ptr [r14\u002B0x14]\n-       jne      G_M52940_IG47\n\u002B       jne      G_M52940_IG44\n \t\t\t\t\t\t;; size=53 bbWeight=4 PerfScore 61.00\n-G_M52940_IG38:\n\u002BG_M52940_IG35:\n        mov      rdi, qword ptr [rbp-0x50]\n \t\t\t\t\t\t;; size=4 bbWeight=2 PerfScore 2.00\n-G_M52940_IG39:\n\u002BG_M52940_IG36:\n        cmp      edi, dword ptr [r14\u002B0x10]\n-       jb       G_M52940_IG19\n\u002B       jb       G_M52940_IG16\n \t\t\t\t\t\t;; size=10 bbWeight=8 PerfScore 24.00\n-G_M52940_IG40:\n\u002BG_M52940_IG37:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder\u00601[System.__Canon]:ToImmutableAndFree():System.Collections.Immutable.ImmutableArray\u00601[System.__Canon]:this\n        cmp      dword ptr [rdi], edi\n@@ -443,7 \u002B425,7 @@ G_M52940_IG40:\n        mov      dword ptr [r12\u002B0x18], r15d\n        mov      rax, r12\n \t\t\t\t\t\t;; size=127 bbWeight=1 PerfScore 23.50\n-G_M52940_IG41:\n\u002BG_M52940_IG38:\n        add      rsp, 104\n        pop      rbx\n        pop      r12\n@@ -453,44 \u002B435,44 @@ G_M52940_IG41:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M52940_IG42:\n\u002BG_M52940_IG39:\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder\u00601[Microsoft.CodeAnalysis.ChangeSignature.Parameter]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M52940_IG03\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M52940_IG43:\n\u002BG_M52940_IG40:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M52940_IG44:\n\u002BG_M52940_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rax]CORINFO_HELP_CHKCASTCLASS\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M52940_IG45:\n\u002BG_M52940_IG42:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rax]CORINFO_HELP_CHKCASTCLASS\n        int3     \n \t\t\t\t\t\t;; size=16 bbWeight=0 PerfScore 0.00\n-G_M52940_IG46:\n\u002BG_M52940_IG43:\n        mov      edi, 69\n        mov      esi, 13\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int,int)\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int,int)\n        int3     \n \t\t\t\t\t\t;; size=23 bbWeight=0 PerfScore 0.00\n-G_M52940_IG47:\n\u002BG_M52940_IG44:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M52940_IG48:\n\u002BG_M52940_IG45:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1262, prolog size 28, PerfScore 463.19, instruction count 305, allocated bytes for code 1262 (MethodHash=f46c3133) for method Microsoft.CodeAnalysis.ChangeSignature.ParameterConfiguration:Create(System.Collections.Immutable.ImmutableArray\u00601[Microsoft.CodeAnalysis.ChangeSignature.Parameter],bool,int):Microsoft.CodeAnalysis.ChangeSignature.ParameterConfiguration (FullOpts)\n\u002B; Total bytes of code 1213, prolog size 28, PerfScore 455.44, instruction count 293, allocated bytes for code 1213 (MethodHash=f46c3133) for method Microsoft.CodeAnalysis.ChangeSignature.ParameterConfiguration:Create(System.Collections.Immutable.ImmutableArray\u00601[Microsoft.CodeAnalysis.ChangeSignature.Parameter],bool,int):Microsoft.CodeAnalysis.ChangeSignature.ParameterConfiguration (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1262,"DiffBytes":1213},{"Assembly":"Microsoft.EntityFrameworkCore.dasm","Method":"Microsoft.EntityFrameworkCore.Query.ExpressionPrinter:VisitLambda[System.Nullable\u00601[int]](System.Linq.Expressions.Expression\u00601[System.Nullable\u00601[int]]):System.Linq.Expressions.Expression:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 797 bytes (-52)","ExtraInfo":null,"Diff":"@@ -8,34 \u002B8,34 @@\n ; 0 inlinees with PGO data; 10 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T02] ( 12, 24   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.ExpressionPrinter\u003E\n\u002B;  V00 this         [V00,T01] ( 12, 24   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.ExpressionPrinter\u003E\n ;  V01 arg1         [V01,T05] ( 10, 13   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Linq.Expressions.Expression\u00601[System.Nullable\u00601[int]]\u003E\n ;  V02 loc0         [V02,T00] ( 12, 28   )     ref  -\u003E  [rbp-0x38]  do-not-enreg[M] class-hnd EH-live \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;  V03 loc1         [V03,T04] (  5, 20   )     ref  -\u003E  r13         class-hnd \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n-;  V04 loc2         [V04,T10] (  2,  8   )     ref  -\u003E  rdx         class-hnd exact \u003CSystem.String\u003E\n-;  V05 loc3         [V05,T11] (  2,  8   )     ref  -\u003E  rsi         class-hnd \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n\u002B;  V04 loc2         [V04,T08] (  2,  8   )     ref  -\u003E  rdx         class-hnd exact \u003CSystem.String\u003E\n\u002B;  V05 loc3         [V05,T09] (  2,  8   )     ref  -\u003E  rsi         class-hnd \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V08 tmp2         [V08,T19] (  3,  2   )     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V09 tmp3         [V09,T13] (  3,  5   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V08 tmp2         [V08,T18] (  3,  2   )     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V09 tmp3         [V09,T12] (  3,  5   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V11 tmp5         [V11,T03] (  3, 24   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Linq.Expressions.ParameterExpression,System.String]\u003E\n-;  V12 tmp6         [V12,T01] (  4, 28   )     ref  -\u003E  r12         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V13 tmp7         [V13    ] (  3,  8   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V11 tmp5         [V11,T02] (  3, 24   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Linq.Expressions.ParameterExpression,System.String]\u003E\n\u002B;  V12 tmp6         [V12,T03] (  3, 24   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V13 tmp7         [V13    ] (  2,  8   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V14 tmp8         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V15 tmp9         [V15,T09] (  3,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n-;  V16 tmp10        [V16,T06] (  4, 12   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V15 tmp9         [V15,T10] (  2,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n\u002B;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;* V17 tmp11        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V18 tmp12        [V18,T20] (  3,  2   )     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V19 tmp13        [V19,T14] (  3,  5   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V18 tmp12        [V18,T19] (  3,  2   )     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V19 tmp13        [V19,T13] (  3,  5   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V21 tmp15        [V21,T15] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V22 tmp16        [V22,T17] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V23 tmp17        [V23,T07] (  3, 12   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n-;  V24 tmp18        [V24,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V25 tmp19        [V25,T18] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V26 tmp20        [V26,T12] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V27 cse0         [V27,T08] (  6,  9   )    long  -\u003E  r14         \u0022CSE #02: moderate\u0022\n\u002B;  V21 tmp15        [V21,T14] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V22 tmp16        [V22,T16] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V23 tmp17        [V23,T06] (  3, 12   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n\u002B;  V24 tmp18        [V24,T15] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V25 tmp19        [V25,T17] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V26 tmp20        [V26,T11] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V27 cse0         [V27,T07] (  6,  9   )    long  -\u003E  r14         \u0022CSE #02: moderate\u0022\n ;\n ; Lcl frame size = 24\n \n@@ -84,7 \u002B84,7 @@ G_M15832_IG04:\n G_M15832_IG05:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M15832_IG28\n\u002B       je       G_M15832_IG25\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n G_M15832_IG06:\n        mov      rdi, 0xD1FFAB1E      ; data for System.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]:Empty\n@@ -105,7 \u002B105,7 @@ G_M15832_IG09:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():bool:this\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n-       je       G_M15832_IG17\n\u002B       je       G_M15832_IG14\n \t\t\t\t\t\t;; size=25 bbWeight=8 PerfScore 44.00\n G_M15832_IG10:\n        mov      rdi, gword ptr [rbp-0x38]\n@@ -126,38 \u002B126,19 @@ G_M15832_IG10:\n        call     [rax\u002B0x20]System.Linq.Expressions.ExpressionVisitor:Visit(System.Linq.Expressions.Expression):System.Linq.Expressions.Expression:this\n        mov      rdi, r15\n        call     [r14\u002B0x30]System.Linq.Expressions.LambdaExpression:GetOrMakeParameters():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]:this\n-       mov      r12, rax\n-       test     r12, r12\n-       je       SHORT G_M15832_IG15\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ParameterExpression]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n        je       SHORT G_M15832_IG12\n-\t\t\t\t\t\t;; size=109 bbWeight=4 PerfScore 126.00\n-G_M15832_IG11:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M15832_IG13\n-\t\t\t\t\t\t;; size=19 bbWeight=2 PerfScore 19.50\n-G_M15832_IG12:\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r12\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.Linq.Expressions.ParameterExpression](System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.ParameterExpression],byref):System.Linq.Expressions.ParameterExpression\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=2 PerfScore 8.50\n-G_M15832_IG13:\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       SHORT G_M15832_IG16\n\u002B       je       SHORT G_M15832_IG13\n        cmp      r13, rax\n        je       G_M15832_IG09\n-\t\t\t\t\t\t;; size=15 bbWeight=4 PerfScore 13.00\n-G_M15832_IG14:\n\u002B\t\t\t\t\t\t;; size=120 bbWeight=4 PerfScore 135.00\n\u002BG_M15832_IG11:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      rsi, 0xD1FFAB1E      ; \u0027, \u0027\n        mov      rax, qword ptr [rdi]\n@@ -165,18 \u002B146,18 @@ G_M15832_IG14:\n        call     [rax\u002B0x30]Microsoft.EntityFrameworkCore.Infrastructure.IndentedStringBuilder:Append(System.String):Microsoft.EntityFrameworkCore.Infrastructure.IndentedStringBuilder:this\n        jmp      G_M15832_IG09\n \t\t\t\t\t\t;; size=29 bbWeight=2 PerfScore 22.50\n-G_M15832_IG15:\n\u002BG_M15832_IG12:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M15832_IG16:\n\u002BG_M15832_IG13:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M15832_IG17:\n\u002BG_M15832_IG14:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n@@ -186,16 \u002B167,16 @@ G_M15832_IG17:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        cmp      eax, 1\n-       je       SHORT G_M15832_IG19\n\u002B       je       SHORT G_M15832_IG16\n \t\t\t\t\t\t;; size=46 bbWeight=1 PerfScore 14.00\n-G_M15832_IG18:\n\u002BG_M15832_IG15:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      rsi, 0xD1FFAB1E      ; \u0027)\u0027\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]Microsoft.EntityFrameworkCore.Infrastructure.IndentedStringBuilder:Append(System.String):Microsoft.EntityFrameworkCore.Infrastructure.IndentedStringBuilder:this\n \t\t\t\t\t\t;; size=24 bbWeight=0.50 PerfScore 4.62\n-G_M15832_IG19:\n\u002BG_M15832_IG16:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      rsi, 0xD1FFAB1E      ; \u0027 =\u003E \u0027\n        mov      rax, qword ptr [rdi]\n@@ -213,35 \u002B194,35 @@ G_M15832_IG19:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       jne      SHORT G_M15832_IG22\n\u002B       jne      SHORT G_M15832_IG19\n \t\t\t\t\t\t;; size=72 bbWeight=1 PerfScore 28.50\n-G_M15832_IG20:\n\u002BG_M15832_IG17:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M15832_IG29\n\u002B       je       G_M15832_IG26\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n-G_M15832_IG21:\n\u002BG_M15832_IG18:\n        mov      rdi, 0xD1FFAB1E      ; data for System.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]:Empty\n        mov      r13, gword ptr [rdi]\n-       jmp      SHORT G_M15832_IG23\n\u002B       jmp      SHORT G_M15832_IG20\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M15832_IG22:\n\u002BG_M15832_IG19:\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEnumerable\u00601[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator\u00601[System.__Canon]:this\n        call     [r11]System.Collections.Generic.IEnumerable\u00601[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator\u00601[System.__Canon]:this\n        mov      r13, rax\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 2.75\n-G_M15832_IG23:\n\u002BG_M15832_IG20:\n        mov      gword ptr [rbp-0x38], r13\n \t\t\t\t\t\t;; size=4 bbWeight=1 PerfScore 1.00\n-G_M15832_IG24:\n\u002BG_M15832_IG21:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():bool:this\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n-       je       SHORT G_M15832_IG26\n\u002B       je       SHORT G_M15832_IG23\n \t\t\t\t\t\t;; size=21 bbWeight=8 PerfScore 44.00\n-G_M15832_IG25:\n\u002BG_M15832_IG22:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEnumerator\u00601[System.__Canon]:get_Current():System.__Canon:this\n        call     [r11]System.Collections.Generic.IEnumerator\u00601[System.__Canon]:get_Current():System.__Canon:this\n@@ -250,15 \u002B231,15 @@ G_M15832_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary\u00602[System.__Canon,System.__Canon]:Remove(System.__Canon):bool:this\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.Collections.Generic.Dictionary\u00602[System.__Canon,System.__Canon]:Remove(System.__Canon):bool:this\n-       jmp      SHORT G_M15832_IG24\n\u002B       jmp      SHORT G_M15832_IG21\n \t\t\t\t\t\t;; size=40 bbWeight=4 PerfScore 55.00\n-G_M15832_IG26:\n\u002BG_M15832_IG23:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        mov      rax, r15\n \t\t\t\t\t\t;; size=20 bbWeight=1 PerfScore 4.50\n-G_M15832_IG27:\n\u002BG_M15832_IG24:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -268,52 \u002B249,52 @@ G_M15832_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M15832_IG28:\n\u002BG_M15832_IG25:\n        mov      rdi, 0xD1FFAB1E      ; System.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M15832_IG06\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M15832_IG29:\n\u002BG_M15832_IG26:\n        mov      rdi, 0xD1FFAB1E      ; System.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M15832_IG21\n\u002B       jmp      G_M15832_IG18\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M15832_IG30:\n\u002BG_M15832_IG27:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M15832_IG31:\n\u002BG_M15832_IG28:\n        cmp      gword ptr [rbp-0x38], 0\n-       je       SHORT G_M15832_IG32\n\u002B       je       SHORT G_M15832_IG29\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M15832_IG32:\n\u002BG_M15832_IG29:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M15832_IG33:\n\u002BG_M15832_IG30:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M15832_IG34:\n\u002BG_M15832_IG31:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M15832_IG35:\n\u002BG_M15832_IG32:\n        cmp      gword ptr [rbp-0x38], 0\n-       je       SHORT G_M15832_IG36\n\u002B       je       SHORT G_M15832_IG33\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M15832_IG36:\n\u002BG_M15832_IG33:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M15832_IG37:\n\u002BG_M15832_IG34:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 31, PerfScore 440.25, instruction count 201, allocated bytes for code 849 (MethodHash=0c41c227) for method Microsoft.EntityFrameworkCore.Query.ExpressionPrinter:VisitLambda[System.Nullable\u00601[int]](System.Linq.Expressions.Expression\u00601[System.Nullable\u00601[int]]):System.Linq.Expressions.Expression:this (FullOpts)\n\u002B; Total bytes of code 797, prolog size 31, PerfScore 408.25, instruction count 188, allocated bytes for code 797 (MethodHash=0c41c227) for method Microsoft.EntityFrameworkCore.Query.ExpressionPrinter:VisitLambda[System.Nullable\u00601[int]](System.Linq.Expressions.Expression\u00601[System.Nullable\u00601[int]]):System.Linq.Expressions.Expression:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":797},{"Assembly":"Microsoft.OpenApi.dasm","Method":"Microsoft.OpenApi.OpenApiLink:SerializeInternal(Microsoft.OpenApi.IOpenApiWriter,System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]):this (FullOpts)","Category":"improvement","Description":"1,162 -\u003E 1,122 bytes (-40)","ExtraInfo":null,"Diff":"@@ -13,13 \u002B13,13 @@\n ;  V02 arg2         [V02,T05] (  5,  3.50)     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T12] (  2,  4   )     ref  -\u003E  r12         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.RuntimeExpressionAnyWrapper]\u003E\n-;  V05 tmp2         [V05,T04] (  4,  6   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IDictionary\u00602[System.String,Microsoft.OpenApi.RuntimeExpressionAnyWrapper]\u003E\n\u002B;  V05 tmp2         [V05,T02] (  4,  6   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IDictionary\u00602[System.String,Microsoft.OpenApi.RuntimeExpressionAnyWrapper]\u003E\n ;* V06 tmp3         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V07 tmp4         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V08 tmp5         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V09 tmp6         [V09,T15] (  4,  3   )     ref  -\u003E  r12        \n ;  V10 tmp7         [V10,T13] (  2,  4   )     ref  -\u003E  r12         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.RuntimeExpressionAnyWrapper]\u003E\n-;  V11 tmp8         [V11,T02] (  5,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.OpenApi.RuntimeExpressionAnyWrapper\u003E\n\u002B;  V11 tmp8         [V11,T03] (  4,  6   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.OpenApi.RuntimeExpressionAnyWrapper\u003E\n ;* V12 tmp9         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V13 tmp10        [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V14 tmp11        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -48,25 \u002B48,23 @@\n ;* V37 tmp34        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n ;* V38 tmp35        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V39 tmp36        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.RuntimeExpressionAnyWrapper]\u003E\n-;* V40 tmp37        [V40    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling qmarkNull\u0022\n-;* V41 tmp38        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.RuntimeExpressionAnyWrapper]\u003E\n-;* V42 tmp39        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n-;* V43 tmp40        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;* V44 tmp41        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.RuntimeExpressionAnyWrapper]\u003E\n-;* V45 tmp42        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.RuntimeExpressionAnyWrapper]\u003E\n-;* V46 tmp43        [V46    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V47 tmp44        [V47,T10] (  3,  5   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V48 tmp45        [V48,T03] (  5,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiServer\u003E\n-;  V49 tmp46        [V49,T22] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n-;* V50 tmp47        [V50    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling qmarkNull\u0022\n-;* V51 tmp48        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;* V52 tmp49        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;  V53 tmp50        [V53,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V54 tmp51        [V54,T18] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V55 tmp52        [V55,T19] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V56 tmp53        [V56,T25] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;* V57 tmp54        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022argument with side effect\u0022\n-;  V58 tmp55        [V58,T26] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;* V40 tmp37        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.RuntimeExpressionAnyWrapper]\u003E\n\u002B;* V41 tmp38        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n\u002B;* V42 tmp39        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;* V43 tmp40        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.RuntimeExpressionAnyWrapper]\u003E\n\u002B;* V44 tmp41        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.RuntimeExpressionAnyWrapper]\u003E\n\u002B;* V45 tmp42        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V46 tmp43        [V46,T10] (  3,  5   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V47 tmp44        [V47,T04] (  4,  6   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiServer\u003E\n\u002B;  V48 tmp45        [V48,T22] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n\u002B;* V49 tmp46        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;* V50 tmp47        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;  V51 tmp48        [V51,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V52 tmp49        [V52,T18] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V53 tmp50        [V53,T19] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V54 tmp51        [V54,T25] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;* V55 tmp52        [V55    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022argument with side effect\u0022\n\u002B;  V56 tmp53        [V56,T26] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 8\n \n@@ -203,8 \u002B201,8 @@ G_M49693_IG11:\n \t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 4.00\n G_M49693_IG12:\n        test     r13, r13\n-       je       G_M49693_IG15\n-\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 1.25\n\u002B       je       SHORT G_M49693_IG15\n\u002B\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n G_M49693_IG13:\n        mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.IEnumerable\n@@ -212,9 \u002B210,6 @@ G_M49693_IG13:\n        call     [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE\n        test     rax, rax\n        je       SHORT G_M49693_IG14\n-       mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Nodes.JsonArray\n-       cmp      qword ptr [r13], rdi\n-       je       SHORT G_M49693_IG14\n        mov      rdi, rax\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n        call     [r11]System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n@@ -223,7 \u002B218,7 @@ G_M49693_IG13:\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n        je       SHORT G_M49693_IG15\n-\t\t\t\t\t\t;; size=82 bbWeight=0.50 PerfScore 8.25\n\u002B\t\t\t\t\t\t;; size=66 bbWeight=0.50 PerfScore 6.62\n G_M49693_IG14:\n        mov      rdi, rbx\n        mov      r11, 0xD1FFAB1E      ; code for Microsoft.OpenApi.IOpenApiWriter:WritePropertyName(System.String):this\n@@ -256,8 \u002B251,8 @@ G_M49693_IG16:\n G_M49693_IG17:\n        mov      r13, gword ptr [r15\u002B0x30]\n        test     r13, r13\n-       je       G_M49693_IG20\n-\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.25\n\u002B       je       SHORT G_M49693_IG20\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.25\n G_M49693_IG18:\n        mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.IEnumerable\n@@ -265,9 \u002B260,6 @@ G_M49693_IG18:\n        call     [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE\n        test     rax, rax\n        je       SHORT G_M49693_IG19\n-       mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Nodes.JsonArray\n-       cmp      qword ptr [r13], rdi\n-       je       SHORT G_M49693_IG19\n        mov      rdi, rax\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n        call     [r11]System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n@@ -276,7 \u002B268,7 @@ G_M49693_IG18:\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n        je       SHORT G_M49693_IG20\n-\t\t\t\t\t\t;; size=82 bbWeight=0.50 PerfScore 8.25\n\u002B\t\t\t\t\t\t;; size=66 bbWeight=0.50 PerfScore 6.62\n G_M49693_IG19:\n        test     r14, r14\n        je       G_M49693_IG23\n@@ -343,5 \u002B335,5 @@ G_M49693_IG23:\n        int3     \n \t\t\t\t\t\t;; size=87 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1162, prolog size 16, PerfScore 111.62, instruction count 226, allocated bytes for code 1162 (MethodHash=88023de2) for method Microsoft.OpenApi.OpenApiLink:SerializeInternal(Microsoft.OpenApi.IOpenApiWriter,System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]):this (FullOpts)\n\u002B; Total bytes of code 1122, prolog size 16, PerfScore 108.38, instruction count 220, allocated bytes for code 1122 (MethodHash=88023de2) for method Microsoft.OpenApi.OpenApiLink:SerializeInternal(Microsoft.OpenApi.IOpenApiWriter,System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1162,"DiffBytes":1122},{"Assembly":"MongoDB.Bson.dasm","Method":"MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[long](MongoDB.Bson.BinaryVector\u00601[long]):byte[] (FullOpts)","Category":"improvement","Description":"170 -\u003E 142 bytes (-28)","ExtraInfo":null,"Diff":"@@ -1,125 \u002B1,111 @@\n ; Assembly listing for method MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[long](MongoDB.Bson.BinaryVector\u00601[long]):byte[] (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; fully interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 7 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T00] (  9,  7.75)     ref  -\u003E  rbx         class-hnd single-def \u003CMongoDB.Bson.BinaryVector\u00601[long]\u003E\n-;  V01 loc0         [V01,T04] (  3,  2.50)   ubyte  -\u003E  r15        \n-;* V02 loc1         [V02,T12] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CMongoDB.Bson.BinaryVectorPackedBit\u003E\n\u002B;  V00 arg0         [V00,T00] (  6,  6   )     ref  -\u003E  rbx         class-hnd single-def \u003CMongoDB.Bson.BinaryVector\u00601[long]\u003E\n\u002B;* V01 loc0         [V01,T11] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def\n\u002B;* V02 loc1         [V02    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Bson.BinaryVectorPackedBit\u003E\n ;* V03 loc2         [V03    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u003CSystem.ReadOnlyMemory\u00601[long]\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;* V05 tmp1         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CMongoDB.Bson.BinaryVectorPackedBit\u003E\n-;* V06 tmp2         [V06    ] (  0,  0   )  struct (16) zero-ref    \u0022impAppendStmt\u0022 \u003CSystem.ReadOnlySpan\u00601[long]\u003E\n-;  V07 tmp3         [V07,T01] (  6,  4   )   byref  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n-;  V08 tmp4         [V08,T03] (  6,  4   )     int  -\u003E  rsi         \u0022Inline stloc first use temp\u0022\n-;* V09 tmp5         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Object\u003E\n-;* V10 tmp6         [V10    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ReadOnlySpan\u00601[long]\u003E\n-;* V11 tmp7         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022updating class info\u0022 \u003CSystem.Buffers.MemoryManager\u00601[long]\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CSystem.Span\u00601[long]\u003E\n-;* V13 tmp9         [V13    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Span\u00601[long]\u003E\n-;  V14 tmp10        [V14,T07] (  3,  1.50)    long  -\u003E  rdi         single-def \u0022Inline stloc first use temp\u0022\n-;* V15 tmp11        [V15    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022Inline stloc first use temp\u0022\n-;* V16 tmp12        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022updating class info\u0022 \u003Clong[]\u003E\n-;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022updating class info\u0022 \u003Clong[]\u003E\n-;  V18 tmp14        [V18,T06] (  2,  2   )   byref  -\u003E  rcx         single-def \u0022Inlining Arg\u0022\n-;* V19 tmp15        [V19    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Span\u00601[long]\u003E\n-;  V20 tmp16        [V20,T02] (  6,  4   )     ref  -\u003E  rdi         single-def \u0022field V03._object (fldOffset=0x0)\u0022 P-INDEP\n-;  V21 tmp17        [V21,T09] (  2,  1.50)     int  -\u003E  r14         single-def \u0022field V03._index (fldOffset=0x8)\u0022 P-INDEP\n-;  V22 tmp18        [V22,T05] (  3,  2   )     int  -\u003E  r13         single-def \u0022field V03._length (fldOffset=0xc)\u0022 P-INDEP\n-;* V23 tmp19        [V23    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V06._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V24 tmp20        [V24    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V06._length (fldOffset=0x8)\u0022 P-INDEP\n-;* V25 tmp21        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V10._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V26 tmp22        [V26    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V10._length (fldOffset=0x8)\u0022 P-INDEP\n-;* V27 tmp23        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref    do-not-enreg[] \u0022field V12._reference (fldOffset=0x0)\u0022 P-DEP\n-;* V28 tmp24        [V28    ] (  0,  0   )     int  -\u003E  zero-ref    do-not-enreg[] \u0022field V12._length (fldOffset=0x8)\u0022 P-DEP\n-;  V29 tmp25        [V29,T10] (  2,  1   )   byref  -\u003E  rax         \u0022field V13._reference (fldOffset=0x0)\u0022 P-INDEP\n-;  V30 tmp26        [V30,T11] (  2,  1   )     int  -\u003E  rsi         \u0022field V13._length (fldOffset=0x8)\u0022 P-INDEP\n-;* V31 tmp27        [V31    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V19._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V32 tmp28        [V32    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V19._length (fldOffset=0x8)\u0022 P-INDEP\n-;  V33 cse0         [V33,T08] (  3,  1.50)    long  -\u003E  rax         \u0022CSE #01: moderate\u0022\n\u002B;* V05 tmp1         [V05    ] (  0,  0   )  struct (16) zero-ref    \u0022impAppendStmt\u0022 \u003CSystem.ReadOnlySpan\u00601[long]\u003E\n\u002B;  V06 tmp2         [V06,T01] (  6,  4   )   byref  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n\u002B;  V07 tmp3         [V07,T03] (  6,  4   )     int  -\u003E  rsi         \u0022Inline stloc first use temp\u0022\n\u002B;* V08 tmp4         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Object\u003E\n\u002B;* V09 tmp5         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ReadOnlySpan\u00601[long]\u003E\n\u002B;* V10 tmp6         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022updating class info\u0022 \u003CSystem.Buffers.MemoryManager\u00601[long]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CSystem.Span\u00601[long]\u003E\n\u002B;* V12 tmp8         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Span\u00601[long]\u003E\n\u002B;  V13 tmp9         [V13,T06] (  3,  1.50)    long  -\u003E  rdi         single-def \u0022Inline stloc first use temp\u0022\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022Inline stloc first use temp\u0022\n\u002B;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022updating class info\u0022 \u003Clong[]\u003E\n\u002B;* V16 tmp12        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022updating class info\u0022 \u003Clong[]\u003E\n\u002B;  V17 tmp13        [V17,T05] (  2,  2   )   byref  -\u003E  rcx         single-def \u0022Inlining Arg\u0022\n\u002B;* V18 tmp14        [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Span\u00601[long]\u003E\n\u002B;  V19 tmp15        [V19,T02] (  6,  4   )     ref  -\u003E  rdi         single-def \u0022field V03._object (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V20 tmp16        [V20,T08] (  2,  1.50)     int  -\u003E  r15         single-def \u0022field V03._index (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V21 tmp17        [V21,T04] (  3,  2   )     int  -\u003E  r14         single-def \u0022field V03._length (fldOffset=0xc)\u0022 P-INDEP\n\u002B;* V22 tmp18        [V22    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V05._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V23 tmp19        [V23    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V05._length (fldOffset=0x8)\u0022 P-INDEP\n\u002B;* V24 tmp20        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V09._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V25 tmp21        [V25    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V09._length (fldOffset=0x8)\u0022 P-INDEP\n\u002B;* V26 tmp22        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref    do-not-enreg[] \u0022field V11._reference (fldOffset=0x0)\u0022 P-DEP\n\u002B;* V27 tmp23        [V27    ] (  0,  0   )     int  -\u003E  zero-ref    do-not-enreg[] \u0022field V11._length (fldOffset=0x8)\u0022 P-DEP\n\u002B;  V28 tmp24        [V28,T09] (  2,  1   )   byref  -\u003E  rax         \u0022field V12._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V29 tmp25        [V29,T10] (  2,  1   )     int  -\u003E  rsi         \u0022field V12._length (fldOffset=0x8)\u0022 P-INDEP\n\u002B;* V30 tmp26        [V30    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V18._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V31 tmp27        [V31    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V18._length (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V32 cse0         [V32,T07] (  3,  1.50)    long  -\u003E  rax         \u0022CSE #01: moderate\u0022\n ;\n-; Lcl frame size = 0\n\u002B; Lcl frame size = 8\n \n G_M42102_IG01:\n        push     rbp\n        push     r15\n        push     r14\n-       push     r13\n        push     rbx\n\u002B       push     rax\n        lea      rbp, [rsp\u002B0x20]\n        mov      rbx, rdi\n-\t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 5.75\n\u002B\t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 5.75\n G_M42102_IG02:\n-       xor      r15d, r15d\n-       test     rbx, rbx\n-       je       SHORT G_M42102_IG05\n-\t\t\t\t\t\t;; size=8 bbWeight=1 PerfScore 1.50\n-G_M42102_IG03:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BinaryVectorPackedBit\n-       cmp      qword ptr [rbx], rdi\n-       jne      SHORT G_M42102_IG05\n-\t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M42102_IG04:\n-       movzx    r15, byte  ptr [rbx\u002B0x20]\n-\t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 1.00\n-G_M42102_IG05:\n        mov      rdi, gword ptr [rbx\u002B0x10]\n-       mov      r14d, dword ptr [rbx\u002B0x18]\n-       mov      r13d, dword ptr [rbx\u002B0x1C]\n\u002B       mov      r15d, dword ptr [rbx\u002B0x18]\n\u002B       mov      r14d, dword ptr [rbx\u002B0x1C]\n        xor      rax, rax\n        xor      esi, esi\n        test     rdi, rdi\n-       je       SHORT G_M42102_IG09\n\u002B       je       SHORT G_M42102_IG06\n \t\t\t\t\t\t;; size=21 bbWeight=1 PerfScore 7.75\n-G_M42102_IG06:\n\u002BG_M42102_IG03:\n        mov      rax, qword ptr [rdi]\n        mov      rcx, rax\n        test     dword ptr [rcx], 0xD1FFAB1E\n-       jne      SHORT G_M42102_IG07\n\u002B       jne      SHORT G_M42102_IG04\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x28]System.Buffers.MemoryManager\u00601[long]:GetSpan():System.Span\u00601[long]:this\n        mov      esi, edx\n-       jmp      SHORT G_M42102_IG08\n\u002B       jmp      SHORT G_M42102_IG05\n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 6.25\n-G_M42102_IG07:\n\u002BG_M42102_IG04:\n        lea      rax, bword ptr [rdi\u002B0x10]\n        mov      esi, dword ptr [rdi\u002B0x08]\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.25\n-G_M42102_IG08:\n-       and      r14d, 0xD1FFAB1E\n-       mov      edi, r14d\n-       mov      edx, r13d\n\u002BG_M42102_IG05:\n\u002B       and      r15d, 0xD1FFAB1E\n\u002B       mov      edi, r15d\n\u002B       mov      edx, r14d\n        add      rdx, rdi\n        mov      esi, esi\n        cmp      rdx, rsi\n-       ja       SHORT G_M42102_IG11\n\u002B       ja       SHORT G_M42102_IG08\n        lea      rax, bword ptr [rax\u002B8*rdi]\n-       mov      esi, r13d\n\u002B       mov      esi, r14d\n \t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 1.62\n-G_M42102_IG09:\n\u002BG_M42102_IG06:\n        mov      rdi, rax\n        mov      edx, dword ptr [rbx\u002B0x08]\n-       mov      ecx, r15d\n\u002B       xor      ecx, ecx\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[long](System.ReadOnlySpan\u00601[long],int,byte):byte[]\n-\t\t\t\t\t\t;; size=19 bbWeight=1 PerfScore 2.75\n-G_M42102_IG10:\n\u002B\t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 2.75\n\u002BG_M42102_IG07:\n\u002B       add      rsp, 8\n        pop      rbx\n-       pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        tail.jmp [rax]MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[long](System.ReadOnlySpan\u00601[long],int,byte):byte[]\n-\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 4.50\n-G_M42102_IG11:\n\u002B\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 4.25\n\u002BG_M42102_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 170, prolog size 16, PerfScore 33.19, instruction count 53, allocated bytes for code 170 (MethodHash=f2fe5b89) for method MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[long](MongoDB.Bson.BinaryVector\u00601[long]):byte[] (FullOpts)\n\u002B; Total bytes of code 142, prolog size 15, PerfScore 29.62, instruction count 46, allocated bytes for code 142 (MethodHash=f2fe5b89) for method MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[long](MongoDB.Bson.BinaryVector\u00601[long]):byte[] (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":170,"DiffBytes":142},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.BinaryVectorDriverExtensions:ToQueryVector[byte](MongoDB.Bson.BinaryVector\u00601[byte]):MongoDB.Driver.QueryVector (FullOpts)","Category":"improvement","Description":"698 -\u003E 467 bytes (-231)","ExtraInfo":null,"Diff":"@@ -8,52 \u002B8,48 @@\n ; 0 inlinees with PGO data; 8 single block inlinees; 6 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T00] ( 13,  6.25)     ref  -\u003E  rbx         class-hnd single-def \u003CMongoDB.Bson.BinaryVector\u00601[byte]\u003E\n-;  V01 loc0         [V01,T11] (  2,  1   )     ref  -\u003E  rbx         class-hnd exact \u003CMongoDB.Bson.BinaryVectorFloat32\u003E\n-;  V02 loc1         [V02,T12] (  2,  1   )     ref  -\u003E  rbx         class-hnd exact \u003CMongoDB.Bson.BinaryVectorInt8\u003E\n-;  V03 loc2         [V03,T13] (  2,  1   )     ref  -\u003E  rbx         class-hnd exact \u003CMongoDB.Bson.BinaryVectorPackedBit\u003E\n-;  V04 loc3         [V04,T07] (  4,  2.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.QueryVector\u003E\n\u002B;  V00 arg0         [V00,T00] (  7,  4.50)     ref  -\u003E  rbx         class-hnd single-def \u003CMongoDB.Bson.BinaryVector\u00601[byte]\u003E\n\u002B;* V01 loc0         [V01    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Bson.BinaryVectorFloat32\u003E\n\u002B;* V02 loc1         [V02    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Bson.BinaryVectorInt8\u003E\n\u002B;  V03 loc2         [V03,T04] (  2,  2   )     ref  -\u003E  rbx         class-hnd exact \u003CMongoDB.Bson.BinaryVectorPackedBit\u003E\n\u002B;* V04 loc3         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.QueryVector\u003E\n ;  V05 loc4         [V05    ] ( 15,  0   )  struct (40) [rbp-0x38]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.DefaultInterpolatedStringHandler\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CMongoDB.Bson.BinaryVectorFloat32\u003E\n-;  V08 tmp2         [V08,T01] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.QueryVector\u003E\n-;* V09 tmp3         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CMongoDB.Bson.BinaryVectorInt8\u003E\n-;  V10 tmp4         [V10,T02] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.QueryVector\u003E\n-;* V11 tmp5         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CMongoDB.Bson.BinaryVectorPackedBit\u003E\n-;  V12 tmp6         [V12,T03] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.QueryVector\u003E\n-;* V13 tmp7         [V13    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;* V14 tmp8         [V14    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V15 tmp9         [V15,T17] (  3,  0   )     ref  -\u003E  rax        \n-;  V16 tmp10        [V16,T18] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n-;  V17 tmp11        [V17,T04] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n-;  V18 tmp12        [V18,T05] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n-;  V19 tmp13        [V19,T06] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n-;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.Buffers.SharedArrayPool\u00601[char]\u003E\n-;  V21 tmp15        [V21,T14] (  5,  0   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003Cchar[]\u003E\n-;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003Cchar[]\u003E\n-;* V23 tmp17        [V23    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V24 tmp18        [V24    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;* V25 tmp19        [V25    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;  V26 tmp20        [V26,T16] (  4,  0   )     int  -\u003E  rdi         \u0022Inlining Arg\u0022\n-;* V27 tmp21        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;  V28 tmp22        [V28,T15] (  5,  0   )   byref  -\u003E  r15         single-def \u0022Inlining Arg\u0022\n-;  V29 tmp23        [V29,T22] (  2,  0   )     int  -\u003E  rsi         \u0022Inlining Arg\u0022\n-;* V30 tmp24        [V30,T23] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n-;* V31 tmp25        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;* V32 tmp26        [V32    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;* V33 tmp27        [V33    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V34 tmp28        [V34,T19] (  3,  0   )   byref  -\u003E  rdi         \u0022field V24._reference (fldOffset=0x0)\u0022 P-INDEP\n-;  V35 tmp29        [V35,T20] (  3,  0   )     int  -\u003E  rsi         \u0022field V24._length (fldOffset=0x8)\u0022 P-INDEP\n-;* V36 tmp30        [V36    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022field V25._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V37 tmp31        [V37    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V25._length (fldOffset=0x8)\u0022 P-INDEP\n-;* V38 tmp32        [V38    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V27._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V39 tmp33        [V39    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V27._length (fldOffset=0x8)\u0022 P-INDEP\n-;* V40 tmp34        [V40    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V31._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V41 tmp35        [V41    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V31._length (fldOffset=0x8)\u0022 P-INDEP\n-;  V42 tmp36        [V42,T08] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V43 tmp37        [V43,T09] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V44 tmp38        [V44,T10] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V45 tmp39        [V45,T21] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.QueryVector\u003E\n\u002B;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.QueryVector\u003E\n\u002B;* V09 tmp3         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CMongoDB.Bson.BinaryVectorPackedBit\u003E\n\u002B;  V10 tmp4         [V10,T01] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.QueryVector\u003E\n\u002B;* V11 tmp5         [V11    ] (  0,  0   )   byref  -\u003E  zero-ref   \n\u002B;* V12 tmp6         [V12    ] (  0,  0   )   byref  -\u003E  zero-ref   \n\u002B;  V13 tmp7         [V13,T08] (  3,  0   )     ref  -\u003E  rax        \n\u002B;  V14 tmp8         [V14,T09] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n\u002B;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n\u002B;  V17 tmp11        [V17,T02] (  3,  6   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n\u002B;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.Buffers.SharedArrayPool\u00601[char]\u003E\n\u002B;  V19 tmp13        [V19,T05] (  5,  0   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003Cchar[]\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003Cchar[]\u003E\n\u002B;* V21 tmp15        [V21    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V22 tmp16        [V22    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Span\u00601[char]\u003E\n\u002B;* V23 tmp17        [V23    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Span\u00601[char]\u003E\n\u002B;  V24 tmp18        [V24,T07] (  4,  0   )     int  -\u003E  rdi         \u0022Inlining Arg\u0022\n\u002B;* V25 tmp19        [V25    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Span\u00601[char]\u003E\n\u002B;  V26 tmp20        [V26,T06] (  5,  0   )   byref  -\u003E  r15         single-def \u0022Inlining Arg\u0022\n\u002B;  V27 tmp21        [V27,T13] (  2,  0   )     int  -\u003E  rsi         \u0022Inlining Arg\u0022\n\u002B;* V28 tmp22        [V28,T14] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n\u002B;* V29 tmp23        [V29    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Span\u00601[char]\u003E\n\u002B;* V30 tmp24        [V30    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n\u002B;* V31 tmp25        [V31    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n\u002B;  V32 tmp26        [V32,T10] (  3,  0   )   byref  -\u003E  rdi         \u0022field V22._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V33 tmp27        [V33,T11] (  3,  0   )     int  -\u003E  rsi         \u0022field V22._length (fldOffset=0x8)\u0022 P-INDEP\n\u002B;* V34 tmp28        [V34    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022field V23._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V35 tmp29        [V35    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V23._length (fldOffset=0x8)\u0022 P-INDEP\n\u002B;* V36 tmp30        [V36    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V25._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V37 tmp31        [V37    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V25._length (fldOffset=0x8)\u0022 P-INDEP\n\u002B;* V38 tmp32        [V38    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V29._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V39 tmp33        [V39    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V29._length (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T03] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V41 tmp35        [V41,T12] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 48\n \n@@ -71,74 \u002B67,14 @@ G_M63287_IG01:\n \t\t\t\t\t\t;; size=32 bbWeight=1 PerfScore 6.58\n G_M63287_IG02:\n        test     rbx, rbx\n-       je       SHORT G_M63287_IG05\n\u002B       je       SHORT G_M63287_IG06\n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n G_M63287_IG03:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BinaryVectorFloat32\n-       cmp      qword ptr [rbx], rdi\n-       jne      SHORT G_M63287_IG05\n-\t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M63287_IG04:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonBinaryData\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r15, rax\n-       mov      rdi, rbx\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[float](MongoDB.Bson.BinaryVector\u00601[float]):byte[]\n-       call     [rax]MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[float](MongoDB.Bson.BinaryVector\u00601[float]):byte[]\n-       mov      rsi, rax\n-       mov      rdi, r15\n-       mov      edx, 9\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.BsonBinaryData:.ctor(byte[],int):this\n-       call     [rax]MongoDB.Bson.BsonBinaryData:.ctor(byte[],int):this\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.QueryVector\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      rbx, rax\n-       mov      rdi, rbx\n-       mov      rsi, r15\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.QueryVector:.ctor(MongoDB.Bson.BsonBinaryData):this\n-       call     [rax]MongoDB.Driver.QueryVector:.ctor(MongoDB.Bson.BsonBinaryData):this\n-       jmp      G_M63287_IG11\n-\t\t\t\t\t\t;; size=97 bbWeight=0.50 PerfScore 8.12\n-G_M63287_IG05:\n-       test     rbx, rbx\n-       je       SHORT G_M63287_IG08\n-\t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 0.62\n-G_M63287_IG06:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BinaryVectorInt8\n-       cmp      qword ptr [rbx], rdi\n-       jne      SHORT G_M63287_IG08\n-\t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M63287_IG07:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonBinaryData\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r15, rax\n-       mov      rdi, rbx\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[sbyte](MongoDB.Bson.BinaryVector\u00601[sbyte]):byte[]\n-       call     [rax]MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[sbyte](MongoDB.Bson.BinaryVector\u00601[sbyte]):byte[]\n-       mov      rsi, rax\n-       mov      rdi, r15\n-       mov      edx, 9\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.BsonBinaryData:.ctor(byte[],int):this\n-       call     [rax]MongoDB.Bson.BsonBinaryData:.ctor(byte[],int):this\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.QueryVector\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      rbx, rax\n-       mov      rdi, rbx\n-       mov      rsi, r15\n-       mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.QueryVector:.ctor(MongoDB.Bson.BsonBinaryData):this\n-       call     [rax]MongoDB.Driver.QueryVector:.ctor(MongoDB.Bson.BsonBinaryData):this\n-       jmp      SHORT G_M63287_IG11\n-\t\t\t\t\t\t;; size=94 bbWeight=0.50 PerfScore 8.12\n-G_M63287_IG08:\n-       test     rbx, rbx\n-       je       SHORT G_M63287_IG13\n-\t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 0.62\n-G_M63287_IG09:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BinaryVectorPackedBit\n        cmp      qword ptr [rbx], rdi\n-       jne      SHORT G_M63287_IG13\n-\t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M63287_IG10:\n\u002B       jne      SHORT G_M63287_IG06\n\u002B\t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 1.62\n\u002BG_M63287_IG04:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonBinaryData\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -157,11 \u002B93,9 @@ G_M63287_IG10:\n        mov      rsi, r15\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.QueryVector:.ctor(MongoDB.Bson.BsonBinaryData):this\n        call     [rax]MongoDB.Driver.QueryVector:.ctor(MongoDB.Bson.BsonBinaryData):this\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 7.12\n-G_M63287_IG11:\n        mov      rax, rbx\n-\t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M63287_IG12:\n\u002B\t\t\t\t\t\t;; size=95 bbWeight=1 PerfScore 14.50\n\u002BG_M63287_IG05:\n        vzeroupper \n        add      rsp, 48\n        pop      rbx\n@@ -169,7 \u002B103,7 @@ G_M63287_IG12:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=12 bbWeight=1 PerfScore 3.75\n-G_M63287_IG13:\n\u002BG_M63287_IG06:\n        xor      rdi, rdi\n        mov      gword ptr [rbp-0x38], rdi\n        mov      rdi, 0xD1FFAB1E      ; const ptr\n@@ -179,16 \u002B113,16 @@ G_M63287_IG13:\n        call     [rax]System.Buffers.SharedArrayPool\u00601[char]:Rent(int):char[]:this\n        mov      gword ptr [rbp-0x30], rax\n        test     rax, rax\n-       jne      SHORT G_M63287_IG14\n\u002B       jne      SHORT G_M63287_IG07\n        xor      rdi, rdi\n        xor      esi, esi\n-       jmp      SHORT G_M63287_IG15\n\u002B       jmp      SHORT G_M63287_IG08\n \t\t\t\t\t\t;; size=51 bbWeight=0 PerfScore 0.00\n-G_M63287_IG14:\n\u002BG_M63287_IG07:\n        lea      rdi, bword ptr [rax\u002B0x10]\n        mov      esi, dword ptr [rax\u002B0x08]\n \t\t\t\t\t\t;; size=7 bbWeight=0 PerfScore 0.00\n-G_M63287_IG15:\n\u002BG_M63287_IG08:\n        mov      bword ptr [rbp-0x20], rdi\n        mov      dword ptr [rbp-0x18], esi\n        xor      edi, edi\n@@ -196,19 \u002B130,19 @@ G_M63287_IG15:\n        mov      byte  ptr [rbp-0x24], 0\n        mov      edi, dword ptr [rbp-0x28]\n        cmp      edi, dword ptr [rbp-0x18]\n-       jbe      SHORT G_M63287_IG16\n\u002B       jbe      SHORT G_M63287_IG09\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()\n        int3     \n \t\t\t\t\t\t;; size=37 bbWeight=0 PerfScore 0.00\n-G_M63287_IG16:\n\u002BG_M63287_IG09:\n        mov      rsi, bword ptr [rbp-0x20]\n        mov      eax, edi\n        lea      r15, bword ptr [rsi\u002B2*rax]\n        mov      esi, dword ptr [rbp-0x18]\n        sub      esi, edi\n        cmp      esi, 27\n-       jb       SHORT G_M63287_IG17\n\u002B       jb       SHORT G_M63287_IG10\n        vmovups  ymm0, ymmword ptr [reloc @RWD00]\n        vmovups  ymmword ptr [r15], ymm0\n        vmovups  xmm0, xmmword ptr [reloc @RWD32]\n@@ -218,26 \u002B152,26 @@ G_M63287_IG16:\n        mov      edi, dword ptr [rbp-0x28]\n        add      edi, 27\n        mov      dword ptr [rbp-0x28], edi\n-       jmp      SHORT G_M63287_IG18\n\u002B       jmp      SHORT G_M63287_IG11\n \t\t\t\t\t\t;; size=73 bbWeight=0 PerfScore 0.00\n-G_M63287_IG17:\n\u002BG_M63287_IG10:\n        lea      rdi, [rbp-0x38]\n        mov      rsi, 0xD1FFAB1E      ; \u0027Invalid binary vector type \u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this\n        call     [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this\n \t\t\t\t\t\t;; size=26 bbWeight=0 PerfScore 0.00\n-G_M63287_IG18:\n\u002BG_M63287_IG11:\n        test     rbx, rbx\n-       jne      SHORT G_M63287_IG19\n\u002B       jne      SHORT G_M63287_IG12\n        xor      rax, rax\n-       jmp      SHORT G_M63287_IG20\n\u002B       jmp      SHORT G_M63287_IG13\n \t\t\t\t\t\t;; size=9 bbWeight=0 PerfScore 0.00\n-G_M63287_IG19:\n\u002BG_M63287_IG12:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Object:GetType():System.Type:this\n        call     [rax]System.Object:GetType():System.Type:this\n \t\t\t\t\t\t;; size=15 bbWeight=0 PerfScore 0.00\n-G_M63287_IG20:\n\u002BG_M63287_IG13:\n        lea      rdi, [rbp-0x38]\n        mov      rdx, rax\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[System.Type](System.Type):this\n@@ -261,5 \u002B195,5 @@ RWD00  \tdq\t00610076006E0049h, 002000640069006Ch, 0061006E00690062h, 007600200079\n RWD32  \tdq\t006F007400630065h, 0079007400200072h\n \n \n-; Total bytes of code 698, prolog size 29, PerfScore 38.90, instruction count 160, allocated bytes for code 698 (MethodHash=d4e208c8) for method MongoDB.Driver.BinaryVectorDriverExtensions:ToQueryVector[byte](MongoDB.Bson.BinaryVector\u00601[byte]):MongoDB.Driver.QueryVector (FullOpts)\n\u002B; Total bytes of code 467, prolog size 29, PerfScore 27.71, instruction count 112, allocated bytes for code 467 (MethodHash=d4e208c8) for method MongoDB.Driver.BinaryVectorDriverExtensions:ToQueryVector[byte](MongoDB.Bson.BinaryVector\u00601[byte]):MongoDB.Driver.QueryVector (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":698,"DiffBytes":467},{"Assembly":"Nest.dasm","Method":"Nest.Extensions\u002B\u003CForEachAsync\u003Ed__29\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]]:MoveNext():this (FullOpts)","Category":"improvement","Description":"1,713 -\u003E 1,661 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,7 \u002B10,7 @@\n ;\n ;  V00 this         [V00,T00] ( 53,126   )   byref  -\u003E  [rbp-0xF8]  this EH-live single-def\n ;  V01 loc0         [V01,T11] (  9,  9   )     int  -\u003E  [rbp-0x1C]  do-not-enreg[Z] EH-live\n-;  V02 loc1         [V02,T44] (  2, 16   )  simd32  -\u003E  [rbp-0x50]  do-not-enreg[DAS] defined-via-address \u003CSystem.Numerics.Vector\u00601[float]\u003E\n\u002B;  V02 loc1         [V02,T43] (  2, 16   )  simd32  -\u003E  [rbp-0x50]  do-not-enreg[DAS] defined-via-address \u003CSystem.Numerics.Vector\u00601[float]\u003E\n ;  V03 loc2         [V03,T16] (  7,  7   )     ref  -\u003E  rbx         class-hnd \u003CSystem.Threading.Tasks.Task\u003E\n ;* V04 loc3         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Exception\u003E\n ;  V05 loc4         [V05,T09] (  3, 24   )    long  -\u003E  rsi        \n@@ -31,9 \u002B31,9 @@\n ;* V20 tmp7         [V20    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;* V21 tmp8         [V21    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;  V22 tmp9         [V22,T17] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Threading.Tasks.Task]\u003E\n-;  V23 tmp10        [V23,T46] (  2,  0   )     ref  -\u003E  rsi         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V23 tmp10        [V23,T45] (  2,  0   )     ref  -\u003E  rsi         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n ;  V24 tmp11        [V24,T18] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.SemaphoreSlim\u003E\n-;  V25 tmp12        [V25,T47] (  2,  0   )     ref  -\u003E  rsi         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V25 tmp12        [V25,T46] (  2,  0   )     ref  -\u003E  rsi         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n ;  V26 tmp13        [V26    ] ( 12, 92   )  struct (120) [rbp-0xE8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CNest.Extensions\u002B\u003CProcessAsync\u003Ed__30\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]]\u003E\n ;* V27 tmp14        [V27    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u003E\n ;  V28 tmp15        [V28,T06] (  2, 32   )     ref  -\u003E  rdx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Threading.Tasks.VoidTaskResult]\u003E\n@@ -51,32 \u002B51,32 @@\n ;* V40 tmp27        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Threading.Tasks.Task]\u003E\n ;* V41 tmp28        [V41    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.Threading.Tasks.Task]\u003E\n ;* V42 tmp29        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Threading.Tasks.Task]\u003E\n-;* V43 tmp30        [V43,T41] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V44 tmp31        [V44,T27] (  2,  4   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;* V43 tmp30        [V43,T40] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V44 tmp31        [V44,T26] (  2,  4   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;* V45 tmp32        [V45    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V46 tmp33        [V46    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V47 tmp34        [V47    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V48 tmp35        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Runtime.CompilerServices.IAsyncStateMachineBox\u003E\n ;  V49 tmp36        [V49,T20] (  3,  6   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n-;  V50 tmp37        [V50,T28] (  2,  4   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;  V50 tmp37        [V50,T27] (  2,  4   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;* V51 tmp38        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.AggregateException\u003E\n-;  V52 tmp39        [V52,T36] (  2,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.AggregateException\u003E\n\u002B;  V52 tmp39        [V52,T34] (  2,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.AggregateException\u003E\n ;* V53 tmp40        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.AggregateException\u003E\n-;  V54 tmp41        [V54,T37] (  3,  3   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.AggregateException\u003E\n\u002B;  V54 tmp41        [V54,T35] (  3,  3   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.AggregateException\u003E\n ;* V55 tmp42        [V55    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n ;  V56 tmp43        [V56,T12] (  4,  8   )     ref  -\u003E  r15         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.AggregateException\u003E\n-;  V57 tmp44        [V57,T29] (  2,  4   )     ref  -\u003E  r14         class-hnd \u0022dup spill\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n-;  V58 tmp45        [V58,T25] (  5,  5   )     ref  -\u003E  r14        \n\u002B;  V57 tmp44        [V57,T28] (  2,  4   )     ref  -\u003E  rsi         class-hnd \u0022dup spill\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n\u002B;  V58 tmp45        [V58,T25] (  4,  4   )     ref  -\u003E  rsi        \n ;  V59 tmp46        [V59,T13] (  4,  8   )     ref  -\u003E  r14         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n ;* V60 tmp47        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n ;  V61 tmp48        [V61,T21] (  3,  6   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Exception[]\u003E\n-;  V62 tmp49        [V62    ] (  3,  3   )   ubyte  -\u003E  [rbp-0xF0]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V62 tmp49        [V62    ] (  2,  2   )   ubyte  -\u003E  [rbp-0xF0]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V63 tmp50        [V63    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V64 tmp51        [V64,T35] (  4,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Exception\u003E\n-;  V65 tmp52        [V65,T26] (  4,  4   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Exception]\u003E\n\u002B;  V64 tmp51        [V64,T39] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Exception\u003E\n\u002B;* V65 tmp52        [V65    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Exception]\u003E\n ;* V66 tmp53        [V66    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V67 tmp54        [V67,T14] (  4,  8   )     ref  -\u003E  r15         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Threading.Tasks.Task]\u003E\n-;  V68 tmp55        [V68,T39] (  3,  3   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n\u002B;  V68 tmp55        [V68,T37] (  3,  3   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n ;  V69 tmp56        [V69,T22] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n ;* V70 tmp57        [V70    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V71 tmp58        [V71    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -85,17 \u002B85,17 @@\n ;* V74 tmp61        [V74    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n ;* V75 tmp62        [V75    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u002BConfiguredTaskAwaiter\u003E\n ;* V76 tmp63        [V76    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n-;* V77 tmp64        [V77,T42] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V78 tmp65        [V78,T30] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n\u002B;* V77 tmp64        [V77,T41] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V78 tmp65        [V78,T29] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n ;* V79 tmp66        [V79    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V80 tmp67        [V80    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V81 tmp68        [V81    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n... diff truncated; middle omitted ...\n@@ -410,16 \u002B394,16 @@ G_M40146_IG26:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x58], edi\n        test     byte  ptr [rbp-0x58], 4\n-       jne      SHORT G_M40146_IG27\n\u002B       jne      SHORT G_M40146_IG25\n        mov      rdi, gword ptr [rbp-0x60]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M40146_IG13\n \t\t\t\t\t\t;; size=67 bbWeight=1 PerfScore 16.75\n-G_M40146_IG27:\n\u002BG_M40146_IG25:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x1C], edi\n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M40146_IG28:\n\u002BG_M40146_IG26:\n        mov      rbx, bword ptr [rbp-0xF8]\n        mov      dword ptr [rbx\u002B0x48], edi\n        lea      rdi, bword ptr [rbx\u002B0x58]\n@@ -436,20 \u002B420,20 @@ G_M40146_IG28:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.Threading.Tasks.Task]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      SHORT G_M40146_IG32\n\u002B       jmp      SHORT G_M40146_IG30\n \t\t\t\t\t\t;; size=79 bbWeight=1 PerfScore 16.75\n-G_M40146_IG29:\n\u002BG_M40146_IG27:\n        mov      edi, 20\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M40146_IG30:\n\u002BG_M40146_IG28:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M40146_IG31:\n\u002BG_M40146_IG29:\n        mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.ExceptionServices.ExceptionDispatchInfo:Capture(System.Exception):System.Runtime.ExceptionServices.ExceptionDispatchInfo\n        call     [rax]System.Runtime.ExceptionServices.ExceptionDispatchInfo:Capture(System.Exception):System.Runtime.ExceptionServices.ExceptionDispatchInfo\n@@ -459,22 \u002B443,22 @@ G_M40146_IG31:\n        call     [rax]System.Runtime.ExceptionServices.ExceptionDispatchInfo:Throw():this\n        int3     \n \t\t\t\t\t\t;; size=33 bbWeight=0 PerfScore 0.00\n-G_M40146_IG32:\n-       call     G_M40146_IG40\n-       jmp      G_M40146_IG38\n\u002BG_M40146_IG30:\n\u002B       call     G_M40146_IG38\n\u002B       jmp      G_M40146_IG36\n \t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.00\n-G_M40146_IG33:\n\u002BG_M40146_IG31:\n        cmp      dword ptr [rbp-0x1C], 0\n-       jge      SHORT G_M40146_IG34\n\u002B       jge      SHORT G_M40146_IG32\n        mov      rbx, bword ptr [rbp-0xF8]\n        cmp      gword ptr [rbx\u002B0x38], 0\n-       je       SHORT G_M40146_IG34\n\u002B       je       SHORT G_M40146_IG32\n        mov      rdi, gword ptr [rbx\u002B0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        nop      \n \t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 11.50\n-G_M40146_IG34:\n\u002BG_M40146_IG32:\n        xor      rdi, rdi\n        mov      rbx, bword ptr [rbp-0xF8]\n        mov      gword ptr [rbx\u002B0x38], rdi\n@@ -486,12 \u002B470,12 @@ G_M40146_IG34:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x68], edi\n        test     byte  ptr [rbp-0x68], 4\n-       jne      SHORT G_M40146_IG35\n\u002B       jne      SHORT G_M40146_IG33\n        mov      rdi, gword ptr [rbp-0x70]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M40146_IG07\n \t\t\t\t\t\t;; size=63 bbWeight=1 PerfScore 17.75\n-G_M40146_IG35:\n\u002BG_M40146_IG33:\n        mov      rbx, bword ptr [rbp-0xF8]\n        mov      dword ptr [rbx\u002B0x48], 1\n        lea      rdi, bword ptr [rbx\u002B0x68]\n@@ -507,30 \u002B491,30 @@ G_M40146_IG35:\n        lea      rdi, [rbp-0x70]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u002BConfiguredTaskAwaiter](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u002BConfiguredTaskAwaiter](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      SHORT G_M40146_IG38\n\u002B       jmp      SHORT G_M40146_IG36\n \t\t\t\t\t\t;; size=73 bbWeight=1 PerfScore 16.50\n-G_M40146_IG36:\n\u002BG_M40146_IG34:\n        mov      dword ptr [rbx\u002B0x48], -2\n        xor      rdi, rdi\n        mov      gword ptr [rbx\u002B0x28], rdi\n        lea      rdi, bword ptr [rbx\u002B0x50]\n        cmp      gword ptr [rdi], 0\n-       je       SHORT G_M40146_IG37\n\u002B       je       SHORT G_M40146_IG35\n        mov      rdi, gword ptr [rdi]\n        xor      esi, esi\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.Threading.Tasks.VoidTaskResult],System.Threading.Tasks.VoidTaskResult)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.Threading.Tasks.VoidTaskResult],System.Threading.Tasks.VoidTaskResult)\n-       jmp      SHORT G_M40146_IG38\n\u002B       jmp      SHORT G_M40146_IG36\n \t\t\t\t\t\t;; size=42 bbWeight=1 PerfScore 13.25\n-G_M40146_IG37:\n\u002BG_M40146_IG35:\n        mov      rsi, 0xD1FFAB1E      ; const ptr\n        mov      rsi, gword ptr [rsi]\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 3.25\n-G_M40146_IG38:\n\u002BG_M40146_IG36:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M40146_IG39:\n\u002BG_M40146_IG37:\n        add      rsp, 232\n        pop      rbx\n        pop      r14\n@@ -538,28 \u002B522,28 @@ G_M40146_IG39:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 3.25\n-G_M40146_IG40:\n\u002BG_M40146_IG38:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 1.00\n-G_M40146_IG41:\n\u002BG_M40146_IG39:\n        cmp      dword ptr [rbp-0x1C], 0\n-       jge      SHORT G_M40146_IG42\n\u002B       jge      SHORT G_M40146_IG40\n        mov      rbx, bword ptr [rbp-0xF8]\n        mov      rdi, gword ptr [rbx\u002B0x38]\n        test     rdi, rdi\n-       je       SHORT G_M40146_IG42\n\u002B       je       SHORT G_M40146_IG40\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        nop      \n \t\t\t\t\t\t;; size=36 bbWeight=1 PerfScore 9.75\n-G_M40146_IG42:\n\u002BG_M40146_IG40:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M40146_IG43:\n\u002BG_M40146_IG41:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M40146_IG44:\n\u002BG_M40146_IG42:\n        mov      rsi, rdi\n        mov      rbx, bword ptr [rbp-0xF8]\n        mov      rax, gword ptr [rbx\u002B0x20]\n@@ -568,10 \u002B552,10 @@ G_M40146_IG44:\n        call     CORINFO_HELP_RETHROW\n        int3     \n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M40146_IG45:\n\u002BG_M40146_IG43:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M40146_IG46:\n\u002BG_M40146_IG44:\n        mov      rsi, rdi\n        mov      rbx, bword ptr [rbp-0xF8]\n        mov      dword ptr [rbx\u002B0x48], -2\n@@ -580,12 \u002B564,12 @@ G_M40146_IG46:\n        lea      rdi, bword ptr [rbx\u002B0x50]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder:SetException(System.Exception):this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder:SetException(System.Exception):this\n-       lea      rax, G_M40146_IG38\n\u002B       lea      rax, G_M40146_IG36\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M40146_IG47:\n\u002BG_M40146_IG45:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1713, prolog size 58, PerfScore 857.25, instruction count 378, allocated bytes for code 1713 (MethodHash=d57a632d) for method Nest.Extensions\u002B\u003CForEachAsync\u003Ed__29\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]]:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 1661, prolog size 58, PerfScore 842.50, instruction count 366, allocated bytes for code 1661 (MethodHash=d57a632d) for method Nest.Extensions\u002B\u003CForEachAsync\u003Ed__29\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]]:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1713,"DiffBytes":1661},{"Assembly":"OpenAI.dasm","Method":"OpenAI.Images.ImageClient\u002B\u003CGenerateImageVariationAsync\u003Ed__32:MoveNext():this (FullOpts)","Category":"improvement","Description":"1,039 -\u003E 987 bytes (-52)","ExtraInfo":null,"Diff":"@@ -9,10 \u002B9,10 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T00] ( 32, 29   )   byref  -\u003E  [rbp-0x48]  this EH-live single-def\n-;  V01 loc0         [V01,T03] (  7,  7   )     int  -\u003E  [rbp-0x24]  do-not-enreg[M] EH-live\n\u002B;  V01 loc0         [V01,T02] (  7,  7   )     int  -\u003E  [rbp-0x24]  do-not-enreg[M] EH-live\n ;  V02 loc1         [V02,T07] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003COpenAI.Images.ImageClient\u003E\n ;  V03 loc2         [V03,T08] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]\u003E\n-;  V04 loc3         [V04,T18] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u003E\n\u002B;  V04 loc3         [V04,T17] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u003E\n ;* V05 loc4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u003CSystem.Nullable\u00601[int]\u003E\n ;  V06 loc5         [V06    ] ( 10, 10   )  struct (16) [rbp-0x38]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.ClientModel.ClientResult]\u003E\n ;* V07 loc6         [V07    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[System.ClientModel.ClientResult]\u003E\n@@ -22,13 \u002B22,13 @@\n ;* V11 tmp2         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003COpenAI.Images.GeneratedImage\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003COpenAI.MultiPartFormDataBinaryContent\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V14 tmp5         [V14,T10] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.IO.Stream\u003E\n-;  V15 tmp6         [V15,T11] (  2,  4   )     ref  -\u003E  rdx         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V14 tmp5         [V14,T09] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.IO.Stream\u003E\n\u002B;  V15 tmp6         [V15,T10] (  2,  4   )     ref  -\u003E  rdx         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n ;* V16 tmp7         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003COpenAI.Images.ImageVariationOptions\u003E\n-;  V17 tmp8         [V17,T28] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V17 tmp8         [V17,T27] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n ;* V18 tmp9         [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.IO.Stream\u003E\n-;  V19 tmp10        [V19,T27] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V20 tmp11        [V20,T04] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult]\u003E\n\u002B;  V19 tmp10        [V19,T26] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V20 tmp11        [V20,T03] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult]\u003E\n ;* V21 tmp12        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V22 tmp13        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V23 tmp14        [V23    ] (  0,  0   )     int  -\u003E  zero-ref    single-def\n@@ -36,22 \u002B36,22 @@\n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult]\u003E\n ;* V26 tmp17        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.ClientModel.ClientResult]\u003E\n ;* V27 tmp18        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult]\u003E\n-;* V28 tmp19        [V28,T26] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V29 tmp20        [V29,T12] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;* V28 tmp19        [V28,T25] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V29 tmp20        [V29,T11] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;* V30 tmp21        [V30    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V31 tmp22        [V31    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V32 tmp23        [V32    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V33 tmp24        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Runtime.CompilerServices.IAsyncStateMachineBox\u003E\n-;  V34 tmp25        [V34,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n-;  V35 tmp26        [V35,T13] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n-;  V36 tmp27        [V36,T01] (  4,  8   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Images.GeneratedImageCollection\u003E\n-;  V37 tmp28        [V37    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V38 tmp29        [V38,T19] (  3,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003COpenAI.Images.GeneratedImage\u003E\n-;  V39 tmp30        [V39,T09] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[OpenAI.Images.GeneratedImage]\u003E\n\u002B;  V34 tmp25        [V34,T04] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;  V35 tmp26        [V35,T12] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;  V36 tmp27        [V36,T05] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Images.GeneratedImageCollection\u003E\n\u002B;  V37 tmp28        [V37    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V38 tmp29        [V38,T24] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003COpenAI.Images.GeneratedImage\u003E\n\u002B;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[OpenAI.Images.GeneratedImage]\u003E\n ;  V40 tmp31        [V40,T06] (  3,  6   )   byref  -\u003E  r15         single-def \u0022Inlining Arg\u0022\n-;  V41 tmp32        [V41,T20] (  3,  3   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]\u003E\n\u002B;  V41 tmp32        [V41,T18] (  3,  3   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]\u003E\n ;* V42 tmp33        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    ld-addr-op class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]\u003E\n-;  V43 tmp34        [V43,T02] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]\u003E\n\u002B;  V43 tmp34        [V43,T01] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]\u003E\n ;* V44 tmp35        [V44    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]\u003E\n ;* V46 tmp37        [V46    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n@@ -62,15 \u002B62,15 @@\n ;* V51 tmp42        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V26.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;* V52 tmp43        [V52    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V26.m_options (fldOffset=0x8)\u0022 P-INDEP\n ;* V53 tmp44        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V44._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V54 tmp45        [V54,T14] (  2,  4   )     ref  -\u003E  r14         single-def \u0022argument with side effect\u0022\n-;  V55 tmp46        [V55,T15] (  2,  4   )     ref  -\u003E  rcx         single-def \u0022argument with side effect\u0022\n-;  V56 tmp47        [V56,T16] (  2,  4   )     ref  -\u003E  r15         single-def \u0022argument with side effect\u0022\n... diff truncated; middle omitted ...\n        mov      rax, 0xD1FFAB1E      ; code for System.ClientModel.ClientResult:FromValue[System.__Canon](System.__Canon,System.ClientModel.Primitives.PipelineResponse):System.ClientModel.ClientResult\u00601[System.__Canon]\n        call     [rax]System.ClientModel.ClientResult:FromValue[System.__Canon](System.__Canon,System.ClientModel.Primitives.PipelineResponse):System.ClientModel.ClientResult\u00601[System.__Canon]\n        mov      rbx, rax\n-       jmp      G_M2794_IG16\n-\t\t\t\t\t\t;; size=37 bbWeight=1 PerfScore 8.00\n-G_M2794_IG12:\n\u002B       jmp      G_M2794_IG14\n\u002B\t\t\t\t\t\t;; size=98 bbWeight=1 PerfScore 20.00\n\u002BG_M2794_IG10:\n        mov      rax, gword ptr [rdi\u002B0x20]\n        mov      r15, rax\n        mov      rdi, rax\n@@ -224,16 \u002B207,16 @@ G_M2794_IG12:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x30], edi\n        test     byte  ptr [rbp-0x30], 4\n-       jne      SHORT G_M2794_IG13\n\u002B       jne      SHORT G_M2794_IG11\n        mov      rdi, gword ptr [rbp-0x38]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M2794_IG08\n \t\t\t\t\t\t;; size=103 bbWeight=1 PerfScore 32.50\n-G_M2794_IG13:\n\u002BG_M2794_IG11:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x24], edi\n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M2794_IG14:\n\u002BG_M2794_IG12:\n        mov      r13, bword ptr [rbp-0x48]\n        mov      dword ptr [r13\u002B0x28], edi\n        lea      rdi, bword ptr [r13\u002B0x40]\n@@ -251,30 \u002B234,30 @@ G_M2794_IG14:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.ClientModel.ClientResult]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      SHORT G_M2794_IG17\n\u002B       jmp      SHORT G_M2794_IG15\n \t\t\t\t\t\t;; size=88 bbWeight=1 PerfScore 17.00\n-G_M2794_IG15:\n\u002BG_M2794_IG13:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M2794_IG16:\n\u002BG_M2794_IG14:\n        cmp      dword ptr [rbp-0x24], 0\n-       jge      SHORT G_M2794_IG19\n\u002B       jge      SHORT G_M2794_IG17\n        mov      r15, bword ptr [rbp-0x48]\n        mov      rdi, gword ptr [r15\u002B0x20]\n        test     rdi, rdi\n-       je       SHORT G_M2794_IG19\n\u002B       je       SHORT G_M2794_IG17\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n-       jmp      SHORT G_M2794_IG19\n\u002B       jmp      SHORT G_M2794_IG17\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 11.50\n-G_M2794_IG17:\n-       call     G_M2794_IG27\n-       jmp      G_M2794_IG24\n\u002BG_M2794_IG15:\n\u002B       call     G_M2794_IG25\n\u002B       jmp      G_M2794_IG22\n \t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.00\n-G_M2794_IG18:\n\u002BG_M2794_IG16:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -286,7 \u002B269,7 @@ G_M2794_IG18:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M2794_IG19:\n\u002BG_M2794_IG17:\n        mov      r15, bword ptr [rbp-0x48]\n        mov      dword ptr [r15\u002B0x28], -2\n        xor      rsi, rsi\n@@ -294,16 \u002B277,16 @@ G_M2794_IG19:\n        add      r15, 48\n        mov      rsi, gword ptr [r15]\n        test     rsi, rsi\n-       je       SHORT G_M2794_IG20\n\u002B       je       SHORT G_M2794_IG18\n        mov      rdx, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n-       jmp      SHORT G_M2794_IG24\n\u002B       jmp      SHORT G_M2794_IG22\n \t\t\t\t\t\t;; size=57 bbWeight=1 PerfScore 12.50\n-G_M2794_IG20:\n\u002BG_M2794_IG18:\n        test     rbx, rbx\n-       je       SHORT G_M2794_IG21\n\u002B       je       SHORT G_M2794_IG19\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -311,26 \u002B294,26 @@ G_M2794_IG20:\n        lea      rdi, bword ptr [r14\u002B0x38]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      SHORT G_M2794_IG23\n\u002B       jmp      SHORT G_M2794_IG21\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 7.50\n-G_M2794_IG21:\n\u002BG_M2794_IG19:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       SHORT G_M2794_IG26\n\u002B       je       SHORT G_M2794_IG24\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 3.25\n-G_M2794_IG22:\n\u002BG_M2794_IG20:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]:s_defaultResultTask\n        mov      r14, gword ptr [rdi]\n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 2.25\n-G_M2794_IG23:\n\u002BG_M2794_IG21:\n        mov      rdi, r15\n        mov      rsi, r14\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 1.50\n-G_M2794_IG24:\n\u002BG_M2794_IG22:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M2794_IG25:\n\u002BG_M2794_IG23:\n        add      rsp, 48\n        pop      rbx\n        pop      r13\n@@ -339,36 \u002B322,36 @@ G_M2794_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n-G_M2794_IG26:\n\u002BG_M2794_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      SHORT G_M2794_IG22\n\u002B       jmp      SHORT G_M2794_IG20\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M2794_IG27:\n\u002BG_M2794_IG25:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 1.00\n-G_M2794_IG28:\n\u002BG_M2794_IG26:\n        cmp      dword ptr [rbp-0x24], 0\n-       jge      SHORT G_M2794_IG29\n\u002B       jge      SHORT G_M2794_IG27\n        mov      r15, bword ptr [rbp-0x48]\n        mov      rdi, gword ptr [r15\u002B0x20]\n        test     rdi, rdi\n-       je       SHORT G_M2794_IG29\n\u002B       je       SHORT G_M2794_IG27\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=32 bbWeight=1 PerfScore 9.50\n-G_M2794_IG29:\n\u002BG_M2794_IG27:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M2794_IG30:\n\u002BG_M2794_IG28:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M2794_IG31:\n\u002BG_M2794_IG29:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M2794_IG32:\n\u002BG_M2794_IG30:\n        mov      rdx, rdi\n        mov      r15, bword ptr [rbp-0x48]\n        mov      dword ptr [r15\u002B0x28], -2\n@@ -378,12 \u002B361,12 @@ G_M2794_IG32:\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n-       lea      rax, G_M2794_IG24\n\u002B       lea      rax, G_M2794_IG22\n \t\t\t\t\t\t;; size=54 bbWeight=0 PerfScore 0.00\n-G_M2794_IG33:\n\u002BG_M2794_IG31:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1039, prolog size 37, PerfScore 219.58, instruction count 244, allocated bytes for code 1039 (MethodHash=1ba1f515) for method OpenAI.Images.ImageClient\u002B\u003CGenerateImageVariationAsync\u003Ed__32:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 987, prolog size 37, PerfScore 204.58, instruction count 231, allocated bytes for code 987 (MethodHash=1ba1f515) for method OpenAI.Images.ImageClient\u002B\u003CGenerateImageVariationAsync\u003Ed__32:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1039,"DiffBytes":987},{"Assembly":"Pomelo.EntityFrameworkCore.MySql.dasm","Method":"Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitLike(Microsoft.EntityFrameworkCore.Query.SqlExpressions.LikeExpression):System.Linq.Expressions.Expression:this (FullOpts)","Category":"improvement","Description":"521 -\u003E 326 bytes (-195)","ExtraInfo":null,"Diff":"@@ -8,31 \u002B8,25 @@\n ; 0 inlinees with PGO data; 0 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 11, 10.50)     ref  -\u003E  rbx         this class-hnd single-def \u003CPomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor\u003E\n\u002B;  V00 this         [V00,T00] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CPomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor\u003E\n ;  V01 arg1         [V01,T01] (  9,  9   )     ref  -\u003E  r15         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.LikeExpression\u003E\n-;  V02 loc0         [V02,T20] (  2,  2   )   ubyte  -\u003E  r14         single-def\n-;  V03 loc1         [V03,T13] (  2,  2   )     ref  -\u003E  [rbp-0x38]  class-hnd spill-single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\u003E\n-;  V04 loc2         [V04,T14] (  2,  2   )     ref  -\u003E  r13         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\u003E\n-;  V05 loc3         [V05,T15] (  2,  2   )     ref  -\u003E  rcx         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\u003E\n\u002B;  V02 loc0         [V02,T15] (  2,  2   )   ubyte  -\u003E  r14         single-def\n\u002B;  V03 loc1         [V03,T12] (  2,  2   )     ref  -\u003E  [rbp-0x38]  class-hnd spill-single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\u003E\n\u002B;  V04 loc2         [V04,T13] (  2,  2   )     ref  -\u003E  r13         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\u003E\n\u002B;  V05 loc3         [V05,T14] (  2,  2   )     ref  -\u003E  rcx         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V09 tmp3         [V09,T02] (  8,  9   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.LikeExpression\u003E\n-;  V10 tmp4         [V10,T10] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Boolean\u003E\n-;  V11 tmp5         [V11,T16] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u0022impImportAndPushBox\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.ISqlExpressionFactory\u003E\n-;  V12 tmp6         [V12,T17] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022impImportAndPushBox\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.ISqlExpressionFactory\u003E\n-;  V13 tmp7         [V13,T04] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V14 tmp8         [V14,T05] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V15 tmp9         [V15,T06] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V16 tmp10        [V16,T07] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V17 tmp11        [V17,T08] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V18 tmp12        [V18,T09] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V19 tmp13        [V19,T18] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V20 tmp14        [V20,T19] (  2,  2   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V21 cse0         [V21,T03] (  4,  4   )    long  -\u003E  r12         \u0022CSE #05: moderate\u0022\n-;  V22 cse1         [V22,T11] (  3,  3   )    long  -\u003E  r13         \u0022CSE #03: moderate\u0022\n-;  V23 cse2         [V23,T12] (  3,  3   )    long  -\u003E  [rbp-0x30]  spill-single-def \u0022CSE #06: moderate\u0022\n-;  V24 cse3         [V24,T21] (  3,  1.50)     ref  -\u003E  rdi         \u0022CSE #08: conservative\u0022\n\u002B;  V07 tmp1         [V07,T16] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.LikeExpression\u003E\n\u002B;  V09 tmp3         [V09,T03] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.LikeExpression\u003E\n\u002B;  V10 tmp4         [V10,T04] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V11 tmp5         [V11,T05] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V12 tmp6         [V12,T06] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V13 tmp7         [V13,T07] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V14 tmp8         [V14,T08] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V15 tmp9         [V15,T09] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V16 cse0         [V16,T02] (  4,  4   )    long  -\u003E  r12         \u0022CSE #05: moderate\u0022\n\u002B;  V17 cse1         [V17,T10] (  3,  3   )    long  -\u003E  r13         \u0022CSE #03: moderate\u0022\n\u002B;  V18 cse2         [V18,T11] (  3,  3   )    long  -\u003E  [rbp-0x30]  spill-single-def \u0022CSE #06: moderate\u0022\n ;\n ; Lcl frame size = 24\n \n@@ -50,7 \u002B44,7 @@ G_M44175_IG01:\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 7.25\n G_M44175_IG02:\n        test     r15, r15\n-       je       G_M44175_IG09\n\u002B       je       G_M44175_IG05\n        movzx    r14, byte  ptr [rbx\u002B0x10]\n        mov      byte  ptr [rbx\u002B0x10], 0\n        mov      rdi, r15\n@@ -94,43 \u002B88,13 @@ G_M44175_IG02:\n        mov      rdi, r15\n        mov      rsi, gword ptr [rbp-0x38]\n        mov      rdx, r13\n-       mov      r15, qword ptr [rbp-0x30]\n-       call     [r15\u002B0x08]Microsoft.EntityFrameworkCore.Query.SqlExpressions.LikeExpression:Update(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression):Microsoft.EntityFrameworkCore.Query.SqlExpressions.LikeExpression:this\n-\t\t\t\t\t\t;; size=202 bbWeight=1 PerfScore 56.75\n\u002B       mov      rbx, qword ptr [rbp-0x30]\n\u002B       call     [rbx\u002B0x08]Microsoft.EntityFrameworkCore.Query.SqlExpressions.LikeExpression:Update(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression):Microsoft.EntityFrameworkCore.Query.SqlExpressions.LikeExpression:this\n\u002B\t\t\t\t\t\t;; size=201 bbWeight=1 PerfScore 56.75\n G_M44175_IG03:\n-       mov      r15, rax\n-       cmp      byte  ptr [rbx\u002B0x10], 0\n-       je       SHORT G_M44175_IG05\n-\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.25\n\u002B       nop      \n\u002B\t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n G_M44175_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Microsoft.EntityFrameworkCore.Query.SqlExpressions.ColumnExpression\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M44175_IG05\n-       mov      rdi, r15\n-       mov      rax, qword ptr [r15]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-       call     [rax\u002B0x10]Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:get_TypeMapping():Microsoft.EntityFrameworkCore.Storage.RelationalTypeMapping:this\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; Pomelo.EntityFrameworkCore.MySql.Storage.Internal.MySqlBoolTypeMapping\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M44175_IG05\n-       mov      rdi, r15\n-       mov      rax, qword ptr [r15]\n-       mov      rax, qword ptr [rax\u002B0x40]\n-       call     [rax\u002B0x28]System.Linq.Expressions.Expression:get_Type():System.Type:this\n-       mov      rdi, 0xD1FFAB1E      ; \u0027System.Boolean\u0027\n-       cmp      rax, rdi\n-       je       SHORT G_M44175_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=0.50 PerfScore 13.00\n-G_M44175_IG05:\n-       mov      rax, r15\n-\t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M44175_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -139,34 \u002B103,8 @@ G_M44175_IG06:\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M44175_IG07:\n-       mov      rdi, 0xD1FFAB1E      ; System.Boolean\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      rdi, gword ptr [rbx\u002B0x08]\n-       mov      rbx, rdi\n-       mov      byte  ptr [rax\u002B0x08], 1\n-       mov      rsi, rax\n-       mov      r11, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Constant(System.Object,Microsoft.EntityFrameworkCore.Storage.RelationalTypeMapping):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-       xor      rdx, rdx\n-       call     [r11]Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Constant(System.Object,Microsoft.EntityFrameworkCore.Storage.RelationalTypeMapping):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-       mov      rdx, rax\n-       mov      rdi, rbx\n-       mov      rsi, r15\n-       mov      r11, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Equal(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-       cmp      dword ptr [rdi], edi\n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 5.62\n-G_M44175_IG08:\n-       add      rsp, 24\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [r11]Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Equal(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M44175_IG09:\n\u002B\t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n\u002BG_M44175_IG05:\n        mov      rdi, 0xD1FFAB1E      ; \u0027likeExpression\u0027\n        mov      rsi, 0xD1FFAB1E      ; \u0027parameterName\u0027\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Utilities.Check:NotEmpty(System.String,System.String):System.String\n@@ -183,5 \u002B121,5 @@ G_M44175_IG09:\n        int3     \n \t\t\t\t\t\t;; size=84 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 521, prolog size 19, PerfScore 90.75, instruction count 128, allocated bytes for code 521 (MethodHash=043d5370) for method Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitLike(Microsoft.EntityFrameworkCore.Query.SqlExpressions.LikeExpression):System.Linq.Expressions.Expression:this (FullOpts)\n\u002B; Total bytes of code 326, prolog size 19, PerfScore 68.50, instruction count 80, allocated bytes for code 326 (MethodHash=043d5370) for method Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitLike(Microsoft.EntityFrameworkCore.Query.SqlExpressions.LikeExpression):System.Linq.Expressions.Expression:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":521,"DiffBytes":326},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.Intents.ActionService:ListAutoPaging(System.String,Stripe.V2.Billing.Intents.ActionListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.IntentAction]:this (FullOpts)","Category":"improvement","Description":"513 -\u003E 464 bytes (-49)","ExtraInfo":null,"Diff":"@@ -1,169 \u002B1,160 @@\n ; Assembly listing for method Stripe.V2.Billing.Intents.ActionService:ListAutoPaging(System.String,Stripe.V2.Billing.Intents.ActionListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.IntentAction]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 22 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T05] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.Intents.ActionService\u003E\n-;  V01 arg1         [V01,T08] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.Intents.ActionListOptions\u003E\n-;  V03 arg3         [V03,T07] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T07] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V02 arg2         [V02,T08] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.Intents.ActionListOptions\u003E\n\u002B;  V03 arg3         [V03,T06] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T11] (  3,  2   )     ref  -\u003E  r15         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.IntentAction]\u003E\n ;  V06 tmp2         [V06,T02] (  4,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V07 tmp3         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V08 tmp4         [V08,T12] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;  V09 tmp5         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.IntentAction]\u003E\n-;* V10 tmp6         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp8         [V12,T03] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.IntentAction]\u003E\n-;  V13 tmp9         [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.IntentAction]\u003E\n-;* V14 tmp10        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp11        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp12        [V16,T04] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.IntentAction]\u003E\n-;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V07._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp14        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp15        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp16        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp17        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 tmp18        [V22,T09] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V23 cse0         [V23,T10] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #02: moderate\u0022\n-;  V24 rat0         [V24,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T15] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T16] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.IntentAction]\u003E\n\u002B;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp6         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp7         [V11,T03] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.IntentAction]\u003E\n\u002B;  V12 tmp8         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.IntentAction]\u003E\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp11        [V15,T04] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.IntentAction]\u003E\n\u002B;* V16 tmp12        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V07._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp14        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp15        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp16        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 tmp17        [V21,T09] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V22 cse0         [V22,T10] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #02: moderate\u0022\n\u002B;  V23 rat0         [V23,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T15] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M56766_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rdx\n-       mov      r14, rcx\n\u002B       mov      r14, rdx\n\u002B       mov      r15, rcx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M56766_IG02:\n        mov      rdi, rsi\n        mov      rax, 0xD1FFAB1E      ; code for System.Net.WebUtility:UrlEncode(System.String):System.String\n        call     [rax]System.Net.WebUtility:UrlEncode(System.String):System.String\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; \u0027/v2/billing/intents/\u0027\n        mov      rdx, 0xD1FFAB1E      ; \u0027/actions\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Concat(System.String,System.String,System.String):System.String\n        call     [rax]System.String:Concat(System.String,System.String,System.String):System.String\n        mov      r13, rax\n        mov      rdi, r13\n        mov      rax, 0xD1FFAB1E      ; code for Stripe.ApiModeUtils:GetApiMode(System.String):int\n        call     [rax]Stripe.ApiModeUtils:GetApiMode(System.String):int\n        cmp      eax, 1\n        je       G_M56766_IG04\n \t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 12.50\n G_M56766_IG03:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.IntentAction]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n-       mov      eax, dword ptr [rax\u002B0x10]\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, dword ptr [rax\u002B0x10]\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x28]\n\u002B       lea      rdi, bword ptr [r14\u002B0x28]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.IntentAction]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        mov      dword ptr [r15\u002B0x28], -2\n-       mov      r14d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r15\u002B0x2C], r14d\n\u002B       mov      dword ptr [r15\u002B0x2C], r12d\n        lea      rdi, bword ptr [r15\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M56766_IG05\n-\t\t\t\t\t\t;; size=212 bbWeight=0.50 PerfScore 16.00\n\u002B\t\t\t\t\t\t;; size=164 bbWeight=0.50 PerfScore 12.75\n G_M56766_IG04:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.IntentAction]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      eax, edi\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x28]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.IntentAction]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        mov      dword ptr [r15\u002B0x28], -2\n-       mov      r14d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r15\u002B0x2C], r14d\n\u002B       mov      ebx, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r15\u002B0x2C], ebx\n        lea      rdi, bword ptr [r15\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=181 bbWeight=0.50 PerfScore 13.12\n\u002B\t\t\t\t\t\t;; size=180 bbWeight=0.50 PerfScore 13.12\n G_M56766_IG05:\n        mov      rax, r15\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M56766_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 513, prolog size 16, PerfScore 54.38, instruction count 113, allocated bytes for code 513 (MethodHash=d6152241) for method Stripe.V2.Billing.Intents.ActionService:ListAutoPaging(System.String,Stripe.V2.Billing.Intents.ActionListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.IntentAction]:this (FullOpts)\n\u002B; Total bytes of code 464, prolog size 16, PerfScore 51.12, instruction count 105, allocated bytes for code 464 (MethodHash=d6152241) for method Stripe.V2.Billing.Intents.ActionService:ListAutoPaging(System.String,Stripe.V2.Billing.Intents.ActionListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.IntentAction]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":513,"DiffBytes":464},{"Assembly":"System.CommandLine.dasm","Method":"System.CommandLine.Argument\u00601[long]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,long]:this (FullOpts)","Category":"improvement","Description":"234 -\u003E 5 bytes (-229)","ExtraInfo":null,"Diff":"@@ -1,100 \u002B1,35 @@\n ; Assembly listing for method System.CommandLine.Argument\u00601[long]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,long]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] (  4,  3.50)     ref  -\u003E  rdi         this class-hnd single-def \u003CSystem.CommandLine.Argument\u00601[long]\u003E\n-;  V01 loc0         [V01,T06] (  3,  1.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.CommandLine.Argument\u00601[bool]\u003E\n\u002B;  V00 this         [V00,T00] (  3,  3   )     ref  -\u003E  rdi         this class-hnd single-def \u003CSystem.CommandLine.Argument\u00601[long]\u003E\n\u002B;* V01 loc0         [V01    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.CommandLine.Argument\u00601[bool]\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V03 tmp1         [V03,T05] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\u003E\n-;* V04 tmp2         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V05 tmp3         [V05,T04] (  4,  2   )     ref  -\u003E  rsi        \n-;  V06 tmp4         [V06,T01] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\u003E\n-;  V07 tmp5         [V07,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.CommandLine.Argument\u00601\u002B\u003C\u003Ec[long]\u003E\n\u002B;* V03 tmp1         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\u003E\n\u002B;* V04 tmp2         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref   \n\u002B;* V05 tmp3         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref   \n\u002B;* V06 tmp4         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\u003E\n\u002B;* V07 tmp5         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.CommandLine.Argument\u00601\u002B\u003C\u003Ec[long]\u003E\n ;* V08 tmp6         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.CommandLine.Argument\u00601[bool]\u003E\n ;* V09 tmp7         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\u003E\n-;* V10 cse0         [V10,T07] (  0,  0   )   byref  -\u003E  zero-ref    \u0022CSE #02: aggressive\u0022\n-;  V11 cse1         [V11,T03] (  3,  3   )     ref  -\u003E  rbx         \u0022CSE #04: aggressive\u0022\n\u002B;  V10 cse0         [V10,T01] (  2,  2   )     ref  -\u003E  rax         \u0022CSE #01: aggressive\u0022\n ;\n-; Lcl frame size = 8\n\u002B; Lcl frame size = 0\n \n G_M51927_IG01:\n-       push     rbp\n-       push     r15\n-       push     r14\n-       push     rbx\n-       push     rax\n-       lea      rbp, [rsp\u002B0x20]\n-\t\t\t\t\t\t;; size=12 bbWeight=1 PerfScore 5.50\n\u002B\t\t\t\t\t\t;; size=0 bbWeight=1 PerfScore 0.00\n G_M51927_IG02:\n-       mov      rbx, gword ptr [rdi\u002B0x60]\n-       test     rbx, rbx\n-       jne      G_M51927_IG06\n-\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.25\n\u002B       mov      rax, gword ptr [rdi\u002B0x60]\n\u002B\t\t\t\t\t\t;; size=4 bbWeight=1 PerfScore 2.00\n G_M51927_IG03:\n-       mov      rsi, rdi\n-       mov      rdi, 0xD1FFAB1E      ; System.CommandLine.Argument\u00601[bool]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n-       test     r15, r15\n-       je       SHORT G_M51927_IG06\n-       mov      rdi, 0xD1FFAB1E      ; global ptr\n-       test     byte  ptr [rdi], 1\n-       je       SHORT G_M51927_IG08\n-\t\t\t\t\t\t;; size=48 bbWeight=0.50 PerfScore 4.25\n-G_M51927_IG04:\n-       mov      rdi, 0xD1FFAB1E      ; data for System.CommandLine.Argument\u00601\u002B\u003C\u003Ec[long]:\u003C\u003E9__4_0\n-       mov      rsi, gword ptr [rdi]\n-       test     rsi, rsi\n-       jne      SHORT G_M51927_IG05\n-       mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      rdi, 0xD1FFAB1E      ; data for System.CommandLine.Argument\u00601\u002B\u003C\u003Ec[long]:\u003C\u003E9\n-       mov      rsi, gword ptr [rdi]\n-       test     rsi, rsi\n-       je       SHORT G_M51927_IG09\n-       lea      rdi, bword ptr [r14\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, 0xD1FFAB1E      ; code for System.CommandLine.Argument\u00601\u002B\u003C\u003Ec[long]:\u003Cget_DefaultValueFactory\u003Eb__4_0(System.CommandLine.Parsing.ArgumentResult):bool:this\n-       mov      qword ptr [r14\u002B0x18], rdi\n-       mov      rdi, 0xD1FFAB1E      ; data for System.CommandLine.Argument\u00601\u002B\u003C\u003Ec[long]:\u003C\u003E9__4_0\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rsi, r14\n-\t\t\t\t\t\t;; size=98 bbWeight=0.50 PerfScore 6.50\n-G_M51927_IG05:\n-       lea      rdi, bword ptr [r15\u002B0x60]\n-       call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 0.75\n-G_M51927_IG06:\n-       mov      rax, rbx\n-\t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M51927_IG07:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M51927_IG08:\n-       mov      rdi, 0xD1FFAB1E      ; System.CommandLine.Argument\u00601\u002B\u003C\u003Ec[long]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M51927_IG04\n-\t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M51927_IG09:\n-       mov      rax, 0xD1FFAB1E      ; code for System.Delegate:ThrowNullThisInDelegateToInstance()\n-       call     [rax]System.Delegate:ThrowNullThisInDelegateToInstance()\n-       int3     \n-\t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n\u002B\t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 1.00\n \n-; Total bytes of code 234, prolog size 12, PerfScore 23.75, instruction count 54, allocated bytes for code 234 (MethodHash=ba533528) for method System.CommandLine.Argument\u00601[long]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,long]:this (FullOpts)\n\u002B; Total bytes of code 5, prolog size 0, PerfScore 3.00, instruction count 2, allocated bytes for code 5 (MethodHash=ba533528) for method System.CommandLine.Argument\u00601[long]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,long]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":234,"DiffBytes":5},{"Assembly":"System.Data.Common.dasm","Method":"System.Data.EnumerableRowCollectionExtensions:Select[short,System.Nullable\u00601[int]](System.Data.EnumerableRowCollection\u00601[short],System.Func\u00602[short,System.Nullable\u00601[int]]):System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]] (FullOpts)","Category":"regression","Description":"147 -\u003E 249 bytes (\u002B102)","ExtraInfo":null,"Diff":"@@ -1,66 \u002B1,94 @@\n ; Assembly listing for method System.Data.EnumerableRowCollectionExtensions:Select[short,System.Nullable\u00601[int]](System.Data.EnumerableRowCollection\u00601[short],System.Func\u00602[short,System.Nullable\u00601[int]]):System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]] (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n\u002B; 0 inlinees with PGO data; 4 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T00] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.EnumerableRowCollection\u00601[short]\u003E\n-;  V01 arg1         [V01,T01] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Func\u00602[short,System.Nullable\u00601[int]]\u003E\n-;  V02 loc0         [V02,T05] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V00 arg0         [V00,T04] (  3,  3   )     ref  -\u003E  rdi         class-hnd single-def \u003CSystem.Data.EnumerableRowCollection\u00601[short]\u003E\n\u002B;  V01 arg1         [V01,T01] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Func\u00602[short,System.Nullable\u00601[int]]\u003E\n\u002B;  V02 loc0         [V02,T07] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V04 tmp1         [V04,T02] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]]\u003E\n-;  V05 tmp2         [V05,T03] (  2,  4   )     ref  -\u003E  rbx         single-def \u0022argument with side effect\u0022\n-;  V06 tmp3         [V06,T04] (  2,  4   )     ref  -\u003E  rcx         single-def \u0022argument with side effect\u0022\n\u002B;  V04 tmp1         [V04,T00] (  6, 12   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V05 tmp2         [V05,T05] (  2,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]\u003E\n\u002B;  V06 tmp3         [V06,T02] (  3,  6   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Func\u00602[System.Nullable\u00601[int],bool]]\u003E\n\u002B;  V07 tmp4         [V07,T03] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.SortExpressionBuilder\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V08 cse0         [V08,T06] (  3,  2   )    long  -\u003E  rbx         \u0022CSE #01: aggressive\u0022\n ;\n-; Lcl frame size = 0\n\u002B; Lcl frame size = 8\n \n G_M26841_IG01:\n        push     rbp\n        push     r15\n        push     r14\n-       push     r13\n        push     rbx\n\u002B       push     rax\n        lea      rbp, [rsp\u002B0x20]\n-       mov      rbx, rdi\n-       mov      r15, rsi\n-\t\t\t\t\t\t;; size=19 bbWeight=1 PerfScore 6.00\n\u002B       mov      rbx, rsi\n\u002B\t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 5.75\n G_M26841_IG02:\n-       mov      rdi, rbx\n-       mov      rsi, r15\n\u002B       mov      rsi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:Select[short,System.Nullable\u00601[int]](System.Collections.Generic.IEnumerable\u00601[short],System.Func\u00602[short,System.Nullable\u00601[int]]):System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]\n        call     [rax]System.Linq.Enumerable:Select[short,System.Nullable\u00601[int]](System.Collections.Generic.IEnumerable\u00601[short],System.Func\u00602[short,System.Nullable\u00601[int]]):System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]]\n-       mov      r14, rax\n\u002B       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n\u002B       mov      r14, rax\n        mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      rbx, rax\n-       mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFANY\n        call     [rax]CORINFO_HELP_ISINSTANCEOFANY\n-       mov      rcx, rax\n\u002B       mov      rbx, rax\n\u002B       lea      rdi, bword ptr [r14\u002B0x10]\n\u002B       mov      rsi, r15\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       lea      rdi, bword ptr [r14\u002B0x28]\n        mov      rsi, rbx\n-       mov      rdx, r14\n-       mov      rdi, r13\n-       mov      rax, 0xD1FFAB1E      ; code for System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]]:.ctor(System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]],System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]],System.Func\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]):this\n-       call     [rax]System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]]:.ctor(System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]],System.Collections.Generic.IEnumerable\u00601[System.Nullable\u00601[int]],System.Func\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]):this\n-       mov      rax, r13\n-\t\t\t\t\t\t;; size=119 bbWeight=1 PerfScore 17.75\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       mov      rbx, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.Func\u00602[System.Nullable\u00601[int],bool]]\n\u002B       mov      rdi, rbx\n\u002B       call     CORINFO_HELP_NEWSFAST\n\u002B       mov      r15, rax\n\u002B       mov      rdi, 0xD1FFAB1E      ; global ptr\n\u002B       test     byte  ptr [rdi], 1\n\u002B       je       SHORT G_M26841_IG05\n\u002B\t\t\t\t\t\t;; size=124 bbWeight=1 PerfScore 17.75\n G_M26841_IG03:\n\u002B       mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.List\u00601[System.Func\u00602[System.Nullable\u00601[int],bool]]:s_emptyArray\n\u002B       mov      rsi, gword ptr [rdi]\n\u002B       lea      rdi, bword ptr [r15\u002B0x08]\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n\u002B       mov      rsi, r15\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       mov      rdi, 0xD1FFAB1E      ; System.Data.SortExpressionBuilder\u00601[System.Nullable\u00601[int]]\n\u002B       call     CORINFO_HELP_NEWSFAST\n\u002B       mov      rbx, rax\n\u002B       mov      rdi, rbx\n\u002B       mov      rax, 0xD1FFAB1E      ; code for System.Data.SortExpressionBuilder\u00601[System.Nullable\u00601[int]]:.ctor():this\n\u002B       call     [rax]System.Data.SortExpressionBuilder\u00601[System.Nullable\u00601[int]]:.ctor():this\n\u002B       lea      rdi, bword ptr [r14\u002B0x20]\n\u002B       mov      rsi, rbx\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       mov      rax, r14\n\u002B\t\t\t\t\t\t;; size=82 bbWeight=1 PerfScore 12.50\n\u002BG_M26841_IG04:\n\u002B       add      rsp, 8\n        pop      rbx\n-       pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.50\n\u002B\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n\u002BG_M26841_IG05:\n\u002B       mov      rdi, rbx\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n\u002B       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n\u002B       jmp      SHORT G_M26841_IG03\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 147, prolog size 13, PerfScore 27.25, instruction count 38, allocated bytes for code 147 (MethodHash=c6149726) for method System.Data.EnumerableRowCollectionExtensions:Select[short,System.Nullable\u00601[int]](System.Data.EnumerableRowCollection\u00601[short],System.Func\u00602[short,System.Nullable\u00601[int]]):System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]] (FullOpts)\n\u002B; Total bytes of code 249, prolog size 12, PerfScore 39.25, instruction count 59, allocated bytes for code 249 (MethodHash=c6149726) for method System.Data.EnumerableRowCollectionExtensions:Select[short,System.Nullable\u00601[int]](System.Data.EnumerableRowCollection\u00601[short],System.Func\u00602[short,System.Nullable\u00601[int]]):System.Data.EnumerableRowCollection\u00601[System.Nullable\u00601[int]] (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":147,"DiffBytes":249},{"Assembly":"Consul.dasm","Method":"Consul.GetRequest\u00601\u002B\u003CExecuteStreaming\u003Ed__11[short]:MoveNext():this (FullOpts)","Category":"improvement","Description":"1,458 -\u003E 1,431 bytes (-27)","ExtraInfo":null,"Diff":"@@ -8,8 \u002B8,8 @@\n ; 0 inlinees with PGO data; 57 single block inlinees; 13 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 45, 39   )   byref  -\u003E  [rbp-0x68]  this EH-live single-def\n-;  V01 loc0         [V01,T33] (  3,  3   )     int  -\u003E  rdi         single-def\n\u002B;  V00 this         [V00,T00] ( 42, 36   )   byref  -\u003E  [rbp-0x68]  this EH-live single-def\n\u002B;  V01 loc0         [V01,T35] (  3,  3   )     int  -\u003E  rdi         single-def\n ;  V02 loc1         [V02,T02] ( 11, 11   )     ref  -\u003E  rbx         class-hnd single-def \u003CConsul.GetRequest\u00601[short]\u003E\n ;  V03 loc2         [V03,T14] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n ;* V04 loc3         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CSystem.Net.Http.HttpRequestMessage\u003E\n@@ -22,106 \u002B22,108 @@\n ;* V11 loc10        [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Exception\u003E\n ;  V12 OutArgs      [V12    ] (  1,  1   )  struct ( 8) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V13 tmp1         [V13    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;* V14 tmp2         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;  V14 tmp2         [V14,T16] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Net.Http.HttpResponseMessage\u003E\n ;* V15 tmp3         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n-;  V16 tmp4         [V16,T16] (  2,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n-;* V17 tmp5         [V17    ] (  0,  0   )  struct ( 8) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.TimeSpan\u003E\n-;  V18 tmp6         [V18,T39] (  3,  0   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Net.HttpStatusCode\u003E\n-;  V19 tmp7         [V19,T41] (  2,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V20 tmp8         [V20,T40] (  3,  0   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CConsul.ConsulRequestException\u003E\n-;* V21 tmp9         [V21    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n\u002B;* V16 tmp4         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;  V17 tmp5         [V17,T17] (  2,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;* V18 tmp6         [V18    ] (  0,  0   )  struct ( 8) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.TimeSpan\u003E\n\u002B;  V19 tmp7         [V19,T41] (  3,  0   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Net.HttpStatusCode\u003E\n\u002B;  V20 tmp8         [V20,T43] (  2,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V21 tmp9         [V21,T42] (  3,  0   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CConsul.ConsulRequestException\u003E\n ;* V22 tmp10        [V22    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;* V23 tmp11        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n-;  V24 tmp12        [V24,T17] (  2,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.Net.Http.HttpMethod\u003E\n-;  V25 tmp13        [V25,T18] (  2,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V26 tmp14        [V26,T01] (  8, 16   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Net.Http.HttpRequestMessage\u003E\n-;  V27 tmp15        [V27,T42] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n-;  V28 tmp16        [V28,T03] (  5, 10   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Diagnostics.Stopwatch\u003E\n-;  V29 tmp17        [V29,T19] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Uri\u003E\n-;* V30 tmp18        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CConsul.ConsulClient\u003E\n\u002B;* V23 tmp11        [V23    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n\u002B;* V24 tmp12        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;  V25 tmp13        [V25,T18] (  2,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.Net.Http.HttpMethod\u003E\n\u002B;  V26 tmp14        [V26,T19] (  2,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V27 tmp15        [V27,T01] (  8, 16   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Net.Http.HttpRequestMessage\u003E\n\u002B;  V28 tmp16        [V28,T44] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V29 tmp17        [V29,T03] (  5, 10   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Diagnostics.Stopwatch\u003E\n\u002B;  V30 tmp18        [V30,T20] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Uri\u003E\n ;* V31 tmp19        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CConsul.ConsulClient\u003E\n-;  V32 tmp20        [V32,T29] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Net.Http.HttpResponseMessage]\u003E\n-;  V33 tmp21        [V33,T04] (  5, 10   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Net.Http.HttpClient\u003E\n-;* V34 tmp22        [V34    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V35 tmp23        [V35,T08] (  4,  8   )  struct (24) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u0022dup spill\u0022 \u003CSystem.ValueTuple\u00603[System.Threading.CancellationTokenSource,bool,System.Threading.CancellationTokenSource]\u003E\n-;* V36 tmp24        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;* V37 tmp25        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n-;* V38 tmp26        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;* V39 tmp27        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;* V40 tmp28        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;* V41 tmp29        [V41    ] (  0,  0   )     int  -\u003E  zero-ref    single-def\n-;* V42 tmp30        [V42    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[System.Net.Http.HttpResponseMessage]\u003E\n-;* V43 tmp31        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Net.Http.HttpResponseMessage]\u003E\n-;* V44 tmp32        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.Net.Http.HttpResponseMessage]\u003E\n-;* V45 tmp33        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Net.Http.HttpResponseMessage]\u003E\n-;* V46 tmp34        [V46,T36] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V47 tmp35        [V47,T20] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n-;* V48 tmp36        [V48    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;* V49 tmp37        [V49    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n\u002B;* V32 tmp20        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CConsul.ConsulClient\u003E\n\u002B;  V33 tmp21        [V33,T28] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Net.Http.HttpResponseMessage]\u003E\n\u002B;  V34 tmp22        [V34,T04] (  5, 10   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Net.Http.HttpClient\u003E\n\u002B;* V35 tmp23        [V35    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;  V36 tmp24        [V36,T07] (  4,  8   )  struct (24) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u0022dup spill\u0022 \u003CSystem.ValueTuple\u00603[System.Threading.CancellationTokenSource,bool,System.Threading.CancellationTokenSource]\u003E\n\u002B;* V37 tmp25        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;* V38 tmp26        [V38    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n\u002B;* V39 tmp27        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;* V40 tmp28        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref   \n... diff truncated; middle omitted ...\n\u002B;* V83 tmp71        [V83    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.TimeSpan\u003E\n\u002B;  V84 tmp72        [V84,T15] (  4,  4   )    long  -\u003E  r13         \u0022Inline stloc first use temp\u0022\n\u002B;* V85 tmp73        [V85    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n\u002B;  V86 tmp74        [V86,T12] (  3,  6   )   byref  -\u003E  rbx         single-def \u0022Inlining Arg\u0022\n\u002B;  V87 tmp75        [V87,T29] (  3,  3   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[Consul.QueryResult\u00601[System.IO.Stream]]\u003E\n\u002B;* V88 tmp76        [V88    ] (  0,  0   )     ref  -\u003E  zero-ref    ld-addr-op class-hnd single-def \u0022Inlining Arg\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;  V89 tmp77        [V89,T06] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[Consul.QueryResult\u00601[System.IO.Stream]]\u003E\n\u002B;* V90 tmp78        [V90    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V91 tmp79        [V91    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CConsul.QueryResult\u00601[System.IO.Stream]\u003E\n\u002B;* V92 tmp80        [V92    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n\u002B;  V93 tmp81        [V93    ] (  7,  7   )     ref  -\u003E  [rbp-0x38]  do-not-enreg[X] addr-exposed \u0022field V06.m_task (fldOffset=0x0)\u0022 P-DEP\n\u002B;  V94 tmp82        [V94    ] (  5,  5   )     int  -\u003E  [rbp-0x30]  do-not-enreg[X] addr-exposed \u0022field V06.m_options (fldOffset=0x8)\u0022 P-DEP\n\u002B;  V95 tmp83        [V95    ] (  7,  7   )     ref  -\u003E  [rbp-0x48]  do-not-enreg[X] addr-exposed \u0022field V09.m_task (fldOffset=0x0)\u0022 P-DEP\n\u002B;  V96 tmp84        [V96    ] (  5,  5   )     int  -\u003E  [rbp-0x40]  do-not-enreg[X] addr-exposed \u0022field V09.m_options (fldOffset=0x8)\u0022 P-DEP\n\u002B;* V97 tmp85        [V97    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022field V18._ticks (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V98 tmp86        [V98,T30] (  3,  3   )     ref  -\u003E  r13         single-def \u0022field V35._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V99 tmp87        [V99    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V45.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V100 tmp88       [V100    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V45.m_options (fldOffset=0x8)\u0022 P-INDEP\n\u002B;* V101 tmp89       [V101    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V58._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V102 tmp90       [V102    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V59._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V103 tmp91       [V103    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V66.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V104 tmp92       [V104    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V66.m_options (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V105 tmp93       [V105,T36] (  2,  2   )    long  -\u003E  rsi         single-def \u0022field V83._ticks (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V106 tmp94       [V106    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V90._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V107 tmp95       [V107,T25] (  2,  4   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n ;  V108 tmp96       [V108,T26] (  2,  4   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V109 tmp97       [V109,T27] (  2,  4   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V110 cse0        [V110,T13] (  5,  4   )     int  -\u003E  r15         \u0022CSE #06: moderate\u0022\n-;  V111 cse1        [V111,T32] (  3,  3   )     ref  -\u003E  r15         \u0022CSE #04: conservative\u0022\n-;  V112 cse2        [V112,T28] (  2,  2   )     ref  -\u003E  rax         \u0022CSE #05: conservative\u0022\n-;  V113 rat0        [V113,T38] (  5, 10   )  simd16  -\u003E  mm0         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n\u002B;  V109 cse0        [V109,T13] (  5,  4   )     int  -\u003E  r15         \u0022CSE #06: moderate\u0022\n\u002B;  V110 cse1        [V110,T31] (  3,  3   )     ref  -\u003E  r15         \u0022CSE #04: moderate\u0022\n\u002B;  V111 cse2        [V111,T27] (  2,  2   )     ref  -\u003E  rax         \u0022CSE #05: moderate\u0022\n\u002B;  V112 cse3        [V112,T32] (  3,  3   )   byref  -\u003E  rdi         \u0022CSE #01: moderate\u0022\n\u002B;  V113 cse4        [V113,T33] (  3,  3   )   byref  -\u003E  rdi         \u0022CSE #03: moderate\u0022\n\u002B;  V114 cse5        [V114,T34] (  3,  3   )     ref  -\u003E  rsi         \u0022CSE #08: moderate\u0022\n\u002B;  V115 rat0        [V115,T40] (  5, 10   )  simd16  -\u003E  mm0         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n ;\n ; Lcl frame size = 72\n \n@@ -150,17 \u002B152,18 @@ G_M37057_IG02:\n G_M37057_IG03:\n        test     edi, edi\n        jne      G_M37057_IG09\n-\t\t\t\t\t\t;; size=8 bbWeight=1 PerfScore 1.25\n\u002B       lea      rdi, bword ptr [rsi\u002B0x38]\n\u002B\t\t\t\t\t\t;; size=12 bbWeight=1 PerfScore 1.75\n G_M37057_IG04:\n-       vmovdqu  xmm0, xmmword ptr [rsi\u002B0x38]\n\u002B       vmovdqu  xmm0, xmmword ptr [rdi]\n        vmovdqu  xmmword ptr [rbp-0x38], xmm0\n-\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.00\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.00\n G_M37057_IG05:\n-       xor      edi, edi\n-       mov      qword ptr [rsi\u002B0x38], rdi\n-       mov      qword ptr [rsi\u002B0x40], rdi\n\u002B       xor      eax, eax\n\u002B       mov      qword ptr [rdi], rax\n\u002B       mov      qword ptr [rdi\u002B0x08], rax\n        mov      dword ptr [rsi\u002B0x20], -1\n-\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 3.25\n\u002B\t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 3.25\n G_M37057_IG06:\n        mov      rsi, bword ptr [rbp-0x68]\n        mov      rdi, gword ptr [rbp-0x38]\n@@ -178,14 \u002B181,9 @@ G_M37057_IG07:\n        mov      r15, bword ptr [rbp-0x68]\n        lea      rdi, bword ptr [r15\u002B0x18]\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n-       mov      r14, gword ptr [r15\u002B0x18]\n-       mov      rsi, gword ptr [r15\u002B0x10]\n-       mov      rdi, 0xD1FFAB1E      ; Consul.QueryResult\u00601[short]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      rdx, rax\n-       mov      rsi, r14\n\u002B       mov      rsi, gword ptr [r15\u002B0x18]\n        mov      rdi, rbx\n\u002B       xor      rdx, rdx\n        mov      rax, 0xD1FFAB1E      ; code for Consul.GetRequest\u00601[short]:ParseQueryHeaders(System.Net.Http.HttpResponseMessage,Consul.QueryResult\u00601[short]):this\n        call     [rax]Consul.GetRequest\u00601[short]:ParseQueryHeaders(System.Net.Http.HttpResponseMessage,Consul.QueryResult\u00601[short]):this\n        mov      rdi, gword ptr [r15\u002B0x10]\n@@ -210,7 \u002B208,7 @@ G_M37057_IG07:\n        mov      rdi, gword ptr [rbp-0x48]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M37057_IG12\n-\t\t\t\t\t\t;; size=157 bbWeight=1 PerfScore 47.25\n\u002B\t\t\t\t\t\t;; size=127 bbWeight=1 PerfScore 41.50\n G_M37057_IG08:\n        mov      r15, bword ptr [rbp-0x68]\n        mov      dword ptr [r15\u002B0x20], 1\n@@ -234,17 \u002B232,18 @@ G_M37057_IG08:\n G_M37057_IG09:\n        cmp      edi, 1\n        jne      G_M37057_IG16\n-\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 1.25\n\u002B       lea      rdi, bword ptr [rsi\u002B0x48]\n\u002B\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 1.75\n G_M37057_IG10:\n-       vmovdqu  xmm0, xmmword ptr [rsi\u002B0x48]\n\u002B       vmovdqu  xmm0, xmmword ptr [rdi]\n        vmovdqu  xmmword ptr [rbp-0x48], xmm0\n-\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.00\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.00\n G_M37057_IG11:\n-       xor      edi, edi\n-       mov      qword ptr [rsi\u002B0x48], rdi\n-       mov      qword ptr [rsi\u002B0x50], rdi\n\u002B       xor      eax, eax\n\u002B       mov      qword ptr [rdi], rax\n\u002B       mov      qword ptr [rdi\u002B0x08], rax\n        mov      dword ptr [rsi\u002B0x20], -1\n-\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 3.25\n\u002B\t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 3.25\n G_M37057_IG12:\n        mov      rdi, gword ptr [rbp-0x48]\n        mov      eax, dword ptr [rdi\u002B0x34]\n@@ -445,15 \u002B444,15 @@ G_M37057_IG22:\n G_M37057_IG23:\n        mov      gword ptr [rbx\u002B0x18], rsi\n        add      rbx, 40\n-       cmp      gword ptr [rbx], 0\n-       je       SHORT G_M37057_IG24\n        mov      rsi, gword ptr [rbx]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M37057_IG24\n        mov      rdx, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[Consul.QueryResult\u00601[System.IO.Stream]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        jmp      SHORT G_M37057_IG28\n-\t\t\t\t\t\t;; size=44 bbWeight=1 PerfScore 12.00\n\u002B\t\t\t\t\t\t;; size=43 bbWeight=1 PerfScore 10.25\n G_M37057_IG24:\n        test     r15, r15\n        je       SHORT G_M37057_IG25\n@@ -529,5 \u002B528,5 @@ RWD00  \tdq\t3F847AE147AE147Bh\t;         0.01\n RWD08  \tdq\t43E0000000000000h\n \n \n-; Total bytes of code 1458, prolog size 50, PerfScore 315.75, instruction count 330, allocated bytes for code 1458 (MethodHash=05096f3e) for method Consul.GetRequest\u00601\u002B\u003CExecuteStreaming\u003Ed__11[short]:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 1431, prolog size 50, PerfScore 309.25, instruction count 327, allocated bytes for code 1431 (MethodHash=05096f3e) for method Consul.GetRequest\u00601\u002B\u003CExecuteStreaming\u003Ed__11[short]:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1458,"DiffBytes":1431},{"Assembly":"CsvHelper.dasm","Method":"CsvHelper.TypeConversion.DefaultTypeConverter:ConvertToString(System.Object,CsvHelper.IWriterRow,CsvHelper.Configuration.MemberMapData):System.String:this (FullOpts)","Category":"improvement","Description":"475 -\u003E 423 bytes (-52)","ExtraInfo":null,"Diff":"@@ -12,31 \u002B12,31 @@\n ;  V01 arg1         [V01,T01] (  6,  4.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Object\u003E\n ;* V02 arg2         [V02    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CCsvHelper.IWriterRow\u003E\n ;  V03 arg3         [V03,T00] (  8,  5   )     ref  -\u003E  rbx         class-hnd single-def \u003CCsvHelper.Configuration.MemberMapData\u003E\n-;  V04 loc0         [V04,T09] (  3,  1.50)     ref  -\u003E  r14         class-hnd single-def \u003CSystem.IFormattable\u003E\n\u002B;  V04 loc0         [V04,T08] (  3,  1.50)     ref  -\u003E  r14         class-hnd single-def \u003CSystem.IFormattable\u003E\n ;* V05 loc1         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.String\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T13] (  2,  1   )     ref  -\u003E  rax         single-def\n\u002B;  V07 tmp1         [V07,T11] (  2,  1   )     ref  -\u003E  rax         single-def\n ;  V08 tmp2         [V08,T05] (  5,  2.50)     ref  -\u003E  rax        \n ;  V09 tmp3         [V09,T02] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022dup spill\u0022 \u003CSystem.String[]\u003E\n ;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V11 tmp5         [V11,T10] (  3,  1.50)     ref  -\u003E  r12        \n\u002B;  V11 tmp5         [V11,T09] (  3,  1.50)     ref  -\u003E  r12        \n ;* V12 tmp6         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CCsvHelper.TypeConversion.TypeConverterOptions\u003E\n ;* V13 tmp7         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.String]\u003E\n ;* V14 tmp8         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CCsvHelper.TypeConversion.TypeConverterOptions\u003E\n-;  V15 tmp9         [V15,T03] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.String]\u003E\n-;  V16 tmp10        [V16    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T04] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.String]\u003E\n\u002B;  V16 tmp10        [V16    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V17 tmp11        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V18 tmp12        [V18,T11] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n-;  V19 tmp13        [V19,T06] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n\u002B;  V18 tmp12        [V18,T12] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n\u002B;* V19 tmp13        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n ;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CCsvHelper.TypeConversion.TypeConverterOptions\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.String]\u003E\n ;  V22 tmp16        [V22    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V23 tmp17        [V23,T12] (  3,  1.50)     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n\u002B;  V23 tmp17        [V23,T10] (  3,  1.50)     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n ;* V24 tmp18        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.String]\u003E\n-;  V25 tmp19        [V25,T07] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n\u002B;  V25 tmp19        [V25,T06] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n ;* V26 tmp20        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CCsvHelper.TypeConversion.TypeConverterOptions\u003E\n-;  V27 tmp21        [V27,T08] (  2,  2   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V28 cse0         [V28,T04] (  6,  3   )    long  -\u003E  r15         multi-def \u0022CSE #02: aggressive\u0022\n\u002B;  V27 tmp21        [V27,T07] (  2,  2   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;  V28 cse0         [V28,T03] (  6,  3   )    long  -\u003E  r15         multi-def \u0022CSE #02: aggressive\u0022\n ;\n ; Lcl frame size = 24\n \n@@ -164,34 \u002B164,17 @@ G_M32419_IG12:\n G_M32419_IG13:\n        mov      rdi, rbx\n        call     [r15\u002B0x18]CsvHelper.Configuration.MemberMapData:get_TypeConverterOptions():CsvHelper.TypeConversion.TypeConverterOptions:this\n-       mov      rbx, gword ptr [rax\u002B0x28]\n-       test     rbx, rbx\n-       je       SHORT G_M32419_IG17\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.String]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M32419_IG14\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M32419_IG15\n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 10.62\n-G_M32419_IG14:\n\u002B       mov      rsi, gword ptr [rax\u002B0x28]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M32419_IG15\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.String](System.Collections.Generic.IEnumerable\u00601[System.String],byref):System.String\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M32419_IG15:\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       SHORT G_M32419_IG18\n-\t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 1.00\n-G_M32419_IG16:\n\u002B       je       SHORT G_M32419_IG16\n\u002B\t\t\t\t\t\t;; size=48 bbWeight=0.50 PerfScore 6.25\n\u002BG_M32419_IG14:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -201,17 \u002B184,17 @@ G_M32419_IG16:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M32419_IG17:\n\u002BG_M32419_IG15:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M32419_IG18:\n\u002BG_M32419_IG16:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 475, prolog size 29, PerfScore 66.75, instruction count 136, allocated bytes for code 475 (MethodHash=d56d815c) for method CsvHelper.TypeConversion.DefaultTypeConverter:ConvertToString(System.Object,CsvHelper.IWriterRow,CsvHelper.Configuration.MemberMapData):System.String:this (FullOpts)\n\u002B; Total bytes of code 423, prolog size 29, PerfScore 59.25, instruction count 123, allocated bytes for code 423 (MethodHash=d56d815c) for method CsvHelper.TypeConversion.DefaultTypeConverter:ConvertToString(System.Object,CsvHelper.IWriterRow,CsvHelper.Configuration.MemberMapData):System.String:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":475,"DiffBytes":423},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.DistributedLockProviderExtensions:TryAcquireAllLocks(Medallion.Threading.IDistributedLockProvider,System.Collections.Generic.IReadOnlyList\u00601[System.String],System.TimeSpan,System.Threading.CancellationToken):Medallion.Threading.IDistributedSynchronizationHandle (FullOpts)","Category":"same-size","Description":"708 -\u003E 708 bytes (0)","ExtraInfo":null,"Diff":"@@ -109,7 \u002B109,7 @@ G_M1901_IG04:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        movzx    rsi, byte  ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], esi\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 6.75\n@@ -269,7 \u002B269,7 @@ G_M1901_IG23:\n        sub      rsp, 40\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n G_M1901_IG24:\n-       mov      edi, 70\n\u002B       mov      edi, 68\n        call     CORINFO_HELP_GETDYNAMIC_NONGCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED2\n        mov      rbx, rax\n        mov      eax, dword ptr [rbp-0x2C]","Truncated":true,"BaseBytes":708,"DiffBytes":708},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Common.TypeHelpers:GetTvfReturnType(System.Data.Entity.Core.Metadata.Edm.EdmFunction):System.Data.Entity.Core.Metadata.Edm.RowType (FullOpts)","Category":"improvement","Description":"542 -\u003E 386 bytes (-156)","ExtraInfo":null,"Diff":"@@ -8,36 \u002B8,36 @@\n ; 0 inlinees with PGO data; 15 single block inlinees; 3 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T01] (  5,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmFunction\u003E\n-;  V01 loc0         [V01,T14] (  4,  2   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.TypeUsage\u003E\n\u002B;  V00 arg0         [V00,T00] (  5,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmFunction\u003E\n\u002B;  V01 loc0         [V01,T13] (  4,  2   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.TypeUsage\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V03 tmp1         [V03,T00] (  4,  7   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V04 tmp2         [V04    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V05 tmp3         [V05,T17] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n-;  V06 tmp4         [V06,T06] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V07 tmp5         [V07,T02] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V08 tmp6         [V08    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V09 tmp7         [V09,T18] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n-;  V10 tmp8         [V10,T15] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V03 tmp1         [V03,T01] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V04 tmp2         [V04    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V05 tmp3         [V05,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n\u002B;* V06 tmp4         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V07 tmp5         [V07,T04] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V08 tmp6         [V08    ] (  1,  0.50)   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V09 tmp7         [V09,T18] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n\u002B;* V10 tmp8         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n ;* V11 tmp9         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.TypeUsage\u003E\n ;* V12 tmp10        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmType\u003E\n-;  V13 tmp11        [V13,T03] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V14 tmp12        [V14    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V15 tmp13        [V15,T19] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n-;  V16 tmp14        [V16,T16] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V13 tmp11        [V13,T05] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V14 tmp12        [V14    ] (  1,  0.50)   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp13        [V15,T19] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n\u002B;* V16 tmp14        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n ;* V17 tmp15        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmType\u003E\n-;  V18 tmp16        [V18,T07] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V19 tmp17        [V19,T08] (  3,  3   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n-;  V20 tmp18        [V20,T09] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V21 tmp19        [V21,T12] (  3,  2.25)     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n-;  V22 tmp20        [V22,T10] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V23 tmp21        [V23,T11] (  3,  3   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n-;  V24 tmp22        [V24,T13] (  3,  2.25)     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n-;  V25 cse0         [V25,T20] (  3,  1.50)    long  -\u003E  r15         \u0022CSE #02: moderate\u0022\n-;  V26 rat0         [V26,T04] (  5,  3.75)     ref  -\u003E  rdi         \u0022replacement local\u0022\n-;  V27 rat1         [V27,T21] (  3,  1.25)    long  -\u003E  rcx         \u0022CSE for expectedClsNode\u0022\n-;  V28 rat2         [V28,T05] (  5,  3.75)     ref  -\u003E  registers   \u0022replacement local\u0022\n-;  V29 rat3         [V29,T22] (  3,  1.25)    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n\u002B;  V18 tmp16        [V18,T06] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V19 tmp17        [V19,T07] (  3,  3   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n\u002B;  V20 tmp18        [V20,T08] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V21 tmp19        [V21,T11] (  3,  2.25)     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n\u002B;  V22 tmp20        [V22,T09] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V23 tmp21        [V23,T10] (  3,  3   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n\u002B;  V24 tmp22        [V24,T12] (  3,  2.25)     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n\u002B;  V25 cse0         [V25,T15] (  3,  1.50)    long  -\u003E  r15         \u0022CSE #02: moderate\u0022\n\u002B;  V26 rat0         [V26,T02] (  5,  3.75)     ref  -\u003E  rdi         \u0022replacement local\u0022\n\u002B;  V27 rat1         [V27,T16] (  3,  1.25)    long  -\u003E  rcx         \u0022CSE for expectedClsNode\u0022\n\u002B;  V28 rat2         [V28,T03] (  5,  3.75)     ref  -\u003E  registers   \u0022replacement local\u0022\n\u002B;  V29 rat3         [V29,T17] (  3,  1.25)    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n ;\n ; Lcl frame size = 32\n \n@@ -54,60 \u002B54,24 @@ G_M54748_IG01:\n        mov      rbx, rdi\n \t\t\t\t\t\t;; size=32 bbWeight=1 PerfScore 6.58\n G_M54748_IG02:\n-       mov      r15, gword ptr [rbx\u002B0x48]\n-       test     r15, r15\n-       je       G_M54748_IG21\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M54748_IG04\n-\t\t\t\t\t\t;; size=43 bbWeight=1 PerfScore 8.25\n-G_M54748_IG03:\n-       lea      rsi, [rbp-0x18]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M54748_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M54748_IG04:\n-       lea      rdx, [rbp-0x18]\n-       mov      rsi, r15\n... diff truncated; middle omitted ...\n-       mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M54748_IG05:\n-       test     rax, rax\n\u002B       mov      rsi, gword ptr [rbx\u002B0x48]\n\u002B       test     rsi, rsi\n        je       G_M54748_IG14\n-\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 1.25\n-G_M54748_IG06:\n-       mov      r15, gword ptr [rbx\u002B0x48]\n-       test     r15, r15\n-       je       G_M54748_IG21\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M54748_IG07\n-       lea      rsi, [rbp-0x20]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M54748_IG08\n-\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 9.00\n-G_M54748_IG07:\n-       lea      rdx, [rbp-0x20]\n-       mov      rsi, r15\n\u002B       lea      rdx, [rbp-0x18]\n\u002B       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.FunctionParameter](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter],byref):System.Data.Entity.Core.Metadata.Edm.FunctionParameter\n\u002B       mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n\u002B       call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n\u002B       test     rax, rax\n\u002B       je       G_M54748_IG07\n\u002B\t\t\t\t\t\t;; size=48 bbWeight=1 PerfScore 8.50\n\u002BG_M54748_IG03:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x48]\n\u002B       test     rsi, rsi\n\u002B       je       G_M54748_IG14\n\u002B       lea      rdx, [rbp-0x20]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.FunctionParameter](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter],byref):System.Data.Entity.Core.Metadata.Edm.FunctionParameter\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M54748_IG08:\n        mov      rdi, gword ptr [rax\u002B0x28]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x48]\n@@ -117,52 \u002B81,35 @@ G_M54748_IG08:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x28]System.Data.Entity.Core.Metadata.Edm.MetadataItem:get_BuiltInTypeKind():int:this\n        cmp      eax, 6\n-       jne      G_M54748_IG14\n-       mov      rbx, gword ptr [rbx\u002B0x48]\n-       test     rbx, rbx\n-       je       G_M54748_IG21\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M54748_IG09\n-       lea      rsi, [rbp-0x28]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M54748_IG10\n-\t\t\t\t\t\t;; size=98 bbWeight=0.50 PerfScore 17.75\n-G_M54748_IG09:\n\u002B       jne      G_M54748_IG07\n\u002B       mov      rsi, gword ptr [rbx\u002B0x48]\n\u002B       test     rsi, rsi\n\u002B       je       G_M54748_IG14\n        lea      rdx, [rbp-0x28]\n-       mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.FunctionParameter](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter],byref):System.Data.Entity.Core.Metadata.Edm.FunctionParameter\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M54748_IG10:\n        mov      rdi, gword ptr [rax\u002B0x28]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x18]System.Data.Entity.Core.Metadata.Edm.TypeUsage:get_EdmType():System.Data.Entity.Core.Metadata.Edm.EdmType:this\n        mov      rdi, rax\n        test     rdi, rdi\n-       je       SHORT G_M54748_IG13\n-\t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 5.25\n-G_M54748_IG11:\n\u002B       je       SHORT G_M54748_IG06\n\u002B\t\t\t\t\t\t;; size=136 bbWeight=0.50 PerfScore 21.25\n\u002BG_M54748_IG04:\n        mov      rcx, 0xD1FFAB1E      ; System.Data.Entity.Core.Metadata.Edm.CollectionType\n        cmp      qword ptr [rdi], rcx\n-       je       SHORT G_M54748_IG13\n\u002B       je       SHORT G_M54748_IG06\n \t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M54748_IG12:\n\u002BG_M54748_IG05:\n        mov      rsi, rax\n        mov      rdi, rcx\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        mov      rdi, rax\n \t\t\t\t\t\t;; size=21 bbWeight=0.12 PerfScore 0.50\n-G_M54748_IG13:\n\u002BG_M54748_IG06:\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x58]\n        call     [rax\u002B0x10]System.Data.Entity.Core.Metadata.Edm.CollectionType:get_TypeUsage():System.Data.Entity.Core.Metadata.Edm.TypeUsage:this\n@@ -176,52 \u002B123,52 @@ G_M54748_IG13:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x28]System.Data.Entity.Core.Metadata.Edm.MetadataItem:get_BuiltInTypeKind():int:this\n        cmp      eax, 36\n-       je       SHORT G_M54748_IG16\n\u002B       je       SHORT G_M54748_IG09\n \t\t\t\t\t\t;; size=45 bbWeight=0.50 PerfScore 11.50\n-G_M54748_IG14:\n\u002BG_M54748_IG07:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M54748_IG15:\n\u002BG_M54748_IG08:\n        add      rsp, 32\n        pop      rbx\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 1.38\n-G_M54748_IG16:\n\u002BG_M54748_IG09:\n        mov      rdi, rbx\n        call     [r15\u002B0x18]System.Data.Entity.Core.Metadata.Edm.TypeUsage:get_EdmType():System.Data.Entity.Core.Metadata.Edm.EdmType:this\n        mov      rcx, rax\n        test     rcx, rcx\n-       je       SHORT G_M54748_IG19\n\u002B       je       SHORT G_M54748_IG12\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.38\n-G_M54748_IG17:\n\u002BG_M54748_IG10:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Metadata.Edm.RowType\n        cmp      qword ptr [rcx], rdi\n-       je       SHORT G_M54748_IG19\n\u002B       je       SHORT G_M54748_IG12\n \t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M54748_IG18:\n\u002BG_M54748_IG11:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        mov      rcx, rax\n \t\t\t\t\t\t;; size=18 bbWeight=0.12 PerfScore 0.47\n-G_M54748_IG19:\n\u002BG_M54748_IG12:\n        mov      rax, rcx\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M54748_IG20:\n\u002BG_M54748_IG13:\n        add      rsp, 32\n        pop      rbx\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 1.38\n-G_M54748_IG21:\n\u002BG_M54748_IG14:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 542, prolog size 29, PerfScore 78.80, instruction count 139, allocated bytes for code 542 (MethodHash=3f282a23) for method System.Data.Entity.Core.Common.TypeHelpers:GetTvfReturnType(System.Data.Entity.Core.Metadata.Edm.EdmFunction):System.Data.Entity.Core.Metadata.Edm.RowType (FullOpts)\n\u002B; Total bytes of code 386, prolog size 29, PerfScore 55.80, instruction count 100, allocated bytes for code 386 (MethodHash=3f282a23) for method System.Data.Entity.Core.Common.TypeHelpers:GetTvfReturnType(System.Data.Entity.Core.Metadata.Edm.EdmFunction):System.Data.Entity.Core.Metadata.Edm.RowType (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":542,"DiffBytes":386},{"Assembly":"MathNet.Numerics.dasm","Method":"MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:SameAs[double](MathNet.Numerics.LinearAlgebra.Matrix\u00601[double],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this (FullOpts)","Category":"improvement","Description":"594 -\u003E 120 bytes (-474)","ExtraInfo":null,"Diff":"@@ -1,214 \u002B1,65 @@\n ; Assembly listing for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:SameAs[double](MathNet.Numerics.LinearAlgebra.Matrix\u00601[double],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n-; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data\n\u002B; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 12,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]\u003E\n-;  V01 arg1         [V01,T03] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[double]\u003E\n-;  V02 arg2         [V02,T01] ( 11,  6.50)     int  -\u003E  r15         single-def\n-;  V03 arg3         [V03,T02] ( 11,  6.50)     int  -\u003E  r14         single-def\n-;  V04 arg4         [V04,T04] (  3,  2.50)   ubyte  -\u003E  r13         single-def\n-;  V05 loc0         [V05,T08] (  4,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]\u003E\n\u002B;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]\u003E\n\u002B;  V01 arg1         [V01,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[double]\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  4   )     int  -\u003E  r15         single-def\n\u002B;  V03 arg3         [V03,T04] (  4,  4   )     int  -\u003E  r14         single-def\n\u002B;* V04 arg4         [V04    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def\n\u002B;* V05 loc0         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]\u003E\n\u002B;  V07 tmp1         [V07,T00] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cbyte[]\u003E\n-;  V09 tmp3         [V09,T06] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[byte]\u003E\n-;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cbyte[]\u003E\n-;  V11 tmp5         [V11,T11] (  2,  1   )     int  -\u003E  rsi         \u0022Inline return value spill temp\u0022\n-;  V12 tmp6         [V12,T09] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]\u003E\n-;  V13 tmp7         [V13,T10] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]\u003E\n-;  V14 tmp8         [V14,T07] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]\u003E\n-;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cbyte[]\u003E\n-;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022Single return block return value\u0022\n ;\n ; Lcl frame size = 8\n \n G_M60348_IG01:\n-       push     rbp\n        push     r15\n        push     r14\n        push     r13\n-       push     r12\n        push     rbx\n        push     rax\n-       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n        mov      r15d, edx\n        mov      r14d, ecx\n-       mov      r13d, r8d\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.75\n G_M60348_IG02:\n-       mov      r12, gword ptr [rsi\u002B0x08]\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M60348_IG11\n-\t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 7.00\n-G_M60348_IG03:\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[byte]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M60348_IG07\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      SHORT G_M60348_IG05\n\u002B       cmp      byte  ptr [rsi], sil\n        mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        mov      rdi, r13\n        mov      esi, r15d\n        mov      edx, r14d\n        mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]:.ctor(int,int):this\n        call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]:.ctor(int,int):this\n        imul     r15d, r14d\n        movsxd   rsi, r15d\n        mov      rdi, 0xD1FFAB1E      ; byte[]\n        call     CORINFO_HELP_NEWARR_1_VC\n        mov      rsi, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, rbx\n        mov      rsi, r13\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=150 bbWeight=0.50 PerfScore 12.62\n-G_M60348_IG04:\n\u002B\t\t\t\t\t\t;; size=89 bbWeight=1 PerfScore 17.25\n\u002BG_M60348_IG03:\n        add      rsp, 8\n        pop      rbx\n-       pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n-       pop      rbp\n        tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M60348_IG05:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 5.00\n-G_M60348_IG06:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M60348_IG07:\n-       test     r13b, r13b\n-       je       SHORT G_M60348_IG09\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 5.62\n-G_M60348_IG08:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M60348_IG09:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[byte]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]:.ctor(int,int):this\n-       cmp      r15d, r14d\n-       mov      esi, r14d\n-       cmovle   esi, r15d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; byte[]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 7.12\n-G_M60348_IG10:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x10]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:Diagonal(MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[byte]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M60348_IG11:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]:.ctor(int,int):this\n-       mov      esi, r15d\n-       imul     esi, r14d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; byte[]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=89 bbWeight=0.50 PerfScore 7.75\n-G_M60348_IG12:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n\u002B\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 594, prolog size 16, PerfScore 66.75, instruction count 157, allocated bytes for code 594 (MethodHash=10511443) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:SameAs[double](MathNet.Numerics.LinearAlgebra.Matrix\u00601[double],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this (FullOpts)\n\u002B; Total bytes of code 120, prolog size 8, PerfScore 27.25, instruction count 34, allocated bytes for code 120 (MethodHash=10511443) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:SameAs[double](MathNet.Numerics.LinearAlgebra.Matrix\u00601[double],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":594,"DiffBytes":120},{"Assembly":"Microsoft.AspNetCore.OData.dasm","Method":"Microsoft.AspNetCore.OData.Query.Expressions.ExpressionBinderBase:GetFlattenedProperties(System.Linq.Expressions.ParameterExpression):System.Collections.Generic.IDictionary\u00602[System.String,System.Linq.Expressions.Expression]:this (FullOpts)","Category":"improvement","Description":"531 -\u003E 475 bytes (-56)","ExtraInfo":null,"Diff":"@@ -13,19 \u002B13,19 @@\n ;  V02 loc0         [V02,T03] (  8,  4   )     ref  -\u003E  r14         class-hnd \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n ;* V03 loc1         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Linq.Expressions.Expression]\u003E\n ;  V04 loc2         [V04,T05] (  4,  2   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Linq.Expressions.MemberExpression\u003E\n-;  V05 loc3         [V05,T11] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n\u002B;  V05 loc3         [V05,T10] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022non-inline candidate call\u0022 \u003CSystem.RuntimeType\u003E\n ;  V08 tmp2         [V08,T01] (  5,  5   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Linq.Expressions.Expression]\u003E\n ;* V09 tmp3         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022non-inline candidate call\u0022 \u003CSystem.RuntimeType\u003E\n-;  V10 tmp4         [V10,T04] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V11 tmp5         [V11    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V12 tmp6         [V12,T12] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V13 tmp7         [V13,T06] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V14 tmp8         [V14,T07] (  2,  2   )     ref  -\u003E  rax         single-def \u0022Single return block return value\u0022\n-;  V15 tmp9         [V15,T08] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V16 tmp10        [V16,T09] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V17 tmp11        [V17,T10] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V10 tmp4         [V10,T04] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V11 tmp5         [V11    ] (  1,  0.50)   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V12 tmp6         [V12,T11] (  2,  1   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;* V13 tmp7         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V14 tmp8         [V14,T06] (  2,  2   )     ref  -\u003E  rax         single-def \u0022Single return block return value\u0022\n\u002B;  V15 tmp9         [V15,T07] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V16 tmp10        [V16,T08] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V17 tmp11        [V17,T09] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 16\n \n@@ -44,7 \u002B44,7 @@ G_M14729_IG01:\n \t\t\t\t\t\t;; size=29 bbWeight=1 PerfScore 7.50\n G_M14729_IG02:\n        cmp      gword ptr [rbx\u002B0x20], 0\n-       je       G_M14729_IG09\n\u002B       je       G_M14729_IG07\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.00\n G_M14729_IG03:\n        mov      rdi, gword ptr [rbx\u002B0x20]\n@@ -55,7 \u002B55,7 @@ G_M14729_IG03:\n        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:IsAssignableFrom(System.Type):bool:this\n        call     [rax]System.RuntimeType:IsAssignableFrom(System.Type):bool:this\n        test     eax, eax\n-       je       G_M14729_IG09\n\u002B       je       G_M14729_IG07\n        mov      rdi, gword ptr [rbx\u002B0x20]\n        mov      r11, 0xD1FFAB1E      ; code for System.Linq.IQueryable:get_Expression():System.Linq.Expressions.Expression:this\n        call     [r11]System.Linq.IQueryable:get_Expression():System.Linq.Expressions.Expression:this\n@@ -65,13 \u002B65,13 @@ G_M14729_IG03:\n        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        mov      r14, rax\n        test     r14, r14\n-       je       G_M14729_IG09\n\u002B       je       G_M14729_IG07\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.AspNetCore.OData.Query.Expressions.ExpressionBinderBase:SkipFilters(System.Linq.Expressions.MethodCallExpression):System.Linq.Expressions.MethodCallExpression\n        call     [rax]Microsoft.AspNetCore.OData.Query.Expressions.ExpressionBinderBase:SkipFilters(System.Linq.Expressions.MethodCallExpression):System.Linq.Expressions.MethodCallExpression\n        mov      r14, rax\n        test     r14, r14\n-       je       G_M14729_IG09\n\u002B       je       G_M14729_IG07\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.Dictionary\u00602[System.String,System.Linq.Expressions.Expression]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n@@ -86,7 \u002B86,7 @@ G_M14729_IG03:\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.AspNetCore.OData.Query.Expressions.ExpressionBinderBase:CollectContainerAssignments(System.Linq.Expressions.Expression,System.Linq.Expressions.MethodCallExpression,System.Collections.Generic.Dictionary\u00602[System.String,System.Linq.Expressions.Expression])\n        call     [rax]Microsoft.AspNetCore.OData.Query.Expressions.ExpressionBinderBase:CollectContainerAssignments(System.Linq.Expressions.Expression,System.Linq.Expressions.MethodCallExpression,System.Collections.Generic.Dictionary\u00602[System.String,System.Linq.Expressions.Expression])\n        cmp      byte  ptr [rbx\u002B0x30], 0\n-       je       G_M14729_IG07\n\u002B       je       G_M14729_IG05\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; \u0027Instance\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Expressions.Expression:Property(System.Linq.Expressions.Expression,System.String):System.Linq.Expressions.MemberExpression\n@@ -103,35 \u002B103,18 @@ G_M14729_IG03:\n        test     eax, eax\n \t\t\t\t\t\t;; size=267 bbWeight=0.50 PerfScore 26.75\n G_M14729_IG04:\n-       je       G_M14729_IG07\n\u002B       je       SHORT G_M14729_IG05\n        mov      rdi, r14\n        mov      rax, qword ptr [r14]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x20]System.Linq.Expressions.MethodCallExpression:GetOrMakeArguments():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]:this\n-       mov      r15, rax\n-       test     r15, r15\n-       je       G_M14729_IG11\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M14729_IG05\n-       lea      rsi, [rbp-0x28]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M14729_IG06\n-\t\t\t\t\t\t;; size=80 bbWeight=0.50 PerfScore 12.25\n-G_M14729_IG05:\n\u002B       je       G_M14729_IG09\n        lea      rdx, [rbp-0x28]\n-       mov      rsi, r15\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Linq.Expressions.Expression](System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.Expression],byref):System.Linq.Expressions.Expression\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M14729_IG06:\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Expressions.MethodCallExpression\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n@@ -140,16 \u002B123,28 @@ G_M14729_IG06:\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.AspNetCore.OData.Query.Expressions.ExpressionBinderBase:SkipFilters(System.Linq.Expressions.MethodCallExpression):System.Linq.Expressions.MethodCallExpression\n        call     [rax]Microsoft.AspNetCore.OData.Query.Expressions.ExpressionBinderBase:SkipFilters(System.Linq.Expressions.MethodCallExpression):System.Linq.Expressions.MethodCallExpression\n        test     rax, rax\n-       je       SHORT G_M14729_IG07\n\u002B       je       SHORT G_M14729_IG05\n        mov      rdi, rbx\n        mov      rsi, rax\n        mov      rdx, r13\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.AspNetCore.OData.Query.Expressions.ExpressionBinderBase:CollectContainerAssignments(System.Linq.Expressions.Expression,System.Linq.Expressions.MethodCallExpression,System.Collections.Generic.Dictionary\u00602[System.String,System.Linq.Expressions.Expression])\n        call     [rax]Microsoft.AspNetCore.OData.Query.Expressions.ExpressionBinderBase:CollectContainerAssignments(System.Linq.Expressions.Expression,System.Linq.Expressions.MethodCallExpression,System.Collections.Generic.Dictionary\u00602[System.String,System.Linq.Expressions.Expression])\n-\t\t\t\t\t\t;; size=66 bbWeight=0.50 PerfScore 6.25\n-G_M14729_IG07:\n\u002B\t\t\t\t\t\t;; size=119 bbWeight=0.50 PerfScore 13.12\n\u002BG_M14729_IG05:\n        mov      rax, r13\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n\u002BG_M14729_IG06:\n\u002B       add      rsp, 16\n\u002B       pop      rbx\n\u002B       pop      r13\n\u002B       pop      r14\n\u002B       pop      r15\n\u002B       pop      rbp\n\u002B       ret      \n\u002B\t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 1.88\n\u002BG_M14729_IG07:\n\u002B       xor      rax, rax\n\u002B\t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n G_M14729_IG08:\n        add      rsp, 16\n        pop      rbx\n@@ -160,23 \u002B155,11 @@ G_M14729_IG08:\n        ret      \n \t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 1.88\n G_M14729_IG09:\n-       xor      rax, rax\n-\t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M14729_IG10:\n-       add      rsp, 16\n-       pop      rbx\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       ret      \n-\t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 1.88\n-G_M14729_IG11:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 531, prolog size 23, PerfScore 61.88, instruction count 126, allocated bytes for code 531 (MethodHash=948ec676) for method Microsoft.AspNetCore.OData.Query.Expressions.ExpressionBinderBase:GetFlattenedProperties(System.Linq.Expressions.ParameterExpression):System.Collections.Generic.IDictionary\u00602[System.String,System.Linq.Expressions.Expression]:this (FullOpts)\n\u002B; Total bytes of code 475, prolog size 23, PerfScore 54.38, instruction count 113, allocated bytes for code 475 (MethodHash=948ec676) for method Microsoft.AspNetCore.OData.Query.Expressions.ExpressionBinderBase:GetFlattenedProperties(System.Linq.Expressions.ParameterExpression):System.Collections.Generic.IDictionary\u00602[System.String,System.Linq.Expressions.Expression]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":531,"DiffBytes":475},{"Assembly":"Microsoft.EntityFrameworkCore.dasm","Method":"Microsoft.EntityFrameworkCore.Query.ExpressionPrinter:VisitLambda[System.Numerics.Vector\u00601[float]](System.Linq.Expressions.Expression\u00601[System.Numerics.Vector\u00601[float]]):System.Linq.Expressions.Expression:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 797 bytes (-52)","ExtraInfo":null,"Diff":"@@ -8,34 \u002B8,34 @@\n ; 0 inlinees with PGO data; 10 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T02] ( 12, 24   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.ExpressionPrinter\u003E\n\u002B;  V00 this         [V00,T01] ( 12, 24   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.ExpressionPrinter\u003E\n ;  V01 arg1         [V01,T05] ( 10, 13   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Linq.Expressions.Expression\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V02 loc0         [V02,T00] ( 12, 28   )     ref  -\u003E  [rbp-0x38]  do-not-enreg[M] class-hnd EH-live \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;  V03 loc1         [V03,T04] (  5, 20   )     ref  -\u003E  r13         class-hnd \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n-;  V04 loc2         [V04,T10] (  2,  8   )     ref  -\u003E  rdx         class-hnd exact \u003CSystem.String\u003E\n-;  V05 loc3         [V05,T11] (  2,  8   )     ref  -\u003E  rsi         class-hnd \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n\u002B;  V04 loc2         [V04,T08] (  2,  8   )     ref  -\u003E  rdx         class-hnd exact \u003CSystem.String\u003E\n\u002B;  V05 loc3         [V05,T09] (  2,  8   )     ref  -\u003E  rsi         class-hnd \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V08 tmp2         [V08,T19] (  3,  2   )     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V09 tmp3         [V09,T13] (  3,  5   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V08 tmp2         [V08,T18] (  3,  2   )     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V09 tmp3         [V09,T12] (  3,  5   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V11 tmp5         [V11,T03] (  3, 24   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Linq.Expressions.ParameterExpression,System.String]\u003E\n-;  V12 tmp6         [V12,T01] (  4, 28   )     ref  -\u003E  r12         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V13 tmp7         [V13    ] (  3,  8   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V11 tmp5         [V11,T02] (  3, 24   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Linq.Expressions.ParameterExpression,System.String]\u003E\n\u002B;  V12 tmp6         [V12,T03] (  3, 24   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V13 tmp7         [V13    ] (  2,  8   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V14 tmp8         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V15 tmp9         [V15,T09] (  3,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n-;  V16 tmp10        [V16,T06] (  4, 12   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V15 tmp9         [V15,T10] (  2,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n\u002B;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;* V17 tmp11        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V18 tmp12        [V18,T20] (  3,  2   )     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V19 tmp13        [V19,T14] (  3,  5   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V18 tmp12        [V18,T19] (  3,  2   )     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V19 tmp13        [V19,T13] (  3,  5   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V21 tmp15        [V21,T15] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V22 tmp16        [V22,T17] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V23 tmp17        [V23,T07] (  3, 12   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n-;  V24 tmp18        [V24,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V25 tmp19        [V25,T18] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V26 tmp20        [V26,T12] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V27 cse0         [V27,T08] (  6,  9   )    long  -\u003E  r14         \u0022CSE #02: moderate\u0022\n\u002B;  V21 tmp15        [V21,T14] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V22 tmp16        [V22,T16] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V23 tmp17        [V23,T06] (  3, 12   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n\u002B;  V24 tmp18        [V24,T15] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V25 tmp19        [V25,T17] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V26 tmp20        [V26,T11] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V27 cse0         [V27,T07] (  6,  9   )    long  -\u003E  r14         \u0022CSE #02: moderate\u0022\n ;\n ; Lcl frame size = 24\n \n@@ -84,7 \u002B84,7 @@ G_M57720_IG04:\n G_M57720_IG05:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M57720_IG28\n\u002B       je       G_M57720_IG25\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n G_M57720_IG06:\n        mov      rdi, 0xD1FFAB1E      ; data for System.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]:Empty\n@@ -105,7 \u002B105,7 @@ G_M57720_IG09:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():bool:this\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n-       je       G_M57720_IG17\n\u002B       je       G_M57720_IG14\n \t\t\t\t\t\t;; size=25 bbWeight=8 PerfScore 44.00\n G_M57720_IG10:\n        mov      rdi, gword ptr [rbp-0x38]\n@@ -126,38 \u002B126,19 @@ G_M57720_IG10:\n        call     [rax\u002B0x20]System.Linq.Expressions.ExpressionVisitor:Visit(System.Linq.Expressions.Expression):System.Linq.Expressions.Expression:this\n        mov      rdi, r15\n        call     [r14\u002B0x30]System.Linq.Expressions.LambdaExpression:GetOrMakeParameters():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]:this\n-       mov      r12, rax\n-       test     r12, r12\n-       je       SHORT G_M57720_IG15\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ParameterExpression]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n        je       SHORT G_M57720_IG12\n-\t\t\t\t\t\t;; size=109 bbWeight=4 PerfScore 126.00\n-G_M57720_IG11:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M57720_IG13\n-\t\t\t\t\t\t;; size=19 bbWeight=2 PerfScore 19.50\n-G_M57720_IG12:\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r12\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.Linq.Expressions.ParameterExpression](System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.ParameterExpression],byref):System.Linq.Expressions.ParameterExpression\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=2 PerfScore 8.50\n-G_M57720_IG13:\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       SHORT G_M57720_IG16\n\u002B       je       SHORT G_M57720_IG13\n        cmp      r13, rax\n        je       G_M57720_IG09\n-\t\t\t\t\t\t;; size=15 bbWeight=4 PerfScore 13.00\n-G_M57720_IG14:\n\u002B\t\t\t\t\t\t;; size=120 bbWeight=4 PerfScore 135.00\n\u002BG_M57720_IG11:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      rsi, 0xD1FFAB1E      ; \u0027, \u0027\n        mov      rax, qword ptr [rdi]\n@@ -165,18 \u002B146,18 @@ G_M57720_IG14:\n        call     [rax\u002B0x30]Microsoft.EntityFrameworkCore.Infrastructure.IndentedStringBuilder:Append(System.String):Microsoft.EntityFrameworkCore.Infrastructure.IndentedStringBuilder:this\n        jmp      G_M57720_IG09\n \t\t\t\t\t\t;; size=29 bbWeight=2 PerfScore 22.50\n-G_M57720_IG15:\n\u002BG_M57720_IG12:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M57720_IG16:\n\u002BG_M57720_IG13:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M57720_IG17:\n\u002BG_M57720_IG14:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n@@ -186,16 \u002B167,16 @@ G_M57720_IG17:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        cmp      eax, 1\n-       je       SHORT G_M57720_IG19\n\u002B       je       SHORT G_M57720_IG16\n \t\t\t\t\t\t;; size=46 bbWeight=1 PerfScore 14.00\n-G_M57720_IG18:\n\u002BG_M57720_IG15:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      rsi, 0xD1FFAB1E      ; \u0027)\u0027\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]Microsoft.EntityFrameworkCore.Infrastructure.IndentedStringBuilder:Append(System.String):Microsoft.EntityFrameworkCore.Infrastructure.IndentedStringBuilder:this\n \t\t\t\t\t\t;; size=24 bbWeight=0.50 PerfScore 4.62\n-G_M57720_IG19:\n\u002BG_M57720_IG16:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      rsi, 0xD1FFAB1E      ; \u0027 =\u003E \u0027\n        mov      rax, qword ptr [rdi]\n@@ -213,35 \u002B194,35 @@ G_M57720_IG19:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       jne      SHORT G_M57720_IG22\n\u002B       jne      SHORT G_M57720_IG19\n \t\t\t\t\t\t;; size=72 bbWeight=1 PerfScore 28.50\n-G_M57720_IG20:\n\u002BG_M57720_IG17:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M57720_IG29\n\u002B       je       G_M57720_IG26\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n-G_M57720_IG21:\n\u002BG_M57720_IG18:\n        mov      rdi, 0xD1FFAB1E      ; data for System.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]:Empty\n        mov      r13, gword ptr [rdi]\n-       jmp      SHORT G_M57720_IG23\n\u002B       jmp      SHORT G_M57720_IG20\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M57720_IG22:\n\u002BG_M57720_IG19:\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEnumerable\u00601[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator\u00601[System.__Canon]:this\n        call     [r11]System.Collections.Generic.IEnumerable\u00601[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator\u00601[System.__Canon]:this\n        mov      r13, rax\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 2.75\n-G_M57720_IG23:\n\u002BG_M57720_IG20:\n        mov      gword ptr [rbp-0x38], r13\n \t\t\t\t\t\t;; size=4 bbWeight=1 PerfScore 1.00\n-G_M57720_IG24:\n\u002BG_M57720_IG21:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():bool:this\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n-       je       SHORT G_M57720_IG26\n\u002B       je       SHORT G_M57720_IG23\n \t\t\t\t\t\t;; size=21 bbWeight=8 PerfScore 44.00\n-G_M57720_IG25:\n\u002BG_M57720_IG22:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEnumerator\u00601[System.__Canon]:get_Current():System.__Canon:this\n        call     [r11]System.Collections.Generic.IEnumerator\u00601[System.__Canon]:get_Current():System.__Canon:this\n@@ -250,15 \u002B231,15 @@ G_M57720_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary\u00602[System.__Canon,System.__Canon]:Remove(System.__Canon):bool:this\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.Collections.Generic.Dictionary\u00602[System.__Canon,System.__Canon]:Remove(System.__Canon):bool:this\n-       jmp      SHORT G_M57720_IG24\n\u002B       jmp      SHORT G_M57720_IG21\n \t\t\t\t\t\t;; size=40 bbWeight=4 PerfScore 55.00\n-G_M57720_IG26:\n\u002BG_M57720_IG23:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        mov      rax, r15\n \t\t\t\t\t\t;; size=20 bbWeight=1 PerfScore 4.50\n-G_M57720_IG27:\n\u002BG_M57720_IG24:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -268,52 \u002B249,52 @@ G_M57720_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M57720_IG28:\n\u002BG_M57720_IG25:\n        mov      rdi, 0xD1FFAB1E      ; System.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M57720_IG06\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M57720_IG29:\n\u002BG_M57720_IG26:\n        mov      rdi, 0xD1FFAB1E      ; System.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M57720_IG21\n\u002B       jmp      G_M57720_IG18\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M57720_IG30:\n\u002BG_M57720_IG27:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M57720_IG31:\n\u002BG_M57720_IG28:\n        cmp      gword ptr [rbp-0x38], 0\n-       je       SHORT G_M57720_IG32\n\u002B       je       SHORT G_M57720_IG29\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M57720_IG32:\n\u002BG_M57720_IG29:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M57720_IG33:\n\u002BG_M57720_IG30:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M57720_IG34:\n\u002BG_M57720_IG31:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M57720_IG35:\n\u002BG_M57720_IG32:\n        cmp      gword ptr [rbp-0x38], 0\n-       je       SHORT G_M57720_IG36\n\u002B       je       SHORT G_M57720_IG33\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M57720_IG36:\n\u002BG_M57720_IG33:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M57720_IG37:\n\u002BG_M57720_IG34:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 31, PerfScore 440.25, instruction count 201, allocated bytes for code 849 (MethodHash=f39a1e87) for method Microsoft.EntityFrameworkCore.Query.ExpressionPrinter:VisitLambda[System.Numerics.Vector\u00601[float]](System.Linq.Expressions.Expression\u00601[System.Numerics.Vector\u00601[float]]):System.Linq.Expressions.Expression:this (FullOpts)\n\u002B; Total bytes of code 797, prolog size 31, PerfScore 408.25, instruction count 188, allocated bytes for code 797 (MethodHash=f39a1e87) for method Microsoft.EntityFrameworkCore.Query.ExpressionPrinter:VisitLambda[System.Numerics.Vector\u00601[float]](System.Linq.Expressions.Expression\u00601[System.Numerics.Vector\u00601[float]]):System.Linq.Expressions.Expression:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":797},{"Assembly":"Microsoft.OpenApi.dasm","Method":"Microsoft.OpenApi.OpenApiEncoding:SerializeInternal(Microsoft.OpenApi.IOpenApiWriter,int,System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]):this (FullOpts)","Category":"improvement","Description":"1,764 -\u003E 1,725 bytes (-39)","ExtraInfo":null,"Diff":"@@ -20,7 \u002B20,7 @@\n ;  V09 tmp4         [V09,T05] (  3,  6   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CMicrosoft.OpenApi.ParameterStyle\u003E\n ;* V10 tmp5         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V11 tmp6         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V12 tmp7         [V12,T12] (  3,  2.50)     ref  -\u003E  r14        \n\u002B;  V12 tmp7         [V12,T10] (  3,  2.50)     ref  -\u003E  r14        \n ;* V13 tmp8         [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[bool]\u003E\n ;* V14 tmp9         [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[bool]\u003E\n ;* V15 tmp10        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n@@ -31,54 \u002B31,52 @@\n ;* V20 tmp15        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMicrosoft.OpenApi.OpenApiWriterExtensions\u002B\u003C\u003Ec__DisplayClass21_0\u00601[Microsoft.OpenApi.IOpenApiHeader]\u003E\n ;  V21 tmp16        [V21,T28] (  3,  1.50)     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.OpenApi.OpenApiWriterExtensions\u002B\u003C\u003Ec__DisplayClass21_0\u00601[Microsoft.OpenApi.IOpenApiHeader]\u003E\n ;  V22 tmp17        [V22,T07] (  4,  4   )     ref  -\u003E  [rbp-0x40]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u00603[Microsoft.OpenApi.IOpenApiWriter,System.String,Microsoft.OpenApi.IOpenApiHeader]\u003E\n-;  V23 tmp18        [V23,T16] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IDictionary\u00602[System.String,Microsoft.OpenApi.OpenApiEncoding]\u003E\n\u002B;  V23 tmp18        [V23,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IDictionary\u00602[System.String,Microsoft.OpenApi.OpenApiEncoding]\u003E\n ;* V24 tmp19        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMicrosoft.OpenApi.OpenApiWriterExtensions\u002B\u003C\u003Ec__DisplayClass21_0\u00601[Microsoft.OpenApi.OpenApiEncoding]\u003E\n ;  V25 tmp20        [V25,T29] (  3,  1.50)     ref  -\u003E  [rbp-0x48]  class-hnd exact spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.OpenApi.OpenApiWriterExtensions\u002B\u003C\u003Ec__DisplayClass21_0\u00601[Microsoft.OpenApi.OpenApiEncoding]\u003E\n ;  V26 tmp21        [V26,T08] (  4,  4   )     ref  -\u003E  [rbp-0x50]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u00603[Microsoft.OpenApi.IOpenApiWriter,System.String,Microsoft.OpenApi.OpenApiEncoding]\u003E\n-;  V27 tmp22        [V27,T17] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IDictionary\u00602[System.String,Microsoft.OpenApi.OpenApiEncoding]\u003E\n\u002B;  V27 tmp22        [V27,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IDictionary\u00602[System.String,Microsoft.OpenApi.OpenApiEncoding]\u003E\n ;* V28 tmp23        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMicrosoft.OpenApi.OpenApiWriterExtensions\u002B\u003C\u003Ec__DisplayClass21_0\u00601[Microsoft.OpenApi.OpenApiEncoding]\u003E\n ;  V29 tmp24        [V29,T30] (  3,  1.50)     ref  -\u003E  [rbp-0x58]  class-hnd exact spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.OpenApi.OpenApiWriterExtensions\u002B\u003C\u003Ec__DisplayClass21_0\u00601[Microsoft.OpenApi.OpenApiEncoding]\u003E\n ;  V30 tmp25        [V30,T09] (  4,  4   )     ref  -\u003E  [rbp-0x60]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u00603[Microsoft.OpenApi.IOpenApiWriter,System.String,Microsoft.OpenApi.OpenApiEncoding]\u003E\n-;  V31 tmp26        [V31,T10] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiEncoding\u003E\n\u002B;  V31 tmp26        [V31,T16] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiEncoding\u003E\n ;  V32 tmp27        [V32,T31] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n-;* V33 tmp28        [V33    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling qmarkNull\u0022\n-;* V34 tmp29        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;* V35 tmp30        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;  V36 tmp31        [V36,T36] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V37 tmp32        [V37,T11] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiEncoding\u003E\n-;  V38 tmp33        [V38,T32] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n-;* V39 tmp34        [V39    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling qmarkNull\u0022\n-;* V40 tmp35        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;* V41 tmp36        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;  V42 tmp37        [V42,T37] (  3,  0   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V43 tmp38        [V43,T18] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IList\u00601[Microsoft.OpenApi.OpenApiEncoding]\u003E\n-;  V44 tmp39        [V44,T19] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IList\u00601[Microsoft.OpenApi.OpenApiEncoding]\u003E\n-;* V45 tmp40        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;* V46 tmp41        [V46    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;* V47 tmp42        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n-;* V48 tmp43        [V48    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V49 tmp44        [V49    ] (  3,  3   )  struct ( 8) [rbp-0x30]  do-not-enreg[SB] ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[bool]\u003E\n-;  V50 tmp45        [V50,T24] (  2,  2   )   ubyte  -\u003E  r14         \u0022Inlining Arg\u0022\n-;  V51 tmp46        [V51,T20] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Boolean\u003E\n-;* V52 tmp47        [V52    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[bool]\u003E\n-;  V53 tmp48        [V53,T25] (  2,  2   )   ubyte  -\u003E  rdi         single-def \u0022field V04.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V54 tmp49        [V54,T26] (  2,  2   )     int  -\u003E  r14         single-def \u0022field V04.value (fldOffset=0x4)\u0022 P-INDEP\n-;* V55 tmp50        [V55    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;* V56 tmp51        [V56    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022field V13.value (fldOffset=0x1)\u0022 P-INDEP\n-;* V57 tmp52        [V57    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022field V14.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;* V58 tmp53        [V58    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022field V14.value (fldOffset=0x1)\u0022 P-INDEP\n-;  V59 tmp54        [V59,T33] (  2,  1.50)   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[] \u0022field V49.hasValue (fldOffset=0x0)\u0022 P-DEP\n-;  V60 tmp55        [V60,T34] (  2,  1.50)   ubyte  -\u003E  [rbp-0x2F]  do-not-enreg[] \u0022field V49.value (fldOffset=0x1)\u0022 P-DEP\n-;  V61 tmp56        [V61,T27] (  2,  2   )   ubyte  -\u003E  rdi         single-def \u0022field V52.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V62 tmp57        [V62,T21] (  3,  2   )   ubyte  -\u003E  r14         single-def \u0022field V52.value (fldOffset=0x1)\u0022 P-INDEP\n-;  V63 tmp58        [V63,T22] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V64 tmp59        [V64,T38] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V65 tmp60        [V65,T23] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V66 tmp61        [V66,T39] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V67 tmp62        [V67,T40] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V68 cse0         [V68,T13] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #03: moderate\u0022\n-;  V69 cse1         [V69,T14] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #06: moderate\u0022\n-;  V70 cse2         [V70,T15] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #13: moderate\u0022\n\u002B;* V33 tmp28        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;* V34 tmp29        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;  V35 tmp30        [V35,T36] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V36 tmp31        [V36,T17] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiEncoding\u003E\n\u002B;  V37 tmp32        [V37,T32] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n\u002B;* V38 tmp33        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;* V39 tmp34        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;  V40 tmp35        [V40,T37] (  3,  0   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V41 tmp36        [V41,T18] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IList\u00601[Microsoft.OpenApi.OpenApiEncoding]\u003E\n\u002B;  V42 tmp37        [V42,T19] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IList\u00601[Microsoft.OpenApi.OpenApiEncoding]\u003E\n\u002B;* V43 tmp38        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;* V44 tmp39        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;* V45 tmp40        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n\u002B;* V46 tmp41        [V46    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n\u002B;  V47 tmp42        [V47    ] (  3,  3   )  struct ( 8) [rbp-0x30]  do-not-enreg[SB] ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[bool]\u003E\n\u002B;  V48 tmp43        [V48,T24] (  2,  2   )   ubyte  -\u003E  r14         \u0022Inlining Arg\u0022\n\u002B;  V49 tmp44        [V49,T20] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Boolean\u003E\n\u002B;* V50 tmp45        [V50    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[bool]\u003E\n\u002B;  V51 tmp46        [V51,T25] (  2,  2   )   ubyte  -\u003E  rdi         single-def \u0022field V04.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp47        [V52,T26] (  2,  2   )     int  -\u003E  r14         single-def \u0022field V04.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;* V53 tmp48        [V53    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V54 tmp49        [V54    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022field V13.value (fldOffset=0x1)\u0022 P-INDEP\n\u002B;* V55 tmp50        [V55    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022field V14.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V56 tmp51        [V56    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022field V14.value (fldOffset=0x1)\u0022 P-INDEP\n\u002B;  V57 tmp52        [V57,T33] (  2,  1.50)   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[] \u0022field V47.hasValue (fldOffset=0x0)\u0022 P-DEP\n\u002B;  V58 tmp53        [V58,T34] (  2,  1.50)   ubyte  -\u003E  [rbp-0x2F]  do-not-enreg[] \u0022field V47.value (fldOffset=0x1)\u0022 P-DEP\n\u002B;  V59 tmp54        [V59,T27] (  2,  2   )   ubyte  -\u003E  rdi         single-def \u0022field V50.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V60 tmp55        [V60,T21] (  3,  2   )   ubyte  -\u003E  r14         single-def \u0022field V50.value (fldOffset=0x1)\u0022 P-INDEP\n\u002B;  V61 tmp56        [V61,T22] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V62 tmp57        [V62,T38] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;  V63 tmp58        [V63,T23] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V64 tmp59        [V64,T39] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;  V65 tmp60        [V65,T40] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;  V66 cse0         [V66,T11] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #03: moderate\u0022\n\u002B;  V67 cse1         [V67,T12] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #06: moderate\u0022\n\u002B;  V68 cse2         [V68,T13] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #11: moderate\u0022\n ;\n ; Lcl frame size = 56\n \n@@ -227,16 \u002B225,13 @@ G_M18337_IG09:\n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.25\n G_M18337_IG10:\n        cmp      r13d, 3\n-       jge      G_M18337_IG12\n\u002B       jge      SHORT G_M18337_IG12\n        mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.IEnumerable\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFINTERFACE\n        call     [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE\n        test     rax, rax\n        je       SHORT G_M18337_IG11\n-       mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Nodes.JsonArray\n-       cmp      qword ptr [r12], rdi\n-       je       SHORT G_M18337_IG11\n        mov      rdi, rax\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n        call     [r11]System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n@@ -245,7 \u002B240,7 @@ G_M18337_IG10:\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n        je       G_M18337_IG14\n-\t\t\t\t\t\t;; size=96 bbWeight=0.50 PerfScore 8.88\n\u002B\t\t\t\t\t\t;; size=76 bbWeight=0.50 PerfScore 7.25\n G_M18337_IG11:\n        test     r14, r14\n        je       G_M18337_IG27\n@@ -257,8 \u002B252,8 @@ G_M18337_IG11:\n        mov      rdx, r12\n        mov      rdi, gword ptr [r14\u002B0x10]\n        call     [r14\u002B0x18]System.Action\u00602[System.__Canon,System.__Canon]:Invoke(System.__Canon,System.__Canon):this\n-       jmp      G_M18337_IG14\n-\t\t\t\t\t\t;; size=54 bbWeight=0.50 PerfScore 6.25\n\u002B       jmp      SHORT G_M18337_IG14\n\u002B\t\t\t\t\t\t;; size=51 bbWeight=0.50 PerfScore 6.25\n G_M18337_IG12:\n        mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.IEnumerable\n@@ -266,9 \u002B261,6 @@ G_M18337_IG12:\n        call     [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE\n        test     rax, rax\n        je       SHORT G_M18337_IG13\n-       mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Nodes.JsonArray\n-       cmp      qword ptr [r12], rdi\n-       je       SHORT G_M18337_IG13\n        mov      rdi, rax\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n        call     [r11]System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n@@ -277,7 \u002B269,7 @@ G_M18337_IG12:\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n        je       SHORT G_M18337_IG14\n-\t\t\t\t\t\t;; size=82 bbWeight=0.50 PerfScore 8.25\n\u002B\t\t\t\t\t\t;; size=66 bbWeight=0.50 PerfScore 6.62\n G_M18337_IG13:\n        test     r14, r14\n        je       G_M18337_IG26\n@@ -478,5 \u002B470,5 @@ G_M18337_IG27:\n        int3     \n \t\t\t\t\t\t;; size=87 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1764, prolog size 19, PerfScore 160.75, instruction count 341, allocated bytes for code 1764 (MethodHash=7c9ab85e) for method Microsoft.OpenApi.OpenApiEncoding:SerializeInternal(Microsoft.OpenApi.IOpenApiWriter,int,System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]):this (FullOpts)\n\u002B; Total bytes of code 1725, prolog size 19, PerfScore 157.50, instruction count 335, allocated bytes for code 1725 (MethodHash=7c9ab85e) for method Microsoft.OpenApi.OpenApiEncoding:SerializeInternal(Microsoft.OpenApi.IOpenApiWriter,int,System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1764,"DiffBytes":1725},{"Assembly":"MongoDB.Bson.dasm","Method":"MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[short](MongoDB.Bson.BinaryVector\u00601[short]):byte[] (FullOpts)","Category":"improvement","Description":"170 -\u003E 142 bytes (-28)","ExtraInfo":null,"Diff":"@@ -1,125 \u002B1,111 @@\n ; Assembly listing for method MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[short](MongoDB.Bson.BinaryVector\u00601[short]):byte[] (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; fully interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 7 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T00] (  9,  7.75)     ref  -\u003E  rbx         class-hnd single-def \u003CMongoDB.Bson.BinaryVector\u00601[short]\u003E\n-;  V01 loc0         [V01,T04] (  3,  2.50)   ubyte  -\u003E  r15        \n-;* V02 loc1         [V02,T12] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CMongoDB.Bson.BinaryVectorPackedBit\u003E\n\u002B;  V00 arg0         [V00,T00] (  6,  6   )     ref  -\u003E  rbx         class-hnd single-def \u003CMongoDB.Bson.BinaryVector\u00601[short]\u003E\n\u002B;* V01 loc0         [V01,T11] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def\n\u002B;* V02 loc1         [V02    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Bson.BinaryVectorPackedBit\u003E\n ;* V03 loc2         [V03    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u003CSystem.ReadOnlyMemory\u00601[short]\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;* V05 tmp1         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CMongoDB.Bson.BinaryVectorPackedBit\u003E\n-;* V06 tmp2         [V06    ] (  0,  0   )  struct (16) zero-ref    \u0022impAppendStmt\u0022 \u003CSystem.ReadOnlySpan\u00601[short]\u003E\n-;  V07 tmp3         [V07,T01] (  6,  4   )   byref  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n-;  V08 tmp4         [V08,T03] (  6,  4   )     int  -\u003E  rsi         \u0022Inline stloc first use temp\u0022\n-;* V09 tmp5         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Object\u003E\n-;* V10 tmp6         [V10    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ReadOnlySpan\u00601[short]\u003E\n-;* V11 tmp7         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022updating class info\u0022 \u003CSystem.Buffers.MemoryManager\u00601[short]\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CSystem.Span\u00601[short]\u003E\n-;* V13 tmp9         [V13    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Span\u00601[short]\u003E\n-;  V14 tmp10        [V14,T07] (  3,  1.50)    long  -\u003E  rdi         single-def \u0022Inline stloc first use temp\u0022\n-;* V15 tmp11        [V15    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022Inline stloc first use temp\u0022\n-;* V16 tmp12        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022updating class info\u0022 \u003Cshort[]\u003E\n-;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022updating class info\u0022 \u003Cshort[]\u003E\n-;  V18 tmp14        [V18,T06] (  2,  2   )   byref  -\u003E  rcx         single-def \u0022Inlining Arg\u0022\n-;* V19 tmp15        [V19    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Span\u00601[short]\u003E\n-;  V20 tmp16        [V20,T02] (  6,  4   )     ref  -\u003E  rdi         single-def \u0022field V03._object (fldOffset=0x0)\u0022 P-INDEP\n-;  V21 tmp17        [V21,T09] (  2,  1.50)     int  -\u003E  r14         single-def \u0022field V03._index (fldOffset=0x8)\u0022 P-INDEP\n-;  V22 tmp18        [V22,T05] (  3,  2   )     int  -\u003E  r13         single-def \u0022field V03._length (fldOffset=0xc)\u0022 P-INDEP\n-;* V23 tmp19        [V23    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V06._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V24 tmp20        [V24    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V06._length (fldOffset=0x8)\u0022 P-INDEP\n-;* V25 tmp21        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V10._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V26 tmp22        [V26    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V10._length (fldOffset=0x8)\u0022 P-INDEP\n-;* V27 tmp23        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref    do-not-enreg[] \u0022field V12._reference (fldOffset=0x0)\u0022 P-DEP\n-;* V28 tmp24        [V28    ] (  0,  0   )     int  -\u003E  zero-ref    do-not-enreg[] \u0022field V12._length (fldOffset=0x8)\u0022 P-DEP\n-;  V29 tmp25        [V29,T10] (  2,  1   )   byref  -\u003E  rax         \u0022field V13._reference (fldOffset=0x0)\u0022 P-INDEP\n-;  V30 tmp26        [V30,T11] (  2,  1   )     int  -\u003E  rsi         \u0022field V13._length (fldOffset=0x8)\u0022 P-INDEP\n-;* V31 tmp27        [V31    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V19._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V32 tmp28        [V32    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V19._length (fldOffset=0x8)\u0022 P-INDEP\n-;  V33 cse0         [V33,T08] (  3,  1.50)    long  -\u003E  rax         \u0022CSE #01: moderate\u0022\n\u002B;* V05 tmp1         [V05    ] (  0,  0   )  struct (16) zero-ref    \u0022impAppendStmt\u0022 \u003CSystem.ReadOnlySpan\u00601[short]\u003E\n\u002B;  V06 tmp2         [V06,T01] (  6,  4   )   byref  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n\u002B;  V07 tmp3         [V07,T03] (  6,  4   )     int  -\u003E  rsi         \u0022Inline stloc first use temp\u0022\n\u002B;* V08 tmp4         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Object\u003E\n\u002B;* V09 tmp5         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ReadOnlySpan\u00601[short]\u003E\n\u002B;* V10 tmp6         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022updating class info\u0022 \u003CSystem.Buffers.MemoryManager\u00601[short]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CSystem.Span\u00601[short]\u003E\n\u002B;* V12 tmp8         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Span\u00601[short]\u003E\n\u002B;  V13 tmp9         [V13,T06] (  3,  1.50)    long  -\u003E  rdi         single-def \u0022Inline stloc first use temp\u0022\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022Inline stloc first use temp\u0022\n\u002B;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022updating class info\u0022 \u003Cshort[]\u003E\n\u002B;* V16 tmp12        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022updating class info\u0022 \u003Cshort[]\u003E\n\u002B;  V17 tmp13        [V17,T05] (  2,  2   )   byref  -\u003E  rcx         single-def \u0022Inlining Arg\u0022\n\u002B;* V18 tmp14        [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Span\u00601[short]\u003E\n\u002B;  V19 tmp15        [V19,T02] (  6,  4   )     ref  -\u003E  rdi         single-def \u0022field V03._object (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V20 tmp16        [V20,T08] (  2,  1.50)     int  -\u003E  r15         single-def \u0022field V03._index (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V21 tmp17        [V21,T04] (  3,  2   )     int  -\u003E  r14         single-def \u0022field V03._length (fldOffset=0xc)\u0022 P-INDEP\n\u002B;* V22 tmp18        [V22    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V05._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V23 tmp19        [V23    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V05._length (fldOffset=0x8)\u0022 P-INDEP\n\u002B;* V24 tmp20        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V09._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V25 tmp21        [V25    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V09._length (fldOffset=0x8)\u0022 P-INDEP\n\u002B;* V26 tmp22        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref    do-not-enreg[] \u0022field V11._reference (fldOffset=0x0)\u0022 P-DEP\n\u002B;* V27 tmp23        [V27    ] (  0,  0   )     int  -\u003E  zero-ref    do-not-enreg[] \u0022field V11._length (fldOffset=0x8)\u0022 P-DEP\n\u002B;  V28 tmp24        [V28,T09] (  2,  1   )   byref  -\u003E  rax         \u0022field V12._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V29 tmp25        [V29,T10] (  2,  1   )     int  -\u003E  rsi         \u0022field V12._length (fldOffset=0x8)\u0022 P-INDEP\n\u002B;* V30 tmp26        [V30    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V18._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V31 tmp27        [V31    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V18._length (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V32 cse0         [V32,T07] (  3,  1.50)    long  -\u003E  rax         \u0022CSE #01: moderate\u0022\n ;\n-; Lcl frame size = 0\n\u002B; Lcl frame size = 8\n \n G_M49110_IG01:\n        push     rbp\n        push     r15\n        push     r14\n-       push     r13\n        push     rbx\n\u002B       push     rax\n        lea      rbp, [rsp\u002B0x20]\n        mov      rbx, rdi\n-\t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 5.75\n\u002B\t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 5.75\n G_M49110_IG02:\n-       xor      r15d, r15d\n-       test     rbx, rbx\n-       je       SHORT G_M49110_IG05\n-\t\t\t\t\t\t;; size=8 bbWeight=1 PerfScore 1.50\n-G_M49110_IG03:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BinaryVectorPackedBit\n-       cmp      qword ptr [rbx], rdi\n-       jne      SHORT G_M49110_IG05\n-\t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M49110_IG04:\n-       movzx    r15, byte  ptr [rbx\u002B0x20]\n-\t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 1.00\n-G_M49110_IG05:\n        mov      rdi, gword ptr [rbx\u002B0x10]\n-       mov      r14d, dword ptr [rbx\u002B0x18]\n-       mov      r13d, dword ptr [rbx\u002B0x1C]\n\u002B       mov      r15d, dword ptr [rbx\u002B0x18]\n\u002B       mov      r14d, dword ptr [rbx\u002B0x1C]\n        xor      rax, rax\n        xor      esi, esi\n        test     rdi, rdi\n-       je       SHORT G_M49110_IG09\n\u002B       je       SHORT G_M49110_IG06\n \t\t\t\t\t\t;; size=21 bbWeight=1 PerfScore 7.75\n-G_M49110_IG06:\n\u002BG_M49110_IG03:\n        mov      rax, qword ptr [rdi]\n        mov      rcx, rax\n        test     dword ptr [rcx], 0xD1FFAB1E\n-       jne      SHORT G_M49110_IG07\n\u002B       jne      SHORT G_M49110_IG04\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x28]System.Buffers.MemoryManager\u00601[short]:GetSpan():System.Span\u00601[short]:this\n        mov      esi, edx\n-       jmp      SHORT G_M49110_IG08\n\u002B       jmp      SHORT G_M49110_IG05\n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 6.25\n-G_M49110_IG07:\n\u002BG_M49110_IG04:\n        lea      rax, bword ptr [rdi\u002B0x10]\n        mov      esi, dword ptr [rdi\u002B0x08]\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.25\n-G_M49110_IG08:\n-       and      r14d, 0xD1FFAB1E\n-       mov      edi, r14d\n-       mov      edx, r13d\n\u002BG_M49110_IG05:\n\u002B       and      r15d, 0xD1FFAB1E\n\u002B       mov      edi, r15d\n\u002B       mov      edx, r14d\n        add      rdx, rdi\n        mov      esi, esi\n        cmp      rdx, rsi\n-       ja       SHORT G_M49110_IG11\n\u002B       ja       SHORT G_M49110_IG08\n        lea      rax, bword ptr [rax\u002B2*rdi]\n-       mov      esi, r13d\n\u002B       mov      esi, r14d\n \t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 1.62\n-G_M49110_IG09:\n\u002BG_M49110_IG06:\n        mov      rdi, rax\n        mov      edx, dword ptr [rbx\u002B0x08]\n-       mov      ecx, r15d\n\u002B       xor      ecx, ecx\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[short](System.ReadOnlySpan\u00601[short],int,byte):byte[]\n-\t\t\t\t\t\t;; size=19 bbWeight=1 PerfScore 2.75\n-G_M49110_IG10:\n\u002B\t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 2.75\n\u002BG_M49110_IG07:\n\u002B       add      rsp, 8\n        pop      rbx\n-       pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        tail.jmp [rax]MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[short](System.ReadOnlySpan\u00601[short],int,byte):byte[]\n-\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 4.50\n-G_M49110_IG11:\n\u002B\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 4.25\n\u002BG_M49110_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 170, prolog size 16, PerfScore 33.19, instruction count 53, allocated bytes for code 170 (MethodHash=61174029) for method MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[short](MongoDB.Bson.BinaryVector\u00601[short]):byte[] (FullOpts)\n\u002B; Total bytes of code 142, prolog size 15, PerfScore 29.62, instruction count 46, allocated bytes for code 142 (MethodHash=61174029) for method MongoDB.Bson.Serialization.BinaryVectorWriter:WriteToBytes[short](MongoDB.Bson.BinaryVector\u00601[short]):byte[] (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":170,"DiffBytes":142},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToPipelineTranslators.LookupMethodToPipelineTranslator:Translate(MongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext,System.Linq.Expressions.MethodCallExpression):MongoDB.Driver.Linq.Linq3Implementation.Ast.TranslatedPipeline (FullOpts)","Category":"improvement","Description":"4,109 -\u003E 3,944 bytes (-165)","ExtraInfo":null,"Diff":"@@ -11,52 \u002B11,52 @@\n ;  V00 arg0         [V00,T08] (  8,  5.50)     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext\u003E\n ;  V01 arg1         [V01,T01] (  8,  6.50)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n ;  V02 loc0         [V02,T00] ( 14, 11   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Reflection.MethodInfo\u003E\n-;  V03 loc1         [V03,T11] ( 10,  6   )     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V03 loc1         [V03,T19] (  8,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n ;* V04 loc2         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Linq.Expressions.Expression\u003E\n ;  V05 loc3         [V05,T21] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.TranslatedPipeline\u003E\n ;  V06 loc4         [V06,T20] (  6,  4.50)     ref  -\u003E  [rbp-0x50]  class-hnd spill-single-def \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n ;* V07 loc5         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Stages.AstProjectStage\u003E\n-;  V08 loc6         [V08,T61] (  2,  1.50)     ref  -\u003E  [rbp-0x58]  class-hnd spill-single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Serializers.IWrappedValueSerializer\u003E\n-;  V09 loc7         [V09,T29] (  5,  3   )     ref  -\u003E  [rbp-0x60]  class-hnd \u003CMongoDB.Driver.IMongoCollection\u003E\n-;  V10 loc8         [V10,T27] (  6,  3.50)     ref  -\u003E  [rbp-0x68]  class-hnd \u003CSystem.String\u003E\n-;  V11 loc9         [V11,T30] (  5,  3   )     ref  -\u003E  [rbp-0x70]  class-hnd \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n\u002B;  V08 loc6         [V08,T55] (  2,  1.50)     ref  -\u003E  [rbp-0x58]  class-hnd spill-single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Serializers.IWrappedValueSerializer\u003E\n\u002B;  V09 loc7         [V09,T28] (  5,  3   )     ref  -\u003E  [rbp-0x60]  class-hnd \u003CMongoDB.Driver.IMongoCollection\u003E\n\u002B;  V10 loc8         [V10,T26] (  6,  3.50)     ref  -\u003E  [rbp-0x68]  class-hnd \u003CSystem.String\u003E\n\u002B;  V11 loc9         [V11,T29] (  5,  3   )     ref  -\u003E  [rbp-0x70]  class-hnd \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n ;  V12 loc10        [V12,T09] ( 13,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.TranslatedPipeline\u003E\n-;  V13 loc11        [V13,T28] (  5,  3.50)   ubyte  -\u003E  [rbp-0x2C] \n-;  V14 loc12        [V14,T18] ( 10,  5.50)     ref  -\u003E  [rbp-0x80]  class-hnd \u003CSystem.String\u003E\n-;  V15 loc13        [V15,T19] ( 10,  5.50)     ref  -\u003E  [rbp-0x88]  class-hnd \u003CSystem.String\u003E\n\u002B;  V13 loc11        [V13,T27] (  5,  3.50)   ubyte  -\u003E  [rbp-0x2C] \n\u002B;  V14 loc12        [V14,T17] ( 10,  5.50)     ref  -\u003E  [rbp-0x80]  class-hnd \u003CSystem.String\u003E\n\u002B;  V15 loc13        [V15,T18] ( 10,  5.50)     ref  -\u003E  [rbp-0x88]  class-hnd \u003CSystem.String\u003E\n ;  V16 loc14        [V16,T10] ( 12,  6.50)     ref  -\u003E  [rbp-0x90]  class-hnd \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.AstComputedField[]\u003E\n-;  V17 loc15        [V17,T12] (  9,  6   )     ref  -\u003E  r13         class-hnd \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Stages.AstStage\u003E\n-;  V18 loc16        [V18,T31] (  4,  3   )     ref  -\u003E  [rbp-0x98]  class-hnd \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n\u002B;  V17 loc15        [V17,T11] (  9,  6   )     ref  -\u003E  r13         class-hnd \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Stages.AstStage\u003E\n\u002B;  V18 loc16        [V18,T30] (  4,  3   )     ref  -\u003E  [rbp-0x98]  class-hnd \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n ;* V19 loc17        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Linq.Expressions.LambdaExpression\u003E\n ;  V20 loc18        [V20,T44] (  4,  2   )     ref  -\u003E  [rbp-0xA0]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.TranslatedPipeline\u003E\n-;  V21 loc19        [V21,T57] (  3,  1.50)     ref  -\u003E  [rbp-0xA8]  class-hnd spill-single-def \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n\u002B;  V21 loc19        [V21,T54] (  3,  1.50)     ref  -\u003E  [rbp-0xA8]  class-hnd spill-single-def \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n ;  V22 loc20        [V22,T42] (  5,  2.50)     ref  -\u003E  [rbp-0xB0]  class-hnd spill-single-def \u003CSystem.Linq.Expressions.LambdaExpression\u003E\n ;* V23 loc21        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n-;  V24 loc22        [V24,T62] (  2,  1   )     ref  -\u003E  [rbp-0xB8]  class-hnd spill-single-def \u003CSystem.Linq.Expressions.LambdaExpression\u003E\n\u002B;  V24 loc22        [V24,T56] (  2,  1   )     ref  -\u003E  [rbp-0xB8]  class-hnd spill-single-def \u003CSystem.Linq.Expressions.LambdaExpression\u003E\n ;  V25 loc23        [V25,T43] (  5,  2.50)     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Linq.Expressions.LambdaExpression\u003E\n-;  V26 loc24        [V26,T63] (  2,  1   )     ref  -\u003E  [rbp-0xC0]  class-hnd spill-single-def \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n\u002B;  V26 loc24        [V26,T57] (  2,  1   )     ref  -\u003E  [rbp-0xC0]  class-hnd spill-single-def \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n ;* V27 loc25        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstGetFieldExpression\u003E\n-;  V28 loc26        [V28,T48] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n\u002B;  V28 loc26        [V28,T45] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n ;# V29 OutArgs      [V29    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V30 tmp1         [V30,T69] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.ExpressionNotSupportedException\u003E\n\u002B;  V30 tmp1         [V30,T66] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.ExpressionNotSupportedException\u003E\n ;  V31 tmp2         [V31,T05] (  4,  8   )     ref  -\u003E  [rbp-0xC8]  class-hnd exact spill-single-def \u0022NewArr temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Stages.AstProjectStageSpecification[]\u003E\n ;* V32 tmp3         [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Strict ordering of exceptions for Array store\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Stages.AstProjectStageSetFieldSpecification\u003E\n ;* V33 tmp4         [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Strict ordering of exceptions for Array store\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Stages.AstProjectStageExcludeFieldSpecification\u003E\n-;  V34 tmp5         [V34,T49] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstVarExpression\u003E\n-;  V35 tmp6         [V35,T32] (  3,  3   )     ref  -\u003E  [rbp-0xD0]  class-hnd exact spill-single-def \u0022NewArr temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.AstComputedField[]\u003E\n\u002B;  V34 tmp5         [V34,T46] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstVarExpression\u003E\n\u002B;  V35 tmp6         [V35,T31] (  3,  3   )     ref  -\u003E  [rbp-0xD0]  class-hnd exact spill-single-def \u0022NewArr temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.AstComputedField[]\u003E\n ;* V36 tmp7         [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Strict ordering of exceptions for Array store\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.AstComputedField\u003E\n-;  V37 tmp8         [V37,T50] (  2,  2   )     ref  -\u003E  [rbp-0xD8]  class-hnd spill-single-def \u0022non-inline candidate call\u0022 \u003CSystem.Linq.Expressions.LambdaExpression\u003E\n-;  V38 tmp9         [V38,T51] (  2,  2   )     ref  -\u003E  [rbp-0xE0]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IReadOnlyList\u00601[MongoDB.Driver.Linq.Linq3Implementation.Ast.Stages.AstStage]\u003E\n-;  V39 tmp10        [V39,T33] (  3,  3   )     ref  -\u003E  [rbp-0xE8]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.AstPipeline\u003E\n-;  V40 tmp11        [V40,T34] (  3,  3   )     ref  -\u003E  [rbp-0xF0]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.TranslatedPipeline\u003E\n\u002B;  V37 tmp8         [V37,T47] (  2,  2   )     ref  -\u003E  [rbp-0xD8]  class-hnd spill-single-def \u0022non-inline candidate call\u0022 \u003CSystem.Linq.Expressions.LambdaExpression\u003E\n\u002B;  V38 tmp9         [V38,T48] (  2,  2   )     ref  -\u003E  [rbp-0xE0]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IReadOnlyList\u00601[MongoDB.Driver.Linq.Linq3Implementation.Ast.Stages.AstStage]\u003E\n\u002B;  V39 tmp10        [V39,T32] (  3,  3   )     ref  -\u003E  [rbp-0xE8]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.AstPipeline\u003E\n\u002B;  V40 tmp11        [V40,T33] (  3,  3   )     ref  -\u003E  [rbp-0xF0]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.TranslatedPipeline\u003E\n... diff truncated; middle omitted ...\n\u002B       call     [rax]System.ArgumentNullException:.ctor(System.String,System.String):this\n\u002B       mov      rdi, r15\n\u002B       call     CORINFO_HELP_THROW\n\u002B       int3     \n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0 PerfScore 0.00\n\u002BG_M27005_IG38:\n\u002B       mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n\u002B       call     CORINFO_HELP_NEWSFAST\n\u002B       mov      r12, rax\n\u002B       mov      rdi, r12\n\u002B       mov      rsi, 0xD1FFAB1E      ; \u0027localField\u0027\n\u002B       mov      rdx, 0xD1FFAB1E      ; \u0027Value cannot be null.\u0027\n\u002B       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:.ctor(System.String,System.String):this\n\u002B       call     [rax]System.ArgumentNullException:.ctor(System.String,System.String):this\n\u002B       mov      rdi, r12\n\u002B       call     CORINFO_HELP_THROW\n\u002B       int3     \n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0 PerfScore 0.00\n\u002BG_M27005_IG39:\n\u002B       mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n\u002B       call     CORINFO_HELP_NEWSFAST\n\u002B       mov      r13, rax\n\u002B       mov      rdi, r13\n\u002B       mov      rsi, 0xD1FFAB1E      ; \u0027foreignField\u0027\n\u002B       mov      rdx, 0xD1FFAB1E      ; \u0027Value cannot be null.\u0027\n\u002B       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:.ctor(System.String,System.String):this\n\u002B       call     [rax]System.ArgumentNullException:.ctor(System.String,System.String):this\n\u002B       mov      rdi, r13\n\u002B       call     CORINFO_HELP_THROW\n\u002B       int3     \n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0 PerfScore 0.00\n\u002BG_M27005_IG40:\n\u002B       mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n\u002B       call     CORINFO_HELP_NEWSFAST\n\u002B       mov      r15, rax\n\u002B       mov      rdi, r15\n\u002B       mov      rsi, 0xD1FFAB1E      ; \u0027pipeline\u0027\n\u002B       mov      rdx, 0xD1FFAB1E      ; \u0027Value cannot be null.\u0027\n\u002B       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:.ctor(System.String,System.String):this\n\u002B       call     [rax]System.ArgumentNullException:.ctor(System.String,System.String):this\n\u002B       mov      rdi, r15\n\u002B       call     CORINFO_HELP_THROW\n\u002B       int3     \n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0 PerfScore 0.00\n\u002BG_M27005_IG41:\n\u002B       mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n\u002B       call     CORINFO_HELP_NEWSFAST\n\u002B       mov      r12, rax\n\u002B       mov      rdi, r12\n\u002B       mov      rsi, 0xD1FFAB1E      ; \u0027localField\u0027\n\u002B       mov      rdx, 0xD1FFAB1E      ; \u0027Value cannot be null.\u0027\n\u002B       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:.ctor(System.String,System.String):this\n\u002B       call     [rax]System.ArgumentNullException:.ctor(System.String,System.String):this\n\u002B       mov      rdi, r12\n\u002B       call     CORINFO_HELP_THROW\n\u002B       int3     \n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0 PerfScore 0.00\n\u002BG_M27005_IG42:\n\u002B       mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n\u002B       call     CORINFO_HELP_NEWSFAST\n\u002B       mov      r13, rax\n\u002B       mov      rdi, r13\n\u002B       mov      rsi, 0xD1FFAB1E      ; \u0027foreignField\u0027\n\u002B       mov      rdx, 0xD1FFAB1E      ; \u0027Value cannot be null.\u0027\n\u002B       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:.ctor(System.String,System.String):this\n\u002B       call     [rax]System.ArgumentNullException:.ctor(System.String,System.String):this\n\u002B       mov      rdi, r13\n\u002B       call     CORINFO_HELP_THROW\n\u002B       int3     \n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0 PerfScore 0.00\n G_M27005_IG43:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n@@ -973,95 \u002B1001,17 @@ G_M27005_IG43:\n G_M27005_IG44:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n-       mov      rdi, r12\n-       mov      rsi, 0xD1FFAB1E      ; \u0027localField\u0027\n\u002B       mov      r15, rax\n\u002B       mov      rdi, r15\n\u002B       mov      rsi, 0xD1FFAB1E      ; \u0027pipeline\u0027\n        mov      rdx, 0xD1FFAB1E      ; \u0027Value cannot be null.\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:.ctor(System.String,System.String):this\n        call     [rax]System.ArgumentNullException:.ctor(System.String,System.String):this\n-       mov      rdi, r12\n\u002B       mov      rdi, r15\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=62 bbWeight=0 PerfScore 0.00\n G_M27005_IG45:\n-       mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      rsi, 0xD1FFAB1E      ; \u0027foreignField\u0027\n-       mov      rdx, 0xD1FFAB1E      ; \u0027Value cannot be null.\u0027\n-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:.ctor(System.String,System.String):this\n-       call     [rax]System.ArgumentNullException:.ctor(System.String,System.String):this\n-       mov      rdi, r13\n-       call     CORINFO_HELP_THROW\n-       int3     \n-\t\t\t\t\t\t;; size=62 bbWeight=0 PerfScore 0.00\n-G_M27005_IG46:\n-       mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r15, rax\n-       mov      rdi, r15\n-       mov      rsi, 0xD1FFAB1E      ; \u0027pipeline\u0027\n-       mov      rdx, 0xD1FFAB1E      ; \u0027Value cannot be null.\u0027\n-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:.ctor(System.String,System.String):this\n-       call     [rax]System.ArgumentNullException:.ctor(System.String,System.String):this\n-       mov      rdi, r15\n-       call     CORINFO_HELP_THROW\n-       int3     \n-\t\t\t\t\t\t;; size=62 bbWeight=0 PerfScore 0.00\n-G_M27005_IG47:\n-       mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n-       mov      rdi, r12\n-       mov      rsi, 0xD1FFAB1E      ; \u0027localField\u0027\n-       mov      rdx, 0xD1FFAB1E      ; \u0027Value cannot be null.\u0027\n-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:.ctor(System.String,System.String):this\n-       call     [rax]System.ArgumentNullException:.ctor(System.String,System.String):this\n-       mov      rdi, r12\n-       call     CORINFO_HELP_THROW\n-       int3     \n-\t\t\t\t\t\t;; size=62 bbWeight=0 PerfScore 0.00\n-G_M27005_IG48:\n-       mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      rsi, 0xD1FFAB1E      ; \u0027foreignField\u0027\n-       mov      rdx, 0xD1FFAB1E      ; \u0027Value cannot be null.\u0027\n-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:.ctor(System.String,System.String):this\n-       call     [rax]System.ArgumentNullException:.ctor(System.String,System.String):this\n-       mov      rdi, r13\n-       call     CORINFO_HELP_THROW\n-       int3     \n-\t\t\t\t\t\t;; size=62 bbWeight=0 PerfScore 0.00\n-G_M27005_IG49:\n-       mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r15, rax\n-       mov      rdi, r15\n-       mov      rsi, 0xD1FFAB1E      ; \u0027pipeline\u0027\n-       mov      rdx, 0xD1FFAB1E      ; \u0027Value cannot be null.\u0027\n-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:.ctor(System.String,System.String):this\n-       call     [rax]System.ArgumentNullException:.ctor(System.String,System.String):this\n-       mov      rdi, r15\n-       call     CORINFO_HELP_THROW\n-       int3     \n-\t\t\t\t\t\t;; size=62 bbWeight=0 PerfScore 0.00\n-G_M27005_IG50:\n-       mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r15, rax\n-       mov      rdi, r15\n-       mov      rsi, 0xD1FFAB1E      ; \u0027pipeline\u0027\n-       mov      rdx, 0xD1FFAB1E      ; \u0027Value cannot be null.\u0027\n-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:.ctor(System.String,System.String):this\n-       call     [rax]System.ArgumentNullException:.ctor(System.String,System.String):this\n-       mov      rdi, r15\n-       call     CORINFO_HELP_THROW\n-       int3     \n-\t\t\t\t\t\t;; size=62 bbWeight=0 PerfScore 0.00\n-G_M27005_IG51:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.Linq.ExpressionNotSupportedException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -1074,5 \u002B1024,5 @@ G_M27005_IG51:\n        int3     \n \t\t\t\t\t\t;; size=45 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 4109, prolog size 41, PerfScore 368.71, instruction count 815, allocated bytes for code 4109 (MethodHash=90049682) for method MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToPipelineTranslators.LookupMethodToPipelineTranslator:Translate(MongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext,System.Linq.Expressions.MethodCallExpression):MongoDB.Driver.Linq.Linq3Implementation.Ast.TranslatedPipeline (FullOpts)\n\u002B; Total bytes of code 3944, prolog size 41, PerfScore 345.21, instruction count 777, allocated bytes for code 3944 (MethodHash=90049682) for method MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToPipelineTranslators.LookupMethodToPipelineTranslator:Translate(MongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext,System.Linq.Expressions.MethodCallExpression):MongoDB.Driver.Linq.Linq3Implementation.Ast.TranslatedPipeline (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":4109,"DiffBytes":3944},{"Assembly":"Nest.dasm","Method":"Nest.FieldExpressionVisitor:Resolve(System.Linq.Expressions.Expression,bool):System.String:this (FullOpts)","Category":"improvement","Description":"516 -\u003E 464 bytes (-52)","ExtraInfo":null,"Diff":"@@ -13,30 \u002B13,30 @@\n ;  V02 arg2         [V02,T04] (  3,  3   )   ubyte  -\u003E  r15         single-def\n ;* V03 loc0         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CSystem.Text.StringBuilder\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V05 tmp1         [V05,T11] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.String,int]\u003E\n-;  V06 tmp2         [V06,T12] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.Stack\u00601[System.String]\u003E\n\u002B;  V05 tmp1         [V05,T10] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.String,int]\u003E\n\u002B;  V06 tmp2         [V06,T11] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.Stack\u00601[System.String]\u003E\n ;* V07 tmp3         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V08 tmp4         [V08,T08] (  4,  2   )     ref  -\u003E  rdx        \n-;  V09 tmp5         [V09,T18] (  2,  2   )     int  -\u003E  r15         \u0022impAppendStmt\u0022\n-;  V10 tmp6         [V10,T06] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Text.StringBuilder\u003E\n-;  V11 tmp7         [V11,T13] (  2,  2   )     ref  -\u003E  rcx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00603[System.Text.StringBuilder,System.String,System.Text.StringBuilder]\u003E\n-;  V12 tmp8         [V12,T14] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.Stack\u00601[System.String]\u003E\n\u002B;  V09 tmp5         [V09,T17] (  2,  2   )     int  -\u003E  r15         \u0022impAppendStmt\u0022\n\u002B;  V10 tmp6         [V10,T05] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Text.StringBuilder\u003E\n\u002B;  V11 tmp7         [V11,T12] (  2,  2   )     ref  -\u003E  rcx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00603[System.Text.StringBuilder,System.String,System.Text.StringBuilder]\u003E\n\u002B;  V12 tmp8         [V12,T13] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.Stack\u00601[System.String]\u003E\n ;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V15 tmp11        [V15,T09] (  4,  2   )     ref  -\u003E  rcx        \n ;  V16 tmp12        [V16,T01] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00603[System.Text.StringBuilder,System.String,System.Text.StringBuilder]\u003E\n ;  V17 tmp13        [V17,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.String,int]\u003E\n-;  V18 tmp14        [V18,T05] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Stack\u00601[System.String]\u003E\n-;  V19 tmp15        [V19    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V18 tmp14        [V18,T06] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Stack\u00601[System.String]\u003E\n\u002B;  V19 tmp15        [V19    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V20 tmp16        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V21 tmp17        [V21,T19] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n-;  V22 tmp18        [V22,T10] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n-;  V23 tmp19        [V23,T15] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CNest.FieldExpressionVisitor\u002B\u003C\u003Ec\u003E\n\u002B;  V21 tmp17        [V21,T18] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n\u002B;* V22 tmp18        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n\u002B;  V23 tmp19        [V23,T14] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CNest.FieldExpressionVisitor\u002B\u003C\u003Ec\u003E\n ;* V24 tmp20        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.String]\u003E\n ;* V25 tmp21        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[System.String,int]\u003E\n-;  V26 tmp22        [V26,T16] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Stack\u00601[System.String]\u003E\n\u002B;  V26 tmp22        [V26,T15] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Stack\u00601[System.String]\u003E\n ;* V27 tmp23        [V27    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V28 tmp24        [V28,T17] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CNest.FieldExpressionVisitor\u002B\u003C\u003Ec\u003E\n\u002B;  V28 tmp24        [V28,T16] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CNest.FieldExpressionVisitor\u002B\u003C\u003Ec\u003E\n ;  V29 tmp25        [V29,T07] (  3,  3   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 16\n@@ -139,34 \u002B139,17 @@ G_M28979_IG06:\n        ret      \n \t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 1.88\n G_M28979_IG07:\n-       mov      rbx, gword ptr [rbx\u002B0x10]\n-       test     rbx, rbx\n-       je       SHORT G_M28979_IG11\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.String]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M28979_IG08\n-       lea      rsi, [rbp-0x28]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M28979_IG09\n-\t\t\t\t\t\t;; size=58 bbWeight=0.50 PerfScore 9.00\n-G_M28979_IG08:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x10]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M28979_IG09\n        lea      rdx, [rbp-0x28]\n-       mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.String](System.Collections.Generic.IEnumerable\u00601[System.String],byref):System.String\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M28979_IG09:\n        cmp      byte  ptr [rbp-0x28], 0\n-       je       SHORT G_M28979_IG12\n-\t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 1.00\n-G_M28979_IG10:\n\u002B       je       SHORT G_M28979_IG10\n\u002B\t\t\t\t\t\t;; size=41 bbWeight=0.50 PerfScore 4.62\n\u002BG_M28979_IG08:\n        add      rsp, 16\n        pop      rbx\n        pop      r13\n@@ -175,17 \u002B158,17 @@ G_M28979_IG10:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 1.88\n-G_M28979_IG11:\n\u002BG_M28979_IG09:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M28979_IG12:\n\u002BG_M28979_IG10:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 516, prolog size 23, PerfScore 58.50, instruction count 121, allocated bytes for code 516 (MethodHash=91848ecc) for method Nest.FieldExpressionVisitor:Resolve(System.Linq.Expressions.Expression,bool):System.String:this (FullOpts)\n\u002B; Total bytes of code 464, prolog size 23, PerfScore 51.00, instruction count 108, allocated bytes for code 464 (MethodHash=91848ecc) for method Nest.FieldExpressionVisitor:Resolve(System.Linq.Expressions.Expression,bool):System.String:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":516,"DiffBytes":464},{"Assembly":"OpenAI.dasm","Method":"OpenAI.Images.ImageClient:GenerateImage(System.String,OpenAI.Images.ImageGenerationOptions,System.Threading.CancellationToken):System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]:this (FullOpts)","Category":"improvement","Description":"454 -\u003E 402 bytes (-52)","ExtraInfo":null,"Diff":"@@ -9,27 \u002B9,27 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T01] (  5,  5   )     ref  -\u003E  rbx         this class-hnd single-def \u003COpenAI.Images.ImageClient\u003E\n-;  V01 arg1         [V01,T03] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V01 arg1         [V01,T02] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.String\u003E\n ;  V02 arg2         [V02    ] (  6,  5.50)     ref  -\u003E  [rbp-0x30]  do-not-enreg[X] addr-exposed ld-addr-op class-hnd \u003COpenAI.Images.ImageGenerationOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V04 loc0         [V04,T14] (  3,  0   )     ref  -\u003E  [rbp-0x40]  class-hnd exact EH-live single-def \u003CSystem.ClientModel.BinaryContent\u002BModelBinaryContent\u00601[OpenAI.Images.ImageGenerationOptions]\u003E\n-;  V05 loc1         [V05,T09] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u003E\n\u002B;  V04 loc0         [V04,T13] (  3,  0   )     ref  -\u003E  [rbp-0x40]  class-hnd exact EH-live single-def \u003CSystem.ClientModel.BinaryContent\u002BModelBinaryContent\u00601[OpenAI.Images.ImageGenerationOptions]\u003E\n\u002B;  V05 loc1         [V05,T08] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u003E\n ;* V06 loc2         [V06    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u003CSystem.Nullable\u00601[int]\u003E\n-;  V07 loc3         [V07,T12] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]\u003E\n\u002B;  V07 loc3         [V07,T10] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]\u003E\n ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V09 tmp1         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003COpenAI.Images.GeneratedImage\u003E\n ;* V10 tmp2         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003COpenAI.Images.ImageGenerationOptions\u003E\n-;  V11 tmp3         [V11,T04] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Images.ImageGenerationOptions\u003E\n\u002B;  V11 tmp3         [V11,T03] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Images.ImageGenerationOptions\u003E\n ;  V12 tmp4         [V12,T05] (  2,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.ClientModel.Primitives.ModelReaderWriterOptions\u003E\n ;* V13 tmp5         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V14 tmp6         [V14,T13] (  2,  2   )     ref  -\u003E  r13        \n\u002B;  V14 tmp6         [V14,T11] (  2,  2   )     ref  -\u003E  r13        \n ;  V15 tmp7         [V15,T00] (  6, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ClientModel.BinaryContent\u002BModelBinaryContent\u00601[OpenAI.Images.ImageGenerationOptions]\u003E\n ;* V16 tmp8         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V17 tmp9         [V17,T02] (  4,  7   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Images.GeneratedImageCollection\u003E\n-;  V18 tmp10        [V18    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V19 tmp11        [V19,T11] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003COpenAI.Images.GeneratedImage\u003E\n-;  V20 tmp12        [V20,T08] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[OpenAI.Images.GeneratedImage]\u003E\n-;  V21 tmp13        [V21,T10] (  6,  2.50)     ref  -\u003E  registers   class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.ClientModel.Internal.UnsafeBufferSequence\u002BReader\u003E\n\u002B;  V17 tmp9         [V17,T04] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Images.GeneratedImageCollection\u003E\n\u002B;  V18 tmp10        [V18    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V19 tmp11        [V19,T12] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003COpenAI.Images.GeneratedImage\u003E\n\u002B;* V20 tmp12        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[OpenAI.Images.GeneratedImage]\u003E\n\u002B;  V21 tmp13        [V21,T09] (  6,  2.50)     ref  -\u003E  registers   class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.ClientModel.Internal.UnsafeBufferSequence\u002BReader\u003E\n ;  V22 tmp14        [V22,T06] (  2,  2   )     ref  -\u003E  r14         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n ;* V23 tmp15        [V23    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V06.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V24 tmp16        [V24    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V06.value (fldOffset=0x4)\u0022 P-INDEP\n@@ -101,61 \u002B101,42 @@ G_M27113_IG05:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for OpenAI.Images.GeneratedImageCollection:op_Explicit(System.ClientModel.ClientResult):OpenAI.Images.GeneratedImageCollection\n        call     [rax]OpenAI.Images.GeneratedImageCollection:op_Explicit(System.ClientModel.ClientResult):OpenAI.Images.GeneratedImageCollection\n-       mov      r15, rax\n-       test     r15, r15\n-       je       SHORT G_M27113_IG09\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[OpenAI.Images.GeneratedImage]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M27113_IG07\n-\t\t\t\t\t\t;; size=90 bbWeight=1 PerfScore 21.50\n-G_M27113_IG06:\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M27113_IG08\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M27113_IG07:\n\u002B       je       SHORT G_M27113_IG06\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[OpenAI.Images.GeneratedImage](System.Collections.Generic.IEnumerable\u00601[OpenAI.Images.GeneratedImage],byref):OpenAI.Images.GeneratedImage\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M27113_IG08:\n-       mov      rdx, gword ptr [rbx\u002B0x08]\n        mov      rsi, rax\n\u002B       mov      rdx, gword ptr [rbx\u002B0x08]\n        mov      rdi, 0xD1FFAB1E      ; System.ClientModel.ClientResult:FromValue[OpenAI.Images.GeneratedImage](OpenAI.Images.GeneratedImage,System.ClientModel.Primitives.PipelineResponse):System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]\n        mov      rax, 0xD1FFAB1E      ; code for System.ClientModel.ClientResult:FromValue[System.__Canon](System.__Canon,System.ClientModel.Primitives.PipelineResponse):System.ClientModel.ClientResult\u00601[System.__Canon]\n        call     [rax]System.ClientModel.ClientResult:FromValue[System.__Canon](System.__Canon,System.ClientModel.Primitives.PipelineResponse):System.ClientModel.ClientResult\u00601[System.__Canon]\n        mov      rbx, rax\n-       jmp      SHORT G_M27113_IG10\n-\t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 8.00\n-G_M27113_IG09:\n\u002B       jmp      SHORT G_M27113_IG07\n\u002B\t\t\t\t\t\t;; size=120 bbWeight=1 PerfScore 28.50\n\u002BG_M27113_IG06:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M27113_IG10:\n\u002BG_M27113_IG07:\n        mov      rdi, gword ptr [r12\u002B0x20]\n        test     rdi, rdi\n-       je       SHORT G_M27113_IG12\n\u002B       je       SHORT G_M27113_IG09\n \t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.25\n-G_M27113_IG11:\n\u002BG_M27113_IG08:\n        xor      rax, rax\n        mov      gword ptr [r12\u002B0x20], rax\n        mov      rax, 0xD1FFAB1E      ; code for System.ClientModel.Internal.UnsafeBufferSequence\u002BReader:Dispose():this\n        call     [rax]System.ClientModel.Internal.UnsafeBufferSequence\u002BReader:Dispose():this\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 2.25\n-G_M27113_IG12:\n\u002BG_M27113_IG09:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M27113_IG13:\n\u002BG_M27113_IG10:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -165,27 \u002B146,27 @@ G_M27113_IG13:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M27113_IG14:\n\u002BG_M27113_IG11:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M27113_IG15:\n\u002BG_M27113_IG12:\n        mov      rdi, gword ptr [rbp-0x40]\n        mov      rax, gword ptr [rdi\u002B0x20]\n        test     rax, rax\n-       je       SHORT G_M27113_IG16\n\u002B       je       SHORT G_M27113_IG13\n        xor      rcx, rcx\n        mov      gword ptr [rdi\u002B0x20], rcx\n        mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for System.ClientModel.Internal.UnsafeBufferSequence\u002BReader:Dispose():this\n        call     [rax]System.ClientModel.Internal.UnsafeBufferSequence\u002BReader:Dispose():this\n \t\t\t\t\t\t;; size=34 bbWeight=0 PerfScore 0.00\n-G_M27113_IG16:\n\u002BG_M27113_IG13:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M27113_IG17:\n\u002BG_M27113_IG14:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 454, prolog size 38, PerfScore 79.38, instruction count 115, allocated bytes for code 454 (MethodHash=f9309616) for method OpenAI.Images.ImageClient:GenerateImage(System.String,OpenAI.Images.ImageGenerationOptions,System.Threading.CancellationToken):System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]:this (FullOpts)\n\u002B; Total bytes of code 402, prolog size 38, PerfScore 71.38, instruction count 102, allocated bytes for code 402 (MethodHash=f9309616) for method OpenAI.Images.ImageClient:GenerateImage(System.String,OpenAI.Images.ImageGenerationOptions,System.Threading.CancellationToken):System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":454,"DiffBytes":402},{"Assembly":"Pomelo.EntityFrameworkCore.MySql.dasm","Method":"Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitCase(Microsoft.EntityFrameworkCore.Query.SqlExpressions.CaseExpression):System.Linq.Expressions.Expression:this (FullOpts)","Category":"improvement","Description":"960 -\u003E 766 bytes (-194)","ExtraInfo":null,"Diff":"@@ -8,44 \u002B8,38 @@\n ; 0 inlinees with PGO data; 4 single block inlinees; 3 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T01] ( 15, 26.50)     ref  -\u003E  rbx         this class-hnd single-def \u003CPomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor\u003E\n\u002B;  V00 this         [V00,T01] ( 13, 25   )     ref  -\u003E  rbx         this class-hnd single-def \u003CPomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor\u003E\n ;  V01 arg1         [V01,T09] ( 10, 10   )     ref  -\u003E  r15         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.CaseExpression\u003E\n-;  V02 loc0         [V02,T33] (  2,  2   )   ubyte  -\u003E  r14         single-def\n-;  V03 loc1         [V03,T18] (  2,  5   )   ubyte  -\u003E  r12         single-def\n-;  V04 loc2         [V04,T27] (  2,  2   )     ref  -\u003E  [rbp-0x40]  class-hnd spill-single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\u003E\n\u002B;  V02 loc0         [V02,T28] (  2,  2   )   ubyte  -\u003E  r14         single-def\n\u002B;  V03 loc1         [V03,T17] (  2,  5   )   ubyte  -\u003E  r12         single-def\n\u002B;  V04 loc2         [V04,T26] (  2,  2   )     ref  -\u003E  [rbp-0x40]  class-hnd spill-single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\u003E\n ;  V05 loc3         [V05,T02] (  8, 22   )     ref  -\u003E  [rbp-0x48]  class-hnd exact spill-single-def \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.CaseWhenClause]\u003E\n-;  V06 loc4         [V06,T28] (  2,  2   )     ref  -\u003E  rcx         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\u003E\n\u002B;  V06 loc4         [V06,T27] (  2,  2   )     ref  -\u003E  rcx         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\u003E\n ;  V07 loc5         [V07,T08] (  6, 13   )     ref  -\u003E  [rbp-0x50]  class-hnd EH-live single-def \u003CSystem.Collections.Generic.IEnumerator\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.CaseWhenClause]\u003E\n ;  V08 loc6         [V08,T03] (  4, 16   )     ref  -\u003E  r13         class-hnd \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.CaseWhenClause\u003E\n-;  V09 loc7         [V09,T15] (  2,  8   )     ref  -\u003E  [rbp-0x58]  class-hnd spill-single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\u003E\n-;  V10 loc8         [V10,T16] (  2,  8   )     ref  -\u003E  [rbp-0x60]  class-hnd spill-single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\u003E\n\u002B;  V09 loc7         [V09,T14] (  2,  8   )     ref  -\u003E  [rbp-0x58]  class-hnd spill-single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\u003E\n\u002B;  V10 loc8         [V10,T15] (  2,  8   )     ref  -\u003E  [rbp-0x60]  class-hnd spill-single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\u003E\n ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V12 tmp1         [V12,T17] (  3,  6   )     ref  -\u003E  [rbp-0x68]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.CaseWhenClause]\u003E\n\u002B;  V12 tmp1         [V12,T16] (  3,  6   )     ref  -\u003E  [rbp-0x68]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.CaseWhenClause]\u003E\n ;  V13 tmp2         [V13,T00] (  5, 32   )     ref  -\u003E  [rbp-0x70]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.CaseWhenClause\u003E\n-;  V14 tmp3         [V14,T35] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V14 tmp3         [V14,T29] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n ;  V15 tmp4         [V15,T13] (  3, 10   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.CaseWhenClause[]\u003E\n ;  V16 tmp5         [V16,T10] (  4, 12   )     int  -\u003E  rcx         \u0022Inline stloc first use temp\u0022\n-;* V17 tmp6         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V18 tmp7         [V18,T14] (  8,  9   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.CaseExpression\u003E\n-;  V19 tmp8         [V19,T25] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Boolean\u003E\n-;  V20 tmp9         [V20,T29] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u0022impImportAndPushBox\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.ISqlExpressionFactory\u003E\n-;  V21 tmp10        [V21,T30] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022impImportAndPushBox\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.ISqlExpressionFactory\u003E\n-;  V22 tmp11        [V22,T20] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V23 tmp12        [V23,T21] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V24 tmp13        [V24,T22] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V25 tmp14        [V25,T04] (  2, 16   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n-;  V26 tmp15        [V26,T05] (  2, 16   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n-;  V27 tmp16        [V27,T06] (  2, 16   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n-;  V28 tmp17        [V28,T07] (  2, 16   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n-;  V29 tmp18        [V29,T23] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V30 tmp19        [V30,T24] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V31 tmp20        [V31,T31] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V32 tmp21        [V32,T32] (  2,  2   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V33 cse0         [V33,T12] (  5, 11   )    long  -\u003E  [rbp-0x30]  spill-single-def \u0022CSE #06: moderate\u0022\n-;  V34 cse1         [V34,T11] (  3, 12   )    long  -\u003E  [rbp-0x38]  spill-single-def \u0022CSE #08: moderate\u0022\n-;  V35 cse2         [V35,T19] (  4,  4   )    long  -\u003E  r13         \u0022CSE #03: moderate\u0022\n-;  V36 cse3         [V36,T26] (  3,  3   )    long  -\u003E  r12         \u0022CSE #09: moderate\u0022\n-;  V37 cse4         [V37,T34] (  3,  1.50)     ref  -\u003E  rdi         \u0022CSE #11: conservative\u0022\n\u002B;* V17 tmp6         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.CaseExpression\u003E\n\u002B;  V18 tmp7         [V18,T19] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.CaseExpression\u003E\n\u002B;  V19 tmp8         [V19,T20] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V20 tmp9         [V20,T21] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V21 tmp10        [V21,T22] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V22 tmp11        [V22,T04] (  2, 16   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n\u002B;  V23 tmp12        [V23,T05] (  2, 16   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n\u002B;  V24 tmp13        [V24,T06] (  2, 16   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n\u002B;  V25 tmp14        [V25,T07] (  2, 16   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n\u002B;  V26 tmp15        [V26,T23] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V27 tmp16        [V27,T24] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V28 cse0         [V28,T12] (  5, 11   )    long  -\u003E  [rbp-0x30]  spill-single-def \u0022CSE #06: moderate\u0022\n\u002B;  V29 cse1         [V29,T11] (  3, 12   )    long  -\u003E  [rbp-0x38]  spill-single-def \u0022CSE #08: moderate\u0022\n\u002B;  V30 cse2         [V30,T18] (  4,  4   )    long  -\u003E  r13         \u0022CSE #03: moderate\u0022\n\u002B;  V31 cse3         [V31,T25] (  3,  3   )    long  -\u003E  r12         \u0022CSE #09: moderate\u0022\n ;\n ; Lcl frame size = 72\n \n@@ -63,7 \u002B57,7 @@ G_M56847_IG01:\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 7.25\n G_M56847_IG02:\n        test     r15, r15\n-       je       G_M56847_IG15\n\u002B       je       G_M56847_IG11\n        movzx    r14, byte  ptr [rbx\u002B0x10]\n        mov      rdi, r15\n        mov      rax, qword ptr [r15]\n@@ -91,7 \u002B85,7 @@ G_M56847_IG02:\n        mov      gword ptr [rbp-0x68], rax\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M56847_IG16\n\u002B       je       G_M56847_IG12\n \t\t\t\t\t\t;; size=137 bbWeight=1 PerfScore 34.50\n G_M56847_IG03:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.CaseWhenClause]:s_emptyArray\n@@ -206,39 \u002B200,9 @@ G_M56847_IG09:\n        mov      rsi, gword ptr [rbp-0x40]\n        mov      rdx, gword ptr [rbp-0x48]\n        call     [r12\u002B0x08]Microsoft.EntityFrameworkCore.Query.SqlExpressions.CaseExpression:Update(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,System.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.CaseWhenClause],Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression):Microsoft.EntityFrameworkCore.Query.SqlExpressions.CaseExpression:this\n-       mov      r15, rax\n-       cmp      byte  ptr [rbx\u002B0x10], 0\n-       je       SHORT G_M56847_IG11\n-\t\t\t\t\t\t;; size=106 bbWeight=1 PerfScore 30.50\n\u002B       nop      \n\u002B\t\t\t\t\t\t;; size=98 bbWeight=1 PerfScore 27.50\n G_M56847_IG10:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Microsoft.EntityFrameworkCore.Query.SqlExpressions.ColumnExpression\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M56847_IG11\n-       mov      rdi, r15\n-       mov      rax, qword ptr [r15]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-       call     [rax\u002B0x10]Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:get_TypeMapping():Microsoft.EntityFrameworkCore.Storage.RelationalTypeMapping:this\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; Pomelo.EntityFrameworkCore.MySql.Storage.Internal.MySqlBoolTypeMapping\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M56847_IG11\n-       mov      rdi, r15\n-       mov      rax, qword ptr [r15]\n-       mov      rax, qword ptr [rax\u002B0x40]\n-       call     [rax\u002B0x28]System.Linq.Expressions.Expression:get_Type():System.Type:this\n-       mov      rdi, 0xD1FFAB1E      ; \u0027System.Boolean\u0027\n-       cmp      rax, rdi\n-       je       SHORT G_M56847_IG13\n-\t\t\t\t\t\t;; size=101 bbWeight=0.50 PerfScore 13.00\n-G_M56847_IG11:\n-       mov      rax, r15\n-\t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M56847_IG12:\n        add      rsp, 72\n        pop      rbx\n        pop      r12\n@@ -247,34 \u002B211,8 @@ G_M56847_IG12:\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M56847_IG13:\n-       mov      rdi, 0xD1FFAB1E      ; System.Boolean\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      rdi, gword ptr [rbx\u002B0x08]\n-       mov      rbx, rdi\n-       mov      byte  ptr [rax\u002B0x08], 1\n-       mov      rsi, rax\n-       mov      r11, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Constant(System.Object,Microsoft.EntityFrameworkCore.Storage.RelationalTypeMapping):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-       xor      rdx, rdx\n-       call     [r11]Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Constant(System.Object,Microsoft.EntityFrameworkCore.Storage.RelationalTypeMapping):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-       mov      rdx, rax\n-       mov      rdi, rbx\n-       mov      rsi, r15\n-       mov      r11, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Equal(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-       cmp      dword ptr [rdi], edi\n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 5.62\n-G_M56847_IG14:\n-       add      rsp, 72\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [r11]Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Equal(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M56847_IG15:\n\u002B\t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n\u002BG_M56847_IG11:\n        mov      rdi, 0xD1FFAB1E      ; \u0027caseExpression\u0027\n        mov      rsi, 0xD1FFAB1E      ; \u0027parameterName\u0027\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Utilities.Check:NotEmpty(System.String,System.String):System.String\n@@ -290,29 \u002B228,29 @@ G_M56847_IG15:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=84 bbWeight=0 PerfScore 0.00\n-G_M56847_IG16:\n\u002BG_M56847_IG12:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.CaseWhenClause]\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rcx]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M56847_IG03\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M56847_IG17:\n\u002BG_M56847_IG13:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M56847_IG18:\n\u002BG_M56847_IG14:\n        cmp      gword ptr [rbp-0x50], 0\n-       je       SHORT G_M56847_IG19\n\u002B       je       SHORT G_M56847_IG15\n        mov      rdi, gword ptr [rbp-0x50]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M56847_IG19:\n\u002BG_M56847_IG15:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M56847_IG20:\n\u002BG_M56847_IG16:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 960, prolog size 25, PerfScore 410.25, instruction count 224, allocated bytes for code 960 (MethodHash=b84021f0) for method Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitCase(Microsoft.EntityFrameworkCore.Query.SqlExpressions.CaseExpression):System.Linq.Expressions.Expression:this (FullOpts)\n\u002B; Total bytes of code 766, prolog size 25, PerfScore 388.00, instruction count 176, allocated bytes for code 766 (MethodHash=b84021f0) for method Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitCase(Microsoft.EntityFrameworkCore.Query.SqlExpressions.CaseExpression):System.Linq.Expressions.Expression:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":960,"DiffBytes":766},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.LicenseFees.VersionService:ListAutoPaging(System.String,Stripe.V2.Billing.LicenseFees.VersionListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.LicenseFeeVersion]:this (FullOpts)","Category":"improvement","Description":"513 -\u003E 464 bytes (-49)","ExtraInfo":null,"Diff":"@@ -9,33 \u002B9,32 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T05] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.LicenseFees.VersionService\u003E\n-;  V01 arg1         [V01,T08] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.LicenseFees.VersionListOptions\u003E\n-;  V03 arg3         [V03,T07] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T07] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V02 arg2         [V02,T08] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.LicenseFees.VersionListOptions\u003E\n\u002B;  V03 arg3         [V03,T06] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T11] (  3,  2   )     ref  -\u003E  r15         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.LicenseFeeVersion]\u003E\n ;  V06 tmp2         [V06,T02] (  4,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V07 tmp3         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V08 tmp4         [V08,T12] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;  V09 tmp5         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.LicenseFeeVersion]\u003E\n-;* V10 tmp6         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp8         [V12,T03] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.LicenseFeeVersion]\u003E\n-;  V13 tmp9         [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.LicenseFeeVersion]\u003E\n-;* V14 tmp10        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp11        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp12        [V16,T04] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.LicenseFeeVersion]\u003E\n-;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V07._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp14        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp15        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp16        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp17        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 tmp18        [V22,T09] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V23 cse0         [V23,T10] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #02: moderate\u0022\n-;  V24 rat0         [V24,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T15] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T16] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.LicenseFeeVersion]\u003E\n\u002B;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp6         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp7         [V11,T03] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.LicenseFeeVersion]\u003E\n\u002B;  V12 tmp8         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.LicenseFeeVersion]\u003E\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp11        [V15,T04] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.LicenseFeeVersion]\u003E\n\u002B;* V16 tmp12        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V07._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp14        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp15        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp16        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 tmp17        [V21,T09] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V22 cse0         [V22,T10] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #02: moderate\u0022\n\u002B;  V23 rat0         [V23,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T15] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n@@ -49,8 \u002B48,8 @@ G_M59339_IG01:\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rdx\n-       mov      r14, rcx\n\u002B       mov      r14, rdx\n\u002B       mov      r15, rcx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M59339_IG02:\n        mov      rdi, rsi\n@@ -69,49 \u002B68,41 @@ G_M59339_IG02:\n        je       G_M59339_IG04\n \t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 12.50\n G_M59339_IG03:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.LicenseFeeVersion]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n-       mov      eax, dword ptr [rax\u002B0x10]\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, dword ptr [rax\u002B0x10]\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x28]\n\u002B       lea      rdi, bword ptr [r14\u002B0x28]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.LicenseFeeVersion]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        mov      dword ptr [r15\u002B0x28], -2\n-       mov      r14d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r15\u002B0x2C], r14d\n\u002B       mov      dword ptr [r15\u002B0x2C], r12d\n        lea      rdi, bword ptr [r15\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M59339_IG05\n-\t\t\t\t\t\t;; size=212 bbWeight=0.50 PerfScore 16.00\n\u002B\t\t\t\t\t\t;; size=164 bbWeight=0.50 PerfScore 12.75\n G_M59339_IG04:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.LicenseFeeVersion]\n        call     CORINFO_HELP_NEWSFAST\n@@ -134,10 \u002B125,10 @@ G_M59339_IG04:\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n@@ -145,12 \u002B136,12 @@ G_M59339_IG04:\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        mov      dword ptr [r15\u002B0x28], -2\n-       mov      r14d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r15\u002B0x2C], r14d\n\u002B       mov      ebx, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r15\u002B0x2C], ebx\n        lea      rdi, bword ptr [r15\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=181 bbWeight=0.50 PerfScore 13.12\n\u002B\t\t\t\t\t\t;; size=180 bbWeight=0.50 PerfScore 13.12\n G_M59339_IG05:\n        mov      rax, r15\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n@@ -165,5 \u002B156,5 @@ G_M59339_IG06:\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 513, prolog size 16, PerfScore 54.38, instruction count 113, allocated bytes for code 513 (MethodHash=d8251834) for method Stripe.V2.Billing.LicenseFees.VersionService:ListAutoPaging(System.String,Stripe.V2.Billing.LicenseFees.VersionListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.LicenseFeeVersion]:this (FullOpts)\n\u002B; Total bytes of code 464, prolog size 16, PerfScore 51.12, instruction count 105, allocated bytes for code 464 (MethodHash=d8251834) for method Stripe.V2.Billing.LicenseFees.VersionService:ListAutoPaging(System.String,Stripe.V2.Billing.LicenseFees.VersionListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.LicenseFeeVersion]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":513,"DiffBytes":464},{"Assembly":"System.CommandLine.dasm","Method":"System.CommandLine.Argument\u00601[short]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,short]:this (FullOpts)","Category":"improvement","Description":"234 -\u003E 5 bytes (-229)","ExtraInfo":null,"Diff":"@@ -1,100 \u002B1,35 @@\n ; Assembly listing for method System.CommandLine.Argument\u00601[short]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,short]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] (  4,  3.50)     ref  -\u003E  rdi         this class-hnd single-def \u003CSystem.CommandLine.Argument\u00601[short]\u003E\n-;  V01 loc0         [V01,T06] (  3,  1.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.CommandLine.Argument\u00601[bool]\u003E\n\u002B;  V00 this         [V00,T00] (  3,  3   )     ref  -\u003E  rdi         this class-hnd single-def \u003CSystem.CommandLine.Argument\u00601[short]\u003E\n\u002B;* V01 loc0         [V01    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.CommandLine.Argument\u00601[bool]\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V03 tmp1         [V03,T05] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\u003E\n-;* V04 tmp2         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V05 tmp3         [V05,T04] (  4,  2   )     ref  -\u003E  rsi        \n-;  V06 tmp4         [V06,T01] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\u003E\n-;  V07 tmp5         [V07,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.CommandLine.Argument\u00601\u002B\u003C\u003Ec[short]\u003E\n\u002B;* V03 tmp1         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\u003E\n\u002B;* V04 tmp2         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref   \n\u002B;* V05 tmp3         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref   \n\u002B;* V06 tmp4         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\u003E\n\u002B;* V07 tmp5         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.CommandLine.Argument\u00601\u002B\u003C\u003Ec[short]\u003E\n ;* V08 tmp6         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.CommandLine.Argument\u00601[bool]\u003E\n ;* V09 tmp7         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\u003E\n-;* V10 cse0         [V10,T07] (  0,  0   )   byref  -\u003E  zero-ref    \u0022CSE #02: aggressive\u0022\n-;  V11 cse1         [V11,T03] (  3,  3   )     ref  -\u003E  rbx         \u0022CSE #04: aggressive\u0022\n\u002B;  V10 cse0         [V10,T01] (  2,  2   )     ref  -\u003E  rax         \u0022CSE #01: aggressive\u0022\n ;\n-; Lcl frame size = 8\n\u002B; Lcl frame size = 0\n \n G_M24503_IG01:\n-       push     rbp\n-       push     r15\n-       push     r14\n-       push     rbx\n-       push     rax\n-       lea      rbp, [rsp\u002B0x20]\n-\t\t\t\t\t\t;; size=12 bbWeight=1 PerfScore 5.50\n\u002B\t\t\t\t\t\t;; size=0 bbWeight=1 PerfScore 0.00\n G_M24503_IG02:\n-       mov      rbx, gword ptr [rdi\u002B0x60]\n-       test     rbx, rbx\n-       jne      G_M24503_IG06\n-\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.25\n\u002B       mov      rax, gword ptr [rdi\u002B0x60]\n\u002B\t\t\t\t\t\t;; size=4 bbWeight=1 PerfScore 2.00\n G_M24503_IG03:\n-       mov      rsi, rdi\n-       mov      rdi, 0xD1FFAB1E      ; System.CommandLine.Argument\u00601[bool]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n-       test     r15, r15\n-       je       SHORT G_M24503_IG06\n-       mov      rdi, 0xD1FFAB1E      ; global ptr\n-       test     byte  ptr [rdi], 1\n-       je       SHORT G_M24503_IG08\n-\t\t\t\t\t\t;; size=48 bbWeight=0.50 PerfScore 4.25\n-G_M24503_IG04:\n-       mov      rdi, 0xD1FFAB1E      ; data for System.CommandLine.Argument\u00601\u002B\u003C\u003Ec[short]:\u003C\u003E9__4_0\n-       mov      rsi, gword ptr [rdi]\n-       test     rsi, rsi\n-       jne      SHORT G_M24503_IG05\n-       mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,bool]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      rdi, 0xD1FFAB1E      ; data for System.CommandLine.Argument\u00601\u002B\u003C\u003Ec[short]:\u003C\u003E9\n-       mov      rsi, gword ptr [rdi]\n-       test     rsi, rsi\n-       je       SHORT G_M24503_IG09\n-       lea      rdi, bword ptr [r14\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, 0xD1FFAB1E      ; code for System.CommandLine.Argument\u00601\u002B\u003C\u003Ec[short]:\u003Cget_DefaultValueFactory\u003Eb__4_0(System.CommandLine.Parsing.ArgumentResult):bool:this\n-       mov      qword ptr [r14\u002B0x18], rdi\n-       mov      rdi, 0xD1FFAB1E      ; data for System.CommandLine.Argument\u00601\u002B\u003C\u003Ec[short]:\u003C\u003E9__4_0\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rsi, r14\n-\t\t\t\t\t\t;; size=98 bbWeight=0.50 PerfScore 6.50\n-G_M24503_IG05:\n-       lea      rdi, bword ptr [r15\u002B0x60]\n-       call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 0.75\n-G_M24503_IG06:\n-       mov      rax, rbx\n-\t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M24503_IG07:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M24503_IG08:\n-       mov      rdi, 0xD1FFAB1E      ; System.CommandLine.Argument\u00601\u002B\u003C\u003Ec[short]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M24503_IG04\n-\t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M24503_IG09:\n-       mov      rax, 0xD1FFAB1E      ; code for System.Delegate:ThrowNullThisInDelegateToInstance()\n-       call     [rax]System.Delegate:ThrowNullThisInDelegateToInstance()\n-       int3     \n-\t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n\u002B\t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 1.00\n \n-; Total bytes of code 234, prolog size 12, PerfScore 23.75, instruction count 54, allocated bytes for code 234 (MethodHash=6f9ca048) for method System.CommandLine.Argument\u00601[short]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,short]:this (FullOpts)\n\u002B; Total bytes of code 5, prolog size 0, PerfScore 3.00, instruction count 2, allocated bytes for code 5 (MethodHash=6f9ca048) for method System.CommandLine.Argument\u00601[short]:get_DefaultValueFactory():System.Func\u00602[System.CommandLine.Parsing.ArgumentResult,short]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":234,"DiffBytes":5},{"Assembly":"CsvHelper.dasm","Method":"CsvHelper.TypeConversion.ArrayConverter:ConvertFromString(System.String,CsvHelper.IReaderRow,CsvHelper.Configuration.MemberMapData):System.Object:this (FullOpts)","Category":"improvement","Description":"1,690 -\u003E 1,639 bytes (-51)","ExtraInfo":null,"Diff":"@@ -11,84 \u002B11,84 @@\n ;* V00 this         [V00    ] (  0,  0   )     ref  -\u003E  zero-ref    this class-hnd single-def \u003CCsvHelper.TypeConversion.ArrayConverter\u003E\n ;* V01 arg1         [V01    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.String\u003E\n ;  V02 arg2         [V02,T08] (  8, 16   )     ref  -\u003E  r15         class-hnd single-def \u003CCsvHelper.IReaderRow\u003E\n-;  V03 arg3         [V03,T05] ( 16, 18   )     ref  -\u003E  rbx         class-hnd single-def \u003CCsvHelper.Configuration.MemberMapData\u003E\n\u002B;  V03 arg3         [V03,T05] ( 17, 18.50)     ref  -\u003E  rbx         class-hnd single-def \u003CCsvHelper.Configuration.MemberMapData\u003E\n ;  V04 loc0         [V04,T00] ( 11, 34   )     ref  -\u003E  r14         class-hnd \u003CSystem.Array\u003E\n-;  V05 loc1         [V05,T26] (  3,  6   )     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Type\u003E\n-;  V06 loc2         [V06,T31] (  2,  5   )     ref  -\u003E  r12         class-hnd single-def \u003CCsvHelper.TypeConversion.ITypeConverter\u003E\n\u002B;  V05 loc1         [V05,T25] (  3,  6   )     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Type\u003E\n\u002B;  V06 loc2         [V06,T30] (  2,  5   )     ref  -\u003E  r12         class-hnd single-def \u003CCsvHelper.TypeConversion.ITypeConverter\u003E\n ;  V07 loc3         [V07,T01] ( 12, 33.50)     ref  -\u003E  r12         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.Object]\u003E\n ;  V08 loc4         [V08,T18] (  4, 12.50)     int  -\u003E  [rbp-0x2C] \n ;  V09 loc5         [V09    ] (  2,  8   )     ref  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003CSystem.Object\u003E\n-;* V10 loc6         [V10,T59] (  0,  0   )     int  -\u003E  zero-ref   \n-;  V11 loc7         [V11,T28] (  4,  5.50)     int  -\u003E  [rbp-0x3C]  spill-single-def\n-;  V12 loc8         [V12,T58] (  2,  1   )     int  -\u003E  [rbp-0x40]  spill-single-def\n\u002B;* V10 loc6         [V10,T58] (  0,  0   )     int  -\u003E  zero-ref   \n\u002B;  V11 loc7         [V11,T27] (  4,  5.50)     int  -\u003E  [rbp-0x3C]  spill-single-def\n\u002B;  V12 loc8         [V12,T57] (  2,  1   )     int  -\u003E  [rbp-0x40]  spill-single-def\n ;  V13 loc9         [V13,T19] (  4, 12.50)     int  -\u003E  [rbp-0x44] \n ;  V14 loc10        [V14,T09] (  6, 17   )     int  -\u003E  r13        \n-;  V15 loc11        [V15,T24] (  2,  8   )     ref  -\u003E  [rbp-0x60]  class-hnd spill-single-def \u003CSystem.Object\u003E\n\u002B;  V15 loc11        [V15,T22] (  2,  8   )     ref  -\u003E  [rbp-0x60]  class-hnd spill-single-def \u003CSystem.Object\u003E\n ;# V16 OutArgs      [V16    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V17 tmp1         [V17,T37] (  3,  3   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Object]\u003E\n\u002B;  V17 tmp1         [V17,T36] (  3,  3   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Object]\u003E\n ;* V18 tmp2         [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022dup spill\u0022 \u003CSystem.String\u003E\n ;* V19 tmp3         [V19    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V20 tmp4         [V20    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;  V21 tmp5         [V21,T17] (  4, 14   )     ref  -\u003E  rdx        \n-;  V22 tmp6         [V22,T51] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022non-inline candidate call\u0022 \u003CCsvHelper.IObjectResolver\u003E\n-;  V23 tmp7         [V23,T38] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n-;  V24 tmp8         [V24,T39] (  3,  3   )     ref  -\u003E  rbx         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Type\u003E\n-;  V25 tmp9         [V25,T40] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Int32\u003E\n\u002B;  V22 tmp6         [V22,T50] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022non-inline candidate call\u0022 \u003CCsvHelper.IObjectResolver\u003E\n\u002B;  V23 tmp7         [V23,T37] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n\u002B;  V24 tmp8         [V24,T38] (  3,  3   )     ref  -\u003E  rbx         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Type\u003E\n\u002B;  V25 tmp9         [V25,T39] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Int32\u003E\n ;* V26 tmp10        [V26    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022non-inline candidate call\u0022\n-;  V27 tmp11        [V27,T57] (  3,  1.50)     int  -\u003E  rax        \n-;  V28 tmp12        [V28,T52] (  2,  2   )     ref  -\u003E  [rbp-0x68]  class-hnd spill-single-def \u0022non-inline candidate call\u0022 \u003CCsvHelper.IObjectResolver\u003E\n-;  V29 tmp13        [V29,T41] (  3,  3   )     ref  -\u003E  [rbp-0x70]  class-hnd exact spill-single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n-;  V30 tmp14        [V30,T42] (  3,  3   )     ref  -\u003E  r14         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Type\u003E\n-;  V31 tmp15        [V31,T43] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Int32\u003E\n-;  V32 tmp16        [V32,T35] (  4,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Type\u003E\n-;  V33 tmp17        [V33,T30] (  3,  5   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Reflection.MemberInfo\u003E\n-;  V34 tmp18        [V34,T36] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Reflection.PropertyInfo\u003E\n-;  V35 tmp19        [V35,T46] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Reflection.FieldInfo\u003E\n-;  V36 tmp20        [V36,T60] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V27 tmp11        [V27,T56] (  3,  1.50)     int  -\u003E  rax        \n\u002B;  V28 tmp12        [V28,T51] (  2,  2   )     ref  -\u003E  [rbp-0x68]  class-hnd spill-single-def \u0022non-inline candidate call\u0022 \u003CCsvHelper.IObjectResolver\u003E\n\u002B;  V29 tmp13        [V29,T40] (  3,  3   )     ref  -\u003E  [rbp-0x70]  class-hnd exact spill-single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n\u002B;  V30 tmp14        [V30,T41] (  3,  3   )     ref  -\u003E  r14         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Type\u003E\n\u002B;  V31 tmp15        [V31,T42] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Int32\u003E\n\u002B;  V32 tmp16        [V32,T34] (  4,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Type\u003E\n\u002B;  V33 tmp17        [V33,T29] (  3,  5   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Reflection.MemberInfo\u003E\n\u002B;  V34 tmp18        [V34,T35] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Reflection.PropertyInfo\u003E\n\u002B;  V35 tmp19        [V35,T45] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Reflection.FieldInfo\u003E\n\u002B;  V36 tmp20        [V36,T59] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V37 tmp21        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V38 tmp22        [V38    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V39 tmp23        [V39,T03] (  4, 28   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CCsvHelper.Configuration.MemberNameCollection\u003E\n-;  V40 tmp24        [V40    ] (  2,  4   )   ubyte  -\u003E  [rbp-0x50]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V41 tmp25        [V41,T23] (  3,  8   )     ref  -\u003E  rdx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n-;  V42 tmp26        [V42,T20] (  4, 12   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n-;  V43 tmp27        [V43,T22] (  3, 10   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.__Canon[]\u003E\n-;  V44 tmp28        [V44,T21] (  4, 12   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n\u002B;  V39 tmp23        [V39,T03] (  5, 26   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CCsvHelper.Configuration.MemberNameCollection\u003E\n\u002B;  V40 tmp24        [V40    ] (  1,  4   )   ubyte  -\u003E  [rbp-0x50]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V41 tmp25        [V41,T23] (  2,  8   )     ref  -\u003E  rdx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n\u002B;* V42 tmp26        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n\u002B;  V43 tmp27        [V43,T21] (  3, 10   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.__Canon[]\u003E\n\u002B;  V44 tmp28        [V44,T20] (  4, 12   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n ;  V45 tmp29        [V45,T10] (  3, 16   )     ref  -\u003E  rdx         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Object\u003E\n-;  V46 tmp30        [V46,T44] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Reflection.MemberInfo\u003E\n-;  V47 tmp31        [V47,T47] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Reflection.PropertyInfo\u003E\n-;  V48 tmp32        [V48,T48] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Reflection.FieldInfo\u003E\n... diff truncated; middle omitted ...\n        mov      rdx, rax\n-\t\t\t\t\t\t;; size=33 bbWeight=2 PerfScore 10.50\n-G_M55054_IG18:\n        test     rdx, rdx\n-       jne      SHORT G_M55054_IG20\n-\t\t\t\t\t\t;; size=5 bbWeight=4 PerfScore 5.00\n-G_M55054_IG19:\n\u002B       jne      SHORT G_M55054_IG23\n\u002B\t\t\t\t\t\t;; size=37 bbWeight=4 PerfScore 23.00\n\u002BG_M55054_IG22:\n        mov      rdx, 0xD1FFAB1E      ; \u0027\u0027\n \t\t\t\t\t\t;; size=10 bbWeight=2 PerfScore 0.50\n-G_M55054_IG20:\n\u002BG_M55054_IG23:\n        lea      r8, [rbp-0x38]\n        mov      rdi, r15\n        mov      rsi, r13\n@@ -357,56 \u002B390,9 @@ G_M55054_IG20:\n        mov      r11, 0xD1FFAB1E      ; code for CsvHelper.IReaderRow:TryGetField(System.Type,System.String,int,byref):bool:this\n        call     [r11]CsvHelper.IReaderRow:TryGetField(System.Type,System.String,int,byref):bool:this\n        test     eax, eax\n-       je       G_M55054_IG26\n-       mov      rdx, gword ptr [rbp-0x38]\n-       inc      dword ptr [r12\u002B0x14]\n-       mov      rdi, gword ptr [r12\u002B0x08]\n-       mov      eax, dword ptr [r12\u002B0x10]\n-       cmp      dword ptr [rdi\u002B0x08], eax\n-       ja       SHORT G_M55054_IG25\n-\t\t\t\t\t\t;; size=58 bbWeight=4 PerfScore 70.00\n-G_M55054_IG21:\n-       mov      rdi, r12\n-       mov      rsi, rdx\n-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n-       call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n-\t\t\t\t\t\t;; size=18 bbWeight=2 PerfScore 7.50\n-G_M55054_IG22:\n-       mov      ecx, dword ptr [rbp-0x2C]\n-       inc      ecx\n-       mov      dword ptr [rbp-0x2C], ecx\n-\t\t\t\t\t\t;; size=8 bbWeight=4 PerfScore 9.00\n-G_M55054_IG23:\n-       mov      rdi, rbx\n-       call     [r14\u002B0x30]CsvHelper.Configuration.MemberMapData:get_Names():CsvHelper.Configuration.MemberNameCollection:this\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M55054_IG36\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.String]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       G_M55054_IG17\n-\t\t\t\t\t\t;; size=54 bbWeight=4 PerfScore 42.00\n\u002B       jne      G_M55054_IG17\n\u002B\t\t\t\t\t\t;; size=34 bbWeight=4 PerfScore 26.00\n G_M55054_IG24:\n-       lea      rsi, [rbp-0x50]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      rdx, rax\n-       jmp      G_M55054_IG18\n-\t\t\t\t\t\t;; size=25 bbWeight=2 PerfScore 20.00\n-G_M55054_IG25:\n-       lea      esi, [rax\u002B0x01]\n-       mov      dword ptr [r12\u002B0x10], esi\n-       mov      esi, eax\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST\n-       call     [rax]CORINFO_HELP_ARRADDR_ST\n-       jmp      SHORT G_M55054_IG22\n-\t\t\t\t\t\t;; size=24 bbWeight=2 PerfScore 14.00\n-G_M55054_IG26:\n        mov      rdi, 0xD1FFAB1E      ; data for CsvHelper.ObjectResolver:current\n        mov      r15, gword ptr [rdi]\n        mov      rdi, rbx\n@@ -417,28 \u002B403,28 @@ G_M55054_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       jne      SHORT G_M55054_IG27\n\u002B       jne      SHORT G_M55054_IG25\n        mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Reflection.FieldInfo\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       G_M55054_IG37\n\u002B       je       G_M55054_IG35\n        mov      rdi, rax\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x50]\n        call     [rax\u002B0x18]System.Reflection.FieldInfo:get_FieldType():System.Type:this\n        mov      rbx, rax\n-       jmp      SHORT G_M55054_IG28\n\u002B       jmp      SHORT G_M55054_IG26\n \t\t\t\t\t\t;; size=105 bbWeight=0.50 PerfScore 12.62\n-G_M55054_IG27:\n\u002BG_M55054_IG25:\n        mov      rdi, rax\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x50]\n        call     [rax\u002B0x10]System.Reflection.PropertyInfo:get_PropertyType():System.Type:this\n        mov      rbx, rax\n \t\t\t\t\t\t;; size=16 bbWeight=0.50 PerfScore 3.75\n-G_M55054_IG28:\n\u002BG_M55054_IG26:\n        mov      rdi, 0xD1FFAB1E      ; System.Object[]\n        mov      esi, 1\n        call     CORINFO_HELP_NEWARR_1_PTR\n@@ -462,26 \u002B448,26 @@ G_M55054_IG28:\n        mov      r14, rax\n        xor      ebx, ebx\n        cmp      dword ptr [r12\u002B0x10], 0\n-       jle      SHORT G_M55054_IG32\n\u002B       jle      SHORT G_M55054_IG30\n \t\t\t\t\t\t;; size=118 bbWeight=0.50 PerfScore 9.50\n-G_M55054_IG29:\n\u002BG_M55054_IG27:\n        cmp      ebx, dword ptr [r12\u002B0x10]\n-       jae      G_M55054_IG38\n\u002B       jae      G_M55054_IG36\n        mov      rdi, gword ptr [r12\u002B0x08]\n        cmp      ebx, dword ptr [rdi\u002B0x08]\n-       jae      G_M55054_IG41\n\u002B       jae      G_M55054_IG39\n        mov      r15, gword ptr [rdi\u002B8*rbx\u002B0x10]\n        mov      rdi, qword ptr [r14]\n        mov      edi, dword ptr [rdi\u002B0x04]\n        add      edi, -24\n        shr      edi, 3\n-       je       SHORT G_M55054_IG31\n\u002B       je       SHORT G_M55054_IG29\n \t\t\t\t\t\t;; size=44 bbWeight=4 PerfScore 63.00\n-G_M55054_IG30:\n\u002BG_M55054_IG28:\n        cmp      edi, 1\n-       jne      G_M55054_IG39\n\u002B       jne      G_M55054_IG37\n \t\t\t\t\t\t;; size=9 bbWeight=2 PerfScore 2.50\n-G_M55054_IG31:\n\u002BG_M55054_IG29:\n        mov      rdi, r14\n        mov      esi, ebx\n        mov      rax, 0xD1FFAB1E      ; code for System.Array:GetFlattenedIndex(int):nint:this\n@@ -493,12 \u002B479,12 @@ G_M55054_IG31:\n        call     [rax]System.Array:InternalSetValue(System.Object,nint):this\n        inc      ebx\n        cmp      ebx, dword ptr [r12\u002B0x10]\n-       jl       SHORT G_M55054_IG29\n\u002B       jl       SHORT G_M55054_IG27\n \t\t\t\t\t\t;; size=47 bbWeight=4 PerfScore 44.00\n-G_M55054_IG32:\n\u002BG_M55054_IG30:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M55054_IG33:\n\u002BG_M55054_IG31:\n        add      rsp, 88\n        pop      rbx\n        pop      r12\n@@ -508,7 \u002B494,7 @@ G_M55054_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M55054_IG34:\n\u002BG_M55054_IG32:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -520,19 \u002B506,19 @@ G_M55054_IG34:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M55054_IG35:\n\u002BG_M55054_IG33:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.Object]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M55054_IG16\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M55054_IG36:\n\u002BG_M55054_IG34:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M55054_IG37:\n\u002BG_M55054_IG35:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -544,18 \u002B530,18 @@ G_M55054_IG37:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M55054_IG38:\n\u002BG_M55054_IG36:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M55054_IG39:\n\u002BG_M55054_IG37:\n        mov      edi, 58\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException(int)\n        call     [rax]System.ThrowHelper:ThrowArgumentException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M55054_IG40:\n\u002BG_M55054_IG38:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -567,10 \u002B553,10 @@ G_M55054_IG40:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M55054_IG41:\n\u002BG_M55054_IG39:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1690, prolog size 32, PerfScore 564.50, instruction count 397, allocated bytes for code 1690 (MethodHash=12da28f1) for method CsvHelper.TypeConversion.ArrayConverter:ConvertFromString(System.String,CsvHelper.IReaderRow,CsvHelper.Configuration.MemberMapData):System.Object:this (FullOpts)\n\u002B; Total bytes of code 1639, prolog size 32, PerfScore 530.25, instruction count 387, allocated bytes for code 1639 (MethodHash=12da28f1) for method CsvHelper.TypeConversion.ArrayConverter:ConvertFromString(System.String,CsvHelper.IReaderRow,CsvHelper.Configuration.MemberMapData):System.Object:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1690,"DiffBytes":1639},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.DistributedReaderWriterLockProviderExtensions:AcquireAllReadLocks(Medallion.Threading.IDistributedReaderWriterLockProvider,System.Collections.Generic.IReadOnlyList\u00601[System.String],System.Nullable\u00601[System.TimeSpan],System.Threading.CancellationToken):Medallion.Threading.IDistributedSynchronizationHandle (FullOpts)","Category":"same-size","Description":"787 -\u003E 787 bytes (0)","ExtraInfo":null,"Diff":"@@ -120,7 \u002B120,7 @@ G_M32237_IG04:\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n-       add      rax, 70\n\u002B       add      rax, 68\n        mov      rbx, rax\n        movzx    rcx, byte  ptr [rbx\u002B0x10]\n        mov      dword ptr [rbp-0x2C], ecx\n@@ -290,7 \u002B290,7 @@ G_M32237_IG23:\n        sub      rsp, 40\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n G_M32237_IG24:\n-       mov      edi, 70\n\u002B       mov      edi, 68\n        call     CORINFO_HELP_GETDYNAMIC_NONGCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED2\n        mov      rbx, rax\n        mov      eax, dword ptr [rbp-0x2C]","Truncated":true,"BaseBytes":787,"DiffBytes":787},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Mapping.MappingItemLoader\u002BModificationFunctionMappingLoader:LoadScalarPropertyParameterBinding(System.Xml.XPath.XPathNavigator,System.Data.Entity.Core.Metadata.Edm.StructuralType,bool):System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding:this (FullOpts)","Category":"improvement","Description":"4,044 -\u003E 3,889 bytes (-155)","ExtraInfo":null,"Diff":"@@ -13,183 \u002B13,183 @@\n ;  V02 arg2         [V02,T10] ( 11,  6.12)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.StructuralType\u003E\n ;  V03 arg3         [V03,T20] (  3,  2.50)   ubyte  -\u003E  r14         single-def\n ;  V04 loc0         [V04,T01] ( 21, 13   )     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Xml.IXmlLineInfo\u003E\n-;  V05 loc1         [V05,T37] (  5,  3   )     ref  -\u003E  r12         class-hnd exact single-def \u003CSystem.String\u003E\n\u002B;  V05 loc1         [V05,T34] (  5,  3   )     ref  -\u003E  r12         class-hnd exact single-def \u003CSystem.String\u003E\n ;  V06 loc2         [V06,T21] (  7,  4   )     ref  -\u003E  [rbp-0x80]  class-hnd exact spill-single-def \u003CSystem.String\u003E\n ;  V07 loc3         [V07,T61] (  6,  2.75)     ref  -\u003E  rax         class-hnd exact single-def \u003CSystem.String\u003E\n-;  V08 loc4         [V08,T36] (  6,  3   )   ubyte  -\u003E  [rbp-0x2C] \n\u002B;  V08 loc4         [V08,T33] (  6,  3   )   ubyte  -\u003E  [rbp-0x2C] \n ;  V09 loc5         [V09    ] (  8,  4   )     ref  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n ;  V10 loc6         [V10    ] ( 12,  6   )     ref  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmMember\u003E\n-;  V11 loc7         [V11,T148] (  2,  1   )     int  -\u003E  r12         single-def\n-;  V12 loc8         [V12,T128] (  3,  1.50)     ref  -\u003E  r14         class-hnd \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n-;  V13 loc9         [V13,T129] (  3,  1.50)     ref  -\u003E  r13         class-hnd \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationSet\u003E\n-;  V14 loc10        [V14,T130] (  3,  1.50)     ref  -\u003E  r15         class-hnd exact single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationEndMember\u003E\n-;  V15 loc11        [V15,T131] (  3,  1.50)     ref  -\u003E  r12         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationType\u003E\n\u002B;  V11 loc7         [V11,T145] (  2,  1   )     int  -\u003E  r12         single-def\n\u002B;  V12 loc8         [V12,T122] (  3,  1.50)     ref  -\u003E  r15         class-hnd \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n\u002B;  V13 loc9         [V13,T123] (  3,  1.50)     ref  -\u003E  r14         class-hnd \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationSet\u003E\n\u002B;  V14 loc10        [V14,T124] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationEndMember\u003E\n\u002B;  V15 loc11        [V15,T125] (  3,  1.50)     ref  -\u003E  r12         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationType\u003E\n ;* V16 loc12        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.ReferentialConstraint\u003E\n-;  V17 loc13        [V17,T149] (  2,  1   )     int  -\u003E  r15         single-def\n\u002B;  V17 loc13        [V17,T146] (  2,  1   )     int  -\u003E  r14         single-def\n ;# V18 OutArgs      [V18    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V19 tmp1         [V19,T16] (  3,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022non-inline candidate call\u0022 \u003CSystem.Data.Entity.Core.Mapping.MappingItemLoader\u003E\n ;  V20 tmp2         [V20,T17] (  3,  6   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022non-inline candidate call\u0022 \u003CSystem.Data.Entity.Core.Mapping.MappingItemLoader\u003E\n ;  V21 tmp3         [V21,T18] (  3,  6   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022non-inline candidate call\u0022 \u003CSystem.Data.Entity.Core.Mapping.MappingItemLoader\u003E\n ;  V22 tmp4         [V22,T11] (  7,  7   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00603[System.Object,System.Object,System.String]\u003E\n ;  V23 tmp5         [V23,T12] (  7,  7   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00603[System.Object,System.Object,System.String]\u003E\n-;  V24 tmp6         [V24,T72] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.TypeUsage\u003E\n-;  V25 tmp7         [V25,T38] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ModificationFunctionMemberPath\u003E\n-;  V26 tmp8         [V26,T73] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n-;  V27 tmp9         [V27,T39] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding\u003E\n-;  V28 tmp10        [V28,T40] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n-;  V29 tmp11        [V29,T41] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmMember[]\u003E\n-;  V30 tmp12        [V30,T74] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmProperty\u003E\n-;  V31 tmp13        [V31,T75] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022non-inline candidate call\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmType\u003E\n-;  V32 tmp14        [V32,T76] (  2,  2   )     ref  -\u003E  r14         class-hnd exact single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n-;  V33 tmp15        [V33,T77] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V34 tmp16        [V34,T78] (  2,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmType\u003E\n\u002B;  V24 tmp6         [V24,T68] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.TypeUsage\u003E\n\u002B;  V25 tmp7         [V25,T35] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ModificationFunctionMemberPath\u003E\n\u002B;  V26 tmp8         [V26,T69] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n\u002B;  V27 tmp9         [V27,T36] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding\u003E\n\u002B;  V28 tmp10        [V28,T37] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n\u002B;  V29 tmp11        [V29,T38] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmMember[]\u003E\n\u002B;  V30 tmp12        [V30,T70] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmProperty\u003E\n\u002B;  V31 tmp13        [V31,T71] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022non-inline candidate call\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmType\u003E\n\u002B;  V32 tmp14        [V32,T72] (  2,  2   )     ref  -\u003E  r14         class-hnd exact single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n\u002B;  V33 tmp15        [V33,T73] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V34 tmp16        [V34,T74] (  2,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmType\u003E\n ;* V35 tmp17        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n ;  V36 tmp18        [V36,T13] (  7,  7   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Object,System.String]\u003E\n ;  V37 tmp19        [V37,T14] (  7,  7   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00603[System.Object,System.Object,System.String]\u003E\n-;  V38 tmp20        [V38,T26] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Xml.XPath.XPathNavigator\u003E\n-;  V39 tmp21        [V39,T27] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Xml.XPath.XPathNavigator\u003E\n-;  V40 tmp22        [V40,T28] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Xml.XPath.XPathNavigator\u003E\n\u002B;  V38 tmp20        [V38,T23] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Xml.XPath.XPathNavigator\u003E\n\u002B;  V39 tmp21        [V39,T24] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Xml.XPath.XPathNavigator\u003E\n\u002B;  V40 tmp22        [V40,T25] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Xml.XPath.XPathNavigator\u003E\n ;  V41 tmp23        [V41,T63] (  4,  2   )     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n-;  V42 tmp24        [V42,T132] (  3,  1.50)     ref  -\u003E  rax         class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Resources.EntityRes\u003E\n... diff truncated; middle omitted ...\n\u002B       mov      r13, rax\n        mov      r12, gword ptr [rbp-0x38]\n-       mov      rdi, r15\n-       mov      rsi, r14\n-       mov      rdx, r13\n\u002B       mov      rdi, r13\n\u002B       mov      rsi, r15\n\u002B       mov      rdx, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Mapping.ModificationFunctionMemberPath:.ctor(System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember],System.Data.Entity.Core.Metadata.Edm.AssociationSet):this\n        call     [rax]System.Data.Entity.Core.Mapping.ModificationFunctionMemberPath:.ctor(System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember],System.Data.Entity.Core.Metadata.Edm.AssociationSet):this\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      rdi, r14\n\u002B       mov      r15, rax\n\u002B       mov      rdi, r15\n        mov      rsi, r12\n-       mov      rdx, r15\n\u002B       mov      rdx, r13\n        mov      ecx, dword ptr [rbp-0x2C]\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding:.ctor(System.Data.Entity.Core.Metadata.Edm.FunctionParameter,System.Data.Entity.Core.Mapping.ModificationFunctionMemberPath,bool):this\n        call     [rax]System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding:.ctor(System.Data.Entity.Core.Metadata.Edm.FunctionParameter,System.Data.Entity.Core.Mapping.ModificationFunctionMemberPath,bool):this\n@@ -850,9 \u002B799,9 @@ G_M64676_IG45:\n        lea      rdx, [rbp-0x70]\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.HashSet\u00601[System.__Canon]:AddIfNotPresent(System.__Canon,byref):bool:this\n        call     [rax]System.Collections.Generic.HashSet\u00601[System.__Canon]:AddIfNotPresent(System.__Canon,byref):bool:this\n-       mov      rax, r14\n\u002B       mov      rax, r15\n \t\t\t\t\t\t;; size=137 bbWeight=0.50 PerfScore 15.62\n-G_M64676_IG46:\n\u002BG_M64676_IG40:\n        add      rsp, 184\n        pop      rbx\n        pop      r12\n@@ -862,7 \u002B811,7 @@ G_M64676_IG46:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M64676_IG47:\n\u002BG_M64676_IG41:\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[System.Object,System.String]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -914,13 \u002B863,13 @@ G_M64676_IG47:\n        mov      dword ptr [r12\u002B0x2C], r13d\n        mov      rdi, rbx\n \t\t\t\t\t\t;; size=269 bbWeight=0.50 PerfScore 22.50\n-G_M64676_IG48:\n\u002BG_M64676_IG42:\n        mov      rsi, r12\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:Add(System.__Canon):this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:Add(System.__Canon):this\n-       jmp      G_M64676_IG58\n\u002B       jmp      G_M64676_IG52\n \t\t\t\t\t\t;; size=21 bbWeight=0.50 PerfScore 2.75\n-G_M64676_IG49:\n\u002BG_M64676_IG43:\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00603[System.Object,System.Object,System.String]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n@@ -967,7 \u002B916,7 @@ G_M64676_IG49:\n        mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n \t\t\t\t\t\t;; size=238 bbWeight=0.50 PerfScore 22.12\n-G_M64676_IG50:\n\u002BG_M64676_IG44:\n        mov      rdi, 0xD1FFAB1E\n        mov      r14, gword ptr [rbp-0xC0]\n        mov      qword ptr [r14\u002B0x20], rdi\n@@ -980,9 \u002B929,9 @@ G_M64676_IG50:\n        mov      rsi, r14\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:Add(System.__Canon):this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:Add(System.__Canon):this\n-       jmp      G_M64676_IG58\n\u002B       jmp      G_M64676_IG52\n \t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 5.88\n-G_M64676_IG51:\n\u002BG_M64676_IG45:\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00603[System.Object,System.Object,System.String]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -1034,7 \u002B983,7 @@ G_M64676_IG51:\n        lea      rdi, bword ptr [r15\u002B0x10]\n        mov      rsi, rbx\n \t\t\t\t\t\t;; size=262 bbWeight=0.50 PerfScore 24.50\n-G_M64676_IG52:\n\u002BG_M64676_IG46:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      dword ptr [r15\u002B0x28], r12d\n        mov      dword ptr [r15\u002B0x2C], r13d\n@@ -1042,9 \u002B991,9 @@ G_M64676_IG52:\n        mov      rsi, r15\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:Add(System.__Canon):this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:Add(System.__Canon):this\n-       jmp      G_M64676_IG58\n\u002B       jmp      G_M64676_IG52\n \t\t\t\t\t\t;; size=37 bbWeight=0.50 PerfScore 4.38\n-G_M64676_IG53:\n\u002BG_M64676_IG47:\n        mov      rdi, gword ptr [rax\u002B0x08]\n        mov      rsi, 0xD1FFAB1E      ; \u0027Mapping_ModificationFunction_VersionMustBeCurrent\u0027\n        xor      rdx, rdx\n@@ -1053,7 \u002B1002,7 @@ G_M64676_IG53:\n        call     [rax\u002B0x28]System.Resources.ResourceManager:GetString(System.String,System.Globalization.CultureInfo):System.String:this\n        mov      r15, rax\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 4.88\n-G_M64676_IG54:\n\u002BG_M64676_IG48:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      rbx, gword ptr [rdi\u002B0x18]\n        mov      r14, gword ptr [rdi\u002B0x20]\n@@ -1092,13 \u002B1041,13 @@ G_M64676_IG54:\n        mov      rsi, r15\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:Add(System.__Canon):this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:Add(System.__Canon):this\n-       jmp      G_M64676_IG58\n\u002B       jmp      G_M64676_IG52\n \t\t\t\t\t\t;; size=210 bbWeight=0.50 PerfScore 18.62\n-G_M64676_IG55:\n\u002BG_M64676_IG49:\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Resources.EntityRes:GetLoader():System.Data.Entity.Resources.EntityRes\n        call     [rax]System.Data.Entity.Resources.EntityRes:GetLoader():System.Data.Entity.Resources.EntityRes\n        test     rax, rax\n-       je       SHORT G_M64676_IG56\n\u002B       je       SHORT G_M64676_IG50\n        mov      rdi, gword ptr [rax\u002B0x08]\n        mov      rsi, 0xD1FFAB1E      ; \u0027Mapping_ModificationFunction_VersionMustBeOriginal\u0027\n        xor      rdx, rdx\n@@ -1106,12 \u002B1055,12 @@ G_M64676_IG55:\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x28]System.Resources.ResourceManager:GetString(System.String,System.Globalization.CultureInfo):System.String:this\n        mov      r15, rax\n-       jmp      SHORT G_M64676_IG57\n\u002B       jmp      SHORT G_M64676_IG51\n \t\t\t\t\t\t;; size=48 bbWeight=0.50 PerfScore 8.12\n-G_M64676_IG56:\n\u002BG_M64676_IG50:\n        xor      r15, r15\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M64676_IG57:\n\u002BG_M64676_IG51:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      rbx, gword ptr [rdi\u002B0x18]\n        mov      r14, gword ptr [rdi\u002B0x20]\n@@ -1151,10 \u002B1100,10 @@ G_M64676_IG57:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:Add(System.__Canon):this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:Add(System.__Canon):this\n \t\t\t\t\t\t;; size=205 bbWeight=0.50 PerfScore 17.62\n-G_M64676_IG58:\n\u002BG_M64676_IG52:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M64676_IG59:\n\u002BG_M64676_IG53:\n        add      rsp, 184\n        pop      rbx\n        pop      r12\n@@ -1164,23 \u002B1113,23 @@ G_M64676_IG59:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M64676_IG60:\n\u002BG_M64676_IG54:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M64676_IG61:\n\u002BG_M64676_IG55:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M64676_IG62:\n\u002BG_M64676_IG56:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rax]CORINFO_HELP_CHKCASTCLASS\n        int3     \n \t\t\t\t\t\t;; size=16 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 4044, prolog size 40, PerfScore 476.16, instruction count 864, allocated bytes for code 4044 (MethodHash=3841035b) for method System.Data.Entity.Core.Mapping.MappingItemLoader\u002BModificationFunctionMappingLoader:LoadScalarPropertyParameterBinding(System.Xml.XPath.XPathNavigator,System.Data.Entity.Core.Metadata.Edm.StructuralType,bool):System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding:this (FullOpts)\n\u002B; Total bytes of code 3889, prolog size 40, PerfScore 453.66, instruction count 825, allocated bytes for code 3889 (MethodHash=3841035b) for method System.Data.Entity.Core.Mapping.MappingItemLoader\u002BModificationFunctionMappingLoader:LoadScalarPropertyParameterBinding(System.Xml.XPath.XPathNavigator,System.Data.Entity.Core.Metadata.Edm.StructuralType,bool):System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":4044,"DiffBytes":3889},{"Assembly":"MathNet.Numerics.dasm","Method":"MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:SameAs[int](MathNet.Numerics.LinearAlgebra.Matrix\u00601[int],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this (FullOpts)","Category":"improvement","Description":"594 -\u003E 120 bytes (-474)","ExtraInfo":null,"Diff":"@@ -1,214 \u002B1,65 @@\n ; Assembly listing for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:SameAs[int](MathNet.Numerics.LinearAlgebra.Matrix\u00601[int],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n-; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data\n\u002B; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 12,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]\u003E\n-;  V01 arg1         [V01,T03] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[int]\u003E\n-;  V02 arg2         [V02,T01] ( 11,  6.50)     int  -\u003E  r15         single-def\n-;  V03 arg3         [V03,T02] ( 11,  6.50)     int  -\u003E  r14         single-def\n-;  V04 arg4         [V04,T04] (  3,  2.50)   ubyte  -\u003E  r13         single-def\n-;  V05 loc0         [V05,T08] (  4,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]\u003E\n\u002B;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]\u003E\n\u002B;  V01 arg1         [V01,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[int]\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  4   )     int  -\u003E  r15         single-def\n\u002B;  V03 arg3         [V03,T04] (  4,  4   )     int  -\u003E  r14         single-def\n\u002B;* V04 arg4         [V04    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def\n\u002B;* V05 loc0         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]\u003E\n\u002B;  V07 tmp1         [V07,T00] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cbyte[]\u003E\n-;  V09 tmp3         [V09,T06] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[byte]\u003E\n-;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cbyte[]\u003E\n-;  V11 tmp5         [V11,T11] (  2,  1   )     int  -\u003E  rsi         \u0022Inline return value spill temp\u0022\n-;  V12 tmp6         [V12,T09] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]\u003E\n-;  V13 tmp7         [V13,T10] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]\u003E\n-;  V14 tmp8         [V14,T07] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]\u003E\n-;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cbyte[]\u003E\n-;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022Single return block return value\u0022\n ;\n ; Lcl frame size = 8\n \n G_M2076_IG01:\n-       push     rbp\n        push     r15\n        push     r14\n        push     r13\n-       push     r12\n        push     rbx\n        push     rax\n-       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n        mov      r15d, edx\n        mov      r14d, ecx\n-       mov      r13d, r8d\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.75\n G_M2076_IG02:\n-       mov      r12, gword ptr [rsi\u002B0x08]\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M2076_IG11\n-\t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 7.00\n-G_M2076_IG03:\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[byte]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M2076_IG07\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      SHORT G_M2076_IG05\n\u002B       cmp      byte  ptr [rsi], sil\n        mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        mov      rdi, r13\n        mov      esi, r15d\n        mov      edx, r14d\n        mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]:.ctor(int,int):this\n        call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]:.ctor(int,int):this\n        imul     r15d, r14d\n        movsxd   rsi, r15d\n        mov      rdi, 0xD1FFAB1E      ; byte[]\n        call     CORINFO_HELP_NEWARR_1_VC\n        mov      rsi, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, rbx\n        mov      rsi, r13\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=150 bbWeight=0.50 PerfScore 12.62\n-G_M2076_IG04:\n\u002B\t\t\t\t\t\t;; size=89 bbWeight=1 PerfScore 17.25\n\u002BG_M2076_IG03:\n        add      rsp, 8\n        pop      rbx\n-       pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n-       pop      rbp\n        tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M2076_IG05:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 5.00\n-G_M2076_IG06:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M2076_IG07:\n-       test     r13b, r13b\n-       je       SHORT G_M2076_IG09\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 5.62\n-G_M2076_IG08:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M2076_IG09:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[byte]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]:.ctor(int,int):this\n-       cmp      r15d, r14d\n-       mov      esi, r14d\n-       cmovle   esi, r15d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; byte[]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 7.12\n-G_M2076_IG10:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x10]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:Diagonal(MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[byte]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M2076_IG11:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]:.ctor(int,int):this\n-       mov      esi, r15d\n-       imul     esi, r14d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; byte[]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=89 bbWeight=0.50 PerfScore 7.75\n-G_M2076_IG12:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n\u002B\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 594, prolog size 16, PerfScore 66.75, instruction count 157, allocated bytes for code 594 (MethodHash=d99df7e3) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:SameAs[int](MathNet.Numerics.LinearAlgebra.Matrix\u00601[int],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this (FullOpts)\n\u002B; Total bytes of code 120, prolog size 8, PerfScore 27.25, instruction count 34, allocated bytes for code 120 (MethodHash=d99df7e3) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:SameAs[int](MathNet.Numerics.LinearAlgebra.Matrix\u00601[int],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":594,"DiffBytes":120},{"Assembly":"Microsoft.AspNetCore.OData.dasm","Method":"Microsoft.AspNetCore.OData.Query.Expressions.QueryBinder:GetFlattenedProperties(System.Linq.Expressions.ParameterExpression,Microsoft.AspNetCore.OData.Query.Expressions.QueryBinderContext,System.Linq.IQueryable):System.Collections.Generic.IDictionary\u00602[System.String,System.Linq.Expressions.Expression] (FullOpts)","Category":"improvement","Description":"554 -\u003E 498 bytes (-56)","ExtraInfo":null,"Diff":"@@ -16,27 \u002B16,27 @@\n ;* V05 loc2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u003CSystem.Nullable\u00601[bool]\u003E\n ;  V06 loc3         [V06    ] (  1,  0.50)     ref  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003CSystem.Type\u003E\n ;  V07 loc4         [V07,T06] (  4,  2   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Linq.Expressions.MemberExpression\u003E\n-;  V08 loc5         [V08,T10] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n\u002B;  V08 loc5         [V08,T09] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V10 tmp1         [V10,T01] (  5,  5   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Linq.Expressions.Expression]\u003E\n-;  V11 tmp2         [V11,T05] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Type\u003E\n\u002B;  V11 tmp2         [V11,T04] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Type\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V13 tmp4         [V13    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Nullable\u00601[bool]\u003E\n ;* V14 tmp5         [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u003CSystem.Nullable\u00601[bool]\u003E\n ;* V15 tmp6         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022non-inline candidate call\u0022 \u003CSystem.RuntimeType\u003E\n ;* V16 tmp7         [V16    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V17 tmp8         [V17,T04] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V18 tmp9         [V18    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V19 tmp10        [V19,T11] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V20 tmp11        [V20,T07] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V17 tmp8         [V17,T05] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V18 tmp9         [V18    ] (  1,  0.50)   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V19 tmp10        [V19,T11] (  2,  1   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;* V20 tmp11        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n ;* V21 tmp12        [V21    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V05.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V22 tmp13        [V22    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022field V05.value (fldOffset=0x1)\u0022 P-INDEP\n ;* V23 tmp14        [V23    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V24 tmp15        [V24,T13] (  2,  1   )   ubyte  -\u003E  rax         single-def \u0022field V13.value (fldOffset=0x1)\u0022 P-INDEP\n\u002B;  V24 tmp15        [V24,T12] (  2,  1   )   ubyte  -\u003E  rax         single-def \u0022field V13.value (fldOffset=0x1)\u0022 P-INDEP\n ;* V25 tmp16        [V25    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022field V14.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V26 tmp17        [V26,T12] (  3,  1.50)   ubyte  -\u003E  rax         \u0022field V14.value (fldOffset=0x1)\u0022 P-INDEP\n-;  V27 tmp18        [V27,T08] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V28 tmp19        [V28,T09] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V26 tmp17        [V26,T10] (  3,  1.50)   ubyte  -\u003E  rax         \u0022field V14.value (fldOffset=0x1)\u0022 P-INDEP\n\u002B;  V27 tmp18        [V27,T07] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V28 tmp19        [V28,T08] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 16\n \n@@ -62,7 \u002B62,7 @@ G_M42373_IG02:\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.AspNetCore.OData.Common.TypeHelper:IsGroupByWrapper(System.Type):bool\n        call     [rax]Microsoft.AspNetCore.OData.Common.TypeHelper:IsGroupByWrapper(System.Type):bool\n        test     eax, eax\n-       je       G_M42373_IG10\n\u002B       je       G_M42373_IG08\n \t\t\t\t\t\t;; size=39 bbWeight=1 PerfScore 8.25\n G_M42373_IG03:\n        mov      rdi, rbx\n@@ -74,13 \u002B74,13 @@ G_M42373_IG03:\n        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        mov      r14, rax\n        test     r14, r14\n-       je       G_M42373_IG10\n\u002B       je       G_M42373_IG08\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.AspNetCore.OData.Query.Expressions.QueryBinder:SkipFilters(System.Linq.Expressions.MethodCallExpression):System.Linq.Expressions.MethodCallExpression\n        call     [rax]Microsoft.AspNetCore.OData.Query.Expressions.QueryBinder:SkipFilters(System.Linq.Expressions.MethodCallExpression):System.Linq.Expressions.MethodCallExpression\n        mov      r14, rax\n        test     r14, r14\n-       je       G_M42373_IG10\n\u002B       je       G_M42373_IG08\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.Dictionary\u00602[System.String,System.Linq.Expressions.Expression]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n@@ -110,7 \u002B110,7 @@ G_M42373_IG04:\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n G_M42373_IG05:\n        test     al, al\n-       je       G_M42373_IG08\n\u002B       je       G_M42373_IG06\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; \u0027Instance\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Expressions.Expression:Property(System.Linq.Expressions.Expression,System.String):System.Linq.Expressions.MemberExpression\n@@ -125,35 \u002B125,18 @@ G_M42373_IG05:\n        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:IsAssignableFrom(System.Type):bool:this\n        call     [rax]System.RuntimeType:IsAssignableFrom(System.Type):bool:this\n        test     eax, eax\n-       je       G_M42373_IG08\n\u002B       je       SHORT G_M42373_IG06\n        mov      rdi, r14\n        mov      rax, qword ptr [r14]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x20]System.Linq.Expressions.MethodCallExpression:GetOrMakeArguments():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]:this\n-       mov      r15, rax\n-       test     r15, r15\n-       je       G_M42373_IG12\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M42373_IG06\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M42373_IG07\n-\t\t\t\t\t\t;; size=156 bbWeight=0.50 PerfScore 20.50\n-G_M42373_IG06:\n\u002B       je       G_M42373_IG10\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r15\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Linq.Expressions.Expression](System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.Expression],byref):System.Linq.Expressions.Expression\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M42373_IG07:\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Expressions.MethodCallExpression\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n@@ -162,16 \u002B145,28 @@ G_M42373_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.AspNetCore.OData.Query.Expressions.QueryBinder:SkipFilters(System.Linq.Expressions.MethodCallExpression):System.Linq.Expressions.MethodCallExpression\n        call     [rax]Microsoft.AspNetCore.OData.Query.Expressions.QueryBinder:SkipFilters(System.Linq.Expressions.MethodCallExpression):System.Linq.Expressions.MethodCallExpression\n        test     rax, rax\n-       je       SHORT G_M42373_IG08\n\u002B       je       SHORT G_M42373_IG06\n        mov      rdi, rbx\n        mov      rsi, rax\n        mov      rdx, r13\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.AspNetCore.OData.Query.Expressions.QueryBinder:CollectContainerAssignments(System.Linq.Expressions.Expression,System.Linq.Expressions.MethodCallExpression,System.Collections.Generic.Dictionary\u00602[System.String,System.Linq.Expressions.Expression])\n        call     [rax]Microsoft.AspNetCore.OData.Query.Expressions.QueryBinder:CollectContainerAssignments(System.Linq.Expressions.Expression,System.Linq.Expressions.MethodCallExpression,System.Collections.Generic.Dictionary\u00602[System.String,System.Linq.Expressions.Expression])\n-\t\t\t\t\t\t;; size=66 bbWeight=0.50 PerfScore 6.25\n-G_M42373_IG08:\n\u002B\t\t\t\t\t\t;; size=195 bbWeight=0.50 PerfScore 21.38\n\u002BG_M42373_IG06:\n        mov      rax, r13\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n\u002BG_M42373_IG07:\n\u002B       add      rsp, 16\n\u002B       pop      rbx\n\u002B       pop      r13\n\u002B       pop      r14\n\u002B       pop      r15\n\u002B       pop      rbp\n\u002B       ret      \n\u002B\t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 1.88\n\u002BG_M42373_IG08:\n\u002B       xor      rax, rax\n\u002B\t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n G_M42373_IG09:\n        add      rsp, 16\n        pop      rbx\n@@ -182,23 \u002B177,11 @@ G_M42373_IG09:\n        ret      \n \t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 1.88\n G_M42373_IG10:\n-       xor      rax, rax\n-\t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M42373_IG11:\n-       add      rsp, 16\n-       pop      rbx\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       ret      \n-\t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 1.88\n-G_M42373_IG12:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 554, prolog size 27, PerfScore 66.75, instruction count 135, allocated bytes for code 554 (MethodHash=36285a7a) for method Microsoft.AspNetCore.OData.Query.Expressions.QueryBinder:GetFlattenedProperties(System.Linq.Expressions.ParameterExpression,Microsoft.AspNetCore.OData.Query.Expressions.QueryBinderContext,System.Linq.IQueryable):System.Collections.Generic.IDictionary\u00602[System.String,System.Linq.Expressions.Expression] (FullOpts)\n\u002B; Total bytes of code 498, prolog size 27, PerfScore 59.25, instruction count 122, allocated bytes for code 498 (MethodHash=36285a7a) for method Microsoft.AspNetCore.OData.Query.Expressions.QueryBinder:GetFlattenedProperties(System.Linq.Expressions.ParameterExpression,Microsoft.AspNetCore.OData.Query.Expressions.QueryBinderContext,System.Linq.IQueryable):System.Collections.Generic.IDictionary\u00602[System.String,System.Linq.Expressions.Expression] (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":554,"DiffBytes":498},{"Assembly":"Microsoft.EntityFrameworkCore.dasm","Method":"Microsoft.EntityFrameworkCore.Query.ExpressionPrinter:VisitLambda[System.__Canon](System.Linq.Expressions.Expression\u00601[System.__Canon]):System.Linq.Expressions.Expression:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 797 bytes (-52)","ExtraInfo":null,"Diff":"@@ -8,35 \u002B8,35 @@\n ; 0 inlinees with PGO data; 10 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T02] ( 12, 24   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.ExpressionPrinter\u003E\n\u002B;  V00 this         [V00,T01] ( 12, 24   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.ExpressionPrinter\u003E\n ;* V01 TypeCtx      [V01    ] (  0,  0   )    long  -\u003E  zero-ref    single-def\n ;  V02 arg1         [V02,T05] ( 10, 13   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Linq.Expressions.Expression\u00601[System.__Canon]\u003E\n ;  V03 loc0         [V03,T00] ( 12, 28   )     ref  -\u003E  [rbp-0x38]  do-not-enreg[M] class-hnd EH-live \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;  V04 loc1         [V04,T04] (  5, 20   )     ref  -\u003E  r13         class-hnd \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n-;  V05 loc2         [V05,T10] (  2,  8   )     ref  -\u003E  rdx         class-hnd exact \u003CSystem.String\u003E\n-;  V06 loc3         [V06,T11] (  2,  8   )     ref  -\u003E  rsi         class-hnd \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n\u002B;  V05 loc2         [V05,T08] (  2,  8   )     ref  -\u003E  rdx         class-hnd exact \u003CSystem.String\u003E\n\u002B;  V06 loc3         [V06,T09] (  2,  8   )     ref  -\u003E  rsi         class-hnd \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V08 tmp1         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V09 tmp2         [V09,T19] (  3,  2   )     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V10 tmp3         [V10,T13] (  3,  5   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V09 tmp2         [V09,T18] (  3,  2   )     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V10 tmp3         [V10,T12] (  3,  5   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;* V11 tmp4         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V12 tmp5         [V12,T03] (  3, 24   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Linq.Expressions.ParameterExpression,System.String]\u003E\n-;  V13 tmp6         [V13,T01] (  4, 28   )     ref  -\u003E  r12         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V14 tmp7         [V14    ] (  3,  8   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V12 tmp5         [V12,T02] (  3, 24   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Linq.Expressions.ParameterExpression,System.String]\u003E\n\u002B;  V13 tmp6         [V13,T03] (  3, 24   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V14 tmp7         [V14    ] (  2,  8   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V15 tmp8         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V16 tmp9         [V16,T09] (  3,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n-;  V17 tmp10        [V17,T06] (  4, 12   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V16 tmp9         [V16,T10] (  2,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n\u002B;* V17 tmp10        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;* V18 tmp11        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V19 tmp12        [V19,T20] (  3,  2   )     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V20 tmp13        [V20,T14] (  3,  5   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V19 tmp12        [V19,T19] (  3,  2   )     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V20 tmp13        [V20,T13] (  3,  5   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;* V21 tmp14        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V22 tmp15        [V22,T15] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V23 tmp16        [V23,T17] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V24 tmp17        [V24,T07] (  3, 12   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n-;  V25 tmp18        [V25,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V26 tmp19        [V26,T18] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V27 tmp20        [V27,T12] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V28 cse0         [V28,T08] (  6,  9   )    long  -\u003E  r14         \u0022CSE #02: moderate\u0022\n\u002B;  V22 tmp15        [V22,T14] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V23 tmp16        [V23,T16] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V24 tmp17        [V24,T06] (  3, 12   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n\u002B;  V25 tmp18        [V25,T15] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V26 tmp19        [V26,T17] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V27 tmp20        [V27,T11] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V28 cse0         [V28,T07] (  6,  9   )    long  -\u003E  r14         \u0022CSE #02: moderate\u0022\n ;\n ; Lcl frame size = 24\n \n@@ -85,7 \u002B85,7 @@ G_M11480_IG04:\n G_M11480_IG05:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M11480_IG28\n\u002B       je       G_M11480_IG25\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n G_M11480_IG06:\n        mov      rdi, 0xD1FFAB1E      ; data for System.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]:Empty\n@@ -106,7 \u002B106,7 @@ G_M11480_IG09:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():bool:this\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n-       je       G_M11480_IG17\n\u002B       je       G_M11480_IG14\n \t\t\t\t\t\t;; size=25 bbWeight=8 PerfScore 44.00\n G_M11480_IG10:\n        mov      rdi, gword ptr [rbp-0x38]\n@@ -127,38 \u002B127,19 @@ G_M11480_IG10:\n        call     [rax\u002B0x20]System.Linq.Expressions.ExpressionVisitor:Visit(System.Linq.Expressions.Expression):System.Linq.Expressions.Expression:this\n        mov      rdi, r15\n        call     [r14\u002B0x30]System.Linq.Expressions.LambdaExpression:GetOrMakeParameters():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]:this\n-       mov      r12, rax\n-       test     r12, r12\n-       je       SHORT G_M11480_IG15\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ParameterExpression]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n        je       SHORT G_M11480_IG12\n-\t\t\t\t\t\t;; size=109 bbWeight=4 PerfScore 126.00\n-G_M11480_IG11:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M11480_IG13\n-\t\t\t\t\t\t;; size=19 bbWeight=2 PerfScore 19.50\n-G_M11480_IG12:\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r12\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.Linq.Expressions.ParameterExpression](System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.ParameterExpression],byref):System.Linq.Expressions.ParameterExpression\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=2 PerfScore 8.50\n-G_M11480_IG13:\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       SHORT G_M11480_IG16\n\u002B       je       SHORT G_M11480_IG13\n        cmp      r13, rax\n        je       G_M11480_IG09\n-\t\t\t\t\t\t;; size=15 bbWeight=4 PerfScore 13.00\n-G_M11480_IG14:\n\u002B\t\t\t\t\t\t;; size=120 bbWeight=4 PerfScore 135.00\n\u002BG_M11480_IG11:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      rsi, 0xD1FFAB1E      ; \u0027, \u0027\n        mov      rax, qword ptr [rdi]\n@@ -166,18 \u002B147,18 @@ G_M11480_IG14:\n        call     [rax\u002B0x30]Microsoft.EntityFrameworkCore.Infrastructure.IndentedStringBuilder:Append(System.String):Microsoft.EntityFrameworkCore.Infrastructure.IndentedStringBuilder:this\n        jmp      G_M11480_IG09\n \t\t\t\t\t\t;; size=29 bbWeight=2 PerfScore 22.50\n-G_M11480_IG15:\n\u002BG_M11480_IG12:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M11480_IG16:\n\u002BG_M11480_IG13:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M11480_IG17:\n\u002BG_M11480_IG14:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n@@ -187,16 \u002B168,16 @@ G_M11480_IG17:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        cmp      eax, 1\n-       je       SHORT G_M11480_IG19\n\u002B       je       SHORT G_M11480_IG16\n \t\t\t\t\t\t;; size=46 bbWeight=1 PerfScore 14.00\n-G_M11480_IG18:\n\u002BG_M11480_IG15:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      rsi, 0xD1FFAB1E      ; \u0027)\u0027\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]Microsoft.EntityFrameworkCore.Infrastructure.IndentedStringBuilder:Append(System.String):Microsoft.EntityFrameworkCore.Infrastructure.IndentedStringBuilder:this\n \t\t\t\t\t\t;; size=24 bbWeight=0.50 PerfScore 4.62\n-G_M11480_IG19:\n\u002BG_M11480_IG16:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      rsi, 0xD1FFAB1E      ; \u0027 =\u003E \u0027\n        mov      rax, qword ptr [rdi]\n@@ -214,35 \u002B195,35 @@ G_M11480_IG19:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       jne      SHORT G_M11480_IG22\n\u002B       jne      SHORT G_M11480_IG19\n \t\t\t\t\t\t;; size=72 bbWeight=1 PerfScore 28.50\n-G_M11480_IG20:\n\u002BG_M11480_IG17:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M11480_IG29\n\u002B       je       G_M11480_IG26\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n-G_M11480_IG21:\n\u002BG_M11480_IG18:\n        mov      rdi, 0xD1FFAB1E      ; data for System.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]:Empty\n        mov      r13, gword ptr [rdi]\n-       jmp      SHORT G_M11480_IG23\n\u002B       jmp      SHORT G_M11480_IG20\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M11480_IG22:\n\u002BG_M11480_IG19:\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEnumerable\u00601[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator\u00601[System.__Canon]:this\n        call     [r11]System.Collections.Generic.IEnumerable\u00601[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator\u00601[System.__Canon]:this\n        mov      r13, rax\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 2.75\n-G_M11480_IG23:\n\u002BG_M11480_IG20:\n        mov      gword ptr [rbp-0x38], r13\n \t\t\t\t\t\t;; size=4 bbWeight=1 PerfScore 1.00\n-G_M11480_IG24:\n\u002BG_M11480_IG21:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():bool:this\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n-       je       SHORT G_M11480_IG26\n\u002B       je       SHORT G_M11480_IG23\n \t\t\t\t\t\t;; size=21 bbWeight=8 PerfScore 44.00\n-G_M11480_IG25:\n\u002BG_M11480_IG22:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEnumerator\u00601[System.__Canon]:get_Current():System.__Canon:this\n        call     [r11]System.Collections.Generic.IEnumerator\u00601[System.__Canon]:get_Current():System.__Canon:this\n@@ -251,15 \u002B232,15 @@ G_M11480_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary\u00602[System.__Canon,System.__Canon]:Remove(System.__Canon):bool:this\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.Collections.Generic.Dictionary\u00602[System.__Canon,System.__Canon]:Remove(System.__Canon):bool:this\n-       jmp      SHORT G_M11480_IG24\n\u002B       jmp      SHORT G_M11480_IG21\n \t\t\t\t\t\t;; size=40 bbWeight=4 PerfScore 55.00\n-G_M11480_IG26:\n\u002BG_M11480_IG23:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        mov      rax, r15\n \t\t\t\t\t\t;; size=20 bbWeight=1 PerfScore 4.50\n-G_M11480_IG27:\n\u002BG_M11480_IG24:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -269,52 \u002B250,52 @@ G_M11480_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M11480_IG28:\n\u002BG_M11480_IG25:\n        mov      rdi, 0xD1FFAB1E      ; System.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M11480_IG06\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M11480_IG29:\n\u002BG_M11480_IG26:\n        mov      rdi, 0xD1FFAB1E      ; System.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M11480_IG21\n\u002B       jmp      G_M11480_IG18\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M11480_IG30:\n\u002BG_M11480_IG27:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M11480_IG31:\n\u002BG_M11480_IG28:\n        cmp      gword ptr [rbp-0x38], 0\n-       je       SHORT G_M11480_IG32\n\u002B       je       SHORT G_M11480_IG29\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M11480_IG32:\n\u002BG_M11480_IG29:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M11480_IG33:\n\u002BG_M11480_IG30:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M11480_IG34:\n\u002BG_M11480_IG31:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M11480_IG35:\n\u002BG_M11480_IG32:\n        cmp      gword ptr [rbp-0x38], 0\n-       je       SHORT G_M11480_IG36\n\u002B       je       SHORT G_M11480_IG33\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M11480_IG36:\n\u002BG_M11480_IG33:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M11480_IG37:\n\u002BG_M11480_IG34:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 31, PerfScore 440.25, instruction count 201, allocated bytes for code 849 (MethodHash=8484d327) for method Microsoft.EntityFrameworkCore.Query.ExpressionPrinter:VisitLambda[System.__Canon](System.Linq.Expressions.Expression\u00601[System.__Canon]):System.Linq.Expressions.Expression:this (FullOpts)\n\u002B; Total bytes of code 797, prolog size 31, PerfScore 408.25, instruction count 188, allocated bytes for code 797 (MethodHash=8484d327) for method Microsoft.EntityFrameworkCore.Query.ExpressionPrinter:VisitLambda[System.__Canon](System.Linq.Expressions.Expression\u00601[System.__Canon]):System.Linq.Expressions.Expression:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":797},{"Assembly":"Microsoft.OpenApi.dasm","Method":"Microsoft.OpenApi.OpenApiMediaType:SerializeInternal(Microsoft.OpenApi.IOpenApiWriter,int,System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]):this (FullOpts)","Category":"improvement","Description":"2,157 -\u003E 2,118 bytes (-39)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T03] (  6,  5   )     int  -\u003E  r13         single-def\n ;  V03 arg3         [V03,T01] ( 21, 11.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V05 tmp1         [V05,T15] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,System.Text.Json.Nodes.JsonNode]\u003E\n\u002B;  V05 tmp1         [V05,T13] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,System.Text.Json.Nodes.JsonNode]\u003E\n ;  V06 tmp2         [V06,T04] (  5,  7   )     ref  -\u003E  r12         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Text.Json.Nodes.JsonNode\u003E\n ;* V07 tmp3         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V08 tmp4         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V09 tmp5         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V10 tmp6         [V10,T16] (  5,  3.50)     ref  -\u003E  [rbp-0x30] \n\u002B;  V10 tmp6         [V10,T14] (  5,  3.50)     ref  -\u003E  [rbp-0x30] \n ;  V11 tmp7         [V11,T07] (  5,  5   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,System.Text.Json.Nodes.JsonNode]\u003E\n ;* V12 tmp8         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n ;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n@@ -62,35 \u002B62,33 @@\n ;* V51 tmp47        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMicrosoft.OpenApi.OpenApiWriterExtensions\u002B\u003C\u003Ec__DisplayClass21_0\u00601[Microsoft.OpenApi.OpenApiEncoding]\u003E\n ;  V52 tmp48        [V52,T33] (  3,  1.50)     ref  -\u003E  [rbp-0x50]  class-hnd exact spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.OpenApi.OpenApiWriterExtensions\u002B\u003C\u003Ec__DisplayClass21_0\u00601[Microsoft.OpenApi.OpenApiEncoding]\u003E\n ;  V53 tmp49        [V53,T12] (  4,  4   )     ref  -\u003E  [rbp-0x58]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u00603[Microsoft.OpenApi.IOpenApiWriter,System.String,Microsoft.OpenApi.OpenApiEncoding]\u003E\n-;  V54 tmp50        [V54,T13] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiEncoding\u003E\n\u002B;  V54 tmp50        [V54,T17] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiEncoding\u003E\n ;  V55 tmp51        [V55,T34] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n-;* V56 tmp52        [V56    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling qmarkNull\u0022\n-;* V57 tmp53        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;* V58 tmp54        [V58    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;  V59 tmp55        [V59,T40] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V60 tmp56        [V60,T14] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiEncoding\u003E\n-;  V61 tmp57        [V61,T35] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n-;* V62 tmp58        [V62    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling qmarkNull\u0022\n-;* V63 tmp59        [V63    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;* V64 tmp60        [V64    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;  V65 tmp61        [V65,T41] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V66 tmp62        [V66,T19] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IList\u00601[Microsoft.OpenApi.OpenApiEncoding]\u003E\n-;  V67 tmp63        [V67,T20] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IList\u00601[Microsoft.OpenApi.OpenApiEncoding]\u003E\n-;  V68 tmp64        [V68,T22] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V69 tmp65        [V69,T23] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V70 tmp66        [V70,T42] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V71 tmp67        [V71,T24] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V72 tmp68        [V72,T25] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V73 tmp69        [V73,T26] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V74 tmp70        [V74,T43] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V75 tmp71        [V75,T27] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V76 tmp72        [V76,T44] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;* V77 tmp73        [V77    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022argument with side effect\u0022\n-;  V78 tmp74        [V78,T45] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V79 tmp75        [V79,T46] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V80 tmp76        [V80,T47] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V81 cse0         [V81,T17] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #11: moderate\u0022\n-;  V82 cse1         [V82,T18] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #14: moderate\u0022\n\u002B;* V56 tmp52        [V56    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;* V57 tmp53        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;  V58 tmp54        [V58,T40] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V59 tmp55        [V59,T18] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiEncoding\u003E\n\u002B;  V60 tmp56        [V60,T35] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n\u002B;* V61 tmp57        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;* V62 tmp58        [V62    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;  V63 tmp59        [V63,T41] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V64 tmp60        [V64,T19] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IList\u00601[Microsoft.OpenApi.OpenApiEncoding]\u003E\n\u002B;  V65 tmp61        [V65,T20] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IList\u00601[Microsoft.OpenApi.OpenApiEncoding]\u003E\n\u002B;  V66 tmp62        [V66,T22] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V67 tmp63        [V67,T23] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V68 tmp64        [V68,T42] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;  V69 tmp65        [V69,T24] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V70 tmp66        [V70,T25] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V71 tmp67        [V71,T26] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V72 tmp68        [V72,T43] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;  V73 tmp69        [V73,T27] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V74 tmp70        [V74,T44] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;* V75 tmp71        [V75    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022argument with side effect\u0022\n\u002B;  V76 tmp72        [V76,T45] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;  V77 tmp73        [V77,T46] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;  V78 tmp74        [V78,T47] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;  V79 cse0         [V79,T15] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #11: moderate\u0022\n\u002B;  V80 cse1         [V80,T16] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #13: moderate\u0022\n ;\n ; Lcl frame size = 56\n \n@@ -365,16 \u002B363,13 @@ G_M18270_IG19:\n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.25\n G_M18270_IG20:\n        cmp      r13d, 3\n-       jge      G_M18270_IG22\n\u002B       jge      SHORT G_M18270_IG22\n        mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.IEnumerable\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFINTERFACE\n        call     [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE\n        test     rax, rax\n        je       SHORT G_M18270_IG21\n-       mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Nodes.JsonArray\n-       cmp      qword ptr [r12], rdi\n-       je       SHORT G_M18270_IG21\n        mov      rdi, rax\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n        call     [r11]System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n@@ -383,7 \u002B378,7 @@ G_M18270_IG20:\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n        je       G_M18270_IG24\n-\t\t\t\t\t\t;; size=96 bbWeight=0.50 PerfScore 8.88\n\u002B\t\t\t\t\t\t;; size=76 bbWeight=0.50 PerfScore 7.25\n G_M18270_IG21:\n        test     r15, r15\n        je       G_M18270_IG34\n@@ -395,8 \u002B390,8 @@ G_M18270_IG21:\n        mov      rdx, r12\n        mov      rdi, gword ptr [r15\u002B0x10]\n        call     [r15\u002B0x18]System.Action\u00602[System.__Canon,System.__Canon]:Invoke(System.__Canon,System.__Canon):this\n-       jmp      G_M18270_IG24\n-\t\t\t\t\t\t;; size=54 bbWeight=0.50 PerfScore 6.25\n\u002B       jmp      SHORT G_M18270_IG24\n\u002B\t\t\t\t\t\t;; size=51 bbWeight=0.50 PerfScore 6.25\n G_M18270_IG22:\n        mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.IEnumerable\n@@ -404,9 \u002B399,6 @@ G_M18270_IG22:\n        call     [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE\n        test     rax, rax\n        je       SHORT G_M18270_IG23\n-       mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Nodes.JsonArray\n-       cmp      qword ptr [r12], rdi\n-       je       SHORT G_M18270_IG23\n        mov      rdi, rax\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n        call     [r11]System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n@@ -415,7 \u002B407,7 @@ G_M18270_IG22:\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n        je       SHORT G_M18270_IG24\n-\t\t\t\t\t\t;; size=82 bbWeight=0.50 PerfScore 8.25\n\u002B\t\t\t\t\t\t;; size=66 bbWeight=0.50 PerfScore 6.62\n G_M18270_IG23:\n        test     r15, r15\n        je       G_M18270_IG33\n@@ -588,5 \u002B580,5 @@ G_M18270_IG34:\n        int3     \n \t\t\t\t\t\t;; size=87 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 2157, prolog size 19, PerfScore 179.38, instruction count 425, allocated bytes for code 2157 (MethodHash=633fb8a1) for method Microsoft.OpenApi.OpenApiMediaType:SerializeInternal(Microsoft.OpenApi.IOpenApiWriter,int,System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]):this (FullOpts)\n\u002B; Total bytes of code 2118, prolog size 19, PerfScore 176.12, instruction count 419, allocated bytes for code 2118 (MethodHash=633fb8a1) for method Microsoft.OpenApi.OpenApiMediaType:SerializeInternal(Microsoft.OpenApi.IOpenApiWriter,int,System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":2157,"DiffBytes":2118},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:Aggregate[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)","Category":"improvement","Description":"1,665 -\u003E 1,580 bytes (-85)","ExtraInfo":null,"Diff":"@@ -14,11 \u002B14,11 @@\n ;  V03 arg2         [V03,T04] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Nullable\u00601[int]]\u003E\n ;  V04 arg3         [V04,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T33] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n\u002B;  V06 loc0         [V06,T32] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n-;  V08 loc2         [V08,T34] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V09 loc3         [V09,T39] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V10 loc4         [V10,T40] (  3,  1.50)     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V08 loc2         [V08,T33] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V09 loc3         [V09,T38] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V10 loc4         [V10,T39] (  3,  1.50)     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Nullable\u00601[int]]\u003E\n ;  V11 OutArgs      [V11    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V12 tmp1         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V13 tmp2         [V13    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n@@ -44,22 \u002B44,22 @@\n ;* V33 tmp22        [V33    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V34 tmp23        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V35 tmp24        [V35    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V36 tmp25        [V36,T28] (  3,  2   )     int  -\u003E  rdi        \n-;  V37 tmp26        [V37,T06] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V38 tmp27        [V38    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V39 tmp28        [V39,T17] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V40 tmp29        [V40,T18] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V36 tmp25        [V36,T27] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V37 tmp26        [V37,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V38 tmp27        [V38    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V39 tmp28        [V39,T17] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V40 tmp29        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V41 tmp30        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V42 tmp31        [V42,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V43 tmp32        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V44 tmp33        [V44,T38] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V44 tmp33        [V44,T37] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V45 tmp34        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V46 tmp35        [V46,T26] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V47 tmp36        [V47,T19] (  3,  3   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V46 tmp35        [V46,T25] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V47 tmp36        [V47,T18] (  3,  3   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V48 tmp37        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V49 tmp38        [V49,T08] ( 10,  5   )     ref  -\u003E  [rbp-0x98]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;  V49 tmp38        [V49,T08] ( 10,  5   )     ref  -\u003E  [rbp-0x90]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V50 tmp39        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V51 tmp40        [V51,T09] ( 10,  5   )     ref  -\u003E  [rbp-0xA0]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;  V51 tmp40        [V51,T09] ( 10,  5   )     ref  -\u003E  [rbp-0x98]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V52 tmp41        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V53 tmp42        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V54 tmp43        [V54    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -68,11 \u002B68,11 @@\n ;* V57 tmp46        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n ;* V58 tmp47        [V58    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V59 tmp48        [V59    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V60 tmp49        [V60,T41] (  2,  1   )     ref  -\u003E  [rbp-0xA8]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V61 tmp50        [V61,T27] (  8,  2   )     ref  -\u003E  [rbp-0xB0]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V62 tmp51        [V62,T20] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V63 tmp52        [V63,T42] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n-;  V64 tmp53        [V64,T32] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V60 tmp49        [V60,T40] (  2,  1   )     ref  -\u003E  [rbp-0xA0]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V61 tmp50        [V61,T26] (  8,  2   )     ref  -\u003E  [rbp-0xA8]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V62 tmp51        [V62,T19] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V63 tmp52        [V63,T41] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V64 tmp53        [V64,T31] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V65 tmp54        [V65    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V66 tmp55        [V66,T10] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V67 tmp56        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -80,29 \u002B80,29 @@\n ;* V69 tmp58        [V69    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V70 tmp59        [V70    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V71 tmp60        [V71    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;  V72 tmp61        [V72,T14] (  3,  2   )     ref  -\u003E  [rbp-0xB8]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V73 tmp62        [V73,T44] (  2,  1   )   ubyte  -\u003E  r12         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V74 tmp63        [V74,T45] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V75 tmp64        [V75,T46] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V19.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V76 tmp65        [V76,T47] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V19.value (fldOffset=0x8)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n        test     rax, rax\n-       je       SHORT G_M63100_IG35\n\u002B       je       SHORT G_M63100_IG32\n\u002B       mov      rdi, rax\n\u002B       mov      esi, 1\n\u002B       mov      gword ptr [rbp-0x90], rax\n\u002B       mov      rcx, qword ptr [rax]\n\u002B       mov      rcx, qword ptr [rcx\u002B0x40]\n\u002B       call     [rcx\u002B0x28]System.Threading.CancellationTokenSource:Dispose(bool):this\n\u002B       mov      rdi, gword ptr [rbp-0x90]\n\u002B       mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n\u002B       call     [rax]System.GC:SuppressFinalize(System.Object)\n\u002B\t\t\t\t\t\t;; size=67 bbWeight=0.50 PerfScore 9.62\n\u002BG_M63100_IG32:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rdi, gword ptr [rsi\u002B0x10]\n\u002B       mov      rax, rdi\n\u002B       test     rax, rax\n\u002B       je       SHORT G_M63100_IG33\n        mov      rdi, rax\n        mov      esi, 1\n        mov      gword ptr [rbp-0x98], rax\n@@ -437,34 \u002B433,18 @@ G_M63100_IG34:\n        mov      rdi, gword ptr [rbp-0x98]\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=77 bbWeight=0.50 PerfScore 9.62\n-G_M63100_IG35:\n-       mov      rsi, gword ptr [rbp-0x88]\n-       mov      rdi, gword ptr [rsi\u002B0x10]\n-       mov      rax, rdi\n-       test     rax, rax\n-       je       SHORT G_M63100_IG36\n-       mov      rdi, rax\n-       mov      esi, 1\n-       mov      gword ptr [rbp-0xA0], rax\n-       mov      rcx, qword ptr [rax]\n-       mov      rcx, qword ptr [rcx\u002B0x40]\n-       call     [rcx\u002B0x28]System.Threading.CancellationTokenSource:Dispose(bool):this\n-       mov      rdi, gword ptr [rbp-0xA0]\n-       mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n-       call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.62\n-G_M63100_IG36:\n\u002B\t\t\t\t\t\t;; size=60 bbWeight=0.50 PerfScore 8.62\n\u002BG_M63100_IG33:\n        mov      rdi, qword ptr [r14\u002B0x18]\n        cmp      qword ptr [rdi\u002B0x08], 64\n-       jle      SHORT G_M63100_IG40\n\u002B       jle      SHORT G_M63100_IG37\n \t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 2.50\n-G_M63100_IG37:\n\u002BG_M63100_IG34:\n        mov      rsi, qword ptr [rdi\u002B0x40]\n        test     rsi, rsi\n-       je       SHORT G_M63100_IG40\n\u002B       je       SHORT G_M63100_IG37\n \t\t\t\t\t\t;; size=9 bbWeight=0.40 PerfScore 1.30\n-G_M63100_IG38:\n\u002BG_M63100_IG35:\n        mov      rdi, r15\n        mov      rdx, r13\n        mov      rcx, r12\n@@ -473,7 \u002B453,7 @@ G_M63100_IG38:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateAggregateToCollectionResultCursor[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M63100_IG39:\n\u002BG_M63100_IG36:\n        add      rsp, 200\n        pop      rbx\n        pop      r12\n@@ -483,15 \u002B463,15 @@ G_M63100_IG39:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M63100_IG40:\n\u002BG_M63100_IG37:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      SHORT G_M63100_IG38\n\u002B       jmp      SHORT G_M63100_IG35\n \t\t\t\t\t\t;; size=30 bbWeight=0.18 PerfScore 1.08\n-G_M63100_IG41:\n\u002BG_M63100_IG38:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -499,38 \u002B479,38 @@ G_M63100_IG41:\n        mov      rdi, rax\n        jmp      G_M63100_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M63100_IG42:\n\u002BG_M63100_IG39:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M63100_IG32\n\u002B       jmp      G_M63100_IG29\n \t\t\t\t\t\t;; size=33 bbWeight=0.18 PerfScore 1.08\n-G_M63100_IG43:\n\u002BG_M63100_IG40:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M63100_IG24\n\u002B       jmp      G_M63100_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.10 PerfScore 0.60\n-G_M63100_IG44:\n\u002BG_M63100_IG41:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M63100_IG45:\n\u002BG_M63100_IG42:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M63100_IG46:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M63100_IG48\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M63100_IG43:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M63100_IG45\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M63100_IG47\n\u002B       je       SHORT G_M63100_IG44\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -539,12 \u002B519,12 @@ G_M63100_IG46:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M63100_IG47:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M63100_IG44:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x10]\n        test     r15, r15\n-       je       SHORT G_M63100_IG48\n\u002B       je       SHORT G_M63100_IG45\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -553,24 \u002B533,24 @@ G_M63100_IG47:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M63100_IG48:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M63100_IG45:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M63100_IG49:\n\u002BG_M63100_IG46:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M63100_IG50:\n\u002BG_M63100_IG47:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M63100_IG51:\n-       cmp      gword ptr [rbp-0xB0], 0\n-       je       SHORT G_M63100_IG53\n-       mov      rsi, gword ptr [rbp-0xB0]\n\u002BG_M63100_IG48:\n\u002B       cmp      gword ptr [rbp-0xA8], 0\n\u002B       je       SHORT G_M63100_IG50\n\u002B       mov      rsi, gword ptr [rbp-0xA8]\n        mov      r13, gword ptr [rsi\u002B0x08]\n        test     r13, r13\n-       je       SHORT G_M63100_IG52\n\u002B       je       SHORT G_M63100_IG49\n        mov      rdi, r13\n        mov      esi, 1\n        mov      rax, qword ptr [r13]\n@@ -580,11 \u002B560,11 @@ G_M63100_IG51:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M63100_IG52:\n-       mov      rsi, gword ptr [rbp-0xB0]\n\u002BG_M63100_IG49:\n\u002B       mov      rsi, gword ptr [rbp-0xA8]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M63100_IG53\n\u002B       je       SHORT G_M63100_IG50\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -594,13 \u002B574,13 @@ G_M63100_IG52:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M63100_IG53:\n\u002BG_M63100_IG50:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M63100_IG54:\n\u002BG_M63100_IG51:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1665, prolog size 66, PerfScore 184.71, instruction count 387, allocated bytes for code 1665 (MethodHash=9e050983) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:Aggregate[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n\u002B; Total bytes of code 1580, prolog size 66, PerfScore 175.33, instruction count 373, allocated bytes for code 1580 (MethodHash=9e050983) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:Aggregate[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1665,"DiffBytes":1580},{"Assembly":"Nest.dasm","Method":"Nest.FieldExpressionVisitor:VisitMethodCall(System.Linq.Expressions.MethodCallExpression):System.Linq.Expressions.Expression:this (FullOpts)","Category":"improvement","Description":"996 -\u003E 944 bytes (-52)","ExtraInfo":null,"Diff":"@@ -11,44 \u002B11,44 @@\n ;  V00 this         [V00,T02] ( 12, 14   )     ref  -\u003E  r15         this class-hnd single-def \u003CNest.FieldExpressionVisitor\u003E\n ;  V01 arg1         [V01,T00] ( 21, 22.50)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n ;* V02 loc0         [V02    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V03 loc1         [V03,T13] (  7,  3.50)     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Type\u003E\n\u002B;  V03 loc1         [V03,T12] (  7,  3.50)     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Type\u003E\n ;* V04 loc2         [V04    ] (  0,  0   )   ubyte  -\u003E  zero-ref   \n ;  V05 loc3         [V05,T01] (  5, 16.50)     int  -\u003E  r13        \n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     int  -\u003E  zero-ref   \n ;  V08 tmp2         [V08,T06] (  9,  9   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V09 tmp3         [V09,T14] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V09 tmp3         [V09,T13] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n ;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V11 tmp5         [V11,T09] (  6,  5   )     ref  -\u003E  rax         single-def \u0022spilling varStr\u0022\n ;* V12 tmp6         [V12    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling unroll qmark\u0022\n-;  V13 tmp7         [V13,T10] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V14 tmp8         [V14    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V13 tmp7         [V13,T14] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V14 tmp8         [V14    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V16 tmp10        [V16,T17] (  4,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V17 tmp11        [V17,T18] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V18 tmp12        [V18,T26] (  3,  1.50)     ref  -\u003E  rdi         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Expressions.Expression[]\u003E\n-;  V19 tmp13        [V19,T19] (  4,  2   )     int  -\u003E  r14         single-def \u0022Inline stloc first use temp\u0022\n\u002B;  V16 tmp10        [V16,T24] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;* V17 tmp11        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V18 tmp12        [V18,T25] (  3,  1.50)     ref  -\u003E  rdi         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Expressions.Expression[]\u003E\n\u002B;  V19 tmp13        [V19,T17] (  4,  2   )     int  -\u003E  r14         single-def \u0022Inline stloc first use temp\u0022\n ;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V22 tmp16        [V22,T12] (  5,  3.75)     ref  -\u003E  rax         single-def \u0022spilling varStr\u0022\n-;  V23 tmp17        [V23,T25] (  2,  2   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V22 tmp16        [V22,T11] (  5,  3.75)     ref  -\u003E  rax         single-def \u0022spilling varStr\u0022\n\u002B;  V23 tmp17        [V23,T23] (  2,  2   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V24 tmp18        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n ;* V25 tmp19        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n ;* V26 tmp20        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V27 tmp21        [V27,T11] (  3,  4   )     ref  -\u003E  rax         \u0022Single return block return value\u0022\n\u002B;  V27 tmp21        [V27,T10] (  3,  4   )     ref  -\u003E  rax         \u0022Single return block return value\u0022\n ;  V28 tmp22        [V28,T08] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V29 tmp23        [V29,T20] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V29 tmp23        [V29,T18] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;  V30 tmp24        [V30,T15] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V31 tmp25        [V31,T21] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V31 tmp25        [V31,T19] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;  V32 tmp26        [V32,T03] (  2, 16   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V33 tmp27        [V33,T04] (  2, 16   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V34 tmp28        [V34,T05] (  2, 16   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n-;  V35 tmp29        [V35,T22] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V36 tmp30        [V36,T23] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V35 tmp29        [V35,T20] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V36 tmp30        [V36,T21] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;  V37 tmp31        [V37,T16] (  3,  3   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n-;  V38 tmp32        [V38,T24] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V38 tmp32        [V38,T22] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;  V39 cse0         [V39,T07] ( 10,  8.50)    long  -\u003E  r14         hoist multi-def \u0022CSE #03: aggressive\u0022\n-;  V40 rat0         [V40,T27] (  3,  3   )  simd16  -\u003E  mm0         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n\u002B;  V40 rat0         [V40,T26] (  3,  3   )  simd16  -\u003E  mm0         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n ;\n ; Lcl frame size = 16\n \n@@ -188,7 \u002B188,7 @@ G_M60008_IG15:\n        mov      rax, qword ptr [r15]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x20]System.Linq.Expressions.ExpressionVisitor:Visit(System.Linq.Expressions.Expression):System.Linq.Expressions.Expression:this\n-       jmp      G_M60008_IG25\n\u002B       jmp      G_M60008_IG23\n \t\t\t\t\t\t;; size=47 bbWeight=0.50 PerfScore 9.12\n G_M60008_IG16:\n        mov      rdi, rbx\n@@ -236,14 \u002B236,14 @@ G_M60008_IG17:\n        mov      rax, qword ptr [r15]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x20]System.Linq.Expressions.ExpressionVisitor:Visit(System.Linq.Expressions.Expression):System.Linq.Expressions.Expression:this\n-       jmp      G_M60008_IG25\n\u002B       jmp      G_M60008_IG23\n \t\t\t\t\t\t;; size=47 bbWeight=0.50 PerfScore 9.12\n G_M60008_IG18:\n        mov      rdi, r15\n        mov      rsi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Expressions.ExpressionVisitor:VisitMethodCall(System.Linq.Expressions.MethodCallExpression):System.Linq.Expressions.Expression:this\n        call     [rax]System.Linq.Expressions.ExpressionVisitor:VisitMethodCall(System.Linq.Expressions.MethodCallExpression):System.Linq.Expressions.Expression:this\n-       jmp      G_M60008_IG26\n\u002B       jmp      G_M60008_IG24\n \t\t\t\t\t\t;; size=23 bbWeight=0.50 PerfScore 2.88\n G_M60008_IG19:\n        mov      rsi, gword ptr [r15\u002B0x10]\n@@ -255,7 \u002B255,7 @@ G_M60008_IG19:\n        mov      r13, rax\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M60008_IG27\n\u002B       je       G_M60008_IG25\n \t\t\t\t\t\t;; size=56 bbWeight=0.50 PerfScore 5.12\n G_M60008_IG20:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.List\u00601[System.Linq.Expressions.Expression]:s_emptyArray\n@@ -264,44 \u002B264,27 @@ G_M60008_IG20:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, rbx\n        call     [r14\u002B0x20]System.Linq.Expressions.MethodCallExpression:GetOrMakeArguments():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]:this\n-       mov      r14, rax\n-       test     r14, r14\n-       je       G_M60008_IG28\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M60008_IG21\n-       lea      rsi, [rbp-0x28]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M60008_IG22\n-\t\t\t\t\t\t;; size=90 bbWeight=0.50 PerfScore 11.62\n-G_M60008_IG21:\n\u002B       je       G_M60008_IG26\n        lea      rdx, [rbp-0x28]\n-       mov      rsi, r14\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Linq.Expressions.Expression](System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.Expression],byref):System.Linq.Expressions.Expression\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M60008_IG22:\n        cmp      byte  ptr [rbp-0x28], 0\n-       je       G_M60008_IG29\n\u002B       je       G_M60008_IG27\n        inc      dword ptr [r13\u002B0x14]\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r14d, dword ptr [r13\u002B0x10]\n        cmp      dword ptr [rdi\u002B0x08], r14d\n-       ja       SHORT G_M60008_IG23\n\u002B       ja       SHORT G_M60008_IG21\n        mov      rdi, r13\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n-       jmp      SHORT G_M60008_IG24\n-\t\t\t\t\t\t;; size=48 bbWeight=0.50 PerfScore 8.88\n-G_M60008_IG23:\n\u002B       jmp      SHORT G_M60008_IG22\n\u002B\t\t\t\t\t\t;; size=115 bbWeight=0.50 PerfScore 15.12\n\u002BG_M60008_IG21:\n        lea      esi, [r14\u002B0x01]\n        mov      dword ptr [r13\u002B0x10], esi\n        mov      esi, r14d\n@@ -309,7 \u002B292,7 @@ G_M60008_IG23:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST\n        call     [rax]CORINFO_HELP_ARRADDR_ST\n \t\t\t\t\t\t;; size=26 bbWeight=0.50 PerfScore 2.62\n-G_M60008_IG24:\n\u002BG_M60008_IG22:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -321,10 \u002B304,10 @@ G_M60008_IG24:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Expressions.ExpressionVisitor:Visit(System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]):System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]:this\n        call     [rax]System.Linq.Expressions.ExpressionVisitor:Visit(System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]):System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]:this\n \t\t\t\t\t\t;; size=48 bbWeight=0.50 PerfScore 3.50\n-G_M60008_IG25:\n\u002BG_M60008_IG23:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M60008_IG26:\n\u002BG_M60008_IG24:\n        add      rsp, 16\n        pop      rbx\n        pop      r13\n@@ -333,19 \u002B316,19 @@ G_M60008_IG26:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n-G_M60008_IG27:\n\u002BG_M60008_IG25:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.Linq.Expressions.Expression]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M60008_IG20\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M60008_IG28:\n\u002BG_M60008_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M60008_IG29:\n\u002BG_M60008_IG27:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n@@ -353,5 \u002B336,5 @@ G_M60008_IG29:\n RWD00  \tdq\t005F007400650067h, 006D006500740049h\n \n \n-; Total bytes of code 996, prolog size 23, PerfScore 246.98, instruction count 240, allocated bytes for code 996 (MethodHash=5dcb1597) for method Nest.FieldExpressionVisitor:VisitMethodCall(System.Linq.Expressions.MethodCallExpression):System.Linq.Expressions.Expression:this (FullOpts)\n\u002B; Total bytes of code 944, prolog size 23, PerfScore 239.48, instruction count 227, allocated bytes for code 944 (MethodHash=5dcb1597) for method Nest.FieldExpressionVisitor:VisitMethodCall(System.Linq.Expressions.MethodCallExpression):System.Linq.Expressions.Expression:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":996,"DiffBytes":944},{"Assembly":"OpenAI.dasm","Method":"OpenAI.Images.ImageClient:GenerateImageEdit(System.IO.Stream,System.String,System.String,OpenAI.Images.ImageEditOptions,System.Threading.CancellationToken):System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]:this (FullOpts)","Category":"improvement","Description":"541 -\u003E 489 bytes (-52)","ExtraInfo":null,"Diff":"@@ -9,20 \u002B9,20 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T01] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003COpenAI.Images.ImageClient\u003E\n-;  V01 arg1         [V01,T03] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.IO.Stream\u003E\n-;  V02 arg2         [V02,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CSystem.String\u003E\n-;  V03 arg3         [V03,T05] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V01 arg1         [V01,T02] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.IO.Stream\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V03 arg3         [V03,T04] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CSystem.String\u003E\n ;  V04 arg4         [V04,T00] (  9,  8.50)     ref  -\u003E  rbx         ld-addr-op class-hnd \u003COpenAI.Images.ImageEditOptions\u003E\n ;* V05 arg5         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;  V06 loc0         [V06,T09] (  6,  3   )     ref  -\u003E  [rbp-0x38]  class-hnd EH-live spill-single-def \u003COpenAI.MultiPartFormDataBinaryContent\u003E\n-;  V07 loc1         [V07,T11] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u003E\n\u002B;  V07 loc1         [V07,T10] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u003E\n ;* V08 loc2         [V08    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u003CSystem.Nullable\u00601[int]\u003E\n-;  V09 loc3         [V09,T13] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]\u003E\n\u002B;  V09 loc3         [V09,T11] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]\u003E\n ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003COpenAI.Images.GeneratedImage\u003E\n ;* V13 tmp3         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003COpenAI.Images.ImageEditOptions\u003E\n-;  V14 tmp4         [V14,T16] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V14 tmp4         [V14,T15] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n ;* V15 tmp5         [V15    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n ;* V16 tmp6         [V16    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline stloc first use temp\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n ;* V17 tmp7         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022impAppendStmt\u0022 \u003COpenAI.Images.ImageEditOptions\u003E\n@@ -36,10 \u002B36,10 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003COpenAI.Images.ImageEditOptions\u003E\n ;* V26 tmp16        [V26    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V27 tmp17        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003COpenAI.Images.ImageEditOptions\u003E\n-;  V28 tmp18        [V28,T02] (  4,  7   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Images.GeneratedImageCollection\u003E\n-;  V29 tmp19        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp20        [V30,T12] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003COpenAI.Images.GeneratedImage\u003E\n-;  V31 tmp21        [V31,T10] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[OpenAI.Images.GeneratedImage]\u003E\n\u002B;  V28 tmp18        [V28,T05] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Images.GeneratedImageCollection\u003E\n\u002B;  V29 tmp19        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp20        [V30,T12] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003COpenAI.Images.GeneratedImage\u003E\n\u002B;* V31 tmp21        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[OpenAI.Images.GeneratedImage]\u003E\n ;  V32 tmp22        [V32,T06] (  2,  2   )     ref  -\u003E  [rbp-0x40]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n ;* V33 tmp23        [V33    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V08.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V34 tmp24        [V34    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V08.value (fldOffset=0x4)\u0022 P-INDEP\n@@ -51,8 \u002B51,8 @@\n ;* V40 tmp30        [V40    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022field V19.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V41 tmp31        [V41    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V21.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V42 tmp32        [V42    ] (  0,  0   )    long  -\u003E  zero-ref    single-def \u0022field V21.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V43 tmp33        [V43,T15] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V44 tmp34        [V44,T14] (  2,  2   )     ref  -\u003E  rdx         \u0022field V23.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V43 tmp33        [V43,T14] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V44 tmp34        [V44,T13] (  2,  2   )     ref  -\u003E  rdx         \u0022field V23.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V45 tmp35        [V45    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V24.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V46 tmp36        [V46    ] (  0,  0   )    long  -\u003E  zero-ref    single-def \u0022field V24.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V47 tmp37        [V47,T07] (  2,  4   )     ref  -\u003E  rbx         single-def \u0022argument with side effect\u0022\n@@ -80,7 \u002B80,7 @@ G_M14958_IG01:\n \t\t\t\t\t\t;; size=44 bbWeight=1 PerfScore 10.25\n G_M14958_IG02:\n        test     r14, r14\n-       je       G_M14958_IG12\n\u002B       je       G_M14958_IG09\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027imageFilename\u0027\n        mov      rcx, 0xD1FFAB1E      ; code for OpenAI.Argument:AssertNotNullOrEmpty(System.String,System.String)\n@@ -139,53 \u002B139,34 @@ G_M14958_IG05:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for OpenAI.Images.GeneratedImageCollection:op_Explicit(System.ClientModel.ClientResult):OpenAI.Images.GeneratedImageCollection\n        call     [rax]OpenAI.Images.GeneratedImageCollection:op_Explicit(System.ClientModel.ClientResult):OpenAI.Images.GeneratedImageCollection\n-       mov      r15, rax\n-       test     r15, r15\n-       je       SHORT G_M14958_IG09\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[OpenAI.Images.GeneratedImage]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M14958_IG07\n-\t\t\t\t\t\t;; size=115 bbWeight=1 PerfScore 29.00\n-G_M14958_IG06:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M14958_IG08\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M14958_IG07:\n\u002B       je       SHORT G_M14958_IG06\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r15\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[OpenAI.Images.GeneratedImage](System.Collections.Generic.IEnumerable\u00601[OpenAI.Images.GeneratedImage],byref):OpenAI.Images.GeneratedImage\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M14958_IG08:\n-       mov      rdx, gword ptr [rbx\u002B0x08]\n        mov      rsi, rax\n\u002B       mov      rdx, gword ptr [rbx\u002B0x08]\n        mov      rdi, 0xD1FFAB1E      ; System.ClientModel.ClientResult:FromValue[OpenAI.Images.GeneratedImage](OpenAI.Images.GeneratedImage,System.ClientModel.Primitives.PipelineResponse):System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]\n        mov      rax, 0xD1FFAB1E      ; code for System.ClientModel.ClientResult:FromValue[System.__Canon](System.__Canon,System.ClientModel.Primitives.PipelineResponse):System.ClientModel.ClientResult\u00601[System.__Canon]\n        call     [rax]System.ClientModel.ClientResult:FromValue[System.__Canon](System.__Canon,System.ClientModel.Primitives.PipelineResponse):System.ClientModel.ClientResult\u00601[System.__Canon]\n        mov      rbx, rax\n-       jmp      SHORT G_M14958_IG10\n-\t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 8.00\n-G_M14958_IG09:\n\u002B       jmp      SHORT G_M14958_IG07\n\u002B\t\t\t\t\t\t;; size=145 bbWeight=1 PerfScore 36.00\n\u002BG_M14958_IG06:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M14958_IG10:\n\u002BG_M14958_IG07:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=20 bbWeight=1 PerfScore 4.50\n-G_M14958_IG11:\n\u002BG_M14958_IG08:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -195,7 \u002B176,7 @@ G_M14958_IG11:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M14958_IG12:\n\u002BG_M14958_IG09:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -207,23 \u002B188,23 @@ G_M14958_IG12:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M14958_IG13:\n\u002BG_M14958_IG10:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M14958_IG14:\n\u002BG_M14958_IG11:\n        cmp      gword ptr [rbp-0x38], 0\n-       je       SHORT G_M14958_IG15\n\u002B       je       SHORT G_M14958_IG12\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M14958_IG15:\n\u002BG_M14958_IG12:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M14958_IG16:\n\u002BG_M14958_IG13:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 541, prolog size 44, PerfScore 90.33, instruction count 132, allocated bytes for code 541 (MethodHash=6b10c591) for method OpenAI.Images.ImageClient:GenerateImageEdit(System.IO.Stream,System.String,System.String,OpenAI.Images.ImageEditOptions,System.Threading.CancellationToken):System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]:this (FullOpts)\n\u002B; Total bytes of code 489, prolog size 44, PerfScore 82.33, instruction count 119, allocated bytes for code 489 (MethodHash=6b10c591) for method OpenAI.Images.ImageClient:GenerateImageEdit(System.IO.Stream,System.String,System.String,OpenAI.Images.ImageEditOptions,System.Threading.CancellationToken):System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":541,"DiffBytes":489},{"Assembly":"Pomelo.EntityFrameworkCore.MySql.dasm","Method":"Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitRowNumber(Microsoft.EntityFrameworkCore.Query.SqlExpressions.RowNumberExpression):System.Linq.Expressions.Expression:this (FullOpts)","Category":"improvement","Description":"1,041 -\u003E 847 bytes (-194)","ExtraInfo":null,"Diff":"@@ -8,40 \u002B8,34 @@\n ; 0 inlinees with PGO data; 4 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T01] ( 11, 22.50)     ref  -\u003E  rbx         this class-hnd single-def \u003CPomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor\u003E\n\u002B;  V00 this         [V00,T01] (  9, 21   )     ref  -\u003E  rbx         this class-hnd single-def \u003CPomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor\u003E\n ;  V01 arg1         [V01,T12] (  9,  9   )     ref  -\u003E  r15         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.RowNumberExpression\u003E\n-;  V02 loc0         [V02,T29] (  2,  2   )   ubyte  -\u003E  r14         single-def\n-;  V03 loc1         [V03,T17] (  3,  9   )   ubyte  -\u003E  r13        \n\u002B;  V02 loc0         [V02,T24] (  2,  2   )   ubyte  -\u003E  r14         single-def\n\u002B;  V03 loc1         [V03,T16] (  3,  9   )   ubyte  -\u003E  r13        \n ;  V04 loc2         [V04,T02] (  8, 22   )     ref  -\u003E  r12         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression]\u003E\n ;  V05 loc3         [V05,T03] (  8, 22   )     ref  -\u003E  r13         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.OrderingExpression]\u003E\n ;  V06 loc4         [V06,T06] (  6, 13   )     ref  -\u003E  [rbp-0x30]  class-hnd EH-live single-def \u003CSystem.Collections.Generic.IEnumerator\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression]\u003E\n ;  V07 loc5         [V07,T11] (  3, 12   )     ref  -\u003E  [rbp-0x38]  class-hnd spill-single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\u003E\n ;  V08 loc6         [V08,T08] (  4, 12   )     ref  -\u003E  rax         class-hnd \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\u003E\n ;  V09 loc7         [V09,T07] (  6, 13   )     ref  -\u003E  [rbp-0x40]  class-hnd EH-live single-def \u003CSystem.Collections.Generic.IEnumerator\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.OrderingExpression]\u003E\n-;  V10 loc8         [V10,T19] (  2,  8   )     ref  -\u003E  rsi         class-hnd \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.OrderingExpression\u003E\n-;  V11 loc9         [V11,T18] (  3,  8   )     ref  -\u003E  rdx         class-hnd \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.OrderingExpression\u003E\n\u002B;  V10 loc8         [V10,T18] (  2,  8   )     ref  -\u003E  rsi         class-hnd \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.OrderingExpression\u003E\n\u002B;  V11 loc9         [V11,T17] (  3,  8   )     ref  -\u003E  rdx         class-hnd \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.OrderingExpression\u003E\n ;# V12 OutArgs      [V12    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V13 tmp1         [V13,T20] (  3,  6   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression]\u003E\n-;  V14 tmp2         [V14,T21] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.OrderingExpression]\u003E\n-;  V15 tmp3         [V15,T31] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V13 tmp1         [V13,T19] (  3,  6   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression]\u003E\n\u002B;  V14 tmp2         [V14,T20] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.OrderingExpression]\u003E\n\u002B;  V15 tmp3         [V15,T25] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n ;  V16 tmp4         [V16,T13] (  3, 10   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression[]\u003E\n ;  V17 tmp5         [V17,T09] (  4, 12   )     int  -\u003E  rcx         \u0022Inline stloc first use temp\u0022\n ;  V18 tmp6         [V18,T14] (  3, 10   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.OrderingExpression[]\u003E\n ;  V19 tmp7         [V19,T10] (  4, 12   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n-;* V20 tmp8         [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V21 tmp9         [V21,T16] (  8,  9   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.RowNumberExpression\u003E\n-;  V22 tmp10        [V22,T24] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Boolean\u003E\n-;  V23 tmp11        [V23,T25] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u0022impImportAndPushBox\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.ISqlExpressionFactory\u003E\n-;  V24 tmp12        [V24,T26] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022impImportAndPushBox\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.ISqlExpressionFactory\u003E\n-;  V25 tmp13        [V25,T22] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V26 tmp14        [V26,T05] (  2, 16   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n-;  V27 tmp15        [V27,T23] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V28 tmp16        [V28,T04] (  3, 18   )     ref  -\u003E  rax         \u0022argument with side effect\u0022\n-;  V29 tmp17        [V29,T27] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V30 tmp18        [V30,T28] (  2,  2   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V31 cse0         [V31,T30] (  3,  1.50)     ref  -\u003E  rdi         \u0022CSE #09: moderate\u0022\n-;  V32 rat0         [V32,T00] (  5, 30   )     ref  -\u003E  rdx         \u0022replacement local\u0022\n-;  V33 rat1         [V33,T15] (  3, 10   )    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n\u002B;* V20 tmp8         [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.RowNumberExpression\u003E\n\u002B;  V21 tmp9         [V21,T21] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.RowNumberExpression\u003E\n\u002B;  V22 tmp10        [V22,T22] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V23 tmp11        [V23,T05] (  2, 16   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n\u002B;  V24 tmp12        [V24,T23] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V25 tmp13        [V25,T04] (  3, 18   )     ref  -\u003E  rax         \u0022argument with side effect\u0022\n\u002B;  V26 rat0         [V26,T00] (  5, 30   )     ref  -\u003E  rdx         \u0022replacement local\u0022\n\u002B;  V27 rat1         [V27,T15] (  3, 10   )    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n ;\n ; Lcl frame size = 24\n \n@@ -59,7 \u002B53,7 @@ G_M53775_IG01:\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 7.25\n G_M53775_IG02:\n        test     r15, r15\n-       je       G_M53775_IG23\n\u002B       je       G_M53775_IG19\n        movzx    r14, byte  ptr [rbx\u002B0x10]\n        mov      byte  ptr [rbx\u002B0x10], 0\n        xor      r13d, r13d\n@@ -68,7 \u002B62,7 @@ G_M53775_IG02:\n        mov      r12, rax\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M53775_IG24\n\u002B       je       G_M53775_IG20\n \t\t\t\t\t\t;; size=58 bbWeight=1 PerfScore 9.25\n G_M53775_IG03:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression]:s_emptyArray\n@@ -141,7 \u002B135,7 @@ G_M53775_IG08:\n        mov      r13, rax\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M53775_IG25\n\u002B       je       G_M53775_IG21\n \t\t\t\t\t\t;; size=54 bbWeight=1 PerfScore 9.00\n G_M53775_IG09:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.OrderingExpression]:s_emptyArray\n@@ -221,39 \u002B215,9 @@ G_M53775_IG17:\n        mov      rax, qword ptr [r15]\n        mov      rax, qword ptr [rax\u002B0x50]\n        call     [rax]Microsoft.EntityFrameworkCore.Query.SqlExpressions.RowNumberExpression:Update(System.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression],System.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.OrderingExpression]):Microsoft.EntityFrameworkCore.Query.SqlExpressions.RowNumberExpression:this\n-       mov      r15, rax\n-       cmp      byte  ptr [rbx\u002B0x10], 0\n-       je       SHORT G_M53775_IG19\n-\t\t\t\t\t\t;; size=48 bbWeight=1 PerfScore 16.25\n\u002B       nop      \n\u002B\t\t\t\t\t\t;; size=40 bbWeight=1 PerfScore 13.25\n G_M53775_IG18:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Microsoft.EntityFrameworkCore.Query.SqlExpressions.ColumnExpression\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M53775_IG19\n-       mov      rdi, r15\n-       mov      rax, qword ptr [r15]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-       call     [rax\u002B0x10]Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:get_TypeMapping():Microsoft.EntityFrameworkCore.Storage.RelationalTypeMapping:this\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; Pomelo.EntityFrameworkCore.MySql.Storage.Internal.MySqlBoolTypeMapping\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M53775_IG19\n-       mov      rdi, r15\n-       mov      rax, qword ptr [r15]\n-       mov      rax, qword ptr [rax\u002B0x40]\n-       call     [rax\u002B0x28]System.Linq.Expressions.Expression:get_Type():System.Type:this\n-       mov      rdi, 0xD1FFAB1E      ; \u0027System.Boolean\u0027\n-       cmp      rax, rdi\n-       je       SHORT G_M53775_IG21\n-\t\t\t\t\t\t;; size=101 bbWeight=0.50 PerfScore 13.00\n-G_M53775_IG19:\n-       mov      rax, r15\n-\t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M53775_IG20:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -262,34 \u002B226,8 @@ G_M53775_IG20:\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M53775_IG21:\n-       mov      rdi, 0xD1FFAB1E      ; System.Boolean\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      rdi, gword ptr [rbx\u002B0x08]\n-       mov      rbx, rdi\n-       mov      byte  ptr [rax\u002B0x08], 1\n-       mov      rsi, rax\n-       mov      r11, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Constant(System.Object,Microsoft.EntityFrameworkCore.Storage.RelationalTypeMapping):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-       xor      rdx, rdx\n-       call     [r11]Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Constant(System.Object,Microsoft.EntityFrameworkCore.Storage.RelationalTypeMapping):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-       mov      rdx, rax\n-       mov      rdi, rbx\n-       mov      rsi, r15\n-       mov      r11, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Equal(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-       cmp      dword ptr [rdi], edi\n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 5.62\n-G_M53775_IG22:\n-       add      rsp, 24\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [r11]Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Equal(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M53775_IG23:\n\u002B\t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n\u002BG_M53775_IG19:\n        mov      rdi, 0xD1FFAB1E      ; \u0027rowNumberExpression\u0027\n        mov      rsi, 0xD1FFAB1E      ; \u0027parameterName\u0027\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Utilities.Check:NotEmpty(System.String,System.String):System.String\n@@ -305,25 \u002B243,42 @@ G_M53775_IG23:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=84 bbWeight=0 PerfScore 0.00\n-G_M53775_IG24:\n\u002BG_M53775_IG20:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M53775_IG03\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M53775_IG25:\n\u002BG_M53775_IG21:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.OrderingExpression]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M53775_IG09\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n\u002BG_M53775_IG22:\n\u002B       push     rax\n\u002B\t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n\u002BG_M53775_IG23:\n\u002B       cmp      gword ptr [rbp-0x30], 0\n\u002B       je       SHORT G_M53775_IG24\n\u002B       mov      rdi, gword ptr [rbp-0x30]\n\u002B       mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n\u002B       call     [r11]System.IDisposable:Dispose():this\n\u002B\t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n\u002BG_M53775_IG24:\n\u002B       nop      \n\u002B\t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n\u002BG_M53775_IG25:\n\u002B       add      rsp, 8\n\u002B       ret      \n\u002B\t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n G_M53775_IG26:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n G_M53775_IG27:\n-       cmp      gword ptr [rbp-0x30], 0\n\u002B       cmp      gword ptr [rbp-0x40], 0\n        je       SHORT G_M53775_IG28\n-       mov      rdi, gword ptr [rbp-0x30]\n\u002B       mov      rdi, gword ptr [rbp-0x40]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n@@ -334,23 \u002B289,6 @@ G_M53775_IG29:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M53775_IG30:\n-       push     rax\n-\t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M53775_IG31:\n-       cmp      gword ptr [rbp-0x40], 0\n-       je       SHORT G_M53775_IG32\n-       mov      rdi, gword ptr [rbp-0x40]\n-       mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n-       call     [r11]System.IDisposable:Dispose():this\n-\t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M53775_IG32:\n-       nop      \n-\t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M53775_IG33:\n-       add      rsp, 8\n-       ret      \n-\t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1041, prolog size 25, PerfScore 454.00, instruction count 240, allocated bytes for code 1041 (MethodHash=e1dc2df0) for method Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitRowNumber(Microsoft.EntityFrameworkCore.Query.SqlExpressions.RowNumberExpression):System.Linq.Expressions.Expression:this (FullOpts)\n\u002B; Total bytes of code 847, prolog size 25, PerfScore 431.75, instruction count 192, allocated bytes for code 847 (MethodHash=e1dc2df0) for method Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitRowNumber(Microsoft.EntityFrameworkCore.Query.SqlExpressions.RowNumberExpression):System.Linq.Expressions.Expression:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1041,"DiffBytes":847},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.PricingPlans.ComponentService:ListAutoPaging(System.String,Stripe.V2.Billing.PricingPlans.ComponentListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.PricingPlanComponent]:this (FullOpts)","Category":"improvement","Description":"513 -\u003E 464 bytes (-49)","ExtraInfo":null,"Diff":"@@ -9,33 \u002B9,32 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T05] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.PricingPlans.ComponentService\u003E\n-;  V01 arg1         [V01,T08] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.PricingPlans.ComponentListOptions\u003E\n-;  V03 arg3         [V03,T07] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T07] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V02 arg2         [V02,T08] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.PricingPlans.ComponentListOptions\u003E\n\u002B;  V03 arg3         [V03,T06] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T11] (  3,  2   )     ref  -\u003E  r15         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.PricingPlanComponent]\u003E\n ;  V06 tmp2         [V06,T02] (  4,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V07 tmp3         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V08 tmp4         [V08,T12] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;  V09 tmp5         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.PricingPlanComponent]\u003E\n-;* V10 tmp6         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp8         [V12,T03] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.PricingPlanComponent]\u003E\n-;  V13 tmp9         [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.PricingPlanComponent]\u003E\n-;* V14 tmp10        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp11        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp12        [V16,T04] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.PricingPlanComponent]\u003E\n-;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V07._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp14        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp15        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp16        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp17        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 tmp18        [V22,T09] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V23 cse0         [V23,T10] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #02: moderate\u0022\n-;  V24 rat0         [V24,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T15] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T16] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.PricingPlanComponent]\u003E\n\u002B;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp6         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp7         [V11,T03] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.PricingPlanComponent]\u003E\n\u002B;  V12 tmp8         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.PricingPlanComponent]\u003E\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp11        [V15,T04] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.PricingPlanComponent]\u003E\n\u002B;* V16 tmp12        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V07._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp14        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp15        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp16        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 tmp17        [V21,T09] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V22 cse0         [V22,T10] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #02: moderate\u0022\n\u002B;  V23 rat0         [V23,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T15] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n@@ -49,8 \u002B48,8 @@ G_M29368_IG01:\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rdx\n-       mov      r14, rcx\n\u002B       mov      r14, rdx\n\u002B       mov      r15, rcx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M29368_IG02:\n        mov      rdi, rsi\n@@ -69,49 \u002B68,41 @@ G_M29368_IG02:\n        je       G_M29368_IG04\n \t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 12.50\n G_M29368_IG03:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.PricingPlanComponent]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n-       mov      eax, dword ptr [rax\u002B0x10]\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, dword ptr [rax\u002B0x10]\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x28]\n\u002B       lea      rdi, bword ptr [r14\u002B0x28]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.PricingPlanComponent]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        mov      dword ptr [r15\u002B0x28], -2\n-       mov      r14d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r15\u002B0x2C], r14d\n\u002B       mov      dword ptr [r15\u002B0x2C], r12d\n        lea      rdi, bword ptr [r15\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M29368_IG05\n-\t\t\t\t\t\t;; size=212 bbWeight=0.50 PerfScore 16.00\n\u002B\t\t\t\t\t\t;; size=164 bbWeight=0.50 PerfScore 12.75\n G_M29368_IG04:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.PricingPlanComponent]\n        call     CORINFO_HELP_NEWSFAST\n@@ -134,10 \u002B125,10 @@ G_M29368_IG04:\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n@@ -145,12 \u002B136,12 @@ G_M29368_IG04:\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        mov      dword ptr [r15\u002B0x28], -2\n-       mov      r14d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r15\u002B0x2C], r14d\n\u002B       mov      ebx, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r15\u002B0x2C], ebx\n        lea      rdi, bword ptr [r15\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=181 bbWeight=0.50 PerfScore 13.12\n\u002B\t\t\t\t\t\t;; size=180 bbWeight=0.50 PerfScore 13.12\n G_M29368_IG05:\n        mov      rax, r15\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n@@ -165,5 \u002B156,5 @@ G_M29368_IG06:\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 513, prolog size 16, PerfScore 54.38, instruction count 113, allocated bytes for code 513 (MethodHash=36938d47) for method Stripe.V2.Billing.PricingPlans.ComponentService:ListAutoPaging(System.String,Stripe.V2.Billing.PricingPlans.ComponentListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.PricingPlanComponent]:this (FullOpts)\n\u002B; Total bytes of code 464, prolog size 16, PerfScore 51.12, instruction count 105, allocated bytes for code 464 (MethodHash=36938d47) for method Stripe.V2.Billing.PricingPlans.ComponentService:ListAutoPaging(System.String,Stripe.V2.Billing.PricingPlans.ComponentListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.PricingPlanComponent]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":513,"DiffBytes":464},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.DistributedReaderWriterLockProviderExtensions:AcquireAllWriteLocks(Medallion.Threading.IDistributedReaderWriterLockProvider,System.Collections.Generic.IReadOnlyList\u00601[System.String],System.Nullable\u00601[System.TimeSpan],System.Threading.CancellationToken):Medallion.Threading.IDistributedSynchronizationHandle (FullOpts)","Category":"same-size","Description":"787 -\u003E 787 bytes (0)","ExtraInfo":null,"Diff":"@@ -120,7 \u002B120,7 @@ G_M51778_IG04:\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n-       add      rax, 70\n\u002B       add      rax, 68\n        mov      rbx, rax\n        movzx    rcx, byte  ptr [rbx\u002B0x10]\n        mov      dword ptr [rbp-0x2C], ecx\n@@ -290,7 \u002B290,7 @@ G_M51778_IG23:\n        sub      rsp, 40\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n G_M51778_IG24:\n-       mov      edi, 70\n\u002B       mov      edi, 68\n        call     CORINFO_HELP_GETDYNAMIC_NONGCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED2\n        mov      rbx, rax\n        mov      eax, dword ptr [rbp-0x2C]","Truncated":true,"BaseBytes":787,"DiffBytes":787},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Mapping.FunctionImportMappingComposable:GetInternalTree(System.Data.Entity.Core.Query.InternalTrees.Command,System.Collections.Generic.IList\u00601[System.Data.Entity.Core.Query.InternalTrees.Node]):System.Data.Entity.Core.Query.InternalTrees.Node:this (FullOpts)","Category":"improvement","Description":"1,616 -\u003E 1,490 bytes (-126)","ExtraInfo":null,"Diff":"@@ -15,51 \u002B15,51 @@\n ;  V04 loc1         [V04    ] (  2,  1   )     ref  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.DiscriminatorMap\u003E\n ;  V05 loc2         [V05,T15] ( 12,  6   )     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Data.Entity.Core.Query.InternalTrees.Command\u003E\n ;  V06 loc3         [V06,T44] (  4,  2   )     ref  -\u003E  [rbp-0x68]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Query.InternalTrees.Node\u003E\n-;  V07 loc4         [V07,T59] (  3,  1.50)     ref  -\u003E  [rbp-0x70]  class-hnd \u003CSystem.Data.Entity.Core.Query.InternalTrees.Node\u003E\n\u002B;  V07 loc4         [V07,T57] (  3,  1.50)     ref  -\u003E  [rbp-0x70]  class-hnd \u003CSystem.Data.Entity.Core.Query.InternalTrees.Node\u003E\n ;  V08 loc5         [V08    ] (  5,  2.50)     ref  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003CSystem.Data.Entity.Core.Query.InternalTrees.Var\u003E\n-;  V09 loc6         [V09,T69] (  2,  1   )     int  -\u003E  [rbp-0x3C]  ld-addr-op spill-single-def\n-;  V10 loc7         [V10,T66] (  2,  1   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.TypeUsage\u003E\n-;  V11 loc8         [V11,T67] (  2,  1   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Query.InternalTrees.Node\u003E\n\u002B;  V09 loc6         [V09,T67] (  2,  1   )     int  -\u003E  [rbp-0x3C]  ld-addr-op spill-single-def\n\u002B;  V10 loc7         [V10,T62] (  2,  1   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.TypeUsage\u003E\n\u002B;  V11 loc8         [V11,T63] (  2,  1   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Query.InternalTrees.Node\u003E\n ;* V12 loc9         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Data.Entity.Core.Query.InternalTrees.Node\u003E\n-;  V13 loc10        [V13,T68] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Query.InternalTrees.Node\u003E\n\u002B;  V13 loc10        [V13,T64] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Query.InternalTrees.Node\u003E\n ;* V14 loc11        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CSystem.Data.Entity.Core.Query.InternalTrees.ProjectOp\u003E\n-;* V15 loc12        [V15,T71] (  0,  0   )     int  -\u003E  zero-ref   \n\u002B;* V15 loc12        [V15,T69] (  0,  0   )     int  -\u003E  zero-ref   \n ;  V16 loc13        [V16,T10] (  3, 12   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Common.CommandTrees.DbParameterReferenceExpression\u003E\n ;  V17 loc14        [V17,T06] (  6, 18   )     ref  -\u003E  [rbp-0x98]  class-hnd \u003CSystem.Data.Entity.Core.Query.InternalTrees.Node\u003E\n ;# V18 OutArgs      [V18    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V19 tmp1         [V19,T18] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Data.Entity.Core.Query.InternalTrees.Node]\u003E\n-;  V20 tmp2         [V20,T58] (  2,  2   )     int  -\u003E  [rbp-0x40]  spill-single-def \u0022impAppendStmt\u0022\n-;  V21 tmp3         [V21,T30] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Data.Entity.Core.Query.InternalTrees.OpType\u003E\n-;  V22 tmp4         [V22,T31] (  3,  3   )     ref  -\u003E  [rbp-0xA0]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Query.InternalTrees.PhysicalProjectOp\u003E\n-;  V23 tmp5         [V23,T32] (  3,  3   )     ref  -\u003E  [rbp-0xA8]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Query.InternalTrees.Node\u003E\n\u002B;  V20 tmp2         [V20,T56] (  2,  2   )     int  -\u003E  [rbp-0x40]  spill-single-def \u0022impAppendStmt\u0022\n\u002B;  V21 tmp3         [V21,T28] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Data.Entity.Core.Query.InternalTrees.OpType\u003E\n\u002B;  V22 tmp4         [V22,T29] (  3,  3   )     ref  -\u003E  [rbp-0xA0]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Query.InternalTrees.PhysicalProjectOp\u003E\n\u002B;  V23 tmp5         [V23,T30] (  3,  3   )     ref  -\u003E  [rbp-0xA8]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Query.InternalTrees.Node\u003E\n ;  V24 tmp6         [V24,T23] (  4,  4   )     ref  -\u003E  [rbp-0xB0]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.TypeUsage\u003E\n-;  V25 tmp7         [V25,T49] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Common.CommandTrees.DbQueryCommandTree\u003E\n-;  V26 tmp8         [V26,T50] (  2,  2   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.DiscriminatorMap\u003E\n-;  V27 tmp9         [V27,T33] (  3,  3   )     ref  -\u003E  [rbp-0xB8]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Query.PlanCompiler.ITreeGenerator\u003E\n\u002B;  V25 tmp7         [V25,T47] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Common.CommandTrees.DbQueryCommandTree\u003E\n\u002B;  V26 tmp8         [V26,T48] (  2,  2   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.DiscriminatorMap\u003E\n\u002B;  V27 tmp9         [V27,T31] (  3,  3   )     ref  -\u003E  [rbp-0xB8]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Query.PlanCompiler.ITreeGenerator\u003E\n ;* V28 tmp10        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Query.InternalTrees.Op\u003E\n ;* V29 tmp11        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Query.InternalTrees.Op\u003E\n-;  V30 tmp12        [V30,T34] (  3,  3   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Query.InternalTrees.Node]\u003E\n-;  V31 tmp13        [V31,T35] (  3,  3   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Query.InternalTrees.VarList\u003E\n\u002B;  V30 tmp12        [V30,T32] (  3,  3   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Query.InternalTrees.Node]\u003E\n\u002B;  V31 tmp13        [V31,T33] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Query.InternalTrees.VarList\u003E\n ;* V32 tmp14        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Query.InternalTrees.SimpleCollectionColumnMap\u003E\n ;* V33 tmp15        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmFunction\u003E\n-;  V34 tmp16        [V34,T24] (  4,  4   )     ref  -\u003E  [rbp-0xC0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V35 tmp17        [V35    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V36 tmp18        [V36,T60] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n-;  V37 tmp19        [V37,T45] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V38 tmp20        [V38,T25] (  4,  4   )     ref  -\u003E  [rbp-0xC8]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.TypeUsage\u003E\n-;  V39 tmp21        [V39,T70] (  2,  1   )   ubyte  -\u003E  rax         \u0022Inline return value spill temp\u0022\n-;  V40 tmp22        [V40,T36] (  3,  3   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022non-inline candidate call\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmType\u003E\n\u002B;  V34 tmp16        [V34,T34] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V35 tmp17        [V35    ] (  1,  0.50)   ubyte  -\u003E  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V36 tmp18        [V36,T65] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n\u002B;* V37 tmp19        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V38 tmp20        [V38,T24] (  4,  4   )     ref  -\u003E  [rbp-0xC0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.TypeUsage\u003E\n\u002B;  V39 tmp21        [V39,T68] (  2,  1   )   ubyte  -\u003E  rax         \u0022Inline return value spill temp\u0022\n\u002B;  V40 tmp22        [V40,T35] (  3,  3   )     ref  -\u003E  [rbp-0xC8]  class-hnd spill-single-def \u0022non-inline candidate call\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmType\u003E\n... diff truncated; middle omitted ...\n        cmp      byte  ptr [rdx], dl\n        cmp      rdx, rsi\n-       je       SHORT G_M22422_IG13\n\u002B       je       SHORT G_M22422_IG10\n        test     rsi, rsi\n-       je       SHORT G_M22422_IG12\n\u002B       je       SHORT G_M22422_IG09\n        mov      edi, dword ptr [rdx\u002B0x08]\n        cmp      edi, dword ptr [rsi\u002B0x08]\n-       jne      SHORT G_M22422_IG12\n\u002B       jne      SHORT G_M22422_IG09\n        lea      rdi, bword ptr [rdx\u002B0x0C]\n        mov      edx, dword ptr [rdx\u002B0x08]\n        add      edx, edx\n        add      rsi, 12\n        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:SequenceEqual(byref,byref,nuint):bool\n        call     [rax]System.SpanHelpers:SequenceEqual(byref,byref,nuint):bool\n-\t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 28.88\n-G_M22422_IG11:\n-       jmp      SHORT G_M22422_IG14\n-\t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 1.00\n-G_M22422_IG12:\n\u002B       jmp      SHORT G_M22422_IG11\n\u002B\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 24.50\n\u002BG_M22422_IG09:\n        xor      eax, eax\n-       jmp      SHORT G_M22422_IG14\n\u002B       jmp      SHORT G_M22422_IG11\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 1.12\n-G_M22422_IG13:\n\u002BG_M22422_IG10:\n        mov      eax, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 0.12\n-G_M22422_IG14:\n\u002BG_M22422_IG11:\n        test     eax, eax\n-       jne      G_M22422_IG21\n\u002B       jne      G_M22422_IG16\n \t\t\t\t\t\t;; size=8 bbWeight=0.50 PerfScore 0.62\n-G_M22422_IG15:\n-       mov      rsi, gword ptr [rbx\u002B0x18]\n-       mov      rax, gword ptr [rsi\u002B0x48]\n-       mov      gword ptr [rbp-0xE8], rax\n-       test     rax, rax\n-       je       G_M22422_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M22422_IG16\n-       lea      rsi, [rbp-0x50]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M22422_IG17\n-\t\t\t\t\t\t;; size=73 bbWeight=0.50 PerfScore 10.50\n-G_M22422_IG16:\n\u002BG_M22422_IG12:\n\u002B       mov      rdx, gword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, gword ptr [rdx\u002B0x48]\n\u002B       test     rsi, rsi\n\u002B       je       G_M22422_IG24\n        lea      rdx, [rbp-0x50]\n-       mov      rsi, gword ptr [rbp-0xE8]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.FunctionParameter](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter],byref):System.Data.Entity.Core.Metadata.Edm.FunctionParameter\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M22422_IG17:\n        mov      rdi, gword ptr [rax\u002B0x28]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x18]System.Data.Entity.Core.Metadata.Edm.TypeUsage:get_EdmType():System.Data.Entity.Core.Metadata.Edm.EdmType:this\n        mov      rdi, rax\n        test     rdi, rdi\n-       je       SHORT G_M22422_IG20\n-\t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 5.25\n-G_M22422_IG18:\n\u002B       je       SHORT G_M22422_IG15\n\u002B\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 9.88\n\u002BG_M22422_IG13:\n        mov      rcx, 0xD1FFAB1E      ; System.Data.Entity.Core.Metadata.Edm.CollectionType\n        cmp      qword ptr [rdi], rcx\n-       je       SHORT G_M22422_IG20\n\u002B       je       SHORT G_M22422_IG15\n \t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M22422_IG19:\n\u002BG_M22422_IG14:\n        mov      rsi, rax\n        mov      rdi, rcx\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        mov      rdi, rax\n \t\t\t\t\t\t;; size=21 bbWeight=0.12 PerfScore 0.50\n-G_M22422_IG20:\n\u002BG_M22422_IG15:\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x58]\n        call     [rax\u002B0x10]System.Data.Entity.Core.Metadata.Edm.CollectionType:get_TypeUsage():System.Data.Entity.Core.Metadata.Edm.TypeUsage:this\n@@ -386,7 \u002B348,7 @@ G_M22422_IG20:\n        mov      rsi, rax\n        mov      gword ptr [rbp-0x70], rsi\n \t\t\t\t\t\t;; size=166 bbWeight=0.50 PerfScore 26.38\n-G_M22422_IG21:\n\u002BG_M22422_IG16:\n        mov      rdi, r13\n        mov      rsi, gword ptr [rbp-0x70]\n        mov      rdx, gword ptr [rbp-0x38]\n@@ -396,7 \u002B358,7 @@ G_M22422_IG21:\n        lea      rdi, bword ptr [rbx\u002B0x50]\n        call     CORINFO_HELP_ASSIGN_REF\n \t\t\t\t\t\t;; size=34 bbWeight=0.50 PerfScore 4.50\n-G_M22422_IG22:\n\u002BG_M22422_IG17:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.Dictionary\u00602[System.String,System.Data.Entity.Core.Query.InternalTrees.Node]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n@@ -409,12 \u002B371,12 @@ G_M22422_IG22:\n        xor      r12d, r12d\n        mov      rdi, gword ptr [rbx\u002B0x38]\n        cmp      dword ptr [rdi\u002B0x08], 0\n-       je       G_M22422_IG26\n\u002B       je       G_M22422_IG21\n \t\t\t\t\t\t;; size=59 bbWeight=1 PerfScore 14.50\n-G_M22422_IG23:\n\u002BG_M22422_IG18:\n        mov      rdi, gword ptr [rbx\u002B0x38]\n        cmp      r12d, dword ptr [rdi\u002B0x08]\n-       jae      G_M22422_IG30\n\u002B       jae      G_M22422_IG25\n        mov      rax, gword ptr [rdi\u002B8*r12\u002B0x10]\n        mov      gword ptr [rbp-0x90], rax\n        mov      rdi, r14\n@@ -435,9 \u002B397,9 @@ G_M22422_IG23:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x28]System.Data.Entity.Core.Metadata.Edm.MetadataItem:get_BuiltInTypeKind():int:this\n        cmp      eax, 15\n-       jne      SHORT G_M22422_IG25\n\u002B       jne      SHORT G_M22422_IG20\n \t\t\t\t\t\t;; size=97 bbWeight=4 PerfScore 150.00\n-G_M22422_IG24:\n\u002BG_M22422_IG19:\n        mov      rax, gword ptr [rbp-0x98]\n        mov      rdi, gword ptr [rax\u002B0x18]\n        mov      rcx, qword ptr [rdi]\n@@ -459,7 \u002B421,7 @@ G_M22422_IG24:\n        call     [rax\u002B0x08]System.Data.Entity.Core.Query.InternalTrees.Command:CreateNode(System.Data.Entity.Core.Query.InternalTrees.Op,System.Data.Entity.Core.Query.InternalTrees.Node):System.Data.Entity.Core.Query.InternalTrees.Node:this\n        mov      gword ptr [rbp-0x98], rax\n \t\t\t\t\t\t;; size=82 bbWeight=2 PerfScore 61.00\n-G_M22422_IG25:\n\u002BG_M22422_IG20:\n        mov      rdi, gword ptr [rbp-0x90]\n        mov      rcx, qword ptr [rdi]\n        mov      rcx, qword ptr [rcx\u002B0x48]\n@@ -473,9 \u002B435,9 @@ G_M22422_IG25:\n        inc      r12d\n        mov      rdi, gword ptr [rbx\u002B0x38]\n        cmp      dword ptr [rdi\u002B0x08], r12d\n-       jg       G_M22422_IG23\n\u002B       jg       G_M22422_IG18\n \t\t\t\t\t\t;; size=63 bbWeight=4 PerfScore 73.00\n-G_M22422_IG26:\n\u002BG_M22422_IG21:\n        mov      rbx, gword ptr [rbx\u002B0x50]\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Mapping.FunctionImportMappingComposable\u002BFunctionViewOpCopier\n        call     CORINFO_HELP_NEWSFAST\n@@ -510,8 \u002B472,8 @@ G_M22422_IG26:\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=154 bbWeight=1 PerfScore 25.50\n-G_M22422_IG27:\n-       add      rsp, 200\n\u002BG_M22422_IG22:\n\u002B       add      rsp, 184\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -520,21 \u002B482,21 @@ G_M22422_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M22422_IG28:\n\u002BG_M22422_IG23:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M22422_IG29:\n\u002BG_M22422_IG24:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M22422_IG30:\n\u002BG_M22422_IG25:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1616, prolog size 41, PerfScore 483.02, instruction count 376, allocated bytes for code 1616 (MethodHash=cd32a869) for method System.Data.Entity.Core.Mapping.FunctionImportMappingComposable:GetInternalTree(System.Data.Entity.Core.Query.InternalTrees.Command,System.Collections.Generic.IList\u00601[System.Data.Entity.Core.Query.InternalTrees.Node]):System.Data.Entity.Core.Query.InternalTrees.Node:this (FullOpts)\n\u002B; Total bytes of code 1490, prolog size 41, PerfScore 466.27, instruction count 348, allocated bytes for code 1490 (MethodHash=cd32a869) for method System.Data.Entity.Core.Mapping.FunctionImportMappingComposable:GetInternalTree(System.Data.Entity.Core.Query.InternalTrees.Command,System.Collections.Generic.IList\u00601[System.Data.Entity.Core.Query.InternalTrees.Node]):System.Data.Entity.Core.Query.InternalTrees.Node:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1616,"DiffBytes":1490},{"Assembly":"MathNet.Numerics.dasm","Method":"MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:SameAs[long](MathNet.Numerics.LinearAlgebra.Matrix\u00601[long],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this (FullOpts)","Category":"improvement","Description":"594 -\u003E 120 bytes (-474)","ExtraInfo":null,"Diff":"@@ -1,214 \u002B1,65 @@\n ; Assembly listing for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:SameAs[long](MathNet.Numerics.LinearAlgebra.Matrix\u00601[long],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n-; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data\n\u002B; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 12,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]\u003E\n-;  V01 arg1         [V01,T03] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[long]\u003E\n-;  V02 arg2         [V02,T01] ( 11,  6.50)     int  -\u003E  r15         single-def\n-;  V03 arg3         [V03,T02] ( 11,  6.50)     int  -\u003E  r14         single-def\n-;  V04 arg4         [V04,T04] (  3,  2.50)   ubyte  -\u003E  r13         single-def\n-;  V05 loc0         [V05,T08] (  4,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]\u003E\n\u002B;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]\u003E\n\u002B;  V01 arg1         [V01,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[long]\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  4   )     int  -\u003E  r15         single-def\n\u002B;  V03 arg3         [V03,T04] (  4,  4   )     int  -\u003E  r14         single-def\n\u002B;* V04 arg4         [V04    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def\n\u002B;* V05 loc0         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]\u003E\n\u002B;  V07 tmp1         [V07,T00] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cbyte[]\u003E\n-;  V09 tmp3         [V09,T06] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[byte]\u003E\n-;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cbyte[]\u003E\n-;  V11 tmp5         [V11,T11] (  2,  1   )     int  -\u003E  rsi         \u0022Inline return value spill temp\u0022\n-;  V12 tmp6         [V12,T09] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]\u003E\n-;  V13 tmp7         [V13,T10] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]\u003E\n-;  V14 tmp8         [V14,T07] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]\u003E\n-;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cbyte[]\u003E\n-;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022Single return block return value\u0022\n ;\n ; Lcl frame size = 8\n \n G_M27772_IG01:\n-       push     rbp\n        push     r15\n        push     r14\n        push     r13\n-       push     r12\n        push     rbx\n        push     rax\n-       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n        mov      r15d, edx\n        mov      r14d, ecx\n-       mov      r13d, r8d\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.75\n G_M27772_IG02:\n-       mov      r12, gword ptr [rsi\u002B0x08]\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M27772_IG11\n-\t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 7.00\n-G_M27772_IG03:\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[byte]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M27772_IG07\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      SHORT G_M27772_IG05\n\u002B       cmp      byte  ptr [rsi], sil\n        mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        mov      rdi, r13\n        mov      esi, r15d\n        mov      edx, r14d\n        mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]:.ctor(int,int):this\n        call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]:.ctor(int,int):this\n        imul     r15d, r14d\n        movsxd   rsi, r15d\n        mov      rdi, 0xD1FFAB1E      ; byte[]\n        call     CORINFO_HELP_NEWARR_1_VC\n        mov      rsi, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, rbx\n        mov      rsi, r13\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=150 bbWeight=0.50 PerfScore 12.62\n-G_M27772_IG04:\n\u002B\t\t\t\t\t\t;; size=89 bbWeight=1 PerfScore 17.25\n\u002BG_M27772_IG03:\n        add      rsp, 8\n        pop      rbx\n-       pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n-       pop      rbp\n        tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M27772_IG05:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 5.00\n-G_M27772_IG06:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M27772_IG07:\n-       test     r13b, r13b\n-       je       SHORT G_M27772_IG09\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 5.62\n-G_M27772_IG08:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M27772_IG09:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[byte]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]:.ctor(int,int):this\n-       cmp      r15d, r14d\n-       mov      esi, r14d\n-       cmovle   esi, r15d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; byte[]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 7.12\n-G_M27772_IG10:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x10]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:Diagonal(MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[byte]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M27772_IG11:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]:.ctor(int,int):this\n-       mov      esi, r15d\n-       imul     esi, r14d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; byte[]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=89 bbWeight=0.50 PerfScore 7.75\n-G_M27772_IG12:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n\u002B\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 594, prolog size 16, PerfScore 66.75, instruction count 157, allocated bytes for code 594 (MethodHash=eab09383) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:SameAs[long](MathNet.Numerics.LinearAlgebra.Matrix\u00601[long],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this (FullOpts)\n\u002B; Total bytes of code 120, prolog size 8, PerfScore 27.25, instruction count 34, allocated bytes for code 120 (MethodHash=eab09383) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:SameAs[long](MathNet.Numerics.LinearAlgebra.Matrix\u00601[long],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":594,"DiffBytes":120},{"Assembly":"Microsoft.AspNetCore.OData.dasm","Method":"Microsoft.AspNetCore.OData.Routing.Template.ActionImportSegmentTemplate:.ctor(Microsoft.OData.UriParser.OperationImportSegment):this (FullOpts)","Category":"improvement","Description":"440 -\u003E 385 bytes (-55)","ExtraInfo":null,"Diff":"@@ -1,154 \u002B1,134 @@\n ; Assembly listing for method Microsoft.AspNetCore.OData.Routing.Template.ActionImportSegmentTemplate:.ctor(Microsoft.OData.UriParser.OperationImportSegment):this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 9 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T02] (  4,  4   )     ref  -\u003E  r15         this class-hnd single-def \u003CMicrosoft.AspNetCore.OData.Routing.Template.ActionImportSegmentTemplate\u003E\n\u002B;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  r15         this class-hnd single-def \u003CMicrosoft.AspNetCore.OData.Routing.Template.ActionImportSegmentTemplate\u003E\n ;  V01 arg1         [V01,T00] (  5,  5   )     ref  -\u003E  rbx         class-hnd single-def \u003CMicrosoft.OData.UriParser.OperationImportSegment\u003E\n ;* V02 loc0         [V02    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMicrosoft.OData.Edm.IEdmOperationImport\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V04 tmp1         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V05 tmp2         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V06 tmp3         [V06,T05] (  4,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n-;  V07 tmp4         [V07,T08] (  2,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V08 tmp5         [V08,T06] (  3,  0   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.OData.ODataException\u003E\n-;  V09 tmp6         [V09,T07] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V10 tmp7         [V10,T01] (  4,  7   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[Microsoft.OData.Edm.IEdmOperationImport]\u003E\n-;  V11 tmp8         [V11    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V06 tmp3         [V06,T04] (  4,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n\u002B;  V07 tmp4         [V07,T07] (  2,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V08 tmp5         [V08,T05] (  3,  0   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.OData.ODataException\u003E\n\u002B;  V09 tmp6         [V09,T06] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V10 tmp7         [V10,T02] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[Microsoft.OData.Edm.IEdmOperationImport]\u003E\n\u002B;  V11 tmp8         [V11    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V12 tmp9         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V13 tmp10        [V13,T03] (  4,  3   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CMicrosoft.OData.Edm.IEdmOperationImport\u003E\n-;  V14 tmp11        [V14,T04] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Microsoft.OData.Edm.IEdmOperationImport]\u003E\n\u002B;  V13 tmp10        [V13,T03] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMicrosoft.OData.Edm.IEdmOperationImport\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Microsoft.OData.Edm.IEdmOperationImport]\u003E\n ;* V15 tmp12        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V16 tmp13        [V16,T09] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V16 tmp13        [V16,T08] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 8\n \n G_M65473_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x20]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x20], rax\n        mov      r15, rdi\n        mov      rbx, rsi\n \t\t\t\t\t\t;; size=24 bbWeight=1 PerfScore 7.25\n G_M65473_IG02:\n        test     rbx, rbx\n-       je       G_M65473_IG07\n\u002B       je       G_M65473_IG04\n        lea      rdi, bword ptr [r15\u002B0x10]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbx\u002B0x28]\n-       test     rbx, rbx\n-       je       G_M65473_IG08\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[Microsoft.OData.Edm.IEdmOperationImport]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M65473_IG04\n-\t\t\t\t\t\t;; size=64 bbWeight=1 PerfScore 11.25\n-G_M65473_IG03:\n-       lea      rsi, [rbp-0x20]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      r14, rax\n-       jmp      SHORT G_M65473_IG05\n-\t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 5.00\n-G_M65473_IG04:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x28]\n\u002B       test     rsi, rsi\n\u002B       je       G_M65473_IG05\n        lea      rdx, [rbp-0x20]\n-       mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[Microsoft.OData.Edm.IEdmOperationImport](System.Collections.Generic.IEnumerable\u00601[Microsoft.OData.Edm.IEdmOperationImport],byref):Microsoft.OData.Edm.IEdmOperationImport\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      r14, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M65473_IG05:\n\u002B       mov      rbx, rax\n        cmp      byte  ptr [rbp-0x20], 0\n-       je       G_M65473_IG09\n-       mov      rdi, r14\n\u002B       je       G_M65473_IG06\n\u002B       mov      rdi, rbx\n        mov      r11, 0xD1FFAB1E      ; code for Microsoft.OData.Edm.IEdmEntityContainerElement:get_ContainerElementKind():int:this\n        call     [r11]Microsoft.OData.Edm.IEdmEntityContainerElement:get_ContainerElementKind():int:this\n        cmp      eax, 2\n-       jne      G_M65473_IG10\n-       mov      rsi, r14\n\u002B       jne      G_M65473_IG07\n\u002B       mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.OData.Edm.IEdmActionImport\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTINTERFACE\n        call     [rax]CORINFO_HELP_CHKCASTINTERFACE\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x08]\n        call     CORINFO_HELP_ASSIGN_REF\n        nop      \n-\t\t\t\t\t\t;; size=73 bbWeight=1 PerfScore 12.50\n-G_M65473_IG06:\n\u002B\t\t\t\t\t\t;; size=136 bbWeight=1 PerfScore 23.00\n\u002BG_M65473_IG03:\n        add      rsp, 8\n        pop      rbx\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M65473_IG07:\n\u002BG_M65473_IG04:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; \u0027segment\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:.ctor(System.String):this\n        call     [rax]System.ArgumentNullException:.ctor(System.String):this\n        mov      rdi, rbx\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M65473_IG08:\n\u002BG_M65473_IG05:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M65473_IG09:\n\u002BG_M65473_IG06:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M65473_IG10:\n\u002BG_M65473_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.AspNetCore.OData.SRResources:get_SegmentShouldBeKind():System.String\n        call     [rax]Microsoft.AspNetCore.OData.SRResources:get_SegmentShouldBeKind():System.String\n        mov      rbx, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Object[]\n        mov      esi, 2\n        call     CORINFO_HELP_NEWARR_1_PTR\n        mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; \u0027ActionImport\u0027\n        mov      gword ptr [r15\u002B0x10], rdi\n        mov      rdi, 0xD1FFAB1E      ; \u0027ActionImportSegmentTemplate\u0027\n        mov      gword ptr [r15\u002B0x18], rdi\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.OData.ODataException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      rdi, rbx\n        mov      rsi, r15\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.AspNetCore.OData.Error:Format(System.String,System.Object[]):System.String\n        call     [rax]Microsoft.AspNetCore.OData.Error:Format(System.String,System.Object[]):System.String\n        mov      rsi, rax\n        mov      rdi, r14\n        xor      rdx, rdx\n        mov      rax, 0xD1FFAB1E      ; code for System.InvalidOperationException:.ctor(System.String,System.Exception):this\n        call     [rax]System.InvalidOperationException:.ctor(System.String,System.Exception):this\n        mov      rdi, r14\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=131 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 440, prolog size 18, PerfScore 41.50, instruction count 101, allocated bytes for code 440 (MethodHash=b2fd003e) for method Microsoft.AspNetCore.OData.Routing.Template.ActionImportSegmentTemplate:.ctor(Microsoft.OData.UriParser.OperationImportSegment):this (FullOpts)\n\u002B; Total bytes of code 385, prolog size 18, PerfScore 33.50, instruction count 87, allocated bytes for code 385 (MethodHash=b2fd003e) for method Microsoft.AspNetCore.OData.Routing.Template.ActionImportSegmentTemplate:.ctor(Microsoft.OData.UriParser.OperationImportSegment):this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":440,"DiffBytes":385},{"Assembly":"Microsoft.EntityFrameworkCore.dasm","Method":"Microsoft.EntityFrameworkCore.Query.ExpressionPrinter:VisitLambda[byte](System.Linq.Expressions.Expression\u00601[byte]):System.Linq.Expressions.Expression:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 797 bytes (-52)","ExtraInfo":null,"Diff":"@@ -8,34 \u002B8,34 @@\n ; 0 inlinees with PGO data; 10 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T02] ( 12, 24   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.ExpressionPrinter\u003E\n\u002B;  V00 this         [V00,T01] ( 12, 24   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.ExpressionPrinter\u003E\n ;  V01 arg1         [V01,T05] ( 10, 13   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Linq.Expressions.Expression\u00601[byte]\u003E\n ;  V02 loc0         [V02,T00] ( 12, 28   )     ref  -\u003E  [rbp-0x38]  do-not-enreg[M] class-hnd EH-live \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;  V03 loc1         [V03,T04] (  5, 20   )     ref  -\u003E  r13         class-hnd \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n-;  V04 loc2         [V04,T10] (  2,  8   )     ref  -\u003E  rdx         class-hnd exact \u003CSystem.String\u003E\n-;  V05 loc3         [V05,T11] (  2,  8   )     ref  -\u003E  rsi         class-hnd \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n\u002B;  V04 loc2         [V04,T08] (  2,  8   )     ref  -\u003E  rdx         class-hnd exact \u003CSystem.String\u003E\n\u002B;  V05 loc3         [V05,T09] (  2,  8   )     ref  -\u003E  rsi         class-hnd \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V08 tmp2         [V08,T19] (  3,  2   )     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V09 tmp3         [V09,T13] (  3,  5   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V08 tmp2         [V08,T18] (  3,  2   )     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V09 tmp3         [V09,T12] (  3,  5   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V11 tmp5         [V11,T03] (  3, 24   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Linq.Expressions.ParameterExpression,System.String]\u003E\n-;  V12 tmp6         [V12,T01] (  4, 28   )     ref  -\u003E  r12         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V13 tmp7         [V13    ] (  3,  8   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V11 tmp5         [V11,T02] (  3, 24   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Linq.Expressions.ParameterExpression,System.String]\u003E\n\u002B;  V12 tmp6         [V12,T03] (  3, 24   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V13 tmp7         [V13    ] (  2,  8   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V14 tmp8         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V15 tmp9         [V15,T09] (  3,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n-;  V16 tmp10        [V16,T06] (  4, 12   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V15 tmp9         [V15,T10] (  2,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n\u002B;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;* V17 tmp11        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V18 tmp12        [V18,T20] (  3,  2   )     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V19 tmp13        [V19,T14] (  3,  5   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V18 tmp12        [V18,T19] (  3,  2   )     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V19 tmp13        [V19,T13] (  3,  5   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V21 tmp15        [V21,T15] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V22 tmp16        [V22,T17] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V23 tmp17        [V23,T07] (  3, 12   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n-;  V24 tmp18        [V24,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V25 tmp19        [V25,T18] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V26 tmp20        [V26,T12] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V27 cse0         [V27,T08] (  6,  9   )    long  -\u003E  r14         \u0022CSE #02: moderate\u0022\n\u002B;  V21 tmp15        [V21,T14] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V22 tmp16        [V22,T16] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V23 tmp17        [V23,T06] (  3, 12   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n\u002B;  V24 tmp18        [V24,T15] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V25 tmp19        [V25,T17] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V26 tmp20        [V26,T11] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V27 cse0         [V27,T07] (  6,  9   )    long  -\u003E  r14         \u0022CSE #02: moderate\u0022\n ;\n ; Lcl frame size = 24\n \n@@ -84,7 \u002B84,7 @@ G_M44376_IG04:\n G_M44376_IG05:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M44376_IG28\n\u002B       je       G_M44376_IG25\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n G_M44376_IG06:\n        mov      rdi, 0xD1FFAB1E      ; data for System.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]:Empty\n@@ -105,7 \u002B105,7 @@ G_M44376_IG09:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():bool:this\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n-       je       G_M44376_IG17\n\u002B       je       G_M44376_IG14\n \t\t\t\t\t\t;; size=25 bbWeight=8 PerfScore 44.00\n G_M44376_IG10:\n        mov      rdi, gword ptr [rbp-0x38]\n@@ -126,38 \u002B126,19 @@ G_M44376_IG10:\n        call     [rax\u002B0x20]System.Linq.Expressions.ExpressionVisitor:Visit(System.Linq.Expressions.Expression):System.Linq.Expressions.Expression:this\n        mov      rdi, r15\n        call     [r14\u002B0x30]System.Linq.Expressions.LambdaExpression:GetOrMakeParameters():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]:this\n-       mov      r12, rax\n-       test     r12, r12\n-       je       SHORT G_M44376_IG15\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ParameterExpression]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n        je       SHORT G_M44376_IG12\n-\t\t\t\t\t\t;; size=109 bbWeight=4 PerfScore 126.00\n-G_M44376_IG11:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M44376_IG13\n-\t\t\t\t\t\t;; size=19 bbWeight=2 PerfScore 19.50\n-G_M44376_IG12:\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r12\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.Linq.Expressions.ParameterExpression](System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.ParameterExpression],byref):System.Linq.Expressions.ParameterExpression\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=2 PerfScore 8.50\n-G_M44376_IG13:\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       SHORT G_M44376_IG16\n\u002B       je       SHORT G_M44376_IG13\n        cmp      r13, rax\n        je       G_M44376_IG09\n-\t\t\t\t\t\t;; size=15 bbWeight=4 PerfScore 13.00\n-G_M44376_IG14:\n\u002B\t\t\t\t\t\t;; size=120 bbWeight=4 PerfScore 135.00\n\u002BG_M44376_IG11:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      rsi, 0xD1FFAB1E      ; \u0027, \u0027\n        mov      rax, qword ptr [rdi]\n@@ -165,18 \u002B146,18 @@ G_M44376_IG14:\n        call     [rax\u002B0x30]Microsoft.EntityFrameworkCore.Infrastructure.IndentedStringBuilder:Append(System.String):Microsoft.EntityFrameworkCore.Infrastructure.IndentedStringBuilder:this\n        jmp      G_M44376_IG09\n \t\t\t\t\t\t;; size=29 bbWeight=2 PerfScore 22.50\n-G_M44376_IG15:\n\u002BG_M44376_IG12:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M44376_IG16:\n\u002BG_M44376_IG13:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M44376_IG17:\n\u002BG_M44376_IG14:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n@@ -186,16 \u002B167,16 @@ G_M44376_IG17:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        cmp      eax, 1\n-       je       SHORT G_M44376_IG19\n\u002B       je       SHORT G_M44376_IG16\n \t\t\t\t\t\t;; size=46 bbWeight=1 PerfScore 14.00\n-G_M44376_IG18:\n\u002BG_M44376_IG15:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      rsi, 0xD1FFAB1E      ; \u0027)\u0027\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]Microsoft.EntityFrameworkCore.Infrastructure.IndentedStringBuilder:Append(System.String):Microsoft.EntityFrameworkCore.Infrastructure.IndentedStringBuilder:this\n \t\t\t\t\t\t;; size=24 bbWeight=0.50 PerfScore 4.62\n-G_M44376_IG19:\n\u002BG_M44376_IG16:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      rsi, 0xD1FFAB1E      ; \u0027 =\u003E \u0027\n        mov      rax, qword ptr [rdi]\n@@ -213,35 \u002B194,35 @@ G_M44376_IG19:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       jne      SHORT G_M44376_IG22\n\u002B       jne      SHORT G_M44376_IG19\n \t\t\t\t\t\t;; size=72 bbWeight=1 PerfScore 28.50\n-G_M44376_IG20:\n\u002BG_M44376_IG17:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M44376_IG29\n\u002B       je       G_M44376_IG26\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n-G_M44376_IG21:\n\u002BG_M44376_IG18:\n        mov      rdi, 0xD1FFAB1E      ; data for System.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]:Empty\n        mov      r13, gword ptr [rdi]\n-       jmp      SHORT G_M44376_IG23\n\u002B       jmp      SHORT G_M44376_IG20\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M44376_IG22:\n\u002BG_M44376_IG19:\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEnumerable\u00601[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator\u00601[System.__Canon]:this\n        call     [r11]System.Collections.Generic.IEnumerable\u00601[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator\u00601[System.__Canon]:this\n        mov      r13, rax\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 2.75\n-G_M44376_IG23:\n\u002BG_M44376_IG20:\n        mov      gword ptr [rbp-0x38], r13\n \t\t\t\t\t\t;; size=4 bbWeight=1 PerfScore 1.00\n-G_M44376_IG24:\n\u002BG_M44376_IG21:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():bool:this\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n-       je       SHORT G_M44376_IG26\n\u002B       je       SHORT G_M44376_IG23\n \t\t\t\t\t\t;; size=21 bbWeight=8 PerfScore 44.00\n-G_M44376_IG25:\n\u002BG_M44376_IG22:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEnumerator\u00601[System.__Canon]:get_Current():System.__Canon:this\n        call     [r11]System.Collections.Generic.IEnumerator\u00601[System.__Canon]:get_Current():System.__Canon:this\n@@ -250,15 \u002B231,15 @@ G_M44376_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary\u00602[System.__Canon,System.__Canon]:Remove(System.__Canon):bool:this\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.Collections.Generic.Dictionary\u00602[System.__Canon,System.__Canon]:Remove(System.__Canon):bool:this\n-       jmp      SHORT G_M44376_IG24\n\u002B       jmp      SHORT G_M44376_IG21\n \t\t\t\t\t\t;; size=40 bbWeight=4 PerfScore 55.00\n-G_M44376_IG26:\n\u002BG_M44376_IG23:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        mov      rax, r15\n \t\t\t\t\t\t;; size=20 bbWeight=1 PerfScore 4.50\n-G_M44376_IG27:\n\u002BG_M44376_IG24:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -268,52 \u002B249,52 @@ G_M44376_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M44376_IG28:\n\u002BG_M44376_IG25:\n        mov      rdi, 0xD1FFAB1E      ; System.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M44376_IG06\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M44376_IG29:\n\u002BG_M44376_IG26:\n        mov      rdi, 0xD1FFAB1E      ; System.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M44376_IG21\n\u002B       jmp      G_M44376_IG18\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M44376_IG30:\n\u002BG_M44376_IG27:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M44376_IG31:\n\u002BG_M44376_IG28:\n        cmp      gword ptr [rbp-0x38], 0\n-       je       SHORT G_M44376_IG32\n\u002B       je       SHORT G_M44376_IG29\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M44376_IG32:\n\u002BG_M44376_IG29:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M44376_IG33:\n\u002BG_M44376_IG30:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M44376_IG34:\n\u002BG_M44376_IG31:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M44376_IG35:\n\u002BG_M44376_IG32:\n        cmp      gword ptr [rbp-0x38], 0\n-       je       SHORT G_M44376_IG36\n\u002B       je       SHORT G_M44376_IG33\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M44376_IG36:\n\u002BG_M44376_IG33:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M44376_IG37:\n\u002BG_M44376_IG34:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 31, PerfScore 440.25, instruction count 201, allocated bytes for code 849 (MethodHash=fe3b52a7) for method Microsoft.EntityFrameworkCore.Query.ExpressionPrinter:VisitLambda[byte](System.Linq.Expressions.Expression\u00601[byte]):System.Linq.Expressions.Expression:this (FullOpts)\n\u002B; Total bytes of code 797, prolog size 31, PerfScore 408.25, instruction count 188, allocated bytes for code 797 (MethodHash=fe3b52a7) for method Microsoft.EntityFrameworkCore.Query.ExpressionPrinter:VisitLambda[byte](System.Linq.Expressions.Expression\u00601[byte]):System.Linq.Expressions.Expression:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":797},{"Assembly":"Microsoft.OpenApi.dasm","Method":"Microsoft.OpenApi.OpenApiDocument:SerializeInternal(Microsoft.OpenApi.IOpenApiWriter,int,System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]):this (FullOpts)","Category":"improvement","Description":"1,275 -\u003E 1,237 bytes (-38)","ExtraInfo":null,"Diff":"@@ -15,42 \u002B15,40 @@\n ;  V04 loc0         [V04,T02] (  9,  9   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMicrosoft.OpenApi.OpenApiDocument\u002B\u003C\u003Ec__DisplayClass64_0\u003E\n ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V06 tmp1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMicrosoft.OpenApi.OpenApiDocument\u002B\u003C\u003Ec__DisplayClass64_0\u003E\n-;  V07 tmp2         [V07,T05] (  4,  7   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiTag]\u003E\n-;  V08 tmp3         [V08,T06] (  4,  6   )     ref  -\u003E  [rbp-0x30]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.ISet\u00601[Microsoft.OpenApi.OpenApiTag]\u003E\n-;  V09 tmp4         [V09,T07] (  4,  6   )     ref  -\u003E  [rbp-0x38]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;  V07 tmp2         [V07,T03] (  4,  7   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiTag]\u003E\n\u002B;  V08 tmp3         [V08,T04] (  4,  6   )     ref  -\u003E  [rbp-0x30]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.ISet\u00601[Microsoft.OpenApi.OpenApiTag]\u003E\n\u002B;  V09 tmp4         [V09,T05] (  4,  6   )     ref  -\u003E  [rbp-0x38]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n ;  V10 tmp5         [V10,T14] (  3,  5   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiInfo\u003E\n ;* V11 tmp6         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n ;* V12 tmp7         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n ;  V13 tmp8         [V13,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V14 tmp9         [V14,T08] (  4,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IList\u00601[Microsoft.OpenApi.OpenApiServer]\u003E\n\u002B;  V14 tmp9         [V14,T06] (  4,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IList\u00601[Microsoft.OpenApi.OpenApiServer]\u003E\n ;  V15 tmp10        [V15,T17] (  2,  3   )     ref  -\u003E  [rbp-0x40]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;  V16 tmp11        [V16,T09] (  4,  6   )     ref  -\u003E  [rbp-0x48]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;  V16 tmp11        [V16,T07] (  4,  6   )     ref  -\u003E  [rbp-0x48]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n ;  V17 tmp12        [V17,T15] (  3,  5   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiPaths\u003E\n ;* V18 tmp13        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n ;* V19 tmp14        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n ;  V20 tmp15        [V20,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V21 tmp16        [V21,T03] (  5,  7   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiComponents\u003E\n\u002B;  V21 tmp16        [V21,T08] (  4,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiComponents\u003E\n ;  V22 tmp17        [V22,T21] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n ;  V23 tmp18        [V23,T11] (  4,  5   )     ref  -\u003E  [rbp-0x50]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;* V24 tmp19        [V24    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling qmarkNull\u0022\n-;* V25 tmp20        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;* V26 tmp21        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;  V27 tmp22        [V27,T25] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V28 tmp23        [V28,T10] (  4,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IList\u00601[Microsoft.OpenApi.OpenApiSecurityRequirement]\u003E\n-;  V29 tmp24        [V29,T18] (  2,  3   )     ref  -\u003E  [rbp-0x58]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;  V30 tmp25        [V30,T04] (  5,  7   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiExternalDocs\u003E\n-;  V31 tmp26        [V31,T22] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n-;  V32 tmp27        [V32,T12] (  4,  5   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;* V33 tmp28        [V33    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling qmarkNull\u0022\n-;* V34 tmp29        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;* V35 tmp30        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;  V36 tmp31        [V36,T26] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V37 tmp32        [V37,T19] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V38 tmp33        [V38,T20] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V39 tmp34        [V39,T27] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V40 tmp35        [V40,T28] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V41 tmp36        [V41,T29] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V42 tmp37        [V42,T30] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;* V24 tmp19        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;* V25 tmp20        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;  V26 tmp21        [V26,T25] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V27 tmp22        [V27,T09] (  4,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IList\u00601[Microsoft.OpenApi.OpenApiSecurityRequirement]\u003E\n\u002B;  V28 tmp23        [V28,T18] (  2,  3   )     ref  -\u003E  [rbp-0x58]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;  V29 tmp24        [V29,T10] (  4,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiExternalDocs\u003E\n\u002B;  V30 tmp25        [V30,T22] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n\u002B;  V31 tmp26        [V31,T12] (  4,  5   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;* V32 tmp27        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;* V33 tmp28        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;  V34 tmp29        [V34,T26] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V35 tmp30        [V35,T19] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V36 tmp31        [V36,T20] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V37 tmp32        [V37,T27] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;  V38 tmp33        [V38,T28] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;  V39 tmp34        [V39,T29] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;  V40 tmp35        [V40,T30] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 56\n \n@@ -159,8 \u002B157,8 @@ G_M2797_IG10:\n        mov      rax, gword ptr [r12\u002B0x08]\n        mov      gword ptr [rbp-0x50], rax\n        test     r14, r14\n-       je       G_M2797_IG13\n-\t\t\t\t\t\t;; size=22 bbWeight=1 PerfScore 6.25\n\u002B       je       SHORT G_M2797_IG13\n\u002B\t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 6.25\n G_M2797_IG11:\n        mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.IEnumerable\n@@ -168,9 \u002B166,6 @@ G_M2797_IG11:\n        call     [rcx]CORINFO_HELP_ISINSTANCEOFINTERFACE\n        test     rax, rax\n        je       SHORT G_M2797_IG12\n-       mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Nodes.JsonArray\n-       cmp      qword ptr [r14], rdi\n-       je       SHORT G_M2797_IG12\n        mov      rdi, rax\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n        call     [r11]System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n@@ -179,7 \u002B174,7 @@ G_M2797_IG11:\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n        je       SHORT G_M2797_IG13\n-\t\t\t\t\t\t;; size=81 bbWeight=0.50 PerfScore 8.25\n\u002B\t\t\t\t\t\t;; size=66 bbWeight=0.50 PerfScore 6.62\n G_M2797_IG12:\n        cmp      gword ptr [rbp-0x50], 0\n        je       G_M2797_IG24\n@@ -249,8 \u002B244,8 @@ G_M2797_IG17:\n        mov      r14, gword ptr [r15\u002B0x58]\n        mov      r12, gword ptr [r12\u002B0x08]\n        test     r14, r14\n-       je       G_M2797_IG20\n-\t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 5.25\n\u002B       je       SHORT G_M2797_IG20\n\u002B\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 5.25\n G_M2797_IG18:\n        mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.IEnumerable\n@@ -258,9 \u002B253,6 @@ G_M2797_IG18:\n        call     [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE\n        test     rax, rax\n        je       SHORT G_M2797_IG19\n-       mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Nodes.JsonArray\n-       cmp      qword ptr [r14], rdi\n-       je       SHORT G_M2797_IG19\n        mov      rdi, rax\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n        call     [r11]System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n@@ -269,7 \u002B261,7 @@ G_M2797_IG18:\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n        je       SHORT G_M2797_IG20\n-\t\t\t\t\t\t;; size=81 bbWeight=0.50 PerfScore 8.25\n\u002B\t\t\t\t\t\t;; size=66 bbWeight=0.50 PerfScore 6.62\n G_M2797_IG19:\n        test     r12, r12\n        je       G_M2797_IG25\n@@ -367,5 \u002B359,5 @@ G_M2797_IG25:\n        int3     \n \t\t\t\t\t\t;; size=87 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1275, prolog size 19, PerfScore 134.00, instruction count 262, allocated bytes for code 1275 (MethodHash=0aaaf512) for method Microsoft.OpenApi.OpenApiDocument:SerializeInternal(Microsoft.OpenApi.IOpenApiWriter,int,System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]):this (FullOpts)\n\u002B; Total bytes of code 1237, prolog size 19, PerfScore 130.75, instruction count 256, allocated bytes for code 1237 (MethodHash=0aaaf512) for method Microsoft.OpenApi.OpenApiDocument:SerializeInternal(Microsoft.OpenApi.IOpenApiWriter,int,System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1275,"DiffBytes":1237},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:Aggregate[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)","Category":"improvement","Description":"1,665 -\u003E 1,580 bytes (-85)","ExtraInfo":null,"Diff":"@@ -14,11 \u002B14,11 @@\n ;  V03 arg2         [V03,T04] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Numerics.Vector\u00601[float]]\u003E\n ;  V04 arg3         [V04,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T33] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n\u002B;  V06 loc0         [V06,T32] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V08 loc2         [V08,T34] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V09 loc3         [V09,T39] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V10 loc4         [V10,T40] (  3,  1.50)     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V08 loc2         [V08,T33] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V09 loc3         [V09,T38] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V10 loc4         [V10,T39] (  3,  1.50)     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V11 OutArgs      [V11    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V12 tmp1         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V13 tmp2         [V13    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n@@ -44,22 \u002B44,22 @@\n ;* V33 tmp22        [V33    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V34 tmp23        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V35 tmp24        [V35    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V36 tmp25        [V36,T28] (  3,  2   )     int  -\u003E  rdi        \n-;  V37 tmp26        [V37,T06] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V38 tmp27        [V38    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V39 tmp28        [V39,T17] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V40 tmp29        [V40,T18] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V36 tmp25        [V36,T27] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V37 tmp26        [V37,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V38 tmp27        [V38    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V39 tmp28        [V39,T17] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V40 tmp29        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V41 tmp30        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V42 tmp31        [V42,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V43 tmp32        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V44 tmp33        [V44,T38] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V44 tmp33        [V44,T37] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V45 tmp34        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V46 tmp35        [V46,T26] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V47 tmp36        [V47,T19] (  3,  3   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V46 tmp35        [V46,T25] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V47 tmp36        [V47,T18] (  3,  3   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V48 tmp37        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V49 tmp38        [V49,T08] ( 10,  5   )     ref  -\u003E  [rbp-0x98]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;  V49 tmp38        [V49,T08] ( 10,  5   )     ref  -\u003E  [rbp-0x90]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V50 tmp39        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V51 tmp40        [V51,T09] ( 10,  5   )     ref  -\u003E  [rbp-0xA0]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;  V51 tmp40        [V51,T09] ( 10,  5   )     ref  -\u003E  [rbp-0x98]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V52 tmp41        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V53 tmp42        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V54 tmp43        [V54    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -68,11 \u002B68,11 @@\n ;* V57 tmp46        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V58 tmp47        [V58    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V59 tmp48        [V59    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V60 tmp49        [V60,T41] (  2,  1   )     ref  -\u003E  [rbp-0xA8]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V61 tmp50        [V61,T27] (  8,  2   )     ref  -\u003E  [rbp-0xB0]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V62 tmp51        [V62,T20] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V63 tmp52        [V63,T42] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V64 tmp53        [V64,T32] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V60 tmp49        [V60,T40] (  2,  1   )     ref  -\u003E  [rbp-0xA0]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V61 tmp50        [V61,T26] (  8,  2   )     ref  -\u003E  [rbp-0xA8]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V62 tmp51        [V62,T19] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V63 tmp52        [V63,T41] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V64 tmp53        [V64,T31] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V65 tmp54        [V65    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V66 tmp55        [V66,T10] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V67 tmp56        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -80,29 \u002B80,29 @@\n ;* V69 tmp58        [V69    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V70 tmp59        [V70    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V71 tmp60        [V71    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;  V72 tmp61        [V72,T14] (  3,  2   )     ref  -\u003E  [rbp-0xB8]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V73 tmp62        [V73,T44] (  2,  1   )   ubyte  -\u003E  r12         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V74 tmp63        [V74,T45] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V75 tmp64        [V75,T46] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V19.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V76 tmp65        [V76,T47] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V19.value (fldOffset=0x8)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n\u002B       mov      rdi, rax\n\u002B       mov      esi, 1\n\u002B       mov      gword ptr [rbp-0x90], rax\n\u002B       mov      rcx, qword ptr [rax]\n\u002B       mov      rcx, qword ptr [rcx\u002B0x40]\n\u002B       call     [rcx\u002B0x28]System.Threading.CancellationTokenSource:Dispose(bool):this\n\u002B       mov      rdi, gword ptr [rbp-0x90]\n\u002B       mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n\u002B       call     [rax]System.GC:SuppressFinalize(System.Object)\n\u002B\t\t\t\t\t\t;; size=67 bbWeight=0.50 PerfScore 9.62\n\u002BG_M58049_IG32:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rdi, gword ptr [rsi\u002B0x10]\n\u002B       mov      rax, rdi\n\u002B       test     rax, rax\n\u002B       je       SHORT G_M58049_IG33\n        mov      rdi, rax\n        mov      esi, 1\n        mov      gword ptr [rbp-0x98], rax\n@@ -437,34 \u002B433,18 @@ G_M58049_IG34:\n        mov      rdi, gword ptr [rbp-0x98]\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=77 bbWeight=0.50 PerfScore 9.62\n-G_M58049_IG35:\n-       mov      rsi, gword ptr [rbp-0x88]\n-       mov      rdi, gword ptr [rsi\u002B0x10]\n-       mov      rax, rdi\n-       test     rax, rax\n-       je       SHORT G_M58049_IG36\n-       mov      rdi, rax\n-       mov      esi, 1\n-       mov      gword ptr [rbp-0xA0], rax\n-       mov      rcx, qword ptr [rax]\n-       mov      rcx, qword ptr [rcx\u002B0x40]\n-       call     [rcx\u002B0x28]System.Threading.CancellationTokenSource:Dispose(bool):this\n-       mov      rdi, gword ptr [rbp-0xA0]\n-       mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n-       call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.62\n-G_M58049_IG36:\n\u002B\t\t\t\t\t\t;; size=60 bbWeight=0.50 PerfScore 8.62\n\u002BG_M58049_IG33:\n        mov      rdi, qword ptr [r14\u002B0x18]\n        cmp      qword ptr [rdi\u002B0x08], 64\n-       jle      SHORT G_M58049_IG40\n\u002B       jle      SHORT G_M58049_IG37\n \t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 2.50\n-G_M58049_IG37:\n\u002BG_M58049_IG34:\n        mov      rsi, qword ptr [rdi\u002B0x40]\n        test     rsi, rsi\n-       je       SHORT G_M58049_IG40\n\u002B       je       SHORT G_M58049_IG37\n \t\t\t\t\t\t;; size=9 bbWeight=0.40 PerfScore 1.30\n-G_M58049_IG38:\n\u002BG_M58049_IG35:\n        mov      rdi, r15\n        mov      rdx, r13\n        mov      rcx, r12\n@@ -473,7 \u002B453,7 @@ G_M58049_IG38:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateAggregateToCollectionResultCursor[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M58049_IG39:\n\u002BG_M58049_IG36:\n        add      rsp, 200\n        pop      rbx\n        pop      r12\n@@ -483,15 \u002B463,15 @@ G_M58049_IG39:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M58049_IG40:\n\u002BG_M58049_IG37:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      SHORT G_M58049_IG38\n\u002B       jmp      SHORT G_M58049_IG35\n \t\t\t\t\t\t;; size=30 bbWeight=0.18 PerfScore 1.08\n-G_M58049_IG41:\n\u002BG_M58049_IG38:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -499,38 \u002B479,38 @@ G_M58049_IG41:\n        mov      rdi, rax\n        jmp      G_M58049_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M58049_IG42:\n\u002BG_M58049_IG39:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M58049_IG32\n\u002B       jmp      G_M58049_IG29\n \t\t\t\t\t\t;; size=33 bbWeight=0.18 PerfScore 1.08\n-G_M58049_IG43:\n\u002BG_M58049_IG40:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M58049_IG24\n\u002B       jmp      G_M58049_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.10 PerfScore 0.60\n-G_M58049_IG44:\n\u002BG_M58049_IG41:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M58049_IG45:\n\u002BG_M58049_IG42:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M58049_IG46:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M58049_IG48\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M58049_IG43:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M58049_IG45\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M58049_IG47\n\u002B       je       SHORT G_M58049_IG44\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -539,12 \u002B519,12 @@ G_M58049_IG46:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M58049_IG47:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M58049_IG44:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x10]\n        test     r15, r15\n-       je       SHORT G_M58049_IG48\n\u002B       je       SHORT G_M58049_IG45\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -553,24 \u002B533,24 @@ G_M58049_IG47:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M58049_IG48:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M58049_IG45:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M58049_IG49:\n\u002BG_M58049_IG46:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M58049_IG50:\n\u002BG_M58049_IG47:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M58049_IG51:\n-       cmp      gword ptr [rbp-0xB0], 0\n-       je       SHORT G_M58049_IG53\n-       mov      rsi, gword ptr [rbp-0xB0]\n\u002BG_M58049_IG48:\n\u002B       cmp      gword ptr [rbp-0xA8], 0\n\u002B       je       SHORT G_M58049_IG50\n\u002B       mov      rsi, gword ptr [rbp-0xA8]\n        mov      r13, gword ptr [rsi\u002B0x08]\n        test     r13, r13\n-       je       SHORT G_M58049_IG52\n\u002B       je       SHORT G_M58049_IG49\n        mov      rdi, r13\n        mov      esi, 1\n        mov      rax, qword ptr [r13]\n@@ -580,11 \u002B560,11 @@ G_M58049_IG51:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M58049_IG52:\n-       mov      rsi, gword ptr [rbp-0xB0]\n\u002BG_M58049_IG49:\n\u002B       mov      rsi, gword ptr [rbp-0xA8]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M58049_IG53\n\u002B       je       SHORT G_M58049_IG50\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -594,13 \u002B574,13 @@ G_M58049_IG52:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M58049_IG53:\n\u002BG_M58049_IG50:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M58049_IG54:\n\u002BG_M58049_IG51:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1665, prolog size 66, PerfScore 184.71, instruction count 387, allocated bytes for code 1665 (MethodHash=59ed1d3e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:Aggregate[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n\u002B; Total bytes of code 1580, prolog size 66, PerfScore 175.33, instruction count 373, allocated bytes for code 1580 (MethodHash=59ed1d3e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:Aggregate[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1665,"DiffBytes":1580},{"Assembly":"Nest.dasm","Method":"Nest.ToStringExpressionVisitor:Resolve(System.Linq.Expressions.Expression,bool):System.String:this (FullOpts)","Category":"improvement","Description":"389 -\u003E 337 bytes (-52)","ExtraInfo":null,"Diff":"@@ -1,152 \u002B1,135 @@\n ; Assembly listing for method Nest.ToStringExpressionVisitor:Resolve(System.Linq.Expressions.Expression,bool):System.String:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 2 single block inlinees; 3 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T00] (  6,  5   )     ref  -\u003E  rbx         this class-hnd single-def \u003CNest.ToStringExpressionVisitor\u003E\n ;  V01 arg1         [V01,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.Linq.Expressions.Expression\u003E\n ;  V02 arg2         [V02,T03] (  3,  3   )   ubyte  -\u003E  r15         single-def\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T04] (  4,  4   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Text.StringBuilder\u003E\n-;  V05 tmp2         [V05,T09] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.Stack\u00601[System.String]\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  rcx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00603[System.Text.StringBuilder,System.String,System.Text.StringBuilder]\u003E\n\u002B;  V05 tmp2         [V05,T08] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.Stack\u00601[System.String]\u003E\n\u002B;  V06 tmp3         [V06,T09] (  2,  2   )     ref  -\u003E  rcx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00603[System.Text.StringBuilder,System.String,System.Text.StringBuilder]\u003E\n ;* V07 tmp4         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V08 tmp5         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V09 tmp6         [V09,T07] (  4,  2   )     ref  -\u003E  rcx        \n ;  V10 tmp7         [V10,T01] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00603[System.Text.StringBuilder,System.String,System.Text.StringBuilder]\u003E\n-;  V11 tmp8         [V11,T05] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Stack\u00601[System.String]\u003E\n-;  V12 tmp9         [V12    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V11 tmp8         [V11,T05] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Stack\u00601[System.String]\u003E\n\u002B;  V12 tmp9         [V12    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V13 tmp10        [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V14 tmp11        [V14,T12] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n-;  V15 tmp12        [V15,T08] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n\u002B;  V14 tmp11        [V14,T11] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n\u002B;* V15 tmp12        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n ;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cchar[]\u003E\n-;  V17 tmp14        [V17,T11] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CNest.ToStringExpressionVisitor\u002B\u003C\u003Ec\u003E\n\u002B;  V17 tmp14        [V17,T10] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CNest.ToStringExpressionVisitor\u002B\u003C\u003Ec\u003E\n ;  V18 tmp15        [V18,T06] (  3,  3   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 8\n \n G_M41631_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x20]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x20], rax\n        mov      rbx, rdi\n        mov      r15d, edx\n \t\t\t\t\t\t;; size=24 bbWeight=1 PerfScore 7.25\n G_M41631_IG02:\n        mov      rdi, rbx\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x20]System.Linq.Expressions.ExpressionVisitor:Visit(System.Linq.Expressions.Expression):System.Linq.Expressions.Expression:this\n        test     r15b, r15b\n        jne      G_M41631_IG06\n \t\t\t\t\t\t;; size=22 bbWeight=1 PerfScore 8.50\n G_M41631_IG03:\n        mov      rdi, 0xD1FFAB1E      ; System.Text.StringBuilder\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        mov      rbx, gword ptr [rbx\u002B0x08]\n        mov      dword ptr [r15\u002B0x20], 0xD1FFAB1E\n        mov      rdi, 0xD1FFAB1E      ; char[]\n        mov      esi, 16\n        call     CORINFO_HELP_NEWARR_1_VC\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x08]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, 0xD1FFAB1E      ; data for Nest.ToStringExpressionVisitor\u002B\u003C\u003Ec:\u003C\u003E9__5_0\n        mov      rcx, gword ptr [rdi]\n        test     rcx, rcx\n        jne      SHORT G_M41631_IG04\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00603[System.Text.StringBuilder,System.String,System.Text.StringBuilder]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      rdi, 0xD1FFAB1E      ; const ptr\n        mov      rsi, gword ptr [rdi]\n        lea      rdi, bword ptr [r14\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, 0xD1FFAB1E      ; code for Nest.ToStringExpressionVisitor\u002B\u003C\u003Ec:\u003CResolve\u003Eb__5_0(System.Text.StringBuilder,System.String):System.Text.StringBuilder:this\n        mov      qword ptr [r14\u002B0x18], rdi\n        mov      rdi, 0xD1FFAB1E      ; data for Nest.ToStringExpressionVisitor\u002B\u003C\u003Ec:\u003C\u003E9__5_0\n        mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rcx, r14\n \t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 9.75\n G_M41631_IG04:\n        mov      rsi, rbx\n        mov      rdx, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:Aggregate[System.String,System.Text.StringBuilder](System.Collections.Generic.IEnumerable\u00601[System.String],System.Text.StringBuilder,System.Func\u00603[System.Text.StringBuilder,System.String,System.Text.StringBuilder]):System.Text.StringBuilder\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:Aggregate[System.__Canon,System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.__Canon,System.Func\u00603[System.__Canon,System.__Canon,System.__Canon]):System.__Canon\n        call     [rax]System.Linq.Enumerable:Aggregate[System.__Canon,System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.__Canon,System.Func\u00603[System.__Canon,System.__Canon,System.__Canon]):System.__Canon\n        mov      rdi, rax\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x08]System.Object:ToString():System.String:this\n        nop      \n \t\t\t\t\t\t;; size=42 bbWeight=0.50 PerfScore 5.75\n G_M41631_IG05:\n        add      rsp, 8\n        pop      rbx\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 1.62\n G_M41631_IG06:\n-       mov      rbx, gword ptr [rbx\u002B0x08]\n-       test     rbx, rbx\n-       je       SHORT G_M41631_IG10\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.String]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M41631_IG07\n-       lea      rsi, [rbp-0x20]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M41631_IG08\n-\t\t\t\t\t\t;; size=58 bbWeight=0.50 PerfScore 9.00\n-G_M41631_IG07:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M41631_IG08\n        lea      rdx, [rbp-0x20]\n-       mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.String](System.Collections.Generic.IEnumerable\u00601[System.String],byref):System.String\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M41631_IG08:\n        cmp      byte  ptr [rbp-0x20], 0\n-       je       SHORT G_M41631_IG11\n-\t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 1.00\n-G_M41631_IG09:\n\u002B       je       SHORT G_M41631_IG09\n\u002B\t\t\t\t\t\t;; size=41 bbWeight=0.50 PerfScore 4.62\n\u002BG_M41631_IG07:\n        add      rsp, 8\n        pop      rbx\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 1.62\n-G_M41631_IG10:\n\u002BG_M41631_IG08:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M41631_IG11:\n\u002BG_M41631_IG09:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 389, prolog size 18, PerfScore 46.62, instruction count 95, allocated bytes for code 389 (MethodHash=418b5d60) for method Nest.ToStringExpressionVisitor:Resolve(System.Linq.Expressions.Expression,bool):System.String:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 18, PerfScore 39.12, instruction count 82, allocated bytes for code 337 (MethodHash=418b5d60) for method Nest.ToStringExpressionVisitor:Resolve(System.Linq.Expressions.Expression,bool):System.String:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":389,"DiffBytes":337},{"Assembly":"OpenAI.dasm","Method":"OpenAI.Images.ImageClient:GenerateImageEdit(System.IO.Stream,System.String,System.String,System.IO.Stream,System.String,OpenAI.Images.ImageEditOptions,System.Threading.CancellationToken):System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]:this (FullOpts)","Category":"improvement","Description":"638 -\u003E 586 bytes (-52)","ExtraInfo":null,"Diff":"@@ -11,26 \u002B11,26 @@\n ;  V00 this         [V00,T00] (  5,  5   )     ref  -\u003E  rbx         this class-hnd single-def \u003COpenAI.Images.ImageClient\u003E\n ;  V01 arg1         [V01,T01] (  5,  5   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.IO.Stream\u003E\n ;  V02 arg2         [V02,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.String\u003E\n-;  V03 arg3         [V03,T06] (  4,  4   )     ref  -\u003E  [rbp-0x38]  class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V03 arg3         [V03,T05] (  4,  4   )     ref  -\u003E  [rbp-0x38]  class-hnd single-def \u003CSystem.String\u003E\n ;  V04 arg4         [V04,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CSystem.IO.Stream\u003E\n ;  V05 arg5         [V05,T04] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u003CSystem.String\u003E\n ;  V06 arg6         [V06    ] (  4,  3.50)     ref  -\u003E  [rbp\u002B0x10]  do-not-enreg[X] addr-exposed ld-addr-op class-hnd \u003COpenAI.Images.ImageEditOptions\u003E\n ;* V07 arg7         [V07    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;  V08 loc0         [V08,T09] (  6,  3   )     ref  -\u003E  [rbp-0x40]  class-hnd EH-live spill-single-def \u003COpenAI.MultiPartFormDataBinaryContent\u003E\n-;  V09 loc1         [V09,T11] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u003E\n\u002B;  V09 loc1         [V09,T10] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u003E\n ;* V10 loc2         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u003CSystem.Nullable\u00601[int]\u003E\n-;  V11 loc3         [V11,T13] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]\u003E\n\u002B;  V11 loc3         [V11,T11] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]\u003E\n ;  V12 OutArgs      [V12    ] (  1,  1   )  struct (16) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V13 tmp1         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n ;* V14 tmp2         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003COpenAI.Images.GeneratedImage\u003E\n ;* V15 tmp3         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003COpenAI.Images.ImageEditOptions\u003E\n-;  V16 tmp4         [V16,T15] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V17 tmp5         [V17,T16] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V18 tmp6         [V18,T05] (  4,  7   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Images.GeneratedImageCollection\u003E\n-;  V19 tmp7         [V19    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V20 tmp8         [V20,T12] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003COpenAI.Images.GeneratedImage\u003E\n-;  V21 tmp9         [V21,T10] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[OpenAI.Images.GeneratedImage]\u003E\n-;  V22 tmp10        [V22,T14] (  1,  1   )     ref  -\u003E  [rbp\u002B0x18]  single-def \u0022field V07._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V16 tmp4         [V16,T14] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V17 tmp5         [V17,T15] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V18 tmp6         [V18,T06] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Images.GeneratedImageCollection\u003E\n\u002B;  V19 tmp7         [V19    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V20 tmp8         [V20,T12] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003COpenAI.Images.GeneratedImage\u003E\n\u002B;* V21 tmp9         [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[OpenAI.Images.GeneratedImage]\u003E\n\u002B;  V22 tmp10        [V22,T13] (  1,  1   )     ref  -\u003E  [rbp\u002B0x18]  single-def \u0022field V07._source (fldOffset=0x0)\u0022 P-INDEP\n ;* V23 tmp11        [V23    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V24 tmp12        [V24    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n ;  V25 tmp13        [V25,T07] (  2,  4   )     ref  -\u003E  r15         single-def \u0022argument with side effect\u0022\n@@ -58,7 \u002B58,7 @@ G_M49711_IG01:\n \t\t\t\t\t\t;; size=44 bbWeight=1 PerfScore 10.25\n G_M49711_IG02:\n        test     r15, r15\n-       je       G_M49711_IG12\n\u002B       je       G_M49711_IG09\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; \u0027imageFilename\u0027\n        mov      rcx, 0xD1FFAB1E      ; code for OpenAI.Argument:AssertNotNullOrEmpty(System.String,System.String)\n@@ -68,7 \u002B68,7 @@ G_M49711_IG02:\n        mov      rax, 0xD1FFAB1E      ; code for OpenAI.Argument:AssertNotNullOrEmpty(System.String,System.String)\n        call     [rax]OpenAI.Argument:AssertNotNullOrEmpty(System.String,System.String)\n        test     r13, r13\n-       je       G_M49711_IG13\n\u002B       je       G_M49711_IG10\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027maskFilename\u0027\n        mov      rax, 0xD1FFAB1E      ; code for OpenAI.Argument:AssertNotNullOrEmpty(System.String,System.String)\n@@ -126,53 \u002B126,34 @@ G_M49711_IG05:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for OpenAI.Images.GeneratedImageCollection:op_Explicit(System.ClientModel.ClientResult):OpenAI.Images.GeneratedImageCollection\n        call     [rax]OpenAI.Images.GeneratedImageCollection:op_Explicit(System.ClientModel.ClientResult):OpenAI.Images.GeneratedImageCollection\n-       mov      r15, rax\n-       test     r15, r15\n-       je       SHORT G_M49711_IG09\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[OpenAI.Images.GeneratedImage]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M49711_IG07\n-\t\t\t\t\t\t;; size=115 bbWeight=1 PerfScore 29.00\n-G_M49711_IG06:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M49711_IG08\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M49711_IG07:\n\u002B       je       SHORT G_M49711_IG06\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r15\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[OpenAI.Images.GeneratedImage](System.Collections.Generic.IEnumerable\u00601[OpenAI.Images.GeneratedImage],byref):OpenAI.Images.GeneratedImage\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M49711_IG08:\n-       mov      rdx, gword ptr [rbx\u002B0x08]\n        mov      rsi, rax\n\u002B       mov      rdx, gword ptr [rbx\u002B0x08]\n        mov      rdi, 0xD1FFAB1E      ; System.ClientModel.ClientResult:FromValue[OpenAI.Images.GeneratedImage](OpenAI.Images.GeneratedImage,System.ClientModel.Primitives.PipelineResponse):System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]\n        mov      rax, 0xD1FFAB1E      ; code for System.ClientModel.ClientResult:FromValue[System.__Canon](System.__Canon,System.ClientModel.Primitives.PipelineResponse):System.ClientModel.ClientResult\u00601[System.__Canon]\n        call     [rax]System.ClientModel.ClientResult:FromValue[System.__Canon](System.__Canon,System.ClientModel.Primitives.PipelineResponse):System.ClientModel.ClientResult\u00601[System.__Canon]\n        mov      rbx, rax\n-       jmp      SHORT G_M49711_IG10\n-\t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 8.00\n-G_M49711_IG09:\n\u002B       jmp      SHORT G_M49711_IG07\n\u002B\t\t\t\t\t\t;; size=145 bbWeight=1 PerfScore 36.00\n\u002BG_M49711_IG06:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M49711_IG10:\n\u002BG_M49711_IG07:\n        mov      rdi, gword ptr [rbp-0x40]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=20 bbWeight=1 PerfScore 4.50\n-G_M49711_IG11:\n\u002BG_M49711_IG08:\n        add      rsp, 40\n        pop      rbx\n        pop      r12\n@@ -182,7 \u002B163,7 @@ G_M49711_IG11:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M49711_IG12:\n\u002BG_M49711_IG09:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -194,7 \u002B175,7 @@ G_M49711_IG12:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M49711_IG13:\n\u002BG_M49711_IG10:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -206,23 \u002B187,23 @@ G_M49711_IG13:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M49711_IG14:\n\u002BG_M49711_IG11:\n        sub      rsp, 24\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M49711_IG15:\n\u002BG_M49711_IG12:\n        cmp      gword ptr [rbp-0x40], 0\n-       je       SHORT G_M49711_IG16\n\u002B       je       SHORT G_M49711_IG13\n        mov      rdi, gword ptr [rbp-0x40]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M49711_IG16:\n\u002BG_M49711_IG13:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M49711_IG17:\n\u002BG_M49711_IG14:\n        add      rsp, 24\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 638, prolog size 44, PerfScore 98.38, instruction count 151, allocated bytes for code 638 (MethodHash=64c53dd0) for method OpenAI.Images.ImageClient:GenerateImageEdit(System.IO.Stream,System.String,System.String,System.IO.Stream,System.String,OpenAI.Images.ImageEditOptions,System.Threading.CancellationToken):System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]:this (FullOpts)\n\u002B; Total bytes of code 586, prolog size 44, PerfScore 90.38, instruction count 138, allocated bytes for code 586 (MethodHash=64c53dd0) for method OpenAI.Images.ImageClient:GenerateImageEdit(System.IO.Stream,System.String,System.String,System.IO.Stream,System.String,OpenAI.Images.ImageEditOptions,System.Threading.CancellationToken):System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":638,"DiffBytes":586},{"Assembly":"Pomelo.EntityFrameworkCore.MySql.dasm","Method":"Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitCollate(Microsoft.EntityFrameworkCore.Query.SqlExpressions.CollateExpression):System.Linq.Expressions.Expression:this (FullOpts)","Category":"improvement","Description":"389 -\u003E 197 bytes (-192)","ExtraInfo":null,"Diff":"@@ -1,146 \u002B1,86 @@\n ; Assembly listing for method Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitCollate(Microsoft.EntityFrameworkCore.Query.SqlExpressions.CollateExpression):System.Linq.Expressions.Expression:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 0 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] (  9,  8.50)     ref  -\u003E  rbx         this class-hnd single-def \u003CPomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor\u003E\n-;  V01 arg1         [V01,T02] (  6,  6   )     ref  -\u003E  r15         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.CollateExpression\u003E\n-;  V02 loc0         [V02,T12] (  2,  2   )   ubyte  -\u003E  r14         single-def\n-;  V03 loc1         [V03,T07] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\u003E\n\u002B;  V00 this         [V00,T00] (  7,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CPomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor\u003E\n\u002B;  V01 arg1         [V01,T01] (  6,  6   )     ref  -\u003E  r15         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.CollateExpression\u003E\n\u002B;  V02 loc0         [V02,T07] (  2,  2   )   ubyte  -\u003E  r14         single-def\n\u002B;  V03 loc1         [V03,T06] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V05 tmp1         [V05,T14] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;* V06 tmp2         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V07 tmp3         [V07,T01] (  8,  9   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.CollateExpression\u003E\n-;  V08 tmp4         [V08,T05] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Boolean\u003E\n-;  V09 tmp5         [V09,T08] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u0022impImportAndPushBox\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.ISqlExpressionFactory\u003E\n-;  V10 tmp6         [V10,T09] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022impImportAndPushBox\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.ISqlExpressionFactory\u003E\n-;  V11 tmp7         [V11,T03] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V12 tmp8         [V12,T04] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V13 tmp9         [V13,T10] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V14 tmp10        [V14,T11] (  2,  2   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V15 cse0         [V15,T13] (  3,  1.50)     ref  -\u003E  rdi         \u0022CSE #04: moderate\u0022\n-;  V16 cse1         [V16,T06] (  3,  3   )    long  -\u003E  r13         \u0022CSE #02: aggressive\u0022\n\u002B;  V05 tmp1         [V05,T08] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;* V06 tmp2         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.CollateExpression\u003E\n\u002B;  V07 tmp3         [V07,T02] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.CollateExpression\u003E\n\u002B;  V08 tmp4         [V08,T03] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V09 tmp5         [V09,T04] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V10 cse0         [V10,T05] (  3,  3   )    long  -\u003E  r13         \u0022CSE #02: aggressive\u0022\n ;\n ; Lcl frame size = 0\n \n G_M26479_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     rbx\n        lea      rbp, [rsp\u002B0x20]\n        mov      rbx, rdi\n        mov      r15, rsi\n \t\t\t\t\t\t;; size=19 bbWeight=1 PerfScore 6.00\n G_M26479_IG02:\n        test     r15, r15\n-       je       G_M26479_IG08\n\u002B       je       SHORT G_M26479_IG04\n        movzx    r14, byte  ptr [rbx\u002B0x10]\n        mov      byte  ptr [rbx\u002B0x10], 0\n        mov      rdi, r15\n        mov      r13, qword ptr [r15]\n        mov      rax, qword ptr [r13\u002B0x48]\n        call     [rax\u002B0x30]Microsoft.EntityFrameworkCore.Query.SqlExpressions.CollateExpression:get_Operand():Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n        mov      rsi, rax\n        mov      rdi, rbx\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x20]System.Linq.Expressions.ExpressionVisitor:Visit(System.Linq.Expressions.Expression):System.Linq.Expressions.Expression:this\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rax]CORINFO_HELP_CHKCASTCLASS\n        mov      rsi, rax\n        mov      byte  ptr [rbx\u002B0x10], r14b\n        mov      rdi, r15\n        mov      rax, qword ptr [r13\u002B0x50]\n        call     [rax]Microsoft.EntityFrameworkCore.Query.SqlExpressions.CollateExpression:Update(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression):Microsoft.EntityFrameworkCore.Query.SqlExpressions.CollateExpression:this\n-       mov      r15, rax\n-       cmp      byte  ptr [rbx\u002B0x10], 0\n-       je       SHORT G_M26479_IG04\n-\t\t\t\t\t\t;; size=97 bbWeight=1 PerfScore 32.50\n\u002B       nop      \n\u002B\t\t\t\t\t\t;; size=85 bbWeight=1 PerfScore 29.50\n G_M26479_IG03:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Microsoft.EntityFrameworkCore.Query.SqlExpressions.ColumnExpression\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M26479_IG04\n-       mov      rdi, r15\n-       mov      rax, qword ptr [r15]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-       call     [rax\u002B0x10]Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:get_TypeMapping():Microsoft.EntityFrameworkCore.Storage.RelationalTypeMapping:this\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; Pomelo.EntityFrameworkCore.MySql.Storage.Internal.MySqlBoolTypeMapping\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M26479_IG04\n-       mov      rdi, r15\n-       mov      rax, qword ptr [r15]\n-       mov      rax, qword ptr [rax\u002B0x40]\n-       call     [rax\u002B0x28]System.Linq.Expressions.Expression:get_Type():System.Type:this\n-       mov      rdi, 0xD1FFAB1E      ; \u0027System.Boolean\u0027\n-       cmp      rax, rdi\n-       je       SHORT G_M26479_IG06\n-\t\t\t\t\t\t;; size=101 bbWeight=0.50 PerfScore 13.00\n-G_M26479_IG04:\n-       mov      rax, r15\n-\t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M26479_IG05:\n        pop      rbx\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 1.75\n-G_M26479_IG06:\n-       mov      rdi, 0xD1FFAB1E      ; System.Boolean\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      rdi, gword ptr [rbx\u002B0x08]\n-       mov      rbx, rdi\n-       mov      byte  ptr [rax\u002B0x08], 1\n-       mov      rsi, rax\n-       mov      r11, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Constant(System.Object,Microsoft.EntityFrameworkCore.Storage.RelationalTypeMapping):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-       xor      rdx, rdx\n-       call     [r11]Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Constant(System.Object,Microsoft.EntityFrameworkCore.Storage.RelationalTypeMapping):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-       mov      rdx, rax\n-       mov      rdi, rbx\n-       mov      rsi, r15\n-       mov      r11, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Equal(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-       cmp      dword ptr [rdi], edi\n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 5.62\n-G_M26479_IG07:\n-       pop      rbx\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [r11]Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Equal(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-\t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 2.25\n-G_M26479_IG08:\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.50\n\u002BG_M26479_IG04:\n        mov      rdi, 0xD1FFAB1E      ; \u0027collateExpression\u0027\n        mov      rsi, 0xD1FFAB1E      ; \u0027parameterName\u0027\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Utilities.Check:NotEmpty(System.String,System.String):System.String\n        call     [rax]Microsoft.EntityFrameworkCore.Utilities.Check:NotEmpty(System.String,System.String):System.String\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; \u0027collateExpression\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:.ctor(System.String):this\n        call     [rax]System.ArgumentNullException:.ctor(System.String):this\n        mov      rdi, rbx\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=84 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 389, prolog size 13, PerfScore 61.25, instruction count 97, allocated bytes for code 389 (MethodHash=cf129890) for method Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitCollate(Microsoft.EntityFrameworkCore.Query.SqlExpressions.CollateExpression):System.Linq.Expressions.Expression:this (FullOpts)\n\u002B; Total bytes of code 197, prolog size 13, PerfScore 39.00, instruction count 51, allocated bytes for code 197 (MethodHash=cf129890) for method Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitCollate(Microsoft.EntityFrameworkCore.Query.SqlExpressions.CollateExpression):System.Linq.Expressions.Expression:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":389,"DiffBytes":197},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.PricingPlans.VersionService:ListAutoPaging(System.String,Stripe.V2.Billing.PricingPlans.VersionListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.PricingPlanVersion]:this (FullOpts)","Category":"improvement","Description":"513 -\u003E 464 bytes (-49)","ExtraInfo":null,"Diff":"@@ -9,33 \u002B9,32 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T05] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.PricingPlans.VersionService\u003E\n-;  V01 arg1         [V01,T08] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.PricingPlans.VersionListOptions\u003E\n-;  V03 arg3         [V03,T07] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T07] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V02 arg2         [V02,T08] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.PricingPlans.VersionListOptions\u003E\n\u002B;  V03 arg3         [V03,T06] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T11] (  3,  2   )     ref  -\u003E  r15         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.PricingPlanVersion]\u003E\n ;  V06 tmp2         [V06,T02] (  4,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V07 tmp3         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V08 tmp4         [V08,T12] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;  V09 tmp5         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.PricingPlanVersion]\u003E\n-;* V10 tmp6         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp8         [V12,T03] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.PricingPlanVersion]\u003E\n-;  V13 tmp9         [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.PricingPlanVersion]\u003E\n-;* V14 tmp10        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp11        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp12        [V16,T04] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.PricingPlanVersion]\u003E\n-;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V07._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp14        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp15        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp16        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp17        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 tmp18        [V22,T09] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V23 cse0         [V23,T10] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #02: moderate\u0022\n-;  V24 rat0         [V24,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T15] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T16] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.PricingPlanVersion]\u003E\n\u002B;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp6         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp7         [V11,T03] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.PricingPlanVersion]\u003E\n\u002B;  V12 tmp8         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.PricingPlanVersion]\u003E\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp11        [V15,T04] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.PricingPlanVersion]\u003E\n\u002B;* V16 tmp12        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V07._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp14        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp15        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp16        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 tmp17        [V21,T09] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V22 cse0         [V22,T10] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #02: moderate\u0022\n\u002B;  V23 rat0         [V23,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T15] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n@@ -49,8 \u002B48,8 @@ G_M43725_IG01:\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rdx\n-       mov      r14, rcx\n\u002B       mov      r14, rdx\n\u002B       mov      r15, rcx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M43725_IG02:\n        mov      rdi, rsi\n@@ -69,49 \u002B68,41 @@ G_M43725_IG02:\n        je       G_M43725_IG04\n \t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 12.50\n G_M43725_IG03:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.PricingPlanVersion]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n-       mov      eax, dword ptr [rax\u002B0x10]\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, dword ptr [rax\u002B0x10]\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x28]\n\u002B       lea      rdi, bword ptr [r14\u002B0x28]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.PricingPlanVersion]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        mov      dword ptr [r15\u002B0x28], -2\n-       mov      r14d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r15\u002B0x2C], r14d\n\u002B       mov      dword ptr [r15\u002B0x2C], r12d\n        lea      rdi, bword ptr [r15\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M43725_IG05\n-\t\t\t\t\t\t;; size=212 bbWeight=0.50 PerfScore 16.00\n\u002B\t\t\t\t\t\t;; size=164 bbWeight=0.50 PerfScore 12.75\n G_M43725_IG04:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.PricingPlanVersion]\n        call     CORINFO_HELP_NEWSFAST\n@@ -134,10 \u002B125,10 @@ G_M43725_IG04:\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n@@ -145,12 \u002B136,12 @@ G_M43725_IG04:\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        mov      dword ptr [r15\u002B0x28], -2\n-       mov      r14d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r15\u002B0x2C], r14d\n\u002B       mov      ebx, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r15\u002B0x2C], ebx\n        lea      rdi, bword ptr [r15\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=181 bbWeight=0.50 PerfScore 13.12\n\u002B\t\t\t\t\t\t;; size=180 bbWeight=0.50 PerfScore 13.12\n G_M43725_IG05:\n        mov      rax, r15\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n@@ -165,5 \u002B156,5 @@ G_M43725_IG06:\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 513, prolog size 16, PerfScore 54.38, instruction count 113, allocated bytes for code 513 (MethodHash=12485532) for method Stripe.V2.Billing.PricingPlans.VersionService:ListAutoPaging(System.String,Stripe.V2.Billing.PricingPlans.VersionListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.PricingPlanVersion]:this (FullOpts)\n\u002B; Total bytes of code 464, prolog size 16, PerfScore 51.12, instruction count 105, allocated bytes for code 464 (MethodHash=12485532) for method Stripe.V2.Billing.PricingPlans.VersionService:ListAutoPaging(System.String,Stripe.V2.Billing.PricingPlans.VersionListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.PricingPlanVersion]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":513,"DiffBytes":464},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.DistributedReaderWriterLockProviderExtensions:TryAcquireAllReadLocks(Medallion.Threading.IDistributedReaderWriterLockProvider,System.Collections.Generic.IReadOnlyList\u00601[System.String],System.TimeSpan,System.Threading.CancellationToken):Medallion.Threading.IDistributedSynchronizationHandle (FullOpts)","Category":"same-size","Description":"708 -\u003E 708 bytes (0)","ExtraInfo":null,"Diff":"@@ -109,7 \u002B109,7 @@ G_M38719_IG04:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        movzx    rsi, byte  ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], esi\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 6.75\n@@ -269,7 \u002B269,7 @@ G_M38719_IG23:\n        sub      rsp, 40\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n G_M38719_IG24:\n-       mov      edi, 70\n\u002B       mov      edi, 68\n        call     CORINFO_HELP_GETDYNAMIC_NONGCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED2\n        mov      rbx, rax\n        mov      eax, dword ptr [rbp-0x2C]","Truncated":true,"BaseBytes":708,"DiffBytes":708},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.ModelConfiguration.Configuration.ModificationStoredProcedureConfiguration:ConfigureParameters(System.Data.Entity.Core.Mapping.ModificationFunctionMapping):this (FullOpts)","Category":"improvement","Description":"2,768 -\u003E 2,649 bytes (-119)","ExtraInfo":null,"Diff":"@@ -10,12 \u002B10,12 @@\n ;\n ;  V00 this         [V00,T22] (  7, 10   )     ref  -\u003E  r15         this class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Configuration.ModificationStoredProcedureConfiguration\u003E\n ;  V01 arg1         [V01,T20] (  7, 11   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ModificationFunctionMapping\u003E\n-;  V02 loc0         [V02    ] (  8, 21   )  struct (40) [rbp-0x50]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Collections.Generic.Dictionary\u00602\u002BEnumerator[System.Data.Entity.ModelConfiguration.Configuration.ModificationStoredProcedureConfiguration\u002BParameterKey,System.Tuple\u00602[System.String,System.String]]\u003E\n\u002B;  V02 loc0         [V02    ] (  9, 18   )  struct (40) [rbp-0x50]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Collections.Generic.Dictionary\u00602\u002BEnumerator[System.Data.Entity.ModelConfiguration.Configuration.ModificationStoredProcedureConfiguration\u002BParameterKey,System.Tuple\u00602[System.String,System.String]]\u003E\n ;* V03 loc1         [V03    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.KeyValuePair\u00602[System.Data.Entity.ModelConfiguration.Configuration.ModificationStoredProcedureConfiguration\u002BParameterKey,System.Tuple\u00602[System.String,System.String]]\u003E\n ;  V04 loc2         [V04,T23] (  5, 12   )     ref  -\u003E  r12         class-hnd exact \u003CSystem.Data.Entity.ModelConfiguration.Configuration.ModificationStoredProcedureConfiguration\u002B\u003C\u003Ec__DisplayClass30_0\u003E\n ;  V05 loc3         [V05,T24] (  5, 12   )     ref  -\u003E  [rbp-0xB0]  class-hnd exact spill-single-def \u003CSystem.String\u003E\n ;  V06 loc4         [V06,T25] (  5, 12   )     ref  -\u003E  r13         class-hnd exact \u003CSystem.String\u003E\n-;  V07 loc5         [V07,T02] ( 12, 28   )     ref  -\u003E  [rbp-0xB8]  class-hnd \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]\u003E\n\u002B;  V07 loc5         [V07,T05] ( 10, 24   )     ref  -\u003E  [rbp-0xB8]  class-hnd spill-single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]\u003E\n ;* V08 loc6         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CSystem.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding\u003E\n ;* V09 loc7         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding\u003E\n ;  V10 loc8         [V10,T21] (  6, 13   )     ref  -\u003E  [rbp-0xC0]  class-hnd EH-live single-def \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n@@ -25,107 \u002B25,107 @@\n ;  V14 tmp2         [V14,T01] (  4, 32   )     ref  -\u003E  [rbp-0xC8]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,bool]\u003E\n ;  V15 tmp3         [V15,T17] (  2, 16   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]\u003E\n ;* V16 tmp4         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Utilities.PropertyPath\u003E\n-;  V17 tmp5         [V17,T46] (  2,  8   )     ref  -\u003E  rdx         class-hnd \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,bool]\u003E\n\u002B;  V17 tmp5         [V17,T44] (  2,  8   )     ref  -\u003E  rdx         class-hnd \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,bool]\u003E\n ;* V18 tmp6         [V18    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;  V19 tmp7         [V19,T36] (  4,  8   )     ref  -\u003E  rdx        \n-;  V20 tmp8         [V20,T47] (  2,  8   )     ref  -\u003E  rdx         class-hnd \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,bool]\u003E\n\u002B;  V20 tmp8         [V20,T45] (  2,  8   )     ref  -\u003E  rdx         class-hnd \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,bool]\u003E\n ;* V21 tmp9         [V21    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;  V22 tmp10        [V22,T37] (  4,  8   )     ref  -\u003E  rdx        \n ;  V23 tmp11        [V23,T33] (  5, 10   )     ref  -\u003E  r14        \n-;  V24 tmp12        [V24,T03] (  7, 28   )     ref  -\u003E  rdi         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V25 tmp13        [V25,T48] (  2,  8   )     ref  -\u003E  rdx         class-hnd \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,bool]\u003E\n\u002B;  V24 tmp12        [V24,T02] (  7, 28   )     ref  -\u003E  rdi         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V25 tmp13        [V25,T46] (  2,  8   )     ref  -\u003E  rdx         class-hnd \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,bool]\u003E\n ;* V26 tmp14        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;  V27 tmp15        [V27,T38] (  4,  8   )     ref  -\u003E  rdx        \n-;  V28 tmp16        [V28,T04] (  7, 28   )     ref  -\u003E  rdi         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V29 tmp17        [V29,T09] (  5, 20   )     ref  -\u003E  r12         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,bool]\u003E\n\u002B;  V28 tmp16        [V28,T03] (  7, 28   )     ref  -\u003E  rdi         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V29 tmp17        [V29,T09] (  5, 20   )     ref  -\u003E  r14         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,bool]\u003E\n ;  V30 tmp18        [V30,T10] (  5, 20   )     ref  -\u003E  r14         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,bool]\u003E\n-;  V31 tmp19        [V31,T49] (  2,  8   )     ref  -\u003E  rdx         class-hnd \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,bool]\u003E\n\u002B;  V31 tmp19        [V31,T47] (  2,  8   )     ref  -\u003E  rdx         class-hnd \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,bool]\u003E\n ;* V32 tmp20        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;  V33 tmp21        [V33,T39] (  4,  8   )     ref  -\u003E  rdx        \n ;  V34 tmp22        [V34,T11] (  5, 20   )     ref  -\u003E  r12         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,bool]\u003E\n ;  V35 tmp23        [V35,T12] (  5, 20   )     ref  -\u003E  r12         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,bool]\u003E\n-;  V36 tmp24        [V36,T05] (  7, 28   )     ref  -\u003E  rdi         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V36 tmp24        [V36,T04] (  7, 28   )     ref  -\u003E  rdi         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n ;* V37 tmp25        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Utilities.PropertyPath\u003E\n ;  V38 tmp26        [V38,T06] (  3, 24   )     ref  -\u003E  r13         class-hnd exact \u0022NewArr temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter[]\u003E\n ;  V39 tmp27        [V39,T07] (  3, 24   )     ref  -\u003E  r14         class-hnd \u0022impSpillLclRefs\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n ;* V40 tmp28        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.Linq.Enumerable\u002B\u003CExceptIterator\u003Ed__88\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V41 tmp29        [V41,T56] (  3,  6   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.ModelConfiguration.Configuration.ModificationStoredProcedureConfiguration\u002BParameterKey,System.Tuple\u00602[System.String,System.String]]\u003E\n-;  V42 tmp30        [V42,T71] (  1,  2   )  struct (40) [rbp-0x78]  do-not-enreg[SF] must-init ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602\u002BEnumerator[System.Data.Entity.ModelConfiguration.Configuration.ModificationStoredProcedureConfiguration\u002BParameterKey,System.Tuple\u00602[System.String,System.String]]\u003E\n\u002B;  V41 tmp29        [V41,T54] (  3,  6   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.ModelConfiguration.Configuration.ModificationStoredProcedureConfiguration\u002BParameterKey,System.Tuple\u00602[System.String,System.String]]\u003E\n... diff truncated; middle omitted ...\n\u002BG_M49439_IG28:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.FunctionParameter:SetName(System.String):this\n        call     [rax]System.Data.Entity.Core.Metadata.Edm.FunctionParameter:SetName(System.String):this\n-       jmp      G_M49439_IG30\n\u002B       jmp      G_M49439_IG26\n \t\t\t\t\t\t;; size=23 bbWeight=4 PerfScore 23.00\n-G_M49439_IG33:\n\u002BG_M49439_IG29:\n        mov      edi, 4\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M49439_IG34:\n\u002BG_M49439_IG30:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -648,13 \u002B615,13 @@ G_M49439_IG34:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=67 bbWeight=0 PerfScore 0.00\n-G_M49439_IG35:\n\u002BG_M49439_IG31:\n        mov      rdi, gword ptr [rbp-0xC0]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        nop      \n \t\t\t\t\t\t;; size=21 bbWeight=1 PerfScore 4.50\n-G_M49439_IG36:\n\u002BG_M49439_IG32:\n        vzeroupper \n        add      rsp, 184\n        pop      rbx\n@@ -665,18 \u002B632,18 @@ G_M49439_IG36:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=21 bbWeight=1 PerfScore 5.25\n-G_M49439_IG37:\n\u002BG_M49439_IG33:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[bool]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M49439_IG12\n\u002B       jmp      G_M49439_IG10\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M49439_IG38:\n\u002BG_M49439_IG34:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M49439_IG39:\n\u002BG_M49439_IG35:\n        mov      r15, gword ptr [r12\u002B0x08]\n        mov      rdi, gword ptr [rbx\u002B0x20]\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.EdmFunction:get_FunctionName():System.String:this\n@@ -690,6 \u002B657,47 @@ G_M49439_IG39:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n\u002BG_M49439_IG36:\n\u002B       mov      rdi, 0xD1FFAB1E      ; System.ArgumentException\n\u002B       call     CORINFO_HELP_NEWSFAST\n\u002B       mov      rbx, rax\n\u002B       mov      rdi, 0xD1FFAB1E      ; \u0027value\u0027\n\u002B       mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Resources.Strings:ArgumentIsNullOrWhitespace(System.Object):System.String\n\u002B       call     [rax]System.Data.Entity.Resources.Strings:ArgumentIsNullOrWhitespace(System.Object):System.String\n\u002B       mov      rsi, rax\n\u002B       mov      rdi, rbx\n\u002B       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentException:.ctor(System.String):this\n\u002B       call     [rax]System.ArgumentException:.ctor(System.String):this\n\u002B       mov      rdi, rbx\n\u002B       call     CORINFO_HELP_THROW\n\u002B       int3     \n\u002B\t\t\t\t\t\t;; size=67 bbWeight=0 PerfScore 0.00\n\u002BG_M49439_IG37:\n\u002B       mov      edi, 17\n\u002B       mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n\u002B       call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n\u002B       int3     \n\u002B\t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n\u002BG_M49439_IG38:\n\u002B       mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoMatchException()\n\u002B       call     [rax]System.Linq.ThrowHelper:ThrowNoMatchException()\n\u002B       int3     \n\u002B\t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n\u002BG_M49439_IG39:\n\u002B       mov      rdi, 0xD1FFAB1E      ; System.ArgumentException\n\u002B       call     CORINFO_HELP_NEWSFAST\n\u002B       mov      r15, rax\n\u002B       mov      rdi, 0xD1FFAB1E      ; \u0027value\u0027\n\u002B       mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Resources.Strings:ArgumentIsNullOrWhitespace(System.Object):System.String\n\u002B       call     [rax]System.Data.Entity.Resources.Strings:ArgumentIsNullOrWhitespace(System.Object):System.String\n\u002B       mov      rsi, rax\n\u002B       mov      rdi, r15\n\u002B       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentException:.ctor(System.String):this\n\u002B       call     [rax]System.ArgumentException:.ctor(System.String):this\n\u002B       mov      rdi, r15\n\u002B       call     CORINFO_HELP_THROW\n\u002B       int3     \n\u002B\t\t\t\t\t\t;; size=67 bbWeight=0 PerfScore 0.00\n G_M49439_IG40:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentException\n        call     CORINFO_HELP_NEWSFAST\n@@ -706,47 \u002B714,6 @@ G_M49439_IG40:\n        int3     \n \t\t\t\t\t\t;; size=67 bbWeight=0 PerfScore 0.00\n G_M49439_IG41:\n-       mov      edi, 17\n-       mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n-       call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n-       int3     \n-\t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M49439_IG42:\n-       mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoMatchException()\n-       call     [rax]System.Linq.ThrowHelper:ThrowNoMatchException()\n-       int3     \n-\t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M49439_IG43:\n-       mov      rdi, 0xD1FFAB1E      ; System.ArgumentException\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r15, rax\n-       mov      rdi, 0xD1FFAB1E      ; \u0027value\u0027\n-       mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Resources.Strings:ArgumentIsNullOrWhitespace(System.Object):System.String\n-       call     [rax]System.Data.Entity.Resources.Strings:ArgumentIsNullOrWhitespace(System.Object):System.String\n-       mov      rsi, rax\n-       mov      rdi, r15\n-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentException:.ctor(System.String):this\n-       call     [rax]System.ArgumentException:.ctor(System.String):this\n-       mov      rdi, r15\n-       call     CORINFO_HELP_THROW\n-       int3     \n-\t\t\t\t\t\t;; size=67 bbWeight=0 PerfScore 0.00\n-G_M49439_IG44:\n-       mov      rdi, 0xD1FFAB1E      ; System.ArgumentException\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      rbx, rax\n-       mov      rdi, 0xD1FFAB1E      ; \u0027value\u0027\n-       mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Resources.Strings:ArgumentIsNullOrWhitespace(System.Object):System.String\n-       call     [rax]System.Data.Entity.Resources.Strings:ArgumentIsNullOrWhitespace(System.Object):System.String\n-       mov      rsi, rax\n-       mov      rdi, rbx\n-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentException:.ctor(System.String):this\n-       call     [rax]System.ArgumentException:.ctor(System.String):this\n-       mov      rdi, rbx\n-       call     CORINFO_HELP_THROW\n-       int3     \n-\t\t\t\t\t\t;; size=67 bbWeight=0 PerfScore 0.00\n-G_M49439_IG45:\n        mov      r12, gword ptr [r12\u002B0x08]\n        mov      rdi, gword ptr [rbx\u002B0x20]\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.EdmFunction:get_FunctionName():System.String:this\n@@ -760,36 \u002B727,36 @@ G_M49439_IG45:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M49439_IG46:\n\u002BG_M49439_IG42:\n        mov      edi, 4\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M49439_IG47:\n\u002BG_M49439_IG43:\n        mov      edi, 14\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M49439_IG48:\n\u002BG_M49439_IG44:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M49439_IG49:\n\u002BG_M49439_IG45:\n        cmp      gword ptr [rbp-0xC0], 0\n-       je       SHORT G_M49439_IG50\n\u002B       je       SHORT G_M49439_IG46\n        mov      rdi, gword ptr [rbp-0xC0]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=30 bbWeight=0 PerfScore 0.00\n-G_M49439_IG50:\n\u002BG_M49439_IG46:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M49439_IG51:\n\u002BG_M49439_IG47:\n        vzeroupper \n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=8 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 2768, prolog size 62, PerfScore 1058.58, instruction count 559, allocated bytes for code 2768 (MethodHash=dbab3ee0) for method System.Data.Entity.ModelConfiguration.Configuration.ModificationStoredProcedureConfiguration:ConfigureParameters(System.Data.Entity.Core.Mapping.ModificationFunctionMapping):this (FullOpts)\n\u002B; Total bytes of code 2649, prolog size 62, PerfScore 974.83, instruction count 534, allocated bytes for code 2649 (MethodHash=dbab3ee0) for method System.Data.Entity.ModelConfiguration.Configuration.ModificationStoredProcedureConfiguration:ConfigureParameters(System.Data.Entity.Core.Mapping.ModificationFunctionMapping):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":2768,"DiffBytes":2649},{"Assembly":"MathNet.Numerics.dasm","Method":"MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:SameAs[short](MathNet.Numerics.LinearAlgebra.Matrix\u00601[short],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this (FullOpts)","Category":"improvement","Description":"594 -\u003E 120 bytes (-474)","ExtraInfo":null,"Diff":"@@ -1,214 \u002B1,65 @@\n ; Assembly listing for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:SameAs[short](MathNet.Numerics.LinearAlgebra.Matrix\u00601[short],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n-; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data\n\u002B; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 12,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]\u003E\n-;  V01 arg1         [V01,T03] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[short]\u003E\n-;  V02 arg2         [V02,T01] ( 11,  6.50)     int  -\u003E  r15         single-def\n-;  V03 arg3         [V03,T02] ( 11,  6.50)     int  -\u003E  r14         single-def\n-;  V04 arg4         [V04,T04] (  3,  2.50)   ubyte  -\u003E  r13         single-def\n-;  V05 loc0         [V05,T08] (  4,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]\u003E\n\u002B;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]\u003E\n\u002B;  V01 arg1         [V01,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[short]\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  4   )     int  -\u003E  r15         single-def\n\u002B;  V03 arg3         [V03,T04] (  4,  4   )     int  -\u003E  r14         single-def\n\u002B;* V04 arg4         [V04    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def\n\u002B;* V05 loc0         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]\u003E\n\u002B;  V07 tmp1         [V07,T00] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cbyte[]\u003E\n-;  V09 tmp3         [V09,T06] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[byte]\u003E\n-;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cbyte[]\u003E\n-;  V11 tmp5         [V11,T11] (  2,  1   )     int  -\u003E  rsi         \u0022Inline return value spill temp\u0022\n-;  V12 tmp6         [V12,T09] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]\u003E\n-;  V13 tmp7         [V13,T10] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]\u003E\n-;  V14 tmp8         [V14,T07] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]\u003E\n-;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cbyte[]\u003E\n-;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022Single return block return value\u0022\n ;\n ; Lcl frame size = 8\n \n G_M52284_IG01:\n-       push     rbp\n        push     r15\n        push     r14\n        push     r13\n-       push     r12\n        push     rbx\n        push     rax\n-       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n        mov      r15d, edx\n        mov      r14d, ecx\n-       mov      r13d, r8d\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.75\n G_M52284_IG02:\n-       mov      r12, gword ptr [rsi\u002B0x08]\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M52284_IG11\n-\t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 7.00\n-G_M52284_IG03:\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[byte]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M52284_IG07\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      SHORT G_M52284_IG05\n\u002B       cmp      byte  ptr [rsi], sil\n        mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        mov      rdi, r13\n        mov      esi, r15d\n        mov      edx, r14d\n        mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]:.ctor(int,int):this\n        call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]:.ctor(int,int):this\n        imul     r15d, r14d\n        movsxd   rsi, r15d\n        mov      rdi, 0xD1FFAB1E      ; byte[]\n        call     CORINFO_HELP_NEWARR_1_VC\n        mov      rsi, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, rbx\n        mov      rsi, r13\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=150 bbWeight=0.50 PerfScore 12.62\n-G_M52284_IG04:\n\u002B\t\t\t\t\t\t;; size=89 bbWeight=1 PerfScore 17.25\n\u002BG_M52284_IG03:\n        add      rsp, 8\n        pop      rbx\n-       pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n-       pop      rbp\n        tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M52284_IG05:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 5.00\n-G_M52284_IG06:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M52284_IG07:\n-       test     r13b, r13b\n-       je       SHORT G_M52284_IG09\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 5.62\n-G_M52284_IG08:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[byte]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M52284_IG09:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[byte]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]:.ctor(int,int):this\n-       cmp      r15d, r14d\n-       mov      esi, r14d\n-       cmovle   esi, r15d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; byte[]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 7.12\n-G_M52284_IG10:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x10]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:Diagonal(MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[byte]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M52284_IG11:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]:.ctor(int,int):this\n-       mov      esi, r15d\n-       imul     esi, r14d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; byte[]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=89 bbWeight=0.50 PerfScore 7.75\n-G_M52284_IG12:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[byte]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n\u002B\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 594, prolog size 16, PerfScore 66.75, instruction count 157, allocated bytes for code 594 (MethodHash=b4c033c3) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:SameAs[short](MathNet.Numerics.LinearAlgebra.Matrix\u00601[short],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this (FullOpts)\n\u002B; Total bytes of code 120, prolog size 8, PerfScore 27.25, instruction count 34, allocated bytes for code 120 (MethodHash=b4c033c3) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[byte]:SameAs[short](MathNet.Numerics.LinearAlgebra.Matrix\u00601[short],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":594,"DiffBytes":120},{"Assembly":"Microsoft.AspNetCore.OData.dasm","Method":"Microsoft.AspNetCore.OData.Query.Expressions.ExpressionBinderBase:CollectContainerAssignments(System.Linq.Expressions.Expression,System.Linq.Expressions.MethodCallExpression,System.Collections.Generic.Dictionary\u00602[System.String,System.Linq.Expressions.Expression]) (FullOpts)","Category":"improvement","Description":"345 -\u003E 292 bytes (-53)","ExtraInfo":null,"Diff":"@@ -1,128 \u002B1,107 @@\n ; Assembly listing for method Microsoft.AspNetCore.OData.Query.Expressions.ExpressionBinderBase:CollectContainerAssignments(System.Linq.Expressions.Expression,System.Linq.Expressions.MethodCallExpression,System.Collections.Generic.Dictionary\u00602[System.String,System.Linq.Expressions.Expression]) (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 3 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T02] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;  V00 arg0         [V00,T01] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Linq.Expressions.Expression\u003E\n ;  V01 arg1         [V01,T00] (  5,  5   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n-;  V02 arg2         [V02,T03] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Linq.Expressions.Expression]\u003E\n\u002B;  V02 arg2         [V02,T02] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Linq.Expressions.Expression]\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T04] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Linq.Expressions.MemberExpression\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Linq.Expressions.MemberExpression\u003E\n-;  V06 tmp3         [V06,T01] (  4,  7   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V07 tmp4         [V07    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V08 tmp5         [V08,T10] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V09 tmp6         [V09,T09] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V06 tmp3         [V06,T03] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V07 tmp4         [V07    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V08 tmp5         [V08,T09] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n ;  V10 tmp7         [V10,T05] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V11 tmp8         [V11,T06] (  2,  4   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n ;  V12 tmp9         [V12,T07] (  2,  4   )     ref  -\u003E  r15         single-def \u0022argument with side effect\u0022\n ;  V13 tmp10        [V13,T08] (  2,  4   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n ;\n-; Lcl frame size = 8\n\u002B; Lcl frame size = 16\n \n G_M4095_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n-       push     r12\n        push     rbx\n-       push     rax\n\u002B       sub      rsp, 16\n        lea      rbp, [rsp\u002B0x30]\n        xor      eax, eax\n-       mov      qword ptr [rbp-0x30], rax\n\u002B       mov      qword ptr [rbp-0x28], rax\n        mov      r15, rdi\n        mov      rbx, rsi\n        mov      r14, rdx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 9.50\n\u002B\t\t\t\t\t\t;; size=32 bbWeight=1 PerfScore 7.75\n G_M4095_IG02:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; \u0027GroupByContainer\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Expressions.Expression:Property(System.Linq.Expressions.Expression,System.String):System.Linq.Expressions.MemberExpression\n        call     [rax]System.Linq.Expressions.Expression:Property(System.Linq.Expressions.Expression,System.String):System.Linq.Expressions.MemberExpression\n        mov      r13, rax\n        mov      rdi, rbx\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x20]System.Linq.Expressions.MethodCallExpression:GetOrMakeArguments():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]:this\n-       mov      r12, rax\n-       test     r12, r12\n-       je       G_M4095_IG07\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M4095_IG04\n-\t\t\t\t\t\t;; size=83 bbWeight=1 PerfScore 17.75\n-G_M4095_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M4095_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M4095_IG04:\n-       lea      rdx, [rbp-0x30]\n-       mov      rsi, r12\n\u002B       je       G_M4095_IG04\n\u002B       lea      rdx, [rbp-0x28]\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Linq.Expressions.Expression](System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.Expression],byref):System.Linq.Expressions.Expression\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M4095_IG05:\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Expressions.MethodCallExpression\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        mov      rdi, rax\n        mov      rsi, 0xD1FFAB1E      ; \u0027GroupByContainer\u0027\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.AspNetCore.OData.Query.Expressions.ExpressionBinderBase:ExtractContainerExpression(System.Linq.Expressions.MethodCallExpression,System.String):System.Linq.Expressions.MemberInitExpression\n        call     [rax]Microsoft.AspNetCore.OData.Query.Expressions.ExpressionBinderBase:ExtractContainerExpression(System.Linq.Expressions.MethodCallExpression,System.String):System.Linq.Expressions.MemberInitExpression\n        mov      rdx, rax\n        mov      rsi, r13\n        mov      rdi, r14\n        xor      rcx, rcx\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.AspNetCore.OData.Query.Expressions.ExpressionBinderBase:CollectAssignments(System.Collections.Generic.IDictionary\u00602[System.String,System.Linq.Expressions.Expression],System.Linq.Expressions.Expression,System.Linq.Expressions.MemberInitExpression,System.String)\n        call     [rax]Microsoft.AspNetCore.OData.Query.Expressions.ExpressionBinderBase:CollectAssignments(System.Collections.Generic.IDictionary\u00602[System.String,System.Linq.Expressions.Expression],System.Linq.Expressions.Expression,System.Linq.Expressions.MemberInitExpression,System.String)\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; \u0027Container\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Expressions.Expression:Property(System.Linq.Expressions.Expression,System.String):System.Linq.Expressions.MemberExpression\n        call     [rax]System.Linq.Expressions.Expression:Property(System.Linq.Expressions.Expression,System.String):System.Linq.Expressions.MemberExpression\n        mov      r15, rax\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; \u0027Container\u0027\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.AspNetCore.OData.Query.Expressions.ExpressionBinderBase:ExtractContainerExpression(System.Linq.Expressions.MethodCallExpression,System.String):System.Linq.Expressions.MemberInitExpression\n        call     [rax]Microsoft.AspNetCore.OData.Query.Expressions.ExpressionBinderBase:ExtractContainerExpression(System.Linq.Expressions.MethodCallExpression,System.String):System.Linq.Expressions.MemberInitExpression\n        mov      rdx, rax\n        mov      rsi, r15\n        mov      rdi, r14\n        xor      rcx, rcx\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.AspNetCore.OData.Query.Expressions.ExpressionBinderBase:CollectAssignments(System.Collections.Generic.IDictionary\u00602[System.String,System.Linq.Expressions.Expression],System.Linq.Expressions.Expression,System.Linq.Expressions.MemberInitExpression,System.String)\n        call     [rax]Microsoft.AspNetCore.OData.Query.Expressions.ExpressionBinderBase:CollectAssignments(System.Collections.Generic.IDictionary\u00602[System.String,System.Linq.Expressions.Expression],System.Linq.Expressions.Expression,System.Linq.Expressions.MemberInitExpression,System.String)\n        nop      \n-\t\t\t\t\t\t;; size=150 bbWeight=1 PerfScore 24.00\n-G_M4095_IG06:\n-       add      rsp, 8\n\u002B\t\t\t\t\t\t;; size=229 bbWeight=1 PerfScore 40.75\n\u002BG_M4095_IG03:\n\u002B       add      rsp, 16\n        pop      rbx\n-       pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M4095_IG07:\n\u002B\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n\u002BG_M4095_IG04:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 345, prolog size 22, PerfScore 62.50, instruction count 84, allocated bytes for code 345 (MethodHash=3c39f000) for method Microsoft.AspNetCore.OData.Query.Expressions.ExpressionBinderBase:CollectContainerAssignments(System.Linq.Expressions.Expression,System.Linq.Expressions.MethodCallExpression,System.Collections.Generic.Dictionary\u00602[System.String,System.Linq.Expressions.Expression]) (FullOpts)\n\u002B; Total bytes of code 292, prolog size 23, PerfScore 52.25, instruction count 69, allocated bytes for code 292 (MethodHash=3c39f000) for method Microsoft.AspNetCore.OData.Query.Expressions.ExpressionBinderBase:CollectContainerAssignments(System.Linq.Expressions.Expression,System.Linq.Expressions.MethodCallExpression,System.Collections.Generic.Dictionary\u00602[System.String,System.Linq.Expressions.Expression]) (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":345,"DiffBytes":292},{"Assembly":"Microsoft.EntityFrameworkCore.dasm","Method":"Microsoft.EntityFrameworkCore.Query.ExpressionPrinter:VisitLambda[double](System.Linq.Expressions.Expression\u00601[double]):System.Linq.Expressions.Expression:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 797 bytes (-52)","ExtraInfo":null,"Diff":"@@ -8,34 \u002B8,34 @@\n ; 0 inlinees with PGO data; 10 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T02] ( 12, 24   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.ExpressionPrinter\u003E\n\u002B;  V00 this         [V00,T01] ( 12, 24   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.ExpressionPrinter\u003E\n ;  V01 arg1         [V01,T05] ( 10, 13   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Linq.Expressions.Expression\u00601[double]\u003E\n ;  V02 loc0         [V02,T00] ( 12, 28   )     ref  -\u003E  [rbp-0x38]  do-not-enreg[M] class-hnd EH-live \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;  V03 loc1         [V03,T04] (  5, 20   )     ref  -\u003E  r13         class-hnd \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n-;  V04 loc2         [V04,T10] (  2,  8   )     ref  -\u003E  rdx         class-hnd exact \u003CSystem.String\u003E\n-;  V05 loc3         [V05,T11] (  2,  8   )     ref  -\u003E  rsi         class-hnd \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n\u002B;  V04 loc2         [V04,T08] (  2,  8   )     ref  -\u003E  rdx         class-hnd exact \u003CSystem.String\u003E\n\u002B;  V05 loc3         [V05,T09] (  2,  8   )     ref  -\u003E  rsi         class-hnd \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V08 tmp2         [V08,T19] (  3,  2   )     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V09 tmp3         [V09,T13] (  3,  5   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V08 tmp2         [V08,T18] (  3,  2   )     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V09 tmp3         [V09,T12] (  3,  5   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V11 tmp5         [V11,T03] (  3, 24   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Linq.Expressions.ParameterExpression,System.String]\u003E\n-;  V12 tmp6         [V12,T01] (  4, 28   )     ref  -\u003E  r12         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V13 tmp7         [V13    ] (  3,  8   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V11 tmp5         [V11,T02] (  3, 24   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Linq.Expressions.ParameterExpression,System.String]\u003E\n\u002B;  V12 tmp6         [V12,T03] (  3, 24   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V13 tmp7         [V13    ] (  2,  8   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V14 tmp8         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V15 tmp9         [V15,T09] (  3,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n-;  V16 tmp10        [V16,T06] (  4, 12   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V15 tmp9         [V15,T10] (  2,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n\u002B;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;* V17 tmp11        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V18 tmp12        [V18,T20] (  3,  2   )     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V19 tmp13        [V19,T14] (  3,  5   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V18 tmp12        [V18,T19] (  3,  2   )     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V19 tmp13        [V19,T13] (  3,  5   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V21 tmp15        [V21,T15] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V22 tmp16        [V22,T17] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V23 tmp17        [V23,T07] (  3, 12   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n-;  V24 tmp18        [V24,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V25 tmp19        [V25,T18] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V26 tmp20        [V26,T12] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V27 cse0         [V27,T08] (  6,  9   )    long  -\u003E  r14         \u0022CSE #02: moderate\u0022\n\u002B;  V21 tmp15        [V21,T14] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V22 tmp16        [V22,T16] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V23 tmp17        [V23,T06] (  3, 12   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n\u002B;  V24 tmp18        [V24,T15] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V25 tmp19        [V25,T17] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V26 tmp20        [V26,T11] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V27 cse0         [V27,T07] (  6,  9   )    long  -\u003E  r14         \u0022CSE #02: moderate\u0022\n ;\n ; Lcl frame size = 24\n \n@@ -84,7 \u002B84,7 @@ G_M25208_IG04:\n G_M25208_IG05:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M25208_IG28\n\u002B       je       G_M25208_IG25\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n G_M25208_IG06:\n        mov      rdi, 0xD1FFAB1E      ; data for System.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]:Empty\n@@ -105,7 \u002B105,7 @@ G_M25208_IG09:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():bool:this\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n-       je       G_M25208_IG17\n\u002B       je       G_M25208_IG14\n \t\t\t\t\t\t;; size=25 bbWeight=8 PerfScore 44.00\n G_M25208_IG10:\n        mov      rdi, gword ptr [rbp-0x38]\n@@ -126,38 \u002B126,19 @@ G_M25208_IG10:\n        call     [rax\u002B0x20]System.Linq.Expressions.ExpressionVisitor:Visit(System.Linq.Expressions.Expression):System.Linq.Expressions.Expression:this\n        mov      rdi, r15\n        call     [r14\u002B0x30]System.Linq.Expressions.LambdaExpression:GetOrMakeParameters():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]:this\n-       mov      r12, rax\n-       test     r12, r12\n-       je       SHORT G_M25208_IG15\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ParameterExpression]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n        je       SHORT G_M25208_IG12\n-\t\t\t\t\t\t;; size=109 bbWeight=4 PerfScore 126.00\n-G_M25208_IG11:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M25208_IG13\n-\t\t\t\t\t\t;; size=19 bbWeight=2 PerfScore 19.50\n-G_M25208_IG12:\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r12\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.Linq.Expressions.ParameterExpression](System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.ParameterExpression],byref):System.Linq.Expressions.ParameterExpression\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=2 PerfScore 8.50\n-G_M25208_IG13:\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       SHORT G_M25208_IG16\n\u002B       je       SHORT G_M25208_IG13\n        cmp      r13, rax\n        je       G_M25208_IG09\n-\t\t\t\t\t\t;; size=15 bbWeight=4 PerfScore 13.00\n-G_M25208_IG14:\n\u002B\t\t\t\t\t\t;; size=120 bbWeight=4 PerfScore 135.00\n\u002BG_M25208_IG11:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      rsi, 0xD1FFAB1E      ; \u0027, \u0027\n        mov      rax, qword ptr [rdi]\n@@ -165,18 \u002B146,18 @@ G_M25208_IG14:\n        call     [rax\u002B0x30]Microsoft.EntityFrameworkCore.Infrastructure.IndentedStringBuilder:Append(System.String):Microsoft.EntityFrameworkCore.Infrastructure.IndentedStringBuilder:this\n        jmp      G_M25208_IG09\n \t\t\t\t\t\t;; size=29 bbWeight=2 PerfScore 22.50\n-G_M25208_IG15:\n\u002BG_M25208_IG12:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M25208_IG16:\n\u002BG_M25208_IG13:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M25208_IG17:\n\u002BG_M25208_IG14:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n@@ -186,16 \u002B167,16 @@ G_M25208_IG17:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        cmp      eax, 1\n-       je       SHORT G_M25208_IG19\n\u002B       je       SHORT G_M25208_IG16\n \t\t\t\t\t\t;; size=46 bbWeight=1 PerfScore 14.00\n-G_M25208_IG18:\n\u002BG_M25208_IG15:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      rsi, 0xD1FFAB1E      ; \u0027)\u0027\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]Microsoft.EntityFrameworkCore.Infrastructure.IndentedStringBuilder:Append(System.String):Microsoft.EntityFrameworkCore.Infrastructure.IndentedStringBuilder:this\n \t\t\t\t\t\t;; size=24 bbWeight=0.50 PerfScore 4.62\n-G_M25208_IG19:\n\u002BG_M25208_IG16:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      rsi, 0xD1FFAB1E      ; \u0027 =\u003E \u0027\n        mov      rax, qword ptr [rdi]\n@@ -213,35 \u002B194,35 @@ G_M25208_IG19:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       jne      SHORT G_M25208_IG22\n\u002B       jne      SHORT G_M25208_IG19\n \t\t\t\t\t\t;; size=72 bbWeight=1 PerfScore 28.50\n-G_M25208_IG20:\n\u002BG_M25208_IG17:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M25208_IG29\n\u002B       je       G_M25208_IG26\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n-G_M25208_IG21:\n\u002BG_M25208_IG18:\n        mov      rdi, 0xD1FFAB1E      ; data for System.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]:Empty\n        mov      r13, gword ptr [rdi]\n-       jmp      SHORT G_M25208_IG23\n\u002B       jmp      SHORT G_M25208_IG20\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M25208_IG22:\n\u002BG_M25208_IG19:\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEnumerable\u00601[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator\u00601[System.__Canon]:this\n        call     [r11]System.Collections.Generic.IEnumerable\u00601[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator\u00601[System.__Canon]:this\n        mov      r13, rax\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 2.75\n-G_M25208_IG23:\n\u002BG_M25208_IG20:\n        mov      gword ptr [rbp-0x38], r13\n \t\t\t\t\t\t;; size=4 bbWeight=1 PerfScore 1.00\n-G_M25208_IG24:\n\u002BG_M25208_IG21:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():bool:this\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n-       je       SHORT G_M25208_IG26\n\u002B       je       SHORT G_M25208_IG23\n \t\t\t\t\t\t;; size=21 bbWeight=8 PerfScore 44.00\n-G_M25208_IG25:\n\u002BG_M25208_IG22:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEnumerator\u00601[System.__Canon]:get_Current():System.__Canon:this\n        call     [r11]System.Collections.Generic.IEnumerator\u00601[System.__Canon]:get_Current():System.__Canon:this\n@@ -250,15 \u002B231,15 @@ G_M25208_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary\u00602[System.__Canon,System.__Canon]:Remove(System.__Canon):bool:this\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.Collections.Generic.Dictionary\u00602[System.__Canon,System.__Canon]:Remove(System.__Canon):bool:this\n-       jmp      SHORT G_M25208_IG24\n\u002B       jmp      SHORT G_M25208_IG21\n \t\t\t\t\t\t;; size=40 bbWeight=4 PerfScore 55.00\n-G_M25208_IG26:\n\u002BG_M25208_IG23:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        mov      rax, r15\n \t\t\t\t\t\t;; size=20 bbWeight=1 PerfScore 4.50\n-G_M25208_IG27:\n\u002BG_M25208_IG24:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -268,52 \u002B249,52 @@ G_M25208_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M25208_IG28:\n\u002BG_M25208_IG25:\n        mov      rdi, 0xD1FFAB1E      ; System.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M25208_IG06\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M25208_IG29:\n\u002BG_M25208_IG26:\n        mov      rdi, 0xD1FFAB1E      ; System.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M25208_IG21\n\u002B       jmp      G_M25208_IG18\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M25208_IG30:\n\u002BG_M25208_IG27:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M25208_IG31:\n\u002BG_M25208_IG28:\n        cmp      gword ptr [rbp-0x38], 0\n-       je       SHORT G_M25208_IG32\n\u002B       je       SHORT G_M25208_IG29\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M25208_IG32:\n\u002BG_M25208_IG29:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M25208_IG33:\n\u002BG_M25208_IG30:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M25208_IG34:\n\u002BG_M25208_IG31:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M25208_IG35:\n\u002BG_M25208_IG32:\n        cmp      gword ptr [rbp-0x38], 0\n-       je       SHORT G_M25208_IG36\n\u002B       je       SHORT G_M25208_IG33\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M25208_IG36:\n\u002BG_M25208_IG33:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M25208_IG37:\n\u002BG_M25208_IG34:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 31, PerfScore 440.25, instruction count 201, allocated bytes for code 849 (MethodHash=77cd9d87) for method Microsoft.EntityFrameworkCore.Query.ExpressionPrinter:VisitLambda[double](System.Linq.Expressions.Expression\u00601[double]):System.Linq.Expressions.Expression:this (FullOpts)\n\u002B; Total bytes of code 797, prolog size 31, PerfScore 408.25, instruction count 188, allocated bytes for code 797 (MethodHash=77cd9d87) for method Microsoft.EntityFrameworkCore.Query.ExpressionPrinter:VisitLambda[double](System.Linq.Expressions.Expression\u00601[double]):System.Linq.Expressions.Expression:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":797},{"Assembly":"Microsoft.OpenApi.dasm","Method":"Microsoft.OpenApi.OpenApiInfo:SerializeAsV2(Microsoft.OpenApi.IOpenApiWriter):this (FullOpts)","Category":"improvement","Description":"978 -\u003E 948 bytes (-30)","ExtraInfo":null,"Diff":"@@ -11,7 \u002B11,7 @@\n ;  V00 this         [V00,T01] (  9,  9   )     ref  -\u003E  r15         this class-hnd single-def \u003CMicrosoft.OpenApi.OpenApiInfo\u003E\n ;  V01 arg1         [V01,T00] ( 18, 12   )     ref  -\u003E  rbx         class-hnd single-def \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V03 tmp1         [V03,T04] (  4,  6   )     ref  -\u003E  rdi         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Uri\u003E\n\u002B;  V03 tmp1         [V03,T02] (  4,  6   )     ref  -\u003E  rdi         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Uri\u003E\n ;* V04 tmp2         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V05 tmp3         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V06 tmp4         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -19,13 \u002B19,13 @@\n ;* V08 tmp6         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;  V09 tmp7         [V09,T14] (  3,  2.50)     ref  -\u003E  r14        \n ;  V10 tmp8         [V10,T10] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiContact]\u003E\n-;  V11 tmp9         [V11,T02] (  5,  7   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.OpenApi.OpenApiContact\u003E\n\u002B;  V11 tmp9         [V11,T03] (  4,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.OpenApi.OpenApiContact\u003E\n ;* V12 tmp10        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V13 tmp11        [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V14 tmp12        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V15 tmp13        [V15,T12] (  5,  3.50)     ref  -\u003E  r13        \n ;  V16 tmp14        [V16,T11] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiLicense]\u003E\n-;  V17 tmp15        [V17,T03] (  5,  7   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.OpenApi.OpenApiLicense\u003E\n\u002B;  V17 tmp15        [V17,T04] (  4,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.OpenApi.OpenApiLicense\u003E\n ;* V18 tmp16        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V19 tmp17        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V20 tmp18        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -49,32 \u002B49,30 @@\n ;* V38 tmp36        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n ;* V39 tmp37        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V40 tmp38        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiContact]\u003E\n-;* V41 tmp39        [V41    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling qmarkNull\u0022\n-;* V42 tmp40        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiContact]\u003E\n-;* V43 tmp41        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n-;* V44 tmp42        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;* V45 tmp43        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiContact]\u003E\n-;* V46 tmp44        [V46    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiContact]\u003E\n-;* V47 tmp45        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V48 tmp46        [V48,T18] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiInfo\u002B\u003C\u003Ec\u003E\n-;* V49 tmp47        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiLicense\u003E\n-;  V50 tmp48        [V50,T22] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n-;* V51 tmp49        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n-;* V52 tmp50        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;* V53 tmp51        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiLicense]\u003E\n-;* V54 tmp52        [V54    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling qmarkNull\u0022\n-;* V55 tmp53        [V55    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiLicense]\u003E\n-;* V56 tmp54        [V56    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n-;* V57 tmp55        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;* V58 tmp56        [V58    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiLicense]\u003E\n-;* V59 tmp57        [V59    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiLicense]\u003E\n-;* V60 tmp58        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V61 tmp59        [V61,T09] (  3,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V62 tmp60        [V62,T19] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V63 tmp61        [V63,T20] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;* V64 tmp62        [V64    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022argument with side effect\u0022\n-;* V65 tmp63        [V65    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022argument with side effect\u0022\n-;  V66 tmp64        [V66,T24] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;* V41 tmp39        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiContact]\u003E\n\u002B;* V42 tmp40        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n\u002B;* V43 tmp41        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;* V44 tmp42        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiContact]\u003E\n\u002B;* V45 tmp43        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiContact]\u003E\n\u002B;* V46 tmp44        [V46    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V47 tmp45        [V47,T18] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiInfo\u002B\u003C\u003Ec\u003E\n\u002B;* V48 tmp46        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiLicense\u003E\n\u002B;  V49 tmp47        [V49,T22] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n\u002B;* V50 tmp48        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n\u002B;* V51 tmp49        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;* V52 tmp50        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiLicense]\u003E\n\u002B;* V53 tmp51        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiLicense]\u003E\n\u002B;* V54 tmp52        [V54    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n\u002B;* V55 tmp53        [V55    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;* V56 tmp54        [V56    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiLicense]\u003E\n\u002B;* V57 tmp55        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiLicense]\u003E\n\u002B;* V58 tmp56        [V58    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V59 tmp57        [V59,T09] (  3,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V60 tmp58        [V60,T19] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V61 tmp59        [V61,T20] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;* V62 tmp60        [V62    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022argument with side effect\u0022\n\u002B;* V63 tmp61        [V63    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022argument with side effect\u0022\n\u002B;  V64 tmp62        [V64,T24] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 0\n \n@@ -192,9 \u002B190,6 @@ G_M4597_IG13:\n        call     [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE\n        test     rax, rax\n        je       SHORT G_M4597_IG14\n-       mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Nodes.JsonArray\n-       cmp      qword ptr [r14], rdi\n-       je       SHORT G_M4597_IG14\n        mov      rdi, rax\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n        call     [r11]System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n@@ -203,7 \u002B198,7 @@ G_M4597_IG13:\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n        je       SHORT G_M4597_IG15\n-\t\t\t\t\t\t;; size=81 bbWeight=0.50 PerfScore 8.25\n\u002B\t\t\t\t\t\t;; size=66 bbWeight=0.50 PerfScore 6.62\n G_M4597_IG14:\n        mov      rdi, rbx\n        mov      r11, 0xD1FFAB1E      ; code for Microsoft.OpenApi.IOpenApiWriter:WritePropertyName(System.String):this\n@@ -246,9 \u002B241,6 @@ G_M4597_IG18:\n        call     [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE\n        test     rax, rax\n        je       SHORT G_M4597_IG19\n-       mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Nodes.JsonArray\n-       cmp      qword ptr [r14], rdi\n-       je       SHORT G_M4597_IG19\n        mov      rdi, rax\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n        call     [r11]System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n@@ -257,7 \u002B249,7 @@ G_M4597_IG18:\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n        je       SHORT G_M4597_IG20\n-\t\t\t\t\t\t;; size=81 bbWeight=0.50 PerfScore 8.25\n\u002B\t\t\t\t\t\t;; size=66 bbWeight=0.50 PerfScore 6.62\n G_M4597_IG19:\n        mov      rdi, rbx\n        mov      r11, 0xD1FFAB1E      ; code for Microsoft.OpenApi.IOpenApiWriter:WritePropertyName(System.String):this\n@@ -322,5 \u002B314,5 @@ G_M4597_IG24:\n        int3     \n \t\t\t\t\t\t;; size=87 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 978, prolog size 13, PerfScore 108.12, instruction count 195, allocated bytes for code 978 (MethodHash=9089ee0a) for method Microsoft.OpenApi.OpenApiInfo:SerializeAsV2(Microsoft.OpenApi.IOpenApiWriter):this (FullOpts)\n\u002B; Total bytes of code 948, prolog size 13, PerfScore 104.88, instruction count 189, allocated bytes for code 948 (MethodHash=9089ee0a) for method Microsoft.OpenApi.OpenApiInfo:SerializeAsV2(Microsoft.OpenApi.IOpenApiWriter):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":978,"DiffBytes":948},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:Aggregate[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)","Category":"improvement","Description":"1,665 -\u003E 1,580 bytes (-85)","ExtraInfo":null,"Diff":"@@ -14,11 \u002B14,11 @@\n ;  V03 arg2         [V03,T04] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.__Canon,byte]\u003E\n ;  V04 arg3         [V04,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T33] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n\u002B;  V06 loc0         [V06,T32] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n-;  V08 loc2         [V08,T34] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V09 loc3         [V09,T39] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V10 loc4         [V10,T40] (  3,  1.50)     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[byte]\u003E\n\u002B;  V08 loc2         [V08,T33] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V09 loc3         [V09,T38] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V10 loc4         [V10,T39] (  3,  1.50)     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[byte]\u003E\n ;  V11 OutArgs      [V11    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V12 tmp1         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V13 tmp2         [V13    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n@@ -44,22 \u002B44,22 @@\n ;* V33 tmp22        [V33    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V34 tmp23        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V35 tmp24        [V35    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V36 tmp25        [V36,T28] (  3,  2   )     int  -\u003E  rdi        \n-;  V37 tmp26        [V37,T06] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V38 tmp27        [V38    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V39 tmp28        [V39,T17] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V40 tmp29        [V40,T18] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V36 tmp25        [V36,T27] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V37 tmp26        [V37,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V38 tmp27        [V38    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V39 tmp28        [V39,T17] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V40 tmp29        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V41 tmp30        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V42 tmp31        [V42,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V43 tmp32        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V44 tmp33        [V44,T38] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V44 tmp33        [V44,T37] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V45 tmp34        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V46 tmp35        [V46,T26] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V47 tmp36        [V47,T19] (  3,  3   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V46 tmp35        [V46,T25] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V47 tmp36        [V47,T18] (  3,  3   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V48 tmp37        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V49 tmp38        [V49,T08] ( 10,  5   )     ref  -\u003E  [rbp-0x98]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;  V49 tmp38        [V49,T08] ( 10,  5   )     ref  -\u003E  [rbp-0x90]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V50 tmp39        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V51 tmp40        [V51,T09] ( 10,  5   )     ref  -\u003E  [rbp-0xA0]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;  V51 tmp40        [V51,T09] ( 10,  5   )     ref  -\u003E  [rbp-0x98]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V52 tmp41        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V53 tmp42        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V54 tmp43        [V54    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -68,11 \u002B68,11 @@\n ;* V57 tmp46        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[byte]\u003E\n ;* V58 tmp47        [V58    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V59 tmp48        [V59    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V60 tmp49        [V60,T41] (  2,  1   )     ref  -\u003E  [rbp-0xA8]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V61 tmp50        [V61,T27] (  8,  2   )     ref  -\u003E  [rbp-0xB0]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V62 tmp51        [V62,T20] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V63 tmp52        [V63,T42] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[byte]\u003E\n-;  V64 tmp53        [V64,T32] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V60 tmp49        [V60,T40] (  2,  1   )     ref  -\u003E  [rbp-0xA0]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V61 tmp50        [V61,T26] (  8,  2   )     ref  -\u003E  [rbp-0xA8]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V62 tmp51        [V62,T19] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V63 tmp52        [V63,T41] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[byte]\u003E\n\u002B;  V64 tmp53        [V64,T31] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V65 tmp54        [V65    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V66 tmp55        [V66,T10] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V67 tmp56        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -80,29 \u002B80,29 @@\n ;* V69 tmp58        [V69    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V70 tmp59        [V70    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V71 tmp60        [V71    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;  V72 tmp61        [V72,T14] (  3,  2   )     ref  -\u003E  [rbp-0xB8]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V73 tmp62        [V73,T44] (  2,  1   )   ubyte  -\u003E  r12         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V74 tmp63        [V74,T45] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V75 tmp64        [V75,T46] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V19.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V76 tmp65        [V76,T47] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V19.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V72 tmp61        [V72,T14] (  3,  2   )     ref  -\u003E  [rbp-0xB0]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n\u002B       je       SHORT G_M31304_IG33\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      rax, rdi\n        test     rax, rax\n-       je       SHORT G_M31304_IG35\n\u002B       je       SHORT G_M31304_IG32\n\u002B       mov      rdi, rax\n\u002B       mov      esi, 1\n\u002B       mov      gword ptr [rbp-0x90], rax\n\u002B       mov      rcx, qword ptr [rax]\n\u002B       mov      rcx, qword ptr [rcx\u002B0x40]\n\u002B       call     [rcx\u002B0x28]System.Threading.CancellationTokenSource:Dispose(bool):this\n\u002B       mov      rdi, gword ptr [rbp-0x90]\n\u002B       mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n\u002B       call     [rax]System.GC:SuppressFinalize(System.Object)\n\u002B\t\t\t\t\t\t;; size=67 bbWeight=0.50 PerfScore 9.62\n\u002BG_M31304_IG32:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rdi, gword ptr [rsi\u002B0x10]\n\u002B       mov      rax, rdi\n\u002B       test     rax, rax\n\u002B       je       SHORT G_M31304_IG33\n        mov      rdi, rax\n        mov      esi, 1\n        mov      gword ptr [rbp-0x98], rax\n@@ -437,34 \u002B433,18 @@ G_M31304_IG34:\n        mov      rdi, gword ptr [rbp-0x98]\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=77 bbWeight=0.50 PerfScore 9.62\n-G_M31304_IG35:\n-       mov      rsi, gword ptr [rbp-0x88]\n-       mov      rdi, gword ptr [rsi\u002B0x10]\n-       mov      rax, rdi\n-       test     rax, rax\n-       je       SHORT G_M31304_IG36\n-       mov      rdi, rax\n-       mov      esi, 1\n-       mov      gword ptr [rbp-0xA0], rax\n-       mov      rcx, qword ptr [rax]\n-       mov      rcx, qword ptr [rcx\u002B0x40]\n-       call     [rcx\u002B0x28]System.Threading.CancellationTokenSource:Dispose(bool):this\n-       mov      rdi, gword ptr [rbp-0xA0]\n-       mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n-       call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.62\n-G_M31304_IG36:\n\u002B\t\t\t\t\t\t;; size=60 bbWeight=0.50 PerfScore 8.62\n\u002BG_M31304_IG33:\n        mov      rdi, qword ptr [r14\u002B0x18]\n        cmp      qword ptr [rdi\u002B0x08], 64\n-       jle      SHORT G_M31304_IG40\n\u002B       jle      SHORT G_M31304_IG37\n \t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 2.50\n-G_M31304_IG37:\n\u002BG_M31304_IG34:\n        mov      rsi, qword ptr [rdi\u002B0x40]\n        test     rsi, rsi\n-       je       SHORT G_M31304_IG40\n\u002B       je       SHORT G_M31304_IG37\n \t\t\t\t\t\t;; size=9 bbWeight=0.40 PerfScore 1.30\n-G_M31304_IG38:\n\u002BG_M31304_IG35:\n        mov      rdi, r15\n        mov      rdx, r13\n        mov      rcx, r12\n@@ -473,7 \u002B453,7 @@ G_M31304_IG38:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateAggregateToCollectionResultCursor[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[byte],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[byte]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M31304_IG39:\n\u002BG_M31304_IG36:\n        add      rsp, 200\n        pop      rbx\n        pop      r12\n@@ -483,15 \u002B463,15 @@ G_M31304_IG39:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M31304_IG40:\n\u002BG_M31304_IG37:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      SHORT G_M31304_IG38\n\u002B       jmp      SHORT G_M31304_IG35\n \t\t\t\t\t\t;; size=30 bbWeight=0.18 PerfScore 1.08\n-G_M31304_IG41:\n\u002BG_M31304_IG38:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -499,38 \u002B479,38 @@ G_M31304_IG41:\n        mov      rdi, rax\n        jmp      G_M31304_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M31304_IG42:\n\u002BG_M31304_IG39:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M31304_IG32\n\u002B       jmp      G_M31304_IG29\n \t\t\t\t\t\t;; size=33 bbWeight=0.18 PerfScore 1.08\n-G_M31304_IG43:\n\u002BG_M31304_IG40:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M31304_IG24\n\u002B       jmp      G_M31304_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.10 PerfScore 0.60\n-G_M31304_IG44:\n\u002BG_M31304_IG41:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M31304_IG45:\n\u002BG_M31304_IG42:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M31304_IG46:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M31304_IG48\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M31304_IG43:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M31304_IG45\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M31304_IG47\n\u002B       je       SHORT G_M31304_IG44\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -539,12 \u002B519,12 @@ G_M31304_IG46:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M31304_IG47:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M31304_IG44:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x10]\n        test     r15, r15\n-       je       SHORT G_M31304_IG48\n\u002B       je       SHORT G_M31304_IG45\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -553,24 \u002B533,24 @@ G_M31304_IG47:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M31304_IG48:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M31304_IG45:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M31304_IG49:\n\u002BG_M31304_IG46:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M31304_IG50:\n\u002BG_M31304_IG47:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M31304_IG51:\n-       cmp      gword ptr [rbp-0xB0], 0\n-       je       SHORT G_M31304_IG53\n-       mov      rsi, gword ptr [rbp-0xB0]\n\u002BG_M31304_IG48:\n\u002B       cmp      gword ptr [rbp-0xA8], 0\n\u002B       je       SHORT G_M31304_IG50\n\u002B       mov      rsi, gword ptr [rbp-0xA8]\n        mov      r13, gword ptr [rsi\u002B0x08]\n        test     r13, r13\n-       je       SHORT G_M31304_IG52\n\u002B       je       SHORT G_M31304_IG49\n        mov      rdi, r13\n        mov      esi, 1\n        mov      rax, qword ptr [r13]\n@@ -580,11 \u002B560,11 @@ G_M31304_IG51:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M31304_IG52:\n-       mov      rsi, gword ptr [rbp-0xB0]\n\u002BG_M31304_IG49:\n\u002B       mov      rsi, gword ptr [rbp-0xA8]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M31304_IG53\n\u002B       je       SHORT G_M31304_IG50\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -594,13 \u002B574,13 @@ G_M31304_IG52:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M31304_IG53:\n\u002BG_M31304_IG50:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M31304_IG54:\n\u002BG_M31304_IG51:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1665, prolog size 66, PerfScore 184.71, instruction count 387, allocated bytes for code 1665 (MethodHash=851a85b7) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:Aggregate[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)\n\u002B; Total bytes of code 1580, prolog size 66, PerfScore 175.33, instruction count 373, allocated bytes for code 1580 (MethodHash=851a85b7) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:Aggregate[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1665,"DiffBytes":1580},{"Assembly":"Nest.dasm","Method":"Nest.ToStringExpressionVisitor:VisitMethodCall(System.Linq.Expressions.MethodCallExpression):System.Linq.Expressions.Expression:this (FullOpts)","Category":"improvement","Description":"1,002 -\u003E 950 bytes (-52)","ExtraInfo":null,"Diff":"@@ -11,44 \u002B11,44 @@\n ;  V00 this         [V00,T01] ( 14, 15   )     ref  -\u003E  r15         this class-hnd single-def \u003CNest.ToStringExpressionVisitor\u003E\n ;  V01 arg1         [V01,T00] ( 21, 22.50)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n ;* V02 loc0         [V02    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V03 loc1         [V03,T13] (  7,  3.50)     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Type\u003E\n\u002B;  V03 loc1         [V03,T12] (  7,  3.50)     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Type\u003E\n ;* V04 loc2         [V04    ] (  0,  0   )   ubyte  -\u003E  zero-ref   \n ;  V05 loc3         [V05,T02] (  5, 16.50)     int  -\u003E  r13        \n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     int  -\u003E  zero-ref   \n ;  V08 tmp2         [V08,T06] (  9,  9   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V09 tmp3         [V09,T14] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V09 tmp3         [V09,T13] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n ;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V11 tmp5         [V11,T09] (  6,  5   )     ref  -\u003E  rax         single-def \u0022spilling varStr\u0022\n ;* V12 tmp6         [V12    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling unroll qmark\u0022\n-;  V13 tmp7         [V13,T10] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V14 tmp8         [V14    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V13 tmp7         [V13,T14] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V14 tmp8         [V14    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V16 tmp10        [V16,T17] (  4,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V17 tmp11        [V17,T18] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V18 tmp12        [V18,T26] (  3,  1.50)     ref  -\u003E  rdi         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Expressions.Expression[]\u003E\n-;  V19 tmp13        [V19,T19] (  4,  2   )     int  -\u003E  r14         single-def \u0022Inline stloc first use temp\u0022\n\u002B;  V16 tmp10        [V16,T24] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;* V17 tmp11        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V18 tmp12        [V18,T25] (  3,  1.50)     ref  -\u003E  rdi         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Expressions.Expression[]\u003E\n\u002B;  V19 tmp13        [V19,T17] (  4,  2   )     int  -\u003E  r14         single-def \u0022Inline stloc first use temp\u0022\n ;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V22 tmp16        [V22,T12] (  5,  3.75)     ref  -\u003E  rax         single-def \u0022spilling varStr\u0022\n-;  V23 tmp17        [V23,T25] (  2,  2   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V22 tmp16        [V22,T11] (  5,  3.75)     ref  -\u003E  rax         single-def \u0022spilling varStr\u0022\n\u002B;  V23 tmp17        [V23,T23] (  2,  2   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V24 tmp18        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n ;* V25 tmp19        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n ;* V26 tmp20        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V27 tmp21        [V27,T11] (  3,  4   )     ref  -\u003E  rax         \u0022Single return block return value\u0022\n\u002B;  V27 tmp21        [V27,T10] (  3,  4   )     ref  -\u003E  rax         \u0022Single return block return value\u0022\n ;  V28 tmp22        [V28,T08] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V29 tmp23        [V29,T20] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V29 tmp23        [V29,T18] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;  V30 tmp24        [V30,T15] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V31 tmp25        [V31,T21] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V31 tmp25        [V31,T19] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;  V32 tmp26        [V32,T03] (  2, 16   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V33 tmp27        [V33,T04] (  2, 16   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V34 tmp28        [V34,T05] (  2, 16   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n-;  V35 tmp29        [V35,T22] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V36 tmp30        [V36,T23] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V35 tmp29        [V35,T20] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V36 tmp30        [V36,T21] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;  V37 tmp31        [V37,T16] (  3,  3   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n-;  V38 tmp32        [V38,T24] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V38 tmp32        [V38,T22] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;  V39 cse0         [V39,T07] ( 10,  8.50)    long  -\u003E  r14         hoist multi-def \u0022CSE #03: aggressive\u0022\n-;  V40 rat0         [V40,T27] (  3,  3   )  simd16  -\u003E  mm0         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n\u002B;  V40 rat0         [V40,T26] (  3,  3   )  simd16  -\u003E  mm0         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n ;\n ; Lcl frame size = 16\n \n@@ -188,7 \u002B188,7 @@ G_M5828_IG15:\n        mov      rax, qword ptr [r15]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x20]System.Linq.Expressions.ExpressionVisitor:Visit(System.Linq.Expressions.Expression):System.Linq.Expressions.Expression:this\n-       jmp      G_M5828_IG25\n\u002B       jmp      G_M5828_IG23\n \t\t\t\t\t\t;; size=47 bbWeight=0.50 PerfScore 9.12\n G_M5828_IG16:\n        mov      rdi, rbx\n@@ -237,14 \u002B237,14 @@ G_M5828_IG17:\n        mov      rax, qword ptr [r15]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x20]System.Linq.Expressions.ExpressionVisitor:Visit(System.Linq.Expressions.Expression):System.Linq.Expressions.Expression:this\n-       jmp      G_M5828_IG25\n\u002B       jmp      G_M5828_IG23\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 9.25\n G_M5828_IG18:\n        mov      rdi, r15\n        mov      rsi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Expressions.ExpressionVisitor:VisitMethodCall(System.Linq.Expressions.MethodCallExpression):System.Linq.Expressions.Expression:this\n        call     [rax]System.Linq.Expressions.ExpressionVisitor:VisitMethodCall(System.Linq.Expressions.MethodCallExpression):System.Linq.Expressions.Expression:this\n-       jmp      G_M5828_IG26\n\u002B       jmp      G_M5828_IG24\n \t\t\t\t\t\t;; size=23 bbWeight=0.50 PerfScore 2.88\n G_M5828_IG19:\n        mov      rdx, gword ptr [r15\u002B0x08]\n@@ -257,7 \u002B257,7 @@ G_M5828_IG19:\n        mov      r13, rax\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M5828_IG27\n\u002B       je       G_M5828_IG25\n \t\t\t\t\t\t;; size=59 bbWeight=0.50 PerfScore 5.25\n G_M5828_IG20:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.List\u00601[System.Linq.Expressions.Expression]:s_emptyArray\n@@ -266,44 \u002B266,27 @@ G_M5828_IG20:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, rbx\n        call     [r14\u002B0x20]System.Linq.Expressions.MethodCallExpression:GetOrMakeArguments():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]:this\n-       mov      r14, rax\n-       test     r14, r14\n-       je       G_M5828_IG28\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M5828_IG21\n-       lea      rsi, [rbp-0x28]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M5828_IG22\n-\t\t\t\t\t\t;; size=90 bbWeight=0.50 PerfScore 11.62\n-G_M5828_IG21:\n\u002B       je       G_M5828_IG26\n        lea      rdx, [rbp-0x28]\n-       mov      rsi, r14\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Linq.Expressions.Expression](System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.Expression],byref):System.Linq.Expressions.Expression\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M5828_IG22:\n        cmp      byte  ptr [rbp-0x28], 0\n-       je       G_M5828_IG29\n\u002B       je       G_M5828_IG27\n        inc      dword ptr [r13\u002B0x14]\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r14d, dword ptr [r13\u002B0x10]\n        cmp      dword ptr [rdi\u002B0x08], r14d\n-       ja       SHORT G_M5828_IG23\n\u002B       ja       SHORT G_M5828_IG21\n        mov      rdi, r13\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n-       jmp      SHORT G_M5828_IG24\n-\t\t\t\t\t\t;; size=48 bbWeight=0.50 PerfScore 8.88\n-G_M5828_IG23:\n\u002B       jmp      SHORT G_M5828_IG22\n\u002B\t\t\t\t\t\t;; size=115 bbWeight=0.50 PerfScore 15.12\n\u002BG_M5828_IG21:\n        lea      esi, [r14\u002B0x01]\n        mov      dword ptr [r13\u002B0x10], esi\n        mov      esi, r14d\n@@ -311,7 \u002B294,7 @@ G_M5828_IG23:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST\n        call     [rax]CORINFO_HELP_ARRADDR_ST\n \t\t\t\t\t\t;; size=26 bbWeight=0.50 PerfScore 2.62\n-G_M5828_IG24:\n\u002BG_M5828_IG22:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -323,10 \u002B306,10 @@ G_M5828_IG24:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Expressions.ExpressionVisitor:Visit(System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]):System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]:this\n        call     [rax]System.Linq.Expressions.ExpressionVisitor:Visit(System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]):System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]:this\n \t\t\t\t\t\t;; size=48 bbWeight=0.50 PerfScore 3.50\n-G_M5828_IG25:\n\u002BG_M5828_IG23:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M5828_IG26:\n\u002BG_M5828_IG24:\n        add      rsp, 16\n        pop      rbx\n        pop      r13\n@@ -335,19 \u002B318,19 @@ G_M5828_IG26:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n-G_M5828_IG27:\n\u002BG_M5828_IG25:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.Linq.Expressions.Expression]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M5828_IG20\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M5828_IG28:\n\u002BG_M5828_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M5828_IG29:\n\u002BG_M5828_IG27:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n@@ -355,5 \u002B338,5 @@ G_M5828_IG29:\n RWD00  \tdq\t005F007400650067h, 006D006500740049h\n \n \n-; Total bytes of code 1002, prolog size 23, PerfScore 247.23, instruction count 242, allocated bytes for code 1002 (MethodHash=7f3de93b) for method Nest.ToStringExpressionVisitor:VisitMethodCall(System.Linq.Expressions.MethodCallExpression):System.Linq.Expressions.Expression:this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 23, PerfScore 239.73, instruction count 229, allocated bytes for code 950 (MethodHash=7f3de93b) for method Nest.ToStringExpressionVisitor:VisitMethodCall(System.Linq.Expressions.MethodCallExpression):System.Linq.Expressions.Expression:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1002,"DiffBytes":950},{"Assembly":"OpenAI.dasm","Method":"OpenAI.Images.ImageClient:GenerateImageVariation(System.IO.Stream,System.String,OpenAI.Images.ImageVariationOptions,System.Threading.CancellationToken):System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]:this (FullOpts)","Category":"improvement","Description":"484 -\u003E 432 bytes (-52)","ExtraInfo":null,"Diff":"@@ -14,18 \u002B14,18 @@\n ;  V03 arg3         [V03    ] (  6,  5.50)     ref  -\u003E  [rbp-0x28]  do-not-enreg[X] addr-exposed ld-addr-op class-hnd \u003COpenAI.Images.ImageVariationOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;  V05 loc0         [V05,T07] (  6,  3   )     ref  -\u003E  [rbp-0x38]  class-hnd EH-live spill-single-def \u003COpenAI.MultiPartFormDataBinaryContent\u003E\n-;  V06 loc1         [V06,T09] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u003E\n\u002B;  V06 loc1         [V06,T08] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u003E\n ;* V07 loc2         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u003CSystem.Nullable\u00601[int]\u003E\n-;  V08 loc3         [V08,T11] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]\u003E\n\u002B;  V08 loc3         [V08,T09] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]\u003E\n ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V10 tmp1         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003COpenAI.Images.GeneratedImage\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003COpenAI.Images.ImageVariationOptions\u003E\n-;  V13 tmp4         [V13,T12] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V14 tmp5         [V14,T03] (  4,  7   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Images.GeneratedImageCollection\u003E\n-;  V15 tmp6         [V15    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V16 tmp7         [V16,T10] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003COpenAI.Images.GeneratedImage\u003E\n-;  V17 tmp8         [V17,T08] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[OpenAI.Images.GeneratedImage]\u003E\n\u002B;  V13 tmp4         [V13,T11] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V14 tmp5         [V14,T03] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Images.GeneratedImageCollection\u003E\n\u002B;  V15 tmp6         [V15    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V16 tmp7         [V16,T10] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003COpenAI.Images.GeneratedImage\u003E\n\u002B;* V17 tmp8         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[OpenAI.Images.GeneratedImage]\u003E\n ;  V18 tmp9         [V18,T04] (  2,  2   )     ref  -\u003E  r13         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n ;* V19 tmp10        [V19    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V07.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V20 tmp11        [V20    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V07.value (fldOffset=0x4)\u0022 P-INDEP\n@@ -52,7 \u002B52,7 @@ G_M1948_IG01:\n \t\t\t\t\t\t;; size=39 bbWeight=1 PerfScore 9.00\n G_M1948_IG02:\n        test     r15, r15\n-       je       G_M1948_IG12\n\u002B       je       G_M1948_IG09\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; \u0027imageFilename\u0027\n        mov      rax, 0xD1FFAB1E      ; code for OpenAI.Argument:AssertNotNullOrEmpty(System.String,System.String)\n@@ -101,53 \u002B101,34 @@ G_M1948_IG05:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for OpenAI.Images.GeneratedImageCollection:op_Explicit(System.ClientModel.ClientResult):OpenAI.Images.GeneratedImageCollection\n        call     [rax]OpenAI.Images.GeneratedImageCollection:op_Explicit(System.ClientModel.ClientResult):OpenAI.Images.GeneratedImageCollection\n-       mov      r15, rax\n-       test     r15, r15\n-       je       SHORT G_M1948_IG09\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[OpenAI.Images.GeneratedImage]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M1948_IG07\n-\t\t\t\t\t\t;; size=114 bbWeight=1 PerfScore 28.25\n-G_M1948_IG06:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M1948_IG08\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M1948_IG07:\n\u002B       je       SHORT G_M1948_IG06\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r15\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[OpenAI.Images.GeneratedImage](System.Collections.Generic.IEnumerable\u00601[OpenAI.Images.GeneratedImage],byref):OpenAI.Images.GeneratedImage\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M1948_IG08:\n-       mov      rdx, gword ptr [rbx\u002B0x08]\n        mov      rsi, rax\n\u002B       mov      rdx, gword ptr [rbx\u002B0x08]\n        mov      rdi, 0xD1FFAB1E      ; System.ClientModel.ClientResult:FromValue[OpenAI.Images.GeneratedImage](OpenAI.Images.GeneratedImage,System.ClientModel.Primitives.PipelineResponse):System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]\n        mov      rax, 0xD1FFAB1E      ; code for System.ClientModel.ClientResult:FromValue[System.__Canon](System.__Canon,System.ClientModel.Primitives.PipelineResponse):System.ClientModel.ClientResult\u00601[System.__Canon]\n        call     [rax]System.ClientModel.ClientResult:FromValue[System.__Canon](System.__Canon,System.ClientModel.Primitives.PipelineResponse):System.ClientModel.ClientResult\u00601[System.__Canon]\n        mov      rbx, rax\n-       jmp      SHORT G_M1948_IG10\n-\t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 8.00\n-G_M1948_IG09:\n\u002B       jmp      SHORT G_M1948_IG07\n\u002B\t\t\t\t\t\t;; size=144 bbWeight=1 PerfScore 35.25\n\u002BG_M1948_IG06:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M1948_IG10:\n\u002BG_M1948_IG07:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=20 bbWeight=1 PerfScore 4.50\n-G_M1948_IG11:\n\u002BG_M1948_IG08:\n        add      rsp, 32\n        pop      rbx\n        pop      r13\n@@ -156,7 \u002B137,7 @@ G_M1948_IG11:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n-G_M1948_IG12:\n\u002BG_M1948_IG09:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -168,23 \u002B149,23 @@ G_M1948_IG12:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M1948_IG13:\n\u002BG_M1948_IG10:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M1948_IG14:\n\u002BG_M1948_IG11:\n        cmp      gword ptr [rbp-0x38], 0\n-       je       SHORT G_M1948_IG15\n\u002B       je       SHORT G_M1948_IG12\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M1948_IG15:\n\u002BG_M1948_IG12:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M1948_IG16:\n\u002BG_M1948_IG13:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 484, prolog size 39, PerfScore 81.12, instruction count 119, allocated bytes for code 484 (MethodHash=b49cf863) for method OpenAI.Images.ImageClient:GenerateImageVariation(System.IO.Stream,System.String,OpenAI.Images.ImageVariationOptions,System.Threading.CancellationToken):System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]:this (FullOpts)\n\u002B; Total bytes of code 432, prolog size 39, PerfScore 73.12, instruction count 106, allocated bytes for code 432 (MethodHash=b49cf863) for method OpenAI.Images.ImageClient:GenerateImageVariation(System.IO.Stream,System.String,OpenAI.Images.ImageVariationOptions,System.Threading.CancellationToken):System.ClientModel.ClientResult\u00601[OpenAI.Images.GeneratedImage]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":484,"DiffBytes":432},{"Assembly":"Pomelo.EntityFrameworkCore.MySql.dasm","Method":"Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitDistinct(Microsoft.EntityFrameworkCore.Query.SqlExpressions.DistinctExpression):System.Linq.Expressions.Expression:this (FullOpts)","Category":"improvement","Description":"388 -\u003E 196 bytes (-192)","ExtraInfo":null,"Diff":"@@ -1,145 \u002B1,85 @@\n ; Assembly listing for method Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitDistinct(Microsoft.EntityFrameworkCore.Query.SqlExpressions.DistinctExpression):System.Linq.Expressions.Expression:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 0 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] (  9,  8.50)     ref  -\u003E  rbx         this class-hnd single-def \u003CPomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor\u003E\n-;  V01 arg1         [V01,T02] (  6,  6   )     ref  -\u003E  r15         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.DistinctExpression\u003E\n-;  V02 loc0         [V02,T12] (  2,  2   )   ubyte  -\u003E  r14         single-def\n-;  V03 loc1         [V03,T07] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\u003E\n\u002B;  V00 this         [V00,T00] (  7,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CPomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor\u003E\n\u002B;  V01 arg1         [V01,T01] (  6,  6   )     ref  -\u003E  r15         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.DistinctExpression\u003E\n\u002B;  V02 loc0         [V02,T07] (  2,  2   )   ubyte  -\u003E  r14         single-def\n\u002B;  V03 loc1         [V03,T06] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V05 tmp1         [V05,T14] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;* V06 tmp2         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V07 tmp3         [V07,T01] (  8,  9   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.DistinctExpression\u003E\n-;  V08 tmp4         [V08,T05] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Boolean\u003E\n-;  V09 tmp5         [V09,T08] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u0022impImportAndPushBox\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.ISqlExpressionFactory\u003E\n-;  V10 tmp6         [V10,T09] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022impImportAndPushBox\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.ISqlExpressionFactory\u003E\n-;  V11 tmp7         [V11,T03] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V12 tmp8         [V12,T04] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V13 tmp9         [V13,T10] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V14 tmp10        [V14,T11] (  2,  2   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V15 cse0         [V15,T06] (  3,  3   )    long  -\u003E  r13         \u0022CSE #03: aggressive\u0022\n-;  V16 cse1         [V16,T13] (  3,  1.50)     ref  -\u003E  rdi         \u0022CSE #05: moderate\u0022\n\u002B;  V05 tmp1         [V05,T08] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;* V06 tmp2         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.DistinctExpression\u003E\n\u002B;  V07 tmp3         [V07,T02] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.DistinctExpression\u003E\n\u002B;  V08 tmp4         [V08,T03] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V09 tmp5         [V09,T04] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V10 cse0         [V10,T05] (  3,  3   )    long  -\u003E  r13         \u0022CSE #03: aggressive\u0022\n ;\n ; Lcl frame size = 0\n \n G_M42383_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     rbx\n        lea      rbp, [rsp\u002B0x20]\n        mov      rbx, rdi\n        mov      r15, rsi\n \t\t\t\t\t\t;; size=19 bbWeight=1 PerfScore 6.00\n G_M42383_IG02:\n        test     r15, r15\n-       je       G_M42383_IG08\n\u002B       je       SHORT G_M42383_IG04\n        movzx    r14, byte  ptr [rbx\u002B0x10]\n        mov      byte  ptr [rbx\u002B0x10], 0\n        mov      rdi, r15\n        mov      rax, qword ptr [r15]\n        mov      r13, qword ptr [rax\u002B0x48]\n        call     [r13\u002B0x30]Microsoft.EntityFrameworkCore.Query.SqlExpressions.DistinctExpression:get_Operand():Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n        mov      rsi, rax\n        mov      rdi, rbx\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x20]System.Linq.Expressions.ExpressionVisitor:Visit(System.Linq.Expressions.Expression):System.Linq.Expressions.Expression:this\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rax]CORINFO_HELP_CHKCASTCLASS\n        mov      rsi, rax\n        mov      byte  ptr [rbx\u002B0x10], r14b\n        mov      rdi, r15\n        call     [r13\u002B0x38]Microsoft.EntityFrameworkCore.Query.SqlExpressions.DistinctExpression:Update(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression):Microsoft.EntityFrameworkCore.Query.SqlExpressions.DistinctExpression:this\n-       mov      r15, rax\n-       cmp      byte  ptr [rbx\u002B0x10], 0\n-       je       SHORT G_M42383_IG04\n-\t\t\t\t\t\t;; size=96 bbWeight=1 PerfScore 30.50\n\u002B       nop      \n\u002B\t\t\t\t\t\t;; size=84 bbWeight=1 PerfScore 27.50\n G_M42383_IG03:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Microsoft.EntityFrameworkCore.Query.SqlExpressions.ColumnExpression\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M42383_IG04\n-       mov      rdi, r15\n-       mov      rax, qword ptr [r15]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-       call     [rax\u002B0x10]Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:get_TypeMapping():Microsoft.EntityFrameworkCore.Storage.RelationalTypeMapping:this\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; Pomelo.EntityFrameworkCore.MySql.Storage.Internal.MySqlBoolTypeMapping\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M42383_IG04\n-       mov      rdi, r15\n-       mov      rax, qword ptr [r15]\n-       mov      rax, qword ptr [rax\u002B0x40]\n-       call     [rax\u002B0x28]System.Linq.Expressions.Expression:get_Type():System.Type:this\n-       mov      rdi, 0xD1FFAB1E      ; \u0027System.Boolean\u0027\n-       cmp      rax, rdi\n-       je       SHORT G_M42383_IG06\n-\t\t\t\t\t\t;; size=101 bbWeight=0.50 PerfScore 13.00\n-G_M42383_IG04:\n-       mov      rax, r15\n-\t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M42383_IG05:\n        pop      rbx\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 1.75\n-G_M42383_IG06:\n-       mov      rdi, 0xD1FFAB1E      ; System.Boolean\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      rdi, gword ptr [rbx\u002B0x08]\n-       mov      rbx, rdi\n-       mov      byte  ptr [rax\u002B0x08], 1\n-       mov      rsi, rax\n-       mov      r11, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Constant(System.Object,Microsoft.EntityFrameworkCore.Storage.RelationalTypeMapping):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-       xor      rdx, rdx\n-       call     [r11]Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Constant(System.Object,Microsoft.EntityFrameworkCore.Storage.RelationalTypeMapping):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-       mov      rdx, rax\n-       mov      rdi, rbx\n-       mov      rsi, r15\n-       mov      r11, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Equal(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-       cmp      dword ptr [rdi], edi\n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 5.62\n-G_M42383_IG07:\n-       pop      rbx\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [r11]Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory:Equal(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression:this\n-\t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 2.25\n-G_M42383_IG08:\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.50\n\u002BG_M42383_IG04:\n        mov      rdi, 0xD1FFAB1E      ; \u0027distinctExpression\u0027\n        mov      rsi, 0xD1FFAB1E      ; \u0027parameterName\u0027\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Utilities.Check:NotEmpty(System.String,System.String):System.String\n        call     [rax]Microsoft.EntityFrameworkCore.Utilities.Check:NotEmpty(System.String,System.String):System.String\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; \u0027distinctExpression\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:.ctor(System.String):this\n        call     [rax]System.ArgumentNullException:.ctor(System.String):this\n        mov      rdi, rbx\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=84 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 388, prolog size 13, PerfScore 59.25, instruction count 96, allocated bytes for code 388 (MethodHash=fc765a70) for method Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitDistinct(Microsoft.EntityFrameworkCore.Query.SqlExpressions.DistinctExpression):System.Linq.Expressions.Expression:this (FullOpts)\n\u002B; Total bytes of code 196, prolog size 13, PerfScore 37.00, instruction count 50, allocated bytes for code 196 (MethodHash=fc765a70) for method Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlBoolOptimizingExpressionVisitor:VisitDistinct(Microsoft.EntityFrameworkCore.Query.SqlExpressions.DistinctExpression):System.Linq.Expressions.Expression:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":388,"DiffBytes":196},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.RateCards.CustomPricingUnitOverageRateService:ListAutoPaging(System.String,Stripe.V2.Billing.RateCards.CustomPricingUnitOverageRateListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.RateCardCustomPricingUnitOverageRate]:this (FullOpts)","Category":"improvement","Description":"513 -\u003E 464 bytes (-49)","ExtraInfo":null,"Diff":"@@ -9,33 \u002B9,32 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T05] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.RateCards.CustomPricingUnitOverageRateService\u003E\n-;  V01 arg1         [V01,T08] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.RateCards.CustomPricingUnitOverageRateListOptions\u003E\n-;  V03 arg3         [V03,T07] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T07] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V02 arg2         [V02,T08] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.RateCards.CustomPricingUnitOverageRateListOptions\u003E\n\u002B;  V03 arg3         [V03,T06] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T11] (  3,  2   )     ref  -\u003E  r15         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.RateCardCustomPricingUnitOverageRate]\u003E\n ;  V06 tmp2         [V06,T02] (  4,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V07 tmp3         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V08 tmp4         [V08,T12] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;  V09 tmp5         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.RateCardCustomPricingUnitOverageRate]\u003E\n-;* V10 tmp6         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp8         [V12,T03] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.RateCardCustomPricingUnitOverageRate]\u003E\n-;  V13 tmp9         [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.RateCardCustomPricingUnitOverageRate]\u003E\n-;* V14 tmp10        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp11        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp12        [V16,T04] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.RateCardCustomPricingUnitOverageRate]\u003E\n-;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V07._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp14        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp15        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp16        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp17        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 tmp18        [V22,T09] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V23 cse0         [V23,T10] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #02: moderate\u0022\n-;  V24 rat0         [V24,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T15] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T16] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.RateCardCustomPricingUnitOverageRate]\u003E\n\u002B;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp6         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp7         [V11,T03] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.RateCardCustomPricingUnitOverageRate]\u003E\n\u002B;  V12 tmp8         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.RateCardCustomPricingUnitOverageRate]\u003E\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp11        [V15,T04] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.RateCardCustomPricingUnitOverageRate]\u003E\n\u002B;* V16 tmp12        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V07._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp14        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp15        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp16        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 tmp17        [V21,T09] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V22 cse0         [V22,T10] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #02: moderate\u0022\n\u002B;  V23 rat0         [V23,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T15] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n@@ -49,8 \u002B48,8 @@ G_M26280_IG01:\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rdx\n-       mov      r14, rcx\n\u002B       mov      r14, rdx\n\u002B       mov      r15, rcx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M26280_IG02:\n        mov      rdi, rsi\n@@ -69,49 \u002B68,41 @@ G_M26280_IG02:\n        je       G_M26280_IG04\n \t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 12.50\n G_M26280_IG03:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.RateCardCustomPricingUnitOverageRate]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n-       mov      eax, dword ptr [rax\u002B0x10]\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, dword ptr [rax\u002B0x10]\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x28]\n\u002B       lea      rdi, bword ptr [r14\u002B0x28]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.RateCardCustomPricingUnitOverageRate]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        mov      dword ptr [r15\u002B0x28], -2\n-       mov      r14d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r15\u002B0x2C], r14d\n\u002B       mov      dword ptr [r15\u002B0x2C], r12d\n        lea      rdi, bword ptr [r15\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M26280_IG05\n-\t\t\t\t\t\t;; size=212 bbWeight=0.50 PerfScore 16.00\n\u002B\t\t\t\t\t\t;; size=164 bbWeight=0.50 PerfScore 12.75\n G_M26280_IG04:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.RateCardCustomPricingUnitOverageRate]\n        call     CORINFO_HELP_NEWSFAST\n@@ -134,10 \u002B125,10 @@ G_M26280_IG04:\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n@@ -145,12 \u002B136,12 @@ G_M26280_IG04:\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        mov      dword ptr [r15\u002B0x28], -2\n-       mov      r14d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r15\u002B0x2C], r14d\n\u002B       mov      ebx, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r15\u002B0x2C], ebx\n        lea      rdi, bword ptr [r15\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=181 bbWeight=0.50 PerfScore 13.12\n\u002B\t\t\t\t\t\t;; size=180 bbWeight=0.50 PerfScore 13.12\n G_M26280_IG05:\n        mov      rax, r15\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n@@ -165,5 \u002B156,5 @@ G_M26280_IG06:\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 513, prolog size 16, PerfScore 54.38, instruction count 113, allocated bytes for code 513 (MethodHash=dfea9957) for method Stripe.V2.Billing.RateCards.CustomPricingUnitOverageRateService:ListAutoPaging(System.String,Stripe.V2.Billing.RateCards.CustomPricingUnitOverageRateListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.RateCardCustomPricingUnitOverageRate]:this (FullOpts)\n\u002B; Total bytes of code 464, prolog size 16, PerfScore 51.12, instruction count 105, allocated bytes for code 464 (MethodHash=dfea9957) for method Stripe.V2.Billing.RateCards.CustomPricingUnitOverageRateService:ListAutoPaging(System.String,Stripe.V2.Billing.RateCards.CustomPricingUnitOverageRateListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.RateCardCustomPricingUnitOverageRate]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":513,"DiffBytes":464},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.DistributedReaderWriterLockProviderExtensions:TryAcquireAllWriteLocks(Medallion.Threading.IDistributedReaderWriterLockProvider,System.Collections.Generic.IReadOnlyList\u00601[System.String],System.TimeSpan,System.Threading.CancellationToken):Medallion.Threading.IDistributedSynchronizationHandle (FullOpts)","Category":"same-size","Description":"708 -\u003E 708 bytes (0)","ExtraInfo":null,"Diff":"@@ -109,7 \u002B109,7 @@ G_M5136_IG04:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        movzx    rsi, byte  ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], esi\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 6.75\n@@ -269,7 \u002B269,7 @@ G_M5136_IG23:\n        sub      rsp, 40\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n G_M5136_IG24:\n-       mov      edi, 70\n\u002B       mov      edi, 68\n        call     CORINFO_HELP_GETDYNAMIC_NONGCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED2\n        mov      rbx, rax\n        mov      eax, dword ptr [rbp-0x2C]","Truncated":true,"BaseBytes":708,"DiffBytes":708},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher:MatchSplitErrors():this (FullOpts)","Category":"improvement","Description":"1,749 -\u003E 1,631 bytes (-118)","ExtraInfo":null,"Diff":"@@ -8,85 \u002B8,85 @@\n ; 0 inlinees with PGO data; 35 single block inlinees; 14 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T10] (  8, 12   )     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher\u003E\n-;  V01 loc0         [V01,T46] (  6,  3.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n-;  V02 loc1         [V02,T48] (  3,  3   )     ref  -\u003E  [rbp-0x58]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper\u003E\n-;  V03 loc2         [V03,T21] (  4,  8.50)     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySetBase\u003E\n-;  V04 loc3         [V04,T20] (  6,  8.50)     ref  -\u003E  [rbp-0x60]  class-hnd EH-live spill-single-def \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n\u002B;  V00 this         [V00,T08] (  8, 12   )     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher\u003E\n\u002B;  V01 loc0         [V01,T44] (  6,  3.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n\u002B;  V02 loc1         [V02,T46] (  3,  3   )     ref  -\u003E  [rbp-0x58]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper\u003E\n\u002B;  V03 loc2         [V03,T20] (  4,  8.50)     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySetBase\u003E\n\u002B;  V04 loc3         [V04,T19] (  6,  8.50)     ref  -\u003E  [rbp-0x60]  class-hnd EH-live spill-single-def \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n ;  V05 loc4         [V05,T06] (  7, 18   )     ref  -\u003E  r15         class-hnd \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T41] (  2,  4   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper,bool]\u003E\n-;  V08 tmp2         [V08,T42] (  2,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n\u002B;  V07 tmp1         [V07,T38] (  2,  4   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper,bool]\u003E\n\u002B;  V08 tmp2         [V08,T39] (  2,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n ;* V09 tmp3         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V10 tmp4         [V10,T47] (  4,  3.50)     ref  -\u003E  rdx        \n-;  V11 tmp5         [V11,T26] (  2,  8   )     ref  -\u003E  r12         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.ErrorLog\u003E\n-;  V12 tmp6         [V12,T27] (  2,  8   )     ref  -\u003E  [rbp-0x68]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V13 tmp7         [V13,T28] (  2,  8   )     ref  -\u003E  [rbp-0x70]  class-hnd exact spill-single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n-;  V14 tmp8         [V14,T11] (  3, 12   )     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V10 tmp4         [V10,T45] (  4,  3.50)     ref  -\u003E  rdx        \n\u002B;  V11 tmp5         [V11,T24] (  2,  8   )     ref  -\u003E  r12         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.ErrorLog\u003E\n\u002B;  V12 tmp6         [V12,T25] (  2,  8   )     ref  -\u003E  [rbp-0x68]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V13 tmp7         [V13,T26] (  2,  8   )     ref  -\u003E  [rbp-0x70]  class-hnd exact spill-single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n\u002B;  V14 tmp8         [V14,T09] (  3, 12   )     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n ;  V15 tmp9         [V15,T01] (  8, 32   )     ref  -\u003E  [rbp-0x80]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.ErrorLog\u002BRecord\u003E\n-;  V16 tmp10        [V16,T40] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper,bool]\u003E\n\u002B;  V16 tmp10        [V16,T37] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper,bool]\u003E\n ;* V17 tmp11        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.ViewgenContext\u003E\n-;  V18 tmp12        [V18,T50] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher\u002B\u003C\u003Ec\u003E\n\u002B;  V18 tmp12        [V18,T48] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher\u002B\u003C\u003Ec\u003E\n ;* V19 tmp13        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.ViewgenContext\u003E\n ;  V20 tmp14        [V20    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V22 tmp16        [V22,T52] (  3,  1.50)     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper\u003E\n-;  V23 tmp17        [V23,T49] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n\u002B;  V22 tmp16        [V22,T50] (  3,  1.50)     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper\u003E\n\u002B;  V23 tmp17        [V23,T47] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n ;* V24 tmp18        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellQuery\u003E\n ;* V25 tmp19        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath\u003E\n ;* V26 tmp20        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellQuery\u003E\n ;* V27 tmp21        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath\u003E\n ;* V28 tmp22        [V28    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V29 tmp23        [V29,T33] (  3,  6   )     ref  -\u003E  r12         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.QueryRewriting.FragmentQuery\u003E\n-;  V30 tmp24        [V30,T34] (  3,  6   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.QueryRewriting.FragmentQuery\u003E\n\u002B;  V29 tmp23        [V29,T31] (  3,  6   )     ref  -\u003E  r12         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.QueryRewriting.FragmentQuery\u003E\n\u002B;  V30 tmp24        [V30,T32] (  3,  6   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.QueryRewriting.FragmentQuery\u003E\n ;* V31 tmp25        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.ViewgenContext\u003E\n-;* V32 tmp26        [V32,T51] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V32 tmp26        [V32,T49] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V33 tmp27        [V33,T03] (  6, 24   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.QueryRewriting.FragmentQueryProcessor\u003E\n-;  V34 tmp28        [V34,T07] (  4, 16   )     ref  -\u003E  [rbp-0x98]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n-;  V35 tmp29        [V35    ] (  3,  6   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n... diff truncated; middle omitted ...\n        mov      r15, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=2 PerfScore 9.00\n-G_M16788_IG18:\n        cmp      byte  ptr [rbp-0x40], 0\n-       je       G_M16788_IG23\n\u002B       je       G_M16788_IG19\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Mapping.ViewGeneration.Structures.ErrorLog\u002BRecord\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x80], rax\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell[]\n        mov      esi, 1\n        call     CORINFO_HELP_NEWARR_1_PTR\n-       mov      gword ptr [rbp-0xB0], rax\n\u002B       mov      gword ptr [rbp-0xA8], rax\n        lea      rdi, bword ptr [rax\u002B0x10]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -364,7 \u002B328,7 @@ G_M16788_IG18:\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        mov      rdi, r15\n-       mov      rsi, gword ptr [rbp-0xB0]\n\u002B       mov      rsi, gword ptr [rbp-0xA8]\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:.ctor(System.Collections.Generic.IEnumerable\u00601[System.__Canon]):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:.ctor(System.Collections.Generic.IEnumerable\u00601[System.__Canon]):this\n        mov      rax, gword ptr [rbp-0x80]\n@@ -375,23 \u002B339,23 @@ G_M16788_IG18:\n        mov      rdx, gword ptr [r15\u002B0x10]\n        mov      rdi, rdx\n        cmp      dword ptr [rdi\u002B0x10], 0\n-       je       G_M16788_IG24\n\u002B       je       G_M16788_IG20\n        mov      rdi, gword ptr [rdi\u002B0x08]\n        cmp      dword ptr [rdi\u002B0x08], 0\n-       jbe      G_M16788_IG26\n\u002B       jbe      G_M16788_IG22\n\u002B\t\t\t\t\t\t;; size=194 bbWeight=2 PerfScore 67.50\n\u002BG_M16788_IG15:\n        mov      rdi, gword ptr [rdi\u002B0x10]\n        mov      rdi, gword ptr [rdi\u002B0x18]\n        mov      rax, gword ptr [rdi\u002B0x08]\n-       mov      gword ptr [rbp-0xB8], rax\n\u002B       mov      gword ptr [rbp-0xB0], rax\n        mov      r9d, dword ptr [rdi\u002B0x10]\n        mov      dword ptr [rbp-0x44], r9d\n        mov      r10d, dword ptr [rdi\u002B0x14]\n        mov      dword ptr [rbp-0x48], r10d\n        mov      rdi, gword ptr [rbp-0x78]\n        mov      r11, 0xD1FFAB1E      ; \u0027\u0027\n-\t\t\t\t\t\t;; size=208 bbWeight=2 PerfScore 85.50\n-G_M16788_IG19:\n-       mov      gword ptr [rbp-0xC8], r11\n\u002B       mov      gword ptr [rbp-0xC0], r11\n        mov      rsi, r11\n        mov      ecx, 0xBD9\n        xor      r8d, r8d\n@@ -400,7 \u002B364,7 @@ G_M16788_IG19:\n        mov      r14, rax\n        mov      rdx, gword ptr [r15\u002B0x10]\n        mov      rdi, gword ptr [rbp-0x78]\n-       mov      rsi, gword ptr [rbp-0xC8]\n\u002B       mov      rsi, gword ptr [rbp-0xC0]\n        mov      ecx, 0xBD9\n        mov      r8d, 1\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Mapping.ViewGeneration.Structures.ErrorLog\u002BRecord:InternalToString(System.String,System.String,System.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell],int,bool):System.String\n@@ -410,30 \u002B374,30 @@ G_M16788_IG19:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Metadata.Edm.EdmSchemaError\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0xC0], rax\n\u002B       mov      gword ptr [rbp-0xB8], rax\n        mov      qword ptr [rax\u002B0x28], -1\n-       mov      rdi, gword ptr [rbp-0xC8]\n\u002B       mov      rdi, gword ptr [rbp-0xC0]\n        mov      gword ptr [rax\u002B0x18], rdi\n        mov      rdi, r14\n        mov      rcx, 0xD1FFAB1E      ; code for System.String:IsNullOrWhiteSpace(System.String):bool\n        call     [rcx]System.String:IsNullOrWhiteSpace(System.String):bool\n        test     eax, eax\n-       jne      G_M16788_IG25\n-       mov      rax, gword ptr [rbp-0xC0]\n\u002B       jne      G_M16788_IG21\n\u002B       mov      rax, gword ptr [rbp-0xB8]\n        lea      rdi, bword ptr [rax\u002B0x08]\n        mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, 0xD1FFAB1E\n-       mov      r14, gword ptr [rbp-0xC0]\n\u002B\t\t\t\t\t\t;; size=226 bbWeight=2 PerfScore 84.00\n\u002BG_M16788_IG16:\n\u002B       mov      r14, gword ptr [rbp-0xB8]\n        mov      qword ptr [r14\u002B0x20], rdi\n        lea      rdi, bword ptr [r14\u002B0x10]\n-       mov      rsi, gword ptr [rbp-0xB8]\n\u002B       mov      rsi, gword ptr [rbp-0xB0]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      edi, dword ptr [rbp-0x44]\n        mov      dword ptr [r14\u002B0x28], edi\n        mov      edi, dword ptr [rbp-0x48]\n-\t\t\t\t\t\t;; size=214 bbWeight=2 PerfScore 70.50\n-G_M16788_IG20:\n        mov      dword ptr [r14\u002B0x2C], edi\n        lea      rdi, bword ptr [r15\u002B0x08]\n        mov      rsi, r14\n@@ -443,14 \u002B407,14 @@ G_M16788_IG20:\n        mov      rax, gword ptr [rdi\u002B0x08]\n        mov      r14d, dword ptr [rdi\u002B0x10]\n        cmp      dword ptr [rax\u002B0x08], r14d\n-       ja       SHORT G_M16788_IG21\n\u002B       ja       SHORT G_M16788_IG17\n        mov      rsi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        mov      r14, gword ptr [rbp-0x58]\n        jmp      G_M16788_IG08\n-\t\t\t\t\t\t;; size=62 bbWeight=2 PerfScore 42.50\n-G_M16788_IG21:\n\u002B\t\t\t\t\t\t;; size=99 bbWeight=2 PerfScore 57.50\n\u002BG_M16788_IG17:\n        lea      esi, [r14\u002B0x01]\n        mov      dword ptr [rdi\u002B0x10], esi\n        mov      esi, r14d\n@@ -461,23 \u002B425,23 @@ G_M16788_IG21:\n        mov      r14, gword ptr [rbp-0x58]\n        jmp      G_M16788_IG08\n \t\t\t\t\t\t;; size=37 bbWeight=2 PerfScore 17.00\n-G_M16788_IG22:\n\u002BG_M16788_IG18:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M16788_IG23:\n\u002BG_M16788_IG19:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M16788_IG24:\n\u002BG_M16788_IG20:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M16788_IG25:\n\u002BG_M16788_IG21:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -492,20 \u002B456,20 @@ G_M16788_IG25:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=67 bbWeight=0 PerfScore 0.00\n-G_M16788_IG26:\n\u002BG_M16788_IG22:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n-G_M16788_IG27:\n\u002BG_M16788_IG23:\n        mov      rdi, gword ptr [rbp-0x60]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.12\n-G_M16788_IG28:\n\u002BG_M16788_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M16788_IG29:\n-       add      rsp, 168\n\u002BG_M16788_IG25:\n\u002B       add      rsp, 152\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -514,34 \u002B478,34 @@ G_M16788_IG29:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M16788_IG30:\n\u002BG_M16788_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M16788_IG31:\n\u002BG_M16788_IG27:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M16788_IG32:\n\u002BG_M16788_IG28:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M16788_IG33:\n\u002BG_M16788_IG29:\n        cmp      gword ptr [rbp-0x60], 0\n-       je       SHORT G_M16788_IG34\n\u002B       je       SHORT G_M16788_IG30\n        mov      rdi, gword ptr [rbp-0x60]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M16788_IG34:\n\u002BG_M16788_IG30:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M16788_IG35:\n\u002BG_M16788_IG31:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1749, prolog size 44, PerfScore 682.96, instruction count 384, allocated bytes for code 1749 (MethodHash=3296be6b) for method System.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher:MatchSplitErrors():this (FullOpts)\n\u002B; Total bytes of code 1631, prolog size 44, PerfScore 618.96, instruction count 356, allocated bytes for code 1631 (MethodHash=3296be6b) for method System.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher:MatchSplitErrors():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1749,"DiffBytes":1631},{"Assembly":"MathNet.Numerics.dasm","Method":"MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:SameAs[System.Numerics.Vector\u00601[float]](MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this (FullOpts)","Category":"improvement","Description":"594 -\u003E 120 bytes (-474)","ExtraInfo":null,"Diff":"@@ -1,214 \u002B1,65 @@\n ; Assembly listing for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:SameAs[System.Numerics.Vector\u00601[float]](MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n-; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data\n\u002B; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 12,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]\u003E\n-;  V01 arg1         [V01,T03] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V02 arg2         [V02,T01] ( 11,  6.50)     int  -\u003E  r15         single-def\n-;  V03 arg3         [V03,T02] ( 11,  6.50)     int  -\u003E  r14         single-def\n-;  V04 arg4         [V04,T04] (  3,  2.50)   ubyte  -\u003E  r13         single-def\n-;  V05 loc0         [V05,T08] (  4,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]\u003E\n\u002B;  V01 arg1         [V01,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  4   )     int  -\u003E  r15         single-def\n\u002B;  V03 arg3         [V03,T04] (  4,  4   )     int  -\u003E  r14         single-def\n\u002B;* V04 arg4         [V04    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def\n\u002B;* V05 loc0         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]\u003E\n\u002B;  V07 tmp1         [V07,T00] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cdouble[]\u003E\n-;  V09 tmp3         [V09,T06] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[double]\u003E\n-;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cdouble[]\u003E\n-;  V11 tmp5         [V11,T11] (  2,  1   )     int  -\u003E  rsi         \u0022Inline return value spill temp\u0022\n-;  V12 tmp6         [V12,T09] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]\u003E\n-;  V13 tmp7         [V13,T10] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]\u003E\n-;  V14 tmp8         [V14,T07] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]\u003E\n-;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cdouble[]\u003E\n-;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022Single return block return value\u0022\n ;\n ; Lcl frame size = 8\n \n G_M49596_IG01:\n-       push     rbp\n        push     r15\n        push     r14\n        push     r13\n-       push     r12\n        push     rbx\n        push     rax\n-       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n        mov      r15d, edx\n        mov      r14d, ecx\n-       mov      r13d, r8d\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.75\n G_M49596_IG02:\n-       mov      r12, gword ptr [rsi\u002B0x08]\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M49596_IG11\n-\t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 7.00\n-G_M49596_IG03:\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[double]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M49596_IG07\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      SHORT G_M49596_IG05\n\u002B       cmp      byte  ptr [rsi], sil\n        mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        mov      rdi, r13\n        mov      esi, r15d\n        mov      edx, r14d\n        mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]:.ctor(int,int):this\n        call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]:.ctor(int,int):this\n        imul     r15d, r14d\n        movsxd   rsi, r15d\n        mov      rdi, 0xD1FFAB1E      ; double[]\n        call     CORINFO_HELP_NEWARR_1_PTR\n        mov      rsi, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, rbx\n        mov      rsi, r13\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=150 bbWeight=0.50 PerfScore 12.62\n-G_M49596_IG04:\n\u002B\t\t\t\t\t\t;; size=89 bbWeight=1 PerfScore 17.25\n\u002BG_M49596_IG03:\n        add      rsp, 8\n        pop      rbx\n-       pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n-       pop      rbp\n        tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M49596_IG05:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 5.00\n-G_M49596_IG06:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M49596_IG07:\n-       test     r13b, r13b\n-       je       SHORT G_M49596_IG09\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 5.62\n-G_M49596_IG08:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M49596_IG09:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[double]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]:.ctor(int,int):this\n-       cmp      r15d, r14d\n-       mov      esi, r14d\n-       cmovle   esi, r15d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; double[]\n-       call     CORINFO_HELP_NEWARR_1_PTR\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 7.12\n-G_M49596_IG10:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x10]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:Diagonal(MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[double]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M49596_IG11:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]:.ctor(int,int):this\n-       mov      esi, r15d\n-       imul     esi, r14d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; double[]\n-       call     CORINFO_HELP_NEWARR_1_PTR\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=89 bbWeight=0.50 PerfScore 7.75\n-G_M49596_IG12:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n\u002B\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 594, prolog size 16, PerfScore 66.75, instruction count 157, allocated bytes for code 594 (MethodHash=d7453e43) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:SameAs[System.Numerics.Vector\u00601[float]](MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this (FullOpts)\n\u002B; Total bytes of code 120, prolog size 8, PerfScore 27.25, instruction count 34, allocated bytes for code 120 (MethodHash=d7453e43) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:SameAs[System.Numerics.Vector\u00601[float]](MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":594,"DiffBytes":120},{"Assembly":"Microsoft.AspNetCore.OData.dasm","Method":"Microsoft.AspNetCore.OData.Query.Expressions.QueryBinder:CollectContainerAssignments(System.Linq.Expressions.Expression,System.Linq.Expressions.MethodCallExpression,System.Collections.Generic.Dictionary\u00602[System.String,System.Linq.Expressions.Expression]) (FullOpts)","Category":"improvement","Description":"345 -\u003E 292 bytes (-53)","ExtraInfo":null,"Diff":"@@ -1,128 \u002B1,107 @@\n ; Assembly listing for method Microsoft.AspNetCore.OData.Query.Expressions.QueryBinder:CollectContainerAssignments(System.Linq.Expressions.Expression,System.Linq.Expressions.MethodCallExpression,System.Collections.Generic.Dictionary\u00602[System.String,System.Linq.Expressions.Expression]) (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 3 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T02] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;  V00 arg0         [V00,T01] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Linq.Expressions.Expression\u003E\n ;  V01 arg1         [V01,T00] (  5,  5   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n-;  V02 arg2         [V02,T03] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Linq.Expressions.Expression]\u003E\n\u002B;  V02 arg2         [V02,T02] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Linq.Expressions.Expression]\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T04] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Linq.Expressions.MemberExpression\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Linq.Expressions.MemberExpression\u003E\n-;  V06 tmp3         [V06,T01] (  4,  7   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V07 tmp4         [V07    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V08 tmp5         [V08,T10] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V09 tmp6         [V09,T09] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V06 tmp3         [V06,T03] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V07 tmp4         [V07    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V08 tmp5         [V08,T09] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n ;  V10 tmp7         [V10,T05] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V11 tmp8         [V11,T06] (  2,  4   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n ;  V12 tmp9         [V12,T07] (  2,  4   )     ref  -\u003E  r15         single-def \u0022argument with side effect\u0022\n ;  V13 tmp10        [V13,T08] (  2,  4   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n ;\n-; Lcl frame size = 8\n\u002B; Lcl frame size = 16\n \n G_M27762_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n-       push     r12\n        push     rbx\n-       push     rax\n\u002B       sub      rsp, 16\n        lea      rbp, [rsp\u002B0x30]\n        xor      eax, eax\n-       mov      qword ptr [rbp-0x30], rax\n\u002B       mov      qword ptr [rbp-0x28], rax\n        mov      r15, rdi\n        mov      rbx, rsi\n        mov      r14, rdx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 9.50\n\u002B\t\t\t\t\t\t;; size=32 bbWeight=1 PerfScore 7.75\n G_M27762_IG02:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; \u0027GroupByContainer\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Expressions.Expression:Property(System.Linq.Expressions.Expression,System.String):System.Linq.Expressions.MemberExpression\n        call     [rax]System.Linq.Expressions.Expression:Property(System.Linq.Expressions.Expression,System.String):System.Linq.Expressions.MemberExpression\n        mov      r13, rax\n        mov      rdi, rbx\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x20]System.Linq.Expressions.MethodCallExpression:GetOrMakeArguments():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]:this\n-       mov      r12, rax\n-       test     r12, r12\n-       je       G_M27762_IG07\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M27762_IG04\n-\t\t\t\t\t\t;; size=83 bbWeight=1 PerfScore 17.75\n-G_M27762_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M27762_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M27762_IG04:\n-       lea      rdx, [rbp-0x30]\n-       mov      rsi, r12\n\u002B       je       G_M27762_IG04\n\u002B       lea      rdx, [rbp-0x28]\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Linq.Expressions.Expression](System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.Expression],byref):System.Linq.Expressions.Expression\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M27762_IG05:\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Expressions.MethodCallExpression\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        mov      rdi, rax\n        mov      rsi, 0xD1FFAB1E      ; \u0027GroupByContainer\u0027\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.AspNetCore.OData.Query.Expressions.QueryBinder:ExtractContainerExpression(System.Linq.Expressions.MethodCallExpression,System.String):System.Linq.Expressions.MemberInitExpression\n        call     [rax]Microsoft.AspNetCore.OData.Query.Expressions.QueryBinder:ExtractContainerExpression(System.Linq.Expressions.MethodCallExpression,System.String):System.Linq.Expressions.MemberInitExpression\n        mov      rdx, rax\n        mov      rsi, r13\n        mov      rdi, r14\n        xor      rcx, rcx\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.AspNetCore.OData.Query.Expressions.QueryBinder:CollectAssignments(System.Collections.Generic.IDictionary\u00602[System.String,System.Linq.Expressions.Expression],System.Linq.Expressions.Expression,System.Linq.Expressions.MemberInitExpression,System.String)\n        call     [rax]Microsoft.AspNetCore.OData.Query.Expressions.QueryBinder:CollectAssignments(System.Collections.Generic.IDictionary\u00602[System.String,System.Linq.Expressions.Expression],System.Linq.Expressions.Expression,System.Linq.Expressions.MemberInitExpression,System.String)\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; \u0027Container\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Expressions.Expression:Property(System.Linq.Expressions.Expression,System.String):System.Linq.Expressions.MemberExpression\n        call     [rax]System.Linq.Expressions.Expression:Property(System.Linq.Expressions.Expression,System.String):System.Linq.Expressions.MemberExpression\n        mov      r15, rax\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; \u0027Container\u0027\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.AspNetCore.OData.Query.Expressions.QueryBinder:ExtractContainerExpression(System.Linq.Expressions.MethodCallExpression,System.String):System.Linq.Expressions.MemberInitExpression\n        call     [rax]Microsoft.AspNetCore.OData.Query.Expressions.QueryBinder:ExtractContainerExpression(System.Linq.Expressions.MethodCallExpression,System.String):System.Linq.Expressions.MemberInitExpression\n        mov      rdx, rax\n        mov      rsi, r15\n        mov      rdi, r14\n        xor      rcx, rcx\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.AspNetCore.OData.Query.Expressions.QueryBinder:CollectAssignments(System.Collections.Generic.IDictionary\u00602[System.String,System.Linq.Expressions.Expression],System.Linq.Expressions.Expression,System.Linq.Expressions.MemberInitExpression,System.String)\n        call     [rax]Microsoft.AspNetCore.OData.Query.Expressions.QueryBinder:CollectAssignments(System.Collections.Generic.IDictionary\u00602[System.String,System.Linq.Expressions.Expression],System.Linq.Expressions.Expression,System.Linq.Expressions.MemberInitExpression,System.String)\n        nop      \n-\t\t\t\t\t\t;; size=150 bbWeight=1 PerfScore 24.00\n-G_M27762_IG06:\n-       add      rsp, 8\n\u002B\t\t\t\t\t\t;; size=229 bbWeight=1 PerfScore 40.75\n\u002BG_M27762_IG03:\n\u002B       add      rsp, 16\n        pop      rbx\n-       pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M27762_IG07:\n\u002B\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n\u002BG_M27762_IG04:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 345, prolog size 22, PerfScore 62.50, instruction count 84, allocated bytes for code 345 (MethodHash=8041938d) for method Microsoft.AspNetCore.OData.Query.Expressions.QueryBinder:CollectContainerAssignments(System.Linq.Expressions.Expression,System.Linq.Expressions.MethodCallExpression,System.Collections.Generic.Dictionary\u00602[System.String,System.Linq.Expressions.Expression]) (FullOpts)\n\u002B; Total bytes of code 292, prolog size 23, PerfScore 52.25, instruction count 69, allocated bytes for code 292 (MethodHash=8041938d) for method Microsoft.AspNetCore.OData.Query.Expressions.QueryBinder:CollectContainerAssignments(System.Linq.Expressions.Expression,System.Linq.Expressions.MethodCallExpression,System.Collections.Generic.Dictionary\u00602[System.String,System.Linq.Expressions.Expression]) (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":345,"DiffBytes":292},{"Assembly":"Microsoft.EntityFrameworkCore.dasm","Method":"Microsoft.EntityFrameworkCore.Query.ExpressionPrinter:VisitLambda[int](System.Linq.Expressions.Expression\u00601[int]):System.Linq.Expressions.Expression:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 797 bytes (-52)","ExtraInfo":null,"Diff":"@@ -8,34 \u002B8,34 @@\n ; 0 inlinees with PGO data; 10 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T02] ( 12, 24   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.ExpressionPrinter\u003E\n\u002B;  V00 this         [V00,T01] ( 12, 24   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.ExpressionPrinter\u003E\n ;  V01 arg1         [V01,T05] ( 10, 13   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Linq.Expressions.Expression\u00601[int]\u003E\n ;  V02 loc0         [V02,T00] ( 12, 28   )     ref  -\u003E  [rbp-0x38]  do-not-enreg[M] class-hnd EH-live \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;  V03 loc1         [V03,T04] (  5, 20   )     ref  -\u003E  r13         class-hnd \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n-;  V04 loc2         [V04,T10] (  2,  8   )     ref  -\u003E  rdx         class-hnd exact \u003CSystem.String\u003E\n-;  V05 loc3         [V05,T11] (  2,  8   )     ref  -\u003E  rsi         class-hnd \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n\u002B;  V04 loc2         [V04,T08] (  2,  8   )     ref  -\u003E  rdx         class-hnd exact \u003CSystem.String\u003E\n\u002B;  V05 loc3         [V05,T09] (  2,  8   )     ref  -\u003E  rsi         class-hnd \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V08 tmp2         [V08,T19] (  3,  2   )     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V09 tmp3         [V09,T13] (  3,  5   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V08 tmp2         [V08,T18] (  3,  2   )     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V09 tmp3         [V09,T12] (  3,  5   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V11 tmp5         [V11,T03] (  3, 24   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Linq.Expressions.ParameterExpression,System.String]\u003E\n-;  V12 tmp6         [V12,T01] (  4, 28   )     ref  -\u003E  r12         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V13 tmp7         [V13    ] (  3,  8   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V11 tmp5         [V11,T02] (  3, 24   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Linq.Expressions.ParameterExpression,System.String]\u003E\n\u002B;  V12 tmp6         [V12,T03] (  3, 24   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V13 tmp7         [V13    ] (  2,  8   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V14 tmp8         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V15 tmp9         [V15,T09] (  3,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n-;  V16 tmp10        [V16,T06] (  4, 12   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V15 tmp9         [V15,T10] (  2,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n\u002B;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;* V17 tmp11        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V18 tmp12        [V18,T20] (  3,  2   )     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V19 tmp13        [V19,T14] (  3,  5   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V18 tmp12        [V18,T19] (  3,  2   )     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V19 tmp13        [V19,T13] (  3,  5   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V21 tmp15        [V21,T15] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V22 tmp16        [V22,T17] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V23 tmp17        [V23,T07] (  3, 12   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n-;  V24 tmp18        [V24,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V25 tmp19        [V25,T18] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V26 tmp20        [V26,T12] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V27 cse0         [V27,T08] (  6,  9   )    long  -\u003E  r14         \u0022CSE #02: moderate\u0022\n\u002B;  V21 tmp15        [V21,T14] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V22 tmp16        [V22,T16] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V23 tmp17        [V23,T06] (  3, 12   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n\u002B;  V24 tmp18        [V24,T15] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V25 tmp19        [V25,T17] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V26 tmp20        [V26,T11] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V27 cse0         [V27,T07] (  6,  9   )    long  -\u003E  r14         \u0022CSE #02: moderate\u0022\n ;\n ; Lcl frame size = 24\n \n@@ -84,7 \u002B84,7 @@ G_M57208_IG04:\n G_M57208_IG05:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M57208_IG28\n\u002B       je       G_M57208_IG25\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n G_M57208_IG06:\n        mov      rdi, 0xD1FFAB1E      ; data for System.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]:Empty\n@@ -105,7 \u002B105,7 @@ G_M57208_IG09:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():bool:this\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n-       je       G_M57208_IG17\n\u002B       je       G_M57208_IG14\n \t\t\t\t\t\t;; size=25 bbWeight=8 PerfScore 44.00\n G_M57208_IG10:\n        mov      rdi, gword ptr [rbp-0x38]\n@@ -126,38 \u002B126,19 @@ G_M57208_IG10:\n        call     [rax\u002B0x20]System.Linq.Expressions.ExpressionVisitor:Visit(System.Linq.Expressions.Expression):System.Linq.Expressions.Expression:this\n        mov      rdi, r15\n        call     [r14\u002B0x30]System.Linq.Expressions.LambdaExpression:GetOrMakeParameters():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]:this\n-       mov      r12, rax\n-       test     r12, r12\n-       je       SHORT G_M57208_IG15\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ParameterExpression]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n        je       SHORT G_M57208_IG12\n-\t\t\t\t\t\t;; size=109 bbWeight=4 PerfScore 126.00\n-G_M57208_IG11:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M57208_IG13\n-\t\t\t\t\t\t;; size=19 bbWeight=2 PerfScore 19.50\n-G_M57208_IG12:\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r12\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.Linq.Expressions.ParameterExpression](System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.ParameterExpression],byref):System.Linq.Expressions.ParameterExpression\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=2 PerfScore 8.50\n-G_M57208_IG13:\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       SHORT G_M57208_IG16\n\u002B       je       SHORT G_M57208_IG13\n        cmp      r13, rax\n        je       G_M57208_IG09\n-\t\t\t\t\t\t;; size=15 bbWeight=4 PerfScore 13.00\n-G_M57208_IG14:\n\u002B\t\t\t\t\t\t;; size=120 bbWeight=4 PerfScore 135.00\n\u002BG_M57208_IG11:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      rsi, 0xD1FFAB1E      ; \u0027, \u0027\n        mov      rax, qword ptr [rdi]\n@@ -165,18 \u002B146,18 @@ G_M57208_IG14:\n        call     [rax\u002B0x30]Microsoft.EntityFrameworkCore.Infrastructure.IndentedStringBuilder:Append(System.String):Microsoft.EntityFrameworkCore.Infrastructure.IndentedStringBuilder:this\n        jmp      G_M57208_IG09\n \t\t\t\t\t\t;; size=29 bbWeight=2 PerfScore 22.50\n-G_M57208_IG15:\n\u002BG_M57208_IG12:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M57208_IG16:\n\u002BG_M57208_IG13:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M57208_IG17:\n\u002BG_M57208_IG14:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n@@ -186,16 \u002B167,16 @@ G_M57208_IG17:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        cmp      eax, 1\n-       je       SHORT G_M57208_IG19\n\u002B       je       SHORT G_M57208_IG16\n \t\t\t\t\t\t;; size=46 bbWeight=1 PerfScore 14.00\n-G_M57208_IG18:\n\u002BG_M57208_IG15:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      rsi, 0xD1FFAB1E      ; \u0027)\u0027\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]Microsoft.EntityFrameworkCore.Infrastructure.IndentedStringBuilder:Append(System.String):Microsoft.EntityFrameworkCore.Infrastructure.IndentedStringBuilder:this\n \t\t\t\t\t\t;; size=24 bbWeight=0.50 PerfScore 4.62\n-G_M57208_IG19:\n\u002BG_M57208_IG16:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      rsi, 0xD1FFAB1E      ; \u0027 =\u003E \u0027\n        mov      rax, qword ptr [rdi]\n@@ -213,35 \u002B194,35 @@ G_M57208_IG19:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       jne      SHORT G_M57208_IG22\n\u002B       jne      SHORT G_M57208_IG19\n \t\t\t\t\t\t;; size=72 bbWeight=1 PerfScore 28.50\n-G_M57208_IG20:\n\u002BG_M57208_IG17:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M57208_IG29\n\u002B       je       G_M57208_IG26\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n-G_M57208_IG21:\n\u002BG_M57208_IG18:\n        mov      rdi, 0xD1FFAB1E      ; data for System.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]:Empty\n        mov      r13, gword ptr [rdi]\n-       jmp      SHORT G_M57208_IG23\n\u002B       jmp      SHORT G_M57208_IG20\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M57208_IG22:\n\u002BG_M57208_IG19:\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEnumerable\u00601[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator\u00601[System.__Canon]:this\n        call     [r11]System.Collections.Generic.IEnumerable\u00601[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator\u00601[System.__Canon]:this\n        mov      r13, rax\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 2.75\n-G_M57208_IG23:\n\u002BG_M57208_IG20:\n        mov      gword ptr [rbp-0x38], r13\n \t\t\t\t\t\t;; size=4 bbWeight=1 PerfScore 1.00\n-G_M57208_IG24:\n\u002BG_M57208_IG21:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():bool:this\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n-       je       SHORT G_M57208_IG26\n\u002B       je       SHORT G_M57208_IG23\n \t\t\t\t\t\t;; size=21 bbWeight=8 PerfScore 44.00\n-G_M57208_IG25:\n\u002BG_M57208_IG22:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEnumerator\u00601[System.__Canon]:get_Current():System.__Canon:this\n        call     [r11]System.Collections.Generic.IEnumerator\u00601[System.__Canon]:get_Current():System.__Canon:this\n@@ -250,15 \u002B231,15 @@ G_M57208_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary\u00602[System.__Canon,System.__Canon]:Remove(System.__Canon):bool:this\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.Collections.Generic.Dictionary\u00602[System.__Canon,System.__Canon]:Remove(System.__Canon):bool:this\n-       jmp      SHORT G_M57208_IG24\n\u002B       jmp      SHORT G_M57208_IG21\n \t\t\t\t\t\t;; size=40 bbWeight=4 PerfScore 55.00\n-G_M57208_IG26:\n\u002BG_M57208_IG23:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        mov      rax, r15\n \t\t\t\t\t\t;; size=20 bbWeight=1 PerfScore 4.50\n-G_M57208_IG27:\n\u002BG_M57208_IG24:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -268,52 \u002B249,52 @@ G_M57208_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M57208_IG28:\n\u002BG_M57208_IG25:\n        mov      rdi, 0xD1FFAB1E      ; System.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M57208_IG06\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M57208_IG29:\n\u002BG_M57208_IG26:\n        mov      rdi, 0xD1FFAB1E      ; System.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M57208_IG21\n\u002B       jmp      G_M57208_IG18\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M57208_IG30:\n\u002BG_M57208_IG27:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M57208_IG31:\n\u002BG_M57208_IG28:\n        cmp      gword ptr [rbp-0x38], 0\n-       je       SHORT G_M57208_IG32\n\u002B       je       SHORT G_M57208_IG29\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M57208_IG32:\n\u002BG_M57208_IG29:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M57208_IG33:\n\u002BG_M57208_IG30:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M57208_IG34:\n\u002BG_M57208_IG31:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M57208_IG35:\n\u002BG_M57208_IG32:\n        cmp      gword ptr [rbp-0x38], 0\n-       je       SHORT G_M57208_IG36\n\u002B       je       SHORT G_M57208_IG33\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M57208_IG36:\n\u002BG_M57208_IG33:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M57208_IG37:\n\u002BG_M57208_IG34:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 31, PerfScore 440.25, instruction count 201, allocated bytes for code 849 (MethodHash=fa102087) for method Microsoft.EntityFrameworkCore.Query.ExpressionPrinter:VisitLambda[int](System.Linq.Expressions.Expression\u00601[int]):System.Linq.Expressions.Expression:this (FullOpts)\n\u002B; Total bytes of code 797, prolog size 31, PerfScore 408.25, instruction count 188, allocated bytes for code 797 (MethodHash=fa102087) for method Microsoft.EntityFrameworkCore.Query.ExpressionPrinter:VisitLambda[int](System.Linq.Expressions.Expression\u00601[int]):System.Linq.Expressions.Expression:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":797},{"Assembly":"Microsoft.OpenApi.dasm","Method":"Microsoft.OpenApi.OpenApiOperation:SerializeInternal(Microsoft.OpenApi.IOpenApiWriter,int,System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]):this (FullOpts)","Category":"improvement","Description":"1,626 -\u003E 1,606 bytes (-20)","ExtraInfo":null,"Diff":"@@ -16,40 \u002B16,39 @@\n ;* V05 tmp1         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n ;  V07 tmp3         [V07,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V08 tmp4         [V08,T05] (  4,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.ISet\u00601[Microsoft.OpenApi.OpenApiTagReference]\u003E\n\u002B;  V08 tmp4         [V08,T04] (  4,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.ISet\u00601[Microsoft.OpenApi.OpenApiTagReference]\u003E\n ;  V09 tmp5         [V09,T09] (  3,  5   )     ref  -\u003E  r12         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V10 tmp6         [V10,T10] (  3,  5   )     ref  -\u003E  r12         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V11 tmp7         [V11,T03] (  5,  7   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiExternalDocs\u003E\n\u002B;  V11 tmp7         [V11,T05] (  4,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiExternalDocs\u003E\n ;  V12 tmp8         [V12,T19] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n-;* V13 tmp9         [V13    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling qmarkNull\u0022\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;  V16 tmp12        [V16,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V17 tmp13        [V17,T11] (  3,  5   )     ref  -\u003E  r12         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V18 tmp14        [V18,T06] (  4,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IList\u00601[Microsoft.OpenApi.IOpenApiParameter]\u003E\n-;  V19 tmp15        [V19,T04] (  5,  7   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiRequestBody\u003E\n-;  V20 tmp16        [V20,T20] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n-;* V21 tmp17        [V21    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling qmarkNull\u0022\n-;* V22 tmp18        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;* V23 tmp19        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;  V24 tmp20        [V24,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V25 tmp21        [V25,T12] (  3,  5   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiResponses\u003E\n-;* V26 tmp22        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;* V27 tmp23        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;  V28 tmp24        [V28,T25] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V29 tmp25        [V29,T07] (  4,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IDictionary\u00602[System.String,Microsoft.OpenApi.IOpenApiCallback]\u003E\n-;* V30 tmp26        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMicrosoft.OpenApi.OpenApiWriterExtensions\u002B\u003C\u003Ec__DisplayClass21_0\u00601[Microsoft.OpenApi.IOpenApiCallback]\u003E\n-;  V31 tmp27        [V31,T21] (  3,  1.50)     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.OpenApi.OpenApiWriterExtensions\u002B\u003C\u003Ec__DisplayClass21_0\u00601[Microsoft.OpenApi.IOpenApiCallback]\u003E\n-;  V32 tmp28        [V32,T16] (  4,  4   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u00603[Microsoft.OpenApi.IOpenApiWriter,System.String,Microsoft.OpenApi.IOpenApiCallback]\u003E\n-;  V33 tmp29        [V33,T15] (  3,  5   )   ubyte  -\u003E  r12         \u0022Inlining Arg\u0022\n-;  V34 tmp30        [V34,T13] (  3,  5   )     ref  -\u003E  rcx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IList\u00601[Microsoft.OpenApi.OpenApiSecurityRequirement]\u003E\n-;  V35 tmp31        [V35,T08] (  4,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IList\u00601[Microsoft.OpenApi.OpenApiServer]\u003E\n-;  V36 tmp32        [V36,T17] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V37 tmp33        [V37,T18] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V38 tmp34        [V38,T26] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V39 tmp35        [V39,T27] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V40 tmp36        [V40,T28] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V41 tmp37        [V41,T29] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;  V15 tmp11        [V15,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V16 tmp12        [V16,T11] (  3,  5   )     ref  -\u003E  r12         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V17 tmp13        [V17,T06] (  4,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IList\u00601[Microsoft.OpenApi.IOpenApiParameter]\u003E\n\u002B;  V18 tmp14        [V18,T03] (  5,  7   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiRequestBody\u003E\n\u002B;  V19 tmp15        [V19,T20] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n\u002B;* V20 tmp16        [V20    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling qmarkNull\u0022\n\u002B;* V21 tmp17        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;* V22 tmp18        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;  V23 tmp19        [V23,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V24 tmp20        [V24,T12] (  3,  5   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiResponses\u003E\n\u002B;* V25 tmp21        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;* V26 tmp22        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;  V27 tmp23        [V27,T25] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V28 tmp24        [V28,T07] (  4,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IDictionary\u00602[System.String,Microsoft.OpenApi.IOpenApiCallback]\u003E\n\u002B;* V29 tmp25        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMicrosoft.OpenApi.OpenApiWriterExtensions\u002B\u003C\u003Ec__DisplayClass21_0\u00601[Microsoft.OpenApi.IOpenApiCallback]\u003E\n\u002B;  V30 tmp26        [V30,T21] (  3,  1.50)     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.OpenApi.OpenApiWriterExtensions\u002B\u003C\u003Ec__DisplayClass21_0\u00601[Microsoft.OpenApi.IOpenApiCallback]\u003E\n\u002B;  V31 tmp27        [V31,T16] (  4,  4   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u00603[Microsoft.OpenApi.IOpenApiWriter,System.String,Microsoft.OpenApi.IOpenApiCallback]\u003E\n\u002B;  V32 tmp28        [V32,T15] (  3,  5   )   ubyte  -\u003E  r12         \u0022Inlining Arg\u0022\n\u002B;  V33 tmp29        [V33,T13] (  3,  5   )     ref  -\u003E  rcx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IList\u00601[Microsoft.OpenApi.OpenApiSecurityRequirement]\u003E\n\u002B;  V34 tmp30        [V34,T08] (  4,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IList\u00601[Microsoft.OpenApi.OpenApiServer]\u003E\n\u002B;  V35 tmp31        [V35,T17] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V36 tmp32        [V36,T18] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V37 tmp33        [V37,T26] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;  V38 tmp34        [V38,T27] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;  V39 tmp35        [V39,T28] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;  V40 tmp36        [V40,T29] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 24\n \n@@ -133,8 \u002B132,8 @@ G_M64279_IG07:\n G_M64279_IG08:\n        mov      r12, gword ptr [r15\u002B0x20]\n        test     r12, r12\n-       je       G_M64279_IG11\n-\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.25\n\u002B       je       SHORT G_M64279_IG11\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.25\n G_M64279_IG09:\n        mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.IEnumerable\n@@ -142,9 \u002B141,6 @@ G_M64279_IG09:\n        call     [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE\n        test     rax, rax\n        je       SHORT G_M64279_IG10\n-       mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Nodes.JsonArray\n-       cmp      qword ptr [r12], rdi\n-       je       SHORT G_M64279_IG10\n        mov      rdi, rax\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n        call     [r11]System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n@@ -153,7 \u002B149,7 @@ G_M64279_IG09:\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n        je       SHORT G_M64279_IG11\n-\t\t\t\t\t\t;; size=82 bbWeight=0.50 PerfScore 8.25\n\u002B\t\t\t\t\t\t;; size=66 bbWeight=0.50 PerfScore 6.62\n G_M64279_IG10:\n        test     r14, r14\n        je       G_M64279_IG32\n@@ -441,5 \u002B437,5 @@ G_M64279_IG34:\n        int3     \n \t\t\t\t\t\t;; size=87 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1626, prolog size 19, PerfScore 151.25, instruction count 319, allocated bytes for code 1626 (MethodHash=157704e8) for method Microsoft.OpenApi.OpenApiOperation:SerializeInternal(Microsoft.OpenApi.IOpenApiWriter,int,System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]):this (FullOpts)\n\u002B; Total bytes of code 1606, prolog size 19, PerfScore 149.62, instruction count 316, allocated bytes for code 1606 (MethodHash=157704e8) for method Microsoft.OpenApi.OpenApiOperation:SerializeInternal(Microsoft.OpenApi.IOpenApiWriter,int,System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1626,"DiffBytes":1606},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:Aggregate[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)","Category":"improvement","Description":"1,665 -\u003E 1,580 bytes (-85)","ExtraInfo":null,"Diff":"@@ -14,11 \u002B14,11 @@\n ;  V03 arg2         [V03,T04] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.__Canon,double]\u003E\n ;  V04 arg3         [V04,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T33] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n\u002B;  V06 loc0         [V06,T32] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n-;  V08 loc2         [V08,T34] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V09 loc3         [V09,T39] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V10 loc4         [V10,T40] (  3,  1.50)     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[double]\u003E\n\u002B;  V08 loc2         [V08,T33] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V09 loc3         [V09,T38] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V10 loc4         [V10,T39] (  3,  1.50)     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[double]\u003E\n ;  V11 OutArgs      [V11    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V12 tmp1         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V13 tmp2         [V13    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n@@ -44,22 \u002B44,22 @@\n ;* V33 tmp22        [V33    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V34 tmp23        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V35 tmp24        [V35    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V36 tmp25        [V36,T28] (  3,  2   )     int  -\u003E  rdi        \n-;  V37 tmp26        [V37,T06] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V38 tmp27        [V38    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V39 tmp28        [V39,T17] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V40 tmp29        [V40,T18] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V36 tmp25        [V36,T27] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V37 tmp26        [V37,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V38 tmp27        [V38    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V39 tmp28        [V39,T17] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V40 tmp29        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V41 tmp30        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V42 tmp31        [V42,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V43 tmp32        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V44 tmp33        [V44,T38] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V44 tmp33        [V44,T37] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V45 tmp34        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V46 tmp35        [V46,T26] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V47 tmp36        [V47,T19] (  3,  3   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V46 tmp35        [V46,T25] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V47 tmp36        [V47,T18] (  3,  3   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V48 tmp37        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V49 tmp38        [V49,T08] ( 10,  5   )     ref  -\u003E  [rbp-0x98]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;  V49 tmp38        [V49,T08] ( 10,  5   )     ref  -\u003E  [rbp-0x90]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V50 tmp39        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V51 tmp40        [V51,T09] ( 10,  5   )     ref  -\u003E  [rbp-0xA0]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;  V51 tmp40        [V51,T09] ( 10,  5   )     ref  -\u003E  [rbp-0x98]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V52 tmp41        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V53 tmp42        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V54 tmp43        [V54    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -68,11 \u002B68,11 @@\n ;* V57 tmp46        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[double]\u003E\n ;* V58 tmp47        [V58    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V59 tmp48        [V59    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V60 tmp49        [V60,T41] (  2,  1   )     ref  -\u003E  [rbp-0xA8]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V61 tmp50        [V61,T27] (  8,  2   )     ref  -\u003E  [rbp-0xB0]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V62 tmp51        [V62,T20] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V63 tmp52        [V63,T42] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[double]\u003E\n-;  V64 tmp53        [V64,T32] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V60 tmp49        [V60,T40] (  2,  1   )     ref  -\u003E  [rbp-0xA0]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V61 tmp50        [V61,T26] (  8,  2   )     ref  -\u003E  [rbp-0xA8]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V62 tmp51        [V62,T19] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V63 tmp52        [V63,T41] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[double]\u003E\n\u002B;  V64 tmp53        [V64,T31] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V65 tmp54        [V65    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V66 tmp55        [V66,T10] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V67 tmp56        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -80,29 \u002B80,29 @@\n ;* V69 tmp58        [V69    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V70 tmp59        [V70    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V71 tmp60        [V71    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;  V72 tmp61        [V72,T14] (  3,  2   )     ref  -\u003E  [rbp-0xB8]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V73 tmp62        [V73,T44] (  2,  1   )   ubyte  -\u003E  r12         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V74 tmp63        [V74,T45] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V75 tmp64        [V75,T46] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V19.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V76 tmp65        [V76,T47] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V19.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V72 tmp61        [V72,T14] (  3,  2   )     ref  -\u003E  [rbp-0xB0]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n\u002B       je       SHORT G_M13399_IG33\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      rax, rdi\n        test     rax, rax\n-       je       SHORT G_M13399_IG35\n\u002B       je       SHORT G_M13399_IG32\n\u002B       mov      rdi, rax\n\u002B       mov      esi, 1\n\u002B       mov      gword ptr [rbp-0x90], rax\n\u002B       mov      rcx, qword ptr [rax]\n\u002B       mov      rcx, qword ptr [rcx\u002B0x40]\n\u002B       call     [rcx\u002B0x28]System.Threading.CancellationTokenSource:Dispose(bool):this\n\u002B       mov      rdi, gword ptr [rbp-0x90]\n\u002B       mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n\u002B       call     [rax]System.GC:SuppressFinalize(System.Object)\n\u002B\t\t\t\t\t\t;; size=67 bbWeight=0.50 PerfScore 9.62\n\u002BG_M13399_IG32:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rdi, gword ptr [rsi\u002B0x10]\n\u002B       mov      rax, rdi\n\u002B       test     rax, rax\n\u002B       je       SHORT G_M13399_IG33\n        mov      rdi, rax\n        mov      esi, 1\n        mov      gword ptr [rbp-0x98], rax\n@@ -437,34 \u002B433,18 @@ G_M13399_IG34:\n        mov      rdi, gword ptr [rbp-0x98]\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=77 bbWeight=0.50 PerfScore 9.62\n-G_M13399_IG35:\n-       mov      rsi, gword ptr [rbp-0x88]\n-       mov      rdi, gword ptr [rsi\u002B0x10]\n-       mov      rax, rdi\n-       test     rax, rax\n-       je       SHORT G_M13399_IG36\n-       mov      rdi, rax\n-       mov      esi, 1\n-       mov      gword ptr [rbp-0xA0], rax\n-       mov      rcx, qword ptr [rax]\n-       mov      rcx, qword ptr [rcx\u002B0x40]\n-       call     [rcx\u002B0x28]System.Threading.CancellationTokenSource:Dispose(bool):this\n-       mov      rdi, gword ptr [rbp-0xA0]\n-       mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n-       call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.62\n-G_M13399_IG36:\n\u002B\t\t\t\t\t\t;; size=60 bbWeight=0.50 PerfScore 8.62\n\u002BG_M13399_IG33:\n        mov      rdi, qword ptr [r14\u002B0x18]\n        cmp      qword ptr [rdi\u002B0x08], 64\n-       jle      SHORT G_M13399_IG40\n\u002B       jle      SHORT G_M13399_IG37\n \t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 2.50\n-G_M13399_IG37:\n\u002BG_M13399_IG34:\n        mov      rsi, qword ptr [rdi\u002B0x40]\n        test     rsi, rsi\n-       je       SHORT G_M13399_IG40\n\u002B       je       SHORT G_M13399_IG37\n \t\t\t\t\t\t;; size=9 bbWeight=0.40 PerfScore 1.30\n-G_M13399_IG38:\n\u002BG_M13399_IG35:\n        mov      rdi, r15\n        mov      rdx, r13\n        mov      rcx, r12\n@@ -473,7 \u002B453,7 @@ G_M13399_IG38:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateAggregateToCollectionResultCursor[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[double],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[double]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M13399_IG39:\n\u002BG_M13399_IG36:\n        add      rsp, 200\n        pop      rbx\n        pop      r12\n@@ -483,15 \u002B463,15 @@ G_M13399_IG39:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M13399_IG40:\n\u002BG_M13399_IG37:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      SHORT G_M13399_IG38\n\u002B       jmp      SHORT G_M13399_IG35\n \t\t\t\t\t\t;; size=30 bbWeight=0.18 PerfScore 1.08\n-G_M13399_IG41:\n\u002BG_M13399_IG38:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -499,38 \u002B479,38 @@ G_M13399_IG41:\n        mov      rdi, rax\n        jmp      G_M13399_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M13399_IG42:\n\u002BG_M13399_IG39:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M13399_IG32\n\u002B       jmp      G_M13399_IG29\n \t\t\t\t\t\t;; size=33 bbWeight=0.18 PerfScore 1.08\n-G_M13399_IG43:\n\u002BG_M13399_IG40:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M13399_IG24\n\u002B       jmp      G_M13399_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.10 PerfScore 0.60\n-G_M13399_IG44:\n\u002BG_M13399_IG41:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M13399_IG45:\n\u002BG_M13399_IG42:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M13399_IG46:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M13399_IG48\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M13399_IG43:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M13399_IG45\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M13399_IG47\n\u002B       je       SHORT G_M13399_IG44\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -539,12 \u002B519,12 @@ G_M13399_IG46:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M13399_IG47:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M13399_IG44:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x10]\n        test     r15, r15\n-       je       SHORT G_M13399_IG48\n\u002B       je       SHORT G_M13399_IG45\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -553,24 \u002B533,24 @@ G_M13399_IG47:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M13399_IG48:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M13399_IG45:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M13399_IG49:\n\u002BG_M13399_IG46:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M13399_IG50:\n\u002BG_M13399_IG47:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M13399_IG51:\n-       cmp      gword ptr [rbp-0xB0], 0\n-       je       SHORT G_M13399_IG53\n-       mov      rsi, gword ptr [rbp-0xB0]\n\u002BG_M13399_IG48:\n\u002B       cmp      gword ptr [rbp-0xA8], 0\n\u002B       je       SHORT G_M13399_IG50\n\u002B       mov      rsi, gword ptr [rbp-0xA8]\n        mov      r13, gword ptr [rsi\u002B0x08]\n        test     r13, r13\n-       je       SHORT G_M13399_IG52\n\u002B       je       SHORT G_M13399_IG49\n        mov      rdi, r13\n        mov      esi, 1\n        mov      rax, qword ptr [r13]\n@@ -580,11 \u002B560,11 @@ G_M13399_IG51:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M13399_IG52:\n-       mov      rsi, gword ptr [rbp-0xB0]\n\u002BG_M13399_IG49:\n\u002B       mov      rsi, gword ptr [rbp-0xA8]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M13399_IG53\n\u002B       je       SHORT G_M13399_IG50\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -594,13 \u002B574,13 @@ G_M13399_IG52:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M13399_IG53:\n\u002BG_M13399_IG50:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M13399_IG54:\n\u002BG_M13399_IG51:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1665, prolog size 66, PerfScore 184.71, instruction count 387, allocated bytes for code 1665 (MethodHash=9addcba8) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:Aggregate[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)\n\u002B; Total bytes of code 1580, prolog size 66, PerfScore 175.33, instruction count 373, allocated bytes for code 1580 (MethodHash=9addcba8) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:Aggregate[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1665,"DiffBytes":1580},{"Assembly":"Nest.dasm","Method":"Nest.Extensions\u002B\u003CForEachAsync\u003Ed__29\u00602[System.__Canon,System.Nullable\u00601[int]]:MoveNext():this (FullOpts)","Category":"improvement","Description":"2,000 -\u003E 1,951 bytes (-49)","ExtraInfo":null,"Diff":"@@ -31,15 \u002B31,15 @@\n ;  V20 tmp6         [V20,T09] (  2, 32   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022impSpillLclRefs\u0022 \u003CSystem.Threading.SemaphoreSlim\u003E\n ;  V21 tmp7         [V21,T10] (  2, 32   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022impSpillLclRefs\u0022 \u003CSystem.Threading.SemaphoreSlim\u003E\n ;* V22 tmp8         [V22    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V23 tmp9         [V23,T42] (  4,  4.40)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n\u002B;  V23 tmp9         [V23,T41] (  4,  4.40)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n ;* V24 tmp10        [V24    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;  V25 tmp11        [V25,T43] (  4,  4.40)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n\u002B;  V25 tmp11        [V25,T42] (  4,  4.40)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n ;* V26 tmp12        [V26    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;  V27 tmp13        [V27,T24] (  3,  6   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Threading.Tasks.Task]\u003E\n ;  V28 tmp14        [V28,T23] (  4,  6   )    long  -\u003E  r11         \u0022spilling helperCall\u0022\n-;  V29 tmp15        [V29,T71] (  2,  0   )     ref  -\u003E  rsi         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V29 tmp15        [V29,T70] (  2,  0   )     ref  -\u003E  rsi         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n ;  V30 tmp16        [V30,T25] (  3,  6   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.SemaphoreSlim\u003E\n-;  V31 tmp17        [V31,T72] (  2,  0   )     ref  -\u003E  rsi         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V31 tmp17        [V31,T71] (  2,  0   )     ref  -\u003E  rsi         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n ;  V32 tmp18        [V32,T15] (  3, 20   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Threading.Tasks.Task[]\u003E\n ;  V33 tmp19        [V33,T13] (  4, 24   )     int  -\u003E  r15         \u0022Inline stloc first use temp\u0022\n ;  V34 tmp20        [V34,T05] (  3, 32   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n@@ -53,36 \u002B53,36 @@\n ;* V42 tmp28        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Threading.Tasks.Task]\u003E\n ;* V43 tmp29        [V43    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.Threading.Tasks.Task]\u003E\n ;* V44 tmp30        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Threading.Tasks.Task]\u003E\n-;* V45 tmp31        [V45,T67] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V46 tmp32        [V46,T49] (  2,  4   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;* V45 tmp31        [V45,T66] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V46 tmp32        [V46,T48] (  2,  4   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;* V47 tmp33        [V47    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V48 tmp34        [V48,T50] (  2,  4   )   byref  -\u003E  rbx         \u0022Inlining Arg\u0022\n\u002B;  V48 tmp34        [V48,T49] (  2,  4   )   byref  -\u003E  rbx         \u0022Inlining Arg\u0022\n ;* V49 tmp35        [V49    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V50 tmp36        [V50,T44] (  4,  4.40)    long  -\u003E  rsi         \u0022spilling helperCall\u0022\n\u002B;  V50 tmp36        [V50,T43] (  4,  4.40)    long  -\u003E  rsi         \u0022spilling helperCall\u0022\n ;* V51 tmp37        [V51    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V52 tmp38        [V52    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V53 tmp39        [V53    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V54 tmp40        [V54    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Runtime.CompilerServices.IAsyncStateMachineBox\u003E\n ;  V55 tmp41        [V55,T27] (  3,  6   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n-;  V56 tmp42        [V56,T51] (  2,  4   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;  V56 tmp42        [V56,T50] (  2,  4   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;* V57 tmp43        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.AggregateException\u003E\n-;  V58 tmp44        [V58,T62] (  2,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.AggregateException\u003E\n\u002B;  V58 tmp44        [V58,T60] (  2,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.AggregateException\u003E\n ;* V59 tmp45        [V59    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.AggregateException\u003E\n-;  V60 tmp46        [V60,T63] (  3,  3   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.AggregateException\u003E\n\u002B;  V60 tmp46        [V60,T61] (  3,  3   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.AggregateException\u003E\n ;* V61 tmp47        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n ;  V62 tmp48        [V62,T18] (  4,  8   )     ref  -\u003E  r14         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.AggregateException\u003E\n-;  V63 tmp49        [V63,T52] (  2,  4   )     ref  -\u003E  r13         class-hnd \u0022dup spill\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n-;  V64 tmp50        [V64,T39] (  5,  5   )     ref  -\u003E  r13        \n\u002B;  V63 tmp49        [V63,T51] (  2,  4   )     ref  -\u003E  rsi         class-hnd \u0022dup spill\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n\u002B;  V64 tmp50        [V64,T45] (  4,  4   )     ref  -\u003E  rsi        \n ;  V65 tmp51        [V65,T19] (  4,  8   )     ref  -\u003E  r13         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n ;* V66 tmp52        [V66    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n ;  V67 tmp53        [V67,T28] (  3,  6   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Exception[]\u003E\n-;  V68 tmp54        [V68    ] (  3,  3   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V68 tmp54        [V68    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V69 tmp55        [V69    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V70 tmp56        [V70,T61] (  4,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Exception\u003E\n-;  V71 tmp57        [V71,T46] (  4,  4   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Exception]\u003E\n\u002B;  V70 tmp56        [V70,T65] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Exception\u003E\n\u002B;* V71 tmp57        [V71    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Exception]\u003E\n ;* V72 tmp58        [V72    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V73 tmp59        [V73,T20] (  4,  8   )     ref  -\u003E  r14         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Threading.Tasks.Task]\u003E\n-;  V74 tmp60        [V74,T65] (  3,  3   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n\u002B;  V74 tmp60        [V74,T63] (  3,  3   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n ;  V75 tmp61        [V75,T29] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n ;* V76 tmp62        [V76    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V77 tmp63        [V77    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -91,21 \u002B91,21 @@\n ;* V80 tmp66        [V80    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n ;* V81 tmp67        [V81    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u002BConfiguredTaskAwaiter\u003E\n ;* V82 tmp68        [V82    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n-;* V83 tmp69        [V83,T68] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V84 tmp70        [V84,T53] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n\u002B;* V83 tmp69        [V83,T67] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V84 tmp70        [V84,T52] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n... diff truncated; middle omitted ...\n@@ -565,11 \u002B549,11 @@ G_M52279_IG42:\n        call     [rax]System.Runtime.ExceptionServices.ExceptionDispatchInfo:Throw():this\n        int3     \n \t\t\t\t\t\t;; size=33 bbWeight=0 PerfScore 0.00\n-G_M52279_IG43:\n-       call     G_M52279_IG59\n-       jmp      G_M52279_IG57\n\u002BG_M52279_IG41:\n\u002B       call     G_M52279_IG57\n\u002B       jmp      G_M52279_IG55\n \t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.00\n-G_M52279_IG44:\n\u002BG_M52279_IG42:\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_CLASS\n@@ -577,18 \u002B561,18 @@ G_M52279_IG44:\n        mov      r11, rax\n        jmp      G_M52279_IG11\n \t\t\t\t\t\t;; size=33 bbWeight=0.36 PerfScore 2.16\n-G_M52279_IG45:\n\u002BG_M52279_IG43:\n        cmp      dword ptr [rbp-0x34], 0\n-       jge      SHORT G_M52279_IG46\n\u002B       jge      SHORT G_M52279_IG44\n        mov      r15, bword ptr [rbp-0x70]\n        cmp      gword ptr [r15\u002B0x38], 0\n-       je       SHORT G_M52279_IG46\n\u002B       je       SHORT G_M52279_IG44\n        mov      rdi, gword ptr [r15\u002B0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        nop      \n \t\t\t\t\t\t;; size=35 bbWeight=1 PerfScore 11.50\n-G_M52279_IG46:\n\u002BG_M52279_IG44:\n        xor      rdi, rdi\n        mov      r15, bword ptr [rbp-0x70]\n        mov      gword ptr [r15\u002B0x38], rdi\n@@ -600,12 \u002B584,12 @@ G_M52279_IG46:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x58], edi\n        test     byte  ptr [rbp-0x58], 4\n-       jne      SHORT G_M52279_IG47\n\u002B       jne      SHORT G_M52279_IG45\n        mov      rdi, gword ptr [rbp-0x60]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M52279_IG07\n \t\t\t\t\t\t;; size=60 bbWeight=1 PerfScore 17.75\n-G_M52279_IG47:\n\u002BG_M52279_IG45:\n        mov      r15, bword ptr [rbp-0x70]\n        mov      dword ptr [r15\u002B0x48], 1\n        lea      rdi, bword ptr [r15\u002B0x68]\n@@ -616,27 \u002B600,27 @@ G_M52279_IG47:\n        mov      rdi, qword ptr [rbx\u002B0x30]\n        mov      rdi, qword ptr [rdi]\n        cmp      qword ptr [rdi\u002B0x10], 48\n-       jle      SHORT G_M52279_IG52\n\u002B       jle      SHORT G_M52279_IG50\n \t\t\t\t\t\t;; size=46 bbWeight=1 PerfScore 13.50\n-G_M52279_IG48:\n\u002BG_M52279_IG46:\n        mov      rdi, qword ptr [rdi\u002B0x30]\n        test     rdi, rdi\n-       je       SHORT G_M52279_IG52\n\u002B       je       SHORT G_M52279_IG50\n \t\t\t\t\t\t;; size=9 bbWeight=0.80 PerfScore 2.60\n-G_M52279_IG49:\n\u002BG_M52279_IG47:\n        lea      rbx, bword ptr [r15\u002B0x50]\n        mov      rsi, qword ptr [rdi\u002B0x18]\n        mov      rsi, qword ptr [rsi\u002B0x18]\n        test     rsi, rsi\n-       je       SHORT G_M52279_IG53\n\u002B       je       SHORT G_M52279_IG51\n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.75\n-G_M52279_IG50:\n\u002BG_M52279_IG48:\n        mov      rdi, qword ptr [rsi\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x18]\n        test     rdi, rdi\n-       je       SHORT G_M52279_IG54\n\u002B       je       SHORT G_M52279_IG52\n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 5.25\n-G_M52279_IG51:\n\u002BG_M52279_IG49:\n        mov      rsi, r15\n        mov      rdx, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:GetStateMachineBox[Nest.Extensions\u002B\u003CForEachAsync\u003Ed__29\u00602[System.__Canon,System.Nullable\u00601[int]]](byref,byref):System.Runtime.CompilerServices.IAsyncStateMachineBox\n@@ -645,53 \u002B629,53 @@ G_M52279_IG51:\n        lea      rdi, [rbp-0x60]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u002BConfiguredTaskAwaiter](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u002BConfiguredTaskAwaiter](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      G_M52279_IG57\n\u002B       jmp      G_M52279_IG55\n \t\t\t\t\t\t;; size=42 bbWeight=1 PerfScore 9.75\n-G_M52279_IG52:\n\u002BG_M52279_IG50:\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_CLASS\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_CLASS\n        mov      rdi, rax\n-       jmp      SHORT G_M52279_IG49\n\u002B       jmp      SHORT G_M52279_IG47\n \t\t\t\t\t\t;; size=30 bbWeight=0.36 PerfScore 2.16\n-G_M52279_IG53:\n\u002BG_M52279_IG51:\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      SHORT G_M52279_IG50\n\u002B       jmp      SHORT G_M52279_IG48\n \t\t\t\t\t\t;; size=27 bbWeight=0.20 PerfScore 1.15\n-G_M52279_IG54:\n\u002BG_M52279_IG52:\n        mov      rdi, rsi\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M52279_IG51\n\u002B       jmp      G_M52279_IG49\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M52279_IG55:\n\u002BG_M52279_IG53:\n        mov      dword ptr [r15\u002B0x48], -2\n        xor      rdi, rdi\n        mov      gword ptr [r15\u002B0x28], rdi\n        lea      rdi, bword ptr [r15\u002B0x50]\n        cmp      gword ptr [rdi], 0\n-       je       SHORT G_M52279_IG56\n\u002B       je       SHORT G_M52279_IG54\n        mov      rdi, gword ptr [rdi]\n        xor      esi, esi\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.Threading.Tasks.VoidTaskResult],System.Threading.Tasks.VoidTaskResult)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.Threading.Tasks.VoidTaskResult],System.Threading.Tasks.VoidTaskResult)\n-       jmp      SHORT G_M52279_IG57\n\u002B       jmp      SHORT G_M52279_IG55\n \t\t\t\t\t\t;; size=43 bbWeight=1 PerfScore 13.25\n-G_M52279_IG56:\n\u002BG_M52279_IG54:\n        mov      rsi, 0xD1FFAB1E      ; const ptr\n        mov      rsi, gword ptr [rsi]\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 3.25\n-G_M52279_IG57:\n\u002BG_M52279_IG55:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M52279_IG58:\n\u002BG_M52279_IG56:\n        add      rsp, 104\n        pop      rbx\n        pop      r12\n@@ -701,28 \u002B685,28 @@ G_M52279_IG58:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M52279_IG59:\n\u002BG_M52279_IG57:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 1.00\n-G_M52279_IG60:\n\u002BG_M52279_IG58:\n        cmp      dword ptr [rbp-0x34], 0\n-       jge      SHORT G_M52279_IG61\n\u002B       jge      SHORT G_M52279_IG59\n        mov      r15, bword ptr [rbp-0x70]\n        mov      rdi, gword ptr [r15\u002B0x38]\n        test     rdi, rdi\n-       je       SHORT G_M52279_IG61\n\u002B       je       SHORT G_M52279_IG59\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        nop      \n \t\t\t\t\t\t;; size=33 bbWeight=1 PerfScore 9.75\n-G_M52279_IG61:\n\u002BG_M52279_IG59:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M52279_IG62:\n\u002BG_M52279_IG60:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M52279_IG63:\n\u002BG_M52279_IG61:\n        mov      rsi, rdi\n        mov      r15, bword ptr [rbp-0x70]\n        mov      rax, gword ptr [r15\u002B0x20]\n@@ -731,10 \u002B715,10 @@ G_M52279_IG63:\n        call     CORINFO_HELP_RETHROW\n        int3     \n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M52279_IG64:\n\u002BG_M52279_IG62:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M52279_IG65:\n\u002BG_M52279_IG63:\n        mov      rsi, rdi\n        mov      r15, bword ptr [rbp-0x70]\n        mov      dword ptr [r15\u002B0x48], -2\n@@ -743,12 \u002B727,12 @@ G_M52279_IG65:\n        lea      rdi, bword ptr [r15\u002B0x50]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder:SetException(System.Exception):this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder:SetException(System.Exception):this\n-       lea      rax, G_M52279_IG57\n\u002B       lea      rax, G_M52279_IG55\n \t\t\t\t\t\t;; size=44 bbWeight=0 PerfScore 0.00\n-G_M52279_IG66:\n\u002BG_M52279_IG64:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 2000, prolog size 49, PerfScore 993.20, instruction count 477, allocated bytes for code 2000 (MethodHash=903133c8) for method Nest.Extensions\u002B\u003CForEachAsync\u003Ed__29\u00602[System.__Canon,System.Nullable\u00601[int]]:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 1951, prolog size 49, PerfScore 978.45, instruction count 465, allocated bytes for code 1951 (MethodHash=903133c8) for method Nest.Extensions\u002B\u003CForEachAsync\u003Ed__29\u00602[System.__Canon,System.Nullable\u00601[int]]:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":2000,"DiffBytes":1951},{"Assembly":"OpenAI.dasm","Method":"OpenAI.Moderations.ModerationClient\u002B\u003CClassifyInputsAsync\u003Ed__16:MoveNext():this (FullOpts)","Category":"improvement","Description":"962 -\u003E 910 bytes (-52)","ExtraInfo":null,"Diff":"@@ -9,11 \u002B9,11 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T00] ( 24, 21   )   byref  -\u003E  [rbp-0x50]  this EH-live single-def\n-;  V01 loc0         [V01,T03] (  7,  7   )     int  -\u003E  [rbp-0x24]  do-not-enreg[M] EH-live\n\u002B;  V01 loc0         [V01,T02] (  7,  7   )     int  -\u003E  [rbp-0x24]  do-not-enreg[M] EH-live\n ;  V02 loc1         [V02,T09] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003COpenAI.Moderations.ModerationClient\u003E\n ;  V03 loc2         [V03,T10] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]\u003E\n ;  V04 loc3         [V04    ] (  3,  3   )     ref  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003COpenAI.Moderations.ModerationOptions\u003E\n-;  V05 loc4         [V05,T18] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u003E\n\u002B;  V05 loc4         [V05,T17] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u003E\n ;  V06 loc5         [V06    ] ( 10, 10   )  struct (16) [rbp-0x40]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.ClientModel.ClientResult]\u003E\n ;* V07 loc6         [V07    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[System.ClientModel.ClientResult]\u003E\n ;* V08 loc7         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Exception\u003E\n@@ -22,14 \u002B22,14 @@\n ;* V11 tmp2         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003COpenAI.Moderations.ModerationResult\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.ClientModel.BinaryContent\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003COpenAI.Moderations.ModerationOptions\u003E\n-;  V14 tmp5         [V14,T27] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n-;  V15 tmp6         [V15,T04] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Moderations.ModerationOptions\u003E\n-;  V16 tmp7         [V16,T12] (  2,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.ClientModel.Primitives.ModelReaderWriterOptions\u003E\n\u002B;  V14 tmp5         [V14,T26] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V15 tmp6         [V15,T03] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Moderations.ModerationOptions\u003E\n\u002B;  V16 tmp7         [V16,T11] (  2,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.ClientModel.Primitives.ModelReaderWriterOptions\u003E\n ;* V17 tmp8         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V18 tmp9         [V18,T25] (  2,  2   )     ref  -\u003E  r14        \n-;  V19 tmp10        [V19,T05] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ClientModel.BinaryContent\u002BModelBinaryContent\u00601[OpenAI.Moderations.ModerationOptions]\u003E\n\u002B;  V18 tmp9         [V18,T23] (  2,  2   )     ref  -\u003E  r14        \n\u002B;  V19 tmp10        [V19,T04] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ClientModel.BinaryContent\u002BModelBinaryContent\u00601[OpenAI.Moderations.ModerationOptions]\u003E\n ;* V20 tmp11        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V21 tmp12        [V21,T06] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult]\u003E\n\u002B;  V21 tmp12        [V21,T05] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult]\u003E\n ;* V22 tmp13        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V23 tmp14        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V24 tmp15        [V24    ] (  0,  0   )     int  -\u003E  zero-ref    single-def\n@@ -37,22 \u002B37,22 @@\n ;* V26 tmp17        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult]\u003E\n ;* V27 tmp18        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.ClientModel.ClientResult]\u003E\n ;* V28 tmp19        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult]\u003E\n-;* V29 tmp20        [V29,T26] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V30 tmp21        [V30,T13] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;* V29 tmp20        [V29,T25] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V30 tmp21        [V30,T12] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;* V31 tmp22        [V31    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V32 tmp23        [V32    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V33 tmp24        [V33    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Runtime.CompilerServices.IAsyncStateMachineBox\u003E\n-;  V35 tmp26        [V35,T07] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n-;  V36 tmp27        [V36,T14] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n-;  V37 tmp28        [V37,T01] (  4,  8   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Moderations.ModerationResultCollection\u003E\n-;  V38 tmp29        [V38    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V39 tmp30        [V39,T19] (  3,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003COpenAI.Moderations.ModerationResult\u003E\n-;  V40 tmp31        [V40,T11] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[OpenAI.Moderations.ModerationResult]\u003E\n\u002B;  V35 tmp26        [V35,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;  V36 tmp27        [V36,T13] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;  V37 tmp28        [V37,T07] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Moderations.ModerationResultCollection\u003E\n\u002B;  V38 tmp29        [V38    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V39 tmp30        [V39,T24] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003COpenAI.Moderations.ModerationResult\u003E\n\u002B;* V40 tmp31        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[OpenAI.Moderations.ModerationResult]\u003E\n ;  V41 tmp32        [V41,T08] (  3,  6   )   byref  -\u003E  r15         single-def \u0022Inlining Arg\u0022\n-;  V42 tmp33        [V42,T20] (  3,  3   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]]\u003E\n\u002B;  V42 tmp33        [V42,T18] (  3,  3   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]]\u003E\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    ld-addr-op class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]\u003E\n-;  V44 tmp35        [V44,T02] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]]\u003E\n\u002B;  V44 tmp35        [V44,T01] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]]\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n ;* V46 tmp37        [V46    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]\u003E\n ;* V47 tmp38        [V47    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n@@ -61,13 \u002B61,13 @@\n... diff truncated; middle omitted ...\n        mov      rax, 0xD1FFAB1E      ; code for System.ClientModel.ClientResult:FromValue[System.__Canon](System.__Canon,System.ClientModel.Primitives.PipelineResponse):System.ClientModel.ClientResult\u00601[System.__Canon]\n        call     [rax]System.ClientModel.ClientResult:FromValue[System.__Canon](System.__Canon,System.ClientModel.Primitives.PipelineResponse):System.ClientModel.ClientResult\u00601[System.__Canon]\n        mov      rbx, rax\n-       jmp      G_M16492_IG15\n-\t\t\t\t\t\t;; size=37 bbWeight=1 PerfScore 8.00\n-G_M16492_IG11:\n\u002B       jmp      G_M16492_IG13\n\u002B\t\t\t\t\t\t;; size=98 bbWeight=1 PerfScore 20.00\n\u002BG_M16492_IG09:\n        mov      r15, gword ptr [rdi\u002B0x10]\n        mov      rdi, gword ptr [rdi\u002B0x28]\n        mov      rax, 0xD1FFAB1E      ; code for OpenAI.CancellationTokenExtensions:ToRequestOptions(System.Threading.CancellationToken):System.ClientModel.Primitives.RequestOptions\n@@ -208,16 \u002B191,16 @@ G_M16492_IG11:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x38], edi\n        test     byte  ptr [rbp-0x38], 4\n-       jne      SHORT G_M16492_IG12\n\u002B       jne      SHORT G_M16492_IG10\n        mov      rdi, gword ptr [rbp-0x40]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M16492_IG07\n \t\t\t\t\t\t;; size=73 bbWeight=1 PerfScore 25.25\n-G_M16492_IG12:\n\u002BG_M16492_IG10:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x24], edi\n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M16492_IG13:\n\u002BG_M16492_IG11:\n        mov      rbx, bword ptr [rbp-0x50]\n        mov      dword ptr [rbx\u002B0x18], edi\n        lea      rdi, bword ptr [rbx\u002B0x30]\n@@ -235,31 \u002B218,31 @@ G_M16492_IG13:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.ClientModel.ClientResult]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      SHORT G_M16492_IG16\n\u002B       jmp      SHORT G_M16492_IG14\n \t\t\t\t\t\t;; size=86 bbWeight=1 PerfScore 17.00\n-G_M16492_IG14:\n\u002BG_M16492_IG12:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M16492_IG15:\n\u002BG_M16492_IG13:\n        cmp      dword ptr [rbp-0x24], 0\n-       jge      SHORT G_M16492_IG17\n\u002B       jge      SHORT G_M16492_IG15\n        mov      rdi, bword ptr [rbp-0x50]\n        mov      r11, gword ptr [rdi\u002B0x10]\n        test     r11, r11\n-       je       SHORT G_M16492_IG17\n\u002B       je       SHORT G_M16492_IG15\n        mov      rdi, r11\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n-       jmp      SHORT G_M16492_IG17\n\u002B       jmp      SHORT G_M16492_IG15\n \t\t\t\t\t\t;; size=37 bbWeight=1 PerfScore 11.75\n-G_M16492_IG16:\n-       call     G_M16492_IG25\n-       jmp      G_M16492_IG22\n\u002BG_M16492_IG14:\n\u002B       call     G_M16492_IG23\n\u002B       jmp      G_M16492_IG20\n \t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.00\n-G_M16492_IG17:\n\u002BG_M16492_IG15:\n        mov      rdi, bword ptr [rbp-0x50]\n        mov      dword ptr [rdi\u002B0x18], -2\n        xor      rsi, rsi\n@@ -267,16 \u002B250,16 @@ G_M16492_IG17:\n        lea      r15, bword ptr [rdi\u002B0x20]\n        mov      rsi, gword ptr [r15]\n        test     rsi, rsi\n-       je       SHORT G_M16492_IG18\n\u002B       je       SHORT G_M16492_IG16\n        mov      rdx, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n-       jmp      SHORT G_M16492_IG22\n\u002B       jmp      SHORT G_M16492_IG20\n \t\t\t\t\t\t;; size=56 bbWeight=1 PerfScore 12.75\n-G_M16492_IG18:\n\u002BG_M16492_IG16:\n        test     rbx, rbx\n-       je       SHORT G_M16492_IG19\n\u002B       je       SHORT G_M16492_IG17\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -284,26 \u002B267,26 @@ G_M16492_IG18:\n        lea      rdi, bword ptr [r14\u002B0x38]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      SHORT G_M16492_IG21\n\u002B       jmp      SHORT G_M16492_IG19\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 7.50\n-G_M16492_IG19:\n\u002BG_M16492_IG17:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       SHORT G_M16492_IG24\n\u002B       je       SHORT G_M16492_IG22\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 3.25\n-G_M16492_IG20:\n\u002BG_M16492_IG18:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]]:s_defaultResultTask\n        mov      r14, gword ptr [rdi]\n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 2.25\n-G_M16492_IG21:\n\u002BG_M16492_IG19:\n        mov      rdi, r15\n        mov      rsi, r14\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 1.50\n-G_M16492_IG22:\n\u002BG_M16492_IG20:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M16492_IG23:\n\u002BG_M16492_IG21:\n        add      rsp, 48\n        pop      rbx\n        pop      r13\n@@ -312,34 \u002B295,34 @@ G_M16492_IG23:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n-G_M16492_IG24:\n\u002BG_M16492_IG22:\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      SHORT G_M16492_IG20\n\u002B       jmp      SHORT G_M16492_IG18\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M16492_IG25:\n\u002BG_M16492_IG23:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 1.00\n-G_M16492_IG26:\n\u002BG_M16492_IG24:\n        cmp      dword ptr [rbp-0x24], 0\n-       jge      SHORT G_M16492_IG27\n\u002B       jge      SHORT G_M16492_IG25\n        mov      r15, bword ptr [rbp-0x50]\n        mov      rdi, gword ptr [r15\u002B0x10]\n        test     rdi, rdi\n-       je       SHORT G_M16492_IG27\n\u002B       je       SHORT G_M16492_IG25\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        nop      \n \t\t\t\t\t\t;; size=33 bbWeight=1 PerfScore 9.75\n-G_M16492_IG27:\n\u002BG_M16492_IG25:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M16492_IG28:\n\u002BG_M16492_IG26:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M16492_IG29:\n\u002BG_M16492_IG27:\n        mov      rdx, rdi\n        mov      r15, bword ptr [rbp-0x50]\n        mov      dword ptr [r15\u002B0x18], -2\n@@ -349,12 \u002B332,12 @@ G_M16492_IG29:\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n-       lea      rax, G_M16492_IG22\n\u002B       lea      rax, G_M16492_IG20\n \t\t\t\t\t\t;; size=54 bbWeight=0 PerfScore 0.00\n-G_M16492_IG30:\n\u002BG_M16492_IG28:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 962, prolog size 41, PerfScore 202.33, instruction count 224, allocated bytes for code 962 (MethodHash=c0a9bf93) for method OpenAI.Moderations.ModerationClient\u002B\u003CClassifyInputsAsync\u003Ed__16:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 910, prolog size 41, PerfScore 187.33, instruction count 211, allocated bytes for code 910 (MethodHash=c0a9bf93) for method OpenAI.Moderations.ModerationClient\u002B\u003CClassifyInputsAsync\u003Ed__16:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":962,"DiffBytes":910},{"Assembly":"Pomelo.EntityFrameworkCore.MySql.dasm","Method":"Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlNonWorkingHavingExpressionVisitor:VisitSelectImmutable(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression):System.Linq.Expressions.Expression:this (FullOpts)","Category":"improvement","Description":"1,105 -\u003E 986 bytes (-119)","ExtraInfo":null,"Diff":"@@ -14,17 \u002B14,17 @@\n ;  V03 loc1         [V03,T01] ( 14,  7   )     ref  -\u003E  r13         class-hnd \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression\u003E\n ;* V04 loc2         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CSystem.String\u003E\n ;* V05 loc3         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression\u003E\n-;  V06 loc4         [V06,T11] (  4,  2   )     ref  -\u003E  r14         class-hnd single-def \u003CPomelo.EntityFrameworkCore.MySql.Query.Expressions.Internal.MySqlColumnAliasReferenceExpression\u003E\n-;  V07 loc5         [V07,T30] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.OrderingExpression]\u003E\n-;  V08 loc6         [V08,T31] (  2,  1   )     ref  -\u003E  rcx         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.OrderingExpression[]\u003E\n\u002B;  V06 loc4         [V06,T21] (  3,  1.50)     ref  -\u003E  r14         class-hnd single-def \u003CPomelo.EntityFrameworkCore.MySql.Query.Expressions.Internal.MySqlColumnAliasReferenceExpression\u003E\n\u002B;  V07 loc5         [V07,T25] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.OrderingExpression]\u003E\n\u002B;  V08 loc6         [V08,T26] (  2,  1   )     ref  -\u003E  rcx         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.OrderingExpression[]\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (24) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T06] (  5,  5   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression\u003E\n\u002B;  V10 tmp1         [V10,T06] (  4,  4   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022non-inline candidate call\u0022 \u003CPomelo.EntityFrameworkCore.MySql.Query.Internal.MySqlSqlExpressionFactory\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022non-inline candidate call\u0022 \u003CSystem.Type\u003E\n-;  V13 tmp4         [V13,T14] (  2,  2   )     ref  -\u003E  [rbp-0x30]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.TableExpressionBase]\u003E\n-;  V14 tmp5         [V14,T15] (  2,  2   )     ref  -\u003E  [rbp-0x38]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\u003E\n-;  V15 tmp6         [V15,T16] (  2,  2   )     ref  -\u003E  [rbp-0x40]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression]\u003E\n-;  V16 tmp7         [V16,T17] (  2,  2   )     ref  -\u003E  r12         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression]\u003E\n\u002B;  V13 tmp4         [V13,T11] (  2,  2   )     ref  -\u003E  [rbp-0x38]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.TableExpressionBase]\u003E\n\u002B;  V14 tmp5         [V14,T12] (  2,  2   )     ref  -\u003E  [rbp-0x40]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\u003E\n\u002B;  V15 tmp6         [V15,T13] (  2,  2   )     ref  -\u003E  [rbp-0x48]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression]\u003E\n\u002B;  V16 tmp7         [V16,T14] (  2,  2   )     ref  -\u003E  r12         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression]\u003E\n ;* V17 tmp8         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V18 tmp9         [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V19 tmp10        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -37,30 \u002B37,29 @@\n ;* V26 tmp17        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp18        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V28 tmp19        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V29 tmp20        [V29,T26] (  3,  1.50)     ref  -\u003E  rcx        \n\u002B;  V29 tmp20        [V29,T22] (  3,  1.50)     ref  -\u003E  rcx        \n ;* V30 tmp21        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\u003E\n-;  V31 tmp22        [V31,T09] (  3,  3   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003C\u003C\u003Ez__ReadOnlySingleElementList\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.TableExpressionBase]\u003E\n\u002B;  V31 tmp22        [V31,T07] (  3,  3   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003C\u003C\u003Ez__ReadOnlySingleElementList\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.TableExpressionBase]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\u003E\n ;* V33 tmp24        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression[]\u003E\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CPomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlContainsAggregateFunctionExpressionVisitor\u003E\n-;  V35 tmp26        [V35,T27] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression]\u003E\n-;  V36 tmp27        [V36,T07] (  4,  4   )     ref  -\u003E  [rbp-0x48]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression]\u003E\n-;  V37 tmp28        [V37,T12] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BAppendPrependIterator\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression]\u003E\n-;  V38 tmp29        [V38,T04] (  6,  6   )     ref  -\u003E  [rbp-0x50]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Enumerable\u002BAppendPrepend1Iterator\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression]\u003E\n-;  V39 tmp30        [V39,T28] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression]\u003E\n-;  V40 tmp31        [V40,T08] (  4,  4   )     ref  -\u003E  [rbp-0x58]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression]\u003E\n-;  V41 tmp32        [V41,T13] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BAppendPrependIterator\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression]\u003E\n-;  V42 tmp33        [V42,T05] (  6,  6   )     ref  -\u003E  [rbp-0x60]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Enumerable\u002BAppendPrepend1Iterator\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression]\u003E\n-;  V43 tmp34        [V43,T18] (  2,  2   )     ref  -\u003E   r8         single-def \u0022argument with side effect\u0022\n-;  V44 tmp35        [V44,T19] (  2,  2   )     ref  -\u003E  [rbp-0x68]  spill-single-def \u0022argument with side effect\u0022\n-;  V45 tmp36        [V45,T10] (  3,  3   )     ref  -\u003E  [rbp-0x70]  spill-single-def \u0022argument with side effect\u0022\n-;  V46 tmp37        [V46,T20] (  2,  2   )     ref  -\u003E  rcx         single-def \u0022argument with side effect\u0022\n-;  V47 tmp38        [V47,T21] (  2,  2   )     ref  -\u003E  [rbp-0x78]  spill-single-def \u0022argument with side effect\u0022\n-;  V48 cse0         [V48,T29] (  3,  1.50)     ref  -\u003E  [rbp-0x80]  spill-single-def \u0022CSE #05: moderate\u0022\n-;  V49 rat0         [V49,T22] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V50 rat1         [V50,T23] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V51 rat2         [V51,T24] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V52 rat3         [V52,T25] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V35 tmp26        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression]\u003E\n\u002B;  V36 tmp27        [V36,T08] (  3,  3   )     ref  -\u003E  [rbp-0x50]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression]\u003E\n\u002B;* V37 tmp28        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BAppendPrependIterator\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression]\u003E\n... diff truncated; middle omitted ...\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n-       add      rax, 16\n-       mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x60]\n\u002B       mov      gword ptr [rbp-0x68], rax\n\u002B       mov      rdi, qword ptr [rbp-0x30]\n\u002B       mov      edi, dword ptr [rdi\u002B0x10]\n        mov      dword ptr [rax\u002B0x10], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n-       mov      rsi, gword ptr [rbp-0x58]\n\u002B       mov      rsi, gword ptr [rbp-0x60]\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rax, gword ptr [rbp-0x60]\n\u002B       mov      rax, gword ptr [rbp-0x68]\n        lea      rdi, bword ptr [rax\u002B0x28]\n        mov      rsi, r12\n\u002B\t\t\t\t\t\t;; size=192 bbWeight=0.50 PerfScore 18.75\n\u002BG_M38478_IG06:\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r12, gword ptr [rbp-0x60]\n\u002B       mov      r12, gword ptr [rbp-0x68]\n        mov      byte  ptr [r12\u002B0x30], 1\n-       mov      rax, r12\n-\t\t\t\t\t\t;; size=97 bbWeight=0.50 PerfScore 8.75\n-G_M38478_IG09:\n-       mov      rsi, rax\n\u002B       mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:ToList[Microsoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression](System.Collections.Generic.IEnumerable\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression]):System.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:ToList[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.Collections.Generic.List\u00601[System.__Canon]\n        call     [rax]System.Linq.Enumerable:ToList[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.Collections.Generic.List\u00601[System.__Canon]\n        mov      r12, rax\n        mov      rax, gword ptr [r13\u002B0x90]\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x88], rax\n        test     rax, rax\n-       jne      SHORT G_M38478_IG10\n\u002B       jne      SHORT G_M38478_IG07\n        cmp      gword ptr [r13\u002B0x98], 0\n-       je       SHORT G_M38478_IG11\n-\t\t\t\t\t\t;; size=54 bbWeight=0.50 PerfScore 5.62\n-G_M38478_IG10:\n\u002B       je       SHORT G_M38478_IG08\n\u002B\t\t\t\t\t\t;; size=72 bbWeight=0.50 PerfScore 7.12\n\u002BG_M38478_IG07:\n        mov      rcx, gword ptr [r13\u002B0x30]\n-       jmp      SHORT G_M38478_IG13\n\u002B       jmp      SHORT G_M38478_IG10\n \t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 2.00\n-G_M38478_IG11:\n\u002BG_M38478_IG08:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M38478_IG19\n\u002B       je       G_M38478_IG16\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n-G_M38478_IG12:\n\u002BG_M38478_IG09:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Array\u002BEmptyArray\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.OrderingExpression]:Value\n        mov      rcx, gword ptr [rdi]\n \t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 1.12\n-G_M38478_IG13:\n\u002BG_M38478_IG10:\n        mov      gword ptr [rsp], rcx\n        mov      rdi, gword ptr [r13\u002B0x98]\n        mov      gword ptr [rsp\u002B0x08], rdi\n-       mov      rax, gword ptr [rbp-0x80]\n\u002B       mov      rax, gword ptr [rbp-0x88]\n        mov      gword ptr [rsp\u002B0x10], rax\n        mov      rdi, r13\n-       mov      rsi, gword ptr [rbp-0x30]\n-       mov      rdx, gword ptr [rbp-0x38]\n-       mov      rcx, gword ptr [rbp-0x40]\n\u002B       mov      rsi, gword ptr [rbp-0x38]\n\u002B       mov      rdx, gword ptr [rbp-0x40]\n\u002B       mov      rcx, gword ptr [rbp-0x48]\n        mov      r8, r14\n        mov      r9, r12\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression:Update(System.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.TableExpressionBase],Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,System.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression],Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,System.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression],System.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.OrderingExpression],Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression:this\n@@ -286,20 \u002B250,20 @@ G_M38478_IG13:\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rax, gword ptr [rbx\u002B0x80]\n-       mov      gword ptr [rbp-0x78], rax\n\u002B       mov      gword ptr [rbp-0x80], rax\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M38478_IG20\n-       mov      rax, gword ptr [rbp-0x78]\n-\t\t\t\t\t\t;; size=130 bbWeight=0.50 PerfScore 12.88\n-G_M38478_IG14:\n\u002B       je       G_M38478_IG17\n\u002B       mov      rax, gword ptr [rbp-0x80]\n\u002B\t\t\t\t\t\t;; size=133 bbWeight=0.50 PerfScore 12.88\n\u002BG_M38478_IG11:\n        mov      rcx, 0xD1FFAB1E      ; data for System.Array\u002BEmptyArray\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression]:Value\n        mov      rcx, gword ptr [rcx]\n        mov      gword ptr [rsp], r14\n        xor      rdx, rdx\n        mov      gword ptr [rsp\u002B0x08], rdx\n \t\t\t\t\t\t;; size=24 bbWeight=0.50 PerfScore 2.25\n-G_M38478_IG15:\n\u002BG_M38478_IG12:\n        mov      gword ptr [rsp\u002B0x10], rdx\n        mov      rdx, rax\n        mov      r9, gword ptr [r13\u002B0x18]\n@@ -310,13 \u002B274,13 @@ G_M38478_IG15:\n        call     [rax]Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression:Update(System.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.TableExpressionBase],Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,System.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression],Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,System.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression],System.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.OrderingExpression],Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression:this\n        mov      rbx, rax\n \t\t\t\t\t\t;; size=36 bbWeight=0.50 PerfScore 3.75\n-G_M38478_IG16:\n\u002BG_M38478_IG13:\n        mov      rdi, rbx\n        mov      rsi, r15\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression:VisitChildren(System.Linq.Expressions.ExpressionVisitor):System.Linq.Expressions.Expression:this\n        cmp      dword ptr [rdi], edi\n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 2.75\n-G_M38478_IG17:\n\u002BG_M38478_IG14:\n        add      rsp, 120\n        pop      rbx\n        pop      r12\n@@ -326,25 \u002B290,25 @@ G_M38478_IG17:\n        pop      rbp\n        tail.jmp [rax]Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression:VisitChildren(System.Linq.Expressions.ExpressionVisitor):System.Linq.Expressions.Expression:this\n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.25\n-G_M38478_IG18:\n\u002BG_M38478_IG15:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M38478_IG19:\n\u002BG_M38478_IG16:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.OrderingExpression]\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rcx]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M38478_IG12\n\u002B       jmp      G_M38478_IG09\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M38478_IG20:\n\u002BG_M38478_IG17:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression]\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rcx]CORINFO_HELP_GET_GCSTATIC_BASE\n-       mov      rax, gword ptr [rbp-0x78]\n-       jmp      G_M38478_IG14\n\u002B       mov      rax, gword ptr [rbp-0x80]\n\u002B       jmp      G_M38478_IG11\n \t\t\t\t\t\t;; size=31 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1105, prolog size 28, PerfScore 123.88, instruction count 241, allocated bytes for code 1105 (MethodHash=6c6c69b1) for method Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlNonWorkingHavingExpressionVisitor:VisitSelectImmutable(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression):System.Linq.Expressions.Expression:this (FullOpts)\n\u002B; Total bytes of code 986, prolog size 28, PerfScore 107.75, instruction count 212, allocated bytes for code 986 (MethodHash=6c6c69b1) for method Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlNonWorkingHavingExpressionVisitor:VisitSelectImmutable(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression):System.Linq.Expressions.Expression:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1105,"DiffBytes":986},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.RateCards.RateService:ListAutoPaging(System.String,Stripe.V2.Billing.RateCards.RateListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.RateCardRate]:this (FullOpts)","Category":"improvement","Description":"513 -\u003E 464 bytes (-49)","ExtraInfo":null,"Diff":"@@ -1,169 \u002B1,160 @@\n ; Assembly listing for method Stripe.V2.Billing.RateCards.RateService:ListAutoPaging(System.String,Stripe.V2.Billing.RateCards.RateListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.RateCardRate]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 22 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T05] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.RateCards.RateService\u003E\n-;  V01 arg1         [V01,T08] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.RateCards.RateListOptions\u003E\n-;  V03 arg3         [V03,T07] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T07] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V02 arg2         [V02,T08] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.RateCards.RateListOptions\u003E\n\u002B;  V03 arg3         [V03,T06] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T11] (  3,  2   )     ref  -\u003E  r15         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.RateCardRate]\u003E\n ;  V06 tmp2         [V06,T02] (  4,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V07 tmp3         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V08 tmp4         [V08,T12] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;  V09 tmp5         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.RateCardRate]\u003E\n-;* V10 tmp6         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp8         [V12,T03] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.RateCardRate]\u003E\n-;  V13 tmp9         [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.RateCardRate]\u003E\n-;* V14 tmp10        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp11        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp12        [V16,T04] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.RateCardRate]\u003E\n-;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V07._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp14        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp15        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp16        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp17        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 tmp18        [V22,T09] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V23 cse0         [V23,T10] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #02: moderate\u0022\n-;  V24 rat0         [V24,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T15] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T16] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.RateCardRate]\u003E\n\u002B;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp6         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp7         [V11,T03] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.RateCardRate]\u003E\n\u002B;  V12 tmp8         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.RateCardRate]\u003E\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp11        [V15,T04] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.RateCardRate]\u003E\n\u002B;* V16 tmp12        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V07._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp14        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp15        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp16        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 tmp17        [V21,T09] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V22 cse0         [V22,T10] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #02: moderate\u0022\n\u002B;  V23 rat0         [V23,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T15] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M12504_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rdx\n-       mov      r14, rcx\n\u002B       mov      r14, rdx\n\u002B       mov      r15, rcx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M12504_IG02:\n        mov      rdi, rsi\n        mov      rax, 0xD1FFAB1E      ; code for System.Net.WebUtility:UrlEncode(System.String):System.String\n        call     [rax]System.Net.WebUtility:UrlEncode(System.String):System.String\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; \u0027/v2/billing/rate_cards/\u0027\n        mov      rdx, 0xD1FFAB1E      ; \u0027/rates\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Concat(System.String,System.String,System.String):System.String\n        call     [rax]System.String:Concat(System.String,System.String,System.String):System.String\n        mov      r13, rax\n        mov      rdi, r13\n        mov      rax, 0xD1FFAB1E      ; code for Stripe.ApiModeUtils:GetApiMode(System.String):int\n        call     [rax]Stripe.ApiModeUtils:GetApiMode(System.String):int\n        cmp      eax, 1\n        je       G_M12504_IG04\n \t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 12.50\n G_M12504_IG03:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.RateCardRate]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n-       mov      eax, dword ptr [rax\u002B0x10]\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, dword ptr [rax\u002B0x10]\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x28]\n\u002B       lea      rdi, bword ptr [r14\u002B0x28]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.RateCardRate]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        mov      dword ptr [r15\u002B0x28], -2\n-       mov      r14d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r15\u002B0x2C], r14d\n\u002B       mov      dword ptr [r15\u002B0x2C], r12d\n        lea      rdi, bword ptr [r15\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M12504_IG05\n-\t\t\t\t\t\t;; size=212 bbWeight=0.50 PerfScore 16.00\n\u002B\t\t\t\t\t\t;; size=164 bbWeight=0.50 PerfScore 12.75\n G_M12504_IG04:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.RateCardRate]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      eax, edi\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x28]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.RateCardRate]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        mov      dword ptr [r15\u002B0x28], -2\n-       mov      r14d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r15\u002B0x2C], r14d\n\u002B       mov      ebx, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r15\u002B0x2C], ebx\n        lea      rdi, bword ptr [r15\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=181 bbWeight=0.50 PerfScore 13.12\n\u002B\t\t\t\t\t\t;; size=180 bbWeight=0.50 PerfScore 13.12\n G_M12504_IG05:\n        mov      rax, r15\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M12504_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 513, prolog size 16, PerfScore 54.38, instruction count 113, allocated bytes for code 513 (MethodHash=84e9cf27) for method Stripe.V2.Billing.RateCards.RateService:ListAutoPaging(System.String,Stripe.V2.Billing.RateCards.RateListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.RateCardRate]:this (FullOpts)\n\u002B; Total bytes of code 464, prolog size 16, PerfScore 51.12, instruction count 105, allocated bytes for code 464 (MethodHash=84e9cf27) for method Stripe.V2.Billing.RateCards.RateService:ListAutoPaging(System.String,Stripe.V2.Billing.RateCards.RateListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.RateCardRate]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":513,"DiffBytes":464},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.DistributedSemaphoreProviderExtensions:AcquireAllSemaphores(Medallion.Threading.IDistributedSemaphoreProvider,System.Collections.Generic.IReadOnlyList\u00601[System.String],int,System.Nullable\u00601[System.TimeSpan],System.Threading.CancellationToken):Medallion.Threading.IDistributedSynchronizationHandle (FullOpts)","Category":"same-size","Description":"828 -\u003E 828 bytes (0)","ExtraInfo":null,"Diff":"@@ -128,7 \u002B128,7 @@ G_M19441_IG04:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        mov      rbx, rax\n        movzx    rcx, byte  ptr [rbx\u002B0x10]\n        mov      dword ptr [rbp-0x2C], ecx\n@@ -299,7 \u002B299,7 @@ G_M19441_IG23:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n G_M19441_IG24:\n-       mov      edi, 70\n\u002B       mov      edi, 68\n        call     CORINFO_HELP_GETDYNAMIC_NONGCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED2\n        mov      rbx, rax\n        mov      eax, dword ptr [rbp-0x2C]","Truncated":true,"BaseBytes":828,"DiffBytes":828},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher:GetRightMemberPath(System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper):System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath (FullOpts)","Category":"improvement","Description":"421 -\u003E 307 bytes (-114)","ExtraInfo":null,"Diff":"@@ -10,175 \u002B10,136 @@\n ;\n ;  V00 arg0         [V00,T02] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath\u003E\n ;  V01 arg1         [V01,T01] (  4,  3.50)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper\u003E\n-;  V02 loc0         [V02,T07] (  3,  2.50)     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[int]\u003E\n\u002B;  V02 loc0         [V02,T06] (  3,  2.50)     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[int]\u003E\n ;* V03 loc1         [V03    ] (  0,  0   )     int  -\u003E  zero-ref    single-def\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V05 tmp1         [V05,T00] (  4,  7   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n-;  V06 tmp2         [V06    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V05 tmp1         [V05,T00] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n\u002B;  V06 tmp2         [V06    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V08 tmp4         [V08,T09] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\u003E\n-;  V09 tmp5         [V09,T05] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n\u002B;  V08 tmp4         [V08,T08] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\u003E\n\u002B;* V09 tmp5         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n ;* V10 tmp6         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellQuery\u003E\n ;* V11 tmp7         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\u003E\n-;  V12 tmp8         [V12    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V13 tmp9         [V13,T12] (  3,  1.50)     int  -\u003E  r15         single-def\n-;  V14 tmp10        [V14,T03] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n-;  V15 tmp11        [V15    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V12 tmp8         [V12    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V13 tmp9         [V13,T09] (  3,  1.50)     int  -\u003E  r15         single-def\n\u002B;  V14 tmp10        [V14,T04] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n\u002B;  V15 tmp11        [V15    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V16 tmp12        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V17 tmp13        [V17,T11] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\u003E\n-;  V18 tmp14        [V18,T08] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n\u002B;  V17 tmp13        [V17,T11] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\u003E\n\u002B;* V18 tmp14        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n ;* V19 tmp15        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellQuery\u003E\n ;* V20 tmp16        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\u003E\n ;* V21 tmp17        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberProjectedSlot\u003E\n-;  V22 tmp18        [V22,T06] (  3,  3   )     ref  -\u003E  rax         single-def \u0022arr expr\u0022\n-;  V23 tmp19        [V23,T10] (  3,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V24 rat0         [V24,T04] (  4,  3.50)     ref  -\u003E  rax         \u0022replacement local\u0022\n-;  V25 rat1         [V25,T13] (  3,  1   )    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n\u002B;  V22 tmp18        [V22,T05] (  3,  3   )     ref  -\u003E  rax         single-def \u0022arr expr\u0022\n\u002B;  V23 tmp19        [V23,T07] (  3,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V24 rat0         [V24,T03] (  4,  3.50)     ref  -\u003E  rax         \u0022replacement local\u0022\n\u002B;  V25 rat1         [V25,T10] (  3,  1   )    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 32\n \n G_M49515_IG01:\n        push     rbp\n        push     r15\n-       push     r14\n        push     rbx\n-       sub      rsp, 24\n\u002B       sub      rsp, 32\n        lea      rbp, [rsp\u002B0x30]\n        vxorps   xmm8, xmm8, xmm8\n-       vmovdqa  xmmword ptr [rbp-0x30], xmm8\n\u002B       vmovdqu  xmmword ptr [rbp-0x28], xmm8\n        xor      eax, eax\n-       mov      qword ptr [rbp-0x20], rax\n\u002B       mov      qword ptr [rbp-0x18], rax\n        mov      r15, rdi\n        mov      rbx, rsi\n-\t\t\t\t\t\t;; size=37 bbWeight=1 PerfScore 7.83\n\u002B\t\t\t\t\t\t;; size=35 bbWeight=1 PerfScore 6.83\n G_M49515_IG02:\n-       mov      r14, gword ptr [rbx\u002B0x28]\n-       test     r14, r14\n-       je       G_M49515_IG14\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M49515_IG04\n-\t\t\t\t\t\t;; size=43 bbWeight=1 PerfScore 8.25\n-G_M49515_IG03:\n-       lea      rsi, [rbp-0x20]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M49515_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M49515_IG04:\n-       lea      rdx, [rbp-0x20]\n-       mov      rsi, r14\n\u002B       mov      rsi, gword ptr [rbx\u002B0x28]\n\u002B       test     rsi, rsi\n\u002B       je       G_M49515_IG09\n\u002B       lea      rdx, [rbp-0x18]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell],byref):System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M49515_IG05:\n-       cmp      byte  ptr [rbp-0x20], 0\n-       je       G_M49515_IG15\n\u002B       cmp      byte  ptr [rbp-0x18], 0\n\u002B       je       G_M49515_IG10\n        mov      rdi, gword ptr [rax\u002B0x10]\n        mov      rsi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellQuery:GetProjectedPositions(System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath):System.Collections.Generic.List\u00601[int]:this\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellQuery:GetProjectedPositions(System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath):System.Collections.Generic.List\u00601[int]:this\n        cmp      dword ptr [rax\u002B0x10], 1\n-       jne      G_M49515_IG12\n-\t\t\t\t\t\t;; size=41 bbWeight=1 PerfScore 12.50\n-G_M49515_IG06:\n-       lea      rsi, [rbp-0x28]\n\u002B       jne      G_M49515_IG07\n\u002B\t\t\t\t\t\t;; size=80 bbWeight=1 PerfScore 19.75\n\u002BG_M49515_IG03:\n\u002B       lea      rsi, [rbp-0x20]\n        mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirst[int](System.Collections.Generic.IEnumerable\u00601[int],byref):int\n        call     [rax]System.Linq.Enumerable:TryGetFirst[int](System.Collections.Generic.IEnumerable\u00601[int],byref):int\n        mov      r15d, eax\n-       cmp      byte  ptr [rbp-0x28], 0\n-       je       G_M49515_IG15\n-       mov      rbx, gword ptr [rbx\u002B0x28]\n-       test     rbx, rbx\n-       je       G_M49515_IG14\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M49515_IG07\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M49515_IG08\n-\t\t\t\t\t\t;; size=94 bbWeight=0.50 PerfScore 12.12\n-G_M49515_IG07:\n-       lea      rdx, [rbp-0x30]\n-       mov      rsi, rbx\n\u002B       cmp      byte  ptr [rbp-0x20], 0\n\u002B       je       G_M49515_IG10\n\u002B       mov      rsi, gword ptr [rbx\u002B0x28]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M49515_IG09\n\u002B       lea      rdx, [rbp-0x28]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell],byref):System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M49515_IG08:\n-       cmp      byte  ptr [rbp-0x30], 0\n-       je       SHORT G_M49515_IG15\n\u002B       cmp      byte  ptr [rbp-0x28], 0\n\u002B       je       SHORT G_M49515_IG10\n        mov      rax, gword ptr [rax\u002B0x08]\n        mov      rax, gword ptr [rax\u002B0x10]\n        cmp      r15d, dword ptr [rax\u002B0x08]\n-       jae      SHORT G_M49515_IG17\n\u002B       jae      SHORT G_M49515_IG12\n        mov      esi, r15d\n        mov      rsi, gword ptr [rax\u002B8*rsi\u002B0x10]\n        mov      rax, rsi\n        test     rax, rax\n-       je       SHORT G_M49515_IG10\n-\t\t\t\t\t\t;; size=36 bbWeight=0.50 PerfScore 6.38\n-G_M49515_IG09:\n\u002B       je       SHORT G_M49515_IG05\n\u002B\t\t\t\t\t\t;; size=103 bbWeight=0.50 PerfScore 13.12\n\u002BG_M49515_IG04:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberProjectedSlot\n        cmp      qword ptr [rax], rdi\n-       jne      SHORT G_M49515_IG16\n\u002B       jne      SHORT G_M49515_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M49515_IG10:\n\u002BG_M49515_IG05:\n        mov      rax, gword ptr [rax\u002B0x08]\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 1.00\n-G_M49515_IG11:\n-       add      rsp, 24\n\u002BG_M49515_IG06:\n\u002B       add      rsp, 32\n        pop      rbx\n-       pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 1.62\n-G_M49515_IG12:\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 1.38\n\u002BG_M49515_IG07:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M49515_IG13:\n-       add      rsp, 24\n\u002BG_M49515_IG08:\n\u002B       add      rsp, 32\n        pop      rbx\n-       pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 1.62\n-G_M49515_IG14:\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 1.38\n\u002BG_M49515_IG09:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M49515_IG15:\n\u002BG_M49515_IG10:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M49515_IG16:\n\u002BG_M49515_IG11:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rax]CORINFO_HELP_CHKCASTCLASS\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M49515_IG17:\n\u002BG_M49515_IG12:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 421, prolog size 31, PerfScore 61.40, instruction count 108, allocated bytes for code 421 (MethodHash=6b673e94) for method System.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher:GetRightMemberPath(System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper):System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath (FullOpts)\n\u002B; Total bytes of code 307, prolog size 29, PerfScore 44.40, instruction count 79, allocated bytes for code 307 (MethodHash=6b673e94) for method System.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher:GetRightMemberPath(System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper):System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":421,"DiffBytes":307},{"Assembly":"MathNet.Numerics.dasm","Method":"MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:SameAs[byte](MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this (FullOpts)","Category":"improvement","Description":"594 -\u003E 120 bytes (-474)","ExtraInfo":null,"Diff":"@@ -1,214 \u002B1,65 @@\n ; Assembly listing for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:SameAs[byte](MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n-; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data\n\u002B; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 12,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]\u003E\n-;  V01 arg1         [V01,T03] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]\u003E\n-;  V02 arg2         [V02,T01] ( 11,  6.50)     int  -\u003E  r15         single-def\n-;  V03 arg3         [V03,T02] ( 11,  6.50)     int  -\u003E  r14         single-def\n-;  V04 arg4         [V04,T04] (  3,  2.50)   ubyte  -\u003E  r13         single-def\n-;  V05 loc0         [V05,T08] (  4,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]\u003E\n\u002B;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]\u003E\n\u002B;  V01 arg1         [V01,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  4   )     int  -\u003E  r15         single-def\n\u002B;  V03 arg3         [V03,T04] (  4,  4   )     int  -\u003E  r14         single-def\n\u002B;* V04 arg4         [V04    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def\n\u002B;* V05 loc0         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]\u003E\n\u002B;  V07 tmp1         [V07,T00] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cdouble[]\u003E\n-;  V09 tmp3         [V09,T06] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[double]\u003E\n-;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cdouble[]\u003E\n-;  V11 tmp5         [V11,T11] (  2,  1   )     int  -\u003E  rsi         \u0022Inline return value spill temp\u0022\n-;  V12 tmp6         [V12,T09] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]\u003E\n-;  V13 tmp7         [V13,T10] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]\u003E\n-;  V14 tmp8         [V14,T07] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]\u003E\n-;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cdouble[]\u003E\n-;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022Single return block return value\u0022\n ;\n ; Lcl frame size = 8\n \n G_M57756_IG01:\n-       push     rbp\n        push     r15\n        push     r14\n        push     r13\n-       push     r12\n        push     rbx\n        push     rax\n-       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n        mov      r15d, edx\n        mov      r14d, ecx\n-       mov      r13d, r8d\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.75\n G_M57756_IG02:\n-       mov      r12, gword ptr [rsi\u002B0x08]\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M57756_IG11\n-\t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 7.00\n-G_M57756_IG03:\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[double]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M57756_IG07\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      SHORT G_M57756_IG05\n\u002B       cmp      byte  ptr [rsi], sil\n        mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        mov      rdi, r13\n        mov      esi, r15d\n        mov      edx, r14d\n        mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]:.ctor(int,int):this\n        call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]:.ctor(int,int):this\n        imul     r15d, r14d\n        movsxd   rsi, r15d\n        mov      rdi, 0xD1FFAB1E      ; double[]\n        call     CORINFO_HELP_NEWARR_1_PTR\n        mov      rsi, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, rbx\n        mov      rsi, r13\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=150 bbWeight=0.50 PerfScore 12.62\n-G_M57756_IG04:\n\u002B\t\t\t\t\t\t;; size=89 bbWeight=1 PerfScore 17.25\n\u002BG_M57756_IG03:\n        add      rsp, 8\n        pop      rbx\n-       pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n-       pop      rbp\n        tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M57756_IG05:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 5.00\n-G_M57756_IG06:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M57756_IG07:\n-       test     r13b, r13b\n-       je       SHORT G_M57756_IG09\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 5.62\n-G_M57756_IG08:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M57756_IG09:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[double]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]:.ctor(int,int):this\n-       cmp      r15d, r14d\n-       mov      esi, r14d\n-       cmovle   esi, r15d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; double[]\n-       call     CORINFO_HELP_NEWARR_1_PTR\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 7.12\n-G_M57756_IG10:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x10]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:Diagonal(MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[double]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M57756_IG11:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]:.ctor(int,int):this\n-       mov      esi, r15d\n-       imul     esi, r14d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; double[]\n-       call     CORINFO_HELP_NEWARR_1_PTR\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=89 bbWeight=0.50 PerfScore 7.75\n-G_M57756_IG12:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n\u002B\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 594, prolog size 16, PerfScore 66.75, instruction count 157, allocated bytes for code 594 (MethodHash=e81c1e63) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:SameAs[byte](MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this (FullOpts)\n\u002B; Total bytes of code 120, prolog size 8, PerfScore 27.25, instruction count 34, allocated bytes for code 120 (MethodHash=e81c1e63) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:SameAs[byte](MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":594,"DiffBytes":120},{"Assembly":"Microsoft.AspNetCore.OData.dasm","Method":"Microsoft.AspNetCore.OData.Query.Expressions.ExpressionBinderBase:CollectAssignments(System.Collections.Generic.IDictionary\u00602[System.String,System.Linq.Expressions.Expression],System.Linq.Expressions.Expression,System.Linq.Expressions.MemberInitExpression,System.String) (FullOpts)","Category":"improvement","Description":"1,360 -\u003E 1,308 bytes (-52)","ExtraInfo":null,"Diff":"@@ -14,21 \u002B14,21 @@\n ;  V03 arg3         [V03,T21] (  5,  3.50)     ref  -\u003E  r14         class-hnd single-def \u003CSystem.String\u003E\n ;  V04 loc0         [V04,T23] (  8,  4.50)     ref  -\u003E  r13         class-hnd \u003CSystem.String\u003E\n ;  V05 loc1         [V05,T15] (  7,  9.50)     ref  -\u003E  registers   class-hnd \u003CSystem.Type\u003E\n-;  V06 loc2         [V06,T28] (  4,  3.50)     ref  -\u003E  [rbp-0x38]  class-hnd \u003CSystem.Linq.Expressions.MemberInitExpression\u003E\n\u002B;  V06 loc2         [V06,T27] (  4,  3.50)     ref  -\u003E  [rbp-0x38]  class-hnd \u003CSystem.Linq.Expressions.MemberInitExpression\u003E\n ;  V07 loc3         [V07,T24] (  5,  4   )     ref  -\u003E  [rbp-0x40]  class-hnd \u003CSystem.Linq.Expressions.Expression\u003E\n ;  V08 loc4         [V08,T16] (  6,  9   )     ref  -\u003E  [rbp-0x48]  do-not-enreg[Z] class-hnd EH-live \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.MemberAssignment]\u003E\n ;  V09 loc5         [V09,T00] ( 11, 26   )     ref  -\u003E  [rbp-0x50]  class-hnd \u003CSystem.Linq.Expressions.MemberAssignment\u003E\n-;  V10 loc6         [V10,T27] (  2,  4   )     ref  -\u003E  [rbp-0x58]  class-hnd exact spill-single-def \u003CSystem.Linq.Expressions.MemberInitExpression\u003E\n-;  V11 loc7         [V11,T41] (  3,  0.88)     ref  -\u003E  r14         class-hnd exact \u003CSystem.Linq.Expressions.MemberInitExpression\u003E\n\u002B;  V10 loc6         [V10,T26] (  2,  4   )     ref  -\u003E  [rbp-0x58]  class-hnd exact spill-single-def \u003CSystem.Linq.Expressions.MemberInitExpression\u003E\n\u002B;  V11 loc7         [V11,T40] (  3,  0.88)     ref  -\u003E  r14         class-hnd exact \u003CSystem.Linq.Expressions.MemberInitExpression\u003E\n ;* V12 loc8         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Linq.Expressions.MemberExpression\u003E\n ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V14 tmp1         [V14,T01] (  4, 22   )     ref  -\u003E  rcx         \u0022ISINST eval op1\u0022\n ;* V15 tmp2         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CSystem.Linq.Expressions.MemberInitExpression\u003E\n ;  V16 tmp3         [V16,T14] (  4, 11   )     ref  -\u003E  r13         \u0022ISINST eval op1\u0022\n ;* V17 tmp4         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CSystem.String\u003E\n-;  V18 tmp5         [V18,T31] (  2,  2   )     ref  -\u003E  r14         class-hnd \u0022spilling qmarkNull\u0022 \u003CSystem.Linq.Expressions.MemberInitExpression\u003E\n\u002B;  V18 tmp5         [V18,T30] (  2,  2   )     ref  -\u003E  r14         class-hnd \u0022spilling qmarkNull\u0022 \u003CSystem.Linq.Expressions.MemberInitExpression\u003E\n ;* V19 tmp6         [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022ISINST eval op1\u0022\n-;  V20 tmp7         [V20,T40] (  3,  1.75)     ref  -\u003E  rax         class-hnd \u0022spilling qmarkNull\u0022 \u003CSystem.Linq.Expressions.MemberAssignment\u003E\n\u002B;  V20 tmp7         [V20,T38] (  3,  1.75)     ref  -\u003E  rax         class-hnd \u0022spilling qmarkNull\u0022 \u003CSystem.Linq.Expressions.MemberAssignment\u003E\n ;  V21 tmp8         [V21,T29] (  4,  2.75)     ref  -\u003E  r14         \u0022ISINST eval op1\u0022\n ;* V22 tmp9         [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CSystem.Linq.Expressions.MemberInitExpression\u003E\n ;* V23 tmp10        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n@@ -46,12 \u002B46,12 @@\n ;  V35 tmp22        [V35,T18] (  2,  8   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V36 tmp23        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Linq.Expressions.UnaryExpression\u003E\n ;* V37 tmp24        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Linq.Expressions.MemberExpression\u003E\n-;  V38 tmp25        [V38,T25] (  4,  4   )     ref  -\u003E  r14         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.MemberBinding]\u003E\n-;  V39 tmp26        [V39    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V38 tmp25        [V38,T28] (  3,  3   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.MemberBinding]\u003E\n\u002B;  V39 tmp26        [V39    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V40 tmp27        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V41 tmp28        [V41,T39] (  5,  1.88)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.MemberBinding\u003E\n-;  V42 tmp29        [V42,T30] (  4,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.MemberBinding]\u003E\n-;  V43 tmp30        [V43,T32] (  2,  2   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n\u002B;  V41 tmp28        [V41,T39] (  4,  1.38)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.MemberBinding\u003E\n\u002B;* V42 tmp29        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.MemberBinding]\u003E\n\u002B;  V43 tmp30        [V43,T31] (  2,  2   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V44 tmp31        [V44,T05] (  3, 12   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V45 tmp32        [V45,T06] (  3, 12   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V46 tmp33        [V46,T07] (  3, 12   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n@@ -59,16 \u002B59,16 @@\n ;  V48 tmp35        [V48,T09] (  3, 12   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V49 tmp36        [V49,T10] (  3, 12   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V50 tmp37        [V50,T11] (  3, 12   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n-;  V51 tmp38        [V51,T33] (  2,  2   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n-;  V52 tmp39        [V52,T34] (  2,  2   )     ref  -\u003E  rdx         \u0022argument with side effect\u0022\n-;  V53 tmp40        [V53,T35] (  2,  2   )     ref  -\u003E  rdx         \u0022argument with side effect\u0022\n-;  V54 tmp41        [V54,T36] (  2,  2   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n-;  V55 tmp42        [V55,T37] (  2,  2   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n-;  V56 tmp43        [V56,T38] (  2,  2   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n\u002B;  V51 tmp38        [V51,T32] (  2,  2   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n\u002B;  V52 tmp39        [V52,T33] (  2,  2   )     ref  -\u003E  rdx         \u0022argument with side effect\u0022\n\u002B;  V53 tmp40        [V53,T34] (  2,  2   )     ref  -\u003E  rdx         \u0022argument with side effect\u0022\n\u002B;  V54 tmp41        [V54,T35] (  2,  2   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n\u002B;  V55 tmp42        [V55,T36] (  2,  2   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n\u002B;  V56 tmp43        [V56,T37] (  2,  2   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n ;  V57 rat0         [V57,T17] (  3,  8   )     ref  -\u003E  rsi         class-hnd \u0022Spilling to split statement for tree\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n ;  V58 rat1         [V58,T03] (  4, 14   )     ref  -\u003E  rdi         \u0022replacement local\u0022\n-;  V59 rat2         [V59,T26] (  3,  4   )    long  -\u003E  rax         \u0022CSE for expectedClsNode\u0022\n-;  V60 rat3         [V60,T42] (  3, 12   )  simd16  -\u003E  mm0         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n\u002B;  V59 rat2         [V59,T25] (  3,  4   )    long  -\u003E  rax         \u0022CSE for expectedClsNode\u0022\n\u002B;  V60 rat3         [V60,T41] (  3, 12   )  simd16  -\u003E  mm0         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n ;\n ; Lcl frame size = 56\n \n@@ -89,7 \u002B89,7 @@ G_M28628_IG01:\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 8.75\n G_M28628_IG02:\n        test     rdx, rdx\n-       je       G_M28628_IG49\n\u002B       je       G_M28628_IG47\n \t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 1.25\n G_M28628_IG03:\n        xor      r13, r13\n@@ -383,68 \u002B383,51 @@ G_M28628_IG37:\n G_M28628_IG38:\n        mov      r14, gword ptr [rbp-0x40]\n        test     r14, r14\n\u002B       je       G_M28628_IG47\n\u002B       mov      rdx, 0xD1FFAB1E      ; System.Linq.Expressions.MemberInitExpression\n\u002B       xor      rsi, rsi\n\u002B       cmp      qword ptr [r14], rdx\n\u002B       cmovne   r14, rsi\n\u002B       mov      rsi, gword ptr [r14\u002B0x10]\n\u002B       test     rsi, rsi\n        je       G_M28628_IG49\n-       mov      rsi, 0xD1FFAB1E      ; System.Linq.Expressions.MemberInitExpression\n-       xor      rdi, rdi\n-       cmp      qword ptr [r14], rsi\n-       cmovne   r14, rdi\n-       mov      r14, gword ptr [r14\u002B0x10]\n-       test     r14, r14\n-       je       G_M28628_IG51\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.MemberBinding]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M28628_IG39\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M28628_IG40\n-\t\t\t\t\t\t;; size=94 bbWeight=0.50 PerfScore 11.62\n-G_M28628_IG39:\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Linq.Expressions.MemberBinding](System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.MemberBinding],byref):System.Linq.Expressions.MemberBinding\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M28628_IG40:\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M28628_IG52\n\u002B       je       G_M28628_IG50\n        test     rax, rax\n-       je       SHORT G_M28628_IG43\n-\t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 1.62\n-G_M28628_IG41:\n\u002B       je       SHORT G_M28628_IG41\n\u002B\t\t\t\t\t\t;; size=86 bbWeight=0.50 PerfScore 7.88\n\u002BG_M28628_IG39:\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Expressions.MemberAssignment\n        cmp      qword ptr [rax], rdi\n-       jne      SHORT G_M28628_IG43\n\u002B       jne      SHORT G_M28628_IG41\n \t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M28628_IG42:\n-       jmp      SHORT G_M28628_IG44\n\u002BG_M28628_IG40:\n\u002B       jmp      SHORT G_M28628_IG42\n \t\t\t\t\t\t;; size=2 bbWeight=0.12 PerfScore 0.25\n-G_M28628_IG43:\n\u002BG_M28628_IG41:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.25 PerfScore 0.06\n-G_M28628_IG44:\n\u002BG_M28628_IG42:\n        mov      r14, gword ptr [rax\u002B0x18]\n        test     r14, r14\n-       je       SHORT G_M28628_IG47\n\u002B       je       SHORT G_M28628_IG45\n \t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 1.62\n-G_M28628_IG45:\n\u002BG_M28628_IG43:\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Expressions.MemberInitExpression\n        cmp      qword ptr [r14], rdi\n-       jne      SHORT G_M28628_IG47\n\u002B       jne      SHORT G_M28628_IG45\n \t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M28628_IG46:\n-       jmp      SHORT G_M28628_IG48\n\u002BG_M28628_IG44:\n\u002B       jmp      SHORT G_M28628_IG46\n \t\t\t\t\t\t;; size=2 bbWeight=0.12 PerfScore 0.25\n-G_M28628_IG47:\n\u002BG_M28628_IG45:\n        xor      r14, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.25 PerfScore 0.06\n-G_M28628_IG48:\n\u002BG_M28628_IG46:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; \u0027NestedValue\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Expressions.Expression:Property(System.Linq.Expressions.Expression,System.String):System.Linq.Expressions.MemberExpression\n@@ -460,10 \u002B443,10 @@ G_M28628_IG48:\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.AspNetCore.OData.Query.Expressions.ExpressionBinderBase:CollectAssignments(System.Collections.Generic.IDictionary\u00602[System.String,System.Linq.Expressions.Expression],System.Linq.Expressions.Expression,System.Linq.Expressions.MemberInitExpression,System.String)\n        call     [rax]Microsoft.AspNetCore.OData.Query.Expressions.ExpressionBinderBase:CollectAssignments(System.Collections.Generic.IDictionary\u00602[System.String,System.Linq.Expressions.Expression],System.Linq.Expressions.Expression,System.Linq.Expressions.MemberInitExpression,System.String)\n \t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 5.88\n-G_M28628_IG49:\n\u002BG_M28628_IG47:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M28628_IG50:\n\u002BG_M28628_IG48:\n        add      rsp, 56\n        pop      rbx\n        pop      r12\n@@ -473,31 \u002B456,31 @@ G_M28628_IG50:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M28628_IG51:\n\u002BG_M28628_IG49:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M28628_IG52:\n\u002BG_M28628_IG50:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M28628_IG53:\n\u002BG_M28628_IG51:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M28628_IG54:\n\u002BG_M28628_IG52:\n        cmp      gword ptr [rbp-0x48], 0\n-       je       SHORT G_M28628_IG55\n\u002B       je       SHORT G_M28628_IG53\n        mov      rdi, gword ptr [rbp-0x48]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M28628_IG55:\n\u002BG_M28628_IG53:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M28628_IG56:\n\u002BG_M28628_IG54:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n@@ -505,5 \u002B488,5 @@ RWD00  \tdq\t0056006400650074h, 00650075006C0061h\n RWD16  \tdq\t007400730065004Eh, 0061005600640065h\n \n \n-; Total bytes of code 1360, prolog size 34, PerfScore 397.44, instruction count 317, allocated bytes for code 1360 (MethodHash=84eb902b) for method Microsoft.AspNetCore.OData.Query.Expressions.ExpressionBinderBase:CollectAssignments(System.Collections.Generic.IDictionary\u00602[System.String,System.Linq.Expressions.Expression],System.Linq.Expressions.Expression,System.Linq.Expressions.MemberInitExpression,System.String) (FullOpts)\n\u002B; Total bytes of code 1308, prolog size 34, PerfScore 389.94, instruction count 304, allocated bytes for code 1308 (MethodHash=84eb902b) for method Microsoft.AspNetCore.OData.Query.Expressions.ExpressionBinderBase:CollectAssignments(System.Collections.Generic.IDictionary\u00602[System.String,System.Linq.Expressions.Expression],System.Linq.Expressions.Expression,System.Linq.Expressions.MemberInitExpression,System.String) (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1360,"DiffBytes":1308},{"Assembly":"Microsoft.EntityFrameworkCore.dasm","Method":"Microsoft.EntityFrameworkCore.Query.ExpressionPrinter:VisitLambda[long](System.Linq.Expressions.Expression\u00601[long]):System.Linq.Expressions.Expression:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 797 bytes (-52)","ExtraInfo":null,"Diff":"@@ -8,34 \u002B8,34 @@\n ; 0 inlinees with PGO data; 10 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T02] ( 12, 24   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.ExpressionPrinter\u003E\n\u002B;  V00 this         [V00,T01] ( 12, 24   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.ExpressionPrinter\u003E\n ;  V01 arg1         [V01,T05] ( 10, 13   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Linq.Expressions.Expression\u00601[long]\u003E\n ;  V02 loc0         [V02,T00] ( 12, 28   )     ref  -\u003E  [rbp-0x38]  do-not-enreg[M] class-hnd EH-live \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;  V03 loc1         [V03,T04] (  5, 20   )     ref  -\u003E  r13         class-hnd \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n-;  V04 loc2         [V04,T10] (  2,  8   )     ref  -\u003E  rdx         class-hnd exact \u003CSystem.String\u003E\n-;  V05 loc3         [V05,T11] (  2,  8   )     ref  -\u003E  rsi         class-hnd \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n\u002B;  V04 loc2         [V04,T08] (  2,  8   )     ref  -\u003E  rdx         class-hnd exact \u003CSystem.String\u003E\n\u002B;  V05 loc3         [V05,T09] (  2,  8   )     ref  -\u003E  rsi         class-hnd \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V08 tmp2         [V08,T19] (  3,  2   )     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V09 tmp3         [V09,T13] (  3,  5   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V08 tmp2         [V08,T18] (  3,  2   )     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V09 tmp3         [V09,T12] (  3,  5   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V11 tmp5         [V11,T03] (  3, 24   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Linq.Expressions.ParameterExpression,System.String]\u003E\n-;  V12 tmp6         [V12,T01] (  4, 28   )     ref  -\u003E  r12         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V13 tmp7         [V13    ] (  3,  8   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V11 tmp5         [V11,T02] (  3, 24   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Linq.Expressions.ParameterExpression,System.String]\u003E\n\u002B;  V12 tmp6         [V12,T03] (  3, 24   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V13 tmp7         [V13    ] (  2,  8   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V14 tmp8         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V15 tmp9         [V15,T09] (  3,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n-;  V16 tmp10        [V16,T06] (  4, 12   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V15 tmp9         [V15,T10] (  2,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n\u002B;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;* V17 tmp11        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V18 tmp12        [V18,T20] (  3,  2   )     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V19 tmp13        [V19,T14] (  3,  5   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V18 tmp12        [V18,T19] (  3,  2   )     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V19 tmp13        [V19,T13] (  3,  5   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V21 tmp15        [V21,T15] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V22 tmp16        [V22,T17] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V23 tmp17        [V23,T07] (  3, 12   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n-;  V24 tmp18        [V24,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V25 tmp19        [V25,T18] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V26 tmp20        [V26,T12] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V27 cse0         [V27,T08] (  6,  9   )    long  -\u003E  r14         \u0022CSE #02: moderate\u0022\n\u002B;  V21 tmp15        [V21,T14] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V22 tmp16        [V22,T16] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V23 tmp17        [V23,T06] (  3, 12   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n\u002B;  V24 tmp18        [V24,T15] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V25 tmp19        [V25,T17] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V26 tmp20        [V26,T11] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V27 cse0         [V27,T07] (  6,  9   )    long  -\u003E  r14         \u0022CSE #02: moderate\u0022\n ;\n ; Lcl frame size = 24\n \n@@ -84,7 \u002B84,7 @@ G_M52312_IG04:\n G_M52312_IG05:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M52312_IG28\n\u002B       je       G_M52312_IG25\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n G_M52312_IG06:\n        mov      rdi, 0xD1FFAB1E      ; data for System.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]:Empty\n@@ -105,7 \u002B105,7 @@ G_M52312_IG09:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():bool:this\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n-       je       G_M52312_IG17\n\u002B       je       G_M52312_IG14\n \t\t\t\t\t\t;; size=25 bbWeight=8 PerfScore 44.00\n G_M52312_IG10:\n        mov      rdi, gword ptr [rbp-0x38]\n@@ -126,38 \u002B126,19 @@ G_M52312_IG10:\n        call     [rax\u002B0x20]System.Linq.Expressions.ExpressionVisitor:Visit(System.Linq.Expressions.Expression):System.Linq.Expressions.Expression:this\n        mov      rdi, r15\n        call     [r14\u002B0x30]System.Linq.Expressions.LambdaExpression:GetOrMakeParameters():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]:this\n-       mov      r12, rax\n-       test     r12, r12\n-       je       SHORT G_M52312_IG15\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ParameterExpression]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n        je       SHORT G_M52312_IG12\n-\t\t\t\t\t\t;; size=109 bbWeight=4 PerfScore 126.00\n-G_M52312_IG11:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M52312_IG13\n-\t\t\t\t\t\t;; size=19 bbWeight=2 PerfScore 19.50\n-G_M52312_IG12:\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r12\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.Linq.Expressions.ParameterExpression](System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.ParameterExpression],byref):System.Linq.Expressions.ParameterExpression\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=2 PerfScore 8.50\n-G_M52312_IG13:\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       SHORT G_M52312_IG16\n\u002B       je       SHORT G_M52312_IG13\n        cmp      r13, rax\n        je       G_M52312_IG09\n-\t\t\t\t\t\t;; size=15 bbWeight=4 PerfScore 13.00\n-G_M52312_IG14:\n\u002B\t\t\t\t\t\t;; size=120 bbWeight=4 PerfScore 135.00\n\u002BG_M52312_IG11:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      rsi, 0xD1FFAB1E      ; \u0027, \u0027\n        mov      rax, qword ptr [rdi]\n@@ -165,18 \u002B146,18 @@ G_M52312_IG14:\n        call     [rax\u002B0x30]Microsoft.EntityFrameworkCore.Infrastructure.IndentedStringBuilder:Append(System.String):Microsoft.EntityFrameworkCore.Infrastructure.IndentedStringBuilder:this\n        jmp      G_M52312_IG09\n \t\t\t\t\t\t;; size=29 bbWeight=2 PerfScore 22.50\n-G_M52312_IG15:\n\u002BG_M52312_IG12:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M52312_IG16:\n\u002BG_M52312_IG13:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M52312_IG17:\n\u002BG_M52312_IG14:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n@@ -186,16 \u002B167,16 @@ G_M52312_IG17:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        cmp      eax, 1\n-       je       SHORT G_M52312_IG19\n\u002B       je       SHORT G_M52312_IG16\n \t\t\t\t\t\t;; size=46 bbWeight=1 PerfScore 14.00\n-G_M52312_IG18:\n\u002BG_M52312_IG15:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      rsi, 0xD1FFAB1E      ; \u0027)\u0027\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]Microsoft.EntityFrameworkCore.Infrastructure.IndentedStringBuilder:Append(System.String):Microsoft.EntityFrameworkCore.Infrastructure.IndentedStringBuilder:this\n \t\t\t\t\t\t;; size=24 bbWeight=0.50 PerfScore 4.62\n-G_M52312_IG19:\n\u002BG_M52312_IG16:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      rsi, 0xD1FFAB1E      ; \u0027 =\u003E \u0027\n        mov      rax, qword ptr [rdi]\n@@ -213,35 \u002B194,35 @@ G_M52312_IG19:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       jne      SHORT G_M52312_IG22\n\u002B       jne      SHORT G_M52312_IG19\n \t\t\t\t\t\t;; size=72 bbWeight=1 PerfScore 28.50\n-G_M52312_IG20:\n\u002BG_M52312_IG17:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M52312_IG29\n\u002B       je       G_M52312_IG26\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n-G_M52312_IG21:\n\u002BG_M52312_IG18:\n        mov      rdi, 0xD1FFAB1E      ; data for System.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]:Empty\n        mov      r13, gword ptr [rdi]\n-       jmp      SHORT G_M52312_IG23\n\u002B       jmp      SHORT G_M52312_IG20\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M52312_IG22:\n\u002BG_M52312_IG19:\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEnumerable\u00601[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator\u00601[System.__Canon]:this\n        call     [r11]System.Collections.Generic.IEnumerable\u00601[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator\u00601[System.__Canon]:this\n        mov      r13, rax\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 2.75\n-G_M52312_IG23:\n\u002BG_M52312_IG20:\n        mov      gword ptr [rbp-0x38], r13\n \t\t\t\t\t\t;; size=4 bbWeight=1 PerfScore 1.00\n-G_M52312_IG24:\n\u002BG_M52312_IG21:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():bool:this\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n-       je       SHORT G_M52312_IG26\n\u002B       je       SHORT G_M52312_IG23\n \t\t\t\t\t\t;; size=21 bbWeight=8 PerfScore 44.00\n-G_M52312_IG25:\n\u002BG_M52312_IG22:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEnumerator\u00601[System.__Canon]:get_Current():System.__Canon:this\n        call     [r11]System.Collections.Generic.IEnumerator\u00601[System.__Canon]:get_Current():System.__Canon:this\n@@ -250,15 \u002B231,15 @@ G_M52312_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary\u00602[System.__Canon,System.__Canon]:Remove(System.__Canon):bool:this\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.Collections.Generic.Dictionary\u00602[System.__Canon,System.__Canon]:Remove(System.__Canon):bool:this\n-       jmp      SHORT G_M52312_IG24\n\u002B       jmp      SHORT G_M52312_IG21\n \t\t\t\t\t\t;; size=40 bbWeight=4 PerfScore 55.00\n-G_M52312_IG26:\n\u002BG_M52312_IG23:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        mov      rax, r15\n \t\t\t\t\t\t;; size=20 bbWeight=1 PerfScore 4.50\n-G_M52312_IG27:\n\u002BG_M52312_IG24:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -268,52 \u002B249,52 @@ G_M52312_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M52312_IG28:\n\u002BG_M52312_IG25:\n        mov      rdi, 0xD1FFAB1E      ; System.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M52312_IG06\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M52312_IG29:\n\u002BG_M52312_IG26:\n        mov      rdi, 0xD1FFAB1E      ; System.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M52312_IG21\n\u002B       jmp      G_M52312_IG18\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M52312_IG30:\n\u002BG_M52312_IG27:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M52312_IG31:\n\u002BG_M52312_IG28:\n        cmp      gword ptr [rbp-0x38], 0\n-       je       SHORT G_M52312_IG32\n\u002B       je       SHORT G_M52312_IG29\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M52312_IG32:\n\u002BG_M52312_IG29:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M52312_IG33:\n\u002BG_M52312_IG30:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M52312_IG34:\n\u002BG_M52312_IG31:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M52312_IG35:\n\u002BG_M52312_IG32:\n        cmp      gword ptr [rbp-0x38], 0\n-       je       SHORT G_M52312_IG36\n\u002B       je       SHORT G_M52312_IG33\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M52312_IG36:\n\u002BG_M52312_IG33:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M52312_IG37:\n\u002BG_M52312_IG34:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 31, PerfScore 440.25, instruction count 201, allocated bytes for code 849 (MethodHash=898b33a7) for method Microsoft.EntityFrameworkCore.Query.ExpressionPrinter:VisitLambda[long](System.Linq.Expressions.Expression\u00601[long]):System.Linq.Expressions.Expression:this (FullOpts)\n\u002B; Total bytes of code 797, prolog size 31, PerfScore 408.25, instruction count 188, allocated bytes for code 797 (MethodHash=898b33a7) for method Microsoft.EntityFrameworkCore.Query.ExpressionPrinter:VisitLambda[long](System.Linq.Expressions.Expression\u00601[long]):System.Linq.Expressions.Expression:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":797},{"Assembly":"Microsoft.OpenApi.dasm","Method":"Microsoft.OpenApi.OpenApiTag:SerializeInternal(Microsoft.OpenApi.IOpenApiWriter,int,System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]):this (FullOpts)","Category":"improvement","Description":"1,033 -\u003E 1,013 bytes (-20)","ExtraInfo":null,"Diff":"@@ -15,23 \u002B15,22 @@\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T05] (  3,  5   )     ref  -\u003E  r12         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V06 tmp2         [V06,T06] (  3,  5   )     ref  -\u003E  r12         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V07 tmp3         [V07,T03] (  5,  7   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiExternalDocs\u003E\n\u002B;  V07 tmp3         [V07,T03] (  4,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiExternalDocs\u003E\n ;  V08 tmp4         [V08,T17] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n-;* V09 tmp5         [V09    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling qmarkNull\u0022\n-;* V10 tmp6         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;* V11 tmp7         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;  V12 tmp8         [V12,T18] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V13 tmp9         [V13,T12] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V14 tmp10        [V14,T13] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V15 tmp11        [V15,T14] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V16 tmp12        [V16,T15] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V17 tmp13        [V17,T16] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V18 tmp14        [V18,T09] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V19 tmp15        [V19,T10] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V20 tmp16        [V20,T11] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V21 tmp17        [V21,T19] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V22 cse0         [V22,T07] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #04: moderate\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #08: moderate\u0022\n\u002B;* V09 tmp5         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;* V10 tmp6         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;  V11 tmp7         [V11,T18] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V12 tmp8         [V12,T12] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V13 tmp9         [V13,T13] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V14 tmp10        [V14,T14] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V15 tmp11        [V15,T15] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V16 tmp12        [V16,T16] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V17 tmp13        [V17,T09] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V18 tmp14        [V18,T10] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V19 tmp15        [V19,T11] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V20 tmp16        [V20,T19] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;  V21 cse0         [V21,T07] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #04: moderate\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #08: moderate\u0022\n ;\n ; Lcl frame size = 8\n \n@@ -93,8 \u002B92,8 @@ G_M58896_IG05:\n G_M58896_IG06:\n        mov      r12, gword ptr [r15\u002B0x18]\n        test     r12, r12\n-       je       G_M58896_IG09\n-\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.25\n\u002B       je       SHORT G_M58896_IG09\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.25\n G_M58896_IG07:\n        mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.IEnumerable\n@@ -102,9 \u002B101,6 @@ G_M58896_IG07:\n        call     [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE\n        test     rax, rax\n        je       SHORT G_M58896_IG08\n-       mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Nodes.JsonArray\n-       cmp      qword ptr [r12], rdi\n-       je       SHORT G_M58896_IG08\n        mov      rdi, rax\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n        call     [r11]System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n@@ -113,7 \u002B109,7 @@ G_M58896_IG07:\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n        je       SHORT G_M58896_IG09\n-\t\t\t\t\t\t;; size=82 bbWeight=0.50 PerfScore 8.25\n\u002B\t\t\t\t\t\t;; size=66 bbWeight=0.50 PerfScore 6.62\n G_M58896_IG08:\n        test     r13, r13\n        je       G_M58896_IG21\n@@ -284,5 \u002B280,5 @@ G_M58896_IG21:\n        int3     \n \t\t\t\t\t\t;; size=87 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1033, prolog size 16, PerfScore 117.88, instruction count 206, allocated bytes for code 1033 (MethodHash=085919ef) for method Microsoft.OpenApi.OpenApiTag:SerializeInternal(Microsoft.OpenApi.IOpenApiWriter,int,System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]):this (FullOpts)\n\u002B; Total bytes of code 1013, prolog size 16, PerfScore 116.25, instruction count 203, allocated bytes for code 1013 (MethodHash=085919ef) for method Microsoft.OpenApi.OpenApiTag:SerializeInternal(Microsoft.OpenApi.IOpenApiWriter,int,System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1033,"DiffBytes":1013},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:Aggregate[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)","Category":"improvement","Description":"1,665 -\u003E 1,580 bytes (-85)","ExtraInfo":null,"Diff":"@@ -14,11 \u002B14,11 @@\n ;  V03 arg2         [V03,T04] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.__Canon,int]\u003E\n ;  V04 arg3         [V04,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T33] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n\u002B;  V06 loc0         [V06,T32] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n-;  V08 loc2         [V08,T34] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V09 loc3         [V09,T39] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V10 loc4         [V10,T40] (  3,  1.50)     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[int]\u003E\n\u002B;  V08 loc2         [V08,T33] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V09 loc3         [V09,T38] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V10 loc4         [V10,T39] (  3,  1.50)     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[int]\u003E\n ;  V11 OutArgs      [V11    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V12 tmp1         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V13 tmp2         [V13    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n@@ -44,22 \u002B44,22 @@\n ;* V33 tmp22        [V33    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V34 tmp23        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V35 tmp24        [V35    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V36 tmp25        [V36,T28] (  3,  2   )     int  -\u003E  rdi        \n-;  V37 tmp26        [V37,T06] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V38 tmp27        [V38    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V39 tmp28        [V39,T17] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V40 tmp29        [V40,T18] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V36 tmp25        [V36,T27] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V37 tmp26        [V37,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V38 tmp27        [V38    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V39 tmp28        [V39,T17] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V40 tmp29        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V41 tmp30        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V42 tmp31        [V42,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V43 tmp32        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V44 tmp33        [V44,T38] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V44 tmp33        [V44,T37] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V45 tmp34        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V46 tmp35        [V46,T26] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V47 tmp36        [V47,T19] (  3,  3   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V46 tmp35        [V46,T25] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V47 tmp36        [V47,T18] (  3,  3   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V48 tmp37        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V49 tmp38        [V49,T08] ( 10,  5   )     ref  -\u003E  [rbp-0x98]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;  V49 tmp38        [V49,T08] ( 10,  5   )     ref  -\u003E  [rbp-0x90]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V50 tmp39        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V51 tmp40        [V51,T09] ( 10,  5   )     ref  -\u003E  [rbp-0xA0]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;  V51 tmp40        [V51,T09] ( 10,  5   )     ref  -\u003E  [rbp-0x98]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V52 tmp41        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V53 tmp42        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V54 tmp43        [V54    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -68,11 \u002B68,11 @@\n ;* V57 tmp46        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[int]\u003E\n ;* V58 tmp47        [V58    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V59 tmp48        [V59    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V60 tmp49        [V60,T41] (  2,  1   )     ref  -\u003E  [rbp-0xA8]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V61 tmp50        [V61,T27] (  8,  2   )     ref  -\u003E  [rbp-0xB0]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V62 tmp51        [V62,T20] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V63 tmp52        [V63,T42] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[int]\u003E\n-;  V64 tmp53        [V64,T32] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V60 tmp49        [V60,T40] (  2,  1   )     ref  -\u003E  [rbp-0xA0]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V61 tmp50        [V61,T26] (  8,  2   )     ref  -\u003E  [rbp-0xA8]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V62 tmp51        [V62,T19] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V63 tmp52        [V63,T41] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[int]\u003E\n\u002B;  V64 tmp53        [V64,T31] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V65 tmp54        [V65    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V66 tmp55        [V66,T10] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V67 tmp56        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -80,29 \u002B80,29 @@\n ;* V69 tmp58        [V69    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V70 tmp59        [V70    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V71 tmp60        [V71    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;  V72 tmp61        [V72,T14] (  3,  2   )     ref  -\u003E  [rbp-0xB8]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V73 tmp62        [V73,T44] (  2,  1   )   ubyte  -\u003E  r12         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V74 tmp63        [V74,T45] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V75 tmp64        [V75,T46] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V19.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V76 tmp65        [V76,T47] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V19.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V72 tmp61        [V72,T14] (  3,  2   )     ref  -\u003E  [rbp-0xB0]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n\u002B       je       SHORT G_M52881_IG33\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      rax, rdi\n        test     rax, rax\n-       je       SHORT G_M52881_IG35\n\u002B       je       SHORT G_M52881_IG32\n\u002B       mov      rdi, rax\n\u002B       mov      esi, 1\n\u002B       mov      gword ptr [rbp-0x90], rax\n\u002B       mov      rcx, qword ptr [rax]\n\u002B       mov      rcx, qword ptr [rcx\u002B0x40]\n\u002B       call     [rcx\u002B0x28]System.Threading.CancellationTokenSource:Dispose(bool):this\n\u002B       mov      rdi, gword ptr [rbp-0x90]\n\u002B       mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n\u002B       call     [rax]System.GC:SuppressFinalize(System.Object)\n\u002B\t\t\t\t\t\t;; size=67 bbWeight=0.50 PerfScore 9.62\n\u002BG_M52881_IG32:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rdi, gword ptr [rsi\u002B0x10]\n\u002B       mov      rax, rdi\n\u002B       test     rax, rax\n\u002B       je       SHORT G_M52881_IG33\n        mov      rdi, rax\n        mov      esi, 1\n        mov      gword ptr [rbp-0x98], rax\n@@ -437,34 \u002B433,18 @@ G_M52881_IG34:\n        mov      rdi, gword ptr [rbp-0x98]\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=77 bbWeight=0.50 PerfScore 9.62\n-G_M52881_IG35:\n-       mov      rsi, gword ptr [rbp-0x88]\n-       mov      rdi, gword ptr [rsi\u002B0x10]\n-       mov      rax, rdi\n-       test     rax, rax\n-       je       SHORT G_M52881_IG36\n-       mov      rdi, rax\n-       mov      esi, 1\n-       mov      gword ptr [rbp-0xA0], rax\n-       mov      rcx, qword ptr [rax]\n-       mov      rcx, qword ptr [rcx\u002B0x40]\n-       call     [rcx\u002B0x28]System.Threading.CancellationTokenSource:Dispose(bool):this\n-       mov      rdi, gword ptr [rbp-0xA0]\n-       mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n-       call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.62\n-G_M52881_IG36:\n\u002B\t\t\t\t\t\t;; size=60 bbWeight=0.50 PerfScore 8.62\n\u002BG_M52881_IG33:\n        mov      rdi, qword ptr [r14\u002B0x18]\n        cmp      qword ptr [rdi\u002B0x08], 64\n-       jle      SHORT G_M52881_IG40\n\u002B       jle      SHORT G_M52881_IG37\n \t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 2.50\n-G_M52881_IG37:\n\u002BG_M52881_IG34:\n        mov      rsi, qword ptr [rdi\u002B0x40]\n        test     rsi, rsi\n-       je       SHORT G_M52881_IG40\n\u002B       je       SHORT G_M52881_IG37\n \t\t\t\t\t\t;; size=9 bbWeight=0.40 PerfScore 1.30\n-G_M52881_IG38:\n\u002BG_M52881_IG35:\n        mov      rdi, r15\n        mov      rdx, r13\n        mov      rcx, r12\n@@ -473,7 \u002B453,7 @@ G_M52881_IG38:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateAggregateToCollectionResultCursor[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[int],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[int]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M52881_IG39:\n\u002BG_M52881_IG36:\n        add      rsp, 200\n        pop      rbx\n        pop      r12\n@@ -483,15 \u002B463,15 @@ G_M52881_IG39:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M52881_IG40:\n\u002BG_M52881_IG37:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      SHORT G_M52881_IG38\n\u002B       jmp      SHORT G_M52881_IG35\n \t\t\t\t\t\t;; size=30 bbWeight=0.18 PerfScore 1.08\n-G_M52881_IG41:\n\u002BG_M52881_IG38:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -499,38 \u002B479,38 @@ G_M52881_IG41:\n        mov      rdi, rax\n        jmp      G_M52881_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M52881_IG42:\n\u002BG_M52881_IG39:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M52881_IG32\n\u002B       jmp      G_M52881_IG29\n \t\t\t\t\t\t;; size=33 bbWeight=0.18 PerfScore 1.08\n-G_M52881_IG43:\n\u002BG_M52881_IG40:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M52881_IG24\n\u002B       jmp      G_M52881_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.10 PerfScore 0.60\n-G_M52881_IG44:\n\u002BG_M52881_IG41:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M52881_IG45:\n\u002BG_M52881_IG42:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M52881_IG46:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M52881_IG48\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M52881_IG43:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M52881_IG45\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M52881_IG47\n\u002B       je       SHORT G_M52881_IG44\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -539,12 \u002B519,12 @@ G_M52881_IG46:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M52881_IG47:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M52881_IG44:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x10]\n        test     r15, r15\n-       je       SHORT G_M52881_IG48\n\u002B       je       SHORT G_M52881_IG45\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -553,24 \u002B533,24 @@ G_M52881_IG47:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M52881_IG48:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M52881_IG45:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M52881_IG49:\n\u002BG_M52881_IG46:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M52881_IG50:\n\u002BG_M52881_IG47:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M52881_IG51:\n-       cmp      gword ptr [rbp-0xB0], 0\n-       je       SHORT G_M52881_IG53\n-       mov      rsi, gword ptr [rbp-0xB0]\n\u002BG_M52881_IG48:\n\u002B       cmp      gword ptr [rbp-0xA8], 0\n\u002B       je       SHORT G_M52881_IG50\n\u002B       mov      rsi, gword ptr [rbp-0xA8]\n        mov      r13, gword ptr [rsi\u002B0x08]\n        test     r13, r13\n-       je       SHORT G_M52881_IG52\n\u002B       je       SHORT G_M52881_IG49\n        mov      rdi, r13\n        mov      esi, 1\n        mov      rax, qword ptr [r13]\n@@ -580,11 \u002B560,11 @@ G_M52881_IG51:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M52881_IG52:\n-       mov      rsi, gword ptr [rbp-0xB0]\n\u002BG_M52881_IG49:\n\u002B       mov      rsi, gword ptr [rbp-0xA8]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M52881_IG53\n\u002B       je       SHORT G_M52881_IG50\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -594,13 \u002B574,13 @@ G_M52881_IG52:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M52881_IG53:\n\u002BG_M52881_IG50:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M52881_IG54:\n\u002BG_M52881_IG51:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1665, prolog size 66, PerfScore 184.71, instruction count 387, allocated bytes for code 1665 (MethodHash=5a6b316e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:Aggregate[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)\n\u002B; Total bytes of code 1580, prolog size 66, PerfScore 175.33, instruction count 373, allocated bytes for code 1580 (MethodHash=5a6b316e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:Aggregate[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1665,"DiffBytes":1580},{"Assembly":"Nest.dasm","Method":"Nest.Extensions\u002B\u003CForEachAsync\u003Ed__29\u00602[byte,System.Nullable\u00601[int]]:MoveNext():this (FullOpts)","Category":"improvement","Description":"1,483 -\u003E 1,434 bytes (-49)","ExtraInfo":null,"Diff":"@@ -31,9 \u002B31,9 @@\n ;* V20 tmp7         [V20    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;* V21 tmp8         [V21    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;  V22 tmp9         [V22,T17] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Threading.Tasks.Task]\u003E\n-;  V23 tmp10        [V23,T45] (  2,  0   )     ref  -\u003E  rsi         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V23 tmp10        [V23,T44] (  2,  0   )     ref  -\u003E  rsi         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n ;  V24 tmp11        [V24,T18] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.SemaphoreSlim\u003E\n-;  V25 tmp12        [V25,T46] (  2,  0   )     ref  -\u003E  rsi         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V25 tmp12        [V25,T45] (  2,  0   )     ref  -\u003E  rsi         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n ;  V26 tmp13        [V26,T09] (  3, 20   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Threading.Tasks.Task[]\u003E\n ;  V27 tmp14        [V27,T07] (  4, 24   )     int  -\u003E  r14         \u0022Inline stloc first use temp\u0022\n ;  V28 tmp15        [V28,T02] (  3, 32   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n@@ -47,32 \u002B47,32 @@\n ;* V36 tmp23        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Threading.Tasks.Task]\u003E\n ;* V37 tmp24        [V37    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.Threading.Tasks.Task]\u003E\n ;* V38 tmp25        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Threading.Tasks.Task]\u003E\n-;* V39 tmp26        [V39,T41] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V40 tmp27        [V40,T27] (  2,  4   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;* V39 tmp26        [V39,T40] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V40 tmp27        [V40,T26] (  2,  4   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;* V41 tmp28        [V41    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V42 tmp29        [V42    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V43 tmp30        [V43    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V44 tmp31        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Runtime.CompilerServices.IAsyncStateMachineBox\u003E\n ;  V45 tmp32        [V45,T20] (  3,  6   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n-;  V46 tmp33        [V46,T28] (  2,  4   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;  V46 tmp33        [V46,T27] (  2,  4   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;* V47 tmp34        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.AggregateException\u003E\n-;  V48 tmp35        [V48,T36] (  2,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.AggregateException\u003E\n\u002B;  V48 tmp35        [V48,T34] (  2,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.AggregateException\u003E\n ;* V49 tmp36        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.AggregateException\u003E\n-;  V50 tmp37        [V50,T37] (  3,  3   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.AggregateException\u003E\n\u002B;  V50 tmp37        [V50,T35] (  3,  3   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.AggregateException\u003E\n ;* V51 tmp38        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n ;  V52 tmp39        [V52,T12] (  4,  8   )     ref  -\u003E  r15         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.AggregateException\u003E\n-;  V53 tmp40        [V53,T29] (  2,  4   )     ref  -\u003E  r14         class-hnd \u0022dup spill\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n-;  V54 tmp41        [V54,T25] (  5,  5   )     ref  -\u003E  r14        \n\u002B;  V53 tmp40        [V53,T28] (  2,  4   )     ref  -\u003E  rsi         class-hnd \u0022dup spill\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n\u002B;  V54 tmp41        [V54,T25] (  4,  4   )     ref  -\u003E  rsi        \n ;  V55 tmp42        [V55,T13] (  4,  8   )     ref  -\u003E  r14         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n ;* V56 tmp43        [V56    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n ;  V57 tmp44        [V57,T21] (  3,  6   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Exception[]\u003E\n-;  V58 tmp45        [V58    ] (  3,  3   )   ubyte  -\u003E  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V58 tmp45        [V58    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V59 tmp46        [V59    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V60 tmp47        [V60,T35] (  4,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Exception\u003E\n-;  V61 tmp48        [V61,T26] (  4,  4   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Exception]\u003E\n\u002B;  V60 tmp47        [V60,T39] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Exception\u003E\n\u002B;* V61 tmp48        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Exception]\u003E\n ;* V62 tmp49        [V62    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V63 tmp50        [V63,T14] (  4,  8   )     ref  -\u003E  r15         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Threading.Tasks.Task]\u003E\n-;  V64 tmp51        [V64,T39] (  3,  3   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n\u002B;  V64 tmp51        [V64,T37] (  3,  3   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n ;  V65 tmp52        [V65,T22] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n ;* V66 tmp53        [V66    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V67 tmp54        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -81,17 \u002B81,17 @@\n ;* V70 tmp57        [V70    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n ;* V71 tmp58        [V71    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u002BConfiguredTaskAwaiter\u003E\n ;* V72 tmp59        [V72    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n-;* V73 tmp60        [V73,T42] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V74 tmp61        [V74,T30] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n\u002B;* V73 tmp60        [V73,T41] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V74 tmp61        [V74,T29] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n ;* V75 tmp62        [V75    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V76 tmp63        [V76    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V77 tmp64        [V77    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V78 tmp65        [V78    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Runtime.CompilerServices.IAsyncStateMachineBox\u003E\n ;  V79 tmp66        [V79,T23] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n-;  V80 tmp67        [V80,T34] (  2,  4   )     int  -\u003E  rax         \u0022Inlining Arg\u0022\n\u002B;  V80 tmp67        [V80,T33] (  2,  4   )     int  -\u003E  rax         \u0022Inlining Arg\u0022\n ;  V81 tmp68        [V81,T15] (  4,  8   )   byref  -\u003E  rdi         single-def \u0022Inlining Arg\u0022\n-;* V82 tmp69        [V82,T43] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[SF] ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.Tasks.VoidTaskResult\u003E\n-;  V83 tmp70        [V83,T31] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Threading.Tasks.VoidTaskResult]\u003E\n\u002B;* V82 tmp69        [V82,T42] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[SF] ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.Tasks.VoidTaskResult\u003E\n... diff truncated; middle omitted ...\n        mov      rsi, gword ptr [rdi\u002B0x30]\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task:WhenAny[System.Threading.Tasks.Task](System.Collections.Generic.IEnumerable\u00601[System.Threading.Tasks.Task]):System.Threading.Tasks.Task\u00601[System.Threading.Tasks.Task]\n@@ -381,16 \u002B365,16 @@ G_M4923_IG24:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x28], edi\n        test     byte  ptr [rbp-0x28], 4\n-       jne      SHORT G_M4923_IG25\n\u002B       jne      SHORT G_M4923_IG23\n        mov      rdi, gword ptr [rbp-0x30]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M4923_IG13\n \t\t\t\t\t\t;; size=64 bbWeight=1 PerfScore 16.75\n-G_M4923_IG25:\n\u002BG_M4923_IG23:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x1C], edi\n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M4923_IG26:\n\u002BG_M4923_IG24:\n        mov      rbx, bword ptr [rbp-0x50]\n        mov      dword ptr [rbx\u002B0x48], edi\n        lea      rdi, bword ptr [rbx\u002B0x58]\n@@ -407,20 \u002B391,20 @@ G_M4923_IG26:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.Threading.Tasks.Task]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      SHORT G_M4923_IG30\n\u002B       jmp      SHORT G_M4923_IG28\n \t\t\t\t\t\t;; size=76 bbWeight=1 PerfScore 16.75\n-G_M4923_IG27:\n\u002BG_M4923_IG25:\n        mov      edi, 20\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M4923_IG28:\n\u002BG_M4923_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M4923_IG29:\n\u002BG_M4923_IG27:\n        mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.ExceptionServices.ExceptionDispatchInfo:Capture(System.Exception):System.Runtime.ExceptionServices.ExceptionDispatchInfo\n        call     [rax]System.Runtime.ExceptionServices.ExceptionDispatchInfo:Capture(System.Exception):System.Runtime.ExceptionServices.ExceptionDispatchInfo\n@@ -430,22 \u002B414,22 @@ G_M4923_IG29:\n        call     [rax]System.Runtime.ExceptionServices.ExceptionDispatchInfo:Throw():this\n        int3     \n \t\t\t\t\t\t;; size=33 bbWeight=0 PerfScore 0.00\n-G_M4923_IG30:\n-       call     G_M4923_IG38\n-       jmp      G_M4923_IG36\n\u002BG_M4923_IG28:\n\u002B       call     G_M4923_IG36\n\u002B       jmp      G_M4923_IG34\n \t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.00\n-G_M4923_IG31:\n\u002BG_M4923_IG29:\n        cmp      dword ptr [rbp-0x1C], 0\n-       jge      SHORT G_M4923_IG32\n\u002B       jge      SHORT G_M4923_IG30\n        mov      rbx, bword ptr [rbp-0x50]\n        cmp      gword ptr [rbx\u002B0x38], 0\n-       je       SHORT G_M4923_IG32\n\u002B       je       SHORT G_M4923_IG30\n        mov      rdi, gword ptr [rbx\u002B0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        nop      \n \t\t\t\t\t\t;; size=35 bbWeight=1 PerfScore 11.50\n-G_M4923_IG32:\n\u002BG_M4923_IG30:\n        xor      rdi, rdi\n        mov      rbx, bword ptr [rbp-0x50]\n        mov      gword ptr [rbx\u002B0x38], rdi\n@@ -457,12 \u002B441,12 @@ G_M4923_IG32:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x38], edi\n        test     byte  ptr [rbp-0x38], 4\n-       jne      SHORT G_M4923_IG33\n\u002B       jne      SHORT G_M4923_IG31\n        mov      rdi, gword ptr [rbp-0x40]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M4923_IG07\n \t\t\t\t\t\t;; size=60 bbWeight=1 PerfScore 17.75\n-G_M4923_IG33:\n\u002BG_M4923_IG31:\n        mov      rbx, bword ptr [rbp-0x50]\n        mov      dword ptr [rbx\u002B0x48], 1\n        lea      rdi, bword ptr [rbx\u002B0x68]\n@@ -478,30 \u002B462,30 @@ G_M4923_IG33:\n        lea      rdi, [rbp-0x40]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u002BConfiguredTaskAwaiter](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u002BConfiguredTaskAwaiter](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      SHORT G_M4923_IG36\n\u002B       jmp      SHORT G_M4923_IG34\n \t\t\t\t\t\t;; size=70 bbWeight=1 PerfScore 16.50\n-G_M4923_IG34:\n\u002BG_M4923_IG32:\n        mov      dword ptr [rbx\u002B0x48], -2\n        xor      rdi, rdi\n        mov      gword ptr [rbx\u002B0x28], rdi\n        lea      rdi, bword ptr [rbx\u002B0x50]\n        cmp      gword ptr [rdi], 0\n-       je       SHORT G_M4923_IG35\n\u002B       je       SHORT G_M4923_IG33\n        mov      rdi, gword ptr [rdi]\n        xor      esi, esi\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.Threading.Tasks.VoidTaskResult],System.Threading.Tasks.VoidTaskResult)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.Threading.Tasks.VoidTaskResult],System.Threading.Tasks.VoidTaskResult)\n-       jmp      SHORT G_M4923_IG36\n\u002B       jmp      SHORT G_M4923_IG34\n \t\t\t\t\t\t;; size=42 bbWeight=1 PerfScore 13.25\n-G_M4923_IG35:\n\u002BG_M4923_IG33:\n        mov      rsi, 0xD1FFAB1E      ; const ptr\n        mov      rsi, gword ptr [rsi]\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 3.25\n-G_M4923_IG36:\n\u002BG_M4923_IG34:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M4923_IG37:\n\u002BG_M4923_IG35:\n        add      rsp, 56\n        pop      rbx\n        pop      r14\n@@ -509,28 \u002B493,28 @@ G_M4923_IG37:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M4923_IG38:\n\u002BG_M4923_IG36:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 1.00\n-G_M4923_IG39:\n\u002BG_M4923_IG37:\n        cmp      dword ptr [rbp-0x1C], 0\n-       jge      SHORT G_M4923_IG40\n\u002B       jge      SHORT G_M4923_IG38\n        mov      rbx, bword ptr [rbp-0x50]\n        mov      rdi, gword ptr [rbx\u002B0x38]\n        test     rdi, rdi\n-       je       SHORT G_M4923_IG40\n\u002B       je       SHORT G_M4923_IG38\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        nop      \n \t\t\t\t\t\t;; size=33 bbWeight=1 PerfScore 9.75\n-G_M4923_IG40:\n\u002BG_M4923_IG38:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M4923_IG41:\n\u002BG_M4923_IG39:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M4923_IG42:\n\u002BG_M4923_IG40:\n        mov      rsi, rdi\n        mov      rbx, bword ptr [rbp-0x50]\n        mov      rax, gword ptr [rbx\u002B0x20]\n@@ -539,10 \u002B523,10 @@ G_M4923_IG42:\n        call     CORINFO_HELP_RETHROW\n        int3     \n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M4923_IG43:\n\u002BG_M4923_IG41:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M4923_IG44:\n\u002BG_M4923_IG42:\n        mov      rsi, rdi\n        mov      rbx, bword ptr [rbp-0x50]\n        mov      dword ptr [rbx\u002B0x48], -2\n@@ -551,12 \u002B535,12 @@ G_M4923_IG44:\n        lea      rdi, bword ptr [rbx\u002B0x50]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder:SetException(System.Exception):this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder:SetException(System.Exception):this\n-       lea      rax, G_M4923_IG36\n\u002B       lea      rax, G_M4923_IG34\n \t\t\t\t\t\t;; size=43 bbWeight=0 PerfScore 0.00\n-G_M4923_IG45:\n\u002BG_M4923_IG43:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1483, prolog size 35, PerfScore 714.83, instruction count 358, allocated bytes for code 1483 (MethodHash=5787ecc4) for method Nest.Extensions\u002B\u003CForEachAsync\u003Ed__29\u00602[byte,System.Nullable\u00601[int]]:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 1434, prolog size 35, PerfScore 700.08, instruction count 346, allocated bytes for code 1434 (MethodHash=5787ecc4) for method Nest.Extensions\u002B\u003CForEachAsync\u003Ed__29\u00602[byte,System.Nullable\u00601[int]]:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1483,"DiffBytes":1434},{"Assembly":"OpenAI.dasm","Method":"OpenAI.Moderations.ModerationClient\u002B\u003CClassifyTextAsync\u003Ed__12:MoveNext():this (FullOpts)","Category":"improvement","Description":"952 -\u003E 900 bytes (-52)","ExtraInfo":null,"Diff":"@@ -9,11 \u002B9,11 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T00] ( 24, 21   )   byref  -\u003E  [rbp-0x50]  this EH-live single-def\n-;  V01 loc0         [V01,T03] (  7,  7   )     int  -\u003E  [rbp-0x24]  do-not-enreg[M] EH-live\n\u002B;  V01 loc0         [V01,T02] (  7,  7   )     int  -\u003E  [rbp-0x24]  do-not-enreg[M] EH-live\n ;  V02 loc1         [V02,T09] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003COpenAI.Moderations.ModerationClient\u003E\n ;  V03 loc2         [V03,T10] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]\u003E\n ;  V04 loc3         [V04    ] (  3,  3   )     ref  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003COpenAI.Moderations.ModerationOptions\u003E\n-;  V05 loc4         [V05,T18] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u003E\n\u002B;  V05 loc4         [V05,T17] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u003E\n ;  V06 loc5         [V06    ] ( 10, 10   )  struct (16) [rbp-0x40]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.ClientModel.ClientResult]\u003E\n ;* V07 loc6         [V07    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[System.ClientModel.ClientResult]\u003E\n ;* V08 loc7         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Exception\u003E\n@@ -22,14 \u002B22,14 @@\n ;* V11 tmp2         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003COpenAI.Moderations.ModerationResult\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.ClientModel.BinaryContent\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003COpenAI.Moderations.ModerationOptions\u003E\n-;  V14 tmp5         [V14,T27] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n-;  V15 tmp6         [V15,T04] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Moderations.ModerationOptions\u003E\n-;  V16 tmp7         [V16,T12] (  2,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.ClientModel.Primitives.ModelReaderWriterOptions\u003E\n\u002B;  V14 tmp5         [V14,T26] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V15 tmp6         [V15,T03] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Moderations.ModerationOptions\u003E\n\u002B;  V16 tmp7         [V16,T11] (  2,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.ClientModel.Primitives.ModelReaderWriterOptions\u003E\n ;* V17 tmp8         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V18 tmp9         [V18,T25] (  2,  2   )     ref  -\u003E  r14        \n-;  V19 tmp10        [V19,T05] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ClientModel.BinaryContent\u002BModelBinaryContent\u00601[OpenAI.Moderations.ModerationOptions]\u003E\n\u002B;  V18 tmp9         [V18,T23] (  2,  2   )     ref  -\u003E  r14        \n\u002B;  V19 tmp10        [V19,T04] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ClientModel.BinaryContent\u002BModelBinaryContent\u00601[OpenAI.Moderations.ModerationOptions]\u003E\n ;* V20 tmp11        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V21 tmp12        [V21,T06] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult]\u003E\n\u002B;  V21 tmp12        [V21,T05] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult]\u003E\n ;* V22 tmp13        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V23 tmp14        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V24 tmp15        [V24    ] (  0,  0   )     int  -\u003E  zero-ref    single-def\n@@ -37,22 \u002B37,22 @@\n ;* V26 tmp17        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult]\u003E\n ;* V27 tmp18        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.ClientModel.ClientResult]\u003E\n ;* V28 tmp19        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult]\u003E\n-;* V29 tmp20        [V29,T26] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V30 tmp21        [V30,T13] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;* V29 tmp20        [V29,T25] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V30 tmp21        [V30,T12] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;* V31 tmp22        [V31    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V32 tmp23        [V32    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V33 tmp24        [V33    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Runtime.CompilerServices.IAsyncStateMachineBox\u003E\n-;  V35 tmp26        [V35,T07] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n-;  V36 tmp27        [V36,T14] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n-;  V37 tmp28        [V37,T01] (  4,  8   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Moderations.ModerationResultCollection\u003E\n-;  V38 tmp29        [V38    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V39 tmp30        [V39,T19] (  3,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003COpenAI.Moderations.ModerationResult\u003E\n-;  V40 tmp31        [V40,T11] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[OpenAI.Moderations.ModerationResult]\u003E\n\u002B;  V35 tmp26        [V35,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;  V36 tmp27        [V36,T13] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;  V37 tmp28        [V37,T07] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Moderations.ModerationResultCollection\u003E\n\u002B;  V38 tmp29        [V38    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V39 tmp30        [V39,T24] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003COpenAI.Moderations.ModerationResult\u003E\n\u002B;* V40 tmp31        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[OpenAI.Moderations.ModerationResult]\u003E\n ;  V41 tmp32        [V41,T08] (  3,  6   )   byref  -\u003E  r15         single-def \u0022Inlining Arg\u0022\n-;  V42 tmp33        [V42,T20] (  3,  3   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]]\u003E\n\u002B;  V42 tmp33        [V42,T18] (  3,  3   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]]\u003E\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    ld-addr-op class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]\u003E\n-;  V44 tmp35        [V44,T02] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]]\u003E\n\u002B;  V44 tmp35        [V44,T01] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]]\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n ;* V46 tmp37        [V46    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]\u003E\n ;* V47 tmp38        [V47    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n@@ -61,13 \u002B61,13 @@\n... diff truncated; middle omitted ...\n        mov      rax, 0xD1FFAB1E      ; code for System.ClientModel.ClientResult:FromValue[System.__Canon](System.__Canon,System.ClientModel.Primitives.PipelineResponse):System.ClientModel.ClientResult\u00601[System.__Canon]\n        call     [rax]System.ClientModel.ClientResult:FromValue[System.__Canon](System.__Canon,System.ClientModel.Primitives.PipelineResponse):System.ClientModel.ClientResult\u00601[System.__Canon]\n        mov      rbx, rax\n-       jmp      G_M37712_IG15\n-\t\t\t\t\t\t;; size=37 bbWeight=1 PerfScore 8.00\n-G_M37712_IG11:\n\u002B       jmp      G_M37712_IG13\n\u002B\t\t\t\t\t\t;; size=98 bbWeight=1 PerfScore 20.00\n\u002BG_M37712_IG09:\n        mov      r15, gword ptr [rdi\u002B0x10]\n        mov      rdi, gword ptr [rdi\u002B0x28]\n        mov      rax, 0xD1FFAB1E      ; code for OpenAI.CancellationTokenExtensions:ToRequestOptions(System.Threading.CancellationToken):System.ClientModel.Primitives.RequestOptions\n@@ -207,16 \u002B190,16 @@ G_M37712_IG11:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x38], edi\n        test     byte  ptr [rbp-0x38], 4\n-       jne      SHORT G_M37712_IG12\n\u002B       jne      SHORT G_M37712_IG10\n        mov      rdi, gword ptr [rbp-0x40]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M37712_IG07\n \t\t\t\t\t\t;; size=73 bbWeight=1 PerfScore 25.25\n-G_M37712_IG12:\n\u002BG_M37712_IG10:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x24], edi\n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M37712_IG13:\n\u002BG_M37712_IG11:\n        mov      rbx, bword ptr [rbp-0x50]\n        mov      dword ptr [rbx\u002B0x18], edi\n        lea      rdi, bword ptr [rbx\u002B0x30]\n@@ -234,31 \u002B217,31 @@ G_M37712_IG13:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.ClientModel.ClientResult]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      SHORT G_M37712_IG16\n\u002B       jmp      SHORT G_M37712_IG14\n \t\t\t\t\t\t;; size=86 bbWeight=1 PerfScore 17.00\n-G_M37712_IG14:\n\u002BG_M37712_IG12:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M37712_IG15:\n\u002BG_M37712_IG13:\n        cmp      dword ptr [rbp-0x24], 0\n-       jge      SHORT G_M37712_IG17\n\u002B       jge      SHORT G_M37712_IG15\n        mov      rdi, bword ptr [rbp-0x50]\n        mov      r11, gword ptr [rdi\u002B0x10]\n        test     r11, r11\n-       je       SHORT G_M37712_IG17\n\u002B       je       SHORT G_M37712_IG15\n        mov      rdi, r11\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n-       jmp      SHORT G_M37712_IG17\n\u002B       jmp      SHORT G_M37712_IG15\n \t\t\t\t\t\t;; size=37 bbWeight=1 PerfScore 11.75\n-G_M37712_IG16:\n-       call     G_M37712_IG25\n-       jmp      G_M37712_IG22\n\u002BG_M37712_IG14:\n\u002B       call     G_M37712_IG23\n\u002B       jmp      G_M37712_IG20\n \t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.00\n-G_M37712_IG17:\n\u002BG_M37712_IG15:\n        mov      rdi, bword ptr [rbp-0x50]\n        mov      dword ptr [rdi\u002B0x18], -2\n        xor      rsi, rsi\n@@ -266,16 \u002B249,16 @@ G_M37712_IG17:\n        lea      r15, bword ptr [rdi\u002B0x20]\n        mov      rsi, gword ptr [r15]\n        test     rsi, rsi\n-       je       SHORT G_M37712_IG18\n\u002B       je       SHORT G_M37712_IG16\n        mov      rdx, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n-       jmp      SHORT G_M37712_IG22\n\u002B       jmp      SHORT G_M37712_IG20\n \t\t\t\t\t\t;; size=56 bbWeight=1 PerfScore 12.75\n-G_M37712_IG18:\n\u002BG_M37712_IG16:\n        test     rbx, rbx\n-       je       SHORT G_M37712_IG19\n\u002B       je       SHORT G_M37712_IG17\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -283,26 \u002B266,26 @@ G_M37712_IG18:\n        lea      rdi, bword ptr [r14\u002B0x38]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      SHORT G_M37712_IG21\n\u002B       jmp      SHORT G_M37712_IG19\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 7.50\n-G_M37712_IG19:\n\u002BG_M37712_IG17:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       SHORT G_M37712_IG24\n\u002B       je       SHORT G_M37712_IG22\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 3.25\n-G_M37712_IG20:\n\u002BG_M37712_IG18:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]]:s_defaultResultTask\n        mov      r14, gword ptr [rdi]\n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 2.25\n-G_M37712_IG21:\n\u002BG_M37712_IG19:\n        mov      rdi, r15\n        mov      rsi, r14\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 1.50\n-G_M37712_IG22:\n\u002BG_M37712_IG20:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M37712_IG23:\n\u002BG_M37712_IG21:\n        add      rsp, 48\n        pop      rbx\n        pop      r13\n@@ -311,34 \u002B294,34 @@ G_M37712_IG23:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n-G_M37712_IG24:\n\u002BG_M37712_IG22:\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      SHORT G_M37712_IG20\n\u002B       jmp      SHORT G_M37712_IG18\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M37712_IG25:\n\u002BG_M37712_IG23:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 1.00\n-G_M37712_IG26:\n\u002BG_M37712_IG24:\n        cmp      dword ptr [rbp-0x24], 0\n-       jge      SHORT G_M37712_IG27\n\u002B       jge      SHORT G_M37712_IG25\n        mov      r15, bword ptr [rbp-0x50]\n        mov      rdi, gword ptr [r15\u002B0x10]\n        test     rdi, rdi\n-       je       SHORT G_M37712_IG27\n\u002B       je       SHORT G_M37712_IG25\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        nop      \n \t\t\t\t\t\t;; size=33 bbWeight=1 PerfScore 9.75\n-G_M37712_IG27:\n\u002BG_M37712_IG25:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M37712_IG28:\n\u002BG_M37712_IG26:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M37712_IG29:\n\u002BG_M37712_IG27:\n        mov      rdx, rdi\n        mov      r15, bword ptr [rbp-0x50]\n        mov      dword ptr [r15\u002B0x18], -2\n@@ -348,12 \u002B331,12 @@ G_M37712_IG29:\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n-       lea      rax, G_M37712_IG22\n\u002B       lea      rax, G_M37712_IG20\n \t\t\t\t\t\t;; size=54 bbWeight=0 PerfScore 0.00\n-G_M37712_IG30:\n\u002BG_M37712_IG28:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 952, prolog size 41, PerfScore 202.08, instruction count 223, allocated bytes for code 952 (MethodHash=ab3d6caf) for method OpenAI.Moderations.ModerationClient\u002B\u003CClassifyTextAsync\u003Ed__12:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 900, prolog size 41, PerfScore 187.08, instruction count 210, allocated bytes for code 900 (MethodHash=ab3d6caf) for method OpenAI.Moderations.ModerationClient\u002B\u003CClassifyTextAsync\u003Ed__12:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":952,"DiffBytes":900},{"Assembly":"Pomelo.EntityFrameworkCore.MySql.dasm","Method":"Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlHavingExpressionVisitor:VisitSelect(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression):System.Linq.Expressions.Expression:this (FullOpts)","Category":"improvement","Description":"550 -\u003E 499 bytes (-51)","ExtraInfo":null,"Diff":"@@ -11,32 \u002B11,32 @@\n ;  V00 this         [V00,T01] (  6,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CPomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlHavingExpressionVisitor\u003E\n ;  V01 arg1         [V01,T00] ( 18, 12   )     ref  -\u003E  rbx         class-hnd \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression\u003E\n ;  V02 loc0         [V02,T04] (  8,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\u003E\n-;  V03 loc1         [V03,T20] (  2,  1   )     int  -\u003E  rsi         single-def\n-;  V04 loc2         [V04,T19] (  2,  1   )     ref  -\u003E  r13         class-hnd exact single-def \u003CSystem.String\u003E\n-;  V05 loc3         [V05,T08] (  4,  2   )     ref  -\u003E  r15         class-hnd single-def \u003CPomelo.EntityFrameworkCore.MySql.Query.Expressions.Internal.MySqlColumnAliasReferenceExpression\u003E\n\u002B;  V03 loc1         [V03,T18] (  2,  1   )     int  -\u003E  rsi         single-def\n\u002B;  V04 loc2         [V04,T17] (  2,  1   )     ref  -\u003E  r13         class-hnd exact single-def \u003CSystem.String\u003E\n\u002B;  V05 loc3         [V05,T16] (  3,  1.50)     ref  -\u003E  r15         class-hnd single-def \u003CPomelo.EntityFrameworkCore.MySql.Query.Expressions.Internal.MySqlColumnAliasReferenceExpression\u003E\n ;  V06 OutArgs      [V06    ] (  1,  1   )  struct (24) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022non-inline candidate call\u0022 \u003CPomelo.EntityFrameworkCore.MySql.Query.Internal.MySqlSqlExpressionFactory\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022non-inline candidate call\u0022 \u003CSystem.Type\u003E\n-;  V09 tmp3         [V09,T11] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.TableExpressionBase]\u003E\n-;  V10 tmp4         [V10,T12] (  2,  2   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\u003E\n\u002B;  V09 tmp3         [V09,T09] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.TableExpressionBase]\u003E\n\u002B;  V10 tmp4         [V10,T10] (  2,  2   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\u003E\n ;* V11 tmp5         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression]\u003E\n ;* V12 tmp6         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression]\u003E\n ;* V13 tmp7         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.OrderingExpression]\u003E\n ;* V14 tmp8         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMicrosoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression\u003E\n ;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n-;  V16 tmp10        [V16,T18] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression]\u003E\n-;  V17 tmp11        [V17,T05] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression]\u003E\n-;  V18 tmp12        [V18,T09] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BAppendPrependIterator\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression]\u003E\n\u002B;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression]\u003E\n\u002B;  V17 tmp11        [V17,T06] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression]\u003E\n\u002B;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BAppendPrependIterator\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression]\u003E\n ;  V19 tmp13        [V19,T03] (  6,  6   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Enumerable\u002BAppendPrepend1Iterator\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression]\u003E\n-;  V20 tmp14        [V20,T06] (  3,  4   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n-;  V21 tmp15        [V21,T13] (  2,  2   )     ref  -\u003E  r12         single-def \u0022argument with side effect\u0022\n-;  V22 tmp16        [V22,T14] (  2,  2   )     ref  -\u003E   r8         single-def \u0022argument with side effect\u0022\n\u002B;  V20 tmp14        [V20,T05] (  3,  4   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n\u002B;  V21 tmp15        [V21,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022argument with side effect\u0022\n\u002B;  V22 tmp16        [V22,T12] (  2,  2   )     ref  -\u003E   r8         single-def \u0022argument with side effect\u0022\n ;  V23 tmp17        [V23,T07] (  3,  3   )     ref  -\u003E  r15         single-def \u0022argument with side effect\u0022\n-;  V24 tmp18        [V24,T15] (  2,  2   )     ref  -\u003E  rcx         single-def \u0022argument with side effect\u0022\n\u002B;  V24 tmp18        [V24,T13] (  2,  2   )     ref  -\u003E  rcx         single-def \u0022argument with side effect\u0022\n ;  V25 rat0         [V25,T02] (  4,  7   )     ref  -\u003E  rbx         \u0022replacement local\u0022\n-;  V26 rat1         [V26,T10] (  3,  2   )    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n-;  V27 rat2         [V27,T16] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V28 rat3         [V28,T17] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V26 rat1         [V26,T08] (  3,  2   )    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n\u002B;  V27 rat2         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V28 rat3         [V28,T15] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 40\n \n@@ -65,7 \u002B65,7 @@ G_M38210_IG02:\n G_M38210_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression\n        cmp      qword ptr [rbx], rdi\n-       jne      G_M38210_IG11\n\u002B       jne      G_M38210_IG10\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n G_M38210_IG04:\n        mov      r14, gword ptr [rbx\u002B0x88]\n@@ -74,11 \u002B74,11 @@ G_M38210_IG04:\n        mov      rax, 0xD1FFAB1E      ; code for Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlHavingExpressionVisitor:HasHavingExpressionWithoutAggregateFunction(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression):bool:this\n        call     [rax]Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlHavingExpressionVisitor:HasHavingExpressionWithoutAggregateFunction(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression):bool:this\n        test     eax, eax\n-       je       G_M38210_IG09\n\u002B       je       G_M38210_IG08\n \t\t\t\t\t\t;; size=33 bbWeight=1 PerfScore 7.00\n G_M38210_IG05:\n        cmp      byte  ptr [r15\u002B0x18], 0\n-       jne      G_M38210_IG08\n\u002B       jne      G_M38210_IG07\n        mov      rdi, rbx\n        mov      rsi, r14\n        xor      rdx, rdx\n@@ -112,21 \u002B112,7 @@ G_M38210_IG05:\n        mov      r13, gword ptr [rbx\u002B0x80]\n        mov      r12, gword ptr [rbx\u002B0x28]\n        test     r12, r12\n-       je       G_M38210_IG12\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BAppendPrependIterator\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M38210_IG06\n-       mov      rdi, rax\n-       mov      rsi, r15\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x38]System.Linq.Enumerable\u002BAppendPrependIterator\u00601[System.__Canon]:Append(System.__Canon):System.Linq.Enumerable\u002BAppendPrependIterator\u00601[System.__Canon]:this\n-       jmp      SHORT G_M38210_IG07\n-\t\t\t\t\t\t;; size=187 bbWeight=0.50 PerfScore 30.75\n-G_M38210_IG06:\n\u002B       je       G_M38210_IG11\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BAppendPrepend1Iterator\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n@@ -143,12 \u002B129,11 @@ G_M38210_IG06:\n        mov      r12, gword ptr [rbp-0x30]\n        lea      rdi, bword ptr [r12\u002B0x28]\n        mov      rsi, r15\n\u002B\t\t\t\t\t\t;; size=218 bbWeight=0.50 PerfScore 30.25\n\u002BG_M38210_IG06:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      byte  ptr [r12\u002B0x30], 1\n-       mov      rax, r12\n-\t\t\t\t\t\t;; size=93 bbWeight=0.50 PerfScore 7.88\n-G_M38210_IG07:\n-       mov      rsi, rax\n\u002B       mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:ToList[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression](System.Collections.Generic.IEnumerable\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression]):System.Collections.Generic.List\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:ToList[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.Collections.Generic.List\u00601[System.__Canon]\n        call     [rax]System.Linq.Enumerable:ToList[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.Collections.Generic.List\u00601[System.__Canon]\n@@ -167,18 \u002B152,18 @@ G_M38210_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression:Update(System.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.TableExpressionBase],Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,System.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression],Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,System.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression],System.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.OrderingExpression],Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression:this\n        call     [rax]Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression:Update(System.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.TableExpressionBase],Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,System.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression],Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,System.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.ProjectionExpression],System.Collections.Generic.IReadOnlyList\u00601[Microsoft.EntityFrameworkCore.Query.SqlExpressions.OrderingExpression],Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression,Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlExpression):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression:this\n        mov      rbx, rax\n-       jmp      SHORT G_M38210_IG09\n-\t\t\t\t\t\t;; size=93 bbWeight=0.50 PerfScore 10.75\n-G_M38210_IG08:\n\u002B       jmp      SHORT G_M38210_IG08\n\u002B\t\t\t\t\t\t;; size=104 bbWeight=0.50 PerfScore 11.75\n\u002BG_M38210_IG07:\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression:PushdownIntoSubqueryInternal(bool):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression\u002BSqlRemappingVisitor:this\n        call     [rax]Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression:PushdownIntoSubqueryInternal(bool):Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression\u002BSqlRemappingVisitor:this\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 1.88\n-G_M38210_IG09:\n\u002BG_M38210_IG08:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M38210_IG10:\n\u002BG_M38210_IG09:\n        add      rsp, 40\n        pop      rbx\n        pop      r12\n@@ -188,18 \u002B173,18 @@ G_M38210_IG10:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M38210_IG11:\n\u002BG_M38210_IG10:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rax]CORINFO_HELP_CHKCASTCLASS\n        int3     \n \t\t\t\t\t\t;; size=16 bbWeight=0 PerfScore 0.00\n-G_M38210_IG12:\n\u002BG_M38210_IG11:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 550, prolog size 19, PerfScore 78.88, instruction count 136, allocated bytes for code 550 (MethodHash=490c6abd) for method Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlHavingExpressionVisitor:VisitSelect(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression):System.Linq.Expressions.Expression:this (FullOpts)\n\u002B; Total bytes of code 499, prolog size 19, PerfScore 71.50, instruction count 123, allocated bytes for code 499 (MethodHash=490c6abd) for method Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlHavingExpressionVisitor:VisitSelect(Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression):System.Linq.Expressions.Expression:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":550,"DiffBytes":499},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.RateCards.VersionService:ListAutoPaging(System.String,Stripe.V2.Billing.RateCards.VersionListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.RateCardVersion]:this (FullOpts)","Category":"improvement","Description":"513 -\u003E 464 bytes (-49)","ExtraInfo":null,"Diff":"@@ -1,169 \u002B1,160 @@\n ; Assembly listing for method Stripe.V2.Billing.RateCards.VersionService:ListAutoPaging(System.String,Stripe.V2.Billing.RateCards.VersionListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.RateCardVersion]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 22 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T05] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.RateCards.VersionService\u003E\n-;  V01 arg1         [V01,T08] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.RateCards.VersionListOptions\u003E\n-;  V03 arg3         [V03,T07] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T07] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V02 arg2         [V02,T08] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.RateCards.VersionListOptions\u003E\n\u002B;  V03 arg3         [V03,T06] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T11] (  3,  2   )     ref  -\u003E  r15         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.RateCardVersion]\u003E\n ;  V06 tmp2         [V06,T02] (  4,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V07 tmp3         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V08 tmp4         [V08,T12] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;  V09 tmp5         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.RateCardVersion]\u003E\n-;* V10 tmp6         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp8         [V12,T03] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.RateCardVersion]\u003E\n-;  V13 tmp9         [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.RateCardVersion]\u003E\n-;* V14 tmp10        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp11        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp12        [V16,T04] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.RateCardVersion]\u003E\n-;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V07._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp14        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp15        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp16        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp17        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 tmp18        [V22,T09] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V23 cse0         [V23,T10] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #02: moderate\u0022\n-;  V24 rat0         [V24,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T15] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T16] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.RateCardVersion]\u003E\n\u002B;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp6         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp7         [V11,T03] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.RateCardVersion]\u003E\n\u002B;  V12 tmp8         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.RateCardVersion]\u003E\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp11        [V15,T04] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.RateCardVersion]\u003E\n\u002B;* V16 tmp12        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V07._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp14        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp15        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp16        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 tmp17        [V21,T09] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V22 cse0         [V22,T10] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #02: moderate\u0022\n\u002B;  V23 rat0         [V23,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T15] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M9632_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rdx\n-       mov      r14, rcx\n\u002B       mov      r14, rdx\n\u002B       mov      r15, rcx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M9632_IG02:\n        mov      rdi, rsi\n        mov      rax, 0xD1FFAB1E      ; code for System.Net.WebUtility:UrlEncode(System.String):System.String\n        call     [rax]System.Net.WebUtility:UrlEncode(System.String):System.String\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; \u0027/v2/billing/rate_cards/\u0027\n        mov      rdx, 0xD1FFAB1E      ; \u0027/versions\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Concat(System.String,System.String,System.String):System.String\n        call     [rax]System.String:Concat(System.String,System.String,System.String):System.String\n        mov      r13, rax\n        mov      rdi, r13\n        mov      rax, 0xD1FFAB1E      ; code for Stripe.ApiModeUtils:GetApiMode(System.String):int\n        call     [rax]Stripe.ApiModeUtils:GetApiMode(System.String):int\n        cmp      eax, 1\n        je       G_M9632_IG04\n \t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 12.50\n G_M9632_IG03:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.RateCardVersion]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n-       mov      eax, dword ptr [rax\u002B0x10]\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, dword ptr [rax\u002B0x10]\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x28]\n\u002B       lea      rdi, bword ptr [r14\u002B0x28]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.RateCardVersion]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        mov      dword ptr [r15\u002B0x28], -2\n-       mov      r14d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r15\u002B0x2C], r14d\n\u002B       mov      dword ptr [r15\u002B0x2C], r12d\n        lea      rdi, bword ptr [r15\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M9632_IG05\n-\t\t\t\t\t\t;; size=212 bbWeight=0.50 PerfScore 16.00\n\u002B\t\t\t\t\t\t;; size=164 bbWeight=0.50 PerfScore 12.75\n G_M9632_IG04:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.RateCardVersion]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      eax, edi\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x28]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.RateCardVersion]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        mov      dword ptr [r15\u002B0x28], -2\n-       mov      r14d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r15\u002B0x2C], r14d\n\u002B       mov      ebx, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r15\u002B0x2C], ebx\n        lea      rdi, bword ptr [r15\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=181 bbWeight=0.50 PerfScore 13.12\n\u002B\t\t\t\t\t\t;; size=180 bbWeight=0.50 PerfScore 13.12\n G_M9632_IG05:\n        mov      rax, r15\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M9632_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 513, prolog size 16, PerfScore 54.38, instruction count 113, allocated bytes for code 513 (MethodHash=d35ada5f) for method Stripe.V2.Billing.RateCards.VersionService:ListAutoPaging(System.String,Stripe.V2.Billing.RateCards.VersionListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.RateCardVersion]:this (FullOpts)\n\u002B; Total bytes of code 464, prolog size 16, PerfScore 51.12, instruction count 105, allocated bytes for code 464 (MethodHash=d35ada5f) for method Stripe.V2.Billing.RateCards.VersionService:ListAutoPaging(System.String,Stripe.V2.Billing.RateCards.VersionListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.RateCardVersion]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":513,"DiffBytes":464},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.DistributedSemaphoreProviderExtensions:TryAcquireAllSemaphores(Medallion.Threading.IDistributedSemaphoreProvider,System.Collections.Generic.IReadOnlyList\u00601[System.String],int,System.TimeSpan,System.Threading.CancellationToken):Medallion.Threading.IDistributedSynchronizationHandle (FullOpts)","Category":"same-size","Description":"783 -\u003E 783 bytes (0)","ExtraInfo":null,"Diff":"@@ -119,7 \u002B119,7 @@ G_M51971_IG04:\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n-       add      rax, 70\n\u002B       add      rax, 68\n        mov      rbx, rax\n        movzx    rcx, byte  ptr [rbx\u002B0x10]\n        mov      dword ptr [rbp-0x2C], ecx\n@@ -289,7 \u002B289,7 @@ G_M51971_IG23:\n        sub      rsp, 40\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n G_M51971_IG24:\n-       mov      edi, 70\n\u002B       mov      edi, 68\n        call     CORINFO_HELP_GETDYNAMIC_NONGCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED2\n        mov      rbx, rax\n        mov      eax, dword ptr [rbp-0x2C]","Truncated":true,"BaseBytes":783,"DiffBytes":783},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Metadata.Edm.EdmSerializationVisitor:VisitFunctionImport(System.Data.Entity.Core.Metadata.Edm.EdmFunction):this (FullOpts)","Category":"improvement","Description":"637 -\u003E 527 bytes (-110)","ExtraInfo":null,"Diff":"@@ -11,26 \u002B11,26 @@\n ;  V00 this         [V00,T01] (  9,  7   )     ref  -\u003E  r15         this class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmSerializationVisitor\u003E\n ;  V01 arg1         [V01,T00] ( 11,  8.50)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmFunction\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V03 tmp1         [V03,T07] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmXmlSchemaWriter\u003E\n\u002B;  V03 tmp1         [V03,T05] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmXmlSchemaWriter\u003E\n ;* V04 tmp2         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n ;* V05 tmp3         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V06 tmp4         [V06,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V07 tmp5         [V07    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V08 tmp6         [V08,T14] (  3,  1.50)     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n-;  V09 tmp7         [V09,T09] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V10 tmp8         [V10,T15] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySet\u003E\n\u002B;  V06 tmp4         [V06,T06] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V07 tmp5         [V07    ] (  1,  0.50)   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V08 tmp6         [V08,T13] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n\u002B;* V09 tmp7         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V10 tmp8         [V10,T12] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySet\u003E\n ;* V11 tmp9         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EntitySet]\u003E\n ;* V12 tmp10        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EntitySet]\u003E\n-;  V13 tmp11        [V13,T05] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V14 tmp12        [V14    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V15 tmp13        [V15,T08] (  5,  2.50)     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n-;  V16 tmp14        [V16,T10] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V17 tmp15        [V17,T11] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.MetadataProperty]\u003E\n-;  V18 tmp16        [V18,T06] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u00601[System.Data.Entity.Core.Metadata.Edm.MetadataProperty]\u003E\n-;  V19 tmp17        [V19,T13] (  2,  2   )    long  -\u003E  r12         \u0022Inlining Arg\u0022\n\u002B;  V13 tmp11        [V13,T07] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V14 tmp12        [V14    ] (  1,  0.50)   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp13        [V15,T08] (  4,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n\u002B;* V16 tmp14        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V17 tmp15        [V17,T09] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.MetadataProperty]\u003E\n\u002B;  V18 tmp16        [V18,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u00601[System.Data.Entity.Core.Metadata.Edm.MetadataProperty]\u003E\n\u002B;  V19 tmp17        [V19,T11] (  2,  2   )    long  -\u003E  r12         \u0022Inlining Arg\u0022\n ;* V20 tmp18        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n ;  V21 tmp19        [V21,T02] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V22 tmp20        [V22,T12] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V22 tmp20        [V22,T10] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;  V23 tmp21        [V23,T03] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 24\n@@ -61,89 \u002B61,53 @@ G_M53011_IG02:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        cmp      eax, 1\n-       jne      G_M53011_IG10\n\u002B       jne      G_M53011_IG06\n \t\t\t\t\t\t;; size=47 bbWeight=1 PerfScore 17.75\n G_M53011_IG03:\n        mov      r14, gword ptr [r15\u002B0x08]\n-       mov      r13, gword ptr [rbx\u002B0x48]\n-       test     r13, r13\n-       je       G_M53011_IG14\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M53011_IG04\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      r12, rax\n-       jmp      SHORT G_M53011_IG05\n-\t\t\t\t\t\t;; size=69 bbWeight=0.50 PerfScore 10.12\n-G_M53011_IG04:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x48]\n\u002B       test     rsi, rsi\n\u002B       je       G_M53011_IG10\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.FunctionParameter](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter],byref):System.Data.Entity.Core.Metadata.Edm.FunctionParameter\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      r12, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M53011_IG05:\n\u002B       mov      r13, rax\n        mov      rdi, gword ptr [rbx\u002B0x70]\n        mov      rdi, gword ptr [rdi\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       SHORT G_M53011_IG06\n\u002B       je       SHORT G_M53011_IG04\n        mov      rdi, gword ptr [rbx\u002B0x70]\n        mov      rdi, gword ptr [rdi\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IList\u00601[System.__Canon]:get_Item(int):System.__Canon:this\n        xor      esi, esi\n        call     [r11]System.Collections.Generic.IList\u00601[System.__Canon]:get_Item(int):System.__Canon:this\n-       jmp      SHORT G_M53011_IG07\n-\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 9.00\n-G_M53011_IG06:\n\u002B       jmp      SHORT G_M53011_IG05\n\u002B\t\t\t\t\t\t;; size=96 bbWeight=0.50 PerfScore 13.75\n\u002BG_M53011_IG04:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M53011_IG07:\n\u002BG_M53011_IG05:\n        mov      rdi, r14\n-       mov      rsi, r12\n\u002B       mov      rsi, r13\n        mov      rdx, rax\n        mov      ecx, 1\n        mov      rax, qword ptr [r14]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x38]System.Data.Entity.Core.Metadata.Edm.EdmXmlSchemaWriter:WriteFunctionImportReturnTypeAttributes(System.Data.Entity.Core.Metadata.Edm.FunctionParameter,System.Data.Entity.Core.Metadata.Edm.EntitySet,bool):this\n-       mov      r14, gword ptr [rbx\u002B0x48]\n-       test     r14, r14\n-       je       G_M53011_IG14\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M53011_IG08\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      r13, rax\n-       jmp      SHORT G_M53011_IG09\n-\t\t\t\t\t\t;; size=89 bbWeight=0.50 PerfScore 13.12\n-G_M53011_IG08:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x48]\n\u002B       test     rsi, rsi\n\u002B       je       G_M53011_IG10\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.FunctionParameter](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter],byref):System.Data.Entity.Core.Metadata.Edm.FunctionParameter\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      r13, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M53011_IG09:\n-       test     r13, r13\n-       je       G_M53011_IG10\n-       mov      rdi, r13\n\u002B       mov      r14, rax\n\u002B       test     r14, r14\n\u002B       je       G_M53011_IG06\n\u002B       mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.MetadataItem:get_Annotations():System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.MetadataProperty]:this\n        call     [rax]System.Data.Entity.Core.Metadata.Edm.MetadataItem:get_Annotations():System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.MetadataProperty]:this\n        mov      rsi, rax\n@@ -151,8 \u002B115,8 @@ G_M53011_IG09:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:Any[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):bool\n        call     [rax]System.Linq.Enumerable:Any[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):bool\n        test     eax, eax\n-       je       SHORT G_M53011_IG10\n-       mov      rdi, r13\n\u002B       je       SHORT G_M53011_IG06\n\u002B       mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.MetadataItem:get_Annotations():System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.MetadataProperty]:this\n        call     [rax]System.Data.Entity.Core.Metadata.Edm.MetadataItem:get_Annotations():System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.MetadataProperty]:this\n        mov      r14, rax\n@@ -174,8 \u002B138,8 @@ G_M53011_IG09:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Edm.EdmModelVisitor:VisitCollection[System.Data.Entity.Core.Metadata.Edm.MetadataProperty](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.MetadataProperty],System.Action\u00601[System.Data.Entity.Core.Metadata.Edm.MetadataProperty])\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Edm.EdmModelVisitor:VisitCollection[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Action\u00601[System.__Canon])\n        call     [rax]System.Data.Entity.Edm.EdmModelVisitor:VisitCollection[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Action\u00601[System.__Canon])\n-\t\t\t\t\t\t;; size=171 bbWeight=0.50 PerfScore 13.00\n-G_M53011_IG10:\n\u002B\t\t\t\t\t\t;; size=237 bbWeight=0.50 PerfScore 20.75\n\u002BG_M53011_IG06:\n        mov      rdi, r15\n        mov      rsi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Edm.EdmModelVisitor:VisitFunctionImport(System.Data.Entity.Core.Metadata.Edm.EdmFunction):this\n@@ -185,22 \u002B149,22 @@ G_M53011_IG10:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        cmp      eax, 1\n-       jle      SHORT G_M53011_IG12\n\u002B       jle      SHORT G_M53011_IG08\n \t\t\t\t\t\t;; size=44 bbWeight=1 PerfScore 12.25\n-G_M53011_IG11:\n\u002BG_M53011_IG07:\n        mov      rdi, r15\n        mov      rsi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.EdmSerializationVisitor:VisitFunctionImportReturnParameters(System.Data.Entity.Core.Metadata.Edm.EdmFunction):this\n        call     [rax]System.Data.Entity.Core.Metadata.Edm.EdmSerializationVisitor:VisitFunctionImportReturnParameters(System.Data.Entity.Core.Metadata.Edm.EdmFunction):this\n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 1.88\n-G_M53011_IG12:\n\u002BG_M53011_IG08:\n        mov      rdi, gword ptr [r15\u002B0x08]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x20]System.Data.Entity.Core.Metadata.Edm.XmlSchemaWriter:WriteEndElement():this\n        nop      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 9.25\n-G_M53011_IG13:\n\u002BG_M53011_IG09:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -210,12 \u002B174,12 @@ G_M53011_IG13:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M53011_IG14:\n\u002BG_M53011_IG10:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 637, prolog size 29, PerfScore 104.75, instruction count 153, allocated bytes for code 637 (MethodHash=26de30ec) for method System.Data.Entity.Core.Metadata.Edm.EdmSerializationVisitor:VisitFunctionImport(System.Data.Entity.Core.Metadata.Edm.EdmFunction):this (FullOpts)\n\u002B; Total bytes of code 527, prolog size 29, PerfScore 89.50, instruction count 125, allocated bytes for code 527 (MethodHash=26de30ec) for method System.Data.Entity.Core.Metadata.Edm.EdmSerializationVisitor:VisitFunctionImport(System.Data.Entity.Core.Metadata.Edm.EdmFunction):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":637,"DiffBytes":527},{"Assembly":"MathNet.Numerics.dasm","Method":"MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:SameAs[int](MathNet.Numerics.LinearAlgebra.Matrix\u00601[int],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this (FullOpts)","Category":"improvement","Description":"594 -\u003E 120 bytes (-474)","ExtraInfo":null,"Diff":"@@ -1,214 \u002B1,65 @@\n ; Assembly listing for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:SameAs[int](MathNet.Numerics.LinearAlgebra.Matrix\u00601[int],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n-; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data\n\u002B; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 12,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]\u003E\n-;  V01 arg1         [V01,T03] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[int]\u003E\n-;  V02 arg2         [V02,T01] ( 11,  6.50)     int  -\u003E  r15         single-def\n-;  V03 arg3         [V03,T02] ( 11,  6.50)     int  -\u003E  r14         single-def\n-;  V04 arg4         [V04,T04] (  3,  2.50)   ubyte  -\u003E  r13         single-def\n-;  V05 loc0         [V05,T08] (  4,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]\u003E\n\u002B;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]\u003E\n\u002B;  V01 arg1         [V01,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[int]\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  4   )     int  -\u003E  r15         single-def\n\u002B;  V03 arg3         [V03,T04] (  4,  4   )     int  -\u003E  r14         single-def\n\u002B;* V04 arg4         [V04    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def\n\u002B;* V05 loc0         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]\u003E\n\u002B;  V07 tmp1         [V07,T00] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cdouble[]\u003E\n-;  V09 tmp3         [V09,T06] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[double]\u003E\n-;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cdouble[]\u003E\n-;  V11 tmp5         [V11,T11] (  2,  1   )     int  -\u003E  rsi         \u0022Inline return value spill temp\u0022\n-;  V12 tmp6         [V12,T09] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]\u003E\n-;  V13 tmp7         [V13,T10] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]\u003E\n-;  V14 tmp8         [V14,T07] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]\u003E\n-;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cdouble[]\u003E\n-;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022Single return block return value\u0022\n ;\n ; Lcl frame size = 8\n \n G_M58876_IG01:\n-       push     rbp\n        push     r15\n        push     r14\n        push     r13\n-       push     r12\n        push     rbx\n        push     rax\n-       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n        mov      r15d, edx\n        mov      r14d, ecx\n-       mov      r13d, r8d\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.75\n G_M58876_IG02:\n-       mov      r12, gword ptr [rsi\u002B0x08]\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M58876_IG11\n-\t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 7.00\n-G_M58876_IG03:\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[double]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M58876_IG07\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      SHORT G_M58876_IG05\n\u002B       cmp      byte  ptr [rsi], sil\n        mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        mov      rdi, r13\n        mov      esi, r15d\n        mov      edx, r14d\n        mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]:.ctor(int,int):this\n        call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]:.ctor(int,int):this\n        imul     r15d, r14d\n        movsxd   rsi, r15d\n        mov      rdi, 0xD1FFAB1E      ; double[]\n        call     CORINFO_HELP_NEWARR_1_PTR\n        mov      rsi, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, rbx\n        mov      rsi, r13\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=150 bbWeight=0.50 PerfScore 12.62\n-G_M58876_IG04:\n\u002B\t\t\t\t\t\t;; size=89 bbWeight=1 PerfScore 17.25\n\u002BG_M58876_IG03:\n        add      rsp, 8\n        pop      rbx\n-       pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n-       pop      rbp\n        tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M58876_IG05:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 5.00\n-G_M58876_IG06:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M58876_IG07:\n-       test     r13b, r13b\n-       je       SHORT G_M58876_IG09\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 5.62\n-G_M58876_IG08:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M58876_IG09:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[double]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]:.ctor(int,int):this\n-       cmp      r15d, r14d\n-       mov      esi, r14d\n-       cmovle   esi, r15d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; double[]\n-       call     CORINFO_HELP_NEWARR_1_PTR\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 7.12\n-G_M58876_IG10:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x10]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:Diagonal(MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[double]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M58876_IG11:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]:.ctor(int,int):this\n-       mov      esi, r15d\n-       imul     esi, r14d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; double[]\n-       call     CORINFO_HELP_NEWARR_1_PTR\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=89 bbWeight=0.50 PerfScore 7.75\n-G_M58876_IG12:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n\u002B\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 594, prolog size 16, PerfScore 66.75, instruction count 157, allocated bytes for code 594 (MethodHash=a03b1a03) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:SameAs[int](MathNet.Numerics.LinearAlgebra.Matrix\u00601[int],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this (FullOpts)\n\u002B; Total bytes of code 120, prolog size 8, PerfScore 27.25, instruction count 34, allocated bytes for code 120 (MethodHash=a03b1a03) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:SameAs[int](MathNet.Numerics.LinearAlgebra.Matrix\u00601[int],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":594,"DiffBytes":120},{"Assembly":"Microsoft.AspNetCore.OData.dasm","Method":"Microsoft.AspNetCore.OData.Query.Expressions.QueryBinder:CollectAssignments(System.Collections.Generic.IDictionary\u00602[System.String,System.Linq.Expressions.Expression],System.Linq.Expressions.Expression,System.Linq.Expressions.MemberInitExpression,System.String) (FullOpts)","Category":"improvement","Description":"1,358 -\u003E 1,306 bytes (-52)","ExtraInfo":null,"Diff":"@@ -14,21 \u002B14,21 @@\n ;  V03 arg3         [V03,T21] (  5,  3.50)     ref  -\u003E  r14         class-hnd single-def \u003CSystem.String\u003E\n ;  V04 loc0         [V04,T23] (  8,  4.50)     ref  -\u003E  r13         class-hnd \u003CSystem.String\u003E\n ;  V05 loc1         [V05,T15] (  7,  9.50)     ref  -\u003E  registers   class-hnd \u003CSystem.Type\u003E\n-;  V06 loc2         [V06,T28] (  4,  3.50)     ref  -\u003E  [rbp-0x38]  class-hnd \u003CSystem.Linq.Expressions.MemberInitExpression\u003E\n\u002B;  V06 loc2         [V06,T27] (  4,  3.50)     ref  -\u003E  [rbp-0x38]  class-hnd \u003CSystem.Linq.Expressions.MemberInitExpression\u003E\n ;  V07 loc3         [V07,T24] (  5,  4   )     ref  -\u003E  [rbp-0x40]  class-hnd \u003CSystem.Linq.Expressions.Expression\u003E\n ;  V08 loc4         [V08,T16] (  6,  9   )     ref  -\u003E  [rbp-0x48]  do-not-enreg[Z] class-hnd EH-live \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.MemberAssignment]\u003E\n ;  V09 loc5         [V09,T00] ( 11, 26   )     ref  -\u003E  [rbp-0x50]  class-hnd \u003CSystem.Linq.Expressions.MemberAssignment\u003E\n-;  V10 loc6         [V10,T27] (  2,  4   )     ref  -\u003E  [rbp-0x58]  class-hnd exact spill-single-def \u003CSystem.Linq.Expressions.MemberInitExpression\u003E\n-;  V11 loc7         [V11,T41] (  3,  0.88)     ref  -\u003E  r14         class-hnd exact \u003CSystem.Linq.Expressions.MemberInitExpression\u003E\n\u002B;  V10 loc6         [V10,T26] (  2,  4   )     ref  -\u003E  [rbp-0x58]  class-hnd exact spill-single-def \u003CSystem.Linq.Expressions.MemberInitExpression\u003E\n\u002B;  V11 loc7         [V11,T40] (  3,  0.88)     ref  -\u003E  r14         class-hnd exact \u003CSystem.Linq.Expressions.MemberInitExpression\u003E\n ;* V12 loc8         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Linq.Expressions.MemberExpression\u003E\n ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V14 tmp1         [V14,T01] (  4, 22   )     ref  -\u003E  rcx         \u0022ISINST eval op1\u0022\n ;* V15 tmp2         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CSystem.Linq.Expressions.MemberInitExpression\u003E\n ;  V16 tmp3         [V16,T14] (  4, 11   )     ref  -\u003E  r13         \u0022ISINST eval op1\u0022\n ;* V17 tmp4         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CSystem.String\u003E\n-;  V18 tmp5         [V18,T31] (  2,  2   )     ref  -\u003E  r14         class-hnd \u0022spilling qmarkNull\u0022 \u003CSystem.Linq.Expressions.MemberInitExpression\u003E\n\u002B;  V18 tmp5         [V18,T30] (  2,  2   )     ref  -\u003E  r14         class-hnd \u0022spilling qmarkNull\u0022 \u003CSystem.Linq.Expressions.MemberInitExpression\u003E\n ;* V19 tmp6         [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022ISINST eval op1\u0022\n-;  V20 tmp7         [V20,T40] (  3,  1.75)     ref  -\u003E  rax         class-hnd \u0022spilling qmarkNull\u0022 \u003CSystem.Linq.Expressions.MemberAssignment\u003E\n\u002B;  V20 tmp7         [V20,T38] (  3,  1.75)     ref  -\u003E  rax         class-hnd \u0022spilling qmarkNull\u0022 \u003CSystem.Linq.Expressions.MemberAssignment\u003E\n ;  V21 tmp8         [V21,T29] (  4,  2.75)     ref  -\u003E  r14         \u0022ISINST eval op1\u0022\n ;* V22 tmp9         [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CSystem.Linq.Expressions.MemberInitExpression\u003E\n ;* V23 tmp10        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n@@ -46,12 \u002B46,12 @@\n ;  V35 tmp22        [V35,T18] (  2,  8   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V36 tmp23        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Linq.Expressions.UnaryExpression\u003E\n ;* V37 tmp24        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Linq.Expressions.MemberExpression\u003E\n-;  V38 tmp25        [V38,T25] (  4,  4   )     ref  -\u003E  r14         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.MemberBinding]\u003E\n-;  V39 tmp26        [V39    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V38 tmp25        [V38,T28] (  3,  3   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.MemberBinding]\u003E\n\u002B;  V39 tmp26        [V39    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V40 tmp27        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V41 tmp28        [V41,T39] (  5,  1.88)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.MemberBinding\u003E\n-;  V42 tmp29        [V42,T30] (  4,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.MemberBinding]\u003E\n-;  V43 tmp30        [V43,T32] (  2,  2   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n\u002B;  V41 tmp28        [V41,T39] (  4,  1.38)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.MemberBinding\u003E\n\u002B;* V42 tmp29        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.MemberBinding]\u003E\n\u002B;  V43 tmp30        [V43,T31] (  2,  2   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V44 tmp31        [V44,T05] (  3, 12   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V45 tmp32        [V45,T06] (  3, 12   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V46 tmp33        [V46,T07] (  3, 12   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n@@ -59,16 \u002B59,16 @@\n ;  V48 tmp35        [V48,T09] (  3, 12   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V49 tmp36        [V49,T10] (  3, 12   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V50 tmp37        [V50,T11] (  3, 12   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n-;  V51 tmp38        [V51,T33] (  2,  2   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n-;  V52 tmp39        [V52,T34] (  2,  2   )     ref  -\u003E  rdx         \u0022argument with side effect\u0022\n-;  V53 tmp40        [V53,T35] (  2,  2   )     ref  -\u003E  rdx         \u0022argument with side effect\u0022\n-;  V54 tmp41        [V54,T36] (  2,  2   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n-;  V55 tmp42        [V55,T37] (  2,  2   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n-;  V56 tmp43        [V56,T38] (  2,  2   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n\u002B;  V51 tmp38        [V51,T32] (  2,  2   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n\u002B;  V52 tmp39        [V52,T33] (  2,  2   )     ref  -\u003E  rdx         \u0022argument with side effect\u0022\n\u002B;  V53 tmp40        [V53,T34] (  2,  2   )     ref  -\u003E  rdx         \u0022argument with side effect\u0022\n\u002B;  V54 tmp41        [V54,T35] (  2,  2   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n\u002B;  V55 tmp42        [V55,T36] (  2,  2   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n\u002B;  V56 tmp43        [V56,T37] (  2,  2   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n ;  V57 rat0         [V57,T17] (  3,  8   )     ref  -\u003E  rsi         class-hnd \u0022Spilling to split statement for tree\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n ;  V58 rat1         [V58,T03] (  4, 14   )     ref  -\u003E  rdi         \u0022replacement local\u0022\n-;  V59 rat2         [V59,T26] (  3,  4   )    long  -\u003E  rax         \u0022CSE for expectedClsNode\u0022\n-;  V60 rat3         [V60,T42] (  3, 12   )  simd16  -\u003E  mm0         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n\u002B;  V59 rat2         [V59,T25] (  3,  4   )    long  -\u003E  rax         \u0022CSE for expectedClsNode\u0022\n\u002B;  V60 rat3         [V60,T41] (  3, 12   )  simd16  -\u003E  mm0         \u0022ReplaceWithLclVar is creating a new local variable\u0022\n ;\n ; Lcl frame size = 56\n \n@@ -89,7 \u002B89,7 @@ G_M35865_IG01:\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 8.75\n G_M35865_IG02:\n        test     rdx, rdx\n-       je       G_M35865_IG49\n\u002B       je       G_M35865_IG47\n \t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 1.25\n G_M35865_IG03:\n        xor      r13, r13\n@@ -385,68 \u002B385,51 @@ G_M35865_IG37:\n G_M35865_IG38:\n        mov      r14, gword ptr [rbp-0x40]\n        test     r14, r14\n\u002B       je       G_M35865_IG47\n\u002B       mov      rdx, 0xD1FFAB1E      ; System.Linq.Expressions.MemberInitExpression\n\u002B       xor      rsi, rsi\n\u002B       cmp      qword ptr [r14], rdx\n\u002B       cmovne   r14, rsi\n\u002B       mov      rsi, gword ptr [r14\u002B0x10]\n\u002B       test     rsi, rsi\n        je       G_M35865_IG49\n-       mov      rsi, 0xD1FFAB1E      ; System.Linq.Expressions.MemberInitExpression\n-       xor      rdi, rdi\n-       cmp      qword ptr [r14], rsi\n-       cmovne   r14, rdi\n-       mov      r14, gword ptr [r14\u002B0x10]\n-       test     r14, r14\n-       je       G_M35865_IG51\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.MemberBinding]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M35865_IG39\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M35865_IG40\n-\t\t\t\t\t\t;; size=94 bbWeight=0.50 PerfScore 11.62\n-G_M35865_IG39:\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Linq.Expressions.MemberBinding](System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.MemberBinding],byref):System.Linq.Expressions.MemberBinding\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M35865_IG40:\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M35865_IG52\n\u002B       je       G_M35865_IG50\n        test     rax, rax\n-       je       SHORT G_M35865_IG43\n-\t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 1.62\n-G_M35865_IG41:\n\u002B       je       SHORT G_M35865_IG41\n\u002B\t\t\t\t\t\t;; size=86 bbWeight=0.50 PerfScore 7.88\n\u002BG_M35865_IG39:\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Expressions.MemberAssignment\n        cmp      qword ptr [rax], rdi\n-       jne      SHORT G_M35865_IG43\n\u002B       jne      SHORT G_M35865_IG41\n \t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M35865_IG42:\n-       jmp      SHORT G_M35865_IG44\n\u002BG_M35865_IG40:\n\u002B       jmp      SHORT G_M35865_IG42\n \t\t\t\t\t\t;; size=2 bbWeight=0.12 PerfScore 0.25\n-G_M35865_IG43:\n\u002BG_M35865_IG41:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.25 PerfScore 0.06\n-G_M35865_IG44:\n\u002BG_M35865_IG42:\n        mov      r14, gword ptr [rax\u002B0x18]\n        test     r14, r14\n-       je       SHORT G_M35865_IG47\n\u002B       je       SHORT G_M35865_IG45\n \t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 1.62\n-G_M35865_IG45:\n\u002BG_M35865_IG43:\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Expressions.MemberInitExpression\n        cmp      qword ptr [r14], rdi\n-       jne      SHORT G_M35865_IG47\n\u002B       jne      SHORT G_M35865_IG45\n \t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M35865_IG46:\n-       jmp      SHORT G_M35865_IG48\n\u002BG_M35865_IG44:\n\u002B       jmp      SHORT G_M35865_IG46\n \t\t\t\t\t\t;; size=2 bbWeight=0.12 PerfScore 0.25\n-G_M35865_IG47:\n\u002BG_M35865_IG45:\n        xor      r14, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.25 PerfScore 0.06\n-G_M35865_IG48:\n\u002BG_M35865_IG46:\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; \u0027NestedValue\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Expressions.Expression:Property(System.Linq.Expressions.Expression,System.String):System.Linq.Expressions.MemberExpression\n@@ -462,10 \u002B445,10 @@ G_M35865_IG48:\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.AspNetCore.OData.Query.Expressions.QueryBinder:CollectAssignments(System.Collections.Generic.IDictionary\u00602[System.String,System.Linq.Expressions.Expression],System.Linq.Expressions.Expression,System.Linq.Expressions.MemberInitExpression,System.String)\n        call     [rax]Microsoft.AspNetCore.OData.Query.Expressions.QueryBinder:CollectAssignments(System.Collections.Generic.IDictionary\u00602[System.String,System.Linq.Expressions.Expression],System.Linq.Expressions.Expression,System.Linq.Expressions.MemberInitExpression,System.String)\n \t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 5.88\n-G_M35865_IG49:\n\u002BG_M35865_IG47:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M35865_IG50:\n\u002BG_M35865_IG48:\n        add      rsp, 56\n        pop      rbx\n        pop      r12\n@@ -475,31 \u002B458,31 @@ G_M35865_IG50:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M35865_IG51:\n\u002BG_M35865_IG49:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M35865_IG52:\n\u002BG_M35865_IG50:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M35865_IG53:\n\u002BG_M35865_IG51:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M35865_IG54:\n\u002BG_M35865_IG52:\n        cmp      gword ptr [rbp-0x48], 0\n-       je       SHORT G_M35865_IG55\n\u002B       je       SHORT G_M35865_IG53\n        mov      rdi, gword ptr [rbp-0x48]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M35865_IG55:\n\u002BG_M35865_IG53:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M35865_IG56:\n\u002BG_M35865_IG54:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n@@ -507,5 \u002B490,5 @@ RWD00  \tdq\t0056006400650074h, 00650075006C0061h\n RWD16  \tdq\t007400730065004Eh, 0061005600640065h\n \n \n-; Total bytes of code 1358, prolog size 34, PerfScore 398.69, instruction count 319, allocated bytes for code 1358 (MethodHash=879b73e6) for method Microsoft.AspNetCore.OData.Query.Expressions.QueryBinder:CollectAssignments(System.Collections.Generic.IDictionary\u00602[System.String,System.Linq.Expressions.Expression],System.Linq.Expressions.Expression,System.Linq.Expressions.MemberInitExpression,System.String) (FullOpts)\n\u002B; Total bytes of code 1306, prolog size 34, PerfScore 391.19, instruction count 306, allocated bytes for code 1306 (MethodHash=879b73e6) for method Microsoft.AspNetCore.OData.Query.Expressions.QueryBinder:CollectAssignments(System.Collections.Generic.IDictionary\u00602[System.String,System.Linq.Expressions.Expression],System.Linq.Expressions.Expression,System.Linq.Expressions.MemberInitExpression,System.String) (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1358,"DiffBytes":1306},{"Assembly":"Microsoft.EntityFrameworkCore.dasm","Method":"Microsoft.EntityFrameworkCore.Query.ExpressionPrinter:VisitLambda[short](System.Linq.Expressions.Expression\u00601[short]):System.Linq.Expressions.Expression:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 797 bytes (-52)","ExtraInfo":null,"Diff":"@@ -8,34 \u002B8,34 @@\n ; 0 inlinees with PGO data; 10 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T02] ( 12, 24   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.ExpressionPrinter\u003E\n\u002B;  V00 this         [V00,T01] ( 12, 24   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMicrosoft.EntityFrameworkCore.Query.ExpressionPrinter\u003E\n ;  V01 arg1         [V01,T05] ( 10, 13   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Linq.Expressions.Expression\u00601[short]\u003E\n ;  V02 loc0         [V02,T00] ( 12, 28   )     ref  -\u003E  [rbp-0x38]  do-not-enreg[M] class-hnd EH-live \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;  V03 loc1         [V03,T04] (  5, 20   )     ref  -\u003E  r13         class-hnd \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n-;  V04 loc2         [V04,T10] (  2,  8   )     ref  -\u003E  rdx         class-hnd exact \u003CSystem.String\u003E\n-;  V05 loc3         [V05,T11] (  2,  8   )     ref  -\u003E  rsi         class-hnd \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n\u002B;  V04 loc2         [V04,T08] (  2,  8   )     ref  -\u003E  rdx         class-hnd exact \u003CSystem.String\u003E\n\u002B;  V05 loc3         [V05,T09] (  2,  8   )     ref  -\u003E  rsi         class-hnd \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V08 tmp2         [V08,T19] (  3,  2   )     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V09 tmp3         [V09,T13] (  3,  5   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V08 tmp2         [V08,T18] (  3,  2   )     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V09 tmp3         [V09,T12] (  3,  5   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V11 tmp5         [V11,T03] (  3, 24   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Linq.Expressions.ParameterExpression,System.String]\u003E\n-;  V12 tmp6         [V12,T01] (  4, 28   )     ref  -\u003E  r12         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V13 tmp7         [V13    ] (  3,  8   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V11 tmp5         [V11,T02] (  3, 24   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Linq.Expressions.ParameterExpression,System.String]\u003E\n\u002B;  V12 tmp6         [V12,T03] (  3, 24   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V13 tmp7         [V13    ] (  2,  8   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V14 tmp8         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V15 tmp9         [V15,T09] (  3,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n-;  V16 tmp10        [V16,T06] (  4, 12   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V15 tmp9         [V15,T10] (  2,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n\u002B;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;* V17 tmp11        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V18 tmp12        [V18,T20] (  3,  2   )     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V19 tmp13        [V19,T14] (  3,  5   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V18 tmp12        [V18,T19] (  3,  2   )     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V19 tmp13        [V19,T13] (  3,  5   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V21 tmp15        [V21,T15] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V22 tmp16        [V22,T17] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V23 tmp17        [V23,T07] (  3, 12   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n-;  V24 tmp18        [V24,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V25 tmp19        [V25,T18] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V26 tmp20        [V26,T12] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V27 cse0         [V27,T08] (  6,  9   )    long  -\u003E  r14         \u0022CSE #02: moderate\u0022\n\u002B;  V21 tmp15        [V21,T14] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V22 tmp16        [V22,T16] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V23 tmp17        [V23,T06] (  3, 12   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n\u002B;  V24 tmp18        [V24,T15] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V25 tmp19        [V25,T17] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V26 tmp20        [V26,T11] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V27 cse0         [V27,T07] (  6,  9   )    long  -\u003E  r14         \u0022CSE #02: moderate\u0022\n ;\n ; Lcl frame size = 24\n \n@@ -84,7 \u002B84,7 @@ G_M24888_IG04:\n G_M24888_IG05:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M24888_IG28\n\u002B       je       G_M24888_IG25\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n G_M24888_IG06:\n        mov      rdi, 0xD1FFAB1E      ; data for System.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]:Empty\n@@ -105,7 \u002B105,7 @@ G_M24888_IG09:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():bool:this\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n-       je       G_M24888_IG17\n\u002B       je       G_M24888_IG14\n \t\t\t\t\t\t;; size=25 bbWeight=8 PerfScore 44.00\n G_M24888_IG10:\n        mov      rdi, gword ptr [rbp-0x38]\n@@ -126,38 \u002B126,19 @@ G_M24888_IG10:\n        call     [rax\u002B0x20]System.Linq.Expressions.ExpressionVisitor:Visit(System.Linq.Expressions.Expression):System.Linq.Expressions.Expression:this\n        mov      rdi, r15\n        call     [r14\u002B0x30]System.Linq.Expressions.LambdaExpression:GetOrMakeParameters():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]:this\n-       mov      r12, rax\n-       test     r12, r12\n-       je       SHORT G_M24888_IG15\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ParameterExpression]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n        je       SHORT G_M24888_IG12\n-\t\t\t\t\t\t;; size=109 bbWeight=4 PerfScore 126.00\n-G_M24888_IG11:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M24888_IG13\n-\t\t\t\t\t\t;; size=19 bbWeight=2 PerfScore 19.50\n-G_M24888_IG12:\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r12\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.Linq.Expressions.ParameterExpression](System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.ParameterExpression],byref):System.Linq.Expressions.ParameterExpression\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=2 PerfScore 8.50\n-G_M24888_IG13:\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       SHORT G_M24888_IG16\n\u002B       je       SHORT G_M24888_IG13\n        cmp      r13, rax\n        je       G_M24888_IG09\n-\t\t\t\t\t\t;; size=15 bbWeight=4 PerfScore 13.00\n-G_M24888_IG14:\n\u002B\t\t\t\t\t\t;; size=120 bbWeight=4 PerfScore 135.00\n\u002BG_M24888_IG11:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      rsi, 0xD1FFAB1E      ; \u0027, \u0027\n        mov      rax, qword ptr [rdi]\n@@ -165,18 \u002B146,18 @@ G_M24888_IG14:\n        call     [rax\u002B0x30]Microsoft.EntityFrameworkCore.Infrastructure.IndentedStringBuilder:Append(System.String):Microsoft.EntityFrameworkCore.Infrastructure.IndentedStringBuilder:this\n        jmp      G_M24888_IG09\n \t\t\t\t\t\t;; size=29 bbWeight=2 PerfScore 22.50\n-G_M24888_IG15:\n\u002BG_M24888_IG12:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M24888_IG16:\n\u002BG_M24888_IG13:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M24888_IG17:\n\u002BG_M24888_IG14:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n@@ -186,16 \u002B167,16 @@ G_M24888_IG17:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        cmp      eax, 1\n-       je       SHORT G_M24888_IG19\n\u002B       je       SHORT G_M24888_IG16\n \t\t\t\t\t\t;; size=46 bbWeight=1 PerfScore 14.00\n-G_M24888_IG18:\n\u002BG_M24888_IG15:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      rsi, 0xD1FFAB1E      ; \u0027)\u0027\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]Microsoft.EntityFrameworkCore.Infrastructure.IndentedStringBuilder:Append(System.String):Microsoft.EntityFrameworkCore.Infrastructure.IndentedStringBuilder:this\n \t\t\t\t\t\t;; size=24 bbWeight=0.50 PerfScore 4.62\n-G_M24888_IG19:\n\u002BG_M24888_IG16:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      rsi, 0xD1FFAB1E      ; \u0027 =\u003E \u0027\n        mov      rax, qword ptr [rdi]\n@@ -213,35 \u002B194,35 @@ G_M24888_IG19:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       jne      SHORT G_M24888_IG22\n\u002B       jne      SHORT G_M24888_IG19\n \t\t\t\t\t\t;; size=72 bbWeight=1 PerfScore 28.50\n-G_M24888_IG20:\n\u002BG_M24888_IG17:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M24888_IG29\n\u002B       je       G_M24888_IG26\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n-G_M24888_IG21:\n\u002BG_M24888_IG18:\n        mov      rdi, 0xD1FFAB1E      ; data for System.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]:Empty\n        mov      r13, gword ptr [rdi]\n-       jmp      SHORT G_M24888_IG23\n\u002B       jmp      SHORT G_M24888_IG20\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M24888_IG22:\n\u002BG_M24888_IG19:\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEnumerable\u00601[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator\u00601[System.__Canon]:this\n        call     [r11]System.Collections.Generic.IEnumerable\u00601[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator\u00601[System.__Canon]:this\n        mov      r13, rax\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 2.75\n-G_M24888_IG23:\n\u002BG_M24888_IG20:\n        mov      gword ptr [rbp-0x38], r13\n \t\t\t\t\t\t;; size=4 bbWeight=1 PerfScore 1.00\n-G_M24888_IG24:\n\u002BG_M24888_IG21:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():bool:this\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n-       je       SHORT G_M24888_IG26\n\u002B       je       SHORT G_M24888_IG23\n \t\t\t\t\t\t;; size=21 bbWeight=8 PerfScore 44.00\n-G_M24888_IG25:\n\u002BG_M24888_IG22:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEnumerator\u00601[System.__Canon]:get_Current():System.__Canon:this\n        call     [r11]System.Collections.Generic.IEnumerator\u00601[System.__Canon]:get_Current():System.__Canon:this\n@@ -250,15 \u002B231,15 @@ G_M24888_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary\u00602[System.__Canon,System.__Canon]:Remove(System.__Canon):bool:this\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.Collections.Generic.Dictionary\u00602[System.__Canon,System.__Canon]:Remove(System.__Canon):bool:this\n-       jmp      SHORT G_M24888_IG24\n\u002B       jmp      SHORT G_M24888_IG21\n \t\t\t\t\t\t;; size=40 bbWeight=4 PerfScore 55.00\n-G_M24888_IG26:\n\u002BG_M24888_IG23:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        mov      rax, r15\n \t\t\t\t\t\t;; size=20 bbWeight=1 PerfScore 4.50\n-G_M24888_IG27:\n\u002BG_M24888_IG24:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -268,52 \u002B249,52 @@ G_M24888_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M24888_IG28:\n\u002BG_M24888_IG25:\n        mov      rdi, 0xD1FFAB1E      ; System.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M24888_IG06\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M24888_IG29:\n\u002BG_M24888_IG26:\n        mov      rdi, 0xD1FFAB1E      ; System.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.ParameterExpression]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M24888_IG21\n\u002B       jmp      G_M24888_IG18\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M24888_IG30:\n\u002BG_M24888_IG27:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M24888_IG31:\n\u002BG_M24888_IG28:\n        cmp      gword ptr [rbp-0x38], 0\n-       je       SHORT G_M24888_IG32\n\u002B       je       SHORT G_M24888_IG29\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M24888_IG32:\n\u002BG_M24888_IG29:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M24888_IG33:\n\u002BG_M24888_IG30:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M24888_IG34:\n\u002BG_M24888_IG31:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M24888_IG35:\n\u002BG_M24888_IG32:\n        cmp      gword ptr [rbp-0x38], 0\n-       je       SHORT G_M24888_IG36\n\u002B       je       SHORT G_M24888_IG33\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M24888_IG36:\n\u002BG_M24888_IG33:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M24888_IG37:\n\u002BG_M24888_IG34:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 31, PerfScore 440.25, instruction count 201, allocated bytes for code 849 (MethodHash=e6539ec7) for method Microsoft.EntityFrameworkCore.Query.ExpressionPrinter:VisitLambda[short](System.Linq.Expressions.Expression\u00601[short]):System.Linq.Expressions.Expression:this (FullOpts)\n\u002B; Total bytes of code 797, prolog size 31, PerfScore 408.25, instruction count 188, allocated bytes for code 797 (MethodHash=e6539ec7) for method Microsoft.EntityFrameworkCore.Query.ExpressionPrinter:VisitLambda[short](System.Linq.Expressions.Expression\u00601[short]):System.Linq.Expressions.Expression:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":797},{"Assembly":"Microsoft.OpenApi.dasm","Method":"Microsoft.OpenApi.OpenApiSecurityScheme:SerializeInternal(Microsoft.OpenApi.IOpenApiWriter,int,System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]):this (FullOpts)","Category":"improvement","Description":"1,810 -\u003E 1,794 bytes (-16)","ExtraInfo":null,"Diff":"@@ -25,21 \u002B25,21 @@\n ;* V14 tmp6         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;  V15 tmp7         [V15,T12] (  3,  2.50)     ref  -\u003E  r12        \n ;  V16 tmp8         [V16,T30] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.OpenApi.OpenApiException\u003E\n-;  V17 tmp9         [V17,T07] (  4,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Uri\u003E\n\u002B;  V17 tmp9         [V17,T06] (  4,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Uri\u003E\n ;* V18 tmp10        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V19 tmp11        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V20 tmp12        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V21 tmp13        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V22 tmp14        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V23 tmp15        [V23,T23] (  3,  1.50)     ref  -\u003E  rax        \n-;  V24 tmp16        [V24,T08] (  4,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Uri\u003E\n\u002B;  V24 tmp16        [V24,T07] (  4,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Uri\u003E\n ;* V25 tmp17        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V26 tmp18        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V27 tmp19        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V28 tmp20        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V29 tmp21        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V30 tmp22        [V30,T24] (  3,  1.50)     ref  -\u003E  rax        \n-;  V31 tmp23        [V31,T09] (  4,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Uri\u003E\n\u002B;  V31 tmp23        [V31,T08] (  4,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Uri\u003E\n ;* V32 tmp24        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V33 tmp25        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V34 tmp26        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -59,7 \u002B59,7 @@\n ;* V48 tmp40        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V49 tmp41        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V50 tmp42        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n-;  V51 tmp43        [V51,T06] (  3,  5   )     ref  -\u003E  r12         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V51 tmp43        [V51,T05] (  3,  5   )     ref  -\u003E  r12         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V52 tmp44        [V52,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V53 tmp45        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V54 tmp46        [V54    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n@@ -69,39 \u002B69,38 @@\n ;* V58 tmp50        [V58    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V59 tmp51        [V59    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V60 tmp52        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n-;  V61 tmp53        [V61,T05] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiOAuthFlows\u003E\n\u002B;  V61 tmp53        [V61,T09] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiOAuthFlows\u003E\n ;  V62 tmp54        [V62,T25] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.IEnumerable\u003E\n-;* V63 tmp55        [V63    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling qmarkNull\u0022\n-;* V64 tmp56        [V64    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;* V65 tmp57        [V65    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n-;  V66 tmp58        [V66,T32] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;* V67 tmp59        [V67    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;  V68 tmp60        [V68,T29] (  4,  0   )     int  -\u003E  rdi         \u0022Inlining Arg\u0022\n-;* V69 tmp61        [V69    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;  V70 tmp62        [V70,T28] (  4,  0   )   byref  -\u003E  r15         single-def \u0022Inlining Arg\u0022\n-;  V71 tmp63        [V71,T36] (  2,  0   )     int  -\u003E  rsi         \u0022Inlining Arg\u0022\n-;* V72 tmp64        [V72,T37] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n-;* V73 tmp65        [V73    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Span\u00601[char]\u003E\n\u002B;* V63 tmp55        [V63    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;* V64 tmp56        [V64    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]\u003E\n\u002B;  V65 tmp57        [V65,T32] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;* V66 tmp58        [V66    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Span\u00601[char]\u003E\n\u002B;  V67 tmp59        [V67,T29] (  4,  0   )     int  -\u003E  rdi         \u0022Inlining Arg\u0022\n\u002B;* V68 tmp60        [V68    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Span\u00601[char]\u003E\n\u002B;  V69 tmp61        [V69,T28] (  4,  0   )   byref  -\u003E  r15         single-def \u0022Inlining Arg\u0022\n\u002B;  V70 tmp62        [V70,T36] (  2,  0   )     int  -\u003E  rsi         \u0022Inlining Arg\u0022\n\u002B;* V71 tmp63        [V71,T37] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n\u002B;* V72 tmp64        [V72    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Span\u00601[char]\u003E\n\u002B;* V73 tmp65        [V73    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V74 tmp66        [V74    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;* V75 tmp67        [V75    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;* V76 tmp68        [V76    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V77 tmp69        [V77,T18] (  3,  3   )   ubyte  -\u003E  r13         \u0022Inlining Arg\u0022\n-;  V78 tmp70        [V78,T19] (  3,  3   )   ubyte  -\u003E  r13         \u0022Inlining Arg\u0022\n-;  V79 tmp71        [V79,T10] (  4,  4   )   ubyte  -\u003E  r12         \u0022field V04.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V80 tmp72        [V80,T11] (  5,  3.92)     int  -\u003E  [rbp-0x54]  \u0022field V04.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V81 tmp73        [V81,T26] (  2,  1   )   ubyte  -\u003E  rdi         single-def \u0022field V06.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V82 tmp74        [V82,T27] (  2,  1   )     int  -\u003E  r13         single-def \u0022field V06.value (fldOffset=0x4)\u0022 P-INDEP\n-;* V83 tmp75        [V83    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022field V67._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V84 tmp76        [V84    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V67._length (fldOffset=0x8)\u0022 P-INDEP\n-;* V85 tmp77        [V85    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V69._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V86 tmp78        [V86    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V69._length (fldOffset=0x8)\u0022 P-INDEP\n-;* V87 tmp79        [V87    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V73._reference (fldOffset=0x0)\u0022 P-INDEP\n-;* V88 tmp80        [V88    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V73._length (fldOffset=0x8)\u0022 P-INDEP\n-;  V89 tmp81        [V89,T33] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V90 tmp82        [V90,T22] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V91 tmp83        [V91,T34] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V92 tmp84        [V92,T35] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V93 cse0         [V93,T13] (  4,  3   )     int  -\u003E  r13         \u0022CSE #18: moderate\u0022\n\u002B;* V75 tmp67        [V75    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V76 tmp68        [V76,T18] (  3,  3   )   ubyte  -\u003E  r13         \u0022Inlining Arg\u0022\n\u002B;  V77 tmp69        [V77,T19] (  3,  3   )   ubyte  -\u003E  r13         \u0022Inlining Arg\u0022\n\u002B;  V78 tmp70        [V78,T10] (  4,  4   )   ubyte  -\u003E  r12         \u0022field V04.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V79 tmp71        [V79,T11] (  5,  3.92)     int  -\u003E  [rbp-0x54]  \u0022field V04.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V80 tmp72        [V80,T26] (  2,  1   )   ubyte  -\u003E  rdi         single-def \u0022field V06.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V81 tmp73        [V81,T27] (  2,  1   )     int  -\u003E  r13         single-def \u0022field V06.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;* V82 tmp74        [V82    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022field V66._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V83 tmp75        [V83    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V66._length (fldOffset=0x8)\u0022 P-INDEP\n\u002B;* V84 tmp76        [V84    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V68._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V85 tmp77        [V85    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V68._length (fldOffset=0x8)\u0022 P-INDEP\n\u002B;* V86 tmp78        [V86    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def \u0022field V72._reference (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V87 tmp79        [V87    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V72._length (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V88 tmp80        [V88,T33] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V89 tmp81        [V89,T22] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V90 tmp82        [V90,T34] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;  V91 tmp83        [V91,T35] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;  V92 cse0         [V92,T13] (  4,  3   )     int  -\u003E  r13         \u0022CSE #18: moderate\u0022\n ;\n ; Lcl frame size = 56\n \n@@ -280,9 \u002B279,6 @@ G_M24513_IG17:\n        call     [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE\n        test     rax, rax\n        je       SHORT G_M24513_IG18\n-       mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Nodes.JsonArray\n-       cmp      qword ptr [r12], rdi\n-       je       SHORT G_M24513_IG18\n        mov      rdi, rax\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n        call     [r11]System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n@@ -291,7 \u002B287,7 @@ G_M24513_IG17:\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n        je       G_M24513_IG23\n-\t\t\t\t\t\t;; size=99 bbWeight=0.50 PerfScore 9.88\n\u002B\t\t\t\t\t\t;; size=83 bbWeight=0.50 PerfScore 8.25\n G_M24513_IG18:\n        test     r13, r13\n        je       G_M24513_IG29\n@@ -548,5 \u002B544,5 @@ RWD128 \tdq\t0075007300200079h, 0072006F00700070h, 0020006400650074h, 004F0020006E\n RWD192 \tdq\t0072006500740061h, 0072006500760020h, 006E006F00690073h, 00430020002E0073h, 0065007200720075h, 007600200074006Eh, 0069007300720065h, 0020003A006E006Fh\n \n \n-; Total bytes of code 1810, prolog size 35, PerfScore 171.33, instruction count 367, allocated bytes for code 1810 (MethodHash=f05ba03e) for method Microsoft.OpenApi.OpenApiSecurityScheme:SerializeInternal(Microsoft.OpenApi.IOpenApiWriter,int,System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]):this (FullOpts)\n\u002B; Total bytes of code 1794, prolog size 35, PerfScore 169.71, instruction count 364, allocated bytes for code 1794 (MethodHash=f05ba03e) for method Microsoft.OpenApi.OpenApiSecurityScheme:SerializeInternal(Microsoft.OpenApi.IOpenApiWriter,int,System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiSerializable]):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1810,"DiffBytes":1794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:Aggregate[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)","Category":"improvement","Description":"1,665 -\u003E 1,580 bytes (-85)","ExtraInfo":null,"Diff":"@@ -14,11 \u002B14,11 @@\n ;  V03 arg2         [V03,T04] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.__Canon,long]\u003E\n ;  V04 arg3         [V04,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T33] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n\u002B;  V06 loc0         [V06,T32] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n-;  V08 loc2         [V08,T34] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V09 loc3         [V09,T39] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V10 loc4         [V10,T40] (  3,  1.50)     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[long]\u003E\n\u002B;  V08 loc2         [V08,T33] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V09 loc3         [V09,T38] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V10 loc4         [V10,T39] (  3,  1.50)     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[long]\u003E\n ;  V11 OutArgs      [V11    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V12 tmp1         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V13 tmp2         [V13    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n@@ -44,22 \u002B44,22 @@\n ;* V33 tmp22        [V33    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V34 tmp23        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V35 tmp24        [V35    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V36 tmp25        [V36,T28] (  3,  2   )     int  -\u003E  rdi        \n-;  V37 tmp26        [V37,T06] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V38 tmp27        [V38    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V39 tmp28        [V39,T17] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V40 tmp29        [V40,T18] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V36 tmp25        [V36,T27] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V37 tmp26        [V37,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V38 tmp27        [V38    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V39 tmp28        [V39,T17] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V40 tmp29        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V41 tmp30        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V42 tmp31        [V42,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V43 tmp32        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V44 tmp33        [V44,T38] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V44 tmp33        [V44,T37] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V45 tmp34        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V46 tmp35        [V46,T26] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V47 tmp36        [V47,T19] (  3,  3   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V46 tmp35        [V46,T25] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V47 tmp36        [V47,T18] (  3,  3   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V48 tmp37        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V49 tmp38        [V49,T08] ( 10,  5   )     ref  -\u003E  [rbp-0x98]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;  V49 tmp38        [V49,T08] ( 10,  5   )     ref  -\u003E  [rbp-0x90]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V50 tmp39        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V51 tmp40        [V51,T09] ( 10,  5   )     ref  -\u003E  [rbp-0xA0]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;  V51 tmp40        [V51,T09] ( 10,  5   )     ref  -\u003E  [rbp-0x98]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V52 tmp41        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V53 tmp42        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V54 tmp43        [V54    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -68,11 \u002B68,11 @@\n ;* V57 tmp46        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[long]\u003E\n ;* V58 tmp47        [V58    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V59 tmp48        [V59    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V60 tmp49        [V60,T41] (  2,  1   )     ref  -\u003E  [rbp-0xA8]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V61 tmp50        [V61,T27] (  8,  2   )     ref  -\u003E  [rbp-0xB0]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V62 tmp51        [V62,T20] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V63 tmp52        [V63,T42] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[long]\u003E\n-;  V64 tmp53        [V64,T32] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V60 tmp49        [V60,T40] (  2,  1   )     ref  -\u003E  [rbp-0xA0]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V61 tmp50        [V61,T26] (  8,  2   )     ref  -\u003E  [rbp-0xA8]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V62 tmp51        [V62,T19] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V63 tmp52        [V63,T41] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[long]\u003E\n\u002B;  V64 tmp53        [V64,T31] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V65 tmp54        [V65    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V66 tmp55        [V66,T10] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V67 tmp56        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -80,29 \u002B80,29 @@\n ;* V69 tmp58        [V69    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V70 tmp59        [V70    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V71 tmp60        [V71    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;  V72 tmp61        [V72,T14] (  3,  2   )     ref  -\u003E  [rbp-0xB8]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V73 tmp62        [V73,T44] (  2,  1   )   ubyte  -\u003E  r12         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V74 tmp63        [V74,T45] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V75 tmp64        [V75,T46] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V19.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V76 tmp65        [V76,T47] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V19.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V72 tmp61        [V72,T14] (  3,  2   )     ref  -\u003E  [rbp-0xB0]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n\u002B       je       SHORT G_M32328_IG33\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      rax, rdi\n        test     rax, rax\n-       je       SHORT G_M32328_IG35\n\u002B       je       SHORT G_M32328_IG32\n\u002B       mov      rdi, rax\n\u002B       mov      esi, 1\n\u002B       mov      gword ptr [rbp-0x90], rax\n\u002B       mov      rcx, qword ptr [rax]\n\u002B       mov      rcx, qword ptr [rcx\u002B0x40]\n\u002B       call     [rcx\u002B0x28]System.Threading.CancellationTokenSource:Dispose(bool):this\n\u002B       mov      rdi, gword ptr [rbp-0x90]\n\u002B       mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n\u002B       call     [rax]System.GC:SuppressFinalize(System.Object)\n\u002B\t\t\t\t\t\t;; size=67 bbWeight=0.50 PerfScore 9.62\n\u002BG_M32328_IG32:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rdi, gword ptr [rsi\u002B0x10]\n\u002B       mov      rax, rdi\n\u002B       test     rax, rax\n\u002B       je       SHORT G_M32328_IG33\n        mov      rdi, rax\n        mov      esi, 1\n        mov      gword ptr [rbp-0x98], rax\n@@ -437,34 \u002B433,18 @@ G_M32328_IG34:\n        mov      rdi, gword ptr [rbp-0x98]\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=77 bbWeight=0.50 PerfScore 9.62\n-G_M32328_IG35:\n-       mov      rsi, gword ptr [rbp-0x88]\n-       mov      rdi, gword ptr [rsi\u002B0x10]\n-       mov      rax, rdi\n-       test     rax, rax\n-       je       SHORT G_M32328_IG36\n-       mov      rdi, rax\n-       mov      esi, 1\n-       mov      gword ptr [rbp-0xA0], rax\n-       mov      rcx, qword ptr [rax]\n-       mov      rcx, qword ptr [rcx\u002B0x40]\n-       call     [rcx\u002B0x28]System.Threading.CancellationTokenSource:Dispose(bool):this\n-       mov      rdi, gword ptr [rbp-0xA0]\n-       mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n-       call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.62\n-G_M32328_IG36:\n\u002B\t\t\t\t\t\t;; size=60 bbWeight=0.50 PerfScore 8.62\n\u002BG_M32328_IG33:\n        mov      rdi, qword ptr [r14\u002B0x18]\n        cmp      qword ptr [rdi\u002B0x08], 64\n-       jle      SHORT G_M32328_IG40\n\u002B       jle      SHORT G_M32328_IG37\n \t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 2.50\n-G_M32328_IG37:\n\u002BG_M32328_IG34:\n        mov      rsi, qword ptr [rdi\u002B0x40]\n        test     rsi, rsi\n-       je       SHORT G_M32328_IG40\n\u002B       je       SHORT G_M32328_IG37\n \t\t\t\t\t\t;; size=9 bbWeight=0.40 PerfScore 1.30\n-G_M32328_IG38:\n\u002BG_M32328_IG35:\n        mov      rdi, r15\n        mov      rdx, r13\n        mov      rcx, r12\n@@ -473,7 \u002B453,7 @@ G_M32328_IG38:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateAggregateToCollectionResultCursor[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[long],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[long]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M32328_IG39:\n\u002BG_M32328_IG36:\n        add      rsp, 200\n        pop      rbx\n        pop      r12\n@@ -483,15 \u002B463,15 @@ G_M32328_IG39:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M32328_IG40:\n\u002BG_M32328_IG37:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      SHORT G_M32328_IG38\n\u002B       jmp      SHORT G_M32328_IG35\n \t\t\t\t\t\t;; size=30 bbWeight=0.18 PerfScore 1.08\n-G_M32328_IG41:\n\u002BG_M32328_IG38:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -499,38 \u002B479,38 @@ G_M32328_IG41:\n        mov      rdi, rax\n        jmp      G_M32328_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M32328_IG42:\n\u002BG_M32328_IG39:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M32328_IG32\n\u002B       jmp      G_M32328_IG29\n \t\t\t\t\t\t;; size=33 bbWeight=0.18 PerfScore 1.08\n-G_M32328_IG43:\n\u002BG_M32328_IG40:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M32328_IG24\n\u002B       jmp      G_M32328_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.10 PerfScore 0.60\n-G_M32328_IG44:\n\u002BG_M32328_IG41:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M32328_IG45:\n\u002BG_M32328_IG42:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M32328_IG46:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M32328_IG48\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M32328_IG43:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M32328_IG45\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M32328_IG47\n\u002B       je       SHORT G_M32328_IG44\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -539,12 \u002B519,12 @@ G_M32328_IG46:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M32328_IG47:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M32328_IG44:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x10]\n        test     r15, r15\n-       je       SHORT G_M32328_IG48\n\u002B       je       SHORT G_M32328_IG45\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -553,24 \u002B533,24 @@ G_M32328_IG47:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M32328_IG48:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M32328_IG45:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M32328_IG49:\n\u002BG_M32328_IG46:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M32328_IG50:\n\u002BG_M32328_IG47:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M32328_IG51:\n-       cmp      gword ptr [rbp-0xB0], 0\n-       je       SHORT G_M32328_IG53\n-       mov      rsi, gword ptr [rbp-0xB0]\n\u002BG_M32328_IG48:\n\u002B       cmp      gword ptr [rbp-0xA8], 0\n\u002B       je       SHORT G_M32328_IG50\n\u002B       mov      rsi, gword ptr [rbp-0xA8]\n        mov      r13, gword ptr [rsi\u002B0x08]\n        test     r13, r13\n-       je       SHORT G_M32328_IG52\n\u002B       je       SHORT G_M32328_IG49\n        mov      rdi, r13\n        mov      esi, 1\n        mov      rax, qword ptr [r13]\n@@ -580,11 \u002B560,11 @@ G_M32328_IG51:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M32328_IG52:\n-       mov      rsi, gword ptr [rbp-0xB0]\n\u002BG_M32328_IG49:\n\u002B       mov      rsi, gword ptr [rbp-0xA8]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M32328_IG53\n\u002B       je       SHORT G_M32328_IG50\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -594,13 \u002B574,13 @@ G_M32328_IG52:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M32328_IG53:\n\u002BG_M32328_IG50:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M32328_IG54:\n\u002BG_M32328_IG51:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1665, prolog size 66, PerfScore 184.71, instruction count 387, allocated bytes for code 1665 (MethodHash=52e681b7) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:Aggregate[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)\n\u002B; Total bytes of code 1580, prolog size 66, PerfScore 175.33, instruction count 373, allocated bytes for code 1580 (MethodHash=52e681b7) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:Aggregate[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1665,"DiffBytes":1580},{"Assembly":"Nest.dasm","Method":"Nest.Extensions\u002B\u003CForEachAsync\u003Ed__29\u00602[double,System.Nullable\u00601[int]]:MoveNext():this (FullOpts)","Category":"improvement","Description":"1,481 -\u003E 1,432 bytes (-49)","ExtraInfo":null,"Diff":"@@ -10,7 \u002B10,7 @@\n ;\n ;  V00 this         [V00,T00] ( 53,126   )   byref  -\u003E  [rbp-0x50]  this EH-live single-def\n ;  V01 loc0         [V01,T10] (  9,  9   )     int  -\u003E  [rbp-0x1C]  do-not-enreg[Z] EH-live\n-;  V02 loc1         [V02,T43] (  2, 16   )  double  -\u003E  mm0        \n\u002B;  V02 loc1         [V02,T42] (  2, 16   )  double  -\u003E  mm0        \n ;  V03 loc2         [V03,T15] (  7,  7   )     ref  -\u003E  rbx         class-hnd \u003CSystem.Threading.Tasks.Task\u003E\n ;* V04 loc3         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Exception\u003E\n ;  V05 loc4         [V05,T08] (  3, 24   )    long  -\u003E   r8        \n@@ -31,9 \u002B31,9 @@\n ;* V20 tmp7         [V20    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;* V21 tmp8         [V21    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;  V22 tmp9         [V22,T16] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Threading.Tasks.Task]\u003E\n-;  V23 tmp10        [V23,T45] (  2,  0   )     ref  -\u003E  rsi         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V23 tmp10        [V23,T44] (  2,  0   )     ref  -\u003E  rsi         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n ;  V24 tmp11        [V24,T17] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.SemaphoreSlim\u003E\n-;  V25 tmp12        [V25,T46] (  2,  0   )     ref  -\u003E  rsi         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V25 tmp12        [V25,T45] (  2,  0   )     ref  -\u003E  rsi         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n ;  V26 tmp13        [V26,T09] (  3, 20   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Threading.Tasks.Task[]\u003E\n ;  V27 tmp14        [V27,T07] (  4, 24   )     int  -\u003E  r14         \u0022Inline stloc first use temp\u0022\n ;  V28 tmp15        [V28,T02] (  3, 32   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n@@ -47,32 \u002B47,32 @@\n ;* V36 tmp23        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Threading.Tasks.Task]\u003E\n ;* V37 tmp24        [V37    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.Threading.Tasks.Task]\u003E\n ;* V38 tmp25        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Threading.Tasks.Task]\u003E\n-;* V39 tmp26        [V39,T40] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V40 tmp27        [V40,T26] (  2,  4   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;* V39 tmp26        [V39,T39] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V40 tmp27        [V40,T25] (  2,  4   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;* V41 tmp28        [V41    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V42 tmp29        [V42    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V43 tmp30        [V43    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V44 tmp31        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Runtime.CompilerServices.IAsyncStateMachineBox\u003E\n ;  V45 tmp32        [V45,T19] (  3,  6   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n-;  V46 tmp33        [V46,T27] (  2,  4   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;  V46 tmp33        [V46,T26] (  2,  4   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;* V47 tmp34        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.AggregateException\u003E\n-;  V48 tmp35        [V48,T35] (  2,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.AggregateException\u003E\n\u002B;  V48 tmp35        [V48,T33] (  2,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.AggregateException\u003E\n ;* V49 tmp36        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.AggregateException\u003E\n-;  V50 tmp37        [V50,T36] (  3,  3   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.AggregateException\u003E\n\u002B;  V50 tmp37        [V50,T34] (  3,  3   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.AggregateException\u003E\n ;* V51 tmp38        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n ;  V52 tmp39        [V52,T11] (  4,  8   )     ref  -\u003E  r15         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.AggregateException\u003E\n-;  V53 tmp40        [V53,T28] (  2,  4   )     ref  -\u003E  r14         class-hnd \u0022dup spill\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n-;  V54 tmp41        [V54,T24] (  5,  5   )     ref  -\u003E  r14        \n\u002B;  V53 tmp40        [V53,T27] (  2,  4   )     ref  -\u003E  rsi         class-hnd \u0022dup spill\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n\u002B;  V54 tmp41        [V54,T24] (  4,  4   )     ref  -\u003E  rsi        \n ;  V55 tmp42        [V55,T12] (  4,  8   )     ref  -\u003E  r14         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n ;* V56 tmp43        [V56    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n ;  V57 tmp44        [V57,T20] (  3,  6   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Exception[]\u003E\n-;  V58 tmp45        [V58    ] (  3,  3   )   ubyte  -\u003E  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V58 tmp45        [V58    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V59 tmp46        [V59    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V60 tmp47        [V60,T34] (  4,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Exception\u003E\n-;  V61 tmp48        [V61,T25] (  4,  4   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Exception]\u003E\n\u002B;  V60 tmp47        [V60,T38] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Exception\u003E\n\u002B;* V61 tmp48        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Exception]\u003E\n ;* V62 tmp49        [V62    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V63 tmp50        [V63,T13] (  4,  8   )     ref  -\u003E  r15         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Threading.Tasks.Task]\u003E\n-;  V64 tmp51        [V64,T38] (  3,  3   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n\u002B;  V64 tmp51        [V64,T36] (  3,  3   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n ;  V65 tmp52        [V65,T21] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n ;* V66 tmp53        [V66    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V67 tmp54        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -81,17 \u002B81,17 @@\n ;* V70 tmp57        [V70    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n ;* V71 tmp58        [V71    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u002BConfiguredTaskAwaiter\u003E\n ;* V72 tmp59        [V72    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n-;* V73 tmp60        [V73,T41] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V74 tmp61        [V74,T29] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n\u002B;* V73 tmp60        [V73,T40] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V74 tmp61        [V74,T28] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n ;* V75 tmp62        [V75    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V76 tmp63        [V76    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V77 tmp64        [V77    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V78 tmp65        [V78    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Runtime.CompilerServices.IAsyncStateMachineBox\u003E\n ;  V79 tmp66        [V79,T22] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n-;  V80 tmp67        [V80,T33] (  2,  4   )     int  -\u003E  rax         \u0022Inlining Arg\u0022\n\u002B;  V80 tmp67        [V80,T32] (  2,  4   )     int  -\u003E  rax         \u0022Inlining Arg\u0022\n... diff truncated; middle omitted ...\n        mov      rsi, gword ptr [rdi\u002B0x30]\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task:WhenAny[System.Threading.Tasks.Task](System.Collections.Generic.IEnumerable\u00601[System.Threading.Tasks.Task]):System.Threading.Tasks.Task\u00601[System.Threading.Tasks.Task]\n@@ -380,16 \u002B364,16 @@ G_M6340_IG24:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x28], edi\n        test     byte  ptr [rbp-0x28], 4\n-       jne      SHORT G_M6340_IG25\n\u002B       jne      SHORT G_M6340_IG23\n        mov      rdi, gword ptr [rbp-0x30]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M6340_IG13\n \t\t\t\t\t\t;; size=64 bbWeight=1 PerfScore 16.75\n-G_M6340_IG25:\n\u002BG_M6340_IG23:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x1C], edi\n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M6340_IG26:\n\u002BG_M6340_IG24:\n        mov      rbx, bword ptr [rbp-0x50]\n        mov      dword ptr [rbx\u002B0x48], edi\n        lea      rdi, bword ptr [rbx\u002B0x58]\n@@ -406,20 \u002B390,20 @@ G_M6340_IG26:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.Threading.Tasks.Task]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      SHORT G_M6340_IG30\n\u002B       jmp      SHORT G_M6340_IG28\n \t\t\t\t\t\t;; size=76 bbWeight=1 PerfScore 16.75\n-G_M6340_IG27:\n\u002BG_M6340_IG25:\n        mov      edi, 20\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M6340_IG28:\n\u002BG_M6340_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M6340_IG29:\n\u002BG_M6340_IG27:\n        mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.ExceptionServices.ExceptionDispatchInfo:Capture(System.Exception):System.Runtime.ExceptionServices.ExceptionDispatchInfo\n        call     [rax]System.Runtime.ExceptionServices.ExceptionDispatchInfo:Capture(System.Exception):System.Runtime.ExceptionServices.ExceptionDispatchInfo\n@@ -429,22 \u002B413,22 @@ G_M6340_IG29:\n        call     [rax]System.Runtime.ExceptionServices.ExceptionDispatchInfo:Throw():this\n        int3     \n \t\t\t\t\t\t;; size=33 bbWeight=0 PerfScore 0.00\n-G_M6340_IG30:\n-       call     G_M6340_IG38\n-       jmp      G_M6340_IG36\n\u002BG_M6340_IG28:\n\u002B       call     G_M6340_IG36\n\u002B       jmp      G_M6340_IG34\n \t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.00\n-G_M6340_IG31:\n\u002BG_M6340_IG29:\n        cmp      dword ptr [rbp-0x1C], 0\n-       jge      SHORT G_M6340_IG32\n\u002B       jge      SHORT G_M6340_IG30\n        mov      rbx, bword ptr [rbp-0x50]\n        cmp      gword ptr [rbx\u002B0x38], 0\n-       je       SHORT G_M6340_IG32\n\u002B       je       SHORT G_M6340_IG30\n        mov      rdi, gword ptr [rbx\u002B0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        nop      \n \t\t\t\t\t\t;; size=35 bbWeight=1 PerfScore 11.50\n-G_M6340_IG32:\n\u002BG_M6340_IG30:\n        xor      rdi, rdi\n        mov      rbx, bword ptr [rbp-0x50]\n        mov      gword ptr [rbx\u002B0x38], rdi\n@@ -456,12 \u002B440,12 @@ G_M6340_IG32:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x38], edi\n        test     byte  ptr [rbp-0x38], 4\n-       jne      SHORT G_M6340_IG33\n\u002B       jne      SHORT G_M6340_IG31\n        mov      rdi, gword ptr [rbp-0x40]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M6340_IG07\n \t\t\t\t\t\t;; size=60 bbWeight=1 PerfScore 17.75\n-G_M6340_IG33:\n\u002BG_M6340_IG31:\n        mov      rbx, bword ptr [rbp-0x50]\n        mov      dword ptr [rbx\u002B0x48], 1\n        lea      rdi, bword ptr [rbx\u002B0x68]\n@@ -477,30 \u002B461,30 @@ G_M6340_IG33:\n        lea      rdi, [rbp-0x40]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u002BConfiguredTaskAwaiter](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u002BConfiguredTaskAwaiter](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      SHORT G_M6340_IG36\n\u002B       jmp      SHORT G_M6340_IG34\n \t\t\t\t\t\t;; size=70 bbWeight=1 PerfScore 16.50\n-G_M6340_IG34:\n\u002BG_M6340_IG32:\n        mov      dword ptr [rbx\u002B0x48], -2\n        xor      rdi, rdi\n        mov      gword ptr [rbx\u002B0x28], rdi\n        lea      rdi, bword ptr [rbx\u002B0x50]\n        cmp      gword ptr [rdi], 0\n-       je       SHORT G_M6340_IG35\n\u002B       je       SHORT G_M6340_IG33\n        mov      rdi, gword ptr [rdi]\n        xor      esi, esi\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.Threading.Tasks.VoidTaskResult],System.Threading.Tasks.VoidTaskResult)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.Threading.Tasks.VoidTaskResult],System.Threading.Tasks.VoidTaskResult)\n-       jmp      SHORT G_M6340_IG36\n\u002B       jmp      SHORT G_M6340_IG34\n \t\t\t\t\t\t;; size=42 bbWeight=1 PerfScore 13.25\n-G_M6340_IG35:\n\u002BG_M6340_IG33:\n        mov      rsi, 0xD1FFAB1E      ; const ptr\n        mov      rsi, gword ptr [rsi]\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 3.25\n-G_M6340_IG36:\n\u002BG_M6340_IG34:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M6340_IG37:\n\u002BG_M6340_IG35:\n        add      rsp, 56\n        pop      rbx\n        pop      r14\n@@ -508,28 \u002B492,28 @@ G_M6340_IG37:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M6340_IG38:\n\u002BG_M6340_IG36:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 1.00\n-G_M6340_IG39:\n\u002BG_M6340_IG37:\n        cmp      dword ptr [rbp-0x1C], 0\n-       jge      SHORT G_M6340_IG40\n\u002B       jge      SHORT G_M6340_IG38\n        mov      rbx, bword ptr [rbp-0x50]\n        mov      rdi, gword ptr [rbx\u002B0x38]\n        test     rdi, rdi\n-       je       SHORT G_M6340_IG40\n\u002B       je       SHORT G_M6340_IG38\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        nop      \n \t\t\t\t\t\t;; size=33 bbWeight=1 PerfScore 9.75\n-G_M6340_IG40:\n\u002BG_M6340_IG38:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M6340_IG41:\n\u002BG_M6340_IG39:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M6340_IG42:\n\u002BG_M6340_IG40:\n        mov      rsi, rdi\n        mov      rbx, bword ptr [rbp-0x50]\n        mov      rax, gword ptr [rbx\u002B0x20]\n@@ -538,10 \u002B522,10 @@ G_M6340_IG42:\n        call     CORINFO_HELP_RETHROW\n        int3     \n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M6340_IG43:\n\u002BG_M6340_IG41:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M6340_IG44:\n\u002BG_M6340_IG42:\n        mov      rsi, rdi\n        mov      rbx, bword ptr [rbp-0x50]\n        mov      dword ptr [rbx\u002B0x48], -2\n@@ -550,12 \u002B534,12 @@ G_M6340_IG44:\n        lea      rdi, bword ptr [rbx\u002B0x50]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder:SetException(System.Exception):this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder:SetException(System.Exception):this\n-       lea      rax, G_M6340_IG36\n\u002B       lea      rax, G_M6340_IG34\n \t\t\t\t\t\t;; size=43 bbWeight=0 PerfScore 0.00\n-G_M6340_IG45:\n\u002BG_M6340_IG43:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1481, prolog size 35, PerfScore 712.83, instruction count 357, allocated bytes for code 1481 (MethodHash=4fe7e73b) for method Nest.Extensions\u002B\u003CForEachAsync\u003Ed__29\u00602[double,System.Nullable\u00601[int]]:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 1432, prolog size 35, PerfScore 698.08, instruction count 345, allocated bytes for code 1432 (MethodHash=4fe7e73b) for method Nest.Extensions\u002B\u003CForEachAsync\u003Ed__29\u00602[double,System.Nullable\u00601[int]]:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1481,"DiffBytes":1432},{"Assembly":"OpenAI.dasm","Method":"OpenAI.Moderations.ModerationClient:ClassifyInputs(System.Collections.Generic.IEnumerable\u00601[OpenAI.Moderations.ModerationInputPart],System.Threading.CancellationToken):System.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]:this (FullOpts)","Category":"improvement","Description":"454 -\u003E 402 bytes (-52)","ExtraInfo":null,"Diff":"@@ -9,26 \u002B9,26 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T01] (  5,  5   )     ref  -\u003E  rbx         this class-hnd single-def \u003COpenAI.Moderations.ModerationClient\u003E\n-;  V01 arg1         [V01,T03] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.IEnumerable\u00601[OpenAI.Moderations.ModerationInputPart]\u003E\n\u002B;  V01 arg1         [V01,T02] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.IEnumerable\u00601[OpenAI.Moderations.ModerationInputPart]\u003E\n ;* V02 arg2         [V02    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;  V03 loc0         [V03    ] (  3,  3   )     ref  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003COpenAI.Moderations.ModerationOptions\u003E\n-;  V04 loc1         [V04,T14] (  3,  0   )     ref  -\u003E  [rbp-0x40]  class-hnd exact EH-live single-def \u003CSystem.ClientModel.BinaryContent\u002BModelBinaryContent\u00601[OpenAI.Moderations.ModerationOptions]\u003E\n-;  V05 loc2         [V05,T09] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u003E\n-;  V06 loc3         [V06,T12] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]\u003E\n\u002B;  V04 loc1         [V04,T13] (  3,  0   )     ref  -\u003E  [rbp-0x40]  class-hnd exact EH-live single-def \u003CSystem.ClientModel.BinaryContent\u002BModelBinaryContent\u00601[OpenAI.Moderations.ModerationOptions]\u003E\n\u002B;  V05 loc2         [V05,T08] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u003E\n\u002B;  V06 loc3         [V06,T10] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V08 tmp1         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003COpenAI.Moderations.ModerationOptions\u003E\n ;* V09 tmp2         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003COpenAI.Moderations.ModerationResult\u003E\n-;  V10 tmp3         [V10,T04] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Moderations.ModerationOptions\u003E\n\u002B;  V10 tmp3         [V10,T03] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Moderations.ModerationOptions\u003E\n ;  V11 tmp4         [V11,T05] (  2,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.ClientModel.Primitives.ModelReaderWriterOptions\u003E\n ;* V12 tmp5         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V13 tmp6         [V13,T13] (  2,  2   )     ref  -\u003E  r13        \n\u002B;  V13 tmp6         [V13,T11] (  2,  2   )     ref  -\u003E  r13        \n ;  V14 tmp7         [V14,T00] (  6, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ClientModel.BinaryContent\u002BModelBinaryContent\u00601[OpenAI.Moderations.ModerationOptions]\u003E\n ;* V15 tmp8         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V16 tmp9         [V16,T02] (  4,  7   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Moderations.ModerationResultCollection\u003E\n-;  V17 tmp10        [V17    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V18 tmp11        [V18,T11] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003COpenAI.Moderations.ModerationResult\u003E\n-;  V19 tmp12        [V19,T08] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[OpenAI.Moderations.ModerationResult]\u003E\n-;  V20 tmp13        [V20,T10] (  6,  2.50)     ref  -\u003E  registers   class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.ClientModel.Internal.UnsafeBufferSequence\u002BReader\u003E\n\u002B;  V16 tmp9         [V16,T04] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Moderations.ModerationResultCollection\u003E\n\u002B;  V17 tmp10        [V17    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V18 tmp11        [V18,T12] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003COpenAI.Moderations.ModerationResult\u003E\n\u002B;* V19 tmp12        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[OpenAI.Moderations.ModerationResult]\u003E\n\u002B;  V20 tmp13        [V20,T09] (  6,  2.50)     ref  -\u003E  registers   class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.ClientModel.Internal.UnsafeBufferSequence\u002BReader\u003E\n ;  V21 tmp14        [V21,T06] (  2,  2   )     ref  -\u003E  r14         single-def \u0022field V02._source (fldOffset=0x0)\u0022 P-INDEP\n ;  V22 tmp15        [V22,T07] (  2,  4   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n ;\n@@ -92,61 \u002B92,42 @@ G_M45204_IG03:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for OpenAI.Moderations.ModerationResultCollection:op_Explicit(System.ClientModel.ClientResult):OpenAI.Moderations.ModerationResultCollection\n        call     [rax]OpenAI.Moderations.ModerationResultCollection:op_Explicit(System.ClientModel.ClientResult):OpenAI.Moderations.ModerationResultCollection\n-       mov      r15, rax\n-       test     r15, r15\n-       je       SHORT G_M45204_IG07\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[OpenAI.Moderations.ModerationResult]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M45204_IG05\n-\t\t\t\t\t\t;; size=89 bbWeight=1 PerfScore 21.50\n-G_M45204_IG04:\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M45204_IG06\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M45204_IG05:\n\u002B       je       SHORT G_M45204_IG04\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[OpenAI.Moderations.ModerationResult](System.Collections.Generic.IEnumerable\u00601[OpenAI.Moderations.ModerationResult],byref):OpenAI.Moderations.ModerationResult\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M45204_IG06:\n-       mov      rdx, gword ptr [rbx\u002B0x08]\n        mov      rsi, rax\n\u002B       mov      rdx, gword ptr [rbx\u002B0x08]\n        mov      rdi, 0xD1FFAB1E      ; System.ClientModel.ClientResult:FromValue[OpenAI.Moderations.ModerationResult](OpenAI.Moderations.ModerationResult,System.ClientModel.Primitives.PipelineResponse):System.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]\n        mov      rax, 0xD1FFAB1E      ; code for System.ClientModel.ClientResult:FromValue[System.__Canon](System.__Canon,System.ClientModel.Primitives.PipelineResponse):System.ClientModel.ClientResult\u00601[System.__Canon]\n        call     [rax]System.ClientModel.ClientResult:FromValue[System.__Canon](System.__Canon,System.ClientModel.Primitives.PipelineResponse):System.ClientModel.ClientResult\u00601[System.__Canon]\n        mov      rbx, rax\n-       jmp      SHORT G_M45204_IG08\n-\t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 8.00\n-G_M45204_IG07:\n\u002B       jmp      SHORT G_M45204_IG05\n\u002B\t\t\t\t\t\t;; size=119 bbWeight=1 PerfScore 28.50\n\u002BG_M45204_IG04:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M45204_IG08:\n\u002BG_M45204_IG05:\n        mov      rdi, gword ptr [r12\u002B0x20]\n        test     rdi, rdi\n-       je       SHORT G_M45204_IG10\n\u002B       je       SHORT G_M45204_IG07\n \t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.25\n-G_M45204_IG09:\n\u002BG_M45204_IG06:\n        xor      rax, rax\n        mov      gword ptr [r12\u002B0x20], rax\n        mov      rax, 0xD1FFAB1E      ; code for System.ClientModel.Internal.UnsafeBufferSequence\u002BReader:Dispose():this\n        call     [rax]System.ClientModel.Internal.UnsafeBufferSequence\u002BReader:Dispose():this\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 2.25\n-G_M45204_IG10:\n\u002BG_M45204_IG07:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M45204_IG11:\n\u002BG_M45204_IG08:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -156,27 \u002B137,27 @@ G_M45204_IG11:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M45204_IG12:\n\u002BG_M45204_IG09:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M45204_IG13:\n\u002BG_M45204_IG10:\n        mov      rdi, gword ptr [rbp-0x40]\n        mov      rax, gword ptr [rdi\u002B0x20]\n        test     rax, rax\n-       je       SHORT G_M45204_IG14\n\u002B       je       SHORT G_M45204_IG11\n        xor      rcx, rcx\n        mov      gword ptr [rdi\u002B0x20], rcx\n        mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for System.ClientModel.Internal.UnsafeBufferSequence\u002BReader:Dispose():this\n        call     [rax]System.ClientModel.Internal.UnsafeBufferSequence\u002BReader:Dispose():this\n \t\t\t\t\t\t;; size=34 bbWeight=0 PerfScore 0.00\n-G_M45204_IG14:\n\u002BG_M45204_IG11:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M45204_IG15:\n\u002BG_M45204_IG12:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 454, prolog size 38, PerfScore 78.50, instruction count 113, allocated bytes for code 454 (MethodHash=29854f6b) for method OpenAI.Moderations.ModerationClient:ClassifyInputs(System.Collections.Generic.IEnumerable\u00601[OpenAI.Moderations.ModerationInputPart],System.Threading.CancellationToken):System.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]:this (FullOpts)\n\u002B; Total bytes of code 402, prolog size 38, PerfScore 70.50, instruction count 100, allocated bytes for code 402 (MethodHash=29854f6b) for method OpenAI.Moderations.ModerationClient:ClassifyInputs(System.Collections.Generic.IEnumerable\u00601[OpenAI.Moderations.ModerationInputPart],System.Threading.CancellationToken):System.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":454,"DiffBytes":402},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Core.Accounts.PersonService:ListAutoPaging(System.String,Stripe.V2.Core.Accounts.PersonListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.AccountPerson]:this (FullOpts)","Category":"improvement","Description":"513 -\u003E 464 bytes (-49)","ExtraInfo":null,"Diff":"@@ -1,169 \u002B1,160 @@\n ; Assembly listing for method Stripe.V2.Core.Accounts.PersonService:ListAutoPaging(System.String,Stripe.V2.Core.Accounts.PersonListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.AccountPerson]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 22 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T05] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Core.Accounts.PersonService\u003E\n-;  V01 arg1         [V01,T08] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Core.Accounts.PersonListOptions\u003E\n-;  V03 arg3         [V03,T07] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T07] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V02 arg2         [V02,T08] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Core.Accounts.PersonListOptions\u003E\n\u002B;  V03 arg3         [V03,T06] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T11] (  3,  2   )     ref  -\u003E  r15         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.AccountPerson]\u003E\n ;  V06 tmp2         [V06,T02] (  4,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V07 tmp3         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V08 tmp4         [V08,T12] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;  V09 tmp5         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.AccountPerson]\u003E\n-;* V10 tmp6         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp8         [V12,T03] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.AccountPerson]\u003E\n-;  V13 tmp9         [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.AccountPerson]\u003E\n-;* V14 tmp10        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp11        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp12        [V16,T04] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.AccountPerson]\u003E\n-;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V07._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp14        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp15        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp16        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp17        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 tmp18        [V22,T09] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V23 cse0         [V23,T10] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #02: moderate\u0022\n-;  V24 rat0         [V24,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T15] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T16] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.AccountPerson]\u003E\n\u002B;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp6         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp7         [V11,T03] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.AccountPerson]\u003E\n\u002B;  V12 tmp8         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.AccountPerson]\u003E\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp11        [V15,T04] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.AccountPerson]\u003E\n\u002B;* V16 tmp12        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V07._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp14        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp15        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp16        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 tmp17        [V21,T09] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V22 cse0         [V22,T10] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #02: moderate\u0022\n\u002B;  V23 rat0         [V23,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T15] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M49096_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rdx\n-       mov      r14, rcx\n\u002B       mov      r14, rdx\n\u002B       mov      r15, rcx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M49096_IG02:\n        mov      rdi, rsi\n        mov      rax, 0xD1FFAB1E      ; code for System.Net.WebUtility:UrlEncode(System.String):System.String\n        call     [rax]System.Net.WebUtility:UrlEncode(System.String):System.String\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; \u0027/v2/core/accounts/\u0027\n        mov      rdx, 0xD1FFAB1E      ; \u0027/persons\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Concat(System.String,System.String,System.String):System.String\n        call     [rax]System.String:Concat(System.String,System.String,System.String):System.String\n        mov      r13, rax\n        mov      rdi, r13\n        mov      rax, 0xD1FFAB1E      ; code for Stripe.ApiModeUtils:GetApiMode(System.String):int\n        call     [rax]Stripe.ApiModeUtils:GetApiMode(System.String):int\n        cmp      eax, 1\n        je       G_M49096_IG04\n \t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 12.50\n G_M49096_IG03:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.AccountPerson]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n-       mov      eax, dword ptr [rax\u002B0x10]\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, dword ptr [rax\u002B0x10]\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x28]\n\u002B       lea      rdi, bword ptr [r14\u002B0x28]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.AccountPerson]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        mov      dword ptr [r15\u002B0x28], -2\n-       mov      r14d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r15\u002B0x2C], r14d\n\u002B       mov      dword ptr [r15\u002B0x2C], r12d\n        lea      rdi, bword ptr [r15\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M49096_IG05\n-\t\t\t\t\t\t;; size=212 bbWeight=0.50 PerfScore 16.00\n\u002B\t\t\t\t\t\t;; size=164 bbWeight=0.50 PerfScore 12.75\n G_M49096_IG04:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.AccountPerson]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      eax, edi\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x28]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.AccountPerson]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        mov      dword ptr [r15\u002B0x28], -2\n-       mov      r14d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r15\u002B0x2C], r14d\n\u002B       mov      ebx, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r15\u002B0x2C], ebx\n        lea      rdi, bword ptr [r15\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=181 bbWeight=0.50 PerfScore 13.12\n\u002B\t\t\t\t\t\t;; size=180 bbWeight=0.50 PerfScore 13.12\n G_M49096_IG05:\n        mov      rax, r15\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M49096_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 513, prolog size 16, PerfScore 54.38, instruction count 113, allocated bytes for code 513 (MethodHash=05ee4037) for method Stripe.V2.Core.Accounts.PersonService:ListAutoPaging(System.String,Stripe.V2.Core.Accounts.PersonListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.AccountPerson]:this (FullOpts)\n\u002B; Total bytes of code 464, prolog size 16, PerfScore 51.12, instruction count 105, allocated bytes for code 464 (MethodHash=05ee4037) for method Stripe.V2.Core.Accounts.PersonService:ListAutoPaging(System.String,Stripe.V2.Core.Accounts.PersonListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.AccountPerson]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":513,"DiffBytes":464},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.Internal.AsyncLock\u002B\u003CTryAcquireAsync\u003Ed__4:MoveNext():this (FullOpts)","Category":"same-size","Description":"556 -\u003E 556 bytes (0)","ExtraInfo":null,"Diff":"@@ -105,7 \u002B105,7 @@ G_M30972_IG08:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        cmp      byte  ptr [rax\u002B0x10], 0\n        jne      G_M30972_IG10\n        mov      rdi, bword ptr [rbp-0x28]","Truncated":true,"BaseBytes":556,"DiffBytes":556},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer:MappingTypesAreIdentical(System.Data.Entity.Core.Mapping.EntityTypeMapping,System.Data.Entity.Core.Mapping.EntityTypeMapping):bool (FullOpts)","Category":"improvement","Description":"446 -\u003E 336 bytes (-110)","ExtraInfo":null,"Diff":"@@ -12,26 \u002B12,26 @@\n ;  V01 arg1         [V01,T03] (  5,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.EntityTypeMapping\u003E\n ;* V02 loc0         [V02    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityTypeBase\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V04 tmp1         [V04,T08] (  2,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n\u002B;  V04 tmp1         [V04,T06] (  2,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n ;  V05 tmp2         [V05,T04] (  5,  4.50)     ref  -\u003E  r14        \n-;  V06 tmp3         [V06,T09] (  2,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n\u002B;  V06 tmp3         [V06,T07] (  2,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n ;* V07 tmp4         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V08 tmp5         [V08,T05] (  5,  4.50)     ref  -\u003E  rbx        \n ;  V09 tmp6         [V09,T00] (  5,  7   )     ref  -\u003E  r15         class-hnd exact single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n-;  V10 tmp7         [V10,T06] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EntityTypeBase]\u003E\n-;  V11 tmp8         [V11    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V10 tmp7         [V10,T08] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EntityTypeBase]\u003E\n\u002B;  V11 tmp8         [V11    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V12 tmp9         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V13 tmp10        [V13,T14] (  3,  1.50)     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityTypeBase\u003E\n-;  V14 tmp11        [V14,T11] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EntityTypeBase]\u003E\n-;  V15 tmp12        [V15,T07] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EntityTypeBase]\u003E\n-;  V16 tmp13        [V16    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V13 tmp10        [V13,T13] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityTypeBase\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EntityTypeBase]\u003E\n\u002B;  V15 tmp12        [V15,T09] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EntityTypeBase]\u003E\n\u002B;  V16 tmp13        [V16    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V18 tmp15        [V18,T15] (  3,  1.50)     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityTypeBase\u003E\n-;  V19 tmp16        [V19,T12] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EntityTypeBase]\u003E\n\u002B;  V18 tmp15        [V18,T14] (  2,  1   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityTypeBase\u003E\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EntityTypeBase]\u003E\n ;  V20 tmp17        [V20,T01] (  5,  7   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V21 tmp18        [V21,T10] (  4,  2.50)   ubyte  -\u003E  rax         \u0022Inline return value spill temp\u0022\n-;  V22 tmp19        [V22,T13] (  2,  2   )   byref  -\u003E  rdi         single-def \u0022impAppendStmt\u0022\n-;  V23 cse0         [V23,T16] (  3,  1.50)     int  -\u003E  rdx         \u0022CSE #01: moderate\u0022\n\u002B;  V22 tmp19        [V22,T11] (  2,  2   )   byref  -\u003E  rdi         single-def \u0022impAppendStmt\u0022\n\u002B;  V23 cse0         [V23,T12] (  3,  1.50)     int  -\u003E  rdx         \u0022CSE #01: moderate\u0022\n ;\n ; Lcl frame size = 24\n \n@@ -55,86 \u002B55,50 @@ G_M56668_IG02:\n        call     [rax]System.Data.Entity.Core.Mapping.EntityTypeMapping:get_EntityType():System.Data.Entity.Core.Metadata.Edm.EntityType:this\n        mov      r14, rax\n        test     r14, r14\n-       jne      SHORT G_M56668_IG06\n\u002B       jne      SHORT G_M56668_IG04\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 7.00\n G_M56668_IG03:\n        mov      rdi, rbx\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x38]System.Data.Entity.Core.Mapping.TypeMapping:get_IsOfTypes():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EntityTypeBase]:this\n-       mov      r14, rax\n-       test     r14, r14\n-       je       G_M56668_IG15\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EntityTypeBase]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M56668_IG04\n-       lea      rsi, [rbp-0x20]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      r14, rax\n-       jmp      SHORT G_M56668_IG05\n-\t\t\t\t\t\t;; size=77 bbWeight=0.50 PerfScore 11.88\n-G_M56668_IG04:\n\u002B       je       G_M56668_IG11\n        lea      rdx, [rbp-0x20]\n-       mov      rsi, r14\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.EntityTypeBase](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EntityTypeBase],byref):System.Data.Entity.Core.Metadata.Edm.EntityTypeBase\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        mov      r14, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M56668_IG05:\n        cmp      byte  ptr [rbp-0x20], 0\n-       je       G_M56668_IG16\n-\t\t\t\t\t\t;; size=10 bbWeight=0.50 PerfScore 1.00\n-G_M56668_IG06:\n\u002B       je       G_M56668_IG12\n\u002B\t\t\t\t\t\t;; size=64 bbWeight=0.50 PerfScore 7.50\n\u002BG_M56668_IG04:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Mapping.EntityTypeMapping:get_EntityType():System.Data.Entity.Core.Metadata.Edm.EntityType:this\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.Data.Entity.Core.Mapping.EntityTypeMapping:get_EntityType():System.Data.Entity.Core.Metadata.Edm.EntityType:this\n        mov      rbx, rax\n        test     rbx, rbx\n-       jne      SHORT G_M56668_IG10\n\u002B       jne      SHORT G_M56668_IG06\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 7.00\n-G_M56668_IG07:\n\u002BG_M56668_IG05:\n        mov      rdi, r15\n        mov      rax, qword ptr [r15]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x38]System.Data.Entity.Core.Mapping.TypeMapping:get_IsOfTypes():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EntityTypeBase]:this\n-       mov      rbx, rax\n-       test     rbx, rbx\n-       je       G_M56668_IG15\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EntityTypeBase]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M56668_IG08\n-       lea      rsi, [rbp-0x28]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      rbx, rax\n-       jmp      SHORT G_M56668_IG09\n-\t\t\t\t\t\t;; size=77 bbWeight=0.50 PerfScore 11.88\n-G_M56668_IG08:\n\u002B       je       G_M56668_IG11\n        lea      rdx, [rbp-0x28]\n-       mov      rsi, rbx\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.EntityTypeBase](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EntityTypeBase],byref):System.Data.Entity.Core.Metadata.Edm.EntityTypeBase\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        mov      rbx, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M56668_IG09:\n        cmp      byte  ptr [rbp-0x28], 0\n-       je       SHORT G_M56668_IG16\n-\t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 1.00\n-G_M56668_IG10:\n\u002B       je       SHORT G_M56668_IG12\n\u002B\t\t\t\t\t\t;; size=60 bbWeight=0.50 PerfScore 7.50\n\u002BG_M56668_IG06:\n        mov      rdi, r14\n        mov      rax, qword ptr [r14]\n        mov      rax, qword ptr [rax\u002B0x50]\n@@ -146,31 \u002B110,31 @@ G_M56668_IG10:\n        call     [rax\u002B0x20]System.Data.Entity.Core.Metadata.Edm.EdmType:get_FullName():System.String:this\n        mov      rsi, rax\n        cmp      r15, rsi\n-       je       SHORT G_M56668_IG13\n\u002B       je       SHORT G_M56668_IG09\n \t\t\t\t\t\t;; size=37 bbWeight=1 PerfScore 16.25\n-G_M56668_IG11:\n\u002BG_M56668_IG07:\n        test     r15, r15\n-       je       SHORT G_M56668_IG12\n\u002B       je       SHORT G_M56668_IG08\n        test     rsi, rsi\n-       je       SHORT G_M56668_IG12\n\u002B       je       SHORT G_M56668_IG08\n        mov      edx, dword ptr [r15\u002B0x08]\n        cmp      edx, dword ptr [rsi\u002B0x08]\n-       jne      SHORT G_M56668_IG12\n\u002B       jne      SHORT G_M56668_IG08\n        lea      rdi, bword ptr [r15\u002B0x0C]\n        add      edx, edx\n        add      rsi, 12\n        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:SequenceEqual(byref,byref,nuint):bool\n        call     [rax]System.SpanHelpers:SequenceEqual(byref,byref,nuint):bool\n-       jmp      SHORT G_M56668_IG14\n\u002B       jmp      SHORT G_M56668_IG10\n \t\t\t\t\t\t;; size=43 bbWeight=0.50 PerfScore 6.88\n-G_M56668_IG12:\n\u002BG_M56668_IG08:\n        xor      eax, eax\n-       jmp      SHORT G_M56668_IG14\n\u002B       jmp      SHORT G_M56668_IG10\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 1.12\n-G_M56668_IG13:\n\u002BG_M56668_IG09:\n        mov      eax, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 0.12\n-G_M56668_IG14:\n\u002BG_M56668_IG10:\n        add      rsp, 24\n        pop      rbx\n        pop      r14\n@@ -178,17 \u002B142,17 @@ G_M56668_IG14:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M56668_IG15:\n\u002BG_M56668_IG11:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M56668_IG16:\n\u002BG_M56668_IG12:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 446, prolog size 25, PerfScore 79.38, instruction count 122, allocated bytes for code 446 (MethodHash=e06e22a3) for method System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer:MappingTypesAreIdentical(System.Data.Entity.Core.Mapping.EntityTypeMapping,System.Data.Entity.Core.Mapping.EntityTypeMapping):bool (FullOpts)\n\u002B; Total bytes of code 336, prolog size 25, PerfScore 64.12, instruction count 94, allocated bytes for code 336 (MethodHash=e06e22a3) for method System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer:MappingTypesAreIdentical(System.Data.Entity.Core.Mapping.EntityTypeMapping,System.Data.Entity.Core.Mapping.EntityTypeMapping):bool (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":446,"DiffBytes":336},{"Assembly":"MathNet.Numerics.dasm","Method":"MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:SameAs[long](MathNet.Numerics.LinearAlgebra.Matrix\u00601[long],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this (FullOpts)","Category":"improvement","Description":"594 -\u003E 120 bytes (-474)","ExtraInfo":null,"Diff":"@@ -1,214 \u002B1,65 @@\n ; Assembly listing for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:SameAs[long](MathNet.Numerics.LinearAlgebra.Matrix\u00601[long],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n-; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data\n\u002B; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 12,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]\u003E\n-;  V01 arg1         [V01,T03] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[long]\u003E\n-;  V02 arg2         [V02,T01] ( 11,  6.50)     int  -\u003E  r15         single-def\n-;  V03 arg3         [V03,T02] ( 11,  6.50)     int  -\u003E  r14         single-def\n-;  V04 arg4         [V04,T04] (  3,  2.50)   ubyte  -\u003E  r13         single-def\n-;  V05 loc0         [V05,T08] (  4,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]\u003E\n\u002B;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]\u003E\n\u002B;  V01 arg1         [V01,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[long]\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  4   )     int  -\u003E  r15         single-def\n\u002B;  V03 arg3         [V03,T04] (  4,  4   )     int  -\u003E  r14         single-def\n\u002B;* V04 arg4         [V04    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def\n\u002B;* V05 loc0         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]\u003E\n\u002B;  V07 tmp1         [V07,T00] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cdouble[]\u003E\n-;  V09 tmp3         [V09,T06] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[double]\u003E\n-;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cdouble[]\u003E\n-;  V11 tmp5         [V11,T11] (  2,  1   )     int  -\u003E  rsi         \u0022Inline return value spill temp\u0022\n-;  V12 tmp6         [V12,T09] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]\u003E\n-;  V13 tmp7         [V13,T10] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]\u003E\n-;  V14 tmp8         [V14,T07] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]\u003E\n-;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cdouble[]\u003E\n-;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022Single return block return value\u0022\n ;\n ; Lcl frame size = 8\n \n G_M33180_IG01:\n-       push     rbp\n        push     r15\n        push     r14\n        push     r13\n-       push     r12\n        push     rbx\n        push     rax\n-       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n        mov      r15d, edx\n        mov      r14d, ecx\n-       mov      r13d, r8d\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.75\n G_M33180_IG02:\n-       mov      r12, gword ptr [rsi\u002B0x08]\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M33180_IG11\n-\t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 7.00\n-G_M33180_IG03:\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[double]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M33180_IG07\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      SHORT G_M33180_IG05\n\u002B       cmp      byte  ptr [rsi], sil\n        mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        mov      rdi, r13\n        mov      esi, r15d\n        mov      edx, r14d\n        mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]:.ctor(int,int):this\n        call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]:.ctor(int,int):this\n        imul     r15d, r14d\n        movsxd   rsi, r15d\n        mov      rdi, 0xD1FFAB1E      ; double[]\n        call     CORINFO_HELP_NEWARR_1_PTR\n        mov      rsi, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, rbx\n        mov      rsi, r13\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=150 bbWeight=0.50 PerfScore 12.62\n-G_M33180_IG04:\n\u002B\t\t\t\t\t\t;; size=89 bbWeight=1 PerfScore 17.25\n\u002BG_M33180_IG03:\n        add      rsp, 8\n        pop      rbx\n-       pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n-       pop      rbp\n        tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M33180_IG05:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 5.00\n-G_M33180_IG06:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M33180_IG07:\n-       test     r13b, r13b\n-       je       SHORT G_M33180_IG09\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 5.62\n-G_M33180_IG08:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M33180_IG09:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[double]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]:.ctor(int,int):this\n-       cmp      r15d, r14d\n-       mov      esi, r14d\n-       cmovle   esi, r15d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; double[]\n-       call     CORINFO_HELP_NEWARR_1_PTR\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 7.12\n-G_M33180_IG10:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x10]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:Diagonal(MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[double]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M33180_IG11:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]:.ctor(int,int):this\n-       mov      esi, r15d\n-       imul     esi, r14d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; double[]\n-       call     CORINFO_HELP_NEWARR_1_PTR\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=89 bbWeight=0.50 PerfScore 7.75\n-G_M33180_IG12:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n\u002B\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 594, prolog size 16, PerfScore 66.75, instruction count 157, allocated bytes for code 594 (MethodHash=7a547e63) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:SameAs[long](MathNet.Numerics.LinearAlgebra.Matrix\u00601[long],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this (FullOpts)\n\u002B; Total bytes of code 120, prolog size 8, PerfScore 27.25, instruction count 34, allocated bytes for code 120 (MethodHash=7a547e63) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:SameAs[long](MathNet.Numerics.LinearAlgebra.Matrix\u00601[long],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":594,"DiffBytes":120},{"Assembly":"Microsoft.AspNetCore.OData.dasm","Method":"Microsoft.AspNetCore.OData.Routing.Parser.ODataPathSegmentToTemplateHandler:Handle(Microsoft.OData.UriParser.OperationImportSegment):this (FullOpts)","Category":"improvement","Description":"303 -\u003E 251 bytes (-52)","ExtraInfo":null,"Diff":"@@ -1,125 \u002B1,106 @@\n ; Assembly listing for method Microsoft.AspNetCore.OData.Routing.Parser.ODataPathSegmentToTemplateHandler:Handle(Microsoft.OData.UriParser.OperationImportSegment):this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 4 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  r15         this class-hnd single-def \u003CMicrosoft.AspNetCore.OData.Routing.Parser.ODataPathSegmentToTemplateHandler\u003E\n-;  V01 arg1         [V01,T01] (  5,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003CMicrosoft.OData.UriParser.OperationImportSegment\u003E\n\u002B;  V01 arg1         [V01,T00] (  5,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003CMicrosoft.OData.UriParser.OperationImportSegment\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V03 tmp1         [V03,T04] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.AspNetCore.OData.Routing.Template.FunctionImportSegmentTemplate\u003E\n-;  V04 tmp2         [V04,T07] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IList\u00601[Microsoft.AspNetCore.OData.Routing.Template.ODataSegmentTemplate]\u003E\n-;  V05 tmp3         [V05,T05] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.AspNetCore.OData.Routing.Template.ActionImportSegmentTemplate\u003E\n-;  V06 tmp4         [V06,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IList\u00601[Microsoft.AspNetCore.OData.Routing.Template.ODataSegmentTemplate]\u003E\n-;  V07 tmp5         [V07,T00] (  4,  7   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[Microsoft.OData.Edm.IEdmOperationImport]\u003E\n-;  V08 tmp6         [V08    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V03 tmp1         [V03,T03] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.AspNetCore.OData.Routing.Template.FunctionImportSegmentTemplate\u003E\n\u002B;  V04 tmp2         [V04,T05] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IList\u00601[Microsoft.AspNetCore.OData.Routing.Template.ODataSegmentTemplate]\u003E\n\u002B;  V05 tmp3         [V05,T04] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.AspNetCore.OData.Routing.Template.ActionImportSegmentTemplate\u003E\n\u002B;  V06 tmp4         [V06,T06] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IList\u00601[Microsoft.AspNetCore.OData.Routing.Template.ODataSegmentTemplate]\u003E\n\u002B;  V07 tmp5         [V07,T01] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[Microsoft.OData.Edm.IEdmOperationImport]\u003E\n\u002B;  V08 tmp6         [V08    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V09 tmp7         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V10 tmp8         [V10,T06] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMicrosoft.OData.Edm.IEdmOperationImport\u003E\n-;  V11 tmp9         [V11,T03] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Microsoft.OData.Edm.IEdmOperationImport]\u003E\n\u002B;  V10 tmp8         [V10,T07] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMicrosoft.OData.Edm.IEdmOperationImport\u003E\n\u002B;* V11 tmp9         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Microsoft.OData.Edm.IEdmOperationImport]\u003E\n ;* V12 tmp10        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMicrosoft.OData.Edm.IEdmOperationImport\u003E\n ;\n ; Lcl frame size = 8\n \n G_M7594_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x20]\n        mov      r15, rdi\n        mov      rbx, rsi\n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 6.00\n G_M7594_IG02:\n-       mov      r14, gword ptr [rbx\u002B0x28]\n-       test     r14, r14\n-       je       G_M7594_IG10\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[Microsoft.OData.Edm.IEdmOperationImport]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M7594_IG04\n-\t\t\t\t\t\t;; size=43 bbWeight=1 PerfScore 8.25\n-G_M7594_IG03:\n-       lea      rsi, [rbp-0x20]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M7594_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M7594_IG04:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x28]\n\u002B       test     rsi, rsi\n\u002B       je       G_M7594_IG07\n        lea      rdx, [rbp-0x20]\n-       mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[Microsoft.OData.Edm.IEdmOperationImport](System.Collections.Generic.IEnumerable\u00601[Microsoft.OData.Edm.IEdmOperationImport],byref):Microsoft.OData.Edm.IEdmOperationImport\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M7594_IG05:\n-       cmp      byte  ptr [rbp-0x20], 0\n-       je       G_M7594_IG11\n        mov      rdi, rax\n\u002B       cmp      byte  ptr [rbp-0x20], 0\n\u002B       je       G_M7594_IG08\n        mov      r11, 0xD1FFAB1E      ; code for Microsoft.OData.Edm.IEdmEntityContainerElement:get_ContainerElementKind():int:this\n        call     [r11]Microsoft.OData.Edm.IEdmEntityContainerElement:get_ContainerElementKind():int:this\n        cmp      eax, 2\n-       je       SHORT G_M7594_IG07\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 6.75\n-G_M7594_IG06:\n\u002B       je       SHORT G_M7594_IG04\n\u002B\t\t\t\t\t\t;; size=70 bbWeight=1 PerfScore 14.00\n\u002BG_M7594_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.AspNetCore.OData.Routing.Template.FunctionImportSegmentTemplate\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      r15, gword ptr [r15\u002B0x10]\n        mov      rdi, r14\n        mov      rsi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.AspNetCore.OData.Routing.Template.FunctionImportSegmentTemplate:.ctor(Microsoft.OData.UriParser.OperationImportSegment):this\n        call     [rax]Microsoft.AspNetCore.OData.Routing.Template.FunctionImportSegmentTemplate:.ctor(Microsoft.OData.UriParser.OperationImportSegment):this\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:Add(System.__Canon):this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:Add(System.__Canon):this\n-       jmp      SHORT G_M7594_IG08\n\u002B       jmp      SHORT G_M7594_IG05\n \t\t\t\t\t\t;; size=61 bbWeight=0.50 PerfScore 6.50\n-G_M7594_IG07:\n\u002BG_M7594_IG04:\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.AspNetCore.OData.Routing.Template.ActionImportSegmentTemplate\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      r15, gword ptr [r15\u002B0x10]\n        mov      rdi, r14\n        mov      rsi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.AspNetCore.OData.Routing.Template.ActionImportSegmentTemplate:.ctor(Microsoft.OData.UriParser.OperationImportSegment):this\n        call     [rax]Microsoft.AspNetCore.OData.Routing.Template.ActionImportSegmentTemplate:.ctor(Microsoft.OData.UriParser.OperationImportSegment):this\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:Add(System.__Canon):this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:Add(System.__Canon):this\n \t\t\t\t\t\t;; size=59 bbWeight=0.50 PerfScore 5.50\n-G_M7594_IG08:\n\u002BG_M7594_IG05:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M7594_IG09:\n\u002BG_M7594_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M7594_IG10:\n\u002BG_M7594_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M7594_IG11:\n\u002BG_M7594_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 303, prolog size 12, PerfScore 43.50, instruction count 74, allocated bytes for code 303 (MethodHash=e0c9e255) for method Microsoft.AspNetCore.OData.Routing.Parser.ODataPathSegmentToTemplateHandler:Handle(Microsoft.OData.UriParser.OperationImportSegment):this (FullOpts)\n\u002B; Total bytes of code 251, prolog size 12, PerfScore 35.50, instruction count 61, allocated bytes for code 251 (MethodHash=e0c9e255) for method Microsoft.AspNetCore.OData.Routing.Parser.ODataPathSegmentToTemplateHandler:Handle(Microsoft.OData.UriParser.OperationImportSegment):this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":303,"DiffBytes":251},{"Assembly":"Microsoft.OpenApi.dasm","Method":"Microsoft.OpenApi.OpenApiOperation:SerializeAsV2(Microsoft.OpenApi.IOpenApiWriter):this (FullOpts)","Category":"improvement","Description":"3,843 -\u003E 3,828 bytes (-15)","ExtraInfo":null,"Diff":"@@ -24,13 \u002B24,13 @@\n ;  V13 loc11        [V13,T57] (  4,  2   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[System.String]\u003E\n ;# V14 OutArgs      [V14    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V15 tmp1         [V15,T35] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiTagReference]\u003E\n-;  V16 tmp2         [V16,T07] (  4,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.ISet\u00601[Microsoft.OpenApi.OpenApiTagReference]\u003E\n\u002B;  V16 tmp2         [V16,T06] (  4,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.ISet\u00601[Microsoft.OpenApi.OpenApiTagReference]\u003E\n ;* V17 tmp3         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V18 tmp4         [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V19 tmp5         [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V20 tmp6         [V20,T44] (  4,  3   )     ref  -\u003E  r13        \n ;  V21 tmp7         [V21,T36] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiExternalDocs]\u003E\n-;  V22 tmp8         [V22,T06] (  5,  7   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.OpenApi.OpenApiExternalDocs\u003E\n\u002B;  V22 tmp8         [V22,T07] (  4,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMicrosoft.OpenApi.OpenApiExternalDocs\u003E\n ;* V23 tmp9         [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V24 tmp10        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V25 tmp11        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -116,99 \u002B116,98 @@\n ;* V105 tmp91       [V105    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n ;* V106 tmp92       [V106    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V107 tmp93       [V107    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiExternalDocs]\u003E\n-;* V108 tmp94       [V108    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling qmarkNull\u0022\n-;* V109 tmp95       [V109    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiExternalDocs]\u003E\n-;* V110 tmp96       [V110    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n-;* V111 tmp97       [V111    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V112 tmp98       [V112,T27] (  3,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V113 tmp99       [V113,T103] (  3,  1.50)     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.String]\u003E\n-;* V114 tmp100      [V114    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.OrdinalIgnoreCaseComparer\u003E\n-;  V115 tmp101      [V115,T20] (  5,  5   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Enumerable\u002BDistinctIterator\u00601[System.String]\u003E\n-;* V116 tmp102      [V116,T120] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V117 tmp103      [V117,T104] (  3,  1.50)     ref  -\u003E  rdi         class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String[]\u003E\n-;* V118 tmp104      [V118    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.OrdinalIgnoreCaseComparer\u003E\n-;  V119 tmp105      [V119,T105] (  3,  1.50)     ref  -\u003E  rdi         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.OpenApi.IOpenApiParameter[]\u003E\n-;  V120 tmp106      [V120,T64] (  4,  2   )     int  -\u003E  r12         single-def \u0022Inline stloc first use temp\u0022\n\u002B;* V108 tmp94       [V108    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiExternalDocs]\u003E\n\u002B;* V109 tmp95       [V109    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n\u002B;* V110 tmp96       [V110    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V111 tmp97       [V111,T27] (  3,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V112 tmp98       [V112,T103] (  3,  1.50)     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.String]\u003E\n\u002B;* V113 tmp99       [V113    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.OrdinalIgnoreCaseComparer\u003E\n\u002B;  V114 tmp100      [V114,T20] (  5,  5   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Enumerable\u002BDistinctIterator\u00601[System.String]\u003E\n\u002B;* V115 tmp101      [V115,T120] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V116 tmp102      [V116,T104] (  3,  1.50)     ref  -\u003E  rdi         class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String[]\u003E\n\u002B;* V117 tmp103      [V117    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.OrdinalIgnoreCaseComparer\u003E\n\u002B;  V118 tmp104      [V118,T105] (  3,  1.50)     ref  -\u003E  rdi         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.OpenApi.IOpenApiParameter[]\u003E\n\u002B;  V119 tmp105      [V119,T64] (  4,  2   )     int  -\u003E  r12         single-def \u0022Inline stloc first use temp\u0022\n\u002B;* V120 tmp106      [V120    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V121 tmp107      [V121    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n-;* V122 tmp108      [V122    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n-;  V123 tmp109      [V123,T79] (  2,  2   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n-;* V124 tmp110      [V124    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiDocument\u003E\n-;  V125 tmp111      [V125,T106] (  3,  1.50)     ref  -\u003E  rdi         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.OpenApi.IOpenApiParameter[]\u003E\n-;  V126 tmp112      [V126,T65] (  4,  2   )     int  -\u003E  r12         single-def \u0022Inline stloc first use temp\u0022\n-;* V127 tmp113      [V127    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.HashSet\u00601\u002BEnumerator[System.String]\u003E\n-;  V128 tmp114      [V128,T80] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiOperation\u002B\u003C\u003Ec\u003E\n-;  V129 tmp115      [V129,T81] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiOperation\u002B\u003C\u003Ec\u003E\n-;* V130 tmp116      [V130    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Collections.Generic.KeyValuePair\u00602[System.String,Microsoft.OpenApi.IOpenApiResponse]]\u003E\n-;* V131 tmp117      [V131    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[System.Collections.Generic.KeyValuePair\u00602[System.String,Microsoft.OpenApi.IOpenApiResponse],System.Collections.Generic.IEnumerable\u00601[System.String]]\u003E\n-;  V132 tmp118      [V132,T21] (  5,  5   )     ref  -\u003E  [rbp-0x60]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Enumerable\u002BSelectManySingleSelectorIterator\u00602[System.Collections.Generic.KeyValuePair\u00602[System.String,Microsoft.OpenApi.IOpenApiResponse],System.String]\u003E\n-;* V133 tmp119      [V133,T121] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V134 tmp120      [V134,T107] (  3,  1.50)     ref  -\u003E  rdi         class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Generic.KeyValuePair\u00602[System.String,Microsoft.OpenApi.IOpenApiResponse][]\u003E\n-;  V135 tmp121      [V135,T82] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiOperation\u002B\u003C\u003Ec\u003E\n-;  V136 tmp122      [V136,T108] (  3,  1.50)     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.String]\u003E\n-;* V137 tmp123      [V137    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.OrdinalIgnoreCaseComparer\u003E\n-;  V138 tmp124      [V138,T22] (  5,  5   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Enumerable\u002BDistinctIterator\u00601[System.String]\u003E\n-;* V139 tmp125      [V139,T122] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V140 tmp126      [V140,T109] (  3,  1.50)     ref  -\u003E  rdi         class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String[]\u003E\n-;* V141 tmp127      [V141    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.OrdinalIgnoreCaseComparer\u003E\n... diff truncated; middle omitted ...\n\u002B;  V141 tmp127      [V141,T83] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiOperation\u002B\u003C\u003Ec\u003E\n\u002B;* V142 tmp128      [V142    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.OpenApi.IOpenApiParameter]\u003E\n\u002B;* V143 tmp129      [V143    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n\u002B;* V144 tmp130      [V144    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;* V145 tmp131      [V145    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiParameter]\u003E\n\u002B;  V146 tmp132      [V146,T84] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiOperation\u002B\u003C\u003Ec\u003E\n\u002B;* V147 tmp133      [V147    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiResponses]\u003E\n\u002B;* V148 tmp134      [V148    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n\u002B;* V149 tmp135      [V149    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;* V150 tmp136      [V150    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiResponses\u003E\n\u002B;  V151 tmp137      [V151,T85] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiOperation\u002B\u003C\u003Ec\u003E\n\u002B;  V152 tmp138      [V152,T86] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiOperation\u002B\u003C\u003Ec\u003E\n\u002B;  V153 tmp139      [V153,T43] (  4,  3.50)     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.__Canon]\u003E\n\u002B;  V154 tmp140      [V154,T110] (  3,  1.50)     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.String]\u003E\n\u002B;  V155 tmp141      [V155,T23] (  5,  5   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Enumerable\u002BDistinctIterator\u00601[System.String]\u003E\n\u002B;* V156 tmp142      [V156,T123] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V157 tmp143      [V157,T111] (  3,  1.50)     ref  -\u003E  rdi         class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String[]\u003E\n\u002B;  V158 tmp144      [V158,T87] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiOperation\u002B\u003C\u003Ec\u003E\n\u002B;* V159 tmp145      [V159    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.String]\u003E\n\u002B;* V160 tmp146      [V160    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n\u002B;* V161 tmp147      [V161    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;* V162 tmp148      [V162    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,System.String]\u003E\n\u002B;  V163 tmp149      [V163,T28] (  3,  5   )   ubyte  -\u003E  r14         \u0022Inlining Arg\u0022\n\u002B;  V164 tmp150      [V164,T88] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiOperation\u002B\u003C\u003Ec\u003E\n\u002B;* V165 tmp151      [V165    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.OpenApi.OpenApiSecurityRequirement]\u003E\n\u002B;* V166 tmp152      [V166    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n\u002B;* V167 tmp153      [V167    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;* V168 tmp154      [V168    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiSecurityRequirement]\u003E\n\u002B;  V169 tmp155      [V169    ] (  3,  5   )     ref  -\u003E  [rbp-0x40]  do-not-enreg[X] addr-exposed \u0022field V07._hashSet (fldOffset=0x0)\u0022 P-DEP\n\u002B;  V170 tmp156      [V170    ] (  4,  9   )     ref  -\u003E  [rbp-0x38]  do-not-enreg[X] addr-exposed \u0022field V07._current (fldOffset=0x8)\u0022 P-DEP\n\u002B;  V171 tmp157      [V171    ] (  3,  5   )     int  -\u003E  [rbp-0x30]  do-not-enreg[X] addr-exposed \u0022field V07._version (fldOffset=0x10)\u0022 P-DEP\n\u002B;  V172 tmp158      [V172    ] (  3,  5   )     int  -\u003E  [rbp-0x2C]  do-not-enreg[X] addr-exposed \u0022field V07._index (fldOffset=0x14)\u0022 P-DEP\n\u002B;* V173 tmp159      [V173    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V126._hashSet (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V174 tmp160      [V174    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V126._current (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V175 tmp161      [V175,T114] (  2,  1   )     int  -\u003E  rdi         single-def \u0022field V126._version (fldOffset=0x10)\u0022 P-INDEP\n\u002B;* V176 tmp162      [V176    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V126._index (fldOffset=0x14)\u0022 P-INDEP\n\u002B;  V177 tmp163      [V177,T89] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V178 tmp164      [V178,T125] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;  V179 cse0        [V179,T112] (  3,  1.50)     ref  -\u003E  rax         \u0022CSE #15: conservative\u0022\n\u002B;  V180 cse1        [V180,T113] (  3,  1.50)     ref  -\u003E  r12         \u0022CSE #14: conservative\u0022\n\u002B;  V181 cse2        [V181,T29] (  3,  5   )     int  -\u003E  r12         \u0022CSE #23: moderate\u0022\n\u002B;  V182 cse3        [V182,T30] (  3,  5   )    long  -\u003E  r13         \u0022CSE #16: moderate\u0022\n\u002B;  V183 rat0        [V183,T02] (  5, 16.50)    long  -\u003E  [rbp-0x48]  \u0022Widened IV V11\u0022\n\u002B;  V184 rat1        [V184,T52] (  4,  2.25)     ref  -\u003E  rdi         \u0022replacement local\u0022\n\u002B;  V185 rat2        [V185,T115] (  2,  1   )    long  -\u003E  rax         \u0022CSE for expectedClsNode\u0022\n\u002B;  V186 rat3        [V186,T53] (  4,  2.25)     ref  -\u003E  rdi         \u0022replacement local\u0022\n\u002B;  V187 rat4        [V187,T116] (  2,  1   )    long  -\u003E  rax         \u0022CSE for expectedClsNode\u0022\n\u002B;  V188 rat5        [V188,T54] (  4,  2.25)     ref  -\u003E  rdi         \u0022replacement local\u0022\n\u002B;  V189 rat6        [V189,T117] (  2,  1   )    long  -\u003E  rax         \u0022CSE for expectedClsNode\u0022\n\u002B;  V190 rat7        [V190,T55] (  4,  2.25)     ref  -\u003E  rdi         \u0022replacement local\u0022\n\u002B;  V191 rat8        [V191,T118] (  2,  1   )    long  -\u003E  rax         \u0022CSE for expectedClsNode\u0022\n\u002B;  V192 rat9        [V192,T90] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V193 rat10       [V193,T91] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V194 rat11       [V194,T92] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V195 rat12       [V195,T93] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V196 rat13       [V196,T94] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V197 rat14       [V197,T95] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V198 rat15       [V198,T96] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V199 rat16       [V199,T97] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 56\n \n@@ -343,9 \u002B342,6 @@ G_M57166_IG13:\n        call     [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE\n        test     rax, rax\n        je       SHORT G_M57166_IG14\n-       mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Nodes.JsonArray\n-       cmp      qword ptr [r14], rdi\n-       je       SHORT G_M57166_IG14\n        mov      rdi, rax\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n        call     [r11]System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n@@ -354,7 \u002B350,7 @@ G_M57166_IG13:\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n        je       SHORT G_M57166_IG15\n-\t\t\t\t\t\t;; size=81 bbWeight=0.50 PerfScore 8.25\n\u002B\t\t\t\t\t\t;; size=66 bbWeight=0.50 PerfScore 6.62\n G_M57166_IG14:\n        mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.OpenApi.Utils:CheckArgumentNull[System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiExternalDocs]](System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiExternalDocs],System.String):System.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiExternalDocs]\n@@ -1154,5 \u002B1150,5 @@ G_M57166_IG89:\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 3843, prolog size 35, PerfScore 442.71, instruction count 763, allocated bytes for code 3843 (MethodHash=1de720b1) for method Microsoft.OpenApi.OpenApiOperation:SerializeAsV2(Microsoft.OpenApi.IOpenApiWriter):this (FullOpts)\n\u002B; Total bytes of code 3828, prolog size 35, PerfScore 441.08, instruction count 760, allocated bytes for code 3828 (MethodHash=1de720b1) for method Microsoft.OpenApi.OpenApiOperation:SerializeAsV2(Microsoft.OpenApi.IOpenApiWriter):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":3843,"DiffBytes":3828},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:Aggregate[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)","Category":"improvement","Description":"1,665 -\u003E 1,580 bytes (-85)","ExtraInfo":null,"Diff":"@@ -14,11 \u002B14,11 @@\n ;  V03 arg2         [V03,T04] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.__Canon,short]\u003E\n ;  V04 arg3         [V04,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T33] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n\u002B;  V06 loc0         [V06,T32] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n-;  V08 loc2         [V08,T34] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V09 loc3         [V09,T39] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V10 loc4         [V10,T40] (  3,  1.50)     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[short]\u003E\n\u002B;  V08 loc2         [V08,T33] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V09 loc3         [V09,T38] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V10 loc4         [V10,T39] (  3,  1.50)     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[short]\u003E\n ;  V11 OutArgs      [V11    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V12 tmp1         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V13 tmp2         [V13    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n@@ -44,22 \u002B44,22 @@\n ;* V33 tmp22        [V33    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V34 tmp23        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V35 tmp24        [V35    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V36 tmp25        [V36,T28] (  3,  2   )     int  -\u003E  rdi        \n-;  V37 tmp26        [V37,T06] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V38 tmp27        [V38    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V39 tmp28        [V39,T17] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V40 tmp29        [V40,T18] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V36 tmp25        [V36,T27] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V37 tmp26        [V37,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V38 tmp27        [V38    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V39 tmp28        [V39,T17] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V40 tmp29        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V41 tmp30        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V42 tmp31        [V42,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V43 tmp32        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V44 tmp33        [V44,T38] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V44 tmp33        [V44,T37] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V45 tmp34        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V46 tmp35        [V46,T26] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V47 tmp36        [V47,T19] (  3,  3   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V46 tmp35        [V46,T25] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V47 tmp36        [V47,T18] (  3,  3   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V48 tmp37        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V49 tmp38        [V49,T08] ( 10,  5   )     ref  -\u003E  [rbp-0x98]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;  V49 tmp38        [V49,T08] ( 10,  5   )     ref  -\u003E  [rbp-0x90]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V50 tmp39        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V51 tmp40        [V51,T09] ( 10,  5   )     ref  -\u003E  [rbp-0xA0]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;  V51 tmp40        [V51,T09] ( 10,  5   )     ref  -\u003E  [rbp-0x98]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V52 tmp41        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V53 tmp42        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V54 tmp43        [V54    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -68,11 \u002B68,11 @@\n ;* V57 tmp46        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[short]\u003E\n ;* V58 tmp47        [V58    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V59 tmp48        [V59    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V60 tmp49        [V60,T41] (  2,  1   )     ref  -\u003E  [rbp-0xA8]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V61 tmp50        [V61,T27] (  8,  2   )     ref  -\u003E  [rbp-0xB0]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V62 tmp51        [V62,T20] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V63 tmp52        [V63,T42] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[short]\u003E\n-;  V64 tmp53        [V64,T32] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V60 tmp49        [V60,T40] (  2,  1   )     ref  -\u003E  [rbp-0xA0]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V61 tmp50        [V61,T26] (  8,  2   )     ref  -\u003E  [rbp-0xA8]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V62 tmp51        [V62,T19] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V63 tmp52        [V63,T41] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[short]\u003E\n\u002B;  V64 tmp53        [V64,T31] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V65 tmp54        [V65    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V66 tmp55        [V66,T10] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V67 tmp56        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -80,29 \u002B80,29 @@\n ;* V69 tmp58        [V69    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V70 tmp59        [V70    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V71 tmp60        [V71    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;  V72 tmp61        [V72,T14] (  3,  2   )     ref  -\u003E  [rbp-0xB8]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V73 tmp62        [V73,T44] (  2,  1   )   ubyte  -\u003E  r12         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V74 tmp63        [V74,T45] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V75 tmp64        [V75,T46] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V19.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V76 tmp65        [V76,T47] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V19.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V72 tmp61        [V72,T14] (  3,  2   )     ref  -\u003E  [rbp-0xB0]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n\u002B       je       SHORT G_M55312_IG33\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      rax, rdi\n        test     rax, rax\n-       je       SHORT G_M55312_IG35\n\u002B       je       SHORT G_M55312_IG32\n\u002B       mov      rdi, rax\n\u002B       mov      esi, 1\n\u002B       mov      gword ptr [rbp-0x90], rax\n\u002B       mov      rcx, qword ptr [rax]\n\u002B       mov      rcx, qword ptr [rcx\u002B0x40]\n\u002B       call     [rcx\u002B0x28]System.Threading.CancellationTokenSource:Dispose(bool):this\n\u002B       mov      rdi, gword ptr [rbp-0x90]\n\u002B       mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n\u002B       call     [rax]System.GC:SuppressFinalize(System.Object)\n\u002B\t\t\t\t\t\t;; size=67 bbWeight=0.50 PerfScore 9.62\n\u002BG_M55312_IG32:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rdi, gword ptr [rsi\u002B0x10]\n\u002B       mov      rax, rdi\n\u002B       test     rax, rax\n\u002B       je       SHORT G_M55312_IG33\n        mov      rdi, rax\n        mov      esi, 1\n        mov      gword ptr [rbp-0x98], rax\n@@ -437,34 \u002B433,18 @@ G_M55312_IG34:\n        mov      rdi, gword ptr [rbp-0x98]\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=77 bbWeight=0.50 PerfScore 9.62\n-G_M55312_IG35:\n-       mov      rsi, gword ptr [rbp-0x88]\n-       mov      rdi, gword ptr [rsi\u002B0x10]\n-       mov      rax, rdi\n-       test     rax, rax\n-       je       SHORT G_M55312_IG36\n-       mov      rdi, rax\n-       mov      esi, 1\n-       mov      gword ptr [rbp-0xA0], rax\n-       mov      rcx, qword ptr [rax]\n-       mov      rcx, qword ptr [rcx\u002B0x40]\n-       call     [rcx\u002B0x28]System.Threading.CancellationTokenSource:Dispose(bool):this\n-       mov      rdi, gword ptr [rbp-0xA0]\n-       mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n-       call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.62\n-G_M55312_IG36:\n\u002B\t\t\t\t\t\t;; size=60 bbWeight=0.50 PerfScore 8.62\n\u002BG_M55312_IG33:\n        mov      rdi, qword ptr [r14\u002B0x18]\n        cmp      qword ptr [rdi\u002B0x08], 64\n-       jle      SHORT G_M55312_IG40\n\u002B       jle      SHORT G_M55312_IG37\n \t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 2.50\n-G_M55312_IG37:\n\u002BG_M55312_IG34:\n        mov      rsi, qword ptr [rdi\u002B0x40]\n        test     rsi, rsi\n-       je       SHORT G_M55312_IG40\n\u002B       je       SHORT G_M55312_IG37\n \t\t\t\t\t\t;; size=9 bbWeight=0.40 PerfScore 1.30\n-G_M55312_IG38:\n\u002BG_M55312_IG35:\n        mov      rdi, r15\n        mov      rdx, r13\n        mov      rcx, r12\n@@ -473,7 \u002B453,7 @@ G_M55312_IG38:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateAggregateToCollectionResultCursor[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[short],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[short]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M55312_IG39:\n\u002BG_M55312_IG36:\n        add      rsp, 200\n        pop      rbx\n        pop      r12\n@@ -483,15 \u002B463,15 @@ G_M55312_IG39:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M55312_IG40:\n\u002BG_M55312_IG37:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      SHORT G_M55312_IG38\n\u002B       jmp      SHORT G_M55312_IG35\n \t\t\t\t\t\t;; size=30 bbWeight=0.18 PerfScore 1.08\n-G_M55312_IG41:\n\u002BG_M55312_IG38:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -499,38 \u002B479,38 @@ G_M55312_IG41:\n        mov      rdi, rax\n        jmp      G_M55312_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M55312_IG42:\n\u002BG_M55312_IG39:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M55312_IG32\n\u002B       jmp      G_M55312_IG29\n \t\t\t\t\t\t;; size=33 bbWeight=0.18 PerfScore 1.08\n-G_M55312_IG43:\n\u002BG_M55312_IG40:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M55312_IG24\n\u002B       jmp      G_M55312_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.10 PerfScore 0.60\n-G_M55312_IG44:\n\u002BG_M55312_IG41:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M55312_IG45:\n\u002BG_M55312_IG42:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M55312_IG46:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M55312_IG48\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M55312_IG43:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M55312_IG45\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M55312_IG47\n\u002B       je       SHORT G_M55312_IG44\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -539,12 \u002B519,12 @@ G_M55312_IG46:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M55312_IG47:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M55312_IG44:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x10]\n        test     r15, r15\n-       je       SHORT G_M55312_IG48\n\u002B       je       SHORT G_M55312_IG45\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -553,24 \u002B533,24 @@ G_M55312_IG47:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M55312_IG48:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M55312_IG45:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M55312_IG49:\n\u002BG_M55312_IG46:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M55312_IG50:\n\u002BG_M55312_IG47:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M55312_IG51:\n-       cmp      gword ptr [rbp-0xB0], 0\n-       je       SHORT G_M55312_IG53\n-       mov      rsi, gword ptr [rbp-0xB0]\n\u002BG_M55312_IG48:\n\u002B       cmp      gword ptr [rbp-0xA8], 0\n\u002B       je       SHORT G_M55312_IG50\n\u002B       mov      rsi, gword ptr [rbp-0xA8]\n        mov      r13, gword ptr [rsi\u002B0x08]\n        test     r13, r13\n-       je       SHORT G_M55312_IG52\n\u002B       je       SHORT G_M55312_IG49\n        mov      rdi, r13\n        mov      esi, 1\n        mov      rax, qword ptr [r13]\n@@ -580,11 \u002B560,11 @@ G_M55312_IG51:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M55312_IG52:\n-       mov      rsi, gword ptr [rbp-0xB0]\n\u002BG_M55312_IG49:\n\u002B       mov      rsi, gword ptr [rbp-0xA8]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M55312_IG53\n\u002B       je       SHORT G_M55312_IG50\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -594,13 \u002B574,13 @@ G_M55312_IG52:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M55312_IG53:\n\u002BG_M55312_IG50:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M55312_IG54:\n\u002BG_M55312_IG51:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1665, prolog size 66, PerfScore 184.71, instruction count 387, allocated bytes for code 1665 (MethodHash=7f1127ef) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:Aggregate[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)\n\u002B; Total bytes of code 1580, prolog size 66, PerfScore 175.33, instruction count 373, allocated bytes for code 1580 (MethodHash=7f1127ef) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:Aggregate[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1665,"DiffBytes":1580},{"Assembly":"Nest.dasm","Method":"Nest.Extensions\u002B\u003CForEachAsync\u003Ed__29\u00602[int,System.Nullable\u00601[int]]:MoveNext():this (FullOpts)","Category":"improvement","Description":"1,483 -\u003E 1,434 bytes (-49)","ExtraInfo":null,"Diff":"@@ -31,9 \u002B31,9 @@\n ;* V20 tmp7         [V20    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;* V21 tmp8         [V21    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;  V22 tmp9         [V22,T17] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Threading.Tasks.Task]\u003E\n-;  V23 tmp10        [V23,T45] (  2,  0   )     ref  -\u003E  rsi         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V23 tmp10        [V23,T44] (  2,  0   )     ref  -\u003E  rsi         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n ;  V24 tmp11        [V24,T18] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.SemaphoreSlim\u003E\n-;  V25 tmp12        [V25,T46] (  2,  0   )     ref  -\u003E  rsi         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V25 tmp12        [V25,T45] (  2,  0   )     ref  -\u003E  rsi         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n ;  V26 tmp13        [V26,T09] (  3, 20   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Threading.Tasks.Task[]\u003E\n ;  V27 tmp14        [V27,T07] (  4, 24   )     int  -\u003E  r14         \u0022Inline stloc first use temp\u0022\n ;  V28 tmp15        [V28,T02] (  3, 32   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n@@ -47,32 \u002B47,32 @@\n ;* V36 tmp23        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Threading.Tasks.Task]\u003E\n ;* V37 tmp24        [V37    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.Threading.Tasks.Task]\u003E\n ;* V38 tmp25        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Threading.Tasks.Task]\u003E\n-;* V39 tmp26        [V39,T41] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V40 tmp27        [V40,T27] (  2,  4   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;* V39 tmp26        [V39,T40] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V40 tmp27        [V40,T26] (  2,  4   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;* V41 tmp28        [V41    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V42 tmp29        [V42    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V43 tmp30        [V43    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V44 tmp31        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Runtime.CompilerServices.IAsyncStateMachineBox\u003E\n ;  V45 tmp32        [V45,T20] (  3,  6   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n-;  V46 tmp33        [V46,T28] (  2,  4   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;  V46 tmp33        [V46,T27] (  2,  4   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;* V47 tmp34        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.AggregateException\u003E\n-;  V48 tmp35        [V48,T36] (  2,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.AggregateException\u003E\n\u002B;  V48 tmp35        [V48,T34] (  2,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.AggregateException\u003E\n ;* V49 tmp36        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.AggregateException\u003E\n-;  V50 tmp37        [V50,T37] (  3,  3   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.AggregateException\u003E\n\u002B;  V50 tmp37        [V50,T35] (  3,  3   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.AggregateException\u003E\n ;* V51 tmp38        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n ;  V52 tmp39        [V52,T12] (  4,  8   )     ref  -\u003E  r15         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.AggregateException\u003E\n-;  V53 tmp40        [V53,T29] (  2,  4   )     ref  -\u003E  r14         class-hnd \u0022dup spill\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n-;  V54 tmp41        [V54,T25] (  5,  5   )     ref  -\u003E  r14        \n\u002B;  V53 tmp40        [V53,T28] (  2,  4   )     ref  -\u003E  rsi         class-hnd \u0022dup spill\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n\u002B;  V54 tmp41        [V54,T25] (  4,  4   )     ref  -\u003E  rsi        \n ;  V55 tmp42        [V55,T13] (  4,  8   )     ref  -\u003E  r14         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n ;* V56 tmp43        [V56    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n ;  V57 tmp44        [V57,T21] (  3,  6   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Exception[]\u003E\n-;  V58 tmp45        [V58    ] (  3,  3   )   ubyte  -\u003E  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V58 tmp45        [V58    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V59 tmp46        [V59    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V60 tmp47        [V60,T35] (  4,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Exception\u003E\n-;  V61 tmp48        [V61,T26] (  4,  4   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Exception]\u003E\n\u002B;  V60 tmp47        [V60,T39] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Exception\u003E\n\u002B;* V61 tmp48        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Exception]\u003E\n ;* V62 tmp49        [V62    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V63 tmp50        [V63,T14] (  4,  8   )     ref  -\u003E  r15         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Threading.Tasks.Task]\u003E\n-;  V64 tmp51        [V64,T39] (  3,  3   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n\u002B;  V64 tmp51        [V64,T37] (  3,  3   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n ;  V65 tmp52        [V65,T22] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n ;* V66 tmp53        [V66    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V67 tmp54        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -81,17 \u002B81,17 @@\n ;* V70 tmp57        [V70    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n ;* V71 tmp58        [V71    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u002BConfiguredTaskAwaiter\u003E\n ;* V72 tmp59        [V72    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n-;* V73 tmp60        [V73,T42] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V74 tmp61        [V74,T30] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n\u002B;* V73 tmp60        [V73,T41] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V74 tmp61        [V74,T29] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n ;* V75 tmp62        [V75    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V76 tmp63        [V76    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V77 tmp64        [V77    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V78 tmp65        [V78    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Runtime.CompilerServices.IAsyncStateMachineBox\u003E\n ;  V79 tmp66        [V79,T23] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n-;  V80 tmp67        [V80,T34] (  2,  4   )     int  -\u003E  rax         \u0022Inlining Arg\u0022\n\u002B;  V80 tmp67        [V80,T33] (  2,  4   )     int  -\u003E  rax         \u0022Inlining Arg\u0022\n ;  V81 tmp68        [V81,T15] (  4,  8   )   byref  -\u003E  rdi         single-def \u0022Inlining Arg\u0022\n-;* V82 tmp69        [V82,T43] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[SF] ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.Tasks.VoidTaskResult\u003E\n-;  V83 tmp70        [V83,T31] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Threading.Tasks.VoidTaskResult]\u003E\n\u002B;* V82 tmp69        [V82,T42] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[SF] ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.Tasks.VoidTaskResult\u003E\n... diff truncated; middle omitted ...\n@@ -381,16 \u002B365,16 @@ G_M35842_IG24:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x28], edi\n        test     byte  ptr [rbp-0x28], 4\n-       jne      SHORT G_M35842_IG25\n\u002B       jne      SHORT G_M35842_IG23\n        mov      rdi, gword ptr [rbp-0x30]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M35842_IG13\n \t\t\t\t\t\t;; size=64 bbWeight=1 PerfScore 16.75\n-G_M35842_IG25:\n\u002BG_M35842_IG23:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x1C], edi\n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M35842_IG26:\n\u002BG_M35842_IG24:\n        mov      rbx, bword ptr [rbp-0x50]\n        mov      dword ptr [rbx\u002B0x48], edi\n        lea      rdi, bword ptr [rbx\u002B0x58]\n@@ -407,20 \u002B391,20 @@ G_M35842_IG26:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.Threading.Tasks.Task]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      SHORT G_M35842_IG30\n\u002B       jmp      SHORT G_M35842_IG28\n \t\t\t\t\t\t;; size=76 bbWeight=1 PerfScore 16.75\n-G_M35842_IG27:\n\u002BG_M35842_IG25:\n        mov      edi, 20\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M35842_IG28:\n\u002BG_M35842_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M35842_IG29:\n\u002BG_M35842_IG27:\n        mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.ExceptionServices.ExceptionDispatchInfo:Capture(System.Exception):System.Runtime.ExceptionServices.ExceptionDispatchInfo\n        call     [rax]System.Runtime.ExceptionServices.ExceptionDispatchInfo:Capture(System.Exception):System.Runtime.ExceptionServices.ExceptionDispatchInfo\n@@ -430,22 \u002B414,22 @@ G_M35842_IG29:\n        call     [rax]System.Runtime.ExceptionServices.ExceptionDispatchInfo:Throw():this\n        int3     \n \t\t\t\t\t\t;; size=33 bbWeight=0 PerfScore 0.00\n-G_M35842_IG30:\n-       call     G_M35842_IG38\n-       jmp      G_M35842_IG36\n\u002BG_M35842_IG28:\n\u002B       call     G_M35842_IG36\n\u002B       jmp      G_M35842_IG34\n \t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.00\n-G_M35842_IG31:\n\u002BG_M35842_IG29:\n        cmp      dword ptr [rbp-0x1C], 0\n-       jge      SHORT G_M35842_IG32\n\u002B       jge      SHORT G_M35842_IG30\n        mov      rbx, bword ptr [rbp-0x50]\n        cmp      gword ptr [rbx\u002B0x38], 0\n-       je       SHORT G_M35842_IG32\n\u002B       je       SHORT G_M35842_IG30\n        mov      rdi, gword ptr [rbx\u002B0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        nop      \n \t\t\t\t\t\t;; size=35 bbWeight=1 PerfScore 11.50\n-G_M35842_IG32:\n\u002BG_M35842_IG30:\n        xor      rdi, rdi\n        mov      rbx, bword ptr [rbp-0x50]\n        mov      gword ptr [rbx\u002B0x38], rdi\n@@ -457,12 \u002B441,12 @@ G_M35842_IG32:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x38], edi\n        test     byte  ptr [rbp-0x38], 4\n-       jne      SHORT G_M35842_IG33\n\u002B       jne      SHORT G_M35842_IG31\n        mov      rdi, gword ptr [rbp-0x40]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M35842_IG07\n \t\t\t\t\t\t;; size=60 bbWeight=1 PerfScore 17.75\n-G_M35842_IG33:\n\u002BG_M35842_IG31:\n        mov      rbx, bword ptr [rbp-0x50]\n        mov      dword ptr [rbx\u002B0x48], 1\n        lea      rdi, bword ptr [rbx\u002B0x68]\n@@ -478,30 \u002B462,30 @@ G_M35842_IG33:\n        lea      rdi, [rbp-0x40]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u002BConfiguredTaskAwaiter](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u002BConfiguredTaskAwaiter](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      SHORT G_M35842_IG36\n\u002B       jmp      SHORT G_M35842_IG34\n \t\t\t\t\t\t;; size=70 bbWeight=1 PerfScore 16.50\n-G_M35842_IG34:\n\u002BG_M35842_IG32:\n        mov      dword ptr [rbx\u002B0x48], -2\n        xor      rdi, rdi\n        mov      gword ptr [rbx\u002B0x28], rdi\n        lea      rdi, bword ptr [rbx\u002B0x50]\n        cmp      gword ptr [rdi], 0\n-       je       SHORT G_M35842_IG35\n\u002B       je       SHORT G_M35842_IG33\n        mov      rdi, gword ptr [rdi]\n        xor      esi, esi\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.Threading.Tasks.VoidTaskResult],System.Threading.Tasks.VoidTaskResult)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.Threading.Tasks.VoidTaskResult],System.Threading.Tasks.VoidTaskResult)\n-       jmp      SHORT G_M35842_IG36\n\u002B       jmp      SHORT G_M35842_IG34\n \t\t\t\t\t\t;; size=42 bbWeight=1 PerfScore 13.25\n-G_M35842_IG35:\n\u002BG_M35842_IG33:\n        mov      rsi, 0xD1FFAB1E      ; const ptr\n        mov      rsi, gword ptr [rsi]\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 3.25\n-G_M35842_IG36:\n\u002BG_M35842_IG34:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M35842_IG37:\n\u002BG_M35842_IG35:\n        add      rsp, 56\n        pop      rbx\n        pop      r14\n@@ -509,28 \u002B493,28 @@ G_M35842_IG37:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M35842_IG38:\n\u002BG_M35842_IG36:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 1.00\n-G_M35842_IG39:\n\u002BG_M35842_IG37:\n        cmp      dword ptr [rbp-0x1C], 0\n-       jge      SHORT G_M35842_IG40\n\u002B       jge      SHORT G_M35842_IG38\n        mov      rbx, bword ptr [rbp-0x50]\n        mov      rdi, gword ptr [rbx\u002B0x38]\n        test     rdi, rdi\n-       je       SHORT G_M35842_IG40\n\u002B       je       SHORT G_M35842_IG38\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        nop      \n \t\t\t\t\t\t;; size=33 bbWeight=1 PerfScore 9.75\n-G_M35842_IG40:\n\u002BG_M35842_IG38:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M35842_IG41:\n\u002BG_M35842_IG39:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M35842_IG42:\n\u002BG_M35842_IG40:\n        mov      rsi, rdi\n        mov      rbx, bword ptr [rbp-0x50]\n        mov      rax, gword ptr [rbx\u002B0x20]\n@@ -539,10 \u002B523,10 @@ G_M35842_IG42:\n        call     CORINFO_HELP_RETHROW\n        int3     \n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M35842_IG43:\n\u002BG_M35842_IG41:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M35842_IG44:\n\u002BG_M35842_IG42:\n        mov      rsi, rdi\n        mov      rbx, bword ptr [rbp-0x50]\n        mov      dword ptr [rbx\u002B0x48], -2\n@@ -551,12 \u002B535,12 @@ G_M35842_IG44:\n        lea      rdi, bword ptr [rbx\u002B0x50]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder:SetException(System.Exception):this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder:SetException(System.Exception):this\n-       lea      rax, G_M35842_IG36\n\u002B       lea      rax, G_M35842_IG34\n \t\t\t\t\t\t;; size=43 bbWeight=0 PerfScore 0.00\n-G_M35842_IG45:\n\u002BG_M35842_IG43:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1483, prolog size 35, PerfScore 714.83, instruction count 358, allocated bytes for code 1483 (MethodHash=701273fd) for method Nest.Extensions\u002B\u003CForEachAsync\u003Ed__29\u00602[int,System.Nullable\u00601[int]]:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 1434, prolog size 35, PerfScore 700.08, instruction count 346, allocated bytes for code 1434 (MethodHash=701273fd) for method Nest.Extensions\u002B\u003CForEachAsync\u003Ed__29\u00602[int,System.Nullable\u00601[int]]:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1483,"DiffBytes":1434},{"Assembly":"OpenAI.dasm","Method":"OpenAI.Moderations.ModerationClient:ClassifyText(System.String,System.Threading.CancellationToken):System.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]:this (FullOpts)","Category":"improvement","Description":"445 -\u003E 393 bytes (-52)","ExtraInfo":null,"Diff":"@@ -9,26 \u002B9,26 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T01] (  5,  5   )     ref  -\u003E  rbx         this class-hnd single-def \u003COpenAI.Moderations.ModerationClient\u003E\n-;  V01 arg1         [V01,T03] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V01 arg1         [V01,T02] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.String\u003E\n ;* V02 arg2         [V02    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;  V03 loc0         [V03    ] (  3,  3   )     ref  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003COpenAI.Moderations.ModerationOptions\u003E\n-;  V04 loc1         [V04,T14] (  3,  0   )     ref  -\u003E  [rbp-0x40]  class-hnd exact EH-live single-def \u003CSystem.ClientModel.BinaryContent\u002BModelBinaryContent\u00601[OpenAI.Moderations.ModerationOptions]\u003E\n-;  V05 loc2         [V05,T09] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u003E\n-;  V06 loc3         [V06,T12] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]\u003E\n\u002B;  V04 loc1         [V04,T13] (  3,  0   )     ref  -\u003E  [rbp-0x40]  class-hnd exact EH-live single-def \u003CSystem.ClientModel.BinaryContent\u002BModelBinaryContent\u00601[OpenAI.Moderations.ModerationOptions]\u003E\n\u002B;  V05 loc2         [V05,T08] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u003E\n\u002B;  V06 loc3         [V06,T10] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V08 tmp1         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003COpenAI.Moderations.ModerationOptions\u003E\n ;* V09 tmp2         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003COpenAI.Moderations.ModerationResult\u003E\n-;  V10 tmp3         [V10,T04] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Moderations.ModerationOptions\u003E\n\u002B;  V10 tmp3         [V10,T03] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Moderations.ModerationOptions\u003E\n ;  V11 tmp4         [V11,T05] (  2,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.ClientModel.Primitives.ModelReaderWriterOptions\u003E\n ;* V12 tmp5         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V13 tmp6         [V13,T13] (  2,  2   )     ref  -\u003E  r13        \n\u002B;  V13 tmp6         [V13,T11] (  2,  2   )     ref  -\u003E  r13        \n ;  V14 tmp7         [V14,T00] (  6, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ClientModel.BinaryContent\u002BModelBinaryContent\u00601[OpenAI.Moderations.ModerationOptions]\u003E\n ;* V15 tmp8         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V16 tmp9         [V16,T02] (  4,  7   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Moderations.ModerationResultCollection\u003E\n-;  V17 tmp10        [V17    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V18 tmp11        [V18,T11] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003COpenAI.Moderations.ModerationResult\u003E\n-;  V19 tmp12        [V19,T08] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[OpenAI.Moderations.ModerationResult]\u003E\n-;  V20 tmp13        [V20,T10] (  6,  2.50)     ref  -\u003E  registers   class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.ClientModel.Internal.UnsafeBufferSequence\u002BReader\u003E\n\u002B;  V16 tmp9         [V16,T04] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003COpenAI.Moderations.ModerationResultCollection\u003E\n\u002B;  V17 tmp10        [V17    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V18 tmp11        [V18,T12] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003COpenAI.Moderations.ModerationResult\u003E\n\u002B;* V19 tmp12        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[OpenAI.Moderations.ModerationResult]\u003E\n\u002B;  V20 tmp13        [V20,T09] (  6,  2.50)     ref  -\u003E  registers   class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.ClientModel.Internal.UnsafeBufferSequence\u002BReader\u003E\n ;  V21 tmp14        [V21,T06] (  2,  2   )     ref  -\u003E  r14         single-def \u0022field V02._source (fldOffset=0x0)\u0022 P-INDEP\n ;  V22 tmp15        [V22,T07] (  2,  4   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n ;\n@@ -91,61 \u002B91,42 @@ G_M20851_IG03:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for OpenAI.Moderations.ModerationResultCollection:op_Explicit(System.ClientModel.ClientResult):OpenAI.Moderations.ModerationResultCollection\n        call     [rax]OpenAI.Moderations.ModerationResultCollection:op_Explicit(System.ClientModel.ClientResult):OpenAI.Moderations.ModerationResultCollection\n-       mov      r15, rax\n-       test     r15, r15\n-       je       SHORT G_M20851_IG07\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[OpenAI.Moderations.ModerationResult]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M20851_IG05\n-\t\t\t\t\t\t;; size=90 bbWeight=1 PerfScore 21.50\n-G_M20851_IG04:\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M20851_IG06\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M20851_IG05:\n\u002B       je       SHORT G_M20851_IG04\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[OpenAI.Moderations.ModerationResult](System.Collections.Generic.IEnumerable\u00601[OpenAI.Moderations.ModerationResult],byref):OpenAI.Moderations.ModerationResult\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M20851_IG06:\n-       mov      rdx, gword ptr [rbx\u002B0x08]\n        mov      rsi, rax\n\u002B       mov      rdx, gword ptr [rbx\u002B0x08]\n        mov      rdi, 0xD1FFAB1E      ; System.ClientModel.ClientResult:FromValue[OpenAI.Moderations.ModerationResult](OpenAI.Moderations.ModerationResult,System.ClientModel.Primitives.PipelineResponse):System.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]\n        mov      rax, 0xD1FFAB1E      ; code for System.ClientModel.ClientResult:FromValue[System.__Canon](System.__Canon,System.ClientModel.Primitives.PipelineResponse):System.ClientModel.ClientResult\u00601[System.__Canon]\n        call     [rax]System.ClientModel.ClientResult:FromValue[System.__Canon](System.__Canon,System.ClientModel.Primitives.PipelineResponse):System.ClientModel.ClientResult\u00601[System.__Canon]\n        mov      rbx, rax\n-       jmp      SHORT G_M20851_IG08\n-\t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 8.00\n-G_M20851_IG07:\n\u002B       jmp      SHORT G_M20851_IG05\n\u002B\t\t\t\t\t\t;; size=120 bbWeight=1 PerfScore 28.50\n\u002BG_M20851_IG04:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M20851_IG08:\n\u002BG_M20851_IG05:\n        mov      rdi, gword ptr [r12\u002B0x20]\n        test     rdi, rdi\n-       je       SHORT G_M20851_IG10\n\u002B       je       SHORT G_M20851_IG07\n \t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.25\n-G_M20851_IG09:\n\u002BG_M20851_IG06:\n        xor      rax, rax\n        mov      gword ptr [r12\u002B0x20], rax\n        mov      rax, 0xD1FFAB1E      ; code for System.ClientModel.Internal.UnsafeBufferSequence\u002BReader:Dispose():this\n        call     [rax]System.ClientModel.Internal.UnsafeBufferSequence\u002BReader:Dispose():this\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 2.25\n-G_M20851_IG10:\n\u002BG_M20851_IG07:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M20851_IG11:\n\u002BG_M20851_IG08:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -155,27 \u002B136,27 @@ G_M20851_IG11:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M20851_IG12:\n\u002BG_M20851_IG09:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M20851_IG13:\n\u002BG_M20851_IG10:\n        mov      rdi, gword ptr [rbp-0x40]\n        mov      rax, gword ptr [rdi\u002B0x20]\n        test     rax, rax\n-       je       SHORT G_M20851_IG14\n\u002B       je       SHORT G_M20851_IG11\n        xor      rcx, rcx\n        mov      gword ptr [rdi\u002B0x20], rcx\n        mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for System.ClientModel.Internal.UnsafeBufferSequence\u002BReader:Dispose():this\n        call     [rax]System.ClientModel.Internal.UnsafeBufferSequence\u002BReader:Dispose():this\n \t\t\t\t\t\t;; size=34 bbWeight=0 PerfScore 0.00\n-G_M20851_IG14:\n\u002BG_M20851_IG11:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M20851_IG15:\n\u002BG_M20851_IG12:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 445, prolog size 38, PerfScore 78.25, instruction count 112, allocated bytes for code 445 (MethodHash=8a37ae8c) for method OpenAI.Moderations.ModerationClient:ClassifyText(System.String,System.Threading.CancellationToken):System.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]:this (FullOpts)\n\u002B; Total bytes of code 393, prolog size 38, PerfScore 70.25, instruction count 99, allocated bytes for code 393 (MethodHash=8a37ae8c) for method OpenAI.Moderations.ModerationClient:ClassifyText(System.String,System.Threading.CancellationToken):System.ClientModel.ClientResult\u00601[OpenAI.Moderations.ModerationResult]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":445,"DiffBytes":393},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Core.Health.Alerts.HistoryService:ListAutoPaging(System.String,Stripe.V2.Core.Health.Alerts.HistoryListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.Health.AlertHistoryEntry]:this (FullOpts)","Category":"improvement","Description":"513 -\u003E 464 bytes (-49)","ExtraInfo":null,"Diff":"@@ -9,33 \u002B9,32 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T05] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Core.Health.Alerts.HistoryService\u003E\n-;  V01 arg1         [V01,T08] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Core.Health.Alerts.HistoryListOptions\u003E\n-;  V03 arg3         [V03,T07] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T07] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V02 arg2         [V02,T08] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Core.Health.Alerts.HistoryListOptions\u003E\n\u002B;  V03 arg3         [V03,T06] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T11] (  3,  2   )     ref  -\u003E  r15         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.Health.AlertHistoryEntry]\u003E\n ;  V06 tmp2         [V06,T02] (  4,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V07 tmp3         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V08 tmp4         [V08,T12] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;  V09 tmp5         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.Health.AlertHistoryEntry]\u003E\n-;* V10 tmp6         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp8         [V12,T03] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.Health.AlertHistoryEntry]\u003E\n-;  V13 tmp9         [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.Health.AlertHistoryEntry]\u003E\n-;* V14 tmp10        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp11        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp12        [V16,T04] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.Health.AlertHistoryEntry]\u003E\n-;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V07._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp14        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp15        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp16        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp17        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 tmp18        [V22,T09] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V23 cse0         [V23,T10] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #02: moderate\u0022\n-;  V24 rat0         [V24,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T15] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T16] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.Health.AlertHistoryEntry]\u003E\n\u002B;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp6         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp7         [V11,T03] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.Health.AlertHistoryEntry]\u003E\n\u002B;  V12 tmp8         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.Health.AlertHistoryEntry]\u003E\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp11        [V15,T04] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.Health.AlertHistoryEntry]\u003E\n\u002B;* V16 tmp12        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V07._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp14        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp15        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp16        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 tmp17        [V21,T09] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V22 cse0         [V22,T10] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #02: moderate\u0022\n\u002B;  V23 rat0         [V23,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T15] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n@@ -49,8 \u002B48,8 @@ G_M42838_IG01:\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rdx\n-       mov      r14, rcx\n\u002B       mov      r14, rdx\n\u002B       mov      r15, rcx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M42838_IG02:\n        mov      rdi, rsi\n@@ -69,49 \u002B68,41 @@ G_M42838_IG02:\n        je       G_M42838_IG04\n \t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 12.50\n G_M42838_IG03:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.Health.AlertHistoryEntry]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n-       mov      eax, dword ptr [rax\u002B0x10]\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, dword ptr [rax\u002B0x10]\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x28]\n\u002B       lea      rdi, bword ptr [r14\u002B0x28]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.Health.AlertHistoryEntry]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        mov      dword ptr [r15\u002B0x28], -2\n-       mov      r14d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r15\u002B0x2C], r14d\n\u002B       mov      dword ptr [r15\u002B0x2C], r12d\n        lea      rdi, bword ptr [r15\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M42838_IG05\n-\t\t\t\t\t\t;; size=212 bbWeight=0.50 PerfScore 16.00\n\u002B\t\t\t\t\t\t;; size=164 bbWeight=0.50 PerfScore 12.75\n G_M42838_IG04:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.Health.AlertHistoryEntry]\n        call     CORINFO_HELP_NEWSFAST\n@@ -134,10 \u002B125,10 @@ G_M42838_IG04:\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n@@ -145,12 \u002B136,12 @@ G_M42838_IG04:\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        mov      dword ptr [r15\u002B0x28], -2\n-       mov      r14d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r15\u002B0x2C], r14d\n\u002B       mov      ebx, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r15\u002B0x2C], ebx\n        lea      rdi, bword ptr [r15\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=181 bbWeight=0.50 PerfScore 13.12\n\u002B\t\t\t\t\t\t;; size=180 bbWeight=0.50 PerfScore 13.12\n G_M42838_IG05:\n        mov      rax, r15\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n@@ -165,5 \u002B156,5 @@ G_M42838_IG06:\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 513, prolog size 16, PerfScore 54.38, instruction count 113, allocated bytes for code 513 (MethodHash=9de858a9) for method Stripe.V2.Core.Health.Alerts.HistoryService:ListAutoPaging(System.String,Stripe.V2.Core.Health.Alerts.HistoryListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.Health.AlertHistoryEntry]:this (FullOpts)\n\u002B; Total bytes of code 464, prolog size 16, PerfScore 51.12, instruction count 105, allocated bytes for code 464 (MethodHash=9de858a9) for method Stripe.V2.Core.Health.Alerts.HistoryService:ListAutoPaging(System.String,Stripe.V2.Core.Health.Alerts.HistoryListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.Health.AlertHistoryEntry]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":513,"DiffBytes":464},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.Internal.Data.DatabaseCommand\u002B\u003CExecuteAsync\u003Ed__12\u00601[System.Nullable\u00601[int]]:MoveNext():this (FullOpts)","Category":"same-size","Description":"4,316 -\u003E 4,316 bytes (0)","ExtraInfo":null,"Diff":"@@ -416,7 \u002B416,7 @@ G_M55851_IG14:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        cmp      byte  ptr [rax\u002B0x10], 0\n        jne      SHORT G_M55851_IG15\n        mov      rsi, gword ptr [rbx\u002B0x08]","Truncated":true,"BaseBytes":4316,"DiffBytes":4316},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher:CreateRightFragmentQuery(System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper):System.Data.Entity.Core.Mapping.ViewGeneration.QueryRewriting.FragmentQuery:this (FullOpts)","Category":"improvement","Description":"342 -\u003E 234 bytes (-108)","ExtraInfo":null,"Diff":"@@ -14,19 \u002B14,19 @@\n ;  V03 tmp1         [V03,T05] (  2,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n ;  V04 tmp2         [V04,T06] (  2,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.RoleBoolean\u003E\n ;* V05 tmp3         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\u003E\n-;  V06 tmp4         [V06,T01] (  4,  7   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n-;  V07 tmp5         [V07    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V06 tmp4         [V06,T01] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n\u002B;  V07 tmp5         [V07    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V08 tmp6         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V09 tmp7         [V09,T11] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\u003E\n-;  V10 tmp8         [V10,T09] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n\u002B;  V09 tmp7         [V09,T10] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\u003E\n\u002B;* V10 tmp8         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n ;* V11 tmp9         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\u003E\n-;  V12 tmp10        [V12,T02] (  4,  7   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n-;  V13 tmp11        [V13    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V12 tmp10        [V12,T02] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n\u002B;  V13 tmp11        [V13    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V14 tmp12        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V15 tmp13        [V15,T08] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\u003E\n-;  V16 tmp14        [V16,T10] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n\u002B;  V15 tmp13        [V15,T08] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\u003E\n\u002B;* V16 tmp14        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n ;* V17 tmp15        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.ViewgenContext\u003E\n-;  V18 tmp16        [V18,T12] (  3,  2   )     ref  -\u003E  rdx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellQuery\u003E\n\u002B;  V18 tmp16        [V18,T09] (  3,  2   )     ref  -\u003E  rdx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellQuery\u003E\n ;  V19 tmp17        [V19,T07] (  2,  4   )     int  -\u003E  rdi         \u0022Inlining Arg\u0022\n ;  V20 tmp18        [V20,T03] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;\n@@ -44,34 \u002B44,15 @@ G_M25101_IG01:\n        mov      rbx, rsi\n \t\t\t\t\t\t;; size=23 bbWeight=1 PerfScore 6.25\n G_M25101_IG02:\n-       mov      r14, gword ptr [rbx\u002B0x28]\n-       test     r14, r14\n-       je       G_M25101_IG13\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M25101_IG04\n-\t\t\t\t\t\t;; size=43 bbWeight=1 PerfScore 8.25\n-G_M25101_IG03:\n-       lea      rsi, [rbp-0x28]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M25101_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M25101_IG04:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x28]\n\u002B       test     rsi, rsi\n\u002B       je       G_M25101_IG07\n        lea      rdx, [rbp-0x28]\n-       mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell],byref):System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M25101_IG05:\n        cmp      byte  ptr [rbp-0x28], 0\n-       je       G_M25101_IG14\n\u002B       je       G_M25101_IG08\n        mov      rdi, gword ptr [rax\u002B0x18]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x40]\n@@ -81,55 \u002B62,36 @@ G_M25101_IG05:\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper:CreateRoleBoolean():System.Data.Entity.Core.Mapping.ViewGeneration.Structures.RoleBoolean:this\n        call     [rax]System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper:CreateRoleBoolean():System.Data.Entity.Core.Mapping.ViewGeneration.Structures.RoleBoolean:this\n        mov      r13, rax\n-       mov      rbx, gword ptr [rbx\u002B0x28]\n-       test     rbx, rbx\n-       je       G_M25101_IG13\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n\u002B       mov      rsi, gword ptr [rbx\u002B0x28]\n\u002B       test     rsi, rsi\n        je       SHORT G_M25101_IG07\n-\t\t\t\t\t\t;; size=88 bbWeight=1 PerfScore 23.25\n-G_M25101_IG06:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M25101_IG08\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M25101_IG07:\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell],byref):System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M25101_IG08:\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       SHORT G_M25101_IG14\n\u002B       je       SHORT G_M25101_IG08\n        mov      rdi, gword ptr [r15\u002B0x08]\n        mov      edi, dword ptr [rdi\u002B0x58]\n        cmp      byte  ptr [rax], al\n        test     edi, edi\n-       jne      SHORT G_M25101_IG10\n-\t\t\t\t\t\t;; size=19 bbWeight=1 PerfScore 9.25\n-G_M25101_IG09:\n\u002B       jne      SHORT G_M25101_IG04\n\u002B\t\t\t\t\t\t;; size=138 bbWeight=1 PerfScore 38.75\n\u002BG_M25101_IG03:\n        mov      rdx, gword ptr [rax\u002B0x10]\n-       jmp      SHORT G_M25101_IG11\n\u002B       jmp      SHORT G_M25101_IG05\n \t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 2.00\n-G_M25101_IG10:\n\u002BG_M25101_IG04:\n        mov      rdx, gword ptr [rax\u002B0x08]\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 1.00\n-G_M25101_IG11:\n\u002BG_M25101_IG05:\n        mov      rdi, r14\n        mov      rsi, r13\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Mapping.ViewGeneration.QueryRewriting.FragmentQuery:Create(System.String,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.RoleBoolean,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellQuery):System.Data.Entity.Core.Mapping.ViewGeneration.QueryRewriting.FragmentQuery\n        call     [rax]System.Data.Entity.Core.Mapping.ViewGeneration.QueryRewriting.FragmentQuery:Create(System.String,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.RoleBoolean,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellQuery):System.Data.Entity.Core.Mapping.ViewGeneration.QueryRewriting.FragmentQuery\n        nop      \n \t\t\t\t\t\t;; size=19 bbWeight=1 PerfScore 4.00\n-G_M25101_IG12:\n\u002BG_M25101_IG06:\n        add      rsp, 16\n        pop      rbx\n        pop      r13\n@@ -138,17 \u002B100,17 @@ G_M25101_IG12:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n-G_M25101_IG13:\n\u002BG_M25101_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M25101_IG14:\n\u002BG_M25101_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 342, prolog size 17, PerfScore 71.75, instruction count 89, allocated bytes for code 342 (MethodHash=34569df2) for method System.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher:CreateRightFragmentQuery(System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper):System.Data.Entity.Core.Mapping.ViewGeneration.QueryRewriting.FragmentQuery:this (FullOpts)\n\u002B; Total bytes of code 234, prolog size 17, PerfScore 55.75, instruction count 63, allocated bytes for code 234 (MethodHash=34569df2) for method System.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher:CreateRightFragmentQuery(System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper):System.Data.Entity.Core.Mapping.ViewGeneration.QueryRewriting.FragmentQuery:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":342,"DiffBytes":234},{"Assembly":"MathNet.Numerics.dasm","Method":"MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:SameAs[short](MathNet.Numerics.LinearAlgebra.Matrix\u00601[short],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this (FullOpts)","Category":"improvement","Description":"594 -\u003E 120 bytes (-474)","ExtraInfo":null,"Diff":"@@ -1,214 \u002B1,65 @@\n ; Assembly listing for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:SameAs[short](MathNet.Numerics.LinearAlgebra.Matrix\u00601[short],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n-; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data\n\u002B; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 12,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]\u003E\n-;  V01 arg1         [V01,T03] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[short]\u003E\n-;  V02 arg2         [V02,T01] ( 11,  6.50)     int  -\u003E  r15         single-def\n-;  V03 arg3         [V03,T02] ( 11,  6.50)     int  -\u003E  r14         single-def\n-;  V04 arg4         [V04,T04] (  3,  2.50)   ubyte  -\u003E  r13         single-def\n-;  V05 loc0         [V05,T08] (  4,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]\u003E\n\u002B;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]\u003E\n\u002B;  V01 arg1         [V01,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[short]\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  4   )     int  -\u003E  r15         single-def\n\u002B;  V03 arg3         [V03,T04] (  4,  4   )     int  -\u003E  r14         single-def\n\u002B;* V04 arg4         [V04    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def\n\u002B;* V05 loc0         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]\u003E\n\u002B;  V07 tmp1         [V07,T00] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cdouble[]\u003E\n-;  V09 tmp3         [V09,T06] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[double]\u003E\n-;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cdouble[]\u003E\n-;  V11 tmp5         [V11,T11] (  2,  1   )     int  -\u003E  rsi         \u0022Inline return value spill temp\u0022\n-;  V12 tmp6         [V12,T09] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]\u003E\n-;  V13 tmp7         [V13,T10] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]\u003E\n-;  V14 tmp8         [V14,T07] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]\u003E\n-;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cdouble[]\u003E\n-;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022Single return block return value\u0022\n ;\n ; Lcl frame size = 8\n \n G_M50140_IG01:\n-       push     rbp\n        push     r15\n        push     r14\n        push     r13\n-       push     r12\n        push     rbx\n        push     rax\n-       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n        mov      r15d, edx\n        mov      r14d, ecx\n-       mov      r13d, r8d\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.75\n G_M50140_IG02:\n-       mov      r12, gword ptr [rsi\u002B0x08]\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M50140_IG11\n-\t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 7.00\n-G_M50140_IG03:\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[double]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M50140_IG07\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      SHORT G_M50140_IG05\n\u002B       cmp      byte  ptr [rsi], sil\n        mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        mov      rdi, r13\n        mov      esi, r15d\n        mov      edx, r14d\n        mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]:.ctor(int,int):this\n        call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]:.ctor(int,int):this\n        imul     r15d, r14d\n        movsxd   rsi, r15d\n        mov      rdi, 0xD1FFAB1E      ; double[]\n        call     CORINFO_HELP_NEWARR_1_PTR\n        mov      rsi, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, rbx\n        mov      rsi, r13\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=150 bbWeight=0.50 PerfScore 12.62\n-G_M50140_IG04:\n\u002B\t\t\t\t\t\t;; size=89 bbWeight=1 PerfScore 17.25\n\u002BG_M50140_IG03:\n        add      rsp, 8\n        pop      rbx\n-       pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n-       pop      rbp\n        tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M50140_IG05:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 5.00\n-G_M50140_IG06:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M50140_IG07:\n-       test     r13b, r13b\n-       je       SHORT G_M50140_IG09\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 5.62\n-G_M50140_IG08:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[double]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M50140_IG09:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[double]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]:.ctor(int,int):this\n-       cmp      r15d, r14d\n-       mov      esi, r14d\n-       cmovle   esi, r15d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; double[]\n-       call     CORINFO_HELP_NEWARR_1_PTR\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 7.12\n-G_M50140_IG10:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x10]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:Diagonal(MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[double]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M50140_IG11:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]:.ctor(int,int):this\n-       mov      esi, r15d\n-       imul     esi, r14d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; double[]\n-       call     CORINFO_HELP_NEWARR_1_PTR\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=89 bbWeight=0.50 PerfScore 7.75\n-G_M50140_IG12:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[double]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n\u002B\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 594, prolog size 16, PerfScore 66.75, instruction count 157, allocated bytes for code 594 (MethodHash=b65e3c23) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:SameAs[short](MathNet.Numerics.LinearAlgebra.Matrix\u00601[short],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this (FullOpts)\n\u002B; Total bytes of code 120, prolog size 8, PerfScore 27.25, instruction count 34, allocated bytes for code 120 (MethodHash=b65e3c23) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[double]:SameAs[short](MathNet.Numerics.LinearAlgebra.Matrix\u00601[short],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[double]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":594,"DiffBytes":120},{"Assembly":"Microsoft.AspNetCore.OData.dasm","Method":"Microsoft.AspNetCore.OData.Routing.Parser.ODataPathSegmentToTemplateHandler:Handle(Microsoft.OData.UriParser.OperationSegment):this (FullOpts)","Category":"improvement","Description":"309 -\u003E 257 bytes (-52)","ExtraInfo":null,"Diff":"@@ -1,127 \u002B1,108 @@\n ; Assembly listing for method Microsoft.AspNetCore.OData.Routing.Parser.ODataPathSegmentToTemplateHandler:Handle(Microsoft.OData.UriParser.OperationSegment):this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 4 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  r15         this class-hnd single-def \u003CMicrosoft.AspNetCore.OData.Routing.Parser.ODataPathSegmentToTemplateHandler\u003E\n-;  V01 arg1         [V01,T01] (  5,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003CMicrosoft.OData.UriParser.OperationSegment\u003E\n\u002B;  V01 arg1         [V01,T00] (  5,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003CMicrosoft.OData.UriParser.OperationSegment\u003E\n ;* V02 loc0         [V02    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMicrosoft.OData.Edm.IEdmOperation\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V04 tmp1         [V04,T04] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.AspNetCore.OData.Routing.Template.FunctionSegmentTemplate\u003E\n-;  V05 tmp2         [V05,T07] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IList\u00601[Microsoft.AspNetCore.OData.Routing.Template.ODataSegmentTemplate]\u003E\n-;  V06 tmp3         [V06,T05] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.AspNetCore.OData.Routing.Template.ActionSegmentTemplate\u003E\n-;  V07 tmp4         [V07,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IList\u00601[Microsoft.AspNetCore.OData.Routing.Template.ODataSegmentTemplate]\u003E\n-;  V08 tmp5         [V08,T00] (  4,  7   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[Microsoft.OData.Edm.IEdmOperation]\u003E\n-;  V09 tmp6         [V09    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V04 tmp1         [V04,T03] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.AspNetCore.OData.Routing.Template.FunctionSegmentTemplate\u003E\n\u002B;  V05 tmp2         [V05,T05] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IList\u00601[Microsoft.AspNetCore.OData.Routing.Template.ODataSegmentTemplate]\u003E\n\u002B;  V06 tmp3         [V06,T04] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMicrosoft.AspNetCore.OData.Routing.Template.ActionSegmentTemplate\u003E\n\u002B;  V07 tmp4         [V07,T06] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IList\u00601[Microsoft.AspNetCore.OData.Routing.Template.ODataSegmentTemplate]\u003E\n\u002B;  V08 tmp5         [V08,T01] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[Microsoft.OData.Edm.IEdmOperation]\u003E\n\u002B;  V09 tmp6         [V09    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V10 tmp7         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V11 tmp8         [V11,T06] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMicrosoft.OData.Edm.IEdmOperation\u003E\n-;  V12 tmp9         [V12,T03] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Microsoft.OData.Edm.IEdmOperation]\u003E\n\u002B;  V11 tmp8         [V11,T07] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMicrosoft.OData.Edm.IEdmOperation\u003E\n\u002B;* V12 tmp9         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[Microsoft.OData.Edm.IEdmOperation]\u003E\n ;\n ; Lcl frame size = 8\n \n G_M38231_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x20]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x20], rax\n        mov      r15, rdi\n        mov      rbx, rsi\n \t\t\t\t\t\t;; size=24 bbWeight=1 PerfScore 7.25\n G_M38231_IG02:\n-       mov      r14, gword ptr [rbx\u002B0x28]\n-       test     r14, r14\n-       je       G_M38231_IG10\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[Microsoft.OData.Edm.IEdmOperation]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M38231_IG04\n-\t\t\t\t\t\t;; size=43 bbWeight=1 PerfScore 8.25\n-G_M38231_IG03:\n-       lea      rsi, [rbp-0x20]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M38231_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M38231_IG04:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x28]\n\u002B       test     rsi, rsi\n\u002B       je       G_M38231_IG07\n        lea      rdx, [rbp-0x20]\n-       mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[Microsoft.OData.Edm.IEdmOperation](System.Collections.Generic.IEnumerable\u00601[Microsoft.OData.Edm.IEdmOperation],byref):Microsoft.OData.Edm.IEdmOperation\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M38231_IG05:\n-       cmp      byte  ptr [rbp-0x20], 0\n-       je       G_M38231_IG11\n        mov      rdi, rax\n\u002B       cmp      byte  ptr [rbp-0x20], 0\n\u002B       je       G_M38231_IG08\n        mov      r11, 0xD1FFAB1E      ; code for Microsoft.OData.Edm.IEdmSchemaElement:get_SchemaElementKind():int:this\n        call     [r11]Microsoft.OData.Edm.IEdmSchemaElement:get_SchemaElementKind():int:this\n        cmp      eax, 3\n-       je       SHORT G_M38231_IG07\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 6.75\n-G_M38231_IG06:\n\u002B       je       SHORT G_M38231_IG04\n\u002B\t\t\t\t\t\t;; size=70 bbWeight=1 PerfScore 14.00\n\u002BG_M38231_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.AspNetCore.OData.Routing.Template.FunctionSegmentTemplate\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      r15, gword ptr [r15\u002B0x10]\n        mov      rdi, r14\n        mov      rsi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.AspNetCore.OData.Routing.Template.FunctionSegmentTemplate:.ctor(Microsoft.OData.UriParser.OperationSegment):this\n        call     [rax]Microsoft.AspNetCore.OData.Routing.Template.FunctionSegmentTemplate:.ctor(Microsoft.OData.UriParser.OperationSegment):this\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:Add(System.__Canon):this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:Add(System.__Canon):this\n-       jmp      SHORT G_M38231_IG08\n\u002B       jmp      SHORT G_M38231_IG05\n \t\t\t\t\t\t;; size=61 bbWeight=0.50 PerfScore 6.50\n-G_M38231_IG07:\n\u002BG_M38231_IG04:\n        mov      rdi, 0xD1FFAB1E      ; Microsoft.AspNetCore.OData.Routing.Template.ActionSegmentTemplate\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      r15, gword ptr [r15\u002B0x10]\n        mov      rdi, r14\n        mov      rsi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for Microsoft.AspNetCore.OData.Routing.Template.ActionSegmentTemplate:.ctor(Microsoft.OData.UriParser.OperationSegment):this\n        call     [rax]Microsoft.AspNetCore.OData.Routing.Template.ActionSegmentTemplate:.ctor(Microsoft.OData.UriParser.OperationSegment):this\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:Add(System.__Canon):this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:Add(System.__Canon):this\n \t\t\t\t\t\t;; size=59 bbWeight=0.50 PerfScore 5.50\n-G_M38231_IG08:\n\u002BG_M38231_IG05:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M38231_IG09:\n\u002BG_M38231_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M38231_IG10:\n\u002BG_M38231_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M38231_IG11:\n\u002BG_M38231_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 309, prolog size 18, PerfScore 44.75, instruction count 76, allocated bytes for code 309 (MethodHash=0f9a6aa8) for method Microsoft.AspNetCore.OData.Routing.Parser.ODataPathSegmentToTemplateHandler:Handle(Microsoft.OData.UriParser.OperationSegment):this (FullOpts)\n\u002B; Total bytes of code 257, prolog size 18, PerfScore 36.75, instruction count 63, allocated bytes for code 257 (MethodHash=0f9a6aa8) for method Microsoft.AspNetCore.OData.Routing.Parser.ODataPathSegmentToTemplateHandler:Handle(Microsoft.OData.UriParser.OperationSegment):this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":309,"DiffBytes":257},{"Assembly":"Microsoft.OpenApi.dasm","Method":"Microsoft.OpenApi.OpenApiPathItem:SerializeAsV2(Microsoft.OpenApi.IOpenApiWriter):this (FullOpts)","Category":"improvement","Description":"1,591 -\u003E 1,576 bytes (-15)","ExtraInfo":null,"Diff":"@@ -68,46 \u002B68,45 @@\n ;* V57 tmp52        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n ;* V58 tmp53        [V58    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V59 tmp54        [V59    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiOperation]\u003E\n-;* V60 tmp55        [V60    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling qmarkNull\u0022\n-;* V61 tmp56        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiOperation]\u003E\n-;* V62 tmp57        [V62    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n-;* V63 tmp58        [V63    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;* V64 tmp59        [V64    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiOperation]\u003E\n-;* V65 tmp60        [V65    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiOperation]\u003E\n-;* V66 tmp61        [V66    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V67 tmp62        [V67,T40] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiPathItem\u002B\u003C\u003Ec\u003E\n-;  V68 tmp63        [V68,T41] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiPathItem\u002B\u003C\u003Ec\u003E\n-;  V69 tmp64        [V69,T42] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiPathItem\u002B\u003C\u003Ec\u003E\n-;* V70 tmp65        [V70    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Collections.Generic.KeyValuePair\u00602[System.Net.Http.HttpMethod,Microsoft.OpenApi.OpenApiOperation]]\u003E\n-;* V71 tmp66        [V71    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[System.Collections.Generic.KeyValuePair\u00602[System.Net.Http.HttpMethod,Microsoft.OpenApi.OpenApiOperation],System.String]\u003E\n-;* V72 tmp67        [V72    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[System.Collections.Generic.KeyValuePair\u00602[System.Net.Http.HttpMethod,Microsoft.OpenApi.OpenApiOperation],Microsoft.OpenApi.OpenApiOperation]\u003E\n-;  V73 tmp68        [V73,T43] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiPathItem\u002B\u003C\u003Ec\u003E\n-;* V74 tmp69        [V74    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n-;* V75 tmp70        [V75    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;* V76 tmp71        [V76    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IDictionary\u00602[System.String,Microsoft.OpenApi.OpenApiOperation]\u003E\n-;* V77 tmp72        [V77    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiOperation]\u003E\n-;* V78 tmp73        [V78    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMicrosoft.OpenApi.OpenApiWriterExtensions\u002B\u003C\u003Ec__DisplayClass21_0\u00601[Microsoft.OpenApi.OpenApiOperation]\u003E\n-;  V79 tmp74        [V79,T46] (  3,  1.50)     ref  -\u003E  r12         class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.OpenApi.OpenApiWriterExtensions\u002B\u003C\u003Ec__DisplayClass21_0\u00601[Microsoft.OpenApi.OpenApiOperation]\u003E\n-;* V80 tmp75        [V80    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiOperation]\u003E\n-;* V81 tmp76        [V81    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n-;* V82 tmp77        [V82    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;* V83 tmp78        [V83    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IDictionary\u00602[System.String,Microsoft.OpenApi.OpenApiOperation]\u003E\n-;  V84 tmp79        [V84,T22] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u00603[Microsoft.OpenApi.IOpenApiWriter,System.String,Microsoft.OpenApi.OpenApiOperation]\u003E\n-;  V85 tmp80        [V85,T44] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiPathItem\u002B\u003C\u003Ec\u003E\n-;* V86 tmp81        [V86    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.OpenApi.IOpenApiParameter]\u003E\n-;* V87 tmp82        [V87    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n-;* V88 tmp83        [V88    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;* V89 tmp84        [V89    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiParameter]\u003E\n-;  V90 tmp85        [V90,T20] (  3,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V91 tmp86        [V91,T21] (  3,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V92 tmp87        [V92,T10] (  2,  8   )     ref  -\u003E  rax         \u0022field V04.key (fldOffset=0x0)\u0022 P-INDEP\n-;  V93 tmp88        [V93,T05] (  5, 14   )     ref  -\u003E  r14         \u0022field V04.value (fldOffset=0x8)\u0022 P-INDEP\n-;* V94 tmp89        [V94    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V17.key (fldOffset=0x0)\u0022 P-DEP\n-;* V95 tmp90        [V95    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V17.value (fldOffset=0x8)\u0022 P-DEP\n-;  V96 tmp91        [V96,T45] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V97 tmp92        [V97,T11] (  2,  8   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n-;* V98 tmp93        [V98    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022argument with side effect\u0022\n-;  V99 tmp94        [V99,T48] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;* V60 tmp55        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiOperation]\u003E\n\u002B;* V61 tmp56        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n\u002B;* V62 tmp57        [V62    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;* V63 tmp58        [V63    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiOperation]\u003E\n\u002B;* V64 tmp59        [V64    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiOperation]\u003E\n\u002B;* V65 tmp60        [V65    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V66 tmp61        [V66,T40] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiPathItem\u002B\u003C\u003Ec\u003E\n\u002B;  V67 tmp62        [V67,T41] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiPathItem\u002B\u003C\u003Ec\u003E\n\u002B;  V68 tmp63        [V68,T42] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiPathItem\u002B\u003C\u003Ec\u003E\n\u002B;* V69 tmp64        [V69    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Collections.Generic.KeyValuePair\u00602[System.Net.Http.HttpMethod,Microsoft.OpenApi.OpenApiOperation]]\u003E\n\u002B;* V70 tmp65        [V70    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[System.Collections.Generic.KeyValuePair\u00602[System.Net.Http.HttpMethod,Microsoft.OpenApi.OpenApiOperation],System.String]\u003E\n\u002B;* V71 tmp66        [V71    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[System.Collections.Generic.KeyValuePair\u00602[System.Net.Http.HttpMethod,Microsoft.OpenApi.OpenApiOperation],Microsoft.OpenApi.OpenApiOperation]\u003E\n\u002B;  V72 tmp67        [V72,T43] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiPathItem\u002B\u003C\u003Ec\u003E\n\u002B;* V73 tmp68        [V73    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n\u002B;* V74 tmp69        [V74    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;* V75 tmp70        [V75    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IDictionary\u00602[System.String,Microsoft.OpenApi.OpenApiOperation]\u003E\n\u002B;* V76 tmp71        [V76    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiOperation]\u003E\n\u002B;* V77 tmp72        [V77    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMicrosoft.OpenApi.OpenApiWriterExtensions\u002B\u003C\u003Ec__DisplayClass21_0\u00601[Microsoft.OpenApi.OpenApiOperation]\u003E\n\u002B;  V78 tmp73        [V78,T46] (  3,  1.50)     ref  -\u003E  r12         class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CMicrosoft.OpenApi.OpenApiWriterExtensions\u002B\u003C\u003Ec__DisplayClass21_0\u00601[Microsoft.OpenApi.OpenApiOperation]\u003E\n\u002B;* V79 tmp74        [V79    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.OpenApiOperation]\u003E\n\u002B;* V80 tmp75        [V80    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n\u002B;* V81 tmp76        [V81    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;* V82 tmp77        [V82    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IDictionary\u00602[System.String,Microsoft.OpenApi.OpenApiOperation]\u003E\n\u002B;  V83 tmp78        [V83,T22] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u00603[Microsoft.OpenApi.IOpenApiWriter,System.String,Microsoft.OpenApi.OpenApiOperation]\u003E\n\u002B;  V84 tmp79        [V84,T44] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.OpenApiPathItem\u002B\u003C\u003Ec\u003E\n\u002B;* V85 tmp80        [V85    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Microsoft.OpenApi.IOpenApiParameter]\u003E\n\u002B;* V86 tmp81        [V86    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMicrosoft.OpenApi.IOpenApiWriter\u003E\n\u002B;* V87 tmp82        [V87    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;* V88 tmp83        [V88    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Action\u00602[Microsoft.OpenApi.IOpenApiWriter,Microsoft.OpenApi.IOpenApiParameter]\u003E\n\u002B;  V89 tmp84        [V89,T20] (  3,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V90 tmp85        [V90,T21] (  3,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V91 tmp86        [V91,T10] (  2,  8   )     ref  -\u003E  rax         \u0022field V04.key (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V92 tmp87        [V92,T05] (  4, 12   )     ref  -\u003E  r14         \u0022field V04.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;* V93 tmp88        [V93    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V17.key (fldOffset=0x0)\u0022 P-DEP\n\u002B;* V94 tmp89        [V94    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V17.value (fldOffset=0x8)\u0022 P-DEP\n\u002B;  V95 tmp90        [V95,T45] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V96 tmp91        [V96,T11] (  2,  8   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n\u002B;* V97 tmp92        [V97    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022argument with side effect\u0022\n\u002B;  V98 tmp93        [V98,T48] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 8\n \n@@ -209,9 \u002B208,6 @@ G_M23395_IG08:\n        call     [rcx]CORINFO_HELP_ISINSTANCEOFINTERFACE\n        test     rax, rax\n        je       SHORT G_M23395_IG09\n-       mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Nodes.JsonArray\n-       cmp      qword ptr [r14], rdi\n-       je       SHORT G_M23395_IG09\n        mov      rdi, rax\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n        call     [r11]System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this\n@@ -220,7 \u002B216,7 @@ G_M23395_IG08:\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n        je       G_M23395_IG05\n-\t\t\t\t\t\t;; size=85 bbWeight=2 PerfScore 33.00\n\u002B\t\t\t\t\t\t;; size=70 bbWeight=2 PerfScore 26.50\n G_M23395_IG09:\n        mov      rdi, rbx\n        mov      rsi, r13\n@@ -481,5 \u002B477,5 @@ G_M23395_IG29:\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1591, prolog size 22, PerfScore 273.38, instruction count 311, allocated bytes for code 1591 (MethodHash=2bfaa49c) for method Microsoft.OpenApi.OpenApiPathItem:SerializeAsV2(Microsoft.OpenApi.IOpenApiWriter):this (FullOpts)\n\u002B; Total bytes of code 1576, prolog size 22, PerfScore 266.88, instruction count 308, allocated bytes for code 1576 (MethodHash=2bfaa49c) for method Microsoft.OpenApi.OpenApiPathItem:SerializeAsV2(Microsoft.OpenApi.IOpenApiWriter):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1591,"DiffBytes":1576},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollection[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,137 -\u003E 1,056 bytes (-81)","ExtraInfo":null,"Diff":"@@ -14,14 \u002B14,14 @@\n ;  V03 arg2         [V03,T05] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.__Canon]\u003E\n ;  V04 arg3         [V04,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T24] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V06 loc0         [V06,T23] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n-;  V08 loc2         [V08,T25] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n-;  V09 loc3         [V09,T22] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V08 loc2         [V08,T24] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n\u002B;  V09 loc3         [V09,T21] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V12 tmp2         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V13 tmp3         [V13,T31] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V13 tmp3         [V13,T30] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V14 tmp4         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V15 tmp5         [V15    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V16 tmp6         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n@@ -39,17 \u002B39,17 @@\n ;* V28 tmp18        [V28    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V29 tmp19        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V30 tmp20        [V30    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V31 tmp21        [V31,T23] (  3,  2   )     int  -\u003E  registers  \n-;  V32 tmp22        [V32,T06] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V33 tmp23        [V33    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V34 tmp24        [V34,T20] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V35 tmp25        [V35,T21] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V31 tmp21        [V31,T22] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V32 tmp22        [V32,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V33 tmp23        [V33    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V34 tmp24        [V34,T20] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V37 tmp27        [V37,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V38 tmp28        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V39 tmp29        [V39,T28] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V39 tmp29        [V39,T27] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V41 tmp31        [V41,T19] (  8,  3   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V41 tmp31        [V41,T19] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V42 tmp32        [V42,T07] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V43 tmp33        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V44 tmp34        [V44,T10] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -58,13 \u002B58,13 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;  V50 tmp40        [V50,T16] (  2,  2   )     ref  -\u003E  [rbp-0x90]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V51 tmp41        [V51,T26] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V15.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp42        [V52,T27] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V15.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V50 tmp40        [V50,T16] (  2,  2   )     ref  -\u003E  [rbp-0x88]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V51 tmp41        [V51,T25] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V15.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp42        [V52,T26] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V15.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V53 tmp43        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V22._name (fldOffset=0x0)\u0022 P-DEP\n ;* V54 tmp44        [V54    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V22._value (fldOffset=0x8)\u0022 P-DEP\n-;  V55 tmp45        [V55,T29] (  2,  1   )     ref  -\u003E  rax         \u0022field V23._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V56 tmp46        [V56,T30] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V23._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V55 tmp45        [V55,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V23._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V56 tmp46        [V56,T29] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V23._value (fldOffset=0x8)\u0022 P-INDEP\n ;  V57 tmp47        [V57,T17] (  2,  4   )    long  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V58 tmp48        [V58,T18] (  2,  4   )    long  -\u003E  rsi         \u0022argument with side effect\u0022\n ;  V59 rat0         [V59,T14] (  3,  4   )    long  -\u003E  rdi         \u0022runtime lookup\u0022\n@@ -72,7 \u002B72,7 @@\n ;  V61 rat2         [V61,T15] (  3,  4   )    long  -\u003E  rsi         \u0022runtime lookup\u0022\n ;  V62 rat3         [V62,T09] (  3,  5.60)    long  -\u003E  rsi         \u0022fgMakeTemp is creating a new local variable\u0022\n ;\n-; Lcl frame size = 168\n\u002B; Lcl frame size = 152\n \n G_M34683_IG01:\n        push     rbp\n@@ -81,14 \u002B81,14 @@ G_M34683_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 168\n-       lea      rbp, [rsp\u002B0xD0]\n\u002B       sub      rsp, 152\n\u002B       lea      rbp, [rsp\u002B0xC0]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x78], rax\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        mov      qword ptr [rbp-0x30], rsi\n-       mov      gword ptr [rbp-0x90], r9\n\u002B       mov      gword ptr [rbp-0x88], r9\n        mov      r15, rdi\n        mov      r14, rsi\n        mov      r13, rdx\n@@ -104,7 \u002B104,7 @@ G_M34683_IG02:\n        mov      rdi, qword ptr [r14\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M34683_IG31\n\u002B       je       G_M34683_IG28\n \t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 9.25\n G_M34683_IG03:\n        mov      rsi, r12\n@@ -154,90 \u002B154,70 @@ G_M34683_IG05:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.__Canon]:Render(MongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]:this\n        mov      r12, rax\n-       mov      rax, gword ptr [r12\u002B0x08]\n-       mov      gword ptr [rbp-0x80], rax\n-       test     rax, rax\n-       je       G_M34683_IG33\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n... diff truncated; middle omitted ...\n\u002B       je       SHORT G_M34683_IG17\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M34683_IG19:\n\u002BG_M34683_IG16:\n        xor      ecx, ecx\n-       jmp      SHORT G_M34683_IG22\n\u002B       jmp      SHORT G_M34683_IG19\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M34683_IG20:\n\u002BG_M34683_IG17:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -245,30 \u002B225,30 @@ G_M34683_IG20:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M34683_IG22\n\u002B       jmp      SHORT G_M34683_IG19\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M34683_IG21:\n\u002BG_M34683_IG18:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M34683_IG22:\n\u002BG_M34683_IG19:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M34683_IG23:\n\u002BG_M34683_IG20:\n        mov      dword ptr [rbp-0x6C], ecx\n        mov      rdi, gword ptr [r12\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M34683_IG34\n\u002B       je       G_M34683_IG31\n        cmp      dword ptr [rbp-0x6C], 0\n-       je       G_M34683_IG34\n\u002B       je       G_M34683_IG31\n        mov      rdi, qword ptr [r14\u002B0x18]\n        mov      rsi, qword ptr [rdi\u002B0x20]\n        test     rsi, rsi\n-       je       G_M34683_IG32\n\u002B       je       G_M34683_IG29\n \t\t\t\t\t\t;; size=56 bbWeight=1 PerfScore 14.75\n-G_M34683_IG24:\n\u002BG_M34683_IG21:\n        mov      rdi, r15\n        mov      rdx, r12\n        mov      rcx, rbx\n@@ -280,13 \u002B260,13 @@ G_M34683_IG24:\n        cmp      byte  ptr [r14], r14b\n        mov      rdi, r15\n        mov      rsi, r13\n-       mov      r9, gword ptr [rbp-0x90]\n\u002B       mov      r9, gword ptr [rbp-0x88]\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 16.25\n-G_M34683_IG25:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=74 bbWeight=1 PerfScore 16.25\n\u002BG_M34683_IG22:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -294,22 \u002B274,22 @@ G_M34683_IG25:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r13\n        mov      rcx, r14\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=64 bbWeight=1 PerfScore 11.25\n-G_M34683_IG26:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M34683_IG29\n-\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 2.00\n-G_M34683_IG27:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n\u002BG_M34683_IG23:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M34683_IG26\n\u002B\t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n\u002BG_M34683_IG24:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M34683_IG28\n\u002B       je       SHORT G_M34683_IG25\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -318,12 \u002B298,12 @@ G_M34683_IG27:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M34683_IG28:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n\u002BG_M34683_IG25:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M34683_IG29\n\u002B       je       SHORT G_M34683_IG26\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -332,12 \u002B312,12 @@ G_M34683_IG28:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M34683_IG29:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n\u002BG_M34683_IG26:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M34683_IG30:\n-       add      rsp, 168\n\u002BG_M34683_IG27:\n\u002B       add      rsp, 152\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -346,7 \u002B326,7 @@ G_M34683_IG30:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M34683_IG31:\n\u002BG_M34683_IG28:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -354,21 \u002B334,21 @@ G_M34683_IG31:\n        mov      rdi, rax\n        jmp      G_M34683_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M34683_IG32:\n\u002BG_M34683_IG29:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M34683_IG24\n\u002B       jmp      G_M34683_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M34683_IG33:\n\u002BG_M34683_IG30:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M34683_IG34:\n\u002BG_M34683_IG31:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -380,16 \u002B360,16 @@ G_M34683_IG34:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M34683_IG35:\n\u002BG_M34683_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M34683_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M34683_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M34683_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M34683_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M34683_IG37\n\u002B       je       SHORT G_M34683_IG34\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -398,12 \u002B378,12 @@ G_M34683_IG36:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M34683_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M34683_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M34683_IG38\n\u002B       je       SHORT G_M34683_IG35\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -412,14 \u002B392,14 @@ G_M34683_IG37:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M34683_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M34683_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M34683_IG39:\n\u002BG_M34683_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1137, prolog size 72, PerfScore 161.80, instruction count 268, allocated bytes for code 1137 (MethodHash=7dd47884) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollection[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 1056, prolog size 72, PerfScore 152.42, instruction count 254, allocated bytes for code 1056 (MethodHash=7dd47884) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollection[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1137,"DiffBytes":1056},{"Assembly":"Nest.dasm","Method":"Nest.Extensions\u002B\u003CForEachAsync\u003Ed__29\u00602[long,System.Nullable\u00601[int]]:MoveNext():this (FullOpts)","Category":"improvement","Description":"1,484 -\u003E 1,435 bytes (-49)","ExtraInfo":null,"Diff":"@@ -31,9 \u002B31,9 @@\n ;* V20 tmp7         [V20    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;* V21 tmp8         [V21    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;  V22 tmp9         [V22,T17] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Threading.Tasks.Task]\u003E\n-;  V23 tmp10        [V23,T45] (  2,  0   )     ref  -\u003E  rsi         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V23 tmp10        [V23,T44] (  2,  0   )     ref  -\u003E  rsi         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n ;  V24 tmp11        [V24,T18] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.SemaphoreSlim\u003E\n-;  V25 tmp12        [V25,T46] (  2,  0   )     ref  -\u003E  rsi         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V25 tmp12        [V25,T45] (  2,  0   )     ref  -\u003E  rsi         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n ;  V26 tmp13        [V26,T09] (  3, 20   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Threading.Tasks.Task[]\u003E\n ;  V27 tmp14        [V27,T07] (  4, 24   )     int  -\u003E  r14         \u0022Inline stloc first use temp\u0022\n ;  V28 tmp15        [V28,T02] (  3, 32   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n@@ -47,32 \u002B47,32 @@\n ;* V36 tmp23        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Threading.Tasks.Task]\u003E\n ;* V37 tmp24        [V37    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.Threading.Tasks.Task]\u003E\n ;* V38 tmp25        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Threading.Tasks.Task]\u003E\n-;* V39 tmp26        [V39,T41] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V40 tmp27        [V40,T27] (  2,  4   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;* V39 tmp26        [V39,T40] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V40 tmp27        [V40,T26] (  2,  4   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;* V41 tmp28        [V41    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V42 tmp29        [V42    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V43 tmp30        [V43    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V44 tmp31        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Runtime.CompilerServices.IAsyncStateMachineBox\u003E\n ;  V45 tmp32        [V45,T20] (  3,  6   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n-;  V46 tmp33        [V46,T28] (  2,  4   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;  V46 tmp33        [V46,T27] (  2,  4   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;* V47 tmp34        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.AggregateException\u003E\n-;  V48 tmp35        [V48,T36] (  2,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.AggregateException\u003E\n\u002B;  V48 tmp35        [V48,T34] (  2,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.AggregateException\u003E\n ;* V49 tmp36        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.AggregateException\u003E\n-;  V50 tmp37        [V50,T37] (  3,  3   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.AggregateException\u003E\n\u002B;  V50 tmp37        [V50,T35] (  3,  3   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.AggregateException\u003E\n ;* V51 tmp38        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n ;  V52 tmp39        [V52,T12] (  4,  8   )     ref  -\u003E  r15         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.AggregateException\u003E\n-;  V53 tmp40        [V53,T29] (  2,  4   )     ref  -\u003E  r14         class-hnd \u0022dup spill\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n-;  V54 tmp41        [V54,T25] (  5,  5   )     ref  -\u003E  r14        \n\u002B;  V53 tmp40        [V53,T28] (  2,  4   )     ref  -\u003E  rsi         class-hnd \u0022dup spill\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n\u002B;  V54 tmp41        [V54,T25] (  4,  4   )     ref  -\u003E  rsi        \n ;  V55 tmp42        [V55,T13] (  4,  8   )     ref  -\u003E  r14         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n ;* V56 tmp43        [V56    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n ;  V57 tmp44        [V57,T21] (  3,  6   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Exception[]\u003E\n-;  V58 tmp45        [V58    ] (  3,  3   )   ubyte  -\u003E  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V58 tmp45        [V58    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V59 tmp46        [V59    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V60 tmp47        [V60,T35] (  4,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Exception\u003E\n-;  V61 tmp48        [V61,T26] (  4,  4   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Exception]\u003E\n\u002B;  V60 tmp47        [V60,T39] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Exception\u003E\n\u002B;* V61 tmp48        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Exception]\u003E\n ;* V62 tmp49        [V62    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V63 tmp50        [V63,T14] (  4,  8   )     ref  -\u003E  r15         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Threading.Tasks.Task]\u003E\n-;  V64 tmp51        [V64,T39] (  3,  3   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n\u002B;  V64 tmp51        [V64,T37] (  3,  3   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n ;  V65 tmp52        [V65,T22] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n ;* V66 tmp53        [V66    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V67 tmp54        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -81,17 \u002B81,17 @@\n ;* V70 tmp57        [V70    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n ;* V71 tmp58        [V71    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u002BConfiguredTaskAwaiter\u003E\n ;* V72 tmp59        [V72    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n-;* V73 tmp60        [V73,T42] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V74 tmp61        [V74,T30] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n\u002B;* V73 tmp60        [V73,T41] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V74 tmp61        [V74,T29] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n ;* V75 tmp62        [V75    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V76 tmp63        [V76    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V77 tmp64        [V77    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V78 tmp65        [V78    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Runtime.CompilerServices.IAsyncStateMachineBox\u003E\n ;  V79 tmp66        [V79,T23] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n-;  V80 tmp67        [V80,T34] (  2,  4   )     int  -\u003E  rax         \u0022Inlining Arg\u0022\n\u002B;  V80 tmp67        [V80,T33] (  2,  4   )     int  -\u003E  rax         \u0022Inlining Arg\u0022\n ;  V81 tmp68        [V81,T15] (  4,  8   )   byref  -\u003E  rdi         single-def \u0022Inlining Arg\u0022\n-;* V82 tmp69        [V82,T43] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[SF] ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.Tasks.VoidTaskResult\u003E\n-;  V83 tmp70        [V83,T31] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Threading.Tasks.VoidTaskResult]\u003E\n\u002B;* V82 tmp69        [V82,T42] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[SF] ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.Tasks.VoidTaskResult\u003E\n... diff truncated; middle omitted ...\n@@ -381,16 \u002B365,16 @@ G_M37179_IG24:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x28], edi\n        test     byte  ptr [rbp-0x28], 4\n-       jne      SHORT G_M37179_IG25\n\u002B       jne      SHORT G_M37179_IG23\n        mov      rdi, gword ptr [rbp-0x30]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M37179_IG13\n \t\t\t\t\t\t;; size=64 bbWeight=1 PerfScore 16.75\n-G_M37179_IG25:\n\u002BG_M37179_IG23:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x1C], edi\n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M37179_IG26:\n\u002BG_M37179_IG24:\n        mov      rbx, bword ptr [rbp-0x50]\n        mov      dword ptr [rbx\u002B0x48], edi\n        lea      rdi, bword ptr [rbx\u002B0x58]\n@@ -407,20 \u002B391,20 @@ G_M37179_IG26:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.Threading.Tasks.Task]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      SHORT G_M37179_IG30\n\u002B       jmp      SHORT G_M37179_IG28\n \t\t\t\t\t\t;; size=76 bbWeight=1 PerfScore 16.75\n-G_M37179_IG27:\n\u002BG_M37179_IG25:\n        mov      edi, 20\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M37179_IG28:\n\u002BG_M37179_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M37179_IG29:\n\u002BG_M37179_IG27:\n        mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.ExceptionServices.ExceptionDispatchInfo:Capture(System.Exception):System.Runtime.ExceptionServices.ExceptionDispatchInfo\n        call     [rax]System.Runtime.ExceptionServices.ExceptionDispatchInfo:Capture(System.Exception):System.Runtime.ExceptionServices.ExceptionDispatchInfo\n@@ -430,22 \u002B414,22 @@ G_M37179_IG29:\n        call     [rax]System.Runtime.ExceptionServices.ExceptionDispatchInfo:Throw():this\n        int3     \n \t\t\t\t\t\t;; size=33 bbWeight=0 PerfScore 0.00\n-G_M37179_IG30:\n-       call     G_M37179_IG38\n-       jmp      G_M37179_IG36\n\u002BG_M37179_IG28:\n\u002B       call     G_M37179_IG36\n\u002B       jmp      G_M37179_IG34\n \t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.00\n-G_M37179_IG31:\n\u002BG_M37179_IG29:\n        cmp      dword ptr [rbp-0x1C], 0\n-       jge      SHORT G_M37179_IG32\n\u002B       jge      SHORT G_M37179_IG30\n        mov      rbx, bword ptr [rbp-0x50]\n        cmp      gword ptr [rbx\u002B0x38], 0\n-       je       SHORT G_M37179_IG32\n\u002B       je       SHORT G_M37179_IG30\n        mov      rdi, gword ptr [rbx\u002B0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        nop      \n \t\t\t\t\t\t;; size=35 bbWeight=1 PerfScore 11.50\n-G_M37179_IG32:\n\u002BG_M37179_IG30:\n        xor      rdi, rdi\n        mov      rbx, bword ptr [rbp-0x50]\n        mov      gword ptr [rbx\u002B0x38], rdi\n@@ -457,12 \u002B441,12 @@ G_M37179_IG32:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x38], edi\n        test     byte  ptr [rbp-0x38], 4\n-       jne      SHORT G_M37179_IG33\n\u002B       jne      SHORT G_M37179_IG31\n        mov      rdi, gword ptr [rbp-0x40]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M37179_IG07\n \t\t\t\t\t\t;; size=60 bbWeight=1 PerfScore 17.75\n-G_M37179_IG33:\n\u002BG_M37179_IG31:\n        mov      rbx, bword ptr [rbp-0x50]\n        mov      dword ptr [rbx\u002B0x48], 1\n        lea      rdi, bword ptr [rbx\u002B0x68]\n@@ -478,30 \u002B462,30 @@ G_M37179_IG33:\n        lea      rdi, [rbp-0x40]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u002BConfiguredTaskAwaiter](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u002BConfiguredTaskAwaiter](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      SHORT G_M37179_IG36\n\u002B       jmp      SHORT G_M37179_IG34\n \t\t\t\t\t\t;; size=70 bbWeight=1 PerfScore 16.50\n-G_M37179_IG34:\n\u002BG_M37179_IG32:\n        mov      dword ptr [rbx\u002B0x48], -2\n        xor      rdi, rdi\n        mov      gword ptr [rbx\u002B0x28], rdi\n        lea      rdi, bword ptr [rbx\u002B0x50]\n        cmp      gword ptr [rdi], 0\n-       je       SHORT G_M37179_IG35\n\u002B       je       SHORT G_M37179_IG33\n        mov      rdi, gword ptr [rdi]\n        xor      esi, esi\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.Threading.Tasks.VoidTaskResult],System.Threading.Tasks.VoidTaskResult)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.Threading.Tasks.VoidTaskResult],System.Threading.Tasks.VoidTaskResult)\n-       jmp      SHORT G_M37179_IG36\n\u002B       jmp      SHORT G_M37179_IG34\n \t\t\t\t\t\t;; size=42 bbWeight=1 PerfScore 13.25\n-G_M37179_IG35:\n\u002BG_M37179_IG33:\n        mov      rsi, 0xD1FFAB1E      ; const ptr\n        mov      rsi, gword ptr [rsi]\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 3.25\n-G_M37179_IG36:\n\u002BG_M37179_IG34:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M37179_IG37:\n\u002BG_M37179_IG35:\n        add      rsp, 56\n        pop      rbx\n        pop      r14\n@@ -509,28 \u002B493,28 @@ G_M37179_IG37:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M37179_IG38:\n\u002BG_M37179_IG36:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 1.00\n-G_M37179_IG39:\n\u002BG_M37179_IG37:\n        cmp      dword ptr [rbp-0x1C], 0\n-       jge      SHORT G_M37179_IG40\n\u002B       jge      SHORT G_M37179_IG38\n        mov      rbx, bword ptr [rbp-0x50]\n        mov      rdi, gword ptr [rbx\u002B0x38]\n        test     rdi, rdi\n-       je       SHORT G_M37179_IG40\n\u002B       je       SHORT G_M37179_IG38\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        nop      \n \t\t\t\t\t\t;; size=33 bbWeight=1 PerfScore 9.75\n-G_M37179_IG40:\n\u002BG_M37179_IG38:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M37179_IG41:\n\u002BG_M37179_IG39:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M37179_IG42:\n\u002BG_M37179_IG40:\n        mov      rsi, rdi\n        mov      rbx, bword ptr [rbp-0x50]\n        mov      rax, gword ptr [rbx\u002B0x20]\n@@ -539,10 \u002B523,10 @@ G_M37179_IG42:\n        call     CORINFO_HELP_RETHROW\n        int3     \n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M37179_IG43:\n\u002BG_M37179_IG41:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M37179_IG44:\n\u002BG_M37179_IG42:\n        mov      rsi, rdi\n        mov      rbx, bword ptr [rbp-0x50]\n        mov      dword ptr [rbx\u002B0x48], -2\n@@ -551,12 \u002B535,12 @@ G_M37179_IG44:\n        lea      rdi, bword ptr [rbx\u002B0x50]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder:SetException(System.Exception):this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder:SetException(System.Exception):this\n-       lea      rax, G_M37179_IG36\n\u002B       lea      rax, G_M37179_IG34\n \t\t\t\t\t\t;; size=43 bbWeight=0 PerfScore 0.00\n-G_M37179_IG45:\n\u002BG_M37179_IG43:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1484, prolog size 35, PerfScore 714.83, instruction count 358, allocated bytes for code 1484 (MethodHash=55796ec4) for method Nest.Extensions\u002B\u003CForEachAsync\u003Ed__29\u00602[long,System.Nullable\u00601[int]]:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 1435, prolog size 35, PerfScore 700.08, instruction count 346, allocated bytes for code 1435 (MethodHash=55796ec4) for method Nest.Extensions\u002B\u003CForEachAsync\u003Ed__29\u00602[long,System.Nullable\u00601[int]]:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1484,"DiffBytes":1435},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.MoneyManagement.FinancialAccounts.StatementService:ListAutoPaging(System.String,Stripe.V2.MoneyManagement.FinancialAccounts.StatementListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.FinancialAccountStatement]:this (FullOpts)","Category":"improvement","Description":"513 -\u003E 464 bytes (-49)","ExtraInfo":null,"Diff":"@@ -9,33 \u002B9,32 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T05] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.MoneyManagement.FinancialAccounts.StatementService\u003E\n-;  V01 arg1         [V01,T08] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.MoneyManagement.FinancialAccounts.StatementListOptions\u003E\n-;  V03 arg3         [V03,T07] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T07] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V02 arg2         [V02,T08] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.MoneyManagement.FinancialAccounts.StatementListOptions\u003E\n\u002B;  V03 arg3         [V03,T06] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T11] (  3,  2   )     ref  -\u003E  r15         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.FinancialAccountStatement]\u003E\n ;  V06 tmp2         [V06,T02] (  4,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V07 tmp3         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V08 tmp4         [V08,T12] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;  V09 tmp5         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.FinancialAccountStatement]\u003E\n-;* V10 tmp6         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp8         [V12,T03] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.FinancialAccountStatement]\u003E\n-;  V13 tmp9         [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.FinancialAccountStatement]\u003E\n-;* V14 tmp10        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp11        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp12        [V16,T04] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.FinancialAccountStatement]\u003E\n-;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V07._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp14        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp15        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp16        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp17        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 tmp18        [V22,T09] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V23 cse0         [V23,T10] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #02: moderate\u0022\n-;  V24 rat0         [V24,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T15] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T16] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.FinancialAccountStatement]\u003E\n\u002B;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp6         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp7         [V11,T03] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.FinancialAccountStatement]\u003E\n\u002B;  V12 tmp8         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.FinancialAccountStatement]\u003E\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp11        [V15,T04] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.FinancialAccountStatement]\u003E\n\u002B;* V16 tmp12        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V07._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp14        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp15        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp16        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 tmp17        [V21,T09] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V22 cse0         [V22,T10] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #02: moderate\u0022\n\u002B;  V23 rat0         [V23,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T15] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n@@ -49,8 \u002B48,8 @@ G_M10825_IG01:\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rdx\n-       mov      r14, rcx\n\u002B       mov      r14, rdx\n\u002B       mov      r15, rcx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M10825_IG02:\n        mov      rdi, rsi\n@@ -69,49 \u002B68,41 @@ G_M10825_IG02:\n        je       G_M10825_IG04\n \t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 12.50\n G_M10825_IG03:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.FinancialAccountStatement]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n-       mov      eax, dword ptr [rax\u002B0x10]\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, dword ptr [rax\u002B0x10]\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x28]\n\u002B       lea      rdi, bword ptr [r14\u002B0x28]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.FinancialAccountStatement]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        mov      dword ptr [r15\u002B0x28], -2\n-       mov      r14d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r15\u002B0x2C], r14d\n\u002B       mov      dword ptr [r15\u002B0x2C], r12d\n        lea      rdi, bword ptr [r15\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M10825_IG05\n-\t\t\t\t\t\t;; size=212 bbWeight=0.50 PerfScore 16.00\n\u002B\t\t\t\t\t\t;; size=164 bbWeight=0.50 PerfScore 12.75\n G_M10825_IG04:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.FinancialAccountStatement]\n        call     CORINFO_HELP_NEWSFAST\n@@ -134,10 \u002B125,10 @@ G_M10825_IG04:\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n@@ -145,12 \u002B136,12 @@ G_M10825_IG04:\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        mov      dword ptr [r15\u002B0x28], -2\n-       mov      r14d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r15\u002B0x2C], r14d\n\u002B       mov      ebx, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r15\u002B0x2C], ebx\n        lea      rdi, bword ptr [r15\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=181 bbWeight=0.50 PerfScore 13.12\n\u002B\t\t\t\t\t\t;; size=180 bbWeight=0.50 PerfScore 13.12\n G_M10825_IG05:\n        mov      rax, r15\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n@@ -165,5 \u002B156,5 @@ G_M10825_IG06:\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 513, prolog size 16, PerfScore 54.38, instruction count 113, allocated bytes for code 513 (MethodHash=e9aad5b6) for method Stripe.V2.MoneyManagement.FinancialAccounts.StatementService:ListAutoPaging(System.String,Stripe.V2.MoneyManagement.FinancialAccounts.StatementListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.FinancialAccountStatement]:this (FullOpts)\n\u002B; Total bytes of code 464, prolog size 16, PerfScore 51.12, instruction count 105, allocated bytes for code 464 (MethodHash=e9aad5b6) for method Stripe.V2.MoneyManagement.FinancialAccounts.StatementService:ListAutoPaging(System.String,Stripe.V2.MoneyManagement.FinancialAccounts.StatementListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.FinancialAccountStatement]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":513,"DiffBytes":464},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.Internal.Data.DatabaseCommand\u002B\u003CExecuteAsync\u003Ed__12\u00601[System.Numerics.Vector\u00601[float]]:MoveNext():this (FullOpts)","Category":"same-size","Description":"4,450 -\u003E 4,450 bytes (0)","ExtraInfo":null,"Diff":"@@ -408,7 \u002B408,7 @@ G_M57942_IG14:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        cmp      byte  ptr [rax\u002B0x10], 0\n        jne      SHORT G_M57942_IG15\n        mov      rsi, gword ptr [rbx\u002B0x08]","Truncated":true,"BaseBytes":4450,"DiffBytes":4450},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Objects.ELinq.ExpressionConverter\u002BMethodCallTranslator\u002BStringConcatTranslator:Translate(System.Data.Entity.Core.Objects.ELinq.ExpressionConverter,System.Linq.Expressions.MethodCallExpression):System.Data.Entity.Core.Common.CommandTrees.DbExpression:this (FullOpts)","Category":"improvement","Description":"961 -\u003E 853 bytes (-108)","ExtraInfo":null,"Diff":"@@ -12,50 \u002B12,50 @@\n ;  V01 arg1         [V01,T03] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Objects.ELinq.ExpressionConverter\u003E\n ;  V02 arg2         [V02,T00] ( 11,  8   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n ;  V03 loc0         [V03,T10] (  4,  2.50)     ref  -\u003E  rax         class-hnd \u003CSystem.Linq.Expressions.Expression[]\u003E\n-;  V04 loc1         [V04,T32] (  4,  1   )     ref  -\u003E  rdi         class-hnd single-def \u003CSystem.Linq.Expressions.ConstantExpression\u003E\n\u002B;  V04 loc1         [V04,T30] (  4,  1   )     ref  -\u003E  rdi         class-hnd single-def \u003CSystem.Linq.Expressions.ConstantExpression\u003E\n ;* V05 loc2         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Linq.Expressions.Expression[]\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T18] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Object,System.Linq.Expressions.ConstantExpression]\u003E\n-;  V08 tmp2         [V08,T19] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Object[]\u003E\n\u002B;  V07 tmp1         [V07,T14] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Object,System.Linq.Expressions.ConstantExpression]\u003E\n\u002B;  V08 tmp2         [V08,T15] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Object[]\u003E\n ;* V09 tmp3         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V10 tmp4         [V10,T13] (  4,  2   )     ref  -\u003E  rdx        \n ;  V11 tmp5         [V11,T02] (  5,  5   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Object,System.Linq.Expressions.ConstantExpression]\u003E\n-;  V12 tmp6         [V12,T34] (  2,  0   )     ref  -\u003E  rbx        \n-;  V13 tmp7         [V13,T33] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V12 tmp6         [V12,T32] (  2,  0   )     ref  -\u003E  rbx        \n\u002B;  V13 tmp7         [V13,T31] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n ;* V14 tmp8         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V15 tmp9         [V15,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V16 tmp10        [V16    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T08] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V16 tmp10        [V16    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V17 tmp11        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V18 tmp12        [V18,T14] (  4,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V19 tmp13        [V19,T15] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V20 tmp14        [V20,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V21 tmp15        [V21    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V18 tmp12        [V18,T25] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;* V19 tmp13        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V20 tmp14        [V20,T09] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V21 tmp15        [V21    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V23 tmp17        [V23,T16] (  4,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V24 tmp18        [V24,T17] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V23 tmp17        [V23,T26] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;* V24 tmp18        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n ;* V25 tmp19        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n ;* V26 tmp20        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n ;* V27 tmp21        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Linq.Expressions.NewArrayExpression\u003E\n ;* V28 tmp22        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V29 tmp23        [V29,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Objects.ELinq.ExpressionConverter\u002BMethodCallTranslator\u002BStringConcatTranslator\u002B\u003C\u003Ec\u003E\n-;  V30 tmp24        [V30,T06] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V31 tmp25        [V31,T21] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V32 tmp26        [V32,T22] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V33 tmp27        [V33,T23] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V34 tmp28        [V34,T24] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V29 tmp23        [V29,T16] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Objects.ELinq.ExpressionConverter\u002BMethodCallTranslator\u002BStringConcatTranslator\u002B\u003C\u003Ec\u003E\n\u002B;  V30 tmp24        [V30,T04] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V31 tmp25        [V31,T17] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V32 tmp26        [V32,T18] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V33 tmp27        [V33,T19] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V34 tmp28        [V34,T20] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V35 tmp29        [V35,T11] (  3,  2.25)     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n-;  V36 tmp30        [V36,T25] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V37 tmp31        [V37,T26] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V36 tmp30        [V36,T21] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V37 tmp31        [V37,T22] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V38 tmp32        [V38,T12] (  3,  2.25)     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n-;  V39 tmp33        [V39,T27] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V39 tmp33        [V39,T23] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;  V40 cse0         [V40,T01] (  8,  5   )    long  -\u003E  r14         \u0022CSE #02: aggressive\u0022\n-;  V41 cse1         [V41,T28] (  4,  1.62)     ref  -\u003E  rsi         \u0022CSE #05: moderate\u0022\n-;  V42 rat0         [V42,T07] (  5,  3.75)     ref  -\u003E  rcx         \u0022replacement local\u0022\n-;  V43 rat1         [V43,T29] (  3,  1.25)    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n-;  V44 rat2         [V44,T08] (  5,  3.75)     ref  -\u003E  rdi         \u0022replacement local\u0022\n-;  V45 rat3         [V45,T30] (  3,  1.25)    long  -\u003E  rcx         \u0022CSE for expectedClsNode\u0022\n-;  V46 rat4         [V46,T09] (  5,  3.75)     ref  -\u003E  r14         \u0022replacement local\u0022\n-;  V47 rat5         [V47,T31] (  3,  1.25)    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n\u002B;  V41 cse1         [V41,T24] (  4,  1.62)     ref  -\u003E  rsi         \u0022CSE #05: moderate\u0022\n... diff truncated; middle omitted ...\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:ToArray[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.__Canon[]\n        call     [rax]System.Linq.Enumerable:ToArray[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.__Canon[]\n-       jmp      G_M6064_IG21\n\u002B       jmp      G_M6064_IG17\n \t\t\t\t\t\t;; size=37 bbWeight=0.50 PerfScore 4.50\n-G_M6064_IG09:\n\u002BG_M6064_IG05:\n        mov      rdi, rbx\n        call     [r14\u002B0x20]System.Linq.Expressions.MethodCallExpression:GetOrMakeArguments():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]:this\n        mov      rdi, gword ptr [rax\u002B0x08]\n@@ -177,7 \u002B143,7 @@ G_M6064_IG09:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       jne      G_M6064_IG17\n\u002B       jne      G_M6064_IG13\n        mov      rdi, rbx\n        call     [r14\u002B0x20]System.Linq.Expressions.MethodCallExpression:GetOrMakeArguments():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]:this\n        mov      rdi, gword ptr [rax\u002B0x08]\n@@ -186,43 \u002B152,43 @@ G_M6064_IG09:\n        call     [r11]System.Collections.Generic.IList\u00601[System.__Canon]:get_Item(int):System.__Canon:this\n        mov      rdi, rax\n        test     rdi, rdi\n-       je       SHORT G_M6064_IG12\n\u002B       je       SHORT G_M6064_IG08\n \t\t\t\t\t\t;; size=94 bbWeight=0.50 PerfScore 12.00\n-G_M6064_IG10:\n\u002BG_M6064_IG06:\n        mov      rcx, 0xD1FFAB1E      ; System.Linq.Expressions.ConstantExpression\n        cmp      qword ptr [rdi], rcx\n-       je       SHORT G_M6064_IG12\n\u002B       je       SHORT G_M6064_IG08\n \t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M6064_IG11:\n\u002BG_M6064_IG07:\n        mov      rsi, rax\n        mov      rdi, rcx\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        mov      rdi, rax\n \t\t\t\t\t\t;; size=21 bbWeight=0.12 PerfScore 0.50\n-G_M6064_IG12:\n\u002BG_M6064_IG08:\n        mov      rsi, gword ptr [rdi\u002B0x08]\n        test     rsi, rsi\n-       je       G_M6064_IG25\n\u002B       je       G_M6064_IG21\n        mov      r14, rsi\n        test     r14, r14\n-       je       SHORT G_M6064_IG15\n\u002B       je       SHORT G_M6064_IG11\n \t\t\t\t\t\t;; size=21 bbWeight=0.50 PerfScore 2.38\n-G_M6064_IG13:\n\u002BG_M6064_IG09:\n        mov      rdi, 0xD1FFAB1E      ; System.Object[]\n        cmp      qword ptr [r14], rdi\n-       je       SHORT G_M6064_IG15\n\u002B       je       SHORT G_M6064_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M6064_IG14:\n\u002BG_M6064_IG10:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTARRAY\n        call     [rax]CORINFO_HELP_CHKCASTARRAY\n        mov      r14, rax\n \t\t\t\t\t\t;; size=15 bbWeight=0.12 PerfScore 0.44\n-G_M6064_IG15:\n\u002BG_M6064_IG11:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Data.Entity.Core.Objects.ELinq.ExpressionConverter\u002BMethodCallTranslator\u002BStringConcatTranslator\u002B\u003C\u003Ec:\u003C\u003E9__2_0\n        mov      rdx, gword ptr [rdi]\n        test     rdx, rdx\n-       jne      SHORT G_M6064_IG16\n\u002B       jne      SHORT G_M6064_IG12\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[System.Object,System.Linq.Expressions.ConstantExpression]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n@@ -237,7 \u002B203,7 @@ G_M6064_IG15:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdx, r13\n \t\t\t\t\t\t;; size=93 bbWeight=0.50 PerfScore 5.88\n-G_M6064_IG16:\n\u002BG_M6064_IG12:\n        mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:Select[System.Object,System.Linq.Expressions.ConstantExpression](System.Collections.Generic.IEnumerable\u00601[System.Object],System.Func\u00602[System.Object,System.Linq.Expressions.ConstantExpression]):System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.ConstantExpression]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:Select[System.__Canon,System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Func\u00602[System.__Canon,System.__Canon]):System.Collections.Generic.IEnumerable\u00601[System.__Canon]\n@@ -246,9 \u002B212,9 @@ G_M6064_IG16:\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:ToArray[System.Linq.Expressions.ConstantExpression](System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.ConstantExpression]):System.Linq.Expressions.ConstantExpression[]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:ToArray[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.__Canon[]\n        call     [rax]System.Linq.Enumerable:ToArray[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.__Canon[]\n-       jmp      SHORT G_M6064_IG21\n\u002B       jmp      SHORT G_M6064_IG17\n \t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 4.75\n-G_M6064_IG17:\n\u002BG_M6064_IG13:\n        mov      rdi, rbx\n        call     [r14\u002B0x20]System.Linq.Expressions.MethodCallExpression:GetOrMakeArguments():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]:this\n        mov      rdi, gword ptr [rax\u002B0x08]\n@@ -257,26 \u002B223,26 @@ G_M6064_IG17:\n        call     [r11]System.Collections.Generic.IList\u00601[System.__Canon]:get_Item(int):System.__Canon:this\n        mov      rcx, rax\n        test     rcx, rcx\n-       je       SHORT G_M6064_IG20\n\u002B       je       SHORT G_M6064_IG16\n \t\t\t\t\t\t;; size=34 bbWeight=0.50 PerfScore 5.12\n-G_M6064_IG18:\n\u002BG_M6064_IG14:\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Expressions.NewArrayExpression\n        cmp      qword ptr [rcx], rdi\n-       je       SHORT G_M6064_IG20\n\u002B       je       SHORT G_M6064_IG16\n \t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M6064_IG19:\n\u002BG_M6064_IG15:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        mov      rcx, rax\n \t\t\t\t\t\t;; size=18 bbWeight=0.12 PerfScore 0.47\n-G_M6064_IG20:\n\u002BG_M6064_IG16:\n        mov      rsi, gword ptr [rcx\u002B0x10]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:ToArray[System.Linq.Expressions.Expression](System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.Expression]):System.Linq.Expressions.Expression[]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:ToArray[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.__Canon[]\n        call     [rax]System.Linq.Enumerable:ToArray[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.__Canon[]\n \t\t\t\t\t\t;; size=26 bbWeight=0.50 PerfScore 2.75\n-G_M6064_IG21:\n\u002BG_M6064_IG17:\n        mov      rdi, r15\n        mov      rsi, rbx\n        mov      rdx, rax\n@@ -284,7 \u002B250,7 @@ G_M6064_IG21:\n        call     [rax]System.Data.Entity.Core.Objects.ELinq.ExpressionConverter\u002BStringTranslatorUtil:ConcatArgs(System.Data.Entity.Core.Objects.ELinq.ExpressionConverter,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression[]):System.Data.Entity.Core.Common.CommandTrees.DbExpression\n        nop      \n \t\t\t\t\t\t;; size=22 bbWeight=1 PerfScore 4.25\n-G_M6064_IG22:\n\u002BG_M6064_IG18:\n        add      rsp, 16\n        pop      rbx\n        pop      r13\n@@ -293,18 \u002B259,18 @@ G_M6064_IG22:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n-G_M6064_IG23:\n\u002BG_M6064_IG19:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M6064_IG24:\n\u002BG_M6064_IG20:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M6064_IG25:\n\u002BG_M6064_IG21:\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x28]System.Linq.Expressions.Expression:get_Type():System.Type:this\n@@ -325,5 \u002B291,5 @@ G_M6064_IG25:\n        int3     \n \t\t\t\t\t\t;; size=92 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 961, prolog size 27, PerfScore 105.97, instruction count 215, allocated bytes for code 961 (MethodHash=9bd5e84f) for method System.Data.Entity.Core.Objects.ELinq.ExpressionConverter\u002BMethodCallTranslator\u002BStringConcatTranslator:Translate(System.Data.Entity.Core.Objects.ELinq.ExpressionConverter,System.Linq.Expressions.MethodCallExpression):System.Data.Entity.Core.Common.CommandTrees.DbExpression:this (FullOpts)\n\u002B; Total bytes of code 853, prolog size 27, PerfScore 90.97, instruction count 189, allocated bytes for code 853 (MethodHash=9bd5e84f) for method System.Data.Entity.Core.Objects.ELinq.ExpressionConverter\u002BMethodCallTranslator\u002BStringConcatTranslator:Translate(System.Data.Entity.Core.Objects.ELinq.ExpressionConverter,System.Linq.Expressions.MethodCallExpression):System.Data.Entity.Core.Common.CommandTrees.DbExpression:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":961,"DiffBytes":853},{"Assembly":"MathNet.Numerics.dasm","Method":"MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:SameAs[System.Numerics.Vector\u00601[float]](MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this (FullOpts)","Category":"improvement","Description":"594 -\u003E 120 bytes (-474)","ExtraInfo":null,"Diff":"@@ -1,214 \u002B1,65 @@\n ; Assembly listing for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:SameAs[System.Numerics.Vector\u00601[float]](MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n-; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data\n\u002B; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 12,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]\u003E\n-;  V01 arg1         [V01,T03] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V02 arg2         [V02,T01] ( 11,  6.50)     int  -\u003E  r15         single-def\n-;  V03 arg3         [V03,T02] ( 11,  6.50)     int  -\u003E  r14         single-def\n-;  V04 arg4         [V04,T04] (  3,  2.50)   ubyte  -\u003E  r13         single-def\n-;  V05 loc0         [V05,T08] (  4,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]\u003E\n\u002B;  V01 arg1         [V01,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  4   )     int  -\u003E  r15         single-def\n\u002B;  V03 arg3         [V03,T04] (  4,  4   )     int  -\u003E  r14         single-def\n\u002B;* V04 arg4         [V04    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def\n\u002B;* V05 loc0         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]\u003E\n\u002B;  V07 tmp1         [V07,T00] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cint[]\u003E\n-;  V09 tmp3         [V09,T06] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[int]\u003E\n-;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cint[]\u003E\n-;  V11 tmp5         [V11,T11] (  2,  1   )     int  -\u003E  rsi         \u0022Inline return value spill temp\u0022\n-;  V12 tmp6         [V12,T09] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]\u003E\n-;  V13 tmp7         [V13,T10] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]\u003E\n-;  V14 tmp8         [V14,T07] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]\u003E\n-;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cint[]\u003E\n-;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022Single return block return value\u0022\n ;\n ; Lcl frame size = 8\n \n G_M23676_IG01:\n-       push     rbp\n        push     r15\n        push     r14\n        push     r13\n-       push     r12\n        push     rbx\n        push     rax\n-       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n        mov      r15d, edx\n        mov      r14d, ecx\n-       mov      r13d, r8d\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.75\n G_M23676_IG02:\n-       mov      r12, gword ptr [rsi\u002B0x08]\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M23676_IG11\n-\t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 7.00\n-G_M23676_IG03:\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[int]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M23676_IG07\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      SHORT G_M23676_IG05\n\u002B       cmp      byte  ptr [rsi], sil\n        mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        mov      rdi, r13\n        mov      esi, r15d\n        mov      edx, r14d\n        mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]:.ctor(int,int):this\n        call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]:.ctor(int,int):this\n        imul     r15d, r14d\n        movsxd   rsi, r15d\n        mov      rdi, 0xD1FFAB1E      ; int[]\n        call     CORINFO_HELP_NEWARR_1_VC\n        mov      rsi, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, rbx\n        mov      rsi, r13\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=150 bbWeight=0.50 PerfScore 12.62\n-G_M23676_IG04:\n\u002B\t\t\t\t\t\t;; size=89 bbWeight=1 PerfScore 17.25\n\u002BG_M23676_IG03:\n        add      rsp, 8\n        pop      rbx\n-       pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n-       pop      rbp\n        tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M23676_IG05:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 5.00\n-G_M23676_IG06:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M23676_IG07:\n-       test     r13b, r13b\n-       je       SHORT G_M23676_IG09\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 5.62\n-G_M23676_IG08:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M23676_IG09:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[int]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]:.ctor(int,int):this\n-       cmp      r15d, r14d\n-       mov      esi, r14d\n-       cmovle   esi, r15d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; int[]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 7.12\n-G_M23676_IG10:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x10]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:Diagonal(MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[int]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M23676_IG11:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]:.ctor(int,int):this\n-       mov      esi, r15d\n-       imul     esi, r14d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; int[]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=89 bbWeight=0.50 PerfScore 7.75\n-G_M23676_IG12:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n\u002B\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 594, prolog size 16, PerfScore 66.75, instruction count 157, allocated bytes for code 594 (MethodHash=70d9a383) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:SameAs[System.Numerics.Vector\u00601[float]](MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this (FullOpts)\n\u002B; Total bytes of code 120, prolog size 8, PerfScore 27.25, instruction count 34, allocated bytes for code 120 (MethodHash=70d9a383) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:SameAs[System.Numerics.Vector\u00601[float]](MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":594,"DiffBytes":120},{"Assembly":"Microsoft.AspNetCore.OData.dasm","Method":"Microsoft.AspNetCore.OData.Query.Expressions.ExpressionBinderBase:SkipFilters(System.Linq.Expressions.MethodCallExpression):System.Linq.Expressions.MethodCallExpression (FullOpts)","Category":"improvement","Description":"241 -\u003E 197 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,113 \u002B1,97 @@\n ; Assembly listing for method Microsoft.AspNetCore.OData.Query.Expressions.ExpressionBinderBase:SkipFilters(System.Linq.Expressions.MethodCallExpression):System.Linq.Expressions.MethodCallExpression (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 5 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T03] (  7, 23   )     ref  -\u003E  rbx         class-hnd \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n\u002B;  V00 arg0         [V00,T02] (  7, 23   )     ref  -\u003E  rbx         class-hnd \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V02 tmp1         [V02,T02] (  4, 28   )     ref  -\u003E  rbx         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V03 tmp2         [V03    ] (  2,  4   )   ubyte  -\u003E  [rbp-0x10]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V04 tmp3         [V04,T05] (  3,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V05 tmp4         [V05,T04] (  4, 12   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V02 tmp1         [V02,T03] (  3, 24   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V03 tmp2         [V03    ] (  1,  4   )   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V04 tmp3         [V04,T05] (  2,  8   )     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;* V05 tmp4         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n ;* V06 tmp5         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V07 tmp6         [V07,T01] (  6, 38   )     ref  -\u003E  rax         \u0022spilling varStr\u0022\n ;* V08 tmp7         [V08    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling unroll qmark\u0022\n ;  V09 tmp8         [V09,T00] (  3, 48   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n\u002B;  V10 cse0         [V10,T04] (  2,  9   )     ref  -\u003E  r15         hoist \u0022CSE #01: aggressive\u0022\n ;\n-; Lcl frame size = 8\n\u002B; Lcl frame size = 16\n \n G_M29136_IG01:\n        push     rbp\n\u002B       push     r15\n        push     rbx\n-       push     rax\n-       lea      rbp, [rsp\u002B0x10]\n\u002B       sub      rsp, 16\n\u002B       lea      rbp, [rsp\u002B0x20]\n        mov      rbx, rdi\n-\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.75\n\u002B\t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 4.00\n G_M29136_IG02:\n-       jmp      SHORT G_M29136_IG05\n-\t\t\t\t\t\t;; size=2 bbWeight=1 PerfScore 2.00\n\u002B       mov      r15, 0xD1FFAB1E      ; \u0027Where\u0027\n\u002B       jmp      SHORT G_M29136_IG06\n\u002B\t\t\t\t\t\t;; size=12 bbWeight=1 PerfScore 2.25\n G_M29136_IG03:\n-       lea      rsi, [rbp-0x10]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-\t\t\t\t\t\t;; size=17 bbWeight=2 PerfScore 15.50\n-G_M29136_IG04:\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Expressions.MethodCallExpression\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      rbx, rax\n-\t\t\t\t\t\t;; size=28 bbWeight=4 PerfScore 16.00\n-G_M29136_IG05:\n-       mov      rdi, gword ptr [rbx\u002B0x08]\n-       mov      rax, qword ptr [rdi]\n-       mov      rax, qword ptr [rax\u002B0x40]\n-       call     [rax\u002B0x30]System.Reflection.MemberInfo:get_Name():System.String:this\n-       mov      rdi, 0xD1FFAB1E      ; \u0027Where\u0027\n-       cmp      rax, rdi\n-       je       SHORT G_M29136_IG09\n-\t\t\t\t\t\t;; size=29 bbWeight=8 PerfScore 84.00\n-G_M29136_IG06:\n-       test     rax, rax\n-       je       SHORT G_M29136_IG11\n-\t\t\t\t\t\t;; size=5 bbWeight=2 PerfScore 2.50\n-G_M29136_IG07:\n        cmp      dword ptr [rax\u002B0x08], 5\n-       jne      SHORT G_M29136_IG11\n-\t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 1.50\n-G_M29136_IG08:\n\u002B       jne      G_M29136_IG08\n\u002B\t\t\t\t\t\t;; size=10 bbWeight=0.50 PerfScore 1.50\n\u002BG_M29136_IG04:\n        mov      rdi, 0xD1FFAB1E\n        xor      rdi, qword ptr [rax\u002B0x0C]\n        movzx    rax, word  ptr [rax\u002B0x14]\n        xor      eax, 101\n        or       rdi, rax\n-       jne      SHORT G_M29136_IG11\n\u002B       jne      SHORT G_M29136_IG08\n \t\t\t\t\t\t;; size=26 bbWeight=0.25 PerfScore 1.44\n-G_M29136_IG09:\n\u002BG_M29136_IG05:\n        mov      rdi, rbx\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x20]System.Linq.Expressions.MethodCallExpression:GetOrMakeArguments():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]:this\n-       mov      rbx, rax\n-       test     rbx, rbx\n-       je       SHORT G_M29136_IG13\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       jne      G_M29136_IG03\n-\t\t\t\t\t\t;; size=55 bbWeight=4 PerfScore 55.00\n-G_M29136_IG10:\n-       lea      rdx, [rbp-0x10]\n-       mov      rsi, rbx\n\u002B       je       SHORT G_M29136_IG10\n\u002B       lea      rdx, [rbp-0x18]\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Linq.Expressions.Expression](System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.Expression],byref):System.Linq.Expressions.Expression\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       jmp      G_M29136_IG04\n-\t\t\t\t\t\t;; size=34 bbWeight=2 PerfScore 12.50\n-G_M29136_IG11:\n\u002B       mov      rsi, rax\n\u002B       mov      rdi, 0xD1FFAB1E      ; System.Linq.Expressions.MethodCallExpression\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n\u002B       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n\u002B       mov      rbx, rax\n\u002B\t\t\t\t\t\t;; size=75 bbWeight=4 PerfScore 67.00\n\u002BG_M29136_IG06:\n\u002B       mov      rdi, gword ptr [rbx\u002B0x08]\n\u002B       mov      rax, qword ptr [rdi]\n\u002B       mov      rax, qword ptr [rax\u002B0x40]\n\u002B       call     [rax\u002B0x30]System.Reflection.MemberInfo:get_Name():System.String:this\n\u002B       cmp      rax, r15\n\u002B       je       SHORT G_M29136_IG05\n\u002B\t\t\t\t\t\t;; size=19 bbWeight=8 PerfScore 82.00\n\u002BG_M29136_IG07:\n\u002B       test     rax, rax\n\u002B       jne      G_M29136_IG03\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=2 PerfScore 2.50\n\u002BG_M29136_IG08:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M29136_IG12:\n-       add      rsp, 8\n\u002BG_M29136_IG09:\n\u002B       add      rsp, 16\n        pop      rbx\n\u002B       pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.25\n-G_M29136_IG13:\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 2.75\n\u002BG_M29136_IG10:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 241, prolog size 8, PerfScore 196.69, instruction count 61, allocated bytes for code 241 (MethodHash=59468e2f) for method Microsoft.AspNetCore.OData.Query.Expressions.ExpressionBinderBase:SkipFilters(System.Linq.Expressions.MethodCallExpression):System.Linq.Expressions.MethodCallExpression (FullOpts)\n\u002B; Total bytes of code 197, prolog size 13, PerfScore 163.69, instruction count 50, allocated bytes for code 197 (MethodHash=59468e2f) for method Microsoft.AspNetCore.OData.Query.Expressions.ExpressionBinderBase:SkipFilters(System.Linq.Expressions.MethodCallExpression):System.Linq.Expressions.MethodCallExpression (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":241,"DiffBytes":197},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:Aggregate[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Nullable\u00601[int]]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n... diff truncated; middle omitted ...\n\u002B       je       SHORT G_M31868_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M31868_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M31868_IG26:\n\u002BG_M31868_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M31868_IG27:\n\u002BG_M31868_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M31868_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M31868_IG28:\n\u002BG_M31868_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M31868_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M31868_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M31868_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M31868_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M31868_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M31868_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M31868_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M31868_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M31868_IG31\n\u002B       je       SHORT G_M31868_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M31868_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M31868_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M31868_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M31868_IG32\n\u002B       je       SHORT G_M31868_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M31868_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M31868_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M31868_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M31868_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateAggregateToCollectionResultCursor[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M31868_IG33:\n\u002BG_M31868_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M31868_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M31868_IG34:\n\u002BG_M31868_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M31868_IG35:\n\u002BG_M31868_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M31868_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M31868_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M31868_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M31868_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M31868_IG37\n\u002B       je       SHORT G_M31868_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M31868_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M31868_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M31868_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M31868_IG38\n\u002B       je       SHORT G_M31868_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M31868_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M31868_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M31868_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M31868_IG39:\n\u002BG_M31868_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M31868_IG40:\n\u002BG_M31868_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M31868_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M31868_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M31868_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M31868_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M31868_IG42\n\u002B       je       SHORT G_M31868_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M31868_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M31868_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M31868_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M31868_IG43\n\u002B       je       SHORT G_M31868_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M31868_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M31868_IG43:\n\u002BG_M31868_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M31868_IG44:\n\u002BG_M31868_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=d9318383) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:Aggregate[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=d9318383) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:Aggregate[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Nest.dasm","Method":"Nest.Extensions\u002B\u003CForEachAsync\u003Ed__29\u00602[short,System.Nullable\u00601[int]]:MoveNext():this (FullOpts)","Category":"improvement","Description":"1,483 -\u003E 1,434 bytes (-49)","ExtraInfo":null,"Diff":"@@ -31,9 \u002B31,9 @@\n ;* V20 tmp7         [V20    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;* V21 tmp8         [V21    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;  V22 tmp9         [V22,T17] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Threading.Tasks.Task]\u003E\n-;  V23 tmp10        [V23,T45] (  2,  0   )     ref  -\u003E  rsi         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V23 tmp10        [V23,T44] (  2,  0   )     ref  -\u003E  rsi         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n ;  V24 tmp11        [V24,T18] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.SemaphoreSlim\u003E\n-;  V25 tmp12        [V25,T46] (  2,  0   )     ref  -\u003E  rsi         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V25 tmp12        [V25,T45] (  2,  0   )     ref  -\u003E  rsi         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n ;  V26 tmp13        [V26,T09] (  3, 20   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Threading.Tasks.Task[]\u003E\n ;  V27 tmp14        [V27,T07] (  4, 24   )     int  -\u003E  r14         \u0022Inline stloc first use temp\u0022\n ;  V28 tmp15        [V28,T02] (  3, 32   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n@@ -47,32 \u002B47,32 @@\n ;* V36 tmp23        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Threading.Tasks.Task]\u003E\n ;* V37 tmp24        [V37    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.Threading.Tasks.Task]\u003E\n ;* V38 tmp25        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Threading.Tasks.Task]\u003E\n-;* V39 tmp26        [V39,T41] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V40 tmp27        [V40,T27] (  2,  4   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;* V39 tmp26        [V39,T40] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V40 tmp27        [V40,T26] (  2,  4   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;* V41 tmp28        [V41    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V42 tmp29        [V42    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V43 tmp30        [V43    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V44 tmp31        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Runtime.CompilerServices.IAsyncStateMachineBox\u003E\n ;  V45 tmp32        [V45,T20] (  3,  6   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n-;  V46 tmp33        [V46,T28] (  2,  4   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n\u002B;  V46 tmp33        [V46,T27] (  2,  4   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;* V47 tmp34        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.AggregateException\u003E\n-;  V48 tmp35        [V48,T36] (  2,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.AggregateException\u003E\n\u002B;  V48 tmp35        [V48,T34] (  2,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.AggregateException\u003E\n ;* V49 tmp36        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.AggregateException\u003E\n-;  V50 tmp37        [V50,T37] (  3,  3   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.AggregateException\u003E\n\u002B;  V50 tmp37        [V50,T35] (  3,  3   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.AggregateException\u003E\n ;* V51 tmp38        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n ;  V52 tmp39        [V52,T12] (  4,  8   )     ref  -\u003E  r15         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.AggregateException\u003E\n-;  V53 tmp40        [V53,T29] (  2,  4   )     ref  -\u003E  r14         class-hnd \u0022dup spill\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n-;  V54 tmp41        [V54,T25] (  5,  5   )     ref  -\u003E  r14        \n\u002B;  V53 tmp40        [V53,T28] (  2,  4   )     ref  -\u003E  rsi         class-hnd \u0022dup spill\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n\u002B;  V54 tmp41        [V54,T25] (  4,  4   )     ref  -\u003E  rsi        \n ;  V55 tmp42        [V55,T13] (  4,  8   )     ref  -\u003E  r14         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n ;* V56 tmp43        [V56    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Exception]\u003E\n ;  V57 tmp44        [V57,T21] (  3,  6   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Exception[]\u003E\n-;  V58 tmp45        [V58    ] (  3,  3   )   ubyte  -\u003E  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V58 tmp45        [V58    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V59 tmp46        [V59    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V60 tmp47        [V60,T35] (  4,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Exception\u003E\n-;  V61 tmp48        [V61,T26] (  4,  4   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Exception]\u003E\n\u002B;  V60 tmp47        [V60,T39] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Exception\u003E\n\u002B;* V61 tmp48        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Exception]\u003E\n ;* V62 tmp49        [V62    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V63 tmp50        [V63,T14] (  4,  8   )     ref  -\u003E  r15         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Threading.Tasks.Task]\u003E\n-;  V64 tmp51        [V64,T39] (  3,  3   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n\u002B;  V64 tmp51        [V64,T37] (  3,  3   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n ;  V65 tmp52        [V65,T22] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n ;* V66 tmp53        [V66    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V67 tmp54        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -81,17 \u002B81,17 @@\n ;* V70 tmp57        [V70    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n ;* V71 tmp58        [V71    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u002BConfiguredTaskAwaiter\u003E\n ;* V72 tmp59        [V72    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n-;* V73 tmp60        [V73,T42] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V74 tmp61        [V74,T30] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n\u002B;* V73 tmp60        [V73,T41] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V74 tmp61        [V74,T29] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n ;* V75 tmp62        [V75    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V76 tmp63        [V76    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V77 tmp64        [V77    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V78 tmp65        [V78    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Runtime.CompilerServices.IAsyncStateMachineBox\u003E\n ;  V79 tmp66        [V79,T23] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n-;  V80 tmp67        [V80,T34] (  2,  4   )     int  -\u003E  rax         \u0022Inlining Arg\u0022\n\u002B;  V80 tmp67        [V80,T33] (  2,  4   )     int  -\u003E  rax         \u0022Inlining Arg\u0022\n ;  V81 tmp68        [V81,T15] (  4,  8   )   byref  -\u003E  rdi         single-def \u0022Inlining Arg\u0022\n-;* V82 tmp69        [V82,T43] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[SF] ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.Tasks.VoidTaskResult\u003E\n-;  V83 tmp70        [V83,T31] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Threading.Tasks.VoidTaskResult]\u003E\n\u002B;* V82 tmp69        [V82,T42] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[SF] ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.Tasks.VoidTaskResult\u003E\n... diff truncated; middle omitted ...\n@@ -381,16 \u002B365,16 @@ G_M62531_IG24:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x28], edi\n        test     byte  ptr [rbp-0x28], 4\n-       jne      SHORT G_M62531_IG25\n\u002B       jne      SHORT G_M62531_IG23\n        mov      rdi, gword ptr [rbp-0x30]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M62531_IG13\n \t\t\t\t\t\t;; size=64 bbWeight=1 PerfScore 16.75\n-G_M62531_IG25:\n\u002BG_M62531_IG23:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x1C], edi\n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M62531_IG26:\n\u002BG_M62531_IG24:\n        mov      rbx, bword ptr [rbp-0x50]\n        mov      dword ptr [rbx\u002B0x48], edi\n        lea      rdi, bword ptr [rbx\u002B0x58]\n@@ -407,20 \u002B391,20 @@ G_M62531_IG26:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.Threading.Tasks.Task]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      SHORT G_M62531_IG30\n\u002B       jmp      SHORT G_M62531_IG28\n \t\t\t\t\t\t;; size=76 bbWeight=1 PerfScore 16.75\n-G_M62531_IG27:\n\u002BG_M62531_IG25:\n        mov      edi, 20\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M62531_IG28:\n\u002BG_M62531_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M62531_IG29:\n\u002BG_M62531_IG27:\n        mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.ExceptionServices.ExceptionDispatchInfo:Capture(System.Exception):System.Runtime.ExceptionServices.ExceptionDispatchInfo\n        call     [rax]System.Runtime.ExceptionServices.ExceptionDispatchInfo:Capture(System.Exception):System.Runtime.ExceptionServices.ExceptionDispatchInfo\n@@ -430,22 \u002B414,22 @@ G_M62531_IG29:\n        call     [rax]System.Runtime.ExceptionServices.ExceptionDispatchInfo:Throw():this\n        int3     \n \t\t\t\t\t\t;; size=33 bbWeight=0 PerfScore 0.00\n-G_M62531_IG30:\n-       call     G_M62531_IG38\n-       jmp      G_M62531_IG36\n\u002BG_M62531_IG28:\n\u002B       call     G_M62531_IG36\n\u002B       jmp      G_M62531_IG34\n \t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.00\n-G_M62531_IG31:\n\u002BG_M62531_IG29:\n        cmp      dword ptr [rbp-0x1C], 0\n-       jge      SHORT G_M62531_IG32\n\u002B       jge      SHORT G_M62531_IG30\n        mov      rbx, bword ptr [rbp-0x50]\n        cmp      gword ptr [rbx\u002B0x38], 0\n-       je       SHORT G_M62531_IG32\n\u002B       je       SHORT G_M62531_IG30\n        mov      rdi, gword ptr [rbx\u002B0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        nop      \n \t\t\t\t\t\t;; size=35 bbWeight=1 PerfScore 11.50\n-G_M62531_IG32:\n\u002BG_M62531_IG30:\n        xor      rdi, rdi\n        mov      rbx, bword ptr [rbp-0x50]\n        mov      gword ptr [rbx\u002B0x38], rdi\n@@ -457,12 \u002B441,12 @@ G_M62531_IG32:\n        xor      edi, edi\n        mov      dword ptr [rbp-0x38], edi\n        test     byte  ptr [rbp-0x38], 4\n-       jne      SHORT G_M62531_IG33\n\u002B       jne      SHORT G_M62531_IG31\n        mov      rdi, gword ptr [rbp-0x40]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M62531_IG07\n \t\t\t\t\t\t;; size=60 bbWeight=1 PerfScore 17.75\n-G_M62531_IG33:\n\u002BG_M62531_IG31:\n        mov      rbx, bword ptr [rbp-0x50]\n        mov      dword ptr [rbx\u002B0x48], 1\n        lea      rdi, bword ptr [rbx\u002B0x68]\n@@ -478,30 \u002B462,30 @@ G_M62531_IG33:\n        lea      rdi, [rbp-0x40]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u002BConfiguredTaskAwaiter](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u002BConfiguredTaskAwaiter](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      SHORT G_M62531_IG36\n\u002B       jmp      SHORT G_M62531_IG34\n \t\t\t\t\t\t;; size=70 bbWeight=1 PerfScore 16.50\n-G_M62531_IG34:\n\u002BG_M62531_IG32:\n        mov      dword ptr [rbx\u002B0x48], -2\n        xor      rdi, rdi\n        mov      gword ptr [rbx\u002B0x28], rdi\n        lea      rdi, bword ptr [rbx\u002B0x50]\n        cmp      gword ptr [rdi], 0\n-       je       SHORT G_M62531_IG35\n\u002B       je       SHORT G_M62531_IG33\n        mov      rdi, gword ptr [rdi]\n        xor      esi, esi\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.Threading.Tasks.VoidTaskResult],System.Threading.Tasks.VoidTaskResult)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.Threading.Tasks.VoidTaskResult]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.Threading.Tasks.VoidTaskResult],System.Threading.Tasks.VoidTaskResult)\n-       jmp      SHORT G_M62531_IG36\n\u002B       jmp      SHORT G_M62531_IG34\n \t\t\t\t\t\t;; size=42 bbWeight=1 PerfScore 13.25\n-G_M62531_IG35:\n\u002BG_M62531_IG33:\n        mov      rsi, 0xD1FFAB1E      ; const ptr\n        mov      rsi, gword ptr [rsi]\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 3.25\n-G_M62531_IG36:\n\u002BG_M62531_IG34:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M62531_IG37:\n\u002BG_M62531_IG35:\n        add      rsp, 56\n        pop      rbx\n        pop      r14\n@@ -509,28 \u002B493,28 @@ G_M62531_IG37:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M62531_IG38:\n\u002BG_M62531_IG36:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 1.00\n-G_M62531_IG39:\n\u002BG_M62531_IG37:\n        cmp      dword ptr [rbp-0x1C], 0\n-       jge      SHORT G_M62531_IG40\n\u002B       jge      SHORT G_M62531_IG38\n        mov      rbx, bword ptr [rbp-0x50]\n        mov      rdi, gword ptr [rbx\u002B0x38]\n        test     rdi, rdi\n-       je       SHORT G_M62531_IG40\n\u002B       je       SHORT G_M62531_IG38\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        nop      \n \t\t\t\t\t\t;; size=33 bbWeight=1 PerfScore 9.75\n-G_M62531_IG40:\n\u002BG_M62531_IG38:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M62531_IG41:\n\u002BG_M62531_IG39:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M62531_IG42:\n\u002BG_M62531_IG40:\n        mov      rsi, rdi\n        mov      rbx, bword ptr [rbp-0x50]\n        mov      rax, gword ptr [rbx\u002B0x20]\n@@ -539,10 \u002B523,10 @@ G_M62531_IG42:\n        call     CORINFO_HELP_RETHROW\n        int3     \n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M62531_IG43:\n\u002BG_M62531_IG41:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M62531_IG44:\n\u002BG_M62531_IG42:\n        mov      rsi, rdi\n        mov      rbx, bword ptr [rbp-0x50]\n        mov      dword ptr [rbx\u002B0x48], -2\n@@ -551,12 \u002B535,12 @@ G_M62531_IG44:\n        lea      rdi, bword ptr [rbx\u002B0x50]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder:SetException(System.Exception):this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder:SetException(System.Exception):this\n-       lea      rax, G_M62531_IG36\n\u002B       lea      rax, G_M62531_IG34\n \t\t\t\t\t\t;; size=43 bbWeight=0 PerfScore 0.00\n-G_M62531_IG45:\n\u002BG_M62531_IG43:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1483, prolog size 35, PerfScore 714.83, instruction count 358, allocated bytes for code 1483 (MethodHash=19640bbc) for method Nest.Extensions\u002B\u003CForEachAsync\u003Ed__29\u00602[short,System.Nullable\u00601[int]]:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 1434, prolog size 35, PerfScore 700.08, instruction count 346, allocated bytes for code 1434 (MethodHash=19640bbc) for method Nest.Extensions\u002B\u003CForEachAsync\u003Ed__29\u00602[short,System.Nullable\u00601[int]]:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1483,"DiffBytes":1434},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Payments.SettlementAllocationIntents.SplitService:ListAutoPaging(System.String,Stripe.V2.Payments.SettlementAllocationIntents.SplitListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Payments.SettlementAllocationIntentSplit]:this (FullOpts)","Category":"improvement","Description":"513 -\u003E 464 bytes (-49)","ExtraInfo":null,"Diff":"@@ -9,33 \u002B9,32 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T05] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Payments.SettlementAllocationIntents.SplitService\u003E\n-;  V01 arg1         [V01,T08] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Payments.SettlementAllocationIntents.SplitListOptions\u003E\n-;  V03 arg3         [V03,T07] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T07] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V02 arg2         [V02,T08] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Payments.SettlementAllocationIntents.SplitListOptions\u003E\n\u002B;  V03 arg3         [V03,T06] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T11] (  3,  2   )     ref  -\u003E  r15         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Payments.SettlementAllocationIntentSplit]\u003E\n ;  V06 tmp2         [V06,T02] (  4,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V07 tmp3         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V08 tmp4         [V08,T12] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;  V09 tmp5         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Payments.SettlementAllocationIntentSplit]\u003E\n-;* V10 tmp6         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp8         [V12,T03] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Payments.SettlementAllocationIntentSplit]\u003E\n-;  V13 tmp9         [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Payments.SettlementAllocationIntentSplit]\u003E\n-;* V14 tmp10        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp11        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp12        [V16,T04] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Payments.SettlementAllocationIntentSplit]\u003E\n-;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V07._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp14        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp15        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp16        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp17        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 tmp18        [V22,T09] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V23 cse0         [V23,T10] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #02: moderate\u0022\n-;  V24 rat0         [V24,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T15] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T16] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Payments.SettlementAllocationIntentSplit]\u003E\n\u002B;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp6         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp7         [V11,T03] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Payments.SettlementAllocationIntentSplit]\u003E\n\u002B;  V12 tmp8         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Payments.SettlementAllocationIntentSplit]\u003E\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp11        [V15,T04] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Payments.SettlementAllocationIntentSplit]\u003E\n\u002B;* V16 tmp12        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V07._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp14        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp15        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp16        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 tmp17        [V21,T09] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V22 cse0         [V22,T10] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #02: moderate\u0022\n\u002B;  V23 rat0         [V23,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T15] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n@@ -49,8 \u002B48,8 @@ G_M60205_IG01:\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rdx\n-       mov      r14, rcx\n\u002B       mov      r14, rdx\n\u002B       mov      r15, rcx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M60205_IG02:\n        mov      rdi, rsi\n@@ -69,49 \u002B68,41 @@ G_M60205_IG02:\n        je       G_M60205_IG04\n \t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 12.50\n G_M60205_IG03:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Payments.SettlementAllocationIntentSplit]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n-       mov      eax, dword ptr [rax\u002B0x10]\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, dword ptr [rax\u002B0x10]\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x28]\n\u002B       lea      rdi, bword ptr [r14\u002B0x28]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Payments.SettlementAllocationIntentSplit]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        mov      dword ptr [r15\u002B0x28], -2\n-       mov      r14d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r15\u002B0x2C], r14d\n\u002B       mov      dword ptr [r15\u002B0x2C], r12d\n        lea      rdi, bword ptr [r15\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M60205_IG05\n-\t\t\t\t\t\t;; size=212 bbWeight=0.50 PerfScore 16.00\n\u002B\t\t\t\t\t\t;; size=164 bbWeight=0.50 PerfScore 12.75\n G_M60205_IG04:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Payments.SettlementAllocationIntentSplit]\n        call     CORINFO_HELP_NEWSFAST\n@@ -134,10 \u002B125,10 @@ G_M60205_IG04:\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n@@ -145,12 \u002B136,12 @@ G_M60205_IG04:\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        mov      dword ptr [r15\u002B0x28], -2\n-       mov      r14d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r15\u002B0x2C], r14d\n\u002B       mov      ebx, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r15\u002B0x2C], ebx\n        lea      rdi, bword ptr [r15\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=181 bbWeight=0.50 PerfScore 13.12\n\u002B\t\t\t\t\t\t;; size=180 bbWeight=0.50 PerfScore 13.12\n G_M60205_IG05:\n        mov      rax, r15\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n@@ -165,5 \u002B156,5 @@ G_M60205_IG06:\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 513, prolog size 16, PerfScore 54.38, instruction count 113, allocated bytes for code 513 (MethodHash=da9214d2) for method Stripe.V2.Payments.SettlementAllocationIntents.SplitService:ListAutoPaging(System.String,Stripe.V2.Payments.SettlementAllocationIntents.SplitListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Payments.SettlementAllocationIntentSplit]:this (FullOpts)\n\u002B; Total bytes of code 464, prolog size 16, PerfScore 51.12, instruction count 105, allocated bytes for code 464 (MethodHash=da9214d2) for method Stripe.V2.Payments.SettlementAllocationIntents.SplitService:ListAutoPaging(System.String,Stripe.V2.Payments.SettlementAllocationIntents.SplitListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Payments.SettlementAllocationIntentSplit]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":513,"DiffBytes":464},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.Internal.Data.DatabaseCommand\u002B\u003CExecuteAsync\u003Ed__12\u00601[System.__Canon]:MoveNext():this (FullOpts)","Category":"same-size","Description":"6,850 -\u003E 6,850 bytes (0)","ExtraInfo":null,"Diff":"@@ -618,7 \u002B618,7 @@ G_M50387_IG17:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        cmp      byte  ptr [rax\u002B0x10], 0\n        jne      SHORT G_M50387_IG18\n        mov      rsi, gword ptr [rbx\u002B0x08]","Truncated":true,"BaseBytes":6850,"DiffBytes":6850},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation:ValidateFunction(System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression],byref):System.Data.Entity.Core.Metadata.Edm.TypeUsage (FullOpts)","Category":"improvement","Description":"673 -\u003E 569 bytes (-104)","ExtraInfo":null,"Diff":"@@ -16,22 \u002B16,22 @@\n ;* V05 tmp1         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation\u002B\u003C\u003Ec__DisplayClass36_0\u003E\n ;  V06 tmp2         [V06,T01] (  4,  8   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u00602[System.Data.Entity.Core.Common.CommandTrees.DbExpression,int]\u003E\n ;  V07 tmp3         [V07,T08] (  2,  4   )     int  -\u003E  [rbp-0x2C]  spill-single-def \u0022impAppendStmt\u0022\n-;  V08 tmp4         [V08,T14] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentException\u003E\n-;  V09 tmp5         [V09,T15] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentException\u003E\n-;  V10 tmp6         [V10,T16] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentException\u003E\n-;* V11 tmp7         [V11,T13] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp4         [V08,T12] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentException\u003E\n\u002B;  V09 tmp5         [V09,T13] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentException\u003E\n\u002B;  V10 tmp6         [V10,T14] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentException\u003E\n\u002B;* V11 tmp7         [V11,T11] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V12 tmp8         [V12,T06] (  3,  5   )     ref  -\u003E  rdi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V13 tmp9         [V13,T02] (  4,  7   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V14 tmp10        [V14    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V15 tmp11        [V15,T11] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n-;  V16 tmp12        [V16,T09] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V17 tmp13        [V17,T03] (  4,  7   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V18 tmp14        [V18    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V19 tmp15        [V19,T12] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n-;  V20 tmp16        [V20,T10] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V21 tmp17        [V21,T17] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V22 tmp18        [V22,T18] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V23 tmp19        [V23,T19] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V13 tmp9         [V13,T02] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V14 tmp10        [V14    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp11        [V15,T09] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n\u002B;* V16 tmp12        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V17 tmp13        [V17,T03] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V18 tmp14        [V18    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V19 tmp15        [V19,T10] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n\u002B;* V20 tmp16        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V21 tmp17        [V21,T15] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V22 tmp18        [V22,T16] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V23 tmp19        [V23,T17] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 24\n \n@@ -59,7 \u002B59,7 @@ G_M9009_IG02:\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation:CheckFunction(System.Data.Entity.Core.Metadata.Edm.EdmFunction)\n        call     [rax]System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation:CheckFunction(System.Data.Entity.Core.Metadata.Edm.EdmFunction)\n        test     byte  ptr [rbx\u002B0x7C], 8\n-       je       G_M9009_IG12\n\u002B       je       G_M9009_IG07\n        mov      rdi, gword ptr [rbx\u002B0x60]\n        test     rdi, rdi\n        je       SHORT G_M9009_IG04\n@@ -71,37 \u002B71,18 @@ G_M9009_IG03:\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.EdmFunction:get_HasUserDefinedBody():bool:this\n        call     [rax]System.Data.Entity.Core.Metadata.Edm.EdmFunction:get_HasUserDefinedBody():bool:this\n        test     eax, eax\n-       je       G_M9009_IG13\n\u002B       je       G_M9009_IG08\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 3.88\n G_M9009_IG04:\n-       mov      r12, gword ptr [rbx\u002B0x48]\n-       test     r12, r12\n-       je       G_M9009_IG14\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M9009_IG06\n-\t\t\t\t\t\t;; size=43 bbWeight=1 PerfScore 8.25\n-G_M9009_IG05:\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M9009_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M9009_IG06:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x48]\n\u002B       test     rsi, rsi\n\u002B       je       G_M9009_IG09\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.FunctionParameter](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter],byref):System.Data.Entity.Core.Metadata.Edm.FunctionParameter\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M9009_IG07:\n        test     rax, rax\n-       je       G_M9009_IG15\n\u002B       je       G_M9009_IG10\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation:GetExpectedParameters(System.Data.Entity.Core.Metadata.Edm.EdmFunction):System.Data.Entity.Core.Metadata.Edm.FunctionParameter[]\n        call     [rax]System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation:GetExpectedParameters(System.Data.Entity.Core.Metadata.Edm.EdmFunction):System.Data.Entity.Core.Metadata.Edm.FunctionParameter[]\n@@ -128,35 \u002B109,18 @@ G_M9009_IG07:\n        mov      rsi, rax\n        mov      rdi, r14\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n-       mov      rbx, gword ptr [rbx\u002B0x48]\n-       test     rbx, rbx\n-       je       G_M9009_IG14\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M9009_IG09\n-\t\t\t\t\t\t;; size=177 bbWeight=1 PerfScore 30.75\n-G_M9009_IG08:\n-       lea      rsi, [rbp-0x40]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M9009_IG10\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M9009_IG09:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x48]\n\u002B       test     rsi, rsi\n\u002B       je       G_M9009_IG09\n        lea      rdx, [rbp-0x40]\n-       mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.FunctionParameter](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter],byref):System.Data.Entity.Core.Metadata.Edm.FunctionParameter\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n\u002B\t\t\t\t\t\t;; size=210 bbWeight=1 PerfScore 34.00\n\u002BG_M9009_IG05:\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M9009_IG10:\n        mov      rax, gword ptr [rax\u002B0x28]\n-\t\t\t\t\t\t;; size=4 bbWeight=1 PerfScore 2.00\n-G_M9009_IG11:\n\u002B\t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 5.00\n\u002BG_M9009_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -166,7 \u002B130,7 @@ G_M9009_IG11:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M9009_IG12:\n\u002BG_M9009_IG07:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -181,7 \u002B145,7 @@ G_M9009_IG12:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=67 bbWeight=0 PerfScore 0.00\n-G_M9009_IG13:\n\u002BG_M9009_IG08:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -196,13 \u002B160,13 @@ G_M9009_IG13:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=67 bbWeight=0 PerfScore 0.00\n-G_M9009_IG14:\n\u002BG_M9009_IG09:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M9009_IG15:\n\u002BG_M9009_IG10:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -218,5 \u002B182,5 @@ G_M9009_IG15:\n        int3     \n \t\t\t\t\t\t;; size=67 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 673, prolog size 29, PerfScore 84.12, instruction count 152, allocated bytes for code 673 (MethodHash=4015dcce) for method System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation:ValidateFunction(System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression],byref):System.Data.Entity.Core.Metadata.Edm.TypeUsage (FullOpts)\n\u002B; Total bytes of code 569, prolog size 29, PerfScore 68.12, instruction count 126, allocated bytes for code 569 (MethodHash=4015dcce) for method System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation:ValidateFunction(System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression],byref):System.Data.Entity.Core.Metadata.Edm.TypeUsage (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":673,"DiffBytes":569},{"Assembly":"MathNet.Numerics.dasm","Method":"MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:SameAs[byte](MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this (FullOpts)","Category":"improvement","Description":"594 -\u003E 120 bytes (-474)","ExtraInfo":null,"Diff":"@@ -1,214 \u002B1,65 @@\n ; Assembly listing for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:SameAs[byte](MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n-; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data\n\u002B; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 12,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]\u003E\n-;  V01 arg1         [V01,T03] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]\u003E\n-;  V02 arg2         [V02,T01] ( 11,  6.50)     int  -\u003E  r15         single-def\n-;  V03 arg3         [V03,T02] ( 11,  6.50)     int  -\u003E  r14         single-def\n-;  V04 arg4         [V04,T04] (  3,  2.50)   ubyte  -\u003E  r13         single-def\n-;  V05 loc0         [V05,T08] (  4,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]\u003E\n\u002B;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]\u003E\n\u002B;  V01 arg1         [V01,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  4   )     int  -\u003E  r15         single-def\n\u002B;  V03 arg3         [V03,T04] (  4,  4   )     int  -\u003E  r14         single-def\n\u002B;* V04 arg4         [V04    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def\n\u002B;* V05 loc0         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]\u003E\n\u002B;  V07 tmp1         [V07,T00] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cint[]\u003E\n-;  V09 tmp3         [V09,T06] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[int]\u003E\n-;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cint[]\u003E\n-;  V11 tmp5         [V11,T11] (  2,  1   )     int  -\u003E  rsi         \u0022Inline return value spill temp\u0022\n-;  V12 tmp6         [V12,T09] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]\u003E\n-;  V13 tmp7         [V13,T10] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]\u003E\n-;  V14 tmp8         [V14,T07] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]\u003E\n-;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cint[]\u003E\n-;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022Single return block return value\u0022\n ;\n ; Lcl frame size = 8\n \n G_M31388_IG01:\n-       push     rbp\n        push     r15\n        push     r14\n        push     r13\n-       push     r12\n        push     rbx\n        push     rax\n-       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n        mov      r15d, edx\n        mov      r14d, ecx\n-       mov      r13d, r8d\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.75\n G_M31388_IG02:\n-       mov      r12, gword ptr [rsi\u002B0x08]\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M31388_IG11\n-\t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 7.00\n-G_M31388_IG03:\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[int]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M31388_IG07\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      SHORT G_M31388_IG05\n\u002B       cmp      byte  ptr [rsi], sil\n        mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        mov      rdi, r13\n        mov      esi, r15d\n        mov      edx, r14d\n        mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]:.ctor(int,int):this\n        call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]:.ctor(int,int):this\n        imul     r15d, r14d\n        movsxd   rsi, r15d\n        mov      rdi, 0xD1FFAB1E      ; int[]\n        call     CORINFO_HELP_NEWARR_1_VC\n        mov      rsi, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, rbx\n        mov      rsi, r13\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=150 bbWeight=0.50 PerfScore 12.62\n-G_M31388_IG04:\n\u002B\t\t\t\t\t\t;; size=89 bbWeight=1 PerfScore 17.25\n\u002BG_M31388_IG03:\n        add      rsp, 8\n        pop      rbx\n-       pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n-       pop      rbp\n        tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M31388_IG05:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 5.00\n-G_M31388_IG06:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M31388_IG07:\n-       test     r13b, r13b\n-       je       SHORT G_M31388_IG09\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 5.62\n-G_M31388_IG08:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M31388_IG09:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[int]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]:.ctor(int,int):this\n-       cmp      r15d, r14d\n-       mov      esi, r14d\n-       cmovle   esi, r15d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; int[]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 7.12\n-G_M31388_IG10:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x10]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:Diagonal(MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[int]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M31388_IG11:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]:.ctor(int,int):this\n-       mov      esi, r15d\n-       imul     esi, r14d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; int[]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=89 bbWeight=0.50 PerfScore 7.75\n-G_M31388_IG12:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n\u002B\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 594, prolog size 16, PerfScore 66.75, instruction count 157, allocated bytes for code 594 (MethodHash=76c68563) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:SameAs[byte](MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this (FullOpts)\n\u002B; Total bytes of code 120, prolog size 8, PerfScore 27.25, instruction count 34, allocated bytes for code 120 (MethodHash=76c68563) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:SameAs[byte](MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":594,"DiffBytes":120},{"Assembly":"Microsoft.AspNetCore.OData.dasm","Method":"Microsoft.AspNetCore.OData.Query.Expressions.QueryBinder:SkipFilters(System.Linq.Expressions.MethodCallExpression):System.Linq.Expressions.MethodCallExpression (FullOpts)","Category":"improvement","Description":"241 -\u003E 197 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,113 \u002B1,97 @@\n ; Assembly listing for method Microsoft.AspNetCore.OData.Query.Expressions.QueryBinder:SkipFilters(System.Linq.Expressions.MethodCallExpression):System.Linq.Expressions.MethodCallExpression (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 5 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T03] (  7, 23   )     ref  -\u003E  rbx         class-hnd \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n\u002B;  V00 arg0         [V00,T02] (  7, 23   )     ref  -\u003E  rbx         class-hnd \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V02 tmp1         [V02,T02] (  4, 28   )     ref  -\u003E  rbx         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V03 tmp2         [V03    ] (  2,  4   )   ubyte  -\u003E  [rbp-0x10]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V04 tmp3         [V04,T05] (  3,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V05 tmp4         [V05,T04] (  4, 12   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V02 tmp1         [V02,T03] (  3, 24   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V03 tmp2         [V03    ] (  1,  4   )   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V04 tmp3         [V04,T05] (  2,  8   )     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;* V05 tmp4         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n ;* V06 tmp5         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V07 tmp6         [V07,T01] (  6, 38   )     ref  -\u003E  rax         \u0022spilling varStr\u0022\n ;* V08 tmp7         [V08    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling unroll qmark\u0022\n ;  V09 tmp8         [V09,T00] (  3, 48   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n\u002B;  V10 cse0         [V10,T04] (  2,  9   )     ref  -\u003E  r15         hoist \u0022CSE #01: aggressive\u0022\n ;\n-; Lcl frame size = 8\n\u002B; Lcl frame size = 16\n \n G_M59997_IG01:\n        push     rbp\n\u002B       push     r15\n        push     rbx\n-       push     rax\n-       lea      rbp, [rsp\u002B0x10]\n\u002B       sub      rsp, 16\n\u002B       lea      rbp, [rsp\u002B0x20]\n        mov      rbx, rdi\n-\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.75\n\u002B\t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 4.00\n G_M59997_IG02:\n-       jmp      SHORT G_M59997_IG05\n-\t\t\t\t\t\t;; size=2 bbWeight=1 PerfScore 2.00\n\u002B       mov      r15, 0xD1FFAB1E      ; \u0027Where\u0027\n\u002B       jmp      SHORT G_M59997_IG06\n\u002B\t\t\t\t\t\t;; size=12 bbWeight=1 PerfScore 2.25\n G_M59997_IG03:\n-       lea      rsi, [rbp-0x10]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-\t\t\t\t\t\t;; size=17 bbWeight=2 PerfScore 15.50\n-G_M59997_IG04:\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Expressions.MethodCallExpression\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      rbx, rax\n-\t\t\t\t\t\t;; size=28 bbWeight=4 PerfScore 16.00\n-G_M59997_IG05:\n-       mov      rdi, gword ptr [rbx\u002B0x08]\n-       mov      rax, qword ptr [rdi]\n-       mov      rax, qword ptr [rax\u002B0x40]\n-       call     [rax\u002B0x30]System.Reflection.MemberInfo:get_Name():System.String:this\n-       mov      rdi, 0xD1FFAB1E      ; \u0027Where\u0027\n-       cmp      rax, rdi\n-       je       SHORT G_M59997_IG09\n-\t\t\t\t\t\t;; size=29 bbWeight=8 PerfScore 84.00\n-G_M59997_IG06:\n-       test     rax, rax\n-       je       SHORT G_M59997_IG11\n-\t\t\t\t\t\t;; size=5 bbWeight=2 PerfScore 2.50\n-G_M59997_IG07:\n        cmp      dword ptr [rax\u002B0x08], 5\n-       jne      SHORT G_M59997_IG11\n-\t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 1.50\n-G_M59997_IG08:\n\u002B       jne      G_M59997_IG08\n\u002B\t\t\t\t\t\t;; size=10 bbWeight=0.50 PerfScore 1.50\n\u002BG_M59997_IG04:\n        mov      rdi, 0xD1FFAB1E\n        xor      rdi, qword ptr [rax\u002B0x0C]\n        movzx    rax, word  ptr [rax\u002B0x14]\n        xor      eax, 101\n        or       rdi, rax\n-       jne      SHORT G_M59997_IG11\n\u002B       jne      SHORT G_M59997_IG08\n \t\t\t\t\t\t;; size=26 bbWeight=0.25 PerfScore 1.44\n-G_M59997_IG09:\n\u002BG_M59997_IG05:\n        mov      rdi, rbx\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x20]System.Linq.Expressions.MethodCallExpression:GetOrMakeArguments():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]:this\n-       mov      rbx, rax\n-       test     rbx, rbx\n-       je       SHORT G_M59997_IG13\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       jne      G_M59997_IG03\n-\t\t\t\t\t\t;; size=55 bbWeight=4 PerfScore 55.00\n-G_M59997_IG10:\n-       lea      rdx, [rbp-0x10]\n-       mov      rsi, rbx\n\u002B       je       SHORT G_M59997_IG10\n\u002B       lea      rdx, [rbp-0x18]\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Linq.Expressions.Expression](System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.Expression],byref):System.Linq.Expressions.Expression\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       jmp      G_M59997_IG04\n-\t\t\t\t\t\t;; size=34 bbWeight=2 PerfScore 12.50\n-G_M59997_IG11:\n\u002B       mov      rsi, rax\n\u002B       mov      rdi, 0xD1FFAB1E      ; System.Linq.Expressions.MethodCallExpression\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n\u002B       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n\u002B       mov      rbx, rax\n\u002B\t\t\t\t\t\t;; size=75 bbWeight=4 PerfScore 67.00\n\u002BG_M59997_IG06:\n\u002B       mov      rdi, gword ptr [rbx\u002B0x08]\n\u002B       mov      rax, qword ptr [rdi]\n\u002B       mov      rax, qword ptr [rax\u002B0x40]\n\u002B       call     [rax\u002B0x30]System.Reflection.MemberInfo:get_Name():System.String:this\n\u002B       cmp      rax, r15\n\u002B       je       SHORT G_M59997_IG05\n\u002B\t\t\t\t\t\t;; size=19 bbWeight=8 PerfScore 82.00\n\u002BG_M59997_IG07:\n\u002B       test     rax, rax\n\u002B       jne      G_M59997_IG03\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=2 PerfScore 2.50\n\u002BG_M59997_IG08:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M59997_IG12:\n-       add      rsp, 8\n\u002BG_M59997_IG09:\n\u002B       add      rsp, 16\n        pop      rbx\n\u002B       pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.25\n-G_M59997_IG13:\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 2.75\n\u002BG_M59997_IG10:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 241, prolog size 8, PerfScore 196.69, instruction count 61, allocated bytes for code 241 (MethodHash=aa7e15a2) for method Microsoft.AspNetCore.OData.Query.Expressions.QueryBinder:SkipFilters(System.Linq.Expressions.MethodCallExpression):System.Linq.Expressions.MethodCallExpression (FullOpts)\n\u002B; Total bytes of code 197, prolog size 13, PerfScore 163.69, instruction count 50, allocated bytes for code 197 (MethodHash=aa7e15a2) for method Microsoft.AspNetCore.OData.Query.Expressions.QueryBinder:SkipFilters(System.Linq.Expressions.MethodCallExpression):System.Linq.Expressions.MethodCallExpression (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":241,"DiffBytes":197},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:Aggregate[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.Numerics.Vector\u00601[float]]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n... diff truncated; middle omitted ...\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M10817_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M10817_IG26:\n\u002BG_M10817_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M10817_IG27:\n\u002BG_M10817_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M10817_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M10817_IG28:\n\u002BG_M10817_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M10817_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M10817_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M10817_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M10817_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M10817_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M10817_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M10817_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M10817_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M10817_IG31\n\u002B       je       SHORT G_M10817_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M10817_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M10817_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M10817_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M10817_IG32\n\u002B       je       SHORT G_M10817_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M10817_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M10817_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M10817_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M10817_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateAggregateToCollectionResultCursor[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M10817_IG33:\n\u002BG_M10817_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M10817_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M10817_IG34:\n\u002BG_M10817_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M10817_IG35:\n\u002BG_M10817_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M10817_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M10817_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M10817_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M10817_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M10817_IG37\n\u002B       je       SHORT G_M10817_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M10817_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M10817_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M10817_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M10817_IG38\n\u002B       je       SHORT G_M10817_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M10817_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M10817_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M10817_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M10817_IG39:\n\u002BG_M10817_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M10817_IG40:\n\u002BG_M10817_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M10817_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M10817_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M10817_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M10817_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M10817_IG42\n\u002B       je       SHORT G_M10817_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M10817_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M10817_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M10817_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M10817_IG43\n\u002B       je       SHORT G_M10817_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M10817_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M10817_IG43:\n\u002BG_M10817_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M10817_IG44:\n\u002BG_M10817_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=8220d5be) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:Aggregate[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=8220d5be) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:Aggregate[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.BillSettingService:ListAutoPaging(Stripe.V2.Billing.BillSettingListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.BillSetting]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.Billing.BillSettingService:ListAutoPaging(Stripe.V2.Billing.BillSettingListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.BillSetting]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.BillSettingService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.BillSettingListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.BillSettingListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.BillSetting]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.BillSetting]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.BillSetting]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.BillSetting]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.BillSetting]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.BillSetting]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.BillSetting]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.BillSetting]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.BillSetting]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M12067_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M12067_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/billing/bill_settings\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M12067_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M12067_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.BillSetting]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.BillSetting]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M12067_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M12067_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.BillSetting]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.BillSetting]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M12067_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M12067_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=532fd0dc) for method Stripe.V2.Billing.BillSettingService:ListAutoPaging(Stripe.V2.Billing.BillSettingListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.BillSetting]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=532fd0dc) for method Stripe.V2.Billing.BillSettingService:ListAutoPaging(Stripe.V2.Billing.BillSettingListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.BillSetting]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.Internal.Data.DatabaseCommand\u002B\u003CExecuteAsync\u003Ed__12\u00601[byte]:MoveNext():this (FullOpts)","Category":"same-size","Description":"4,211 -\u003E 4,211 bytes (0)","ExtraInfo":null,"Diff":"@@ -407,7 \u002B407,7 @@ G_M17119_IG14:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        cmp      byte  ptr [rax\u002B0x10], 0\n        jne      SHORT G_M17119_IG15\n        mov      rsi, gword ptr [rbx\u002B0x08]","Truncated":true,"BaseBytes":4211,"DiffBytes":4211},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition:.ctor(System.Data.Common.DbProviderFactory,System.Data.Entity.Core.Common.CommandTrees.DbCommandTree,System.Data.Entity.Infrastructure.Interception.DbInterceptionContext,System.Data.Entity.Infrastructure.DependencyResolution.IDbDependencyResolver,System.Data.Entity.Core.Query.ResultAssembly.BridgeDataReaderFactory,System.Data.Entity.Core.Query.InternalTrees.ColumnMapFactory):this (FullOpts)","Category":"improvement","Description":"2,806 -\u003E 2,702 bytes (-104)","ExtraInfo":null,"Diff":"@@ -14,7 \u002B14,7 @@\n ;  V03 arg3         [V03,T20] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Data.Entity.Infrastructure.Interception.DbInterceptionContext\u003E\n ;  V04 arg4         [V04,T30] (  4,  3.50)     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Data.Entity.Infrastructure.DependencyResolution.IDbDependencyResolver\u003E\n ;  V05 arg5         [V05,T34] (  3,  3   )     ref  -\u003E   r9         class-hnd single-def \u003CSystem.Data.Entity.Core.Query.ResultAssembly.BridgeDataReaderFactory\u003E\n-;  V06 arg6         [V06,T83] (  1,  1   )     ref  -\u003E  [rbp\u002B0x10]  class-hnd single-def \u003CSystem.Data.Entity.Core.Query.InternalTrees.ColumnMapFactory\u003E\n\u002B;  V06 arg6         [V06,T81] (  1,  1   )     ref  -\u003E  [rbp\u002B0x10]  class-hnd single-def \u003CSystem.Data.Entity.Core.Query.InternalTrees.ColumnMapFactory\u003E\n ;  V07 loc0         [V07,T04] (  8, 22   )     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.EntityClient.EntityParameter]\u003E\n ;  V08 loc1         [V08    ] (  4,  2   )     ref  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Query.PlanCompiler.ProviderCommandInfo]\u003E\n ;  V09 loc2         [V09    ] (  2,  1   )     ref  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003CSystem.Data.Entity.Core.Query.InternalTrees.ColumnMap\u003E\n@@ -22,63 \u002B22,63 @@\n ;* V11 loc4         [V11    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[System.Data.Entity.Core.Query.PlanCompiler.ProviderCommandInfo]\u003E\n ;* V12 loc5         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CSystem.Data.Entity.Core.Query.PlanCompiler.ProviderCommandInfo\u003E\n ;  V13 loc6         [V13,T10] (  4, 12   )     ref  -\u003E  rax         class-hnd \u003CSystem.Data.Entity.Core.Common.DbCommandDefinition\u003E\n-;* V14 loc7         [V14,T84] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CSystem.Data.Entity.Core.Common.CommandTrees.DbFunctionCommandTree\u003E\n\u002B;* V14 loc7         [V14,T82] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CSystem.Data.Entity.Core.Common.CommandTrees.DbFunctionCommandTree\u003E\n ;  V15 loc8         [V15,T27] (  6,  6.50)     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.Data.Entity.Core.Mapping.FunctionImportMappingNonComposable\u003E\n-;  V16 loc9         [V16,T71] (  3,  1.50)     ref  -\u003E  r12         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V16 loc9         [V16,T69] (  3,  1.50)     ref  -\u003E  r12         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n ;  V17 loc10        [V17,T31] (  4,  5.50)     int  -\u003E  r12         single-def\n-;  V18 loc11        [V18,T79] (  2,  1   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.TypeUsage\u003E\n\u002B;  V18 loc11        [V18,T75] (  2,  1   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.TypeUsage\u003E\n ;  V19 loc12        [V19,T05] (  8, 21   )     ref  -\u003E  r12         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.Collections.Generic.KeyValuePair\u00602[System.String,System.Data.Entity.Core.Metadata.Edm.TypeUsage]]\u003E\n ;* V20 loc13        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CSystem.Data.Entity.Core.Common.CommandTrees.DbFunctionCommandTree\u003E\n-;  V21 loc14        [V21,T72] (  3,  1.50)     ref  -\u003E  r12         class-hnd single-def \u003CSystem.Data.Entity.Core.Common.DbCommandDefinition\u003E\n-;* V22 loc15        [V22,T85] (  0,  0   )     int  -\u003E  zero-ref   \n\u002B;  V21 loc14        [V21,T70] (  3,  1.50)     ref  -\u003E  r12         class-hnd single-def \u003CSystem.Data.Entity.Core.Common.DbCommandDefinition\u003E\n\u002B;* V22 loc15        [V22,T83] (  0,  0   )     int  -\u003E  zero-ref   \n ;  V23 loc16        [V23,T03] ( 12, 23   )     ref  -\u003E  [rbp-0x88]  do-not-enreg[M] class-hnd EH-live \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Collections.Generic.KeyValuePair\u00602[System.String,System.Data.Entity.Core.Metadata.Edm.TypeUsage]]\u003E\n ;* V24 loc17        [V24    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret multireg-dest \u003CSystem.Collections.Generic.KeyValuePair\u00602[System.String,System.Data.Entity.Core.Metadata.Edm.TypeUsage]\u003E\n ;  V25 loc18        [V25,T21] (  3,  8   )     ref  -\u003E  rax         class-hnd \u003CSystem.Data.Entity.Core.EntityClient.EntityParameter\u003E\n ;* V26 loc19        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Exception\u003E\n ;# V27 OutArgs      [V27    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V28 tmp1         [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V29 tmp2         [V29,T40] (  4,  3.50)     ref  -\u003E  rsi        \n\u002B;  V29 tmp2         [V29,T38] (  4,  3.50)     ref  -\u003E  rsi        \n ;* V30 tmp3         [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V31 tmp4         [V31,T41] (  4,  3.50)     ref  -\u003E  rsi        \n\u002B;  V31 tmp4         [V31,T39] (  4,  3.50)     ref  -\u003E  rsi        \n ;* V32 tmp5         [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V33 tmp6         [V33    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V34 tmp7         [V34,T59] (  3,  2   )     ref  -\u003E  rsi        \n\u002B;  V34 tmp7         [V34,T57] (  3,  2   )     ref  -\u003E  rsi        \n ;* V35 tmp8         [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V36 tmp9         [V36,T42] (  4,  3.50)     ref  -\u003E  rsi        \n-;  V37 tmp10        [V37,T76] (  3,  1.50)     int  -\u003E  r12        \n\u002B;  V36 tmp9         [V36,T40] (  4,  3.50)     ref  -\u003E  rsi        \n\u002B;  V37 tmp10        [V37,T72] (  3,  1.50)     int  -\u003E  r12        \n ;* V38 tmp11        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003CSystem.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition\u002BIColumnMapGenerator[]\u003E\n-;  V39 tmp12        [V39,T43] (  3,  3   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Collections.Generic.KeyValuePair\u00602[System.String,System.Data.Entity.Core.Metadata.Edm.TypeUsage]]\u003E\n\u002B;  V39 tmp12        [V39,T41] (  3,  3   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Collections.Generic.KeyValuePair\u00602[System.String,System.Data.Entity.Core.Metadata.Edm.TypeUsage]]\u003E\n ;* V40 tmp13        [V40    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CSystem.Collections.Generic.KeyValuePair\u00602[System.String,System.Data.Entity.Core.Metadata.Edm.TypeUsage]\u003E\n-;  V41 tmp14        [V41,T61] (  2,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.MetadataWorkspace\u003E\n-;  V42 tmp15        [V42,T44] (  3,  3   )     ref  -\u003E  [rbp-0x98]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.CommandTrees.DbFunctionCommandTree\u003E\n\u002B;  V41 tmp14        [V41,T59] (  2,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.MetadataWorkspace\u003E\n\u002B;  V42 tmp15        [V42,T42] (  3,  3   )     ref  -\u003E  [rbp-0x98]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.CommandTrees.DbFunctionCommandTree\u003E\n ;  V43 tmp16        [V43,T19] (  9,  9   )     ref  -\u003E  [rbp-0xA0]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.DbCommandDefinition]\u003E\n ;  V44 tmp17        [V44,T28] (  3,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.EntityClient.EntityParameter]\u003E\n ;* V45 tmp18        [V45    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CSystem.Collections.Generic.KeyValuePair\u00602[System.String,System.Data.Entity.Core.Metadata.Edm.TypeUsage]\u003E\n ;  V46 tmp19        [V46,T29] (  3,  6   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.EntityClient.EntityParameter]\u003E\n-;  V47 tmp20        [V47,T45] (  3,  3   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Metadata.Edm.EntitySet]\u003E\n-;  V48 tmp21        [V48,T62] (  2,  2   )     ref  -\u003E  r12         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Metadata.Edm.EntitySet]\u003E\n-;  V49 tmp22        [V49,T46] (  3,  3   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Query.PlanCompiler.ProviderCommandInfo]\u003E\n-;  V50 tmp23        [V50,T47] (  3,  3   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition\u002BIColumnMapGenerator[]\u003E\n... diff truncated; middle omitted ...\n        call     [r11]System.Collections.Generic.IEnumerator\u00601[System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]]:get_Current():System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]:this\n@@ -703,25 \u002B669,25 @@ G_M16511_IG42:\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r15d, dword ptr [r14\u002B0x10]\n        cmp      dword ptr [rdi\u002B0x08], r15d\n-       ja       SHORT G_M16511_IG44\n\u002B       ja       SHORT G_M16511_IG40\n \t\t\t\t\t\t;; size=56 bbWeight=4 PerfScore 72.00\n-G_M16511_IG43:\n\u002BG_M16511_IG39:\n        mov      rdi, r14\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n-       jmp      SHORT G_M16511_IG41\n\u002B       jmp      SHORT G_M16511_IG37\n \t\t\t\t\t\t;; size=20 bbWeight=2 PerfScore 11.50\n-G_M16511_IG44:\n\u002BG_M16511_IG40:\n        lea      esi, [r15\u002B0x01]\n        mov      dword ptr [r14\u002B0x10], esi\n        mov      esi, r15d\n        mov      rdx, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST\n        call     [rax]CORINFO_HELP_ARRADDR_ST\n-       jmp      SHORT G_M16511_IG41\n\u002B       jmp      SHORT G_M16511_IG37\n \t\t\t\t\t\t;; size=28 bbWeight=2 PerfScore 14.50\n-G_M16511_IG45:\n\u002BG_M16511_IG41:\n        mov      rdi, gword ptr [rbp-0x88]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n@@ -734,15 \u002B700,15 @@ G_M16511_IG45:\n        lea      rdi, bword ptr [rbx\u002B0x28]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M16511_IG56\n\u002B       jmp      G_M16511_IG52\n \t\t\t\t\t\t;; size=67 bbWeight=1 PerfScore 11.25\n-G_M16511_IG46:\n\u002BG_M16511_IG42:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.Data.Entity.Core.Query.PlanCompiler.ProviderCommandInfo]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M16511_IG36\n\u002B       jmp      G_M16511_IG32\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M16511_IG47:\n\u002BG_M16511_IG43:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.ProviderIncompatibleException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -756,53 \u002B722,53 @@ G_M16511_IG47:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=57 bbWeight=0 PerfScore 0.00\n-G_M16511_IG48:\n\u002BG_M16511_IG44:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M16511_IG49:\n\u002BG_M16511_IG45:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.Data.Entity.Core.EntityClient.EntityParameter]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M16511_IG34\n\u002B       jmp      G_M16511_IG30\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M16511_IG50:\n\u002BG_M16511_IG46:\n        mov      rsi, r15\n        mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rax]CORINFO_HELP_CHKCASTCLASS\n        int3     \n \t\t\t\t\t\t;; size=19 bbWeight=0 PerfScore 0.00\n-G_M16511_IG51:\n\u002BG_M16511_IG47:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.Collections.Generic.KeyValuePair\u00602[System.String,System.Data.Entity.Core.Metadata.Edm.TypeUsage]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M16511_IG19\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M16511_IG52:\n\u002BG_M16511_IG48:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M16511_IG53:\n\u002BG_M16511_IG49:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n-G_M16511_IG54:\n\u002BG_M16511_IG50:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[System.Data.Entity.Core.Metadata.Edm.EntitySet]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M16511_IG29\n\u002B       jmp      G_M16511_IG27\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M16511_IG55:\n\u002BG_M16511_IG51:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.EqualityComparer\u00601[System.Data.Entity.Core.Metadata.Edm.EntitySet]\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rcx]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M16511_IG30\n\u002B       jmp      G_M16511_IG28\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M16511_IG56:\n\u002BG_M16511_IG52:\n        add      rsp, 200\n        pop      rbx\n        pop      r12\n@@ -812,6 \u002B778,23 @@ G_M16511_IG56:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n\u002BG_M16511_IG53:\n\u002B       push     rax\n\u002B\t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n\u002BG_M16511_IG54:\n\u002B       cmp      gword ptr [rbp-0x88], 0\n\u002B       je       SHORT G_M16511_IG55\n\u002B       mov      rdi, gword ptr [rbp-0x88]\n\u002B       mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n\u002B       call     [r11]System.IDisposable:Dispose():this\n\u002B\t\t\t\t\t\t;; size=30 bbWeight=0 PerfScore 0.00\n\u002BG_M16511_IG55:\n\u002B       nop      \n\u002B\t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n\u002BG_M16511_IG56:\n\u002B       add      rsp, 8\n\u002B       ret      \n\u002B\t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n G_M16511_IG57:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n@@ -833,36 \u002B816,19 @@ G_M16511_IG61:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n G_M16511_IG62:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M16511_IG63\n-       mov      rdi, gword ptr [rbp-0x88]\n-       mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n-       call     [r11]System.IDisposable:Dispose():this\n-\t\t\t\t\t\t;; size=30 bbWeight=0 PerfScore 0.00\n-G_M16511_IG63:\n-       nop      \n-\t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M16511_IG64:\n-       add      rsp, 8\n-       ret      \n-\t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M16511_IG65:\n-       push     rax\n-\t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M16511_IG66:\n        call     CORINFO_HELP_RETHROW\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n-G_M16511_IG67:\n\u002BG_M16511_IG63:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M16511_IG68:\n\u002BG_M16511_IG64:\n        mov      rbx, rdi\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Utilities.ExceptionExtensions:IsCatchableExceptionType(System.Exception):bool\n        call     [rax]System.Data.Entity.Utilities.ExceptionExtensions:IsCatchableExceptionType(System.Exception):bool\n        test     eax, eax\n-       je       SHORT G_M16511_IG69\n\u002B       je       SHORT G_M16511_IG65\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.EntityCommandCompilationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -877,10 \u002B843,10 @@ G_M16511_IG68:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=82 bbWeight=0 PerfScore 0.00\n-G_M16511_IG69:\n\u002BG_M16511_IG65:\n        call     CORINFO_HELP_RETHROW\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 2806, prolog size 61, PerfScore 706.83, instruction count 588, allocated bytes for code 2806 (MethodHash=4fa8bf80) for method System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition:.ctor(System.Data.Common.DbProviderFactory,System.Data.Entity.Core.Common.CommandTrees.DbCommandTree,System.Data.Entity.Infrastructure.Interception.DbInterceptionContext,System.Data.Entity.Infrastructure.DependencyResolution.IDbDependencyResolver,System.Data.Entity.Core.Query.ResultAssembly.BridgeDataReaderFactory,System.Data.Entity.Core.Query.InternalTrees.ColumnMapFactory):this (FullOpts)\n\u002B; Total bytes of code 2702, prolog size 61, PerfScore 691.83, instruction count 562, allocated bytes for code 2702 (MethodHash=4fa8bf80) for method System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition:.ctor(System.Data.Common.DbProviderFactory,System.Data.Entity.Core.Common.CommandTrees.DbCommandTree,System.Data.Entity.Infrastructure.Interception.DbInterceptionContext,System.Data.Entity.Infrastructure.DependencyResolution.IDbDependencyResolver,System.Data.Entity.Core.Query.ResultAssembly.BridgeDataReaderFactory,System.Data.Entity.Core.Query.InternalTrees.ColumnMapFactory):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":2806,"DiffBytes":2702},{"Assembly":"MathNet.Numerics.dasm","Method":"MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:SameAs[double](MathNet.Numerics.LinearAlgebra.Matrix\u00601[double],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this (FullOpts)","Category":"improvement","Description":"594 -\u003E 120 bytes (-474)","ExtraInfo":null,"Diff":"@@ -1,214 \u002B1,65 @@\n ; Assembly listing for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:SameAs[double](MathNet.Numerics.LinearAlgebra.Matrix\u00601[double],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n-; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data\n\u002B; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 12,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]\u003E\n-;  V01 arg1         [V01,T03] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[double]\u003E\n-;  V02 arg2         [V02,T01] ( 11,  6.50)     int  -\u003E  r15         single-def\n-;  V03 arg3         [V03,T02] ( 11,  6.50)     int  -\u003E  r14         single-def\n-;  V04 arg4         [V04,T04] (  3,  2.50)   ubyte  -\u003E  r13         single-def\n-;  V05 loc0         [V05,T08] (  4,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]\u003E\n\u002B;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]\u003E\n\u002B;  V01 arg1         [V01,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[double]\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  4   )     int  -\u003E  r15         single-def\n\u002B;  V03 arg3         [V03,T04] (  4,  4   )     int  -\u003E  r14         single-def\n\u002B;* V04 arg4         [V04    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def\n\u002B;* V05 loc0         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]\u003E\n\u002B;  V07 tmp1         [V07,T00] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cint[]\u003E\n-;  V09 tmp3         [V09,T06] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[int]\u003E\n-;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cint[]\u003E\n-;  V11 tmp5         [V11,T11] (  2,  1   )     int  -\u003E  rsi         \u0022Inline return value spill temp\u0022\n-;  V12 tmp6         [V12,T09] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]\u003E\n-;  V13 tmp7         [V13,T10] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]\u003E\n-;  V14 tmp8         [V14,T07] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]\u003E\n-;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cint[]\u003E\n-;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022Single return block return value\u0022\n ;\n ; Lcl frame size = 8\n \n G_M48092_IG01:\n-       push     rbp\n        push     r15\n        push     r14\n        push     r13\n-       push     r12\n        push     rbx\n        push     rax\n-       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n        mov      r15d, edx\n        mov      r14d, ecx\n-       mov      r13d, r8d\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.75\n G_M48092_IG02:\n-       mov      r12, gword ptr [rsi\u002B0x08]\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M48092_IG11\n-\t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 7.00\n-G_M48092_IG03:\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[int]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M48092_IG07\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      SHORT G_M48092_IG05\n\u002B       cmp      byte  ptr [rsi], sil\n        mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        mov      rdi, r13\n        mov      esi, r15d\n        mov      edx, r14d\n        mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]:.ctor(int,int):this\n        call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]:.ctor(int,int):this\n        imul     r15d, r14d\n        movsxd   rsi, r15d\n        mov      rdi, 0xD1FFAB1E      ; int[]\n        call     CORINFO_HELP_NEWARR_1_VC\n        mov      rsi, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, rbx\n        mov      rsi, r13\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=150 bbWeight=0.50 PerfScore 12.62\n-G_M48092_IG04:\n\u002B\t\t\t\t\t\t;; size=89 bbWeight=1 PerfScore 17.25\n\u002BG_M48092_IG03:\n        add      rsp, 8\n        pop      rbx\n-       pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n-       pop      rbp\n        tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M48092_IG05:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 5.00\n-G_M48092_IG06:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M48092_IG07:\n-       test     r13b, r13b\n-       je       SHORT G_M48092_IG09\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 5.62\n-G_M48092_IG08:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M48092_IG09:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[int]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]:.ctor(int,int):this\n-       cmp      r15d, r14d\n-       mov      esi, r14d\n-       cmovle   esi, r15d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; int[]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 7.12\n-G_M48092_IG10:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x10]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:Diagonal(MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[int]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M48092_IG11:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]:.ctor(int,int):this\n-       mov      esi, r15d\n-       imul     esi, r14d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; int[]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=89 bbWeight=0.50 PerfScore 7.75\n-G_M48092_IG12:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n\u002B\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 594, prolog size 16, PerfScore 66.75, instruction count 157, allocated bytes for code 594 (MethodHash=640a4423) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:SameAs[double](MathNet.Numerics.LinearAlgebra.Matrix\u00601[double],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this (FullOpts)\n\u002B; Total bytes of code 120, prolog size 8, PerfScore 27.25, instruction count 34, allocated bytes for code 120 (MethodHash=640a4423) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:SameAs[double](MathNet.Numerics.LinearAlgebra.Matrix\u00601[double],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":594,"DiffBytes":120},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:Aggregate[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],byte]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[byte]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[byte]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[byte]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[byte]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[byte]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V69 tmp59        [V69,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n\u002BG_M56520_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M56520_IG26\n\u002B       je       SHORT G_M56520_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M56520_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M56520_IG26:\n\u002BG_M56520_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M56520_IG27:\n\u002BG_M56520_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M56520_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M56520_IG28:\n\u002BG_M56520_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M56520_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M56520_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M56520_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M56520_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M56520_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M56520_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M56520_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M56520_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M56520_IG31\n\u002B       je       SHORT G_M56520_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M56520_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M56520_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M56520_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M56520_IG32\n\u002B       je       SHORT G_M56520_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M56520_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M56520_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M56520_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M56520_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateAggregateToCollectionResultCursor[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[byte],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[byte]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M56520_IG33:\n\u002BG_M56520_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M56520_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M56520_IG34:\n\u002BG_M56520_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M56520_IG35:\n\u002BG_M56520_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M56520_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M56520_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M56520_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M56520_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M56520_IG37\n\u002B       je       SHORT G_M56520_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M56520_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M56520_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M56520_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M56520_IG38\n\u002B       je       SHORT G_M56520_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M56520_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M56520_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M56520_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M56520_IG39:\n\u002BG_M56520_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M56520_IG40:\n\u002BG_M56520_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M56520_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M56520_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M56520_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M56520_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M56520_IG42\n\u002B       je       SHORT G_M56520_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M56520_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M56520_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M56520_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M56520_IG43\n\u002B       je       SHORT G_M56520_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M56520_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M56520_IG43:\n\u002BG_M56520_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M56520_IG44:\n\u002BG_M56520_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=8a252337) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:Aggregate[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=8a252337) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:Aggregate[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.CadenceService:ListAutoPaging(Stripe.V2.Billing.CadenceListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.Cadence]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.Billing.CadenceService:ListAutoPaging(Stripe.V2.Billing.CadenceListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.Cadence]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.CadenceService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.CadenceListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.CadenceListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.Cadence]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.Cadence]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.Cadence]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.Cadence]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.Cadence]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.Cadence]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.Cadence]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.Cadence]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.Cadence]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M62197_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M62197_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/billing/cadences\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M62197_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M62197_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.Cadence]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.Cadence]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M62197_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M62197_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.Cadence]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.Cadence]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M62197_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M62197_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=05810d0a) for method Stripe.V2.Billing.CadenceService:ListAutoPaging(Stripe.V2.Billing.CadenceListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.Cadence]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=05810d0a) for method Stripe.V2.Billing.CadenceService:ListAutoPaging(Stripe.V2.Billing.CadenceListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.Cadence]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.Internal.Data.DatabaseCommand\u002B\u003CExecuteAsync\u003Ed__12\u00601[double]:MoveNext():this (FullOpts)","Category":"same-size","Description":"4,237 -\u003E 4,237 bytes (0)","ExtraInfo":null,"Diff":"@@ -411,7 \u002B411,7 @@ G_M10176_IG14:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        cmp      byte  ptr [rax\u002B0x10], 0\n        jne      SHORT G_M10176_IG15\n        mov      rsi, gword ptr [rbx\u002B0x08]","Truncated":true,"BaseBytes":4237,"DiffBytes":4237},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.EntityUtil:ExecuteFunctionCalledWithNonReaderFunction(System.Data.Entity.Core.Metadata.Edm.EdmFunction):System.InvalidOperationException (FullOpts)","Category":"improvement","Description":"535 -\u003E 431 bytes (-104)","ExtraInfo":null,"Diff":"@@ -9,29 \u002B9,29 @@\n ; Final local variable assignments\n ;\n ;  V00 arg0         [V00,T01] (  8,  5.50)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmFunction\u003E\n-;  V01 loc0         [V01,T11] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u003CSystem.String\u003E\n\u002B;  V01 loc0         [V01,T09] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u003CSystem.String\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V03 tmp1         [V03,T13] (  2,  2   )     ref  -\u003E  r15         class-hnd exact single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n\u002B;  V03 tmp1         [V03,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd exact single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n ;  V04 tmp2         [V04,T00] (  5, 10   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n-;  V05 tmp3         [V05,T02] (  4,  7   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V06 tmp4         [V06    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V07 tmp5         [V07,T12] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n-;  V08 tmp6         [V08,T06] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V09 tmp7         [V09,T07] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n-;  V10 tmp8         [V10,T14] (  2,  2   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V11 tmp9         [V11,T03] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V12 tmp10        [V12    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V13 tmp11        [V13,T16] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n-;  V14 tmp12        [V14,T10] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V15 tmp13        [V15,T04] (  4,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n-;  V16 tmp14        [V16,T15] (  2,  2   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V05 tmp3         [V05,T02] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V06 tmp4         [V06    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V07 tmp5         [V07,T11] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n\u002B;* V08 tmp6         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V09 tmp7         [V09,T05] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n\u002B;  V10 tmp8         [V10,T12] (  2,  2   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V11 tmp9         [V11,T06] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V12 tmp10        [V12    ] (  1,  0.50)   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V13 tmp11        [V13,T14] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n\u002B;* V14 tmp12        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V15 tmp13        [V15,T03] (  4,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n\u002B;  V16 tmp14        [V16,T13] (  2,  2   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V17 tmp15        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V18 tmp16        [V18,T05] (  4,  3.50)     ref  -\u003E  rsi        \n\u002B;  V18 tmp16        [V18,T04] (  4,  3.50)     ref  -\u003E  rsi        \n ;* V19 tmp17        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.SystemException\u003E\n ;* V20 tmp18        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V21 tmp19        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V22 tmp20        [V22,T08] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V23 tmp21        [V23,T09] (  3,  3   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n\u002B;  V22 tmp20        [V22,T07] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V23 tmp21        [V23,T08] (  3,  3   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 24\n \n@@ -48,60 \u002B48,24 @@ G_M32199_IG01:\n        mov      rbx, rdi\n \t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 7.25\n G_M32199_IG02:\n-       mov      r15, gword ptr [rbx\u002B0x48]\n-       test     r15, r15\n-       je       G_M32199_IG14\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M32199_IG04\n-\t\t\t\t\t\t;; size=43 bbWeight=1 PerfScore 8.25\n-G_M32199_IG03:\n-       lea      rsi, [rbp-0x20]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M32199_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M32199_IG04:\n-       lea      rdx, [rbp-0x20]\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.FunctionParameter](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter],byref):System.Data.Entity.Core.Metadata.Edm.FunctionParameter\n-       mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M32199_IG05:\n-       test     rax, rax\n\u002B       mov      rsi, gword ptr [rbx\u002B0x48]\n\u002B       test     rsi, rsi\n        je       G_M32199_IG09\n-\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 1.25\n-G_M32199_IG06:\n-       mov      r15, gword ptr [rbx\u002B0x48]\n-       test     r15, r15\n-       je       G_M32199_IG14\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M32199_IG07\n-       lea      rsi, [rbp-0x28]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M32199_IG08\n-\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 9.00\n-G_M32199_IG07:\n-       lea      rdx, [rbp-0x28]\n-       mov      rsi, r15\n\u002B       lea      rdx, [rbp-0x20]\n\u002B       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.FunctionParameter](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter],byref):System.Data.Entity.Core.Metadata.Edm.FunctionParameter\n\u002B       mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n\u002B       call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n\u002B       test     rax, rax\n\u002B       je       G_M32199_IG04\n\u002B\t\t\t\t\t\t;; size=48 bbWeight=1 PerfScore 8.50\n\u002BG_M32199_IG03:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x48]\n\u002B       test     rsi, rsi\n\u002B       je       G_M32199_IG09\n\u002B       lea      rdx, [rbp-0x28]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.FunctionParameter](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter],byref):System.Data.Entity.Core.Metadata.Edm.FunctionParameter\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M32199_IG08:\n        mov      rdi, gword ptr [rax\u002B0x28]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x48]\n@@ -131,9 \u002B95,9 @@ G_M32199_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Resources.EntityRes:GetString(System.String,System.Object[]):System.String\n        call     [rax]System.Data.Entity.Resources.EntityRes:GetString(System.String,System.Object[]):System.String\n        mov      rbx, rax\n-       jmp      SHORT G_M32199_IG10\n-\t\t\t\t\t\t;; size=123 bbWeight=0.50 PerfScore 17.62\n-G_M32199_IG09:\n\u002B       jmp      SHORT G_M32199_IG05\n\u002B\t\t\t\t\t\t;; size=162 bbWeight=0.50 PerfScore 21.25\n\u002BG_M32199_IG04:\n        mov      rdi, rbx\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n@@ -152,21 \u002B116,21 @@ G_M32199_IG09:\n        call     [rax]System.Data.Entity.Resources.EntityRes:GetString(System.String,System.Object[]):System.String\n        mov      rbx, rax\n \t\t\t\t\t\t;; size=79 bbWeight=0.50 PerfScore 7.50\n-G_M32199_IG10:\n\u002BG_M32199_IG05:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        mov      rsi, rbx\n        test     rsi, rsi\n-       jne      SHORT G_M32199_IG12\n\u002B       jne      SHORT G_M32199_IG07\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 3.00\n-G_M32199_IG11:\n\u002BG_M32199_IG06:\n        mov      rdi, 0xD1FFAB1E      ; \u0027Arg_InvalidOperationException\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.SR:GetResourceString(System.String):System.String\n        call     [rax]System.SR:GetResourceString(System.String):System.String\n        mov      rsi, rax\n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 1.88\n-G_M32199_IG12:\n\u002BG_M32199_IG07:\n        mov      rdi, 0xD1FFAB1E\n        mov      qword ptr [r15\u002B0x68], rdi\n        lea      rdi, bword ptr [r15\u002B0x10]\n@@ -174,7 \u002B138,7 @@ G_M32199_IG12:\n        mov      dword ptr [r15\u002B0x6C], 0xD1FFAB1E\n        mov      rax, r15\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 4.00\n-G_M32199_IG13:\n\u002BG_M32199_IG08:\n        add      rsp, 24\n        pop      rbx\n        pop      r14\n@@ -182,12 \u002B146,12 @@ G_M32199_IG13:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M32199_IG14:\n\u002BG_M32199_IG09:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 535, prolog size 25, PerfScore 72.12, instruction count 125, allocated bytes for code 535 (MethodHash=91c78238) for method System.Data.Entity.Core.EntityUtil:ExecuteFunctionCalledWithNonReaderFunction(System.Data.Entity.Core.Metadata.Edm.EdmFunction):System.InvalidOperationException (FullOpts)\n\u002B; Total bytes of code 431, prolog size 25, PerfScore 56.62, instruction count 99, allocated bytes for code 431 (MethodHash=91c78238) for method System.Data.Entity.Core.EntityUtil:ExecuteFunctionCalledWithNonReaderFunction(System.Data.Entity.Core.Metadata.Edm.EdmFunction):System.InvalidOperationException (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":535,"DiffBytes":431},{"Assembly":"MathNet.Numerics.dasm","Method":"MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:SameAs[long](MathNet.Numerics.LinearAlgebra.Matrix\u00601[long],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this (FullOpts)","Category":"improvement","Description":"594 -\u003E 120 bytes (-474)","ExtraInfo":null,"Diff":"@@ -1,214 \u002B1,65 @@\n ; Assembly listing for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:SameAs[long](MathNet.Numerics.LinearAlgebra.Matrix\u00601[long],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n-; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data\n\u002B; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 12,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]\u003E\n-;  V01 arg1         [V01,T03] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[long]\u003E\n-;  V02 arg2         [V02,T01] ( 11,  6.50)     int  -\u003E  r15         single-def\n-;  V03 arg3         [V03,T02] ( 11,  6.50)     int  -\u003E  r14         single-def\n-;  V04 arg4         [V04,T04] (  3,  2.50)   ubyte  -\u003E  r13         single-def\n-;  V05 loc0         [V05,T08] (  4,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]\u003E\n\u002B;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]\u003E\n\u002B;  V01 arg1         [V01,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[long]\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  4   )     int  -\u003E  r15         single-def\n\u002B;  V03 arg3         [V03,T04] (  4,  4   )     int  -\u003E  r14         single-def\n\u002B;* V04 arg4         [V04    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def\n\u002B;* V05 loc0         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]\u003E\n\u002B;  V07 tmp1         [V07,T00] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cint[]\u003E\n-;  V09 tmp3         [V09,T06] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[int]\u003E\n-;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cint[]\u003E\n-;  V11 tmp5         [V11,T11] (  2,  1   )     int  -\u003E  rsi         \u0022Inline return value spill temp\u0022\n-;  V12 tmp6         [V12,T09] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]\u003E\n-;  V13 tmp7         [V13,T10] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]\u003E\n-;  V14 tmp8         [V14,T07] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]\u003E\n-;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cint[]\u003E\n-;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022Single return block return value\u0022\n ;\n ; Lcl frame size = 8\n \n G_M31900_IG01:\n-       push     rbp\n        push     r15\n        push     r14\n        push     r13\n-       push     r12\n        push     rbx\n        push     rax\n-       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n        mov      r15d, edx\n        mov      r14d, ecx\n-       mov      r13d, r8d\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.75\n G_M31900_IG02:\n-       mov      r12, gword ptr [rsi\u002B0x08]\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M31900_IG11\n-\t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 7.00\n-G_M31900_IG03:\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[int]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M31900_IG07\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      SHORT G_M31900_IG05\n\u002B       cmp      byte  ptr [rsi], sil\n        mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        mov      rdi, r13\n        mov      esi, r15d\n        mov      edx, r14d\n        mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]:.ctor(int,int):this\n        call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]:.ctor(int,int):this\n        imul     r15d, r14d\n        movsxd   rsi, r15d\n        mov      rdi, 0xD1FFAB1E      ; int[]\n        call     CORINFO_HELP_NEWARR_1_VC\n        mov      rsi, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, rbx\n        mov      rsi, r13\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=150 bbWeight=0.50 PerfScore 12.62\n-G_M31900_IG04:\n\u002B\t\t\t\t\t\t;; size=89 bbWeight=1 PerfScore 17.25\n\u002BG_M31900_IG03:\n        add      rsp, 8\n        pop      rbx\n-       pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n-       pop      rbp\n        tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M31900_IG05:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 5.00\n-G_M31900_IG06:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M31900_IG07:\n-       test     r13b, r13b\n-       je       SHORT G_M31900_IG09\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 5.62\n-G_M31900_IG08:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M31900_IG09:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[int]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]:.ctor(int,int):this\n-       cmp      r15d, r14d\n-       mov      esi, r14d\n-       cmovle   esi, r15d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; int[]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 7.12\n-G_M31900_IG10:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x10]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:Diagonal(MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[int]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M31900_IG11:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]:.ctor(int,int):this\n-       mov      esi, r15d\n-       imul     esi, r14d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; int[]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=89 bbWeight=0.50 PerfScore 7.75\n-G_M31900_IG12:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n\u002B\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 594, prolog size 16, PerfScore 66.75, instruction count 157, allocated bytes for code 594 (MethodHash=cb7e8363) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:SameAs[long](MathNet.Numerics.LinearAlgebra.Matrix\u00601[long],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this (FullOpts)\n\u002B; Total bytes of code 120, prolog size 8, PerfScore 27.25, instruction count 34, allocated bytes for code 120 (MethodHash=cb7e8363) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:SameAs[long](MathNet.Numerics.LinearAlgebra.Matrix\u00601[long],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":594,"DiffBytes":120},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:Aggregate[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],double]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[double]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[double]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[double]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[double]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[double]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V69 tmp59        [V69,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M41303_IG26\n\u002B       je       SHORT G_M41303_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M41303_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M41303_IG26:\n\u002BG_M41303_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M41303_IG27:\n\u002BG_M41303_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M41303_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M41303_IG28:\n\u002BG_M41303_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M41303_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M41303_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M41303_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M41303_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M41303_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M41303_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M41303_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M41303_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M41303_IG31\n\u002B       je       SHORT G_M41303_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M41303_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M41303_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M41303_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M41303_IG32\n\u002B       je       SHORT G_M41303_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M41303_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M41303_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M41303_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M41303_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateAggregateToCollectionResultCursor[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[double],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[double]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M41303_IG33:\n\u002BG_M41303_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M41303_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M41303_IG34:\n\u002BG_M41303_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M41303_IG35:\n\u002BG_M41303_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M41303_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M41303_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M41303_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M41303_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M41303_IG37\n\u002B       je       SHORT G_M41303_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M41303_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M41303_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M41303_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M41303_IG38\n\u002B       je       SHORT G_M41303_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M41303_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M41303_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M41303_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M41303_IG39:\n\u002BG_M41303_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M41303_IG40:\n\u002BG_M41303_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M41303_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M41303_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M41303_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M41303_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M41303_IG42\n\u002B       je       SHORT G_M41303_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M41303_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M41303_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M41303_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M41303_IG43\n\u002B       je       SHORT G_M41303_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M41303_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M41303_IG43:\n\u002BG_M41303_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M41303_IG44:\n\u002BG_M41303_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=7c265ea8) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:Aggregate[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=7c265ea8) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:Aggregate[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.CollectionSettingService:ListAutoPaging(Stripe.V2.Billing.CollectionSettingListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.CollectionSetting]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.Billing.CollectionSettingService:ListAutoPaging(Stripe.V2.Billing.CollectionSettingListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.CollectionSetting]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.CollectionSettingService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.CollectionSettingListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.CollectionSettingListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.CollectionSetting]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.CollectionSetting]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.CollectionSetting]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.CollectionSetting]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.CollectionSetting]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.CollectionSetting]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.CollectionSetting]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.CollectionSetting]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.CollectionSetting]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M12222_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M12222_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/billing/collection_settings\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M12222_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M12222_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.CollectionSetting]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.CollectionSetting]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M12222_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M12222_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.CollectionSetting]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.CollectionSetting]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M12222_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M12222_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=dab8d041) for method Stripe.V2.Billing.CollectionSettingService:ListAutoPaging(Stripe.V2.Billing.CollectionSettingListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.CollectionSetting]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=dab8d041) for method Stripe.V2.Billing.CollectionSettingService:ListAutoPaging(Stripe.V2.Billing.CollectionSettingListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.CollectionSetting]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.Internal.Data.DatabaseCommand\u002B\u003CExecuteAsync\u003Ed__12\u00601[int]:MoveNext():this (FullOpts)","Category":"same-size","Description":"4,199 -\u003E 4,199 bytes (0)","ExtraInfo":null,"Diff":"@@ -407,7 \u002B407,7 @@ G_M37958_IG14:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        cmp      byte  ptr [rax\u002B0x10], 0\n        jne      SHORT G_M37958_IG15\n        mov      rsi, gword ptr [rbx\u002B0x08]","Truncated":true,"BaseBytes":4199,"DiffBytes":4199},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Mapping.FunctionImportMappingComposableHelper:TryCreateFunctionImportMappingComposableWithScalarResult(System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Data.Entity.Core.Metadata.Edm.EdmType,System.Data.Entity.Core.Metadata.Edm.RowType,System.Xml.IXmlLineInfo,byref):bool:this (FullOpts)","Category":"improvement","Description":"1,533 -\u003E 1,429 bytes (-104)","ExtraInfo":null,"Diff":"@@ -15,58 \u002B15,58 @@\n ;  V04 arg4         [V04,T09] (  4,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmType\u003E\n ;  V05 arg5         [V05,T06] (  5,  4.50)     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.RowType\u003E\n ;  V06 arg6         [V06,T25] (  4,  2   )     ref  -\u003E  [rbp\u002B0x10]  class-hnd single-def \u003CSystem.Xml.IXmlLineInfo\u003E\n-;  V07 arg7         [V07,T52] (  2,  1.50)   byref  -\u003E  [rbp\u002B0x18]  single-def\n\u002B;  V07 arg7         [V07,T48] (  2,  1.50)   byref  -\u003E  [rbp\u002B0x18]  single-def\n ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V09 tmp1         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022non-inline candidate call\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.TypeUsage\u003E\n ;  V10 tmp2         [V10,T00] (  9,  9   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.FunctionImportMappingComposable\u003E\n-;  V11 tmp3         [V11,T29] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n-;  V12 tmp4         [V12,T30] (  2,  2   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V13 tmp5         [V13,T31] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n-;  V14 tmp6         [V14,T32] (  2,  2   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n\u002B;  V11 tmp3         [V11,T27] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n\u002B;  V12 tmp4         [V12,T28] (  2,  2   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V13 tmp5         [V13,T29] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n\u002B;  V14 tmp6         [V14,T30] (  2,  2   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n ;* V15 tmp7         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n ;  V16 tmp8         [V16,T11] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n-;  V17 tmp9         [V17,T33] (  2,  2   )     ref  -\u003E  r14         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V18 tmp10        [V18,T16] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V19 tmp11        [V19,T34] (  2,  2   )     ref  -\u003E  r14         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V20 tmp12        [V20,T35] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Metadata.Edm.EdmSchemaError]\u003E\n-;  V21 tmp13        [V21,T46] (  2,  2   )     int  -\u003E  r13         \u0022non-inline candidate call\u0022\n\u002B;  V17 tmp9         [V17,T31] (  2,  2   )     ref  -\u003E  r14         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V18 tmp10        [V18,T14] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V19 tmp11        [V19,T32] (  2,  2   )     ref  -\u003E  r14         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V20 tmp12        [V20,T33] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Metadata.Edm.EdmSchemaError]\u003E\n\u002B;  V21 tmp13        [V21,T44] (  2,  2   )     int  -\u003E  r13         \u0022non-inline candidate call\u0022\n ;  V22 tmp14        [V22,T01] (  9,  9   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmSchemaError\u003E\n ;* V23 tmp15        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmSchemaError\u003E\n-;  V24 tmp16        [V24,T47] (  2,  2   )     int  -\u003E  [rbp-0x2C]  spill-single-def \u0022Inlining Arg\u0022\n\u002B;  V24 tmp16        [V24,T45] (  2,  2   )     int  -\u003E  [rbp-0x2C]  spill-single-def \u0022Inlining Arg\u0022\n ;  V25 tmp17        [V25,T12] (  4,  4   )     ref  -\u003E  [rbp-0x60]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.TypeUsage\u003E\n-;  V26 tmp18        [V26,T53] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V26 tmp18        [V26,T51] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n ;* V27 tmp19        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n-;  V28 tmp20        [V28,T13] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V29 tmp21        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp22        [V30,T50] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n-;  V31 tmp23        [V31,T26] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V32 tmp24        [V32,T14] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V33 tmp25        [V33    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V34 tmp26        [V34,T51] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n-;  V35 tmp27        [V35,T27] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V28 tmp20        [V28,T15] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V29 tmp21        [V29    ] (  1,  0.50)   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp22        [V30,T49] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n\u002B;* V31 tmp23        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V32 tmp24        [V32,T16] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V33 tmp25        [V33    ] (  1,  0.50)   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V34 tmp26        [V34,T50] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n\u002B;* V35 tmp27        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n ;  V36 tmp28        [V36,T07] (  6,  6   )     ref  -\u003E  [rbp-0x68]  class-hnd exact spill-single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n-;  V37 tmp29        [V37,T36] (  2,  2   )     ref  -\u003E  r14         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V37 tmp29        [V37,T34] (  2,  2   )     ref  -\u003E  r14         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V38 tmp30        [V38,T17] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V39 tmp31        [V39,T37] (  2,  2   )     ref  -\u003E  r14         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V40 tmp32        [V40,T38] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Metadata.Edm.EdmSchemaError]\u003E\n-;  V41 tmp33        [V41,T48] (  2,  2   )     int  -\u003E  r13         \u0022non-inline candidate call\u0022\n\u002B;  V39 tmp31        [V39,T35] (  2,  2   )     ref  -\u003E  r14         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V40 tmp32        [V40,T36] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Metadata.Edm.EdmSchemaError]\u003E\n... diff truncated; middle omitted ...\n ;  V61 tmp53        [V61,T22] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -108,7 \u002B108,7 @@ G_M65500_IG02:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        cmp      eax, 1\n-       jg       G_M65500_IG14\n\u002B       jg       G_M65500_IG10\n \t\t\t\t\t\t;; size=53 bbWeight=1 PerfScore 17.00\n G_M65500_IG03:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Metadata.Edm.TypeUsage\n@@ -116,7 \u002B116,7 @@ G_M65500_IG03:\n        mov      gword ptr [rbp-0x60], rax\n        mov      dword ptr [rax\u002B0x18], 8\n        test     r12, r12\n-       je       G_M65500_IG17\n\u002B       je       G_M65500_IG13\n        lea      rdi, bword ptr [rax\u002B0x28]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -146,7 \u002B146,7 @@ G_M65500_IG03:\n        mov      r13, rax\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M65500_IG19\n\u002B       je       G_M65500_IG15\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 18.62\n G_M65500_IG04:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.List\u00601[System.Data.Entity.Core.Metadata.Edm.MetadataProperty]:s_emptyArray\n@@ -217,30 \u002B217,13 @@ G_M65500_IG07:\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n G_M65500_IG08:\n-       mov      r13, gword ptr [rbx\u002B0x48]\n-       test     r13, r13\n-       je       G_M65500_IG18\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M65500_IG09\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M65500_IG10\n-\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 9.00\n-G_M65500_IG09:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x48]\n\u002B       test     rsi, rsi\n\u002B       je       G_M65500_IG14\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.FunctionParameter](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter],byref):System.Data.Entity.Core.Metadata.Edm.FunctionParameter\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M65500_IG10:\n        mov      rdi, gword ptr [rax\u002B0x28]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x48]\n@@ -255,30 \u002B238,13 @@ G_M65500_IG10:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x38]System.Data.Entity.Core.Metadata.Edm.MetadataItem:get_Identity():System.String:this\n        mov      rbx, rax\n-       mov      r12, gword ptr [r14\u002B0x48]\n-       test     r12, r12\n-       je       G_M65500_IG18\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M65500_IG11\n-       lea      rsi, [rbp-0x40]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M65500_IG12\n-\t\t\t\t\t\t;; size=108 bbWeight=0.50 PerfScore 21.00\n-G_M65500_IG11:\n\u002B       mov      rsi, gword ptr [r14\u002B0x48]\n\u002B       test     rsi, rsi\n\u002B       je       G_M65500_IG14\n        lea      rdx, [rbp-0x40]\n-       mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.FunctionParameter](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter],byref):System.Data.Entity.Core.Metadata.Edm.FunctionParameter\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M65500_IG12:\n        mov      rdi, gword ptr [rax\u002B0x28]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x48]\n@@ -305,6 \u002B271,8 @@ G_M65500_IG12:\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r13\u002B0x20]\n\u002B\t\t\t\t\t\t;; size=226 bbWeight=0.50 PerfScore 35.00\n\u002BG_M65500_IG09:\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r13\u002B0x28]\n@@ -330,8 \u002B298,6 @@ G_M65500_IG12:\n        mov      dword ptr [rbp-0x44], eax\n        mov      qword ptr [r12\u002B0x28], -1\n        mov      rdi, 0xD1FFAB1E      ; \u0027\u0027\n-\t\t\t\t\t\t;; size=235 bbWeight=0.50 PerfScore 27.50\n-G_M65500_IG13:\n        mov      gword ptr [r12\u002B0x18], rdi\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; \u0027message\u0027\n@@ -352,9 \u002B318,9 @@ G_M65500_IG13:\n        mov      rsi, r12\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:Add(System.__Canon):this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:Add(System.__Canon):this\n-       jmp      G_M65500_IG15\n-\t\t\t\t\t\t;; size=108 bbWeight=0.50 PerfScore 9.12\n-G_M65500_IG14:\n\u002B       jmp      G_M65500_IG11\n\u002B\t\t\t\t\t\t;; size=241 bbWeight=0.50 PerfScore 20.88\n\u002BG_M65500_IG10:\n        mov      rdi, rbx\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x40]\n@@ -416,10 \u002B382,10 @@ G_M65500_IG14:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:Add(System.__Canon):this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:Add(System.__Canon):this\n \t\t\t\t\t\t;; size=295 bbWeight=0.50 PerfScore 28.50\n-G_M65500_IG15:\n\u002BG_M65500_IG11:\n        xor      eax, eax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M65500_IG16:\n\u002BG_M65500_IG12:\n        add      rsp, 72\n        pop      rbx\n        pop      r12\n@@ -429,7 \u002B395,7 @@ G_M65500_IG16:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M65500_IG17:\n\u002BG_M65500_IG13:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -441,18 \u002B407,18 @@ G_M65500_IG17:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M65500_IG18:\n\u002BG_M65500_IG14:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M65500_IG19:\n\u002BG_M65500_IG15:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.Data.Entity.Core.Metadata.Edm.MetadataProperty]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M65500_IG04\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1533, prolog size 29, PerfScore 171.25, instruction count 340, allocated bytes for code 1533 (MethodHash=7dc80023) for method System.Data.Entity.Core.Mapping.FunctionImportMappingComposableHelper:TryCreateFunctionImportMappingComposableWithScalarResult(System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Data.Entity.Core.Metadata.Edm.EdmType,System.Data.Entity.Core.Metadata.Edm.RowType,System.Xml.IXmlLineInfo,byref):bool:this (FullOpts)\n\u002B; Total bytes of code 1429, prolog size 29, PerfScore 156.25, instruction count 314, allocated bytes for code 1429 (MethodHash=7dc80023) for method System.Data.Entity.Core.Mapping.FunctionImportMappingComposableHelper:TryCreateFunctionImportMappingComposableWithScalarResult(System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Data.Entity.Core.Metadata.Edm.EdmType,System.Data.Entity.Core.Metadata.Edm.RowType,System.Xml.IXmlLineInfo,byref):bool:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1533,"DiffBytes":1429},{"Assembly":"MathNet.Numerics.dasm","Method":"MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:SameAs[short](MathNet.Numerics.LinearAlgebra.Matrix\u00601[short],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this (FullOpts)","Category":"improvement","Description":"594 -\u003E 120 bytes (-474)","ExtraInfo":null,"Diff":"@@ -1,214 \u002B1,65 @@\n ; Assembly listing for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:SameAs[short](MathNet.Numerics.LinearAlgebra.Matrix\u00601[short],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n-; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data\n\u002B; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 12,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]\u003E\n-;  V01 arg1         [V01,T03] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[short]\u003E\n-;  V02 arg2         [V02,T01] ( 11,  6.50)     int  -\u003E  r15         single-def\n-;  V03 arg3         [V03,T02] ( 11,  6.50)     int  -\u003E  r14         single-def\n-;  V04 arg4         [V04,T04] (  3,  2.50)   ubyte  -\u003E  r13         single-def\n-;  V05 loc0         [V05,T08] (  4,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]\u003E\n\u002B;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]\u003E\n\u002B;  V01 arg1         [V01,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[short]\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  4   )     int  -\u003E  r15         single-def\n\u002B;  V03 arg3         [V03,T04] (  4,  4   )     int  -\u003E  r14         single-def\n\u002B;* V04 arg4         [V04    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def\n\u002B;* V05 loc0         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]\u003E\n\u002B;  V07 tmp1         [V07,T00] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cint[]\u003E\n-;  V09 tmp3         [V09,T06] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[int]\u003E\n-;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cint[]\u003E\n-;  V11 tmp5         [V11,T11] (  2,  1   )     int  -\u003E  rsi         \u0022Inline return value spill temp\u0022\n-;  V12 tmp6         [V12,T09] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]\u003E\n-;  V13 tmp7         [V13,T10] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]\u003E\n-;  V14 tmp8         [V14,T07] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]\u003E\n-;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cint[]\u003E\n-;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022Single return block return value\u0022\n ;\n ; Lcl frame size = 8\n \n G_M56284_IG01:\n-       push     rbp\n        push     r15\n        push     r14\n        push     r13\n-       push     r12\n        push     rbx\n        push     rax\n-       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n        mov      r15d, edx\n        mov      r14d, ecx\n-       mov      r13d, r8d\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.75\n G_M56284_IG02:\n-       mov      r12, gword ptr [rsi\u002B0x08]\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M56284_IG11\n-\t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 7.00\n-G_M56284_IG03:\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[int]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M56284_IG07\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      SHORT G_M56284_IG05\n\u002B       cmp      byte  ptr [rsi], sil\n        mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        mov      rdi, r13\n        mov      esi, r15d\n        mov      edx, r14d\n        mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]:.ctor(int,int):this\n        call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]:.ctor(int,int):this\n        imul     r15d, r14d\n        movsxd   rsi, r15d\n        mov      rdi, 0xD1FFAB1E      ; int[]\n        call     CORINFO_HELP_NEWARR_1_VC\n        mov      rsi, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, rbx\n        mov      rsi, r13\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=150 bbWeight=0.50 PerfScore 12.62\n-G_M56284_IG04:\n\u002B\t\t\t\t\t\t;; size=89 bbWeight=1 PerfScore 17.25\n\u002BG_M56284_IG03:\n        add      rsp, 8\n        pop      rbx\n-       pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n-       pop      rbp\n        tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M56284_IG05:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 5.00\n-G_M56284_IG06:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M56284_IG07:\n-       test     r13b, r13b\n-       je       SHORT G_M56284_IG09\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 5.62\n-G_M56284_IG08:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[int]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M56284_IG09:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[int]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]:.ctor(int,int):this\n-       cmp      r15d, r14d\n-       mov      esi, r14d\n-       cmovle   esi, r15d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; int[]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 7.12\n-G_M56284_IG10:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x10]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:Diagonal(MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[int]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M56284_IG11:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]:.ctor(int,int):this\n-       mov      esi, r15d\n-       imul     esi, r14d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; int[]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=89 bbWeight=0.50 PerfScore 7.75\n-G_M56284_IG12:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[int]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n\u002B\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 594, prolog size 16, PerfScore 66.75, instruction count 157, allocated bytes for code 594 (MethodHash=71cf2423) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:SameAs[short](MathNet.Numerics.LinearAlgebra.Matrix\u00601[short],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this (FullOpts)\n\u002B; Total bytes of code 120, prolog size 8, PerfScore 27.25, instruction count 34, allocated bytes for code 120 (MethodHash=71cf2423) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[int]:SameAs[short](MathNet.Numerics.LinearAlgebra.Matrix\u00601[short],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[int]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":594,"DiffBytes":120},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:Aggregate[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],int]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[int]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[int]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[int]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[int]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[int]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V69 tmp59        [V69,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n\u002BG_M13649_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M13649_IG26\n\u002B       je       SHORT G_M13649_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M13649_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M13649_IG26:\n\u002BG_M13649_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M13649_IG27:\n\u002BG_M13649_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M13649_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M13649_IG28:\n\u002BG_M13649_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M13649_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M13649_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M13649_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M13649_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M13649_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M13649_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M13649_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M13649_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M13649_IG31\n\u002B       je       SHORT G_M13649_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M13649_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M13649_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M13649_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M13649_IG32\n\u002B       je       SHORT G_M13649_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M13649_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M13649_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M13649_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M13649_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateAggregateToCollectionResultCursor[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[int],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[int]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M13649_IG33:\n\u002BG_M13649_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M13649_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M13649_IG34:\n\u002BG_M13649_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M13649_IG35:\n\u002BG_M13649_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M13649_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M13649_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M13649_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M13649_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M13649_IG37\n\u002B       je       SHORT G_M13649_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M13649_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M13649_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M13649_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M13649_IG38\n\u002B       je       SHORT G_M13649_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M13649_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M13649_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M13649_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M13649_IG39:\n\u002BG_M13649_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M13649_IG40:\n\u002BG_M13649_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M13649_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M13649_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M13649_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M13649_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M13649_IG42\n\u002B       je       SHORT G_M13649_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M13649_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M13649_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M13649_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M13649_IG43\n\u002B       je       SHORT G_M13649_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M13649_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M13649_IG43:\n\u002BG_M13649_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M13649_IG44:\n\u002BG_M13649_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=9efccaae) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:Aggregate[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=9efccaae) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:Aggregate[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.ContractService:ListAutoPaging(Stripe.V2.Billing.ContractListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.Contract]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.Billing.ContractService:ListAutoPaging(Stripe.V2.Billing.ContractListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.Contract]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.ContractService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.ContractListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.ContractListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.Contract]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.Contract]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.Contract]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.Contract]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.Contract]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.Contract]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.Contract]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.Contract]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.Contract]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M45612_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M45612_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/billing/contracts\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M45612_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M45612_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.Contract]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.Contract]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M45612_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M45612_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.Contract]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.Contract]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M45612_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M45612_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=cf844dd3) for method Stripe.V2.Billing.ContractService:ListAutoPaging(Stripe.V2.Billing.ContractListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.Contract]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=cf844dd3) for method Stripe.V2.Billing.ContractService:ListAutoPaging(Stripe.V2.Billing.ContractListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.Contract]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.Internal.Data.DatabaseCommand\u002B\u003CExecuteAsync\u003Ed__12\u00601[long]:MoveNext():this (FullOpts)","Category":"same-size","Description":"4,224 -\u003E 4,224 bytes (0)","ExtraInfo":null,"Diff":"@@ -411,7 \u002B411,7 @@ G_M42207_IG14:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        cmp      byte  ptr [rax\u002B0x10], 0\n        jne      SHORT G_M42207_IG15\n        mov      rsi, gword ptr [rbx\u002B0x08]","Truncated":true,"BaseBytes":4224,"DiffBytes":4224},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher:IsMemberPartOfNotNullCondition(System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper],System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath,int):bool (FullOpts)","Category":"improvement","Description":"970 -\u003E 866 bytes (-104)","ExtraInfo":null,"Diff":"@@ -8,16 \u002B8,16 @@\n ; 0 inlinees with PGO data; 24 single block inlinees; 9 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T31] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n-;  V01 arg1         [V01,T32] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath\u003E\n-;  V02 arg2         [V02,T22] (  4, 18   )     int  -\u003E  rbx         single-def\n\u002B;  V00 arg0         [V00,T29] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n\u002B;  V01 arg1         [V01,T30] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath\u003E\n\u002B;  V02 arg2         [V02,T20] (  4, 18   )     int  -\u003E  rbx         single-def\n ;  V03 loc0         [V03,T12] (  6, 26   )     ref  -\u003E  r13         class-hnd exact single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher\u002B\u003C\u003Ec__DisplayClass9_0\u003E\n-;  V04 loc1         [V04,T23] (  6, 19   )     ref  -\u003E  [rbp-0x58]  class-hnd EH-live spill-single-def \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n-;  V05 loc2         [V05,T18] (  3, 24   )     ref  -\u003E  r15         class-hnd \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper\u003E\n\u002B;  V04 loc1         [V04,T21] (  6, 19   )     ref  -\u003E  [rbp-0x58]  class-hnd EH-live spill-single-def \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n\u002B;  V05 loc2         [V05,T16] (  3, 24   )     ref  -\u003E  r15         class-hnd \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper\u003E\n ;* V06 loc3         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellQuery\u003E\n ;* V07 loc4         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellQuery\u003E\n-;  V08 loc5         [V08,T17] (  4, 24   )     int  -\u003E  r12        \n-;  V09 loc6         [V09,T33] (  2,  2   )   ubyte  -\u003E  [rbp-0x2C]  do-not-enreg[Z] must-init EH-live\n\u002B;  V08 loc5         [V08,T15] (  4, 24   )     int  -\u003E  r12        \n\u002B;  V09 loc6         [V09,T31] (  2,  2   )   ubyte  -\u003E  [rbp-0x2C]  do-not-enreg[Z] must-init EH-live\n ;* V10 loc7         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath,bool]\u003E\n ;* V11 loc8         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath\u003E\n ;# V12 OutArgs      [V12    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n@@ -27,36 \u002B27,36 @@\n ;* V16 tmp4         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;  V17 tmp5         [V17,T10] (  4, 28   )     ref  -\u003E  [rbp-0x60] \n ;  V18 tmp6         [V18,T06] (  5, 40   )     ref  -\u003E  [rbp-0x68]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath,bool]\u003E\n-;  V19 tmp7         [V19,T03] (  4, 56   )     ref  -\u003E  r14         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n-;  V20 tmp8         [V20    ] (  3, 16   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V19 tmp7         [V19,T03] (  3, 48   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n\u002B;  V20 tmp8         [V20    ] (  2, 16   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V21 tmp9         [V21    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V22 tmp10        [V22,T13] (  5, 24   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\u003E\n-;  V23 tmp11        [V23,T15] (  4, 24   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n\u002B;  V22 tmp10        [V22,T13] (  4, 24   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\u003E\n\u002B;* V23 tmp11        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n ;  V24 tmp12        [V24,T05] (  6, 40   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellQuery\u003E\n ;* V25 tmp13        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\u003E\n-;  V26 tmp14        [V26,T04] (  4, 56   )     ref  -\u003E  r15         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n-;  V27 tmp15        [V27    ] (  3, 16   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V26 tmp14        [V26,T04] (  3, 48   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n\u002B;  V27 tmp15        [V27    ] (  2, 16   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V28 tmp16        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V29 tmp17        [V29,T14] (  5, 24   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\u003E\n-;  V30 tmp18        [V30,T16] (  4, 24   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n-;  V31 tmp19        [V31,T24] (  4, 16   )     ref  -\u003E  r15         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellQuery\u003E\n\u002B;  V29 tmp17        [V29,T14] (  4, 24   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\u003E\n\u002B;* V30 tmp18        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n\u002B;  V31 tmp19        [V31,T22] (  4, 16   )     ref  -\u003E  r15         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellQuery\u003E\n ;* V32 tmp20        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\u003E\n ;  V33 tmp21        [V33,T01] (  5, 80   )     ref  -\u003E  r12         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellQuery\u002B\u003CGetProjectedMembers\u003Ed__40\u003E\n-;  V34 tmp22        [V34,T26] (  2, 16   )     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath]\u003E\n\u002B;  V34 tmp22        [V34,T24] (  2, 16   )     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath]\u003E\n ;* V35 tmp23        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath]\u003E\n ;* V36 tmp24        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath,bool]\u003E\n-;* V37 tmp25        [V37,T30] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V38 tmp26        [V38,T29] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath[]\u003E\n\u002B;* V37 tmp25        [V37,T28] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V38 tmp26        [V38,T27] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath[]\u003E\n ;  V39 tmp27        [V39,T00] (  6, 96   )     ref  -\u003E  [rbp-0x70]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Enumerable\u002B\u003CTakeWhileIterator\u003Ed__327\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath]\u003E\n... diff truncated; middle omitted ...\n        call     [rax]System.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher:HasNotNullCondition(System.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellQuery,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath):bool\n        test     eax, eax\n-       jne      G_M22960_IG21\n-       mov      r15, gword ptr [r15\u002B0x28]\n-       test     r15, r15\n-       je       G_M22960_IG23\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M22960_IG11\n-\t\t\t\t\t\t;; size=70 bbWeight=8 PerfScore 120.00\n-G_M22960_IG10:\n-       lea      rsi, [rbp-0x40]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M22960_IG12\n-\t\t\t\t\t\t;; size=19 bbWeight=4 PerfScore 39.00\n-G_M22960_IG11:\n\u002B       jne      G_M22960_IG15\n\u002B       mov      rsi, gword ptr [r15\u002B0x28]\n\u002B       test     rsi, rsi\n\u002B       je       G_M22960_IG17\n        lea      rdx, [rbp-0x40]\n-       mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell],byref):System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=4 PerfScore 17.00\n-G_M22960_IG12:\n        cmp      byte  ptr [rbp-0x40], 0\n-       je       G_M22960_IG24\n\u002B       je       G_M22960_IG18\n        cmp      byte  ptr [rax], al\n        test     ebx, ebx\n-       jne      SHORT G_M22960_IG14\n-\t\t\t\t\t\t;; size=16 bbWeight=8 PerfScore 42.00\n-G_M22960_IG13:\n\u002B       jne      SHORT G_M22960_IG08\n\u002B\t\t\t\t\t\t;; size=82 bbWeight=8 PerfScore 154.00\n\u002BG_M22960_IG07:\n        mov      r15, gword ptr [rax\u002B0x10]\n-       jmp      SHORT G_M22960_IG15\n\u002B       jmp      SHORT G_M22960_IG09\n \t\t\t\t\t\t;; size=6 bbWeight=4 PerfScore 16.00\n-G_M22960_IG14:\n\u002BG_M22960_IG08:\n        mov      r15, gword ptr [rax\u002B0x08]\n \t\t\t\t\t\t;; size=4 bbWeight=4 PerfScore 8.00\n-G_M22960_IG15:\n\u002BG_M22960_IG09:\n        cmp      byte  ptr [r14], r14b\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellQuery\u002B\u003CGetProjectedMembers\u003Ed__40\n        call     CORINFO_HELP_NEWSFAST\n@@ -207,9 \u002B169,9 @@ G_M22960_IG15:\n        mov      rax, gword ptr [r13\u002B0x10]\n        test     rax, rax\n        mov      gword ptr [rbp-0x60], rax\n-       jne      SHORT G_M22960_IG17\n\u002B       jne      SHORT G_M22960_IG11\n \t\t\t\t\t\t;; size=97 bbWeight=8 PerfScore 154.00\n-G_M22960_IG16:\n\u002BG_M22960_IG10:\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath,bool]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x68], rax\n@@ -225,7 \u002B187,7 @@ G_M22960_IG16:\n        mov      rax, gword ptr [rbp-0x68]\n        mov      gword ptr [rbp-0x60], rax\n \t\t\t\t\t\t;; size=69 bbWeight=4 PerfScore 40.00\n-G_M22960_IG17:\n\u002BG_M22960_IG11:\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002B\u003CTakeWhileIterator\u003Ed__327\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath]\n        call     CORINFO_HELP_NEWSFAST\n        mov      rsi, rax\n@@ -263,22 \u002B225,22 @@ G_M22960_IG17:\n        mov      rax, gword ptr [rbp-0x58]\n        jle      G_M22960_IG03\n \t\t\t\t\t\t;; size=180 bbWeight=8 PerfScore 244.00\n-G_M22960_IG18:\n\u002BG_M22960_IG12:\n        mov      rsi, gword ptr [r15\u002B0x10]\n        cmp      r12d, dword ptr [rsi\u002B0x08]\n-       jae      SHORT G_M22960_IG25\n\u002B       jae      SHORT G_M22960_IG19\n        mov      edi, r12d\n        mov      rsi, gword ptr [rsi\u002B8*rdi\u002B0x10]\n        mov      rdi, rsi\n        test     rdi, rdi\n-       je       SHORT G_M22960_IG20\n\u002B       je       SHORT G_M22960_IG14\n \t\t\t\t\t\t;; size=26 bbWeight=4 PerfScore 35.00\n-G_M22960_IG19:\n\u002BG_M22960_IG13:\n        mov      rcx, 0xD1FFAB1E      ; System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberProjectedSlot\n        cmp      qword ptr [rdi], rcx\n-       jne      SHORT G_M22960_IG22\n\u002B       jne      SHORT G_M22960_IG16\n \t\t\t\t\t\t;; size=15 bbWeight=2 PerfScore 6.50\n-G_M22960_IG20:\n\u002BG_M22960_IG14:\n        mov      rsi, gword ptr [rdi\u002B0x08]\n        mov      rdi, r15\n        mov      rcx, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher:HasNotNullCondition(System.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellQuery,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath):bool\n@@ -286,39 \u002B248,39 @@ G_M22960_IG20:\n        test     eax, eax\n        je       G_M22960_IG03\n \t\t\t\t\t\t;; size=27 bbWeight=4 PerfScore 27.00\n-G_M22960_IG21:\n\u002BG_M22960_IG15:\n        mov      dword ptr [rbp-0x2C], 1\n-       jmp      SHORT G_M22960_IG26\n\u002B       jmp      SHORT G_M22960_IG20\n \t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.00\n-G_M22960_IG22:\n\u002BG_M22960_IG16:\n        mov      rdi, rcx\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rcx]CORINFO_HELP_CHKCASTCLASS\n        int3     \n \t\t\t\t\t\t;; size=16 bbWeight=0 PerfScore 0.00\n-G_M22960_IG23:\n\u002BG_M22960_IG17:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M22960_IG24:\n\u002BG_M22960_IG18:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M22960_IG25:\n\u002BG_M22960_IG19:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n-G_M22960_IG26:\n-       call     G_M22960_IG31\n\u002BG_M22960_IG20:\n\u002B       call     G_M22960_IG25\n        nop      \n \t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 1.25\n-G_M22960_IG27:\n\u002BG_M22960_IG21:\n        mov      eax, dword ptr [rbp-0x2C]\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 1.00\n-G_M22960_IG28:\n\u002BG_M22960_IG22:\n        add      rsp, 88\n        pop      rbx\n        pop      r12\n@@ -328,13 \u002B290,13 @@ G_M22960_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M22960_IG29:\n\u002BG_M22960_IG23:\n        mov      rdi, gword ptr [rbp-0x58]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        xor      eax, eax\n \t\t\t\t\t\t;; size=19 bbWeight=1 PerfScore 4.50\n-G_M22960_IG30:\n\u002BG_M22960_IG24:\n        add      rsp, 88\n        pop      rbx\n        pop      r12\n@@ -344,23 \u002B306,23 @@ G_M22960_IG30:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M22960_IG31:\n\u002BG_M22960_IG25:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 1.00\n-G_M22960_IG32:\n\u002BG_M22960_IG26:\n        cmp      gword ptr [rbp-0x58], 0\n-       je       SHORT G_M22960_IG33\n\u002B       je       SHORT G_M22960_IG27\n        mov      rdi, gword ptr [rbp-0x58]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=1 PerfScore 6.25\n-G_M22960_IG33:\n\u002BG_M22960_IG27:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M22960_IG34:\n\u002BG_M22960_IG28:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n \n-; Total bytes of code 970, prolog size 46, PerfScore 1063.33, instruction count 231, allocated bytes for code 970 (MethodHash=a4f2a64f) for method System.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher:IsMemberPartOfNotNullCondition(System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper],System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath,int):bool (FullOpts)\n\u002B; Total bytes of code 866, prolog size 46, PerfScore 935.33, instruction count 205, allocated bytes for code 866 (MethodHash=a4f2a64f) for method System.Data.Entity.Core.Mapping.ViewGeneration.Validation.ErrorPatternMatcher:IsMemberPartOfNotNullCondition(System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper],System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath,int):bool (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":970,"DiffBytes":866},{"Assembly":"MathNet.Numerics.dasm","Method":"MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:SameAs[System.Numerics.Vector\u00601[float]](MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this (FullOpts)","Category":"improvement","Description":"594 -\u003E 120 bytes (-474)","ExtraInfo":null,"Diff":"@@ -1,214 \u002B1,65 @@\n ; Assembly listing for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:SameAs[System.Numerics.Vector\u00601[float]](MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n-; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data\n\u002B; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 12,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]\u003E\n-;  V01 arg1         [V01,T03] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V02 arg2         [V02,T01] ( 11,  6.50)     int  -\u003E  r15         single-def\n-;  V03 arg3         [V03,T02] ( 11,  6.50)     int  -\u003E  r14         single-def\n-;  V04 arg4         [V04,T04] (  3,  2.50)   ubyte  -\u003E  r13         single-def\n-;  V05 loc0         [V05,T08] (  4,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]\u003E\n\u002B;  V01 arg1         [V01,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  4   )     int  -\u003E  r15         single-def\n\u002B;  V03 arg3         [V03,T04] (  4,  4   )     int  -\u003E  r14         single-def\n\u002B;* V04 arg4         [V04    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def\n\u002B;* V05 loc0         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]\u003E\n\u002B;  V07 tmp1         [V07,T00] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Clong[]\u003E\n-;  V09 tmp3         [V09,T06] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[long]\u003E\n-;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Clong[]\u003E\n-;  V11 tmp5         [V11,T11] (  2,  1   )     int  -\u003E  rsi         \u0022Inline return value spill temp\u0022\n-;  V12 tmp6         [V12,T09] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]\u003E\n-;  V13 tmp7         [V13,T10] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]\u003E\n-;  V14 tmp8         [V14,T07] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]\u003E\n-;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Clong[]\u003E\n-;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022Single return block return value\u0022\n ;\n ; Lcl frame size = 8\n \n G_M26524_IG01:\n-       push     rbp\n        push     r15\n        push     r14\n        push     r13\n-       push     r12\n        push     rbx\n        push     rax\n-       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n        mov      r15d, edx\n        mov      r14d, ecx\n-       mov      r13d, r8d\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.75\n G_M26524_IG02:\n-       mov      r12, gword ptr [rsi\u002B0x08]\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M26524_IG11\n-\t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 7.00\n-G_M26524_IG03:\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[long]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M26524_IG07\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      SHORT G_M26524_IG05\n\u002B       cmp      byte  ptr [rsi], sil\n        mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        mov      rdi, r13\n        mov      esi, r15d\n        mov      edx, r14d\n        mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]:.ctor(int,int):this\n        call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]:.ctor(int,int):this\n        imul     r15d, r14d\n        movsxd   rsi, r15d\n        mov      rdi, 0xD1FFAB1E      ; long[]\n        call     CORINFO_HELP_NEWARR_1_PTR\n        mov      rsi, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, rbx\n        mov      rsi, r13\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=150 bbWeight=0.50 PerfScore 12.62\n-G_M26524_IG04:\n\u002B\t\t\t\t\t\t;; size=89 bbWeight=1 PerfScore 17.25\n\u002BG_M26524_IG03:\n        add      rsp, 8\n        pop      rbx\n-       pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n-       pop      rbp\n        tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M26524_IG05:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 5.00\n-G_M26524_IG06:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M26524_IG07:\n-       test     r13b, r13b\n-       je       SHORT G_M26524_IG09\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 5.62\n-G_M26524_IG08:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M26524_IG09:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[long]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]:.ctor(int,int):this\n-       cmp      r15d, r14d\n-       mov      esi, r14d\n-       cmovle   esi, r15d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; long[]\n-       call     CORINFO_HELP_NEWARR_1_PTR\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 7.12\n-G_M26524_IG10:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x10]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:Diagonal(MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[long]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M26524_IG11:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]:.ctor(int,int):this\n-       mov      esi, r15d\n-       imul     esi, r14d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; long[]\n-       call     CORINFO_HELP_NEWARR_1_PTR\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=89 bbWeight=0.50 PerfScore 7.75\n-G_M26524_IG12:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n\u002B\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 594, prolog size 16, PerfScore 66.75, instruction count 157, allocated bytes for code 594 (MethodHash=f0579863) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:SameAs[System.Numerics.Vector\u00601[float]](MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this (FullOpts)\n\u002B; Total bytes of code 120, prolog size 8, PerfScore 27.25, instruction count 34, allocated bytes for code 120 (MethodHash=f0579863) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:SameAs[System.Numerics.Vector\u00601[float]](MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":594,"DiffBytes":120},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:Aggregate[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],long]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[long]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[long]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[long]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[long]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[long]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V69 tmp59        [V69,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n\u002BG_M48584_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M48584_IG26\n\u002B       je       SHORT G_M48584_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M48584_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M48584_IG26:\n\u002BG_M48584_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M48584_IG27:\n\u002BG_M48584_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M48584_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M48584_IG28:\n\u002BG_M48584_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M48584_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M48584_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M48584_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M48584_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M48584_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M48584_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M48584_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M48584_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M48584_IG31\n\u002B       je       SHORT G_M48584_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M48584_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M48584_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M48584_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M48584_IG32\n\u002B       je       SHORT G_M48584_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M48584_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M48584_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M48584_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M48584_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateAggregateToCollectionResultCursor[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[long],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[long]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M48584_IG33:\n\u002BG_M48584_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M48584_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M48584_IG34:\n\u002BG_M48584_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M48584_IG35:\n\u002BG_M48584_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M48584_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M48584_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M48584_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M48584_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M48584_IG37\n\u002B       je       SHORT G_M48584_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M48584_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M48584_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M48584_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M48584_IG38\n\u002B       je       SHORT G_M48584_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M48584_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M48584_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M48584_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M48584_IG39:\n\u002BG_M48584_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M48584_IG40:\n\u002BG_M48584_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M48584_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M48584_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M48584_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M48584_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M48584_IG42\n\u002B       je       SHORT G_M48584_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M48584_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M48584_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M48584_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M48584_IG43\n\u002B       je       SHORT G_M48584_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M48584_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M48584_IG43:\n\u002BG_M48584_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M48584_IG44:\n\u002BG_M48584_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=1f074237) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:Aggregate[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=1f074237) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:Aggregate[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.CustomPricingUnitService:ListAutoPaging(Stripe.V2.Billing.CustomPricingUnitListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.CustomPricingUnit]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.Billing.CustomPricingUnitService:ListAutoPaging(Stripe.V2.Billing.CustomPricingUnitListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.CustomPricingUnit]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.CustomPricingUnitService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.CustomPricingUnitListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.CustomPricingUnitListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.CustomPricingUnit]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.CustomPricingUnit]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.CustomPricingUnit]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.CustomPricingUnit]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.CustomPricingUnit]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.CustomPricingUnit]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.CustomPricingUnit]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.CustomPricingUnit]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.CustomPricingUnit]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M55011_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M55011_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/billing/custom_pricing_units\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M55011_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M55011_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.CustomPricingUnit]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.CustomPricingUnit]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M55011_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M55011_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.CustomPricingUnit]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.CustomPricingUnit]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M55011_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M55011_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=a672291c) for method Stripe.V2.Billing.CustomPricingUnitService:ListAutoPaging(Stripe.V2.Billing.CustomPricingUnitListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.CustomPricingUnit]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=a672291c) for method Stripe.V2.Billing.CustomPricingUnitService:ListAutoPaging(Stripe.V2.Billing.CustomPricingUnitListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.CustomPricingUnit]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.Internal.Data.DatabaseCommand\u002B\u003CExecuteAsync\u003Ed__12\u00601[short]:MoveNext():this (FullOpts)","Category":"same-size","Description":"4,213 -\u003E 4,213 bytes (0)","ExtraInfo":null,"Diff":"@@ -407,7 \u002B407,7 @@ G_M56615_IG14:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        cmp      byte  ptr [rax\u002B0x10], 0\n        jne      SHORT G_M56615_IG15\n        mov      rsi, gword ptr [rbx\u002B0x08]","Truncated":true,"BaseBytes":4213,"DiffBytes":4213},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint:BuildConstraintExceptionMessage():System.String:this (FullOpts)","Category":"improvement","Description":"1,154 -\u003E 1,050 bytes (-104)","ExtraInfo":null,"Diff":"@@ -20,16 \u002B20,16 @@\n ;* V09 tmp3         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.Text.StringBuilder\u003E\n ;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.Text.StringBuilder\u003E\n ;  V11 tmp5         [V11,T34] (  2,  4   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n-;  V12 tmp6         [V12,T21] (  4,  7   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n-;  V13 tmp7         [V13    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V12 tmp6         [V12,T21] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n\u002B;  V13 tmp7         [V13    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V14 tmp8         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V15 tmp9         [V15,T36] (  4,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmProperty\u003E\n-;  V16 tmp10        [V16,T37] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n-;  V17 tmp11        [V17,T22] (  4,  7   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n-;  V18 tmp12        [V18    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T36] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmProperty\u003E\n\u002B;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n\u002B;  V17 tmp11        [V17,T22] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n\u002B;  V18 tmp12        [V18    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V19 tmp13        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V20 tmp14        [V20,T38] (  4,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmProperty\u003E\n-;  V21 tmp15        [V21,T39] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n\u002B;  V20 tmp14        [V20,T37] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmProperty\u003E\n\u002B;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cchar[]\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cchar[]\u003E\n ;  V24 tmp18        [V24,T23] (  3,  6   )     ref  -\u003E  rcx         class-hnd \u0022Inline stloc first use temp\u0022 \u003Cchar[]\u003E\n@@ -83,34 \u002B83,15 @@ G_M44090_IG02:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint:get_FromProperties():System.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]:this\n        call     [rax]System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint:get_FromProperties():System.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]:this\n-       mov      r15, rax\n-       test     r15, r15\n-       je       G_M44090_IG31\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M44090_IG04\n-\t\t\t\t\t\t;; size=57 bbWeight=1 PerfScore 10.00\n-G_M44090_IG03:\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M44090_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M44090_IG04:\n\u002B       je       G_M44090_IG26\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.EdmProperty](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty],byref):System.Data.Entity.Core.Metadata.Edm.EdmProperty\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M44090_IG05:\n        cmp      byte  ptr [rbp-0x38], 0\n-       je       G_M44090_IG32\n\u002B       je       G_M44090_IG27\n        mov      rdi, rax\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x48]\n@@ -120,34 \u002B101,15 @@ G_M44090_IG05:\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x30]System.Data.Entity.Core.Metadata.Edm.EdmType:get_Name():System.String:this\n        mov      r15, rax\n-       mov      r14, gword ptr [rbx\u002B0x38]\n-       test     r14, r14\n-       je       G_M44090_IG31\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M44090_IG07\n-\t\t\t\t\t\t;; size=82 bbWeight=1 PerfScore 25.00\n-G_M44090_IG06:\n-       lea      rsi, [rbp-0x40]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M44090_IG08\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M44090_IG07:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x38]\n\u002B       test     rsi, rsi\n\u002B       je       G_M44090_IG26\n        lea      rdx, [rbp-0x40]\n-       mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.EdmProperty](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty],byref):System.Data.Entity.Core.Metadata.Edm.EdmProperty\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M44090_IG08:\n        cmp      byte  ptr [rbp-0x40], 0\n-       je       G_M44090_IG32\n\u002B       je       G_M44090_IG27\n        mov      rdi, rax\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x48]\n@@ -172,6 \u002B134,8 @@ G_M44090_IG08:\n        mov      r12, rax\n        mov      dword ptr [r12\u002B0x20], 0xD1FFAB1E\n        mov      rdi, 0xD1FFAB1E      ; char[]\n\u002B\t\t\t\t\t\t;; size=265 bbWeight=1 PerfScore 58.25\n\u002BG_M44090_IG03:\n        mov      esi, 16\n        call     CORINFO_HELP_NEWARR_1_VC\n        mov      rsi, rax\n@@ -186,13 \u002B150,13 @@ G_M44090_IG08:\n        mov      r11, 0xD1FFAB1E      ; function address\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       jle      G_M44090_IG29\n-\t\t\t\t\t\t;; size=202 bbWeight=1 PerfScore 39.50\n-G_M44090_IG09:\n\u002B       jle      G_M44090_IG24\n\u002B\t\t\t\t\t\t;; size=68 bbWeight=1 PerfScore 14.25\n\u002BG_M44090_IG04:\n        cmp      dword ptr [rbp-0x2C], 0\n-       jle      G_M44090_IG14\n\u002B       jle      G_M44090_IG09\n \t\t\t\t\t\t;; size=10 bbWeight=4 PerfScore 8.00\n-G_M44090_IG10:\n\u002BG_M44090_IG05:\n        mov      rcx, 0xD1FFAB1E\n... diff truncated; middle omitted ...\n        mov      rsi, rdx\n        mov      edx, 2\n        mov      rcx, 0xD1FFAB1E      ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this\n        call     [rcx]System.Text.StringBuilder:AppendWithExpansion(byref,int):this\n-       jmp      SHORT G_M44090_IG12\n\u002B       jmp      SHORT G_M44090_IG07\n \t\t\t\t\t\t;; size=63 bbWeight=2 PerfScore 30.50\n-G_M44090_IG11:\n\u002BG_M44090_IG06:\n        movsxd   rdi, r8d\n        lea      rdi, bword ptr [rcx\u002B2*rdi\u002B0x10]\n        mov      word  ptr [rdi], 44\n        mov      word  ptr [rdi\u002B0x02], 32\n        mov      dword ptr [r13\u002B0x18], r9d\n \t\t\t\t\t\t;; size=23 bbWeight=2 PerfScore 8.50\n-G_M44090_IG12:\n\u002BG_M44090_IG07:\n        mov      rsi, bword ptr [rbp-0x48]\n        mov      rcx, gword ptr [r12\u002B0x08]\n        mov      r8d, dword ptr [r12\u002B0x18]\n        lea      r9d, [r8\u002B0x02]\n        cmp      dword ptr [rcx\u002B0x08], r9d\n-       jae      SHORT G_M44090_IG13\n\u002B       jae      SHORT G_M44090_IG08\n        mov      rdi, r12\n        mov      edx, 2\n        mov      rcx, 0xD1FFAB1E      ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this\n        call     [rcx]System.Text.StringBuilder:AppendWithExpansion(byref,int):this\n-       jmp      SHORT G_M44090_IG14\n\u002B       jmp      SHORT G_M44090_IG09\n \t\t\t\t\t\t;; size=46 bbWeight=2 PerfScore 28.50\n-G_M44090_IG13:\n\u002BG_M44090_IG08:\n        movsxd   rdx, r8d\n        lea      rdx, bword ptr [rcx\u002B2*rdx\u002B0x10]\n        mov      word  ptr [rdx], 44\n        mov      word  ptr [rdx\u002B0x02], 32\n        mov      dword ptr [r12\u002B0x18], r9d\n \t\t\t\t\t\t;; size=24 bbWeight=2 PerfScore 8.50\n-G_M44090_IG14:\n\u002BG_M44090_IG09:\n        test     r15, r15\n-       je       SHORT G_M44090_IG16\n\u002B       je       SHORT G_M44090_IG11\n \t\t\t\t\t\t;; size=5 bbWeight=4 PerfScore 5.00\n-G_M44090_IG15:\n\u002BG_M44090_IG10:\n        mov      edx, dword ptr [r15\u002B0x08]\n        lea      rsi, bword ptr [r15\u002B0x0C]\n        mov      rdi, r13\n        mov      rcx, 0xD1FFAB1E      ; code for System.Text.StringBuilder:Append(byref,int):this\n        call     [rcx]System.Text.StringBuilder:Append(byref,int):this\n \t\t\t\t\t\t;; size=23 bbWeight=2 PerfScore 12.00\n-G_M44090_IG16:\n\u002BG_M44090_IG11:\n        mov      ecx, dword ptr [r13\u002B0x18]\n        mov      rdx, gword ptr [r13\u002B0x08]\n        cmp      dword ptr [rdx\u002B0x08], ecx\n-       ja       SHORT G_M44090_IG18\n\u002B       ja       SHORT G_M44090_IG13\n \t\t\t\t\t\t;; size=13 bbWeight=4 PerfScore 28.00\n-G_M44090_IG17:\n\u002BG_M44090_IG12:\n        mov      rdi, r13\n        mov      esi, 46\n        mov      rcx, 0xD1FFAB1E      ; code for System.Text.StringBuilder:AppendWithExpansion(char):this\n        call     [rcx]System.Text.StringBuilder:AppendWithExpansion(char):this\n-       jmp      SHORT G_M44090_IG19\n\u002B       jmp      SHORT G_M44090_IG14\n \t\t\t\t\t\t;; size=22 bbWeight=2 PerfScore 11.50\n-G_M44090_IG18:\n\u002BG_M44090_IG13:\n        mov      edi, ecx\n        mov      word  ptr [rdx\u002B2*rdi\u002B0x10], 46\n        inc      dword ptr [r13\u002B0x18]\n \t\t\t\t\t\t;; size=13 bbWeight=2 PerfScore 8.50\n-G_M44090_IG19:\n\u002BG_M44090_IG14:\n        mov      rdi, rbx\n        mov      rcx, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint:get_FromProperties():System.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]:this\n        call     [rcx]System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint:get_FromProperties():System.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]:this\n@@ -274,75 \u002B238,75 @@ G_M44090_IG19:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IList\u00601[System.__Canon]:get_Item(int):System.__Canon:this\n        call     [r11]System.Collections.Generic.IList\u00601[System.__Canon]:get_Item(int):System.__Canon:this\n        test     rax, rax\n-       je       SHORT G_M44090_IG21\n\u002B       je       SHORT G_M44090_IG16\n \t\t\t\t\t\t;; size=40 bbWeight=4 PerfScore 44.00\n-G_M44090_IG20:\n\u002BG_M44090_IG15:\n        mov      rdi, rax\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x08]System.Object:ToString():System.String:this\n        mov      rsi, rax\n        test     rsi, rsi\n-       je       SHORT G_M44090_IG21\n\u002B       je       SHORT G_M44090_IG16\n        mov      edx, dword ptr [rsi\u002B0x08]\n        add      rsi, 12\n        mov      rdi, r13\n        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:Append(byref,int):this\n        call     [rax]System.Text.StringBuilder:Append(byref,int):this\n \t\t\t\t\t\t;; size=43 bbWeight=2 PerfScore 29.00\n-G_M44090_IG21:\n\u002BG_M44090_IG16:\n        test     r14, r14\n-       je       SHORT G_M44090_IG23\n\u002B       je       SHORT G_M44090_IG18\n \t\t\t\t\t\t;; size=5 bbWeight=4 PerfScore 5.00\n-G_M44090_IG22:\n\u002BG_M44090_IG17:\n        mov      edx, dword ptr [r14\u002B0x08]\n        lea      rsi, bword ptr [r14\u002B0x0C]\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:Append(byref,int):this\n        call     [rax]System.Text.StringBuilder:Append(byref,int):this\n \t\t\t\t\t\t;; size=23 bbWeight=2 PerfScore 12.00\n-G_M44090_IG23:\n\u002BG_M44090_IG18:\n        mov      eax, dword ptr [r12\u002B0x18]\n        mov      rcx, gword ptr [r12\u002B0x08]\n        cmp      dword ptr [rcx\u002B0x08], eax\n-       ja       SHORT G_M44090_IG25\n\u002B       ja       SHORT G_M44090_IG20\n \t\t\t\t\t\t;; size=15 bbWeight=4 PerfScore 28.00\n-G_M44090_IG24:\n\u002BG_M44090_IG19:\n        mov      rdi, r12\n        mov      esi, 46\n        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:AppendWithExpansion(char):this\n        call     [rax]System.Text.StringBuilder:AppendWithExpansion(char):this\n-       jmp      SHORT G_M44090_IG26\n\u002B       jmp      SHORT G_M44090_IG21\n \t\t\t\t\t\t;; size=22 bbWeight=2 PerfScore 11.50\n-G_M44090_IG25:\n\u002BG_M44090_IG20:\n        mov      edi, eax\n        mov      word  ptr [rcx\u002B2*rdi\u002B0x10], 46\n        inc      dword ptr [r12\u002B0x18]\n \t\t\t\t\t\t;; size=14 bbWeight=2 PerfScore 8.50\n-G_M44090_IG26:\n\u002BG_M44090_IG21:\n        mov      rdi, gword ptr [rbx\u002B0x38]\n        mov      rdi, gword ptr [rdi\u002B0x08]\n        mov      esi, dword ptr [rbp-0x2C]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IList\u00601[System.__Canon]:get_Item(int):System.__Canon:this\n        call     [r11]System.Collections.Generic.IList\u00601[System.__Canon]:get_Item(int):System.__Canon:this\n        test     rax, rax\n-       je       SHORT G_M44090_IG28\n\u002B       je       SHORT G_M44090_IG23\n \t\t\t\t\t\t;; size=29 bbWeight=4 PerfScore 38.00\n-G_M44090_IG27:\n\u002BG_M44090_IG22:\n        mov      rdi, rax\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x08]System.Object:ToString():System.String:this\n        mov      rsi, rax\n        test     rsi, rsi\n-       je       SHORT G_M44090_IG28\n\u002B       je       SHORT G_M44090_IG23\n        mov      edx, dword ptr [rsi\u002B0x08]\n        add      rsi, 12\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:Append(byref,int):this\n        call     [rax]System.Text.StringBuilder:Append(byref,int):this\n \t\t\t\t\t\t;; size=43 bbWeight=2 PerfScore 29.00\n-G_M44090_IG28:\n\u002BG_M44090_IG23:\n        mov      esi, dword ptr [rbp-0x2C]\n        inc      esi\n        mov      dword ptr [rbp-0x2C], esi\n@@ -355,9 \u002B319,9 @@ G_M44090_IG28:\n        mov      edi, dword ptr [rbp-0x2C]\n        cmp      eax, edi\n        mov      dword ptr [rbp-0x2C], edi\n-       jg       G_M44090_IG09\n\u002B       jg       G_M44090_IG04\n \t\t\t\t\t\t;; size=54 bbWeight=4 PerfScore 57.00\n-G_M44090_IG29:\n\u002BG_M44090_IG24:\n        mov      rdi, r13\n        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:ToString():System.String:this\n        call     [rax]System.Text.StringBuilder:ToString():System.String:this\n@@ -382,7 \u002B346,7 @@ G_M44090_IG29:\n        call     [rax]System.Data.Entity.Resources.EntityRes:GetString(System.String,System.Object[]):System.String\n        nop      \n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 16.75\n-G_M44090_IG30:\n\u002BG_M44090_IG25:\n        add      rsp, 40\n        pop      rbx\n        pop      r12\n@@ -392,17 \u002B356,17 @@ G_M44090_IG30:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M44090_IG31:\n\u002BG_M44090_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M44090_IG32:\n\u002BG_M44090_IG27:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1154, prolog size 29, PerfScore 529.75, instruction count 274, allocated bytes for code 1154 (MethodHash=7a6453c5) for method System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint:BuildConstraintExceptionMessage():System.String:this (FullOpts)\n\u002B; Total bytes of code 1050, prolog size 29, PerfScore 513.75, instruction count 248, allocated bytes for code 1050 (MethodHash=7a6453c5) for method System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint:BuildConstraintExceptionMessage():System.String:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1154,"DiffBytes":1050},{"Assembly":"MathNet.Numerics.dasm","Method":"MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:SameAs[byte](MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this (FullOpts)","Category":"improvement","Description":"594 -\u003E 120 bytes (-474)","ExtraInfo":null,"Diff":"@@ -1,214 \u002B1,65 @@\n ; Assembly listing for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:SameAs[byte](MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n-; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data\n\u002B; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 12,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]\u003E\n-;  V01 arg1         [V01,T03] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]\u003E\n-;  V02 arg2         [V02,T01] ( 11,  6.50)     int  -\u003E  r15         single-def\n-;  V03 arg3         [V03,T02] ( 11,  6.50)     int  -\u003E  r14         single-def\n-;  V04 arg4         [V04,T04] (  3,  2.50)   ubyte  -\u003E  r13         single-def\n-;  V05 loc0         [V05,T08] (  4,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]\u003E\n\u002B;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]\u003E\n\u002B;  V01 arg1         [V01,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  4   )     int  -\u003E  r15         single-def\n\u002B;  V03 arg3         [V03,T04] (  4,  4   )     int  -\u003E  r14         single-def\n\u002B;* V04 arg4         [V04    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def\n\u002B;* V05 loc0         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]\u003E\n\u002B;  V07 tmp1         [V07,T00] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Clong[]\u003E\n-;  V09 tmp3         [V09,T06] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[long]\u003E\n-;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Clong[]\u003E\n-;  V11 tmp5         [V11,T11] (  2,  1   )     int  -\u003E  rsi         \u0022Inline return value spill temp\u0022\n-;  V12 tmp6         [V12,T09] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]\u003E\n-;  V13 tmp7         [V13,T10] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]\u003E\n-;  V14 tmp8         [V14,T07] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]\u003E\n-;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Clong[]\u003E\n-;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022Single return block return value\u0022\n ;\n ; Lcl frame size = 8\n \n G_M36732_IG01:\n-       push     rbp\n        push     r15\n        push     r14\n        push     r13\n-       push     r12\n        push     rbx\n        push     rax\n-       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n        mov      r15d, edx\n        mov      r14d, ecx\n-       mov      r13d, r8d\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.75\n G_M36732_IG02:\n-       mov      r12, gword ptr [rsi\u002B0x08]\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M36732_IG11\n-\t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 7.00\n-G_M36732_IG03:\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[long]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M36732_IG07\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      SHORT G_M36732_IG05\n\u002B       cmp      byte  ptr [rsi], sil\n        mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        mov      rdi, r13\n        mov      esi, r15d\n        mov      edx, r14d\n        mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]:.ctor(int,int):this\n        call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]:.ctor(int,int):this\n        imul     r15d, r14d\n        movsxd   rsi, r15d\n        mov      rdi, 0xD1FFAB1E      ; long[]\n        call     CORINFO_HELP_NEWARR_1_PTR\n        mov      rsi, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, rbx\n        mov      rsi, r13\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=150 bbWeight=0.50 PerfScore 12.62\n-G_M36732_IG04:\n\u002B\t\t\t\t\t\t;; size=89 bbWeight=1 PerfScore 17.25\n\u002BG_M36732_IG03:\n        add      rsp, 8\n        pop      rbx\n-       pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n-       pop      rbp\n        tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M36732_IG05:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 5.00\n-G_M36732_IG06:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M36732_IG07:\n-       test     r13b, r13b\n-       je       SHORT G_M36732_IG09\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 5.62\n-G_M36732_IG08:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M36732_IG09:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[long]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]:.ctor(int,int):this\n-       cmp      r15d, r14d\n-       mov      esi, r14d\n-       cmovle   esi, r15d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; long[]\n-       call     CORINFO_HELP_NEWARR_1_PTR\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 7.12\n-G_M36732_IG10:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x10]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:Diagonal(MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[long]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M36732_IG11:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]:.ctor(int,int):this\n-       mov      esi, r15d\n-       imul     esi, r14d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; long[]\n-       call     CORINFO_HELP_NEWARR_1_PTR\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=89 bbWeight=0.50 PerfScore 7.75\n-G_M36732_IG12:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n\u002B\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 594, prolog size 16, PerfScore 66.75, instruction count 157, allocated bytes for code 594 (MethodHash=d2c77083) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:SameAs[byte](MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this (FullOpts)\n\u002B; Total bytes of code 120, prolog size 8, PerfScore 27.25, instruction count 34, allocated bytes for code 120 (MethodHash=d2c77083) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:SameAs[byte](MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":594,"DiffBytes":120},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:Aggregate[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],short]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[short]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[short]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[short]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[short]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[short]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V69 tmp59        [V69,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n\u002BG_M42448_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M42448_IG26\n\u002B       je       SHORT G_M42448_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M42448_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M42448_IG26:\n\u002BG_M42448_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M42448_IG27:\n\u002BG_M42448_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M42448_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M42448_IG28:\n\u002BG_M42448_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M42448_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M42448_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M42448_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M42448_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M42448_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M42448_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M42448_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M42448_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M42448_IG31\n\u002B       je       SHORT G_M42448_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M42448_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M42448_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M42448_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M42448_IG32\n\u002B       je       SHORT G_M42448_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M42448_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M42448_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M42448_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M42448_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateAggregateToCollectionResultCursor[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[short],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[short]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M42448_IG33:\n\u002BG_M42448_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M42448_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M42448_IG34:\n\u002BG_M42448_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M42448_IG35:\n\u002BG_M42448_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M42448_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M42448_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M42448_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M42448_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M42448_IG37\n\u002B       je       SHORT G_M42448_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M42448_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M42448_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M42448_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M42448_IG38\n\u002B       je       SHORT G_M42448_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M42448_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M42448_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M42448_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M42448_IG39:\n\u002BG_M42448_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M42448_IG40:\n\u002BG_M42448_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M42448_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M42448_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M42448_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M42448_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M42448_IG42\n\u002B       je       SHORT G_M42448_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M42448_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M42448_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M42448_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M42448_IG43\n\u002B       je       SHORT G_M42448_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M42448_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M42448_IG43:\n\u002BG_M42448_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M42448_IG44:\n\u002BG_M42448_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=87945a2f) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:Aggregate[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=87945a2f) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:Aggregate[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.IntentService:ListAutoPaging(Stripe.V2.Billing.IntentListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.Intent]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.Billing.IntentService:ListAutoPaging(Stripe.V2.Billing.IntentListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.Intent]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.IntentService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.IntentListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.IntentListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.Intent]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.Intent]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.Intent]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.Intent]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.Intent]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.Intent]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.Intent]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.Intent]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.Intent]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M25106_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M25106_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/billing/intents\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M25106_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M25106_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.Intent]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.Intent]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M25106_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M25106_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.Intent]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.Intent]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M25106_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M25106_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=c63a9ded) for method Stripe.V2.Billing.IntentService:ListAutoPaging(Stripe.V2.Billing.IntentListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.Intent]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=c63a9ded) for method Stripe.V2.Billing.IntentService:ListAutoPaging(Stripe.V2.Billing.IntentListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.Intent]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.Internal.Data.DatabaseCommand:PrepareIfNeededAsync(System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)","Category":"same-size","Description":"205 -\u003E 205 bytes (0)","ExtraInfo":null,"Diff":"@@ -1,106 \u002B1,106 @@\n ; Assembly listing for method Medallion.Threading.Internal.Data.DatabaseCommand:PrepareIfNeededAsync(System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T00] (  5,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMedallion.Threading.Internal.Data.DatabaseCommand\u003E\n ;* V01 arg1         [V01    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;  V02 loc0         [V02,T04] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Data.Common.DbCommand\u003E\n ;  V03 loc1         [V03,T07] (  2,  1   )  struct (16) [rbp-0x20]  do-not-enreg[SR] multireg-ret must-init ld-addr-op single-def \u003CSystem.Threading.Tasks.ValueTask\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V05 tmp1         [V05    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CSystem.Threading.Tasks.ValueTask\u003E\n ;  V06 tmp2         [V06,T03] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n ;* V07 tmp3         [V07    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.ValueTask\u003E\n ;  V08 tmp4         [V08,T02] (  2,  1.50)     ref  -\u003E  r15         single-def \u0022field V01._source (fldOffset=0x0)\u0022 P-INDEP\n ;* V09 tmp5         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V07._obj (fldOffset=0x0)\u0022 P-INDEP\n ;* V10 tmp6         [V10    ] (  0,  0   )   short  -\u003E  zero-ref    single-def \u0022field V07._token (fldOffset=0x8)\u0022 P-INDEP\n ;* V11 tmp7         [V11    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V07._continueOnCapturedContext (fldOffset=0xa)\u0022 P-INDEP\n ;  V12 tmp8         [V12,T01] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V13 rat0         [V13,T05] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n ;  V14 rat1         [V14,T06] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 16\n \n G_M40384_IG01:\n        push     rbp\n        push     r15\n        push     rbx\n        sub      rsp, 16\n        lea      rbp, [rsp\u002B0x20]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x20], rax\n        mov      qword ptr [rbp-0x18], rax\n        mov      rbx, rdi\n        mov      r15, rsi\n \t\t\t\t\t\t;; size=29 bbWeight=1 PerfScore 6.50\n G_M40384_IG02:\n        mov      rdi, gword ptr [rbx\u002B0x10]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x20]Medallion.Threading.Internal.Data.DatabaseConnection:get_ShouldPrepareCommands():bool:this\n        test     eax, eax\n        je       SHORT G_M40384_IG05\n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 10.25\n G_M40384_IG03:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        cmp      byte  ptr [rax\u002B0x10], 0\n        jne      SHORT G_M40384_IG04\n        mov      rsi, gword ptr [rbx\u002B0x08]\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Common.DbCommand\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n        jne      SHORT G_M40384_IG07\n \t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 6.75\n G_M40384_IG04:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Data.IDbCommand:Prepare():this\n        call     [r11]System.Data.IDbCommand:Prepare():this\n \t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n G_M40384_IG05:\n        vxorps   xmm0, xmm0, xmm0\n        vmovdqu  xmmword ptr [rbp-0x20], xmm0\n        mov      rax, gword ptr [rbp-0x20]\n        mov      rdx, qword ptr [rbp-0x18]\n \t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 1.67\n G_M40384_IG06:\n        add      rsp, 16\n        pop      rbx\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 1.38\n G_M40384_IG07:\n        mov      rdi, rax\n        mov      rsi, r15\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x70]\n        call     [rax]System.Data.Common.DbCommand:PrepareAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this\n        test     rax, rax\n        je       SHORT G_M40384_IG09\n        mov      edx, 0x10000\n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 4.50\n G_M40384_IG08:\n        add      rsp, 16\n        pop      rbx\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 1.38\n G_M40384_IG09:\n        mov      edi, 9\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n ; Total bytes of code 205, prolog size 23, PerfScore 35.04, instruction count 57, allocated bytes for code 205 (MethodHash=77ea623f) for method Medallion.Threading.Internal.Data.DatabaseCommand:PrepareIfNeededAsync(System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":205,"DiffBytes":205},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.ModelConfiguration.Configuration.ModificationStoredProcedureConfiguration\u002B\u003C\u003Ec__DisplayClass30_0:\u003CConfigureParameters\u003Eb__0(System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding):bool:this (FullOpts)","Category":"improvement","Description":"1,151 -\u003E 1,047 bytes (-104)","ExtraInfo":null,"Diff":"@@ -12,24 \u002B12,24 @@\n ;  V01 arg1         [V01,T01] (  6,  4.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding\u003E\n ;* V02 loc0         [V02    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CSystem.Func\u00602[System.Reflection.PropertyInfo,bool]\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V04 tmp1         [V04,T20] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Utilities.PropertyPath\u003E\n-;  V05 tmp2         [V05,T21] (  2,  2   )     ref  -\u003E  r12         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Metadata.Edm.EdmProperty,System.Reflection.PropertyInfo]\u003E\n-;  V06 tmp3         [V06,T22] (  2,  2   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n\u002B;  V04 tmp1         [V04,T17] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Utilities.PropertyPath\u003E\n\u002B;  V05 tmp2         [V05,T18] (  2,  2   )     ref  -\u003E  r12         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Metadata.Edm.EdmProperty,System.Reflection.PropertyInfo]\u003E\n\u002B;  V06 tmp3         [V06,T19] (  2,  2   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n ;* V07 tmp4         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V08 tmp5         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V09 tmp6         [V09,T13] (  4,  2   )     ref  -\u003E  r12        \n ;  V10 tmp7         [V10,T06] (  4,  4   )     ref  -\u003E  [rbp-0x40]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Utilities.PropertyPath\u003E\n-;  V11 tmp8         [V11,T23] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Reflection.PropertyInfo\u003E\n-;  V12 tmp9         [V12,T24] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd,System.Reflection.PropertyInfo]\u003E\n-;  V13 tmp10        [V13,T25] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n\u002B;  V11 tmp8         [V11,T20] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Reflection.PropertyInfo\u003E\n\u002B;  V12 tmp9         [V12,T21] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd,System.Reflection.PropertyInfo]\u003E\n\u002B;  V13 tmp10        [V13,T22] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n ;* V14 tmp11        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V15 tmp12        [V15,T14] (  4,  2   )     ref  -\u003E  rdx        \n-;  V16 tmp13        [V16,T26] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Reflection.PropertyInfo,bool]\u003E\n-;  V17 tmp14        [V17,T27] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.__Canon]\u003E\n\u002B;  V16 tmp13        [V16,T23] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Reflection.PropertyInfo,bool]\u003E\n\u002B;  V17 tmp14        [V17,T24] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.__Canon]\u003E\n ;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V19 tmp16        [V19,T15] (  4,  2   )     ref  -\u003E  rdx        \n-;  V20 tmp17        [V20,T28] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Reflection.PropertyInfo,bool]\u003E\n-;  V21 tmp18        [V21,T29] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Reflection.PropertyInfo]\u003E\n\u002B;  V20 tmp17        [V20,T25] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Reflection.PropertyInfo,bool]\u003E\n\u002B;  V21 tmp18        [V21,T26] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Reflection.PropertyInfo]\u003E\n ;* V22 tmp19        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V23 tmp20        [V23,T16] (  4,  2   )     ref  -\u003E  rdx        \n ;  V24 tmp21        [V24,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Reflection.PropertyInfo,bool]\u003E\n@@ -39,36 \u002B39,36 @@\n ;* V28 tmp25        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ModificationFunctionMemberPath\u003E\n ;* V29 tmp26        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ModificationFunctionMemberPath\u003E\n ;* V30 tmp27        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationSetEnd\u003E\n-;  V31 tmp28        [V31,T30] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationSet\u003E\n\u002B;  V31 tmp28        [V31,T27] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationSet\u003E\n ;* V32 tmp29        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ModificationFunctionMemberPath\u003E\n-;  V33 tmp30        [V33,T31] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.ModificationStoredProcedureConfiguration\u002B\u003C\u003Ec\u003E\n-;  V34 tmp31        [V34,T10] (  3,  3   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Reflection.PropertyInfo]\u003E\n-;  V35 tmp32        [V35,T32] (  2,  2   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.__Canon]\u003E\n\u002B;  V33 tmp30        [V33,T28] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.ModificationStoredProcedureConfiguration\u002B\u003C\u003Ec\u003E\n\u002B;  V34 tmp31        [V34,T08] (  3,  3   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Reflection.PropertyInfo]\u003E\n\u002B;  V35 tmp32        [V35,T29] (  2,  2   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.__Canon]\u003E\n ;* V36 tmp33        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Utilities.PropertyPath\u003E\n ;* V37 tmp34        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Reflection.PropertyInfo]\u003E\n ;* V38 tmp35        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ModificationFunctionMemberPath\u003E\n ;* V39 tmp36        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ModificationFunctionMemberPath\u003E\n-;  V40 tmp37        [V40,T07] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n-;  V41 tmp38        [V41    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V40 tmp37        [V40,T09] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n\u002B;  V41 tmp38        [V41    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V42 tmp39        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V43 tmp40        [V43,T17] (  4,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmMember\u003E\n-;  V44 tmp41        [V44,T18] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n\u002B;  V43 tmp40        [V43,T32] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmMember\u003E\n... diff truncated; middle omitted ...\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M5485_IG12:\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M5485_IG23\n\u002B       je       G_M5485_IG19\n        mov      rdi, rax\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x40]\n@@ -234,43 \u002B217,26 @@ G_M5485_IG12:\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.ModelConfiguration.Edm.MetadataPropertyExtensions:GetClrPropertyInfo(System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.MetadataProperty]):System.Reflection.PropertyInfo\n        call     [rax]System.Data.Entity.ModelConfiguration.Edm.MetadataPropertyExtensions:GetClrPropertyInfo(System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.MetadataProperty]):System.Reflection.PropertyInfo\n        mov      r14, rax\n-       mov      r13, gword ptr [rbx\u002B0x08]\n-       test     r13, r13\n-       je       G_M5485_IG22\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Reflection.PropertyInfo]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M5485_IG13\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M5485_IG14\n-\t\t\t\t\t\t;; size=103 bbWeight=0.50 PerfScore 15.50\n-G_M5485_IG13:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M5485_IG18\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.Reflection.PropertyInfo](System.Collections.Generic.IEnumerable\u00601[System.Reflection.PropertyInfo],byref):System.Reflection.PropertyInfo\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M5485_IG14:\n-       cmp      byte  ptr [rbp-0x38], 0\n-       je       G_M5485_IG23\n-       mov      rdi, r14\n        mov      rsi, rax\n\u002B       cmp      byte  ptr [rbp-0x38], 0\n\u002B       je       G_M5485_IG19\n\u002B       mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Utilities.PropertyInfoExtensions:IsSameAs(System.Reflection.PropertyInfo,System.Reflection.PropertyInfo):bool\n        call     [rax]System.Data.Entity.Utilities.PropertyInfoExtensions:IsSameAs(System.Reflection.PropertyInfo,System.Reflection.PropertyInfo):bool\n        test     eax, eax\n-       jne      SHORT G_M5485_IG17\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 3.50\n-G_M5485_IG15:\n\u002B       jne      SHORT G_M5485_IG13\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=0.50 PerfScore 23.25\n\u002BG_M5485_IG11:\n        xor      eax, eax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M5485_IG16:\n\u002BG_M5485_IG12:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -280,7 \u002B246,7 @@ G_M5485_IG16:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M5485_IG17:\n\u002BG_M5485_IG13:\n        mov      rdi, gword ptr [r15\u002B0x20]\n        mov      rdi, gword ptr [rdi\u002B0x20]\n        mov      rdi, gword ptr [rdi\u002B0x28]\n@@ -288,7 \u002B254,7 @@ G_M5485_IG17:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Data.Entity.ModelConfiguration.Configuration.ModificationStoredProcedureConfiguration\u002B\u003C\u003Ec:\u003C\u003E9__30_2\n        mov      rdx, gword ptr [rdi]\n        test     rdx, rdx\n-       jne      SHORT G_M5485_IG18\n\u002B       jne      SHORT G_M5485_IG14\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd,System.Reflection.PropertyInfo]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -303,7 \u002B269,7 @@ G_M5485_IG17:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdx, r14\n \t\t\t\t\t\t;; size=109 bbWeight=0.50 PerfScore 9.88\n-G_M5485_IG18:\n\u002BG_M5485_IG14:\n        mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:Select[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd,System.Reflection.PropertyInfo](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd],System.Func\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd,System.Reflection.PropertyInfo]):System.Collections.Generic.IEnumerable\u00601[System.Reflection.PropertyInfo]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:Select[System.__Canon,System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Func\u00602[System.__Canon,System.__Canon]):System.Collections.Generic.IEnumerable\u00601[System.__Canon]\n@@ -312,7 \u002B278,7 @@ G_M5485_IG18:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Data.Entity.ModelConfiguration.Configuration.ModificationStoredProcedureConfiguration\u002B\u003C\u003Ec:\u003C\u003E9__30_3\n        mov      rdx, gword ptr [rdi]\n        test     rdx, rdx\n-       jne      SHORT G_M5485_IG19\n\u002B       jne      SHORT G_M5485_IG15\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[System.Reflection.PropertyInfo,bool]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -327,7 \u002B293,7 @@ G_M5485_IG18:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdx, r14\n \t\t\t\t\t\t;; size=121 bbWeight=0.50 PerfScore 7.88\n-G_M5485_IG19:\n\u002BG_M5485_IG15:\n        mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:Where[System.Reflection.PropertyInfo](System.Collections.Generic.IEnumerable\u00601[System.Reflection.PropertyInfo],System.Func\u00602[System.Reflection.PropertyInfo,bool]):System.Collections.Generic.IEnumerable\u00601[System.Reflection.PropertyInfo]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Func\u00602[System.__Canon,bool]):System.Collections.Generic.IEnumerable\u00601[System.__Canon]\n@@ -335,7 \u002B301,7 @@ G_M5485_IG19:\n        mov      r15, rax\n        mov      rdx, gword ptr [rbx\u002B0x10]\n        test     rdx, rdx\n-       jne      SHORT G_M5485_IG20\n\u002B       jne      SHORT G_M5485_IG16\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[System.Reflection.PropertyInfo,bool]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -349,14 \u002B315,14 @@ G_M5485_IG19:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdx, r14\n \t\t\t\t\t\t;; size=96 bbWeight=0.50 PerfScore 6.88\n-G_M5485_IG20:\n\u002BG_M5485_IG16:\n        mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:Any[System.Reflection.PropertyInfo](System.Collections.Generic.IEnumerable\u00601[System.Reflection.PropertyInfo],System.Func\u00602[System.Reflection.PropertyInfo,bool]):bool\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:Any[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Func\u00602[System.__Canon,bool]):bool\n        call     [rax]System.Linq.Enumerable:Any[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Func\u00602[System.__Canon,bool]):bool\n        nop      \n \t\t\t\t\t\t;; size=26 bbWeight=0.50 PerfScore 2.00\n-G_M5485_IG21:\n\u002BG_M5485_IG17:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -366,17 \u002B332,17 @@ G_M5485_IG21:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M5485_IG22:\n\u002BG_M5485_IG18:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M5485_IG23:\n\u002BG_M5485_IG19:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1151, prolog size 29, PerfScore 119.94, instruction count 259, allocated bytes for code 1151 (MethodHash=872fea92) for method System.Data.Entity.ModelConfiguration.Configuration.ModificationStoredProcedureConfiguration\u002B\u003C\u003Ec__DisplayClass30_0:\u003CConfigureParameters\u003Eb__0(System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding):bool:this (FullOpts)\n\u002B; Total bytes of code 1047, prolog size 29, PerfScore 104.94, instruction count 233, allocated bytes for code 1047 (MethodHash=872fea92) for method System.Data.Entity.ModelConfiguration.Configuration.ModificationStoredProcedureConfiguration\u002B\u003C\u003Ec__DisplayClass30_0:\u003CConfigureParameters\u003Eb__0(System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding):bool:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1151,"DiffBytes":1047},{"Assembly":"MathNet.Numerics.dasm","Method":"MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:SameAs[double](MathNet.Numerics.LinearAlgebra.Matrix\u00601[double],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this (FullOpts)","Category":"improvement","Description":"594 -\u003E 120 bytes (-474)","ExtraInfo":null,"Diff":"@@ -1,214 \u002B1,65 @@\n ; Assembly listing for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:SameAs[double](MathNet.Numerics.LinearAlgebra.Matrix\u00601[double],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n-; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data\n\u002B; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 12,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]\u003E\n-;  V01 arg1         [V01,T03] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[double]\u003E\n-;  V02 arg2         [V02,T01] ( 11,  6.50)     int  -\u003E  r15         single-def\n-;  V03 arg3         [V03,T02] ( 11,  6.50)     int  -\u003E  r14         single-def\n-;  V04 arg4         [V04,T04] (  3,  2.50)   ubyte  -\u003E  r13         single-def\n-;  V05 loc0         [V05,T08] (  4,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]\u003E\n\u002B;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]\u003E\n\u002B;  V01 arg1         [V01,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[double]\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  4   )     int  -\u003E  r15         single-def\n\u002B;  V03 arg3         [V03,T04] (  4,  4   )     int  -\u003E  r14         single-def\n\u002B;* V04 arg4         [V04    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def\n\u002B;* V05 loc0         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]\u003E\n\u002B;  V07 tmp1         [V07,T00] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Clong[]\u003E\n-;  V09 tmp3         [V09,T06] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[long]\u003E\n-;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Clong[]\u003E\n-;  V11 tmp5         [V11,T11] (  2,  1   )     int  -\u003E  rsi         \u0022Inline return value spill temp\u0022\n-;  V12 tmp6         [V12,T09] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]\u003E\n-;  V13 tmp7         [V13,T10] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]\u003E\n-;  V14 tmp8         [V14,T07] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]\u003E\n-;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Clong[]\u003E\n-;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022Single return block return value\u0022\n ;\n ; Lcl frame size = 8\n \n G_M20412_IG01:\n-       push     rbp\n        push     r15\n        push     r14\n        push     r13\n-       push     r12\n        push     rbx\n        push     rax\n-       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n        mov      r15d, edx\n        mov      r14d, ecx\n-       mov      r13d, r8d\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.75\n G_M20412_IG02:\n-       mov      r12, gword ptr [rsi\u002B0x08]\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M20412_IG11\n-\t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 7.00\n-G_M20412_IG03:\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[long]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M20412_IG07\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      SHORT G_M20412_IG05\n\u002B       cmp      byte  ptr [rsi], sil\n        mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        mov      rdi, r13\n        mov      esi, r15d\n        mov      edx, r14d\n        mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]:.ctor(int,int):this\n        call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]:.ctor(int,int):this\n        imul     r15d, r14d\n        movsxd   rsi, r15d\n        mov      rdi, 0xD1FFAB1E      ; long[]\n        call     CORINFO_HELP_NEWARR_1_PTR\n        mov      rsi, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, rbx\n        mov      rsi, r13\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=150 bbWeight=0.50 PerfScore 12.62\n-G_M20412_IG04:\n\u002B\t\t\t\t\t\t;; size=89 bbWeight=1 PerfScore 17.25\n\u002BG_M20412_IG03:\n        add      rsp, 8\n        pop      rbx\n-       pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n-       pop      rbp\n        tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M20412_IG05:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 5.00\n-G_M20412_IG06:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M20412_IG07:\n-       test     r13b, r13b\n-       je       SHORT G_M20412_IG09\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 5.62\n-G_M20412_IG08:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M20412_IG09:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[long]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]:.ctor(int,int):this\n-       cmp      r15d, r14d\n-       mov      esi, r14d\n-       cmovle   esi, r15d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; long[]\n-       call     CORINFO_HELP_NEWARR_1_PTR\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 7.12\n-G_M20412_IG10:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x10]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:Diagonal(MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[long]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M20412_IG11:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]:.ctor(int,int):this\n-       mov      esi, r15d\n-       imul     esi, r14d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; long[]\n-       call     CORINFO_HELP_NEWARR_1_PTR\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=89 bbWeight=0.50 PerfScore 7.75\n-G_M20412_IG12:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n\u002B\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 594, prolog size 16, PerfScore 66.75, instruction count 157, allocated bytes for code 594 (MethodHash=7756b043) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:SameAs[double](MathNet.Numerics.LinearAlgebra.Matrix\u00601[double],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this (FullOpts)\n\u002B; Total bytes of code 120, prolog size 8, PerfScore 27.25, instruction count 34, allocated bytes for code 120 (MethodHash=7756b043) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:SameAs[double](MathNet.Numerics.LinearAlgebra.Matrix\u00601[double],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":594,"DiffBytes":120},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollection[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,137 -\u003E 1,056 bytes (-81)","ExtraInfo":null,"Diff":"@@ -14,14 \u002B14,14 @@\n ;  V03 arg2         [V03,T05] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.__Canon]\u003E\n ;  V04 arg3         [V04,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T24] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V06 loc0         [V06,T23] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n-;  V08 loc2         [V08,T25] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n-;  V09 loc3         [V09,T22] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V08 loc2         [V08,T24] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n\u002B;  V09 loc3         [V09,T21] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V12 tmp2         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V13 tmp3         [V13,T31] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V13 tmp3         [V13,T30] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V14 tmp4         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V15 tmp5         [V15    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V16 tmp6         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n@@ -39,17 \u002B39,17 @@\n ;* V28 tmp18        [V28    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V29 tmp19        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V30 tmp20        [V30    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V31 tmp21        [V31,T23] (  3,  2   )     int  -\u003E  registers  \n-;  V32 tmp22        [V32,T06] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V33 tmp23        [V33    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V34 tmp24        [V34,T20] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V35 tmp25        [V35,T21] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V31 tmp21        [V31,T22] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V32 tmp22        [V32,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V33 tmp23        [V33    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V34 tmp24        [V34,T20] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V37 tmp27        [V37,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V38 tmp28        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V39 tmp29        [V39,T28] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V39 tmp29        [V39,T27] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V41 tmp31        [V41,T19] (  8,  3   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V41 tmp31        [V41,T19] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V42 tmp32        [V42,T07] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V43 tmp33        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V44 tmp34        [V44,T10] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -58,13 \u002B58,13 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;  V50 tmp40        [V50,T16] (  2,  2   )     ref  -\u003E  [rbp-0x90]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V51 tmp41        [V51,T26] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V15.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp42        [V52,T27] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V15.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V50 tmp40        [V50,T16] (  2,  2   )     ref  -\u003E  [rbp-0x88]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V51 tmp41        [V51,T25] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V15.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp42        [V52,T26] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V15.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V53 tmp43        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V22._name (fldOffset=0x0)\u0022 P-DEP\n ;* V54 tmp44        [V54    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V22._value (fldOffset=0x8)\u0022 P-DEP\n-;  V55 tmp45        [V55,T29] (  2,  1   )     ref  -\u003E  rax         \u0022field V23._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V56 tmp46        [V56,T30] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V23._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V55 tmp45        [V55,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V23._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V56 tmp46        [V56,T29] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V23._value (fldOffset=0x8)\u0022 P-INDEP\n ;  V57 tmp47        [V57,T17] (  2,  4   )    long  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V58 tmp48        [V58,T18] (  2,  4   )    long  -\u003E  rsi         \u0022argument with side effect\u0022\n ;  V59 rat0         [V59,T14] (  3,  4   )    long  -\u003E  rdi         \u0022runtime lookup\u0022\n@@ -72,7 \u002B72,7 @@\n ;  V61 rat2         [V61,T15] (  3,  4   )    long  -\u003E  rsi         \u0022runtime lookup\u0022\n ;  V62 rat3         [V62,T09] (  3,  5.60)    long  -\u003E  rsi         \u0022fgMakeTemp is creating a new local variable\u0022\n ;\n-; Lcl frame size = 168\n\u002B; Lcl frame size = 152\n \n G_M57851_IG01:\n        push     rbp\n@@ -81,14 \u002B81,14 @@ G_M57851_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 168\n-       lea      rbp, [rsp\u002B0xD0]\n\u002B       sub      rsp, 152\n\u002B       lea      rbp, [rsp\u002B0xC0]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x78], rax\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        mov      qword ptr [rbp-0x30], rsi\n-       mov      gword ptr [rbp-0x90], r9\n\u002B       mov      gword ptr [rbp-0x88], r9\n        mov      r15, rdi\n        mov      r14, rsi\n        mov      r13, rdx\n@@ -104,7 \u002B104,7 @@ G_M57851_IG02:\n        mov      rdi, qword ptr [r14\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M57851_IG31\n\u002B       je       G_M57851_IG28\n \t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 9.25\n G_M57851_IG03:\n        mov      rsi, r12\n@@ -154,90 \u002B154,70 @@ G_M57851_IG05:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.__Canon]:Render(MongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]:this\n        mov      r12, rax\n-       mov      rax, gword ptr [r12\u002B0x08]\n-       mov      gword ptr [rbp-0x80], rax\n-       test     rax, rax\n-       je       G_M57851_IG33\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n... diff truncated; middle omitted ...\n-G_M57851_IG19:\n\u002BG_M57851_IG16:\n        xor      ecx, ecx\n-       jmp      SHORT G_M57851_IG22\n\u002B       jmp      SHORT G_M57851_IG19\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M57851_IG20:\n\u002BG_M57851_IG17:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -245,30 \u002B225,30 @@ G_M57851_IG20:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M57851_IG22\n\u002B       jmp      SHORT G_M57851_IG19\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M57851_IG21:\n\u002BG_M57851_IG18:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M57851_IG22:\n\u002BG_M57851_IG19:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M57851_IG23:\n\u002BG_M57851_IG20:\n        mov      dword ptr [rbp-0x6C], ecx\n        mov      rdi, gword ptr [r12\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M57851_IG34\n\u002B       je       G_M57851_IG31\n        cmp      dword ptr [rbp-0x6C], 0\n-       je       G_M57851_IG34\n\u002B       je       G_M57851_IG31\n        mov      rdi, qword ptr [r14\u002B0x18]\n        mov      rsi, qword ptr [rdi\u002B0x20]\n        test     rsi, rsi\n-       je       G_M57851_IG32\n\u002B       je       G_M57851_IG29\n \t\t\t\t\t\t;; size=56 bbWeight=1 PerfScore 14.75\n-G_M57851_IG24:\n\u002BG_M57851_IG21:\n        mov      rdi, r15\n        mov      rdx, r12\n        mov      rcx, rbx\n@@ -280,13 \u002B260,13 @@ G_M57851_IG24:\n        cmp      byte  ptr [r14], r14b\n        mov      rdi, r15\n        mov      rsi, r13\n-       mov      r9, gword ptr [rbp-0x90]\n\u002B       mov      r9, gword ptr [rbp-0x88]\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 16.25\n-G_M57851_IG25:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=74 bbWeight=1 PerfScore 16.25\n\u002BG_M57851_IG22:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -294,22 \u002B274,22 @@ G_M57851_IG25:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r13\n        mov      rcx, r14\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=64 bbWeight=1 PerfScore 11.25\n-G_M57851_IG26:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M57851_IG29\n-\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 2.00\n-G_M57851_IG27:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n\u002BG_M57851_IG23:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M57851_IG26\n\u002B\t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n\u002BG_M57851_IG24:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M57851_IG28\n\u002B       je       SHORT G_M57851_IG25\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -318,12 \u002B298,12 @@ G_M57851_IG27:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M57851_IG28:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n\u002BG_M57851_IG25:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M57851_IG29\n\u002B       je       SHORT G_M57851_IG26\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -332,12 \u002B312,12 @@ G_M57851_IG28:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M57851_IG29:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n\u002BG_M57851_IG26:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M57851_IG30:\n-       add      rsp, 168\n\u002BG_M57851_IG27:\n\u002B       add      rsp, 152\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -346,7 \u002B326,7 @@ G_M57851_IG30:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M57851_IG31:\n\u002BG_M57851_IG28:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -354,21 \u002B334,21 @@ G_M57851_IG31:\n        mov      rdi, rax\n        jmp      G_M57851_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M57851_IG32:\n\u002BG_M57851_IG29:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M57851_IG24\n\u002B       jmp      G_M57851_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M57851_IG33:\n\u002BG_M57851_IG30:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M57851_IG34:\n\u002BG_M57851_IG31:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -380,16 \u002B360,16 @@ G_M57851_IG34:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M57851_IG35:\n\u002BG_M57851_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M57851_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M57851_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M57851_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M57851_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M57851_IG37\n\u002B       je       SHORT G_M57851_IG34\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -398,12 \u002B378,12 @@ G_M57851_IG36:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M57851_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M57851_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M57851_IG38\n\u002B       je       SHORT G_M57851_IG35\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -412,14 \u002B392,14 @@ G_M57851_IG37:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M57851_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M57851_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M57851_IG39:\n\u002BG_M57851_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1137, prolog size 72, PerfScore 161.80, instruction count 268, allocated bytes for code 1137 (MethodHash=40111e04) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollection[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 1056, prolog size 72, PerfScore 152.42, instruction count 254, allocated bytes for code 1056 (MethodHash=40111e04) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollection[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1137,"DiffBytes":1056},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.LicenseFeeService:ListAutoPaging(Stripe.V2.Billing.LicenseFeeListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.LicenseFee]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.Billing.LicenseFeeService:ListAutoPaging(Stripe.V2.Billing.LicenseFeeListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.LicenseFee]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.LicenseFeeService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.LicenseFeeListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.LicenseFeeListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.LicenseFee]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.LicenseFee]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.LicenseFee]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.LicenseFee]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.LicenseFee]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.LicenseFee]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.LicenseFee]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.LicenseFee]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.LicenseFee]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M1667_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M1667_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/billing/license_fees\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M1667_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M1667_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.LicenseFee]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.LicenseFee]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M1667_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M1667_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.LicenseFee]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.LicenseFee]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M1667_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M1667_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=4b14f97c) for method Stripe.V2.Billing.LicenseFeeService:ListAutoPaging(Stripe.V2.Billing.LicenseFeeListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.LicenseFee]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=4b14f97c) for method Stripe.V2.Billing.LicenseFeeService:ListAutoPaging(Stripe.V2.Billing.LicenseFeeListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.LicenseFee]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.Internal.Data.DatabaseConnection\u002B\u003CBeginTransactionAsync\u003Ed__21:MoveNext():this (FullOpts)","Category":"same-size","Description":"1,255 -\u003E 1,255 bytes (0)","ExtraInfo":null,"Diff":"@@ -263,7 \u002B263,7 @@ G_M9583_IG18:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        cmp      byte  ptr [rax\u002B0x10], 0\n        jne      SHORT G_M9583_IG19\n        mov      rsi, gword ptr [rbx\u002B0x18]","Truncated":true,"BaseBytes":1255,"DiffBytes":1255},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Objects.Internal.ForeignKeyFactory:CreateKeyFromForeignKeyValues(System.Data.Entity.Core.Objects.EntityEntry,System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint,System.Data.Entity.Core.Metadata.Edm.EntitySet,bool):System.Data.Entity.Core.EntityKey (FullOpts)","Category":"improvement","Description":"1,214 -\u003E 1,112 bytes (-102)","ExtraInfo":null,"Diff":"@@ -12,7 \u002B12,7 @@\n ;  V01 arg1         [V01,T34] (  4,  3.50)     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.ReferentialConstraint\u003E\n ;  V02 arg2         [V02,T29] (  6,  4   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySet\u003E\n ;  V03 arg3         [V03,T21] (  4,  6.50)   ubyte  -\u003E  r15         single-def\n-;  V04 loc0         [V04,T22] (  8,  8   )     ref  -\u003E  r12         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n\u002B;  V04 loc0         [V04,T27] (  6,  7   )     ref  -\u003E  r12         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n ;  V05 loc1         [V05,T28] (  5,  7   )     int  -\u003E  [rbp-0x2C]  spill-single-def\n ;  V06 loc2         [V06,T08] (  4, 12.50)     ref  -\u003E  [rbp-0x50]  class-hnd exact spill-single-def \u003CSystem.String[]\u003E\n ;  V07 loc3         [V07,T20] (  4,  9   )     ref  -\u003E  [rbp-0x58]  class-hnd exact spill-single-def \u003CSystem.Object[]\u003E\n@@ -27,20 \u002B27,20 @@\n ;  V16 tmp3         [V16,T37] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.EntityKey\u003E\n ;  V17 tmp4         [V17,T40] (  4,  2   )     ref  -\u003E  r15        \n ;  V18 tmp5         [V18,T38] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.EntityKey\u003E\n-;  V19 tmp6         [V19    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V19 tmp6         [V19    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V20 tmp7         [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V21 tmp8         [V21,T41] (  4,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmProperty\u003E\n-;  V22 tmp9         [V22,T42] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n-;  V23 tmp10        [V23    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V21 tmp8         [V21,T45] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmProperty\u003E\n\u002B;* V22 tmp9         [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n\u002B;  V23 tmp10        [V23    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V24 tmp11        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V25 tmp12        [V25,T43] (  4,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmProperty\u003E\n-;  V26 tmp13        [V26,T44] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n\u002B;  V25 tmp12        [V25,T46] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmProperty\u003E\n\u002B;* V26 tmp13        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n ;  V27 tmp14        [V27,T04] (  4, 16   )     ref  -\u003E  rax         class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V28 tmp15        [V28    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n ;* V29 tmp16        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022non-inline candidate call\u0022 \u003CSystem.Data.Entity.Core.Objects.StateManagerTypeMetadata\u003E\n ;  V30 tmp17        [V30,T33] (  3,  6   )     int  -\u003E  [rbp-0x44]  ld-addr-op \u0022Inline stloc first use temp\u0022\n ;  V31 tmp18        [V31,T10] (  3, 12   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Objects.StateManagerTypeMetadata\u003E\n-;* V32 tmp19        [V32,T47] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V32 tmp19        [V32,T43] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V33 tmp20        [V33    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V34 tmp21        [V34,T11] (  3, 12   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,int]\u003E\n ;  V35 tmp22        [V35,T30] (  3,  6   )   byref  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n@@ -48,9 \u002B48,9 @@\n ;  V37 tmp24        [V37,T05] (  4, 16   )     ref  -\u003E  rax         class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V38 tmp25        [V38    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n ;  V39 tmp26        [V39,T06] (  4, 16   )     ref  -\u003E  [rbp-0x68]  class-hnd spill-single-def \u0022non-inline candidate call\u0022 \u003CSystem.Data.Entity.Core.Objects.StateManagerTypeMetadata\u003E\n-;  V40 tmp27        [V40,T24] (  4,  8   )     int  -\u003E  [rbp-0x48]  ld-addr-op \u0022Inline stloc first use temp\u0022\n\u002B;  V40 tmp27        [V40,T23] (  4,  8   )     int  -\u003E  [rbp-0x48]  ld-addr-op \u0022Inline stloc first use temp\u0022\n ;  V41 tmp28        [V41,T12] (  3, 12   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Objects.StateManagerTypeMetadata\u003E\n-;* V42 tmp29        [V42,T48] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V42 tmp29        [V42,T44] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V43 tmp30        [V43    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V44 tmp31        [V44,T13] (  3, 12   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,int]\u003E\n ;  V45 tmp32        [V45,T31] (  3,  6   )   byref  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n@@ -60,7 \u002B60,7 @@\n ;  V49 tmp36        [V49,T19] (  5, 10   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n ;* V50 tmp37        [V50    ] (  0,  0   )  struct (24) zero-ref    \u0022location for address-of(RValue)\u0022 \u003CSystem.Data.Entity.Core.Objects.StateManagerValue\u003E\n ;* V51 tmp38        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022dup spill\u0022 \u003CSystem.Object\u003E\n-;  V52 tmp39        [V52,T23] (  4,  8   )     ref  -\u003E  rax        \n\u002B;  V52 tmp39        [V52,T22] (  4,  8   )     ref  -\u003E  rax        \n ;  V53 tmp40        [V53,T15] (  3, 12   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Objects.StateManagerValue]\u003E\n ;  V54 tmp41        [V54,T07] (  2, 16   )     ref  -\u003E  rdx         class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V55 tmp42        [V55    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V50.MemberMetadata (fldOffset=0x0)\u0022 P-INDEP\n@@ -68,15 \u002B68,15 @@\n ;  V57 tmp44        [V57,T36] (  2,  4   )     ref  -\u003E  rax         \u0022field V50.OriginalValue (fldOffset=0x10)\u0022 P-INDEP\n ;  V58 tmp45        [V58,T39] (  3,  3   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n ;  V59 tmp46        [V59,T16] (  3, 12   )     ref  -\u003E  rax         \u0022argument with side effect\u0022\n-;  V60 tmp47        [V60,T25] (  2,  8   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n\u002B;  V60 tmp47        [V60,T24] (  2,  8   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n ;  V61 tmp48        [V61,T17] (  3, 12   )     ref  -\u003E  rdi         \u0022arr expr\u0022\n ;  V62 tmp49        [V62,T18] (  3, 12   )     ref  -\u003E  rax         \u0022argument with side effect\u0022\n-;  V63 tmp50        [V63,T26] (  2,  8   )     ref  -\u003E  rcx         \u0022argument with side effect\u0022\n-;  V64 tmp51        [V64,T27] (  2,  8   )     ref  -\u003E  [rbp-0x78]  spill-single-def \u0022argument with side effect\u0022\n\u002B;  V63 tmp50        [V63,T25] (  2,  8   )     ref  -\u003E  rcx         \u0022argument with side effect\u0022\n\u002B;  V64 tmp51        [V64,T26] (  2,  8   )     ref  -\u003E  [rbp-0x78]  spill-single-def \u0022argument with side effect\u0022\n ;  V65 tmp52        [V65,T01] (  3, 24   )     ref  -\u003E  rax         \u0022argument with side effect\u0022\n ;  V66 tmp53        [V66,T02] (  3, 24   )     int  -\u003E  rax         \u0022index expr\u0022\n-;  V67 tmp54        [V67,T45] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V68 tmp55        [V68,T46] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V67 tmp54        [V67,T41] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V68 tmp55        [V68,T42] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 88\n \n@@ -200,10 \u002B200,10 @@ G_M27886_IG08:\n G_M27886_IG09:\n        mov      rdi, gword ptr [rbx\u002B0x40]\n        cmp      eax, dword ptr [rdi\u002B0x10]\n-       jae      G_M27886_IG30\n\u002B       jae      G_M27886_IG26\n        mov      rdi, gword ptr [rdi\u002B0x08]\n        cmp      eax, dword ptr [rdi\u002B0x08]\n-       jae      G_M27886_IG32\n\u002B       jae      G_M27886_IG28\n        mov      esi, eax\n        lea      rsi, [rsi\u002B2*rsi]\n        mov      rax, gword ptr [rdi\u002B8*rsi\u002B0x20]\n@@ -267,7 \u002B267,7 @@ G_M27886_IG15:\n        mov      rdi, 0xD1FFAB1E      ; const ptr\n        mov      gword ptr [rbp-0x60], rax\n        cmp      rax, gword ptr [rdi]\n-       je       G_M27886_IG25\n\u002B       je       G_M27886_IG21\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      esi, dword ptr [rbp-0x30]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IList\u00601[System.__Canon]:get_Item(int):System.__Canon:this\n@@ -279,7 \u002B279,7 @@ G_M27886_IG15:\n        mov      rdx, rax\n        mov      rax, gword ptr [rbp-0x50]\n        test     rax, rax\n-       je       G_M27886_IG31\n\u002B       je       G_M27886_IG27\n        mov      r8d, dword ptr [rax\u002B0x08]\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Array:IndexOf[System.String](System.String[],System.String,int,int):int\n@@ -288,7 \u002B288,7 @@ G_M27886_IG15:\n        call     [r9]System.Array:IndexOf[System.__Canon](System.__Canon[],System.__Canon,int,int):int\n        mov      rcx, gword ptr [rbp-0x58]\n        cmp      eax, dword ptr [rcx\u002B0x08]\n-       jae      G_M27886_IG32\n\u002B       jae      G_M27886_IG28\n        mov      edi, eax\n        lea      rdi, bword ptr [rcx\u002B8*rdi\u002B0x10]\n        mov      rsi, gword ptr [rbp-0x60]\n@@ -323,30 \u002B323,14 @@ G_M27886_IG17:\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n G_M27886_IG18:\n        test     r15b, r15b\n-       je       G_M27886_IG21\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n        je       SHORT G_M27886_IG19\n-       lea      rsi, [rbp-0x40]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M27886_IG20\n-\t\t\t\t\t\t;; size=58 bbWeight=0.50 PerfScore 8.00\n-G_M27886_IG19:\n        lea      rdx, [rbp-0x40]\n        mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.EdmProperty](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty],byref):System.Data.Entity.Core.Metadata.Edm.EdmProperty\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M27886_IG20:\n        cmp      byte  ptr [rbp-0x40], 0\n-       je       G_M27886_IG29\n\u002B       je       G_M27886_IG25\n        mov      rdi, rax\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x48]\n@@ -357,32 \u002B341,16 @@ G_M27886_IG20:\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.Data.Entity.Core.Objects.EntityEntry:GetOriginalEntityValue(System.String):System.Object:this\n        mov      r15, rax\n-       jmp      SHORT G_M27886_IG24\n-\t\t\t\t\t\t;; size=48 bbWeight=0.50 PerfScore 8.62\n-G_M27886_IG21:\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M27886_IG22\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M27886_IG23\n-\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.38\n-G_M27886_IG22:\n\u002B       jmp      SHORT G_M27886_IG20\n\u002B\t\t\t\t\t\t;; size=82 bbWeight=0.50 PerfScore 11.38\n\u002BG_M27886_IG19:\n        lea      rdx, [rbp-0x38]\n        mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.EdmProperty](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty],byref):System.Data.Entity.Core.Metadata.Edm.EdmProperty\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M27886_IG23:\n        cmp      byte  ptr [rbp-0x38], 0\n-       je       G_M27886_IG29\n\u002B       je       G_M27886_IG25\n        mov      rdi, rax\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x48]\n@@ -393,16 \u002B361,16 @@ G_M27886_IG23:\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.Data.Entity.Core.Objects.EntityEntry:GetCurrentEntityValue(System.String):System.Object:this\n        mov      r15, rax\n-\t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M27886_IG24:\n\u002B\t\t\t\t\t\t;; size=75 bbWeight=0.50 PerfScore 9.75\n\u002BG_M27886_IG20:\n        mov      rax, 0xD1FFAB1E      ; const ptr\n        cmp      r15, gword ptr [rax]\n-       jne      SHORT G_M27886_IG27\n\u002B       jne      SHORT G_M27886_IG23\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 1.62\n-G_M27886_IG25:\n\u002BG_M27886_IG21:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M27886_IG26:\n\u002BG_M27886_IG22:\n        add      rsp, 88\n        pop      rbx\n        pop      r12\n@@ -412,7 \u002B380,7 @@ G_M27886_IG26:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M27886_IG27:\n\u002BG_M27886_IG23:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.EntityKey\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -423,7 \u002B391,7 @@ G_M27886_IG27:\n        call     [rax]System.Data.Entity.Core.EntityKey:.ctor(System.Data.Entity.Core.Metadata.Edm.EntitySetBase,System.Object):this\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=42 bbWeight=0.50 PerfScore 2.88\n-G_M27886_IG28:\n\u002BG_M27886_IG24:\n        add      rsp, 88\n        pop      rbx\n        pop      r12\n@@ -433,26 \u002B401,26 @@ G_M27886_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M27886_IG29:\n\u002BG_M27886_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M27886_IG30:\n\u002BG_M27886_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M27886_IG31:\n\u002BG_M27886_IG27:\n        mov      edi, 2\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M27886_IG32:\n\u002BG_M27886_IG28:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1214, prolog size 32, PerfScore 523.00, instruction count 309, allocated bytes for code 1214 (MethodHash=ede49311) for method System.Data.Entity.Core.Objects.Internal.ForeignKeyFactory:CreateKeyFromForeignKeyValues(System.Data.Entity.Core.Objects.EntityEntry,System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint,System.Data.Entity.Core.Metadata.Edm.EntitySet,bool):System.Data.Entity.Core.EntityKey (FullOpts)\n\u002B; Total bytes of code 1112, prolog size 32, PerfScore 508.25, instruction count 285, allocated bytes for code 1112 (MethodHash=ede49311) for method System.Data.Entity.Core.Objects.Internal.ForeignKeyFactory:CreateKeyFromForeignKeyValues(System.Data.Entity.Core.Objects.EntityEntry,System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint,System.Data.Entity.Core.Metadata.Edm.EntitySet,bool):System.Data.Entity.Core.EntityKey (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1214,"DiffBytes":1112},{"Assembly":"MathNet.Numerics.dasm","Method":"MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:SameAs[int](MathNet.Numerics.LinearAlgebra.Matrix\u00601[int],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this (FullOpts)","Category":"improvement","Description":"594 -\u003E 120 bytes (-474)","ExtraInfo":null,"Diff":"@@ -1,214 \u002B1,65 @@\n ; Assembly listing for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:SameAs[int](MathNet.Numerics.LinearAlgebra.Matrix\u00601[int],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n-; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data\n\u002B; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 12,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]\u003E\n-;  V01 arg1         [V01,T03] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[int]\u003E\n-;  V02 arg2         [V02,T01] ( 11,  6.50)     int  -\u003E  r15         single-def\n-;  V03 arg3         [V03,T02] ( 11,  6.50)     int  -\u003E  r14         single-def\n-;  V04 arg4         [V04,T04] (  3,  2.50)   ubyte  -\u003E  r13         single-def\n-;  V05 loc0         [V05,T08] (  4,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]\u003E\n\u002B;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]\u003E\n\u002B;  V01 arg1         [V01,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[int]\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  4   )     int  -\u003E  r15         single-def\n\u002B;  V03 arg3         [V03,T04] (  4,  4   )     int  -\u003E  r14         single-def\n\u002B;* V04 arg4         [V04    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def\n\u002B;* V05 loc0         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]\u003E\n\u002B;  V07 tmp1         [V07,T00] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Clong[]\u003E\n-;  V09 tmp3         [V09,T06] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[long]\u003E\n-;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Clong[]\u003E\n-;  V11 tmp5         [V11,T11] (  2,  1   )     int  -\u003E  rsi         \u0022Inline return value spill temp\u0022\n-;  V12 tmp6         [V12,T09] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]\u003E\n-;  V13 tmp7         [V13,T10] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]\u003E\n-;  V14 tmp8         [V14,T07] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]\u003E\n-;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Clong[]\u003E\n-;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022Single return block return value\u0022\n ;\n ; Lcl frame size = 8\n \n G_M2844_IG01:\n-       push     rbp\n        push     r15\n        push     r14\n        push     r13\n-       push     r12\n        push     rbx\n        push     rax\n-       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n        mov      r15d, edx\n        mov      r14d, ecx\n-       mov      r13d, r8d\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.75\n G_M2844_IG02:\n-       mov      r12, gword ptr [rsi\u002B0x08]\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M2844_IG11\n-\t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 7.00\n-G_M2844_IG03:\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[long]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M2844_IG07\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      SHORT G_M2844_IG05\n\u002B       cmp      byte  ptr [rsi], sil\n        mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        mov      rdi, r13\n        mov      esi, r15d\n        mov      edx, r14d\n        mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]:.ctor(int,int):this\n        call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]:.ctor(int,int):this\n        imul     r15d, r14d\n        movsxd   rsi, r15d\n        mov      rdi, 0xD1FFAB1E      ; long[]\n        call     CORINFO_HELP_NEWARR_1_PTR\n        mov      rsi, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, rbx\n        mov      rsi, r13\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=150 bbWeight=0.50 PerfScore 12.62\n-G_M2844_IG04:\n\u002B\t\t\t\t\t\t;; size=89 bbWeight=1 PerfScore 17.25\n\u002BG_M2844_IG03:\n        add      rsp, 8\n        pop      rbx\n-       pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n-       pop      rbp\n        tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M2844_IG05:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 5.00\n-G_M2844_IG06:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M2844_IG07:\n-       test     r13b, r13b\n-       je       SHORT G_M2844_IG09\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 5.62\n-G_M2844_IG08:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M2844_IG09:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[long]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]:.ctor(int,int):this\n-       cmp      r15d, r14d\n-       mov      esi, r14d\n-       cmovle   esi, r15d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; long[]\n-       call     CORINFO_HELP_NEWARR_1_PTR\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 7.12\n-G_M2844_IG10:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x10]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:Diagonal(MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[long]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M2844_IG11:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]:.ctor(int,int):this\n-       mov      esi, r15d\n-       imul     esi, r14d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; long[]\n-       call     CORINFO_HELP_NEWARR_1_PTR\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=89 bbWeight=0.50 PerfScore 7.75\n-G_M2844_IG12:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n\u002B\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 594, prolog size 16, PerfScore 66.75, instruction count 157, allocated bytes for code 594 (MethodHash=c509f4e3) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:SameAs[int](MathNet.Numerics.LinearAlgebra.Matrix\u00601[int],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this (FullOpts)\n\u002B; Total bytes of code 120, prolog size 8, PerfScore 27.25, instruction count 34, allocated bytes for code 120 (MethodHash=c509f4e3) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:SameAs[int](MathNet.Numerics.LinearAlgebra.Matrix\u00601[int],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":594,"DiffBytes":120},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:Aggregate[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Nullable\u00601[int]]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n... diff truncated; middle omitted ...\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M34268_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M34268_IG26:\n\u002BG_M34268_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M34268_IG27:\n\u002BG_M34268_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M34268_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M34268_IG28:\n\u002BG_M34268_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M34268_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M34268_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M34268_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M34268_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M34268_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M34268_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M34268_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M34268_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M34268_IG31\n\u002B       je       SHORT G_M34268_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M34268_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M34268_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M34268_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M34268_IG32\n\u002B       je       SHORT G_M34268_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M34268_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M34268_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M34268_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M34268_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateAggregateToCollectionResultCursor[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M34268_IG33:\n\u002BG_M34268_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M34268_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M34268_IG34:\n\u002BG_M34268_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M34268_IG35:\n\u002BG_M34268_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M34268_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M34268_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M34268_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M34268_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M34268_IG37\n\u002B       je       SHORT G_M34268_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M34268_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M34268_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M34268_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M34268_IG38\n\u002B       je       SHORT G_M34268_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M34268_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M34268_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M34268_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M34268_IG39:\n\u002BG_M34268_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M34268_IG40:\n\u002BG_M34268_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M34268_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M34268_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M34268_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M34268_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M34268_IG42\n\u002B       je       SHORT G_M34268_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M34268_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M34268_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M34268_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M34268_IG43\n\u002B       je       SHORT G_M34268_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M34268_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M34268_IG43:\n\u002BG_M34268_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M34268_IG44:\n\u002BG_M34268_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=819d7a23) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:Aggregate[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=819d7a23) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:Aggregate[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.LicensedItemService:ListAutoPaging(Stripe.V2.Billing.LicensedItemListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.LicensedItem]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.Billing.LicensedItemService:ListAutoPaging(Stripe.V2.Billing.LicensedItemListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.LicensedItem]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.LicensedItemService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.LicensedItemListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.LicensedItemListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.LicensedItem]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.LicensedItem]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.LicensedItem]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.LicensedItem]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.LicensedItem]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.LicensedItem]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.LicensedItem]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.LicensedItem]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.LicensedItem]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M29012_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M29012_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/billing/licensed_items\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M29012_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M29012_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.LicensedItem]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.LicensedItem]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M29012_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M29012_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.LicensedItem]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.LicensedItem]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M29012_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M29012_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=1dc78eab) for method Stripe.V2.Billing.LicensedItemService:ListAutoPaging(Stripe.V2.Billing.LicensedItemListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.LicensedItem]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=1dc78eab) for method Stripe.V2.Billing.LicensedItemService:ListAutoPaging(Stripe.V2.Billing.LicensedItemListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.LicensedItem]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.Internal.Data.DatabaseConnection\u002B\u003CDisposeOrCloseAsync\u003Ed__25:MoveNext():this (FullOpts)","Category":"same-size","Description":"1,843 -\u003E 1,843 bytes (0)","ExtraInfo":null,"Diff":"@@ -437,7 \u002B437,7 @@ G_M63188_IG32:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        cmp      byte  ptr [rax\u002B0x10], 0\n        jne      SHORT G_M63188_IG33\n        mov      rdi, gword ptr [rbp-0x68]","Truncated":true,"BaseBytes":1843,"DiffBytes":1843},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Mapping.MappingItemLoader:LoadQueryView(System.Xml.XPath.XPathNavigator,System.Data.Entity.Core.Mapping.EntitySetBaseMapping):bool:this (FullOpts)","Category":"improvement","Description":"3,711 -\u003E 3,612 bytes (-99)","ExtraInfo":null,"Diff":"@@ -13,135 \u002B13,135 @@\n ;  V02 arg2         [V02,T23] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.EntitySetBaseMapping\u003E\n ;  V03 loc0         [V03,T01] ( 18, 10.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CSystem.Data.Entity.Core.Mapping.MappingItemLoader\u002B\u003C\u003Ec__DisplayClass41_0\u003E\n ;  V04 loc1         [V04,T25] (  7,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.String\u003E\n-;  V05 loc2         [V05,T68] (  5,  2.50)   ubyte  -\u003E  r15        \n\u002B;  V05 loc2         [V05,T68] (  5,  2.50)   ubyte  -\u003E  r12        \n ;  V06 loc3         [V06,T24] (  7,  4.50)     ref  -\u003E  r12         class-hnd \u003CSystem.String\u003E\n ;  V07 loc4         [V07,T02] ( 19, 10   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u003CSystem.Xml.IXmlLineInfo\u003E\n ;  V08 loc5         [V08    ] (  3,  1.50)     ref  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Metadata.Edm.EntityType]\u003E\n ;  V09 loc6         [V09    ] (  3,  1.50)     ref  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Metadata.Edm.EntityType]\u003E\n-;  V10 loc7         [V10,T20] ( 12,  6   )     ref  -\u003E  r12         class-hnd \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n\u002B;  V10 loc7         [V10,T20] ( 12,  6   )     ref  -\u003E  r15         class-hnd \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n ;* V11 loc8         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CSystem.Data.Entity.Core.Common.Utils.Pair\u00602[System.Data.Entity.Core.Metadata.Edm.EntitySetBase,System.Data.Entity.Core.Common.Utils.Pair\u00602[System.Data.Entity.Core.Metadata.Edm.EntityTypeBase,bool]]\u003E\n ;  V12 loc9         [V12,T70] (  4,  2   )     ref  -\u003E  r14         class-hnd \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmSchemaError\u003E\n ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V14 tmp1         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.MappingItemLoader\u002B\u003C\u003Ec__DisplayClass41_0\u003E\n ;  V15 tmp2         [V15,T13] (  7,  7   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Object,System.String]\u003E\n ;  V16 tmp3         [V16,T26] (  4,  4   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Metadata.Edm.EntityType,System.String]\u003E\n-;  V17 tmp4         [V17,T74] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Xml.XPath.XPathNavigator\u003E\n-;  V18 tmp5         [V18,T75] (  2,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n\u002B;  V17 tmp4         [V17,T72] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Xml.XPath.XPathNavigator\u003E\n\u002B;  V18 tmp5         [V18,T73] (  2,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n ;  V19 tmp6         [V19,T14] (  7,  7   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Object,System.String]\u003E\n ;  V20 tmp7         [V20,T27] (  4,  4   )     ref  -\u003E  [rbp-0x88]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Pair\u00602[System.Data.Entity.Core.Metadata.Edm.EntityTypeBase,bool]\u003E\n-;  V21 tmp8         [V21,T76] (  2,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySetBase\u003E\n\u002B;  V21 tmp8         [V21,T74] (  2,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySetBase\u003E\n ;  V22 tmp9         [V22,T21] (  5,  5   )     ref  -\u003E  [rbp-0x98]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Pair\u00602[System.Data.Entity.Core.Metadata.Edm.EntitySetBase,System.Data.Entity.Core.Common.Utils.Pair\u00602[System.Data.Entity.Core.Metadata.Edm.EntityTypeBase,bool]]\u003E\n-;  V23 tmp10        [V23,T34] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n-;  V24 tmp11        [V24,T77] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n-;  V25 tmp12        [V25,T109] (  2,  2   )     int  -\u003E  r15         \u0022non-inline candidate call\u0022\n\u002B;  V23 tmp10        [V23,T32] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n\u002B;  V24 tmp11        [V24,T75] (  2,  2   )     ref  -\u003E  r15         class-hnd exact single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n\u002B;  V25 tmp12        [V25,T107] (  2,  2   )     int  -\u003E  r12         \u0022non-inline candidate call\u0022\n ;  V26 tmp13        [V26,T04] (  9,  9   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmSchemaError\u003E\n-;  V27 tmp14        [V27,T35] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n-;  V28 tmp15        [V28,T78] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n-;  V29 tmp16        [V29,T110] (  2,  2   )     int  -\u003E  r12         \u0022non-inline candidate call\u0022\n-;  V30 tmp17        [V30,T05] (  9,  9   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmSchemaError\u003E\n-;  V31 tmp18        [V31,T15] (  7,  7   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00603[System.Object,System.Object,System.String]\u003E\n-;  V32 tmp19        [V32,T79] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n-;  V33 tmp20        [V33,T16] (  7,  7   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00603[System.Object,System.Object,System.String]\u003E\n-;  V34 tmp21        [V34,T80] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n-;  V35 tmp22        [V35,T17] (  7,  7   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00603[System.Object,System.Object,System.String]\u003E\n-;  V36 tmp23        [V36,T81] (  2,  2   )     ref  -\u003E  r14         class-hnd exact single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n\u002B;  V27 tmp14        [V27,T33] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n\u002B;  V28 tmp15        [V28,T76] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n\u002B;  V29 tmp16        [V29,T108] (  2,  2   )     int  -\u003E  r15         \u0022non-inline candidate call\u0022\n\u002B;  V30 tmp17        [V30,T05] (  9,  9   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmSchemaError\u003E\n\u002B;  V31 tmp18        [V31,T15] (  7,  7   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00603[System.Object,System.Object,System.String]\u003E\n\u002B;  V32 tmp19        [V32,T77] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n\u002B;  V33 tmp20        [V33,T16] (  7,  7   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00603[System.Object,System.Object,System.String]\u003E\n\u002B;  V34 tmp21        [V34,T78] (  2,  2   )     ref  -\u003E  r15         class-hnd exact single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n\u002B;  V35 tmp22        [V35,T17] (  7,  7   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00603[System.Object,System.Object,System.String]\u003E\n\u002B;  V36 tmp23        [V36,T79] (  2,  2   )     ref  -\u003E  r15         class-hnd exact single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n ;  V37 tmp24        [V37,T18] (  7,  7   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Object,System.String]\u003E\n-;  V38 tmp25        [V38,T82] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Object,System.String]\u003E\n\u002B;  V38 tmp25        [V38,T80] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Object,System.String]\u003E\n ;  V39 tmp26        [V39,T67] (  5,  2.50)     ref  -\u003E  r15        \n ;  V40 tmp27        [V40,T22] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Object,System.String]\u003E\n ;* V41 tmp28        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Xml.XPath.XPathNavigator\u003E\n ;* V42 tmp29        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.EntitySetBaseMapping\u003E\n-;  V43 tmp30        [V43,T83] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.MappingItemLoader\u002B\u003C\u003Ec\u003E\n... diff truncated; middle omitted ...\n-       mov      rdi, r12\n-       mov      rax, qword ptr [r12]\n\u002B       mov      rdi, r15\n\u002B       mov      rax, qword ptr [r15]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x30]System.Data.Entity.Core.Metadata.Edm.EdmType:get_Name():System.String:this\n        mov      rdx, rax\n-       mov      r12, gword ptr [rbx\u002B0x18]\n\u002B       mov      r15, gword ptr [rbx\u002B0x18]\n        mov      rbx, gword ptr [rbx\u002B0x20]\n        mov      rsi, r13\n-       mov      rdi, gword ptr [r15\u002B0x10]\n-       call     [r15\u002B0x18]System.Func\u00603[System.__Canon,System.__Canon,System.__Canon]:Invoke(System.__Canon,System.__Canon):System.__Canon:this\n-       mov      r15, rax\n\u002B       mov      rdi, gword ptr [r14\u002B0x10]\n\u002B       call     [r14\u002B0x18]System.Func\u00603[System.__Canon,System.__Canon,System.__Canon]:Invoke(System.__Canon,System.__Canon):System.__Canon:this\n\u002B       mov      r14, rax\n        mov      rdi, gword ptr [rbp-0x78]\n        mov      r11, 0xD1FFAB1E      ; code for System.Xml.IXmlLineInfo:get_LineNumber():int:this\n        call     [r11]System.Xml.IXmlLineInfo:get_LineNumber():int:this\n-       mov      r14d, eax\n\u002B       mov      r13d, eax\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Metadata.Edm.EdmSchemaError\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n\u002B       mov      r12, rax\n        mov      rdi, gword ptr [rbp-0x78]\n        mov      r11, 0xD1FFAB1E      ; code for System.Xml.IXmlLineInfo:get_LinePosition():int:this\n        call     [r11]System.Xml.IXmlLineInfo:get_LinePosition():int:this\n        mov      dword ptr [rbp-0x68], eax\n-\t\t\t\t\t\t;; size=185 bbWeight=0.50 PerfScore 25.25\n-G_M57825_IG28:\n-       mov      qword ptr [r13\u002B0x28], -1\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=0.50 PerfScore 25.25\n\u002BG_M57825_IG24:\n\u002B       mov      qword ptr [r12\u002B0x28], -1\n        mov      rdi, 0xD1FFAB1E      ; \u0027\u0027\n-       mov      gword ptr [r13\u002B0x18], rdi\n-       mov      rdi, r15\n\u002B       mov      gword ptr [r12\u002B0x18], rdi\n\u002B       mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; \u0027message\u0027\n        mov      rcx, 0xD1FFAB1E      ; code for System.Data.Entity.Utilities.Check:NotEmpty(System.String,System.String):System.String\n        call     [rcx]System.Data.Entity.Utilities.Check:NotEmpty(System.String,System.String):System.String\n-       lea      rdi, bword ptr [r13\u002B0x08]\n-       mov      rsi, r15\n\u002B       lea      rdi, bword ptr [r12\u002B0x08]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, 0xD1FFAB1E\n-       mov      qword ptr [r13\u002B0x20], rdi\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       mov      rsi, r12\n\u002B       mov      qword ptr [r12\u002B0x20], rdi\n\u002B       lea      rdi, bword ptr [r12\u002B0x10]\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      dword ptr [r13\u002B0x28], r14d\n\u002B       mov      dword ptr [r12\u002B0x28], r13d\n        mov      r15d, dword ptr [rbp-0x68]\n-       mov      dword ptr [r13\u002B0x2C], r15d\n\u002B       mov      dword ptr [r12\u002B0x2C], r15d\n        mov      rdi, rbx\n-       mov      rsi, r13\n\u002B       mov      rsi, r12\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:Add(System.__Canon):this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:Add(System.__Canon):this\n-       jmp      G_M57825_IG40\n-\t\t\t\t\t\t;; size=121 bbWeight=0.50 PerfScore 9.75\n-G_M57825_IG29:\n\u002B       jmp      G_M57825_IG36\n\u002B\t\t\t\t\t\t;; size=128 bbWeight=0.50 PerfScore 9.75\n\u002BG_M57825_IG25:\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[System.Object,System.String]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -841,7 \u002B805,7 @@ G_M57825_IG29:\n        mov      rcx, 0xD1FFAB1E      ; code for System.Data.Entity.Utilities.Check:NotEmpty(System.String,System.String):System.String\n        call     [rcx]System.Data.Entity.Utilities.Check:NotEmpty(System.String,System.String):System.String\n \t\t\t\t\t\t;; size=214 bbWeight=0.50 PerfScore 24.38\n-G_M57825_IG30:\n\u002BG_M57825_IG26:\n        lea      rdi, bword ptr [r12\u002B0x08]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -857,20 \u002B821,20 @@ G_M57825_IG30:\n        mov      rsi, r12\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:Add(System.__Canon):this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:Add(System.__Canon):this\n-       jmp      G_M57825_IG40\n\u002B       jmp      G_M57825_IG36\n \t\t\t\t\t\t;; size=79 bbWeight=0.50 PerfScore 6.75\n-G_M57825_IG31:\n\u002BG_M57825_IG27:\n        test     r12, r12\n-       jne      G_M57825_IG38\n\u002B       jne      G_M57825_IG34\n        test     r14, r14\n-       jne      SHORT G_M57825_IG33\n\u002B       jne      SHORT G_M57825_IG29\n \t\t\t\t\t\t;; size=14 bbWeight=0.50 PerfScore 1.25\n-G_M57825_IG32:\n-       jmp      SHORT G_M57825_IG36\n\u002BG_M57825_IG28:\n\u002B       jmp      SHORT G_M57825_IG32\n \t\t\t\t\t\t;; size=2 bbWeight=0.25 PerfScore 0.50\n-G_M57825_IG33:\n\u002BG_M57825_IG29:\n        cmp      dword ptr [r14\u002B0x08], 0\n-       je       SHORT G_M57825_IG36\n\u002B       je       SHORT G_M57825_IG32\n        mov      r15, rcx\n        cmp      byte  ptr [r15], r15b\n        mov      rdi, r15\n@@ -881,10 \u002B845,10 @@ G_M57825_IG33:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      byte  ptr [rbx\u002B0x48], 1\n \t\t\t\t\t\t;; size=44 bbWeight=0.50 PerfScore 5.75\n-G_M57825_IG34:\n\u002BG_M57825_IG30:\n        mov      eax, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 0.12\n-G_M57825_IG35:\n\u002BG_M57825_IG31:\n        add      rsp, 120\n        pop      rbx\n        pop      r12\n@@ -894,7 \u002B858,7 @@ G_M57825_IG35:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M57825_IG36:\n\u002BG_M57825_IG32:\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[System.Object,System.String]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -938,7 \u002B902,7 @@ G_M57825_IG36:\n        mov      rsi, 0xD1FFAB1E      ; \u0027message\u0027\n        mov      rcx, 0xD1FFAB1E      ; code for System.Data.Entity.Utilities.Check:NotEmpty(System.String,System.String):System.String\n \t\t\t\t\t\t;; size=218 bbWeight=0.50 PerfScore 22.50\n-G_M57825_IG37:\n\u002BG_M57825_IG33:\n        call     [rcx]System.Data.Entity.Utilities.Check:NotEmpty(System.String,System.String):System.String\n        lea      rdi, bword ptr [r12\u002B0x08]\n        mov      rsi, r15\n@@ -955,13 \u002B919,13 @@ G_M57825_IG37:\n        mov      rsi, r12\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:Add(System.__Canon):this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:Add(System.__Canon):this\n-       jmp      G_M57825_IG40\n\u002B       jmp      G_M57825_IG36\n \t\t\t\t\t\t;; size=81 bbWeight=0.50 PerfScore 8.25\n-G_M57825_IG38:\n\u002BG_M57825_IG34:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Data.Entity.Core.Mapping.MappingItemLoader\u002B\u003C\u003Ec:\u003C\u003E9__41_0\n        mov      r15, gword ptr [rdi]\n        test     r15, r15\n-       jne      SHORT G_M57825_IG39\n\u002B       jne      SHORT G_M57825_IG35\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[System.Object,System.String]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -976,7 \u002B940,7 @@ G_M57825_IG38:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rcx, gword ptr [rbp-0xA0]\n \t\t\t\t\t\t;; size=97 bbWeight=0.50 PerfScore 6.25\n-G_M57825_IG39:\n\u002BG_M57825_IG35:\n        mov      rdi, rcx\n        mov      rcx, qword ptr [rdi]\n        mov      rcx, qword ptr [rcx\u002B0x40]\n@@ -1025,10 \u002B989,10 @@ G_M57825_IG39:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:Add(System.__Canon):this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:Add(System.__Canon):this\n \t\t\t\t\t\t;; size=229 bbWeight=0.50 PerfScore 26.38\n-G_M57825_IG40:\n\u002BG_M57825_IG36:\n        xor      eax, eax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M57825_IG41:\n\u002BG_M57825_IG37:\n        add      rsp, 120\n        pop      rbx\n        pop      r12\n@@ -1038,17 \u002B1002,17 @@ G_M57825_IG41:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M57825_IG42:\n\u002BG_M57825_IG38:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M57825_IG43:\n\u002BG_M57825_IG39:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 3711, prolog size 42, PerfScore 436.05, instruction count 791, allocated bytes for code 3711 (MethodHash=c73b1e1e) for method System.Data.Entity.Core.Mapping.MappingItemLoader:LoadQueryView(System.Xml.XPath.XPathNavigator,System.Data.Entity.Core.Mapping.EntitySetBaseMapping):bool:this (FullOpts)\n\u002B; Total bytes of code 3612, prolog size 42, PerfScore 420.80, instruction count 763, allocated bytes for code 3612 (MethodHash=c73b1e1e) for method System.Data.Entity.Core.Mapping.MappingItemLoader:LoadQueryView(System.Xml.XPath.XPathNavigator,System.Data.Entity.Core.Mapping.EntitySetBaseMapping):bool:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":3711,"DiffBytes":3612},{"Assembly":"MathNet.Numerics.dasm","Method":"MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:SameAs[short](MathNet.Numerics.LinearAlgebra.Matrix\u00601[short],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this (FullOpts)","Category":"improvement","Description":"594 -\u003E 120 bytes (-474)","ExtraInfo":null,"Diff":"@@ -1,214 \u002B1,65 @@\n ; Assembly listing for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:SameAs[short](MathNet.Numerics.LinearAlgebra.Matrix\u00601[short],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n-; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data\n\u002B; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 12,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]\u003E\n-;  V01 arg1         [V01,T03] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[short]\u003E\n-;  V02 arg2         [V02,T01] ( 11,  6.50)     int  -\u003E  r15         single-def\n-;  V03 arg3         [V03,T02] ( 11,  6.50)     int  -\u003E  r14         single-def\n-;  V04 arg4         [V04,T04] (  3,  2.50)   ubyte  -\u003E  r13         single-def\n-;  V05 loc0         [V05,T08] (  4,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]\u003E\n\u002B;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]\u003E\n\u002B;  V01 arg1         [V01,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[short]\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  4   )     int  -\u003E  r15         single-def\n\u002B;  V03 arg3         [V03,T04] (  4,  4   )     int  -\u003E  r14         single-def\n\u002B;* V04 arg4         [V04    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def\n\u002B;* V05 loc0         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]\u003E\n\u002B;  V07 tmp1         [V07,T00] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Clong[]\u003E\n-;  V09 tmp3         [V09,T06] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[long]\u003E\n-;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Clong[]\u003E\n-;  V11 tmp5         [V11,T11] (  2,  1   )     int  -\u003E  rsi         \u0022Inline return value spill temp\u0022\n-;  V12 tmp6         [V12,T09] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]\u003E\n-;  V13 tmp7         [V13,T10] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]\u003E\n-;  V14 tmp8         [V14,T07] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]\u003E\n-;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Clong[]\u003E\n-;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022Single return block return value\u0022\n ;\n ; Lcl frame size = 8\n \n G_M45116_IG01:\n-       push     rbp\n        push     r15\n        push     r14\n        push     r13\n-       push     r12\n        push     rbx\n        push     rax\n-       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n        mov      r15d, edx\n        mov      r14d, ecx\n-       mov      r13d, r8d\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.75\n G_M45116_IG02:\n-       mov      r12, gword ptr [rsi\u002B0x08]\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M45116_IG11\n-\t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 7.00\n-G_M45116_IG03:\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[long]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M45116_IG07\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      SHORT G_M45116_IG05\n\u002B       cmp      byte  ptr [rsi], sil\n        mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        mov      rdi, r13\n        mov      esi, r15d\n        mov      edx, r14d\n        mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]:.ctor(int,int):this\n        call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]:.ctor(int,int):this\n        imul     r15d, r14d\n        movsxd   rsi, r15d\n        mov      rdi, 0xD1FFAB1E      ; long[]\n        call     CORINFO_HELP_NEWARR_1_PTR\n        mov      rsi, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, rbx\n        mov      rsi, r13\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=150 bbWeight=0.50 PerfScore 12.62\n-G_M45116_IG04:\n\u002B\t\t\t\t\t\t;; size=89 bbWeight=1 PerfScore 17.25\n\u002BG_M45116_IG03:\n        add      rsp, 8\n        pop      rbx\n-       pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n-       pop      rbp\n        tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M45116_IG05:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 5.00\n-G_M45116_IG06:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M45116_IG07:\n-       test     r13b, r13b\n-       je       SHORT G_M45116_IG09\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 5.62\n-G_M45116_IG08:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[long]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M45116_IG09:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[long]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]:.ctor(int,int):this\n-       cmp      r15d, r14d\n-       mov      esi, r14d\n-       cmovle   esi, r15d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; long[]\n-       call     CORINFO_HELP_NEWARR_1_PTR\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 7.12\n-G_M45116_IG10:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x10]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:Diagonal(MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[long]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M45116_IG11:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]:.ctor(int,int):this\n-       mov      esi, r15d\n-       imul     esi, r14d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; long[]\n-       call     CORINFO_HELP_NEWARR_1_PTR\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=89 bbWeight=0.50 PerfScore 7.75\n-G_M45116_IG12:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[long]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n\u002B\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 594, prolog size 16, PerfScore 66.75, instruction count 157, allocated bytes for code 594 (MethodHash=28164fc3) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:SameAs[short](MathNet.Numerics.LinearAlgebra.Matrix\u00601[short],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this (FullOpts)\n\u002B; Total bytes of code 120, prolog size 8, PerfScore 27.25, instruction count 34, allocated bytes for code 120 (MethodHash=28164fc3) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[long]:SameAs[short](MathNet.Numerics.LinearAlgebra.Matrix\u00601[short],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[long]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":594,"DiffBytes":120},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:Aggregate[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.Numerics.Vector\u00601[float]]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n... diff truncated; middle omitted ...\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M12001_IG26:\n\u002BG_M12001_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M12001_IG27:\n\u002BG_M12001_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M12001_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M12001_IG28:\n\u002BG_M12001_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M12001_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M12001_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M12001_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M12001_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M12001_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M12001_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M12001_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M12001_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M12001_IG31\n\u002B       je       SHORT G_M12001_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M12001_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M12001_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M12001_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M12001_IG32\n\u002B       je       SHORT G_M12001_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M12001_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M12001_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M12001_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M12001_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateAggregateToCollectionResultCursor[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M12001_IG33:\n\u002BG_M12001_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M12001_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M12001_IG34:\n\u002BG_M12001_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M12001_IG35:\n\u002BG_M12001_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M12001_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M12001_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M12001_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M12001_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M12001_IG37\n\u002B       je       SHORT G_M12001_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M12001_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M12001_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M12001_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M12001_IG38\n\u002B       je       SHORT G_M12001_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M12001_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M12001_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M12001_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M12001_IG39:\n\u002BG_M12001_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M12001_IG40:\n\u002BG_M12001_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M12001_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M12001_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M12001_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M12001_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M12001_IG42\n\u002B       je       SHORT G_M12001_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M12001_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M12001_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M12001_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M12001_IG43\n\u002B       je       SHORT G_M12001_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M12001_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M12001_IG43:\n\u002BG_M12001_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M12001_IG44:\n\u002BG_M12001_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=bcfcd11e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:Aggregate[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=bcfcd11e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:Aggregate[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.MeteredItemService:ListAutoPaging(Stripe.V2.Billing.MeteredItemListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.MeteredItem]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.Billing.MeteredItemService:ListAutoPaging(Stripe.V2.Billing.MeteredItemListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.MeteredItem]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.MeteredItemService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.MeteredItemListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.MeteredItemListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.MeteredItem]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.MeteredItem]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.MeteredItem]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.MeteredItem]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.MeteredItem]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.MeteredItem]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.MeteredItem]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.MeteredItem]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.MeteredItem]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M60481_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M60481_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/billing/metered_items\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M60481_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M60481_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.MeteredItem]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.MeteredItem]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M60481_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M60481_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.MeteredItem]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.MeteredItem]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M60481_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M60481_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=3d2b13be) for method Stripe.V2.Billing.MeteredItemService:ListAutoPaging(Stripe.V2.Billing.MeteredItemListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.MeteredItem]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=3d2b13be) for method Stripe.V2.Billing.MeteredItemService:ListAutoPaging(Stripe.V2.Billing.MeteredItemListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.MeteredItem]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.Internal.Data.DatabaseConnection\u002B\u003CDisposeTransactionAsync\u003Ed__27:MoveNext():this (FullOpts)","Category":"same-size","Description":"1,221 -\u003E 1,221 bytes (0)","ExtraInfo":null,"Diff":"@@ -289,7 \u002B289,7 @@ G_M42617_IG20:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        cmp      byte  ptr [rax\u002B0x10], 0\n        jne      SHORT G_M42617_IG21\n        mov      rbx, bword ptr [rbp-0x70]","Truncated":true,"BaseBytes":1221,"DiffBytes":1221},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Migrations.DbSetMigrationsExtensions\u002B\u003C\u003Ec__DisplayClass2_1\u00601[System.__Canon]:\u003CAddOrUpdate\u003Eb__0(System.Data.Entity.ModelConfiguration.Utilities.PropertyPath):System.Linq.Expressions.BinaryExpression:this (FullOpts)","Category":"improvement","Description":"386 -\u003E 302 bytes (-84)","ExtraInfo":null,"Diff":"@@ -9,86 \u002B9,65 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  r15         this class-hnd single-def \u003CSystem.Data.Entity.Migrations.DbSetMigrationsExtensions\u002B\u003C\u003Ec__DisplayClass2_1\u00601[System.__Canon]\u003E\n-;  V01 arg1         [V01,T00] (  7,  6   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Utilities.PropertyPath\u003E\n\u002B;  V01 arg1         [V01,T00] (  6,  6   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Utilities.PropertyPath\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V03 tmp1         [V03,T02] (  2,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n ;  V04 tmp2         [V04,T03] (  2,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Linq.Expressions.MemberExpression\u003E\n ;  V05 tmp3         [V05,T04] (  2,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Object\u003E\n-;  V06 tmp4         [V06    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V07 tmp5         [V07,T12] (  2,  2   )     ref  -\u003E  rsi         single-def\n-;  V08 tmp6         [V08    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V06 tmp4         [V06    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V07 tmp5         [V07,T09] (  2,  2   )     ref  -\u003E  rsi         single-def\n\u002B;  V08 tmp6         [V08    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V09 tmp7         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V10 tmp8         [V10,T07] (  4,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Reflection.PropertyInfo\u003E\n-;  V11 tmp9         [V11,T08] (  4,  3   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Reflection.PropertyInfo]\u003E\n-;  V12 tmp10        [V12    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V10 tmp8         [V10,T07] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Reflection.PropertyInfo\u003E\n\u002B;* V11 tmp9         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Reflection.PropertyInfo]\u003E\n\u002B;  V12 tmp10        [V12    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V13 tmp11        [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V14 tmp12        [V14,T09] (  4,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Reflection.PropertyInfo\u003E\n-;  V15 tmp13        [V15,T10] (  4,  3   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Reflection.PropertyInfo]\u003E\n\u002B;  V14 tmp12        [V14,T08] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Reflection.PropertyInfo\u003E\n\u002B;* V15 tmp13        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Reflection.PropertyInfo]\u003E\n ;* V16 tmp14        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Linq.Expressions.ConstantExpression\u003E\n ;  V17 tmp15        [V17,T05] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;  V18 tmp16        [V18,T06] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V19 cse0         [V19,T11] (  3,  3   )     ref  -\u003E  r13         \u0022CSE #01: moderate\u0022\n ;\n-; Lcl frame size = 32\n\u002B; Lcl frame size = 24\n \n G_M15543_IG01:\n        push     rbp\n        push     r15\n        push     r14\n-       push     r13\n        push     rbx\n-       sub      rsp, 32\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       sub      rsp, 24\n\u002B       lea      rbp, [rsp\u002B0x30]\n        vxorps   xmm8, xmm8, xmm8\n-       vmovdqu  xmmword ptr [rbp-0x38], xmm8\n\u002B       vmovdqa  xmmword ptr [rbp-0x30], xmm8\n        xor      eax, eax\n-       mov      qword ptr [rbp-0x28], rax\n\u002B       mov      qword ptr [rbp-0x20], rax\n        mov      r15, rdi\n        mov      rbx, rsi\n-\t\t\t\t\t\t;; size=39 bbWeight=1 PerfScore 8.83\n\u002B\t\t\t\t\t\t;; size=37 bbWeight=1 PerfScore 7.83\n G_M15543_IG02:\n        mov      rdx, gword ptr [r15\u002B0x10]\n        mov      r14, gword ptr [rdx\u002B0x08]\n-       lea      rdx, [rbp-0x28]\n\u002B       lea      rdx, [rbp-0x20]\n        mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetSingle[System.Reflection.PropertyInfo](System.Collections.Generic.IEnumerable\u00601[System.Reflection.PropertyInfo],byref):System.Reflection.PropertyInfo\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetSingle[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetSingle[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        mov      rsi, rax\n-       cmp      byte  ptr [rbp-0x28], 0\n-       je       G_M15543_IG10\n\u002B       cmp      byte  ptr [rbp-0x20], 0\n\u002B       je       G_M15543_IG04\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Expressions.Expression:Property(System.Linq.Expressions.Expression,System.Reflection.PropertyInfo):System.Linq.Expressions.MemberExpression\n        call     [rax]System.Linq.Expressions.Expression:Property(System.Linq.Expressions.Expression,System.Reflection.PropertyInfo):System.Linq.Expressions.MemberExpression\n        mov      r14, rax\n        test     rbx, rbx\n-       je       G_M15543_IG11\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Reflection.PropertyInfo]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r13, rax\n-       mov      rdi, r13\n-       test     rdi, rdi\n-       je       SHORT G_M15543_IG04\n-\t\t\t\t\t\t;; size=113 bbWeight=1 PerfScore 21.00\n-G_M15543_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rax, qword ptr [rdi]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M15543_IG05\n-\t\t\t\t\t\t;; size=16 bbWeight=0.50 PerfScore 4.75\n-G_M15543_IG04:\n-       lea      rdx, [rbp-0x30]\n\u002B       je       G_M15543_IG05\n\u002B       lea      rdx, [rbp-0x28]\n        mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.Reflection.PropertyInfo](System.Collections.Generic.IEnumerable\u00601[System.Reflection.PropertyInfo],byref):System.Reflection.PropertyInfo\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M15543_IG05:\n-       cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M15543_IG10\n\u002B       cmp      byte  ptr [rbp-0x28], 0\n\u002B       je       SHORT G_M15543_IG04\n        mov      rsi, gword ptr [r15\u002B0x08]\n        mov      rdi, rax\n        xor      rdx, rdx\n@@ -96,27 \u002B75,13 @@ G_M15543_IG05:\n        mov      rax, qword ptr [rax\u002B0x58]\n        call     [rax\u002B0x38]System.Reflection.PropertyInfo:GetValue(System.Object,System.Object[]):System.Object:this\n        mov      r15, rax\n-       mov      rdi, r13\n-       test     rdi, rdi\n-       je       SHORT G_M15543_IG07\n-\t\t\t\t\t\t;; size=40 bbWeight=1 PerfScore 13.25\n-G_M15543_IG06:\n-       lea      rsi, [rbp-0x38]\n-       mov      rax, qword ptr [rdi]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M15543_IG08\n-\t\t\t\t\t\t;; size=16 bbWeight=0.50 PerfScore 4.75\n-G_M15543_IG07:\n-       lea      rdx, [rbp-0x38]\n\u002B       lea      rdx, [rbp-0x30]\n        mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.Reflection.PropertyInfo](System.Collections.Generic.IEnumerable\u00601[System.Reflection.PropertyInfo],byref):System.Reflection.PropertyInfo\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M15543_IG08:\n-       cmp      byte  ptr [rbp-0x38], 0\n-       je       SHORT G_M15543_IG10\n\u002B       cmp      byte  ptr [rbp-0x30], 0\n\u002B       je       SHORT G_M15543_IG04\n        mov      rdi, rax\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x50]\n@@ -132,27 \u002B97,26 @@ G_M15543_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Expressions.Expression:Equal(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,bool,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression\n        call     [rax]System.Linq.Expressions.Expression:Equal(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,bool,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression\n        nop      \n-\t\t\t\t\t\t;; size=60 bbWeight=1 PerfScore 17.50\n-G_M15543_IG09:\n-       add      rsp, 32\n\u002B\t\t\t\t\t\t;; size=223 bbWeight=1 PerfScore 53.25\n\u002BG_M15543_IG03:\n\u002B       add      rsp, 24\n        pop      rbx\n-       pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n-G_M15543_IG10:\n\u002B\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n\u002BG_M15543_IG04:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M15543_IG11:\n\u002BG_M15543_IG05:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 386, prolog size 33, PerfScore 78.08, instruction count 100, allocated bytes for code 386 (MethodHash=eaddc348) for method System.Data.Entity.Migrations.DbSetMigrationsExtensions\u002B\u003C\u003Ec__DisplayClass2_1\u00601[System.__Canon]:\u003CAddOrUpdate\u003Eb__0(System.Data.Entity.ModelConfiguration.Utilities.PropertyPath):System.Linq.Expressions.BinaryExpression:this (FullOpts)\n\u002B; Total bytes of code 302, prolog size 31, PerfScore 64.33, instruction count 77, allocated bytes for code 302 (MethodHash=eaddc348) for method System.Data.Entity.Migrations.DbSetMigrationsExtensions\u002B\u003C\u003Ec__DisplayClass2_1\u00601[System.__Canon]:\u003CAddOrUpdate\u003Eb__0(System.Data.Entity.ModelConfiguration.Utilities.PropertyPath):System.Linq.Expressions.BinaryExpression:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":386,"DiffBytes":302},{"Assembly":"MathNet.Numerics.dasm","Method":"MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:SameAs[System.Numerics.Vector\u00601[float]](MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this (FullOpts)","Category":"improvement","Description":"594 -\u003E 120 bytes (-474)","ExtraInfo":null,"Diff":"@@ -1,214 \u002B1,65 @@\n ; Assembly listing for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:SameAs[System.Numerics.Vector\u00601[float]](MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n-; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data\n\u002B; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 12,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]\u003E\n-;  V01 arg1         [V01,T03] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V02 arg2         [V02,T01] ( 11,  6.50)     int  -\u003E  r15         single-def\n-;  V03 arg3         [V03,T02] ( 11,  6.50)     int  -\u003E  r14         single-def\n-;  V04 arg4         [V04,T04] (  3,  2.50)   ubyte  -\u003E  r13         single-def\n-;  V05 loc0         [V05,T08] (  4,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]\u003E\n\u002B;  V01 arg1         [V01,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  4   )     int  -\u003E  r15         single-def\n\u002B;  V03 arg3         [V03,T04] (  4,  4   )     int  -\u003E  r14         single-def\n\u002B;* V04 arg4         [V04    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def\n\u002B;* V05 loc0         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]\u003E\n\u002B;  V07 tmp1         [V07,T00] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cshort[]\u003E\n-;  V09 tmp3         [V09,T06] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[short]\u003E\n-;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cshort[]\u003E\n-;  V11 tmp5         [V11,T11] (  2,  1   )     int  -\u003E  rsi         \u0022Inline return value spill temp\u0022\n-;  V12 tmp6         [V12,T09] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]\u003E\n-;  V13 tmp7         [V13,T10] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]\u003E\n-;  V14 tmp8         [V14,T07] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]\u003E\n-;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cshort[]\u003E\n-;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022Single return block return value\u0022\n ;\n ; Lcl frame size = 8\n \n G_M20988_IG01:\n-       push     rbp\n        push     r15\n        push     r14\n        push     r13\n-       push     r12\n        push     rbx\n        push     rax\n-       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n        mov      r15d, edx\n        mov      r14d, ecx\n-       mov      r13d, r8d\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.75\n G_M20988_IG02:\n-       mov      r12, gword ptr [rsi\u002B0x08]\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M20988_IG11\n-\t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 7.00\n-G_M20988_IG03:\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[short]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M20988_IG07\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      SHORT G_M20988_IG05\n\u002B       cmp      byte  ptr [rsi], sil\n        mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        mov      rdi, r13\n        mov      esi, r15d\n        mov      edx, r14d\n        mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]:.ctor(int,int):this\n        call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]:.ctor(int,int):this\n        imul     r15d, r14d\n        movsxd   rsi, r15d\n        mov      rdi, 0xD1FFAB1E      ; short[]\n        call     CORINFO_HELP_NEWARR_1_VC\n        mov      rsi, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, rbx\n        mov      rsi, r13\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=150 bbWeight=0.50 PerfScore 12.62\n-G_M20988_IG04:\n\u002B\t\t\t\t\t\t;; size=89 bbWeight=1 PerfScore 17.25\n\u002BG_M20988_IG03:\n        add      rsp, 8\n        pop      rbx\n-       pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n-       pop      rbp\n        tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M20988_IG05:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 5.00\n-G_M20988_IG06:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M20988_IG07:\n-       test     r13b, r13b\n-       je       SHORT G_M20988_IG09\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 5.62\n-G_M20988_IG08:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M20988_IG09:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[short]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]:.ctor(int,int):this\n-       cmp      r15d, r14d\n-       mov      esi, r14d\n-       cmovle   esi, r15d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; short[]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 7.12\n-G_M20988_IG10:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x10]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:Diagonal(MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[short]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M20988_IG11:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]:.ctor(int,int):this\n-       mov      esi, r15d\n-       imul     esi, r14d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; short[]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=89 bbWeight=0.50 PerfScore 7.75\n-G_M20988_IG12:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n\u002B\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 594, prolog size 16, PerfScore 66.75, instruction count 157, allocated bytes for code 594 (MethodHash=35c1ae03) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:SameAs[System.Numerics.Vector\u00601[float]](MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this (FullOpts)\n\u002B; Total bytes of code 120, prolog size 8, PerfScore 27.25, instruction count 34, allocated bytes for code 120 (MethodHash=35c1ae03) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:SameAs[System.Numerics.Vector\u00601[float]](MathNet.Numerics.LinearAlgebra.Matrix\u00601[System.Numerics.Vector\u00601[float]],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":594,"DiffBytes":120},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:Aggregate[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],byte]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[byte]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[byte]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[byte]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[byte]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[byte]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V69 tmp59        [V69,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M64552_IG26\n\u002B       je       SHORT G_M64552_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M64552_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M64552_IG26:\n\u002BG_M64552_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M64552_IG27:\n\u002BG_M64552_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M64552_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M64552_IG28:\n\u002BG_M64552_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M64552_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M64552_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M64552_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M64552_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M64552_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M64552_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M64552_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M64552_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M64552_IG31\n\u002B       je       SHORT G_M64552_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M64552_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M64552_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M64552_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M64552_IG32\n\u002B       je       SHORT G_M64552_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M64552_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M64552_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M64552_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M64552_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateAggregateToCollectionResultCursor[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[byte],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[byte]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M64552_IG33:\n\u002BG_M64552_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M64552_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M64552_IG34:\n\u002BG_M64552_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M64552_IG35:\n\u002BG_M64552_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M64552_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M64552_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M64552_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M64552_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M64552_IG37\n\u002B       je       SHORT G_M64552_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M64552_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M64552_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M64552_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M64552_IG38\n\u002B       je       SHORT G_M64552_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M64552_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M64552_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M64552_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M64552_IG39:\n\u002BG_M64552_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M64552_IG40:\n\u002BG_M64552_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M64552_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M64552_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M64552_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M64552_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M64552_IG42\n\u002B       je       SHORT G_M64552_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M64552_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M64552_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M64552_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M64552_IG43\n\u002B       je       SHORT G_M64552_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M64552_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M64552_IG43:\n\u002BG_M64552_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M64552_IG44:\n\u002BG_M64552_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=d9bf03d7) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:Aggregate[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=d9bf03d7) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:Aggregate[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.OneTimeItemService:ListAutoPaging(Stripe.V2.Billing.OneTimeItemListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.OneTimeItem]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.Billing.OneTimeItemService:ListAutoPaging(Stripe.V2.Billing.OneTimeItemListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.OneTimeItem]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.OneTimeItemService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.OneTimeItemListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.OneTimeItemListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.OneTimeItem]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.OneTimeItem]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.OneTimeItem]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.OneTimeItem]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.OneTimeItem]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.OneTimeItem]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.OneTimeItem]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.OneTimeItem]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.OneTimeItem]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M3834_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M3834_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/billing/one_time_items\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M3834_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M3834_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.OneTimeItem]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.OneTimeItem]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M3834_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M3834_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.OneTimeItem]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.OneTimeItem]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M3834_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M3834_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=ccdff105) for method Stripe.V2.Billing.OneTimeItemService:ListAutoPaging(Stripe.V2.Billing.OneTimeItemListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.OneTimeItem]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=ccdff105) for method Stripe.V2.Billing.OneTimeItemService:ListAutoPaging(Stripe.V2.Billing.OneTimeItemListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.OneTimeItem]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.Internal.Data.DatabaseConnection\u002B\u003COpenAsync\u003Ed__22:MoveNext():this (FullOpts)","Category":"same-size","Description":"703 -\u003E 703 bytes (0)","ExtraInfo":null,"Diff":"@@ -88,7 \u002B88,7 @@ G_M47131_IG03:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        cmp      byte  ptr [rax\u002B0x10], 0\n        jne      SHORT G_M47131_IG05\n \t\t\t\t\t\t;; size=49 bbWeight=1 PerfScore 11.25","Truncated":true,"BaseBytes":703,"DiffBytes":703},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u002B\u003C\u003Ec__DisplayClass33_0:\u003CMapsAnyInheritedProperties\u003Eb__1(System.Data.Entity.ModelConfiguration.Utilities.EdmPropertyPath):bool:this (FullOpts)","Category":"improvement","Description":"368 -\u003E 286 bytes (-82)","ExtraInfo":null,"Diff":"@@ -9,37 \u002B9,35 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3.50)     ref  -\u003E  r15         this class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u002B\u003C\u003Ec__DisplayClass33_0\u003E\n-;  V01 arg1         [V01,T00] (  6,  5   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Utilities.EdmPropertyPath\u003E\n\u002B;  V01 arg1         [V01,T00] (  5,  4.50)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Utilities.EdmPropertyPath\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V03 tmp1         [V03,T03] (  2,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n-;  V04 tmp2         [V04,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n\u002B;  V04 tmp2         [V04,T04] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n ;* V05 tmp3         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n-;  V06 tmp4         [V06    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V06 tmp4         [V06    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V07 tmp5         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V08 tmp6         [V08,T07] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmProperty\u003E\n-;  V09 tmp7         [V09,T04] (  4,  3   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n-;  V10 tmp8         [V10,T09] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n-;  V11 tmp9         [V11    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V08 tmp6         [V08,T05] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmProperty\u003E\n\u002B;* V09 tmp7         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n\u002B;  V10 tmp8         [V10,T06] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n\u002B;  V11 tmp9         [V11    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V12 tmp10        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V13 tmp11        [V13,T10] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmProperty\u003E\n-;  V14 tmp12        [V14,T06] (  4,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n\u002B;  V13 tmp11        [V13,T07] (  2,  1   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmProperty\u003E\n\u002B;* V14 tmp12        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n ;* V15 tmp13        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmProperty\u003E\n ;  V16 tmp14        [V16,T01] (  3,  6   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n-;  V17 cse0         [V17,T05] (  3,  2.50)     ref  -\u003E  r13         \u0022CSE #01: moderate\u0022\n ;\n-; Lcl frame size = 16\n\u002B; Lcl frame size = 24\n \n G_M44832_IG01:\n        push     rbp\n        push     r15\n        push     r14\n-       push     r13\n        push     rbx\n-       sub      rsp, 16\n\u002B       sub      rsp, 24\n        lea      rbp, [rsp\u002B0x30]\n        mov      r15, rdi\n        mov      rbx, rsi\n-\t\t\t\t\t\t;; size=23 bbWeight=1 PerfScore 6.25\n\u002B\t\t\t\t\t\t;; size=21 bbWeight=1 PerfScore 5.25\n G_M44832_IG02:\n        mov      rdi, gword ptr [r15\u002B0x10]\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.ModelConfiguration.Edm.EntityTypeExtensions:GetRootType(System.Data.Entity.Core.Metadata.Edm.EntityType):System.Data.Entity.Core.Metadata.Edm.EntityType\n@@ -50,54 \u002B48,34 @@ G_M44832_IG02:\n        call     [rax\u002B0x38]System.Data.Entity.Core.Metadata.Edm.EntityTypeBase:get_KeyProperties():System.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]:this\n        mov      r14, rax\n        test     rbx, rbx\n-       je       G_M44832_IG12\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r13, rax\n-       mov      rdi, r13\n-       test     rdi, rdi\n-       je       SHORT G_M44832_IG04\n-\t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 19.50\n-G_M44832_IG03:\n-       lea      rsi, [rbp-0x28]\n-       mov      rax, qword ptr [rdi]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M44832_IG05\n-\t\t\t\t\t\t;; size=16 bbWeight=0.50 PerfScore 4.75\n-G_M44832_IG04:\n-       lea      rdx, [rbp-0x28]\n\u002B       je       G_M44832_IG07\n\u002B       lea      rdx, [rbp-0x20]\n        mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.EdmProperty](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty],byref):System.Data.Entity.Core.Metadata.Edm.EdmProperty\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M44832_IG05:\n-       cmp      byte  ptr [rbp-0x28], 0\n-       je       G_M44832_IG13\n        mov      rdx, rax\n\u002B       cmp      byte  ptr [rbp-0x20], 0\n\u002B       je       G_M44832_IG08\n        mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:Contains[System.Data.Entity.Core.Metadata.Edm.EdmProperty](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty],System.Data.Entity.Core.Metadata.Edm.EdmProperty):bool\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:Contains[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.__Canon):bool\n        call     [rax]System.Linq.Enumerable:Contains[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.__Canon):bool\n        test     eax, eax\n-       je       SHORT G_M44832_IG08\n-\t\t\t\t\t\t;; size=42 bbWeight=1 PerfScore 7.25\n-G_M44832_IG06:\n\u002B       je       SHORT G_M44832_IG05\n\u002B\t\t\t\t\t\t;; size=112 bbWeight=1 PerfScore 25.50\n\u002BG_M44832_IG03:\n        xor      eax, eax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M44832_IG07:\n-       add      rsp, 16\n\u002BG_M44832_IG04:\n\u002B       add      rsp, 24\n        pop      rbx\n-       pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 1.88\n-G_M44832_IG08:\n\u002B\t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 1.62\n\u002BG_M44832_IG05:\n        mov      rdi, gword ptr [r15\u002B0x10]\n        mov      rdi, gword ptr [rdi\u002B0x48]\n        mov      rsi, 0xD1FFAB1E      ; System.Data.Entity.Core.Metadata.Edm.MemberCollection:GetDeclaredOnlyMembers[System.Data.Entity.Core.Metadata.Edm.EdmProperty]():System.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]:this\n@@ -105,53 \u002B83,40 @@ G_M44832_IG08:\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.Data.Entity.Core.Metadata.Edm.MemberCollection:GetDeclaredOnlyMembers[System.__Canon]():System.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.__Canon]:this\n        mov      r15, rax\n-       mov      rdi, r13\n-       test     rdi, rdi\n-       je       SHORT G_M44832_IG09\n-       lea      rsi, [rbp-0x30]\n-       mov      rax, qword ptr [rdi]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M44832_IG10\n-\t\t\t\t\t\t;; size=59 bbWeight=0.50 PerfScore 10.38\n-G_M44832_IG09:\n-       lea      rdx, [rbp-0x30]\n\u002B       lea      rdx, [rbp-0x28]\n        mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.EdmProperty](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty],byref):System.Data.Entity.Core.Metadata.Edm.EdmProperty\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M44832_IG10:\n-       cmp      byte  ptr [rbp-0x30], 0\n-       je       SHORT G_M44832_IG13\n-       mov      rdi, gword ptr [r15\u002B0x08]\n        mov      rsi, rax\n\u002B       cmp      byte  ptr [rbp-0x28], 0\n\u002B       je       SHORT G_M44832_IG08\n\u002B       mov      rdi, gword ptr [r15\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:Contains(System.__Canon):bool:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:Contains(System.__Canon):bool:this\n        test     eax, eax\n        sete     al\n        movzx    rax, al\n-\t\t\t\t\t\t;; size=34 bbWeight=0.50 PerfScore 4.25\n-G_M44832_IG11:\n-       add      rsp, 16\n\u002B\t\t\t\t\t\t;; size=98 bbWeight=0.50 PerfScore 11.25\n\u002BG_M44832_IG06:\n\u002B       add      rsp, 24\n        pop      rbx\n-       pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 1.88\n-G_M44832_IG12:\n\u002B\t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 1.62\n\u002BG_M44832_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M44832_IG13:\n\u002BG_M44832_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 368, prolog size 17, PerfScore 60.50, instruction count 97, allocated bytes for code 368 (MethodHash=cb5550df) for method System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u002B\u003C\u003Ec__DisplayClass33_0:\u003CMapsAnyInheritedProperties\u003Eb__1(System.Data.Entity.ModelConfiguration.Utilities.EdmPropertyPath):bool:this (FullOpts)\n\u002B; Total bytes of code 286, prolog size 15, PerfScore 45.38, instruction count 73, allocated bytes for code 286 (MethodHash=cb5550df) for method System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u002B\u003C\u003Ec__DisplayClass33_0:\u003CMapsAnyInheritedProperties\u003Eb__1(System.Data.Entity.ModelConfiguration.Utilities.EdmPropertyPath):bool:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":368,"DiffBytes":286},{"Assembly":"MathNet.Numerics.dasm","Method":"MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:SameAs[byte](MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this (FullOpts)","Category":"improvement","Description":"594 -\u003E 120 bytes (-474)","ExtraInfo":null,"Diff":"@@ -1,214 \u002B1,65 @@\n ; Assembly listing for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:SameAs[byte](MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n-; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data\n\u002B; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 12,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]\u003E\n-;  V01 arg1         [V01,T03] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]\u003E\n-;  V02 arg2         [V02,T01] ( 11,  6.50)     int  -\u003E  r15         single-def\n-;  V03 arg3         [V03,T02] ( 11,  6.50)     int  -\u003E  r14         single-def\n-;  V04 arg4         [V04,T04] (  3,  2.50)   ubyte  -\u003E  r13         single-def\n-;  V05 loc0         [V05,T08] (  4,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]\u003E\n\u002B;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]\u003E\n\u002B;  V01 arg1         [V01,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[byte]\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  4   )     int  -\u003E  r15         single-def\n\u002B;  V03 arg3         [V03,T04] (  4,  4   )     int  -\u003E  r14         single-def\n\u002B;* V04 arg4         [V04    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def\n\u002B;* V05 loc0         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[byte]\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]\u003E\n\u002B;  V07 tmp1         [V07,T00] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cshort[]\u003E\n-;  V09 tmp3         [V09,T06] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[short]\u003E\n-;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cshort[]\u003E\n-;  V11 tmp5         [V11,T11] (  2,  1   )     int  -\u003E  rsi         \u0022Inline return value spill temp\u0022\n-;  V12 tmp6         [V12,T09] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]\u003E\n-;  V13 tmp7         [V13,T10] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]\u003E\n-;  V14 tmp8         [V14,T07] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]\u003E\n-;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cshort[]\u003E\n-;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022Single return block return value\u0022\n ;\n ; Lcl frame size = 8\n \n G_M42780_IG01:\n-       push     rbp\n        push     r15\n        push     r14\n        push     r13\n-       push     r12\n        push     rbx\n        push     rax\n-       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n        mov      r15d, edx\n        mov      r14d, ecx\n-       mov      r13d, r8d\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.75\n G_M42780_IG02:\n-       mov      r12, gword ptr [rsi\u002B0x08]\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M42780_IG11\n-\t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 7.00\n-G_M42780_IG03:\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[short]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M42780_IG07\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      SHORT G_M42780_IG05\n\u002B       cmp      byte  ptr [rsi], sil\n        mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        mov      rdi, r13\n        mov      esi, r15d\n        mov      edx, r14d\n        mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]:.ctor(int,int):this\n        call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]:.ctor(int,int):this\n        imul     r15d, r14d\n        movsxd   rsi, r15d\n        mov      rdi, 0xD1FFAB1E      ; short[]\n        call     CORINFO_HELP_NEWARR_1_VC\n        mov      rsi, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, rbx\n        mov      rsi, r13\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=150 bbWeight=0.50 PerfScore 12.62\n-G_M42780_IG04:\n\u002B\t\t\t\t\t\t;; size=89 bbWeight=1 PerfScore 17.25\n\u002BG_M42780_IG03:\n        add      rsp, 8\n        pop      rbx\n-       pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n-       pop      rbp\n        tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M42780_IG05:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 5.00\n-G_M42780_IG06:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M42780_IG07:\n-       test     r13b, r13b\n-       je       SHORT G_M42780_IG09\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 5.62\n-G_M42780_IG08:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M42780_IG09:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[short]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]:.ctor(int,int):this\n-       cmp      r15d, r14d\n-       mov      esi, r14d\n-       cmovle   esi, r15d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; short[]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 7.12\n-G_M42780_IG10:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x10]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:Diagonal(MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[short]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M42780_IG11:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]:.ctor(int,int):this\n-       mov      esi, r15d\n-       imul     esi, r14d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; short[]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=89 bbWeight=0.50 PerfScore 7.75\n-G_M42780_IG12:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n\u002B\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 594, prolog size 16, PerfScore 66.75, instruction count 157, allocated bytes for code 594 (MethodHash=b06058e3) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:SameAs[byte](MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this (FullOpts)\n\u002B; Total bytes of code 120, prolog size 8, PerfScore 27.25, instruction count 34, allocated bytes for code 120 (MethodHash=b06058e3) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:SameAs[byte](MathNet.Numerics.LinearAlgebra.Matrix\u00601[byte],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":594,"DiffBytes":120},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:Aggregate[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],double]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[double]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[double]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[double]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[double]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[double]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V69 tmp59        [V69,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n        test     r12, r12\n-       je       SHORT G_M18391_IG26\n\u002B       je       SHORT G_M18391_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M18391_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M18391_IG26:\n\u002BG_M18391_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M18391_IG27:\n\u002BG_M18391_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M18391_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M18391_IG28:\n\u002BG_M18391_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M18391_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M18391_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M18391_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M18391_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M18391_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M18391_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M18391_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M18391_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M18391_IG31\n\u002B       je       SHORT G_M18391_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M18391_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M18391_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M18391_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M18391_IG32\n\u002B       je       SHORT G_M18391_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M18391_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M18391_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M18391_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M18391_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateAggregateToCollectionResultCursor[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[double],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[double]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M18391_IG33:\n\u002BG_M18391_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M18391_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M18391_IG34:\n\u002BG_M18391_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M18391_IG35:\n\u002BG_M18391_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M18391_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M18391_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M18391_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M18391_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M18391_IG37\n\u002B       je       SHORT G_M18391_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M18391_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M18391_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M18391_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M18391_IG38\n\u002B       je       SHORT G_M18391_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M18391_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M18391_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M18391_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M18391_IG39:\n\u002BG_M18391_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M18391_IG40:\n\u002BG_M18391_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M18391_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M18391_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M18391_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M18391_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M18391_IG42\n\u002B       je       SHORT G_M18391_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M18391_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M18391_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M18391_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M18391_IG43\n\u002B       je       SHORT G_M18391_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M18391_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M18391_IG43:\n\u002BG_M18391_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M18391_IG44:\n\u002BG_M18391_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=d054b828) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:Aggregate[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=d054b828) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:Aggregate[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.PricingPlanService:ListAutoPaging(Stripe.V2.Billing.PricingPlanListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.PricingPlan]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.Billing.PricingPlanService:ListAutoPaging(Stripe.V2.Billing.PricingPlanListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.PricingPlan]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.PricingPlanService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.PricingPlanListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.PricingPlanListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.PricingPlan]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.PricingPlan]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.PricingPlan]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.PricingPlan]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.PricingPlan]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.PricingPlan]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.PricingPlan]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.PricingPlan]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.PricingPlan]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M55205_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M55205_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/billing/pricing_plans\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M55205_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M55205_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.PricingPlan]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.PricingPlan]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M55205_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M55205_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.PricingPlan]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.PricingPlan]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M55205_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M55205_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=284d285a) for method Stripe.V2.Billing.PricingPlanService:ListAutoPaging(Stripe.V2.Billing.PricingPlanListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.PricingPlan]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=284d285a) for method Stripe.V2.Billing.PricingPlanService:ListAutoPaging(Stripe.V2.Billing.PricingPlanListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.PricingPlan]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.Internal.DistributedLockHelpers:UpgradeToWriteLock(Medallion.Threading.IDistributedLockUpgradeableHandle,System.Nullable\u00601[System.TimeSpan],System.Threading.CancellationToken) (FullOpts)","Category":"same-size","Description":"839 -\u003E 839 bytes (0)","ExtraInfo":null,"Diff":"@@ -169,7 \u002B169,7 @@ G_M48737_IG07:\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n-       add      rax, 70\n\u002B       add      rax, 68\n        mov      rbx, rax\n        movzx    rcx, byte  ptr [rbx\u002B0x10]\n        mov      dword ptr [rbp-0x2C], ecx\n@@ -314,7 \u002B314,7 @@ G_M48737_IG21:\n        sub      rsp, 40\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n G_M48737_IG22:\n-       mov      edi, 70\n\u002B       mov      edi, 68\n        call     CORINFO_HELP_GETDYNAMIC_NONGCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED2\n        mov      rbx, rax\n        mov      eax, dword ptr [rbp-0x2C]","Truncated":true,"BaseBytes":839,"DiffBytes":839},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Common.Utils.Boolean.Simplifier\u00601[System.Nullable\u00601[int]]:SimplifyTree(System.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[System.Nullable\u00601[int]]):System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]]:this (FullOpts)","Category":"improvement","Description":"2,002 -\u003E 1,931 bytes (-71)","ExtraInfo":null,"Diff":"@@ -8,69 \u002B8,69 @@\n ; 0 inlinees with PGO data; 66 single block inlinees; 11 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T23] (  3,  6   )     ref  -\u003E  r15         this class-hnd single-def \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.Simplifier\u00601[System.Nullable\u00601[int]]\u003E\n-;  V01 arg1         [V01,T12] (  9, 12   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[System.Nullable\u00601[int]]\u003E\n-;  V02 loc0         [V02,T29] (  6,  6.50)   ubyte  -\u003E  r13         single-def\n\u002B;  V00 this         [V00,T22] (  3,  6   )     ref  -\u003E  r15         this class-hnd single-def \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.Simplifier\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V01 arg1         [V01,T11] (  9, 12   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V02 loc0         [V02,T28] (  6,  6.50)   ubyte  -\u003E  r13         single-def\n ;  V03 loc1         [V03,T09] ( 10, 17   )     ref  -\u003E  r12         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]]]\u003E\n-;  V04 loc2         [V04,T27] (  4,  7.50)     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]],bool]\u003E\n-;  V05 loc3         [V05,T13] (  9, 14   )     ref  -\u003E  r15         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]]]\u003E\n\u002B;  V04 loc2         [V04,T26] (  4,  7.50)     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]],bool]\u003E\n\u002B;  V05 loc3         [V05,T12] (  9, 14   )     ref  -\u003E  r15         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]]]\u003E\n ;  V06 loc4         [V06,T01] ( 17, 42.50)     ref  -\u003E  rbx         class-hnd exact \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]]]\u003E\n ;  V07 loc5         [V07    ] (  7, 13   )  struct (24) [rbp-0x40]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Collections.Generic.HashSet\u00601\u002BEnumerator[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]]]\u003E\n ;  V08 loc6         [V08,T08] (  6, 18   )     ref  -\u003E  [rbp-0x70]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]]\u003E\n ;* V09 loc7         [V09    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]]]\u003E\n ;* V10 loc8         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]]\u003E\n ;* V11 loc9         [V11    ] (  0,  0   )     int  -\u003E  zero-ref   \n-;  V12 loc10        [V12,T53] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V12 loc10        [V12,T52] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]]\u003E\n ;* V13 loc11        [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]]\u003E\n ;  V14 loc12        [V14    ] (  7, 10.50)  struct (24) [rbp-0x58]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Collections.Generic.Dictionary\u00602\u002BKeyCollection\u002BEnumerator[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]],bool]\u003E\n-;  V15 loc13        [V15,T16] (  3, 12   )     ref  -\u003E  rdi         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]]\u003E\n-;  V16 loc14        [V16,T54] (  3,  1.50)     ref  -\u003E  r15         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V15 loc13        [V15,T15] (  3, 12   )     ref  -\u003E  rdi         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V16 loc14        [V16,T53] (  3,  1.50)     ref  -\u003E  r15         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[System.Nullable\u00601[int]]\u003E\n ;# V17 OutArgs      [V17    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V18 tmp1         [V18,T30] (  3,  6   )     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]]]\u003E\n\u002B;  V18 tmp1         [V18,T29] (  3,  6   )     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]]]\u003E\n ;  V19 tmp2         [V19,T04] (  3, 24   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]]\u003E\n ;* V20 tmp3         [V20    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022non-inline candidate call\u0022\n-;  V21 tmp4         [V21,T31] (  3,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]],bool]\u003E\n-;  V22 tmp5         [V22,T32] (  3,  6   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]]]\u003E\n-;  V23 tmp6         [V23,T44] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]]]\u003E\n-;  V24 tmp7         [V24,T41] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.OrExpr\u00601[System.Nullable\u00601[int]]\u003E\n-;  V25 tmp8         [V25,T42] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.AndExpr\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V21 tmp4         [V21,T30] (  3,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]],bool]\u003E\n\u002B;  V22 tmp5         [V22,T31] (  3,  6   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]]]\u003E\n\u002B;  V23 tmp6         [V23,T43] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]]]\u003E\n\u002B;  V24 tmp7         [V24,T39] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.OrExpr\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V25 tmp8         [V25,T40] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.AndExpr\u00601[System.Nullable\u00601[int]]\u003E\n ;* V26 tmp9         [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]]]\u003E\n-;  V27 tmp10        [V27,T33] (  3,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.__Canon]\u003E\n\u002B;  V27 tmp10        [V27,T32] (  3,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.__Canon]\u003E\n ;* V28 tmp11        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]]]\u003E\n-;  V29 tmp12        [V29,T34] (  3,  6   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.__Canon]\u003E\n\u002B;  V29 tmp12        [V29,T33] (  3,  6   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.__Canon]\u003E\n ;* V30 tmp13        [V30    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.HashSet\u00601\u002BEnumerator[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]]]\u003E\n ;* V31 tmp14        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[System.Nullable\u00601[int]]\u003E\n-;  V32 tmp15        [V32,T35] (  3,  6   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]][]\u003E\n... diff truncated; middle omitted ...\n        mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.EqualityComparer\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]]]:\u003CDefault\u003Ek__BackingField\n@@ -501,7 \u002B501,7 @@ G_M59650_IG31:\n        mov      r14, rax\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M59650_IG56\n\u002B       je       G_M59650_IG54\n \t\t\t\t\t\t;; size=55 bbWeight=0.50 PerfScore 3.12\n G_M59650_IG32:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.EqualityComparer\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]]]:\u003CDefault\u003Ek__BackingField\n@@ -533,7 \u002B533,7 @@ G_M59650_IG33:\n G_M59650_IG34:\n        mov      rax, gword ptr [rbx\u002B0x08]\n        cmp      dword ptr [rax\u002B0x08], 0\n-       jbe      G_M59650_IG58\n\u002B       jbe      G_M59650_IG56\n        mov      rax, gword ptr [rax\u002B0x10]\n        jmp      G_M59650_IG44\n \t\t\t\t\t\t;; size=23 bbWeight=0.50 PerfScore 4.50\n@@ -547,7 \u002B547,7 @@ G_M59650_IG35:\n G_M59650_IG36:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M59650_IG55\n\u002B       je       G_M59650_IG53\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n G_M59650_IG37:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Data.Entity.Core.Common.Utils.Boolean.TrueExpr\u00601[System.Nullable\u00601[int]]:_value\n@@ -575,14 \u002B575,14 @@ G_M59650_IG41:\n G_M59650_IG42:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M59650_IG52\n\u002B       je       G_M59650_IG50\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n G_M59650_IG43:\n        mov      rax, 0xD1FFAB1E      ; data for System.Data.Entity.Core.Common.Utils.Boolean.TrueExpr\u00601[System.Nullable\u00601[int]]:_value\n        mov      rax, gword ptr [rax]\n \t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 1.12\n G_M59650_IG44:\n-       add      rsp, 120\n\u002B       add      rsp, 104\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -592,101 \u002B592,83 @@ G_M59650_IG44:\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n G_M59650_IG45:\n-       mov      rax, gword ptr [rbp-0x90]\n-       mov      rsi, rax\n\u002B       mov      rax, gword ptr [rbp-0x88]\n\u002B       mov      rdx, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Common.Utils.Boolean.NotExpr\u00601[System.Nullable\u00601[int]]\n-       cmp      qword ptr [rsi], rdi\n-       jne      G_M59650_IG49\n-\t\t\t\t\t\t;; size=29 bbWeight=1 PerfScore 4.50\n\u002B       cmp      qword ptr [rdx], rdi\n\u002B       jne      SHORT G_M59650_IG47\n\u002B\t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 4.50\n G_M59650_IG46:\n-       mov      rax, gword ptr [rsi\u002B0x08]\n-       mov      gword ptr [rbp-0x88], rax\n-       test     rax, rax\n-       je       G_M59650_IG50\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]]]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M59650_IG47\n-       lea      rsi, [rbp-0x60]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M59650_IG48\n-\t\t\t\t\t\t;; size=69 bbWeight=2 PerfScore 38.00\n-G_M59650_IG47:\n\u002B       mov      rsi, gword ptr [rdx\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M59650_IG48\n        lea      rdx, [rbp-0x60]\n-       mov      rsi, gword ptr [rbp-0x88]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]]](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]]],byref):System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=2 PerfScore 10.00\n-G_M59650_IG48:\n-       cmp      byte  ptr [rbp-0x60], 0\n-       je       SHORT G_M59650_IG51\n-       mov      rdi, r14\n        mov      rsi, rax\n\u002B       cmp      byte  ptr [rbp-0x60], 0\n\u002B       je       SHORT G_M59650_IG49\n\u002B       mov      rdi, r14\n        mov      edx, 1\n        mov      ecx, 1\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary\u00602[System.__Canon,bool]:TryInsert(System.__Canon,bool,byte):bool:this\n        call     [rax]System.Collections.Generic.Dictionary\u00602[System.__Canon,bool]:TryInsert(System.__Canon,bool,byte):bool:this\n        jmp      G_M59650_IG14\n-\t\t\t\t\t\t;; size=39 bbWeight=2 PerfScore 16.50\n-G_M59650_IG49:\n\u002B\t\t\t\t\t\t;; size=74 bbWeight=2 PerfScore 31.00\n\u002BG_M59650_IG47:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rax]CORINFO_HELP_CHKCASTCLASS\n        int3     \n \t\t\t\t\t\t;; size=16 bbWeight=0 PerfScore 0.00\n-G_M59650_IG50:\n\u002BG_M59650_IG48:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M59650_IG51:\n\u002BG_M59650_IG49:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M59650_IG52:\n\u002BG_M59650_IG50:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Common.Utils.Boolean.TrueExpr\u00601[System.Nullable\u00601[int]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M59650_IG43\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M59650_IG53:\n\u002BG_M59650_IG51:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M59650_IG54:\n\u002BG_M59650_IG52:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M59650_IG17\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M59650_IG55:\n\u002BG_M59650_IG53:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Common.Utils.Boolean.TrueExpr\u00601[System.Nullable\u00601[int]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M59650_IG37\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M59650_IG56:\n\u002BG_M59650_IG54:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.EqualityComparer\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M59650_IG32\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M59650_IG57:\n\u002BG_M59650_IG55:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.EqualityComparer\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M59650_IG30\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M59650_IG58:\n\u002BG_M59650_IG56:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n@@ -697,5 \u002B679,5 @@ RWD00  \tdd\tG_M59650_IG45 - G_M59650_IG02\n        \tdd\tG_M59650_IG39 - G_M59650_IG02\n \n \n-; Total bytes of code 2002, prolog size 43, PerfScore 854.58, instruction count 438, allocated bytes for code 2002 (MethodHash=775616fd) for method System.Data.Entity.Core.Common.Utils.Boolean.Simplifier\u00601[System.Nullable\u00601[int]]:SimplifyTree(System.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[System.Nullable\u00601[int]]):System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n\u002B; Total bytes of code 1931, prolog size 43, PerfScore 821.08, instruction count 424, allocated bytes for code 1931 (MethodHash=775616fd) for method System.Data.Entity.Core.Common.Utils.Boolean.Simplifier\u00601[System.Nullable\u00601[int]]:SimplifyTree(System.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[System.Nullable\u00601[int]]):System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":2002,"DiffBytes":1931},{"Assembly":"MathNet.Numerics.dasm","Method":"MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:SameAs[double](MathNet.Numerics.LinearAlgebra.Matrix\u00601[double],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this (FullOpts)","Category":"improvement","Description":"594 -\u003E 120 bytes (-474)","ExtraInfo":null,"Diff":"@@ -1,214 \u002B1,65 @@\n ; Assembly listing for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:SameAs[double](MathNet.Numerics.LinearAlgebra.Matrix\u00601[double],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n-; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data\n\u002B; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 12,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]\u003E\n-;  V01 arg1         [V01,T03] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[double]\u003E\n-;  V02 arg2         [V02,T01] ( 11,  6.50)     int  -\u003E  r15         single-def\n-;  V03 arg3         [V03,T02] ( 11,  6.50)     int  -\u003E  r14         single-def\n-;  V04 arg4         [V04,T04] (  3,  2.50)   ubyte  -\u003E  r13         single-def\n-;  V05 loc0         [V05,T08] (  4,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]\u003E\n\u002B;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]\u003E\n\u002B;  V01 arg1         [V01,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[double]\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  4   )     int  -\u003E  r15         single-def\n\u002B;  V03 arg3         [V03,T04] (  4,  4   )     int  -\u003E  r14         single-def\n\u002B;* V04 arg4         [V04    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def\n\u002B;* V05 loc0         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[double]\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]\u003E\n\u002B;  V07 tmp1         [V07,T00] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cshort[]\u003E\n-;  V09 tmp3         [V09,T06] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[short]\u003E\n-;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cshort[]\u003E\n-;  V11 tmp5         [V11,T11] (  2,  1   )     int  -\u003E  rsi         \u0022Inline return value spill temp\u0022\n-;  V12 tmp6         [V12,T09] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]\u003E\n-;  V13 tmp7         [V13,T10] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]\u003E\n-;  V14 tmp8         [V14,T07] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]\u003E\n-;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cshort[]\u003E\n-;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022Single return block return value\u0022\n ;\n ; Lcl frame size = 8\n \n G_M59612_IG01:\n-       push     rbp\n        push     r15\n        push     r14\n        push     r13\n-       push     r12\n        push     rbx\n        push     rax\n-       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n        mov      r15d, edx\n        mov      r14d, ecx\n-       mov      r13d, r8d\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.75\n G_M59612_IG02:\n-       mov      r12, gword ptr [rsi\u002B0x08]\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M59612_IG11\n-\t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 7.00\n-G_M59612_IG03:\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[short]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M59612_IG07\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      SHORT G_M59612_IG05\n\u002B       cmp      byte  ptr [rsi], sil\n        mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        mov      rdi, r13\n        mov      esi, r15d\n        mov      edx, r14d\n        mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]:.ctor(int,int):this\n        call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]:.ctor(int,int):this\n        imul     r15d, r14d\n        movsxd   rsi, r15d\n        mov      rdi, 0xD1FFAB1E      ; short[]\n        call     CORINFO_HELP_NEWARR_1_VC\n        mov      rsi, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, rbx\n        mov      rsi, r13\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=150 bbWeight=0.50 PerfScore 12.62\n-G_M59612_IG04:\n\u002B\t\t\t\t\t\t;; size=89 bbWeight=1 PerfScore 17.25\n\u002BG_M59612_IG03:\n        add      rsp, 8\n        pop      rbx\n-       pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n-       pop      rbp\n        tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M59612_IG05:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 5.00\n-G_M59612_IG06:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M59612_IG07:\n-       test     r13b, r13b\n-       je       SHORT G_M59612_IG09\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 5.62\n-G_M59612_IG08:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M59612_IG09:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[short]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]:.ctor(int,int):this\n-       cmp      r15d, r14d\n-       mov      esi, r14d\n-       cmovle   esi, r15d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; short[]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 7.12\n-G_M59612_IG10:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x10]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:Diagonal(MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[short]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M59612_IG11:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]:.ctor(int,int):this\n-       mov      esi, r15d\n-       imul     esi, r14d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; short[]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=89 bbWeight=0.50 PerfScore 7.75\n-G_M59612_IG12:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n\u002B\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 594, prolog size 16, PerfScore 66.75, instruction count 157, allocated bytes for code 594 (MethodHash=fda51723) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:SameAs[double](MathNet.Numerics.LinearAlgebra.Matrix\u00601[double],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this (FullOpts)\n\u002B; Total bytes of code 120, prolog size 8, PerfScore 27.25, instruction count 34, allocated bytes for code 120 (MethodHash=fda51723) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:SameAs[double](MathNet.Numerics.LinearAlgebra.Matrix\u00601[double],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":594,"DiffBytes":120},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:Aggregate[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],int]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[int]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[int]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[int]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[int]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[int]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V69 tmp59        [V69,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M62449_IG26\n\u002B       je       SHORT G_M62449_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M62449_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M62449_IG26:\n\u002BG_M62449_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M62449_IG27:\n\u002BG_M62449_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M62449_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M62449_IG28:\n\u002BG_M62449_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M62449_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M62449_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M62449_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M62449_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M62449_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M62449_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M62449_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M62449_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M62449_IG31\n\u002B       je       SHORT G_M62449_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M62449_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M62449_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M62449_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M62449_IG32\n\u002B       je       SHORT G_M62449_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M62449_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M62449_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M62449_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M62449_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateAggregateToCollectionResultCursor[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[int],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[int]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M62449_IG33:\n\u002BG_M62449_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M62449_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M62449_IG34:\n\u002BG_M62449_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M62449_IG35:\n\u002BG_M62449_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M62449_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M62449_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M62449_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M62449_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M62449_IG37\n\u002B       je       SHORT G_M62449_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M62449_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M62449_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M62449_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M62449_IG38\n\u002B       je       SHORT G_M62449_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M62449_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M62449_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M62449_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M62449_IG39:\n\u002BG_M62449_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M62449_IG40:\n\u002BG_M62449_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M62449_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M62449_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M62449_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M62449_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M62449_IG42\n\u002B       je       SHORT G_M62449_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M62449_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M62449_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M62449_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M62449_IG43\n\u002B       je       SHORT G_M62449_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M62449_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M62449_IG43:\n\u002BG_M62449_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M62449_IG44:\n\u002BG_M62449_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=41100c0e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:Aggregate[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=41100c0e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:Aggregate[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.PricingPlanSubscriptionService:ListAutoPaging(Stripe.V2.Billing.PricingPlanSubscriptionListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.PricingPlanSubscription]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.Billing.PricingPlanSubscriptionService:ListAutoPaging(Stripe.V2.Billing.PricingPlanSubscriptionListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.PricingPlanSubscription]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.PricingPlanSubscriptionService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.PricingPlanSubscriptionListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.PricingPlanSubscriptionListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.PricingPlanSubscription]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.PricingPlanSubscription]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.PricingPlanSubscription]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.PricingPlanSubscription]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.PricingPlanSubscription]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.PricingPlanSubscription]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.PricingPlanSubscription]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.PricingPlanSubscription]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.PricingPlanSubscription]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M29894_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M29894_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/billing/pricing_plan_subscriptions\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M29894_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M29894_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.PricingPlanSubscription]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.PricingPlanSubscription]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M29894_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M29894_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.PricingPlanSubscription]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.PricingPlanSubscription]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M29894_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M29894_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=ab438b39) for method Stripe.V2.Billing.PricingPlanSubscriptionService:ListAutoPaging(Stripe.V2.Billing.PricingPlanSubscriptionListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.PricingPlanSubscription]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=ab438b39) for method Stripe.V2.Billing.PricingPlanSubscriptionService:ListAutoPaging(Stripe.V2.Billing.PricingPlanSubscriptionListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.PricingPlanSubscription]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.Internal.SyncViaAsync:AwaitSyncOverAsync(System.Threading.Tasks.Task):System.Threading.Tasks.ValueTask (FullOpts)","Category":"same-size","Description":"152 -\u003E 152 bytes (0)","ExtraInfo":null,"Diff":"@@ -1,89 \u002B1,89 @@\n ; Assembly listing for method Medallion.Threading.Internal.SyncViaAsync:AwaitSyncOverAsync(System.Threading.Tasks.Task):System.Threading.Tasks.ValueTask (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 6 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 arg0         [V00,T00] (  6,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Threading.Tasks.Task\u003E\n ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u003CSystem.Runtime.CompilerServices.TaskAwaiter\u003E\n ;  V02 loc1         [V02,T03] (  2,  1   )  struct (16) [rbp-0x18]  do-not-enreg[SR] multireg-ret must-init ld-addr-op single-def \u003CSystem.Threading.Tasks.ValueTask\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V04 tmp1         [V04    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CSystem.Threading.Tasks.ValueTask\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.TaskAwaiter\u003E\n ;* V06 tmp3         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u003E\n ;* V07 tmp4         [V07    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.ValueTask\u003E\n ;* V08 tmp5         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V01.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;* V09 tmp6         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V05.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;* V10 tmp7         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V07._obj (fldOffset=0x0)\u0022 P-INDEP\n ;* V11 tmp8         [V11    ] (  0,  0   )   short  -\u003E  zero-ref    single-def \u0022field V07._token (fldOffset=0x8)\u0022 P-INDEP\n ;* V12 tmp9         [V12    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V07._continueOnCapturedContext (fldOffset=0xa)\u0022 P-INDEP\n ;  V13 rat0         [V13,T01] (  2,  4   )    long  -\u003E  rax         \u0022TLS field access\u0022\n ;  V14 rat1         [V14,T02] (  2,  4   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 24\n \n G_M7304_IG01:\n        push     rbp\n        push     rbx\n        sub      rsp, 24\n        lea      rbp, [rsp\u002B0x20]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x18], rax\n        mov      qword ptr [rbp-0x10], rax\n        mov      rbx, rdi\n \t\t\t\t\t\t;; size=24 bbWeight=1 PerfScore 5.25\n G_M7304_IG02:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        cmp      byte  ptr [rax\u002B0x10], 0\n        jne      SHORT G_M7304_IG05\n \t\t\t\t\t\t;; size=32 bbWeight=1 PerfScore 6.75\n G_M7304_IG03:\n        test     rbx, rbx\n        je       SHORT G_M7304_IG08\n        mov      edx, 0x10000\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 0.88\n G_M7304_IG04:\n        add      rsp, 24\n        pop      rbx\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n G_M7304_IG05:\n        mov      edi, dword ptr [rbx\u002B0x34]\n        and      edi, 0xD1FFAB1E\n        cmp      edi, 0xD1FFAB1E\n        je       SHORT G_M7304_IG06\n        mov      rdi, rbx\n        xor      esi, esi\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int)\n        call     [rax]System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int)\n \t\t\t\t\t\t;; size=34 bbWeight=0.50 PerfScore 3.62\n G_M7304_IG06:\n        vxorps   xmm0, xmm0, xmm0\n        vmovdqu  xmmword ptr [rbp-0x18], xmm0\n        mov      rax, gword ptr [rbp-0x18]\n        mov      rdx, qword ptr [rbp-0x10]\n \t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 1.67\n G_M7304_IG07:\n        add      rsp, 24\n        pop      rbx\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n G_M7304_IG08:\n        mov      edi, 9\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n ; Total bytes of code 152, prolog size 21, PerfScore 20.42, instruction count 42, allocated bytes for code 152 (MethodHash=ffd0e377) for method Medallion.Threading.Internal.SyncViaAsync:AwaitSyncOverAsync(System.Threading.Tasks.Task):System.Threading.Tasks.ValueTask (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":152,"DiffBytes":152},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Common.Utils.Boolean.Simplifier\u00601[System.Numerics.Vector\u00601[float]]:SimplifyTree(System.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[System.Numerics.Vector\u00601[float]]):System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)","Category":"improvement","Description":"2,002 -\u003E 1,931 bytes (-71)","ExtraInfo":null,"Diff":"@@ -8,69 \u002B8,69 @@\n ; 0 inlinees with PGO data; 66 single block inlinees; 11 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T23] (  3,  6   )     ref  -\u003E  r15         this class-hnd single-def \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.Simplifier\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V01 arg1         [V01,T12] (  9, 12   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V02 loc0         [V02,T29] (  6,  6.50)   ubyte  -\u003E  r13         single-def\n\u002B;  V00 this         [V00,T22] (  3,  6   )     ref  -\u003E  r15         this class-hnd single-def \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.Simplifier\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V01 arg1         [V01,T11] (  9, 12   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V02 loc0         [V02,T28] (  6,  6.50)   ubyte  -\u003E  r13         single-def\n ;  V03 loc1         [V03,T09] ( 10, 17   )     ref  -\u003E  r12         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]]]\u003E\n-;  V04 loc2         [V04,T27] (  4,  7.50)     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]],bool]\u003E\n-;  V05 loc3         [V05,T13] (  9, 14   )     ref  -\u003E  r15         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]]]\u003E\n\u002B;  V04 loc2         [V04,T26] (  4,  7.50)     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]],bool]\u003E\n\u002B;  V05 loc3         [V05,T12] (  9, 14   )     ref  -\u003E  r15         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]]]\u003E\n ;  V06 loc4         [V06,T01] ( 17, 42.50)     ref  -\u003E  rbx         class-hnd exact \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]]]\u003E\n ;  V07 loc5         [V07    ] (  7, 13   )  struct (24) [rbp-0x40]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Collections.Generic.HashSet\u00601\u002BEnumerator[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]]]\u003E\n ;  V08 loc6         [V08,T08] (  6, 18   )     ref  -\u003E  [rbp-0x70]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V09 loc7         [V09    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]]]\u003E\n ;* V10 loc8         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V11 loc9         [V11    ] (  0,  0   )     int  -\u003E  zero-ref   \n-;  V12 loc10        [V12,T53] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V12 loc10        [V12,T52] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V13 loc11        [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V14 loc12        [V14    ] (  7, 10.50)  struct (24) [rbp-0x58]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Collections.Generic.Dictionary\u00602\u002BKeyCollection\u002BEnumerator[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]],bool]\u003E\n-;  V15 loc13        [V15,T16] (  3, 12   )     ref  -\u003E  rdi         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V16 loc14        [V16,T54] (  3,  1.50)     ref  -\u003E  r15         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V15 loc13        [V15,T15] (  3, 12   )     ref  -\u003E  rdi         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V16 loc14        [V16,T53] (  3,  1.50)     ref  -\u003E  r15         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;# V17 OutArgs      [V17    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V18 tmp1         [V18,T30] (  3,  6   )     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]]]\u003E\n\u002B;  V18 tmp1         [V18,T29] (  3,  6   )     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]]]\u003E\n ;  V19 tmp2         [V19,T04] (  3, 24   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V20 tmp3         [V20    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022non-inline candidate call\u0022\n-;  V21 tmp4         [V21,T31] (  3,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]],bool]\u003E\n-;  V22 tmp5         [V22,T32] (  3,  6   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]]]\u003E\n-;  V23 tmp6         [V23,T44] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]]]\u003E\n-;  V24 tmp7         [V24,T41] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.OrExpr\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V25 tmp8         [V25,T42] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.AndExpr\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V21 tmp4         [V21,T30] (  3,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]],bool]\u003E\n\u002B;  V22 tmp5         [V22,T31] (  3,  6   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]]]\u003E\n\u002B;  V23 tmp6         [V23,T43] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]]]\u003E\n\u002B;  V24 tmp7         [V24,T39] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.OrExpr\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V25 tmp8         [V25,T40] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.AndExpr\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V26 tmp9         [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]]]\u003E\n-;  V27 tmp10        [V27,T33] (  3,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.__Canon]\u003E\n\u002B;  V27 tmp10        [V27,T32] (  3,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.__Canon]\u003E\n ;* V28 tmp11        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]]]\u003E\n-;  V29 tmp12        [V29,T34] (  3,  6   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.__Canon]\u003E\n\u002B;  V29 tmp12        [V29,T33] (  3,  6   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.__Canon]\u003E\n ;* V30 tmp13        [V30    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.HashSet\u00601\u002BEnumerator[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]]]\u003E\n... diff truncated; middle omitted ...\n@@ -501,7 \u002B501,7 @@ G_M25247_IG31:\n        mov      r14, rax\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M25247_IG56\n\u002B       je       G_M25247_IG54\n \t\t\t\t\t\t;; size=55 bbWeight=0.50 PerfScore 3.12\n G_M25247_IG32:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.EqualityComparer\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]]]:\u003CDefault\u003Ek__BackingField\n@@ -533,7 \u002B533,7 @@ G_M25247_IG33:\n G_M25247_IG34:\n        mov      rax, gword ptr [rbx\u002B0x08]\n        cmp      dword ptr [rax\u002B0x08], 0\n-       jbe      G_M25247_IG58\n\u002B       jbe      G_M25247_IG56\n        mov      rax, gword ptr [rax\u002B0x10]\n        jmp      G_M25247_IG44\n \t\t\t\t\t\t;; size=23 bbWeight=0.50 PerfScore 4.50\n@@ -547,7 \u002B547,7 @@ G_M25247_IG35:\n G_M25247_IG36:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M25247_IG55\n\u002B       je       G_M25247_IG53\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n G_M25247_IG37:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Data.Entity.Core.Common.Utils.Boolean.TrueExpr\u00601[System.Numerics.Vector\u00601[float]]:_value\n@@ -575,14 \u002B575,14 @@ G_M25247_IG41:\n G_M25247_IG42:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M25247_IG52\n\u002B       je       G_M25247_IG50\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n G_M25247_IG43:\n        mov      rax, 0xD1FFAB1E      ; data for System.Data.Entity.Core.Common.Utils.Boolean.TrueExpr\u00601[System.Numerics.Vector\u00601[float]]:_value\n        mov      rax, gword ptr [rax]\n \t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 1.12\n G_M25247_IG44:\n-       add      rsp, 120\n\u002B       add      rsp, 104\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -592,101 \u002B592,83 @@ G_M25247_IG44:\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n G_M25247_IG45:\n-       mov      rax, gword ptr [rbp-0x90]\n-       mov      rsi, rax\n\u002B       mov      rax, gword ptr [rbp-0x88]\n\u002B       mov      rdx, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Common.Utils.Boolean.NotExpr\u00601[System.Numerics.Vector\u00601[float]]\n-       cmp      qword ptr [rsi], rdi\n-       jne      G_M25247_IG49\n-\t\t\t\t\t\t;; size=29 bbWeight=1 PerfScore 4.50\n\u002B       cmp      qword ptr [rdx], rdi\n\u002B       jne      SHORT G_M25247_IG47\n\u002B\t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 4.50\n G_M25247_IG46:\n-       mov      rax, gword ptr [rsi\u002B0x08]\n-       mov      gword ptr [rbp-0x88], rax\n-       test     rax, rax\n-       je       G_M25247_IG50\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]]]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M25247_IG47\n-       lea      rsi, [rbp-0x60]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M25247_IG48\n-\t\t\t\t\t\t;; size=69 bbWeight=2 PerfScore 38.00\n-G_M25247_IG47:\n\u002B       mov      rsi, gword ptr [rdx\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M25247_IG48\n        lea      rdx, [rbp-0x60]\n-       mov      rsi, gword ptr [rbp-0x88]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]]](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]]],byref):System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=2 PerfScore 10.00\n-G_M25247_IG48:\n-       cmp      byte  ptr [rbp-0x60], 0\n-       je       SHORT G_M25247_IG51\n-       mov      rdi, r14\n        mov      rsi, rax\n\u002B       cmp      byte  ptr [rbp-0x60], 0\n\u002B       je       SHORT G_M25247_IG49\n\u002B       mov      rdi, r14\n        mov      edx, 1\n        mov      ecx, 1\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary\u00602[System.__Canon,bool]:TryInsert(System.__Canon,bool,byte):bool:this\n        call     [rax]System.Collections.Generic.Dictionary\u00602[System.__Canon,bool]:TryInsert(System.__Canon,bool,byte):bool:this\n        jmp      G_M25247_IG14\n-\t\t\t\t\t\t;; size=39 bbWeight=2 PerfScore 16.50\n-G_M25247_IG49:\n\u002B\t\t\t\t\t\t;; size=74 bbWeight=2 PerfScore 31.00\n\u002BG_M25247_IG47:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rax]CORINFO_HELP_CHKCASTCLASS\n        int3     \n \t\t\t\t\t\t;; size=16 bbWeight=0 PerfScore 0.00\n-G_M25247_IG50:\n\u002BG_M25247_IG48:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M25247_IG51:\n\u002BG_M25247_IG49:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M25247_IG52:\n\u002BG_M25247_IG50:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Common.Utils.Boolean.TrueExpr\u00601[System.Numerics.Vector\u00601[float]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M25247_IG43\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M25247_IG53:\n\u002BG_M25247_IG51:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M25247_IG54:\n\u002BG_M25247_IG52:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M25247_IG17\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M25247_IG55:\n\u002BG_M25247_IG53:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Common.Utils.Boolean.TrueExpr\u00601[System.Numerics.Vector\u00601[float]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M25247_IG37\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M25247_IG56:\n\u002BG_M25247_IG54:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.EqualityComparer\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M25247_IG32\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M25247_IG57:\n\u002BG_M25247_IG55:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.EqualityComparer\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M25247_IG30\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M25247_IG58:\n\u002BG_M25247_IG56:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n@@ -697,5 \u002B679,5 @@ RWD00  \tdd\tG_M25247_IG45 - G_M25247_IG02\n        \tdd\tG_M25247_IG39 - G_M25247_IG02\n \n \n-; Total bytes of code 2002, prolog size 43, PerfScore 854.58, instruction count 438, allocated bytes for code 2002 (MethodHash=41db9d60) for method System.Data.Entity.Core.Common.Utils.Boolean.Simplifier\u00601[System.Numerics.Vector\u00601[float]]:SimplifyTree(System.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[System.Numerics.Vector\u00601[float]]):System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n\u002B; Total bytes of code 1931, prolog size 43, PerfScore 821.08, instruction count 424, allocated bytes for code 1931 (MethodHash=41db9d60) for method System.Data.Entity.Core.Common.Utils.Boolean.Simplifier\u00601[System.Numerics.Vector\u00601[float]]:SimplifyTree(System.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[System.Numerics.Vector\u00601[float]]):System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":2002,"DiffBytes":1931},{"Assembly":"MathNet.Numerics.dasm","Method":"MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:SameAs[int](MathNet.Numerics.LinearAlgebra.Matrix\u00601[int],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this (FullOpts)","Category":"improvement","Description":"594 -\u003E 120 bytes (-474)","ExtraInfo":null,"Diff":"@@ -1,214 \u002B1,65 @@\n ; Assembly listing for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:SameAs[int](MathNet.Numerics.LinearAlgebra.Matrix\u00601[int],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n-; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data\n\u002B; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 12,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]\u003E\n-;  V01 arg1         [V01,T03] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[int]\u003E\n-;  V02 arg2         [V02,T01] ( 11,  6.50)     int  -\u003E  r15         single-def\n-;  V03 arg3         [V03,T02] ( 11,  6.50)     int  -\u003E  r14         single-def\n-;  V04 arg4         [V04,T04] (  3,  2.50)   ubyte  -\u003E  r13         single-def\n-;  V05 loc0         [V05,T08] (  4,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]\u003E\n\u002B;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]\u003E\n\u002B;  V01 arg1         [V01,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[int]\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  4   )     int  -\u003E  r15         single-def\n\u002B;  V03 arg3         [V03,T04] (  4,  4   )     int  -\u003E  r14         single-def\n\u002B;* V04 arg4         [V04    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def\n\u002B;* V05 loc0         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[int]\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]\u003E\n\u002B;  V07 tmp1         [V07,T00] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cshort[]\u003E\n-;  V09 tmp3         [V09,T06] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[short]\u003E\n-;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cshort[]\u003E\n-;  V11 tmp5         [V11,T11] (  2,  1   )     int  -\u003E  rsi         \u0022Inline return value spill temp\u0022\n-;  V12 tmp6         [V12,T09] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]\u003E\n-;  V13 tmp7         [V13,T10] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]\u003E\n-;  V14 tmp8         [V14,T07] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]\u003E\n-;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cshort[]\u003E\n-;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022Single return block return value\u0022\n ;\n ; Lcl frame size = 8\n \n G_M41340_IG01:\n-       push     rbp\n        push     r15\n        push     r14\n        push     r13\n-       push     r12\n        push     rbx\n        push     rax\n-       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n        mov      r15d, edx\n        mov      r14d, ecx\n-       mov      r13d, r8d\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.75\n G_M41340_IG02:\n-       mov      r12, gword ptr [rsi\u002B0x08]\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M41340_IG11\n-\t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 7.00\n-G_M41340_IG03:\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[short]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M41340_IG07\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      SHORT G_M41340_IG05\n\u002B       cmp      byte  ptr [rsi], sil\n        mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        mov      rdi, r13\n        mov      esi, r15d\n        mov      edx, r14d\n        mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]:.ctor(int,int):this\n        call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]:.ctor(int,int):this\n        imul     r15d, r14d\n        movsxd   rsi, r15d\n        mov      rdi, 0xD1FFAB1E      ; short[]\n        call     CORINFO_HELP_NEWARR_1_VC\n        mov      rsi, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, rbx\n        mov      rsi, r13\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=150 bbWeight=0.50 PerfScore 12.62\n-G_M41340_IG04:\n\u002B\t\t\t\t\t\t;; size=89 bbWeight=1 PerfScore 17.25\n\u002BG_M41340_IG03:\n        add      rsp, 8\n        pop      rbx\n-       pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n-       pop      rbp\n        tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M41340_IG05:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 5.00\n-G_M41340_IG06:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M41340_IG07:\n-       test     r13b, r13b\n-       je       SHORT G_M41340_IG09\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 5.62\n-G_M41340_IG08:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M41340_IG09:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[short]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]:.ctor(int,int):this\n-       cmp      r15d, r14d\n-       mov      esi, r14d\n-       cmovle   esi, r15d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; short[]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 7.12\n-G_M41340_IG10:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x10]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:Diagonal(MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[short]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M41340_IG11:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]:.ctor(int,int):this\n-       mov      esi, r15d\n-       imul     esi, r14d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; short[]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=89 bbWeight=0.50 PerfScore 7.75\n-G_M41340_IG12:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n\u002B\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 594, prolog size 16, PerfScore 66.75, instruction count 157, allocated bytes for code 594 (MethodHash=ce395e83) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:SameAs[int](MathNet.Numerics.LinearAlgebra.Matrix\u00601[int],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this (FullOpts)\n\u002B; Total bytes of code 120, prolog size 8, PerfScore 27.25, instruction count 34, allocated bytes for code 120 (MethodHash=ce395e83) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:SameAs[int](MathNet.Numerics.LinearAlgebra.Matrix\u00601[int],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":594,"DiffBytes":120},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:Aggregate[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],long]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[long]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[long]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[long]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[long]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[long]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V69 tmp59        [V69,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M57384_IG26\n\u002B       je       SHORT G_M57384_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M57384_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M57384_IG26:\n\u002BG_M57384_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M57384_IG27:\n\u002BG_M57384_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M57384_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M57384_IG28:\n\u002BG_M57384_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M57384_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M57384_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M57384_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M57384_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M57384_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M57384_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M57384_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M57384_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M57384_IG31\n\u002B       je       SHORT G_M57384_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M57384_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M57384_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M57384_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M57384_IG32\n\u002B       je       SHORT G_M57384_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M57384_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M57384_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M57384_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M57384_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateAggregateToCollectionResultCursor[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[long],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[long]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M57384_IG33:\n\u002BG_M57384_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M57384_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M57384_IG34:\n\u002BG_M57384_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M57384_IG35:\n\u002BG_M57384_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M57384_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M57384_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M57384_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M57384_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M57384_IG37\n\u002B       je       SHORT G_M57384_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M57384_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M57384_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M57384_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M57384_IG38\n\u002B       je       SHORT G_M57384_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M57384_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M57384_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M57384_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M57384_IG39:\n\u002BG_M57384_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M57384_IG40:\n\u002BG_M57384_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M57384_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M57384_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M57384_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M57384_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M57384_IG42\n\u002B       je       SHORT G_M57384_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M57384_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M57384_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M57384_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M57384_IG43\n\u002B       je       SHORT G_M57384_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M57384_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M57384_IG43:\n\u002BG_M57384_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M57384_IG44:\n\u002BG_M57384_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=6bea1fd7) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:Aggregate[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=6bea1fd7) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:Aggregate[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.ProfileService:ListAutoPaging(Stripe.V2.Billing.ProfileListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.Profile]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.Billing.ProfileService:ListAutoPaging(Stripe.V2.Billing.ProfileListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.Profile]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.ProfileService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.ProfileListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.ProfileListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.Profile]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.Profile]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.Profile]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.Profile]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.Profile]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.Profile]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.Profile]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.Profile]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.Profile]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M49557_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M49557_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/billing/profiles\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M49557_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M49557_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.Profile]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.Profile]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M49557_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M49557_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.Profile]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.Profile]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M49557_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M49557_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=33713e6a) for method Stripe.V2.Billing.ProfileService:ListAutoPaging(Stripe.V2.Billing.ProfileListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.Profile]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=33713e6a) for method Stripe.V2.Billing.ProfileService:ListAutoPaging(Stripe.V2.Billing.ProfileListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.Profile]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.Internal.SyncViaAsync:AwaitSyncOverAsync[System.Nullable\u00601[int]](System.Threading.Tasks.Task\u00601[System.Nullable\u00601[int]]):System.Threading.Tasks.ValueTask\u00601[System.Nullable\u00601[int]] (FullOpts)","Category":"same-size","Description":"197 -\u003E 197 bytes (0)","ExtraInfo":null,"Diff":"@@ -1,107 \u002B1,107 @@\n ; Assembly listing for method Medallion.Threading.Internal.SyncViaAsync:AwaitSyncOverAsync[System.Nullable\u00601[int]](System.Threading.Tasks.Task\u00601[System.Nullable\u00601[int]]):System.Threading.Tasks.ValueTask\u00601[System.Nullable\u00601[int]] (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 9 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 RetBuf       [V00,T00] ( 11,  7   )    long  -\u003E  rbx         single-def\n ;  V01 arg0         [V01,T01] (  7,  4.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Threading.Tasks.Task\u00601[System.Nullable\u00601[int]]\u003E\n ;* V02 loc0         [V02    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u003CSystem.Runtime.CompilerServices.TaskAwaiter\u00601[System.Nullable\u00601[int]]\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V04 tmp1         [V04    ] (  0,  0   )  struct ( 8) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n ;* V05 tmp2         [V05,T05] (  0,  0   )  struct (24) zero-ref    do-not-enreg[SF] ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.ValueTask\u00601[System.Nullable\u00601[int]]\u003E\n ;* V06 tmp3         [V06    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.TaskAwaiter\u00601[System.Nullable\u00601[int]]\u003E\n ;* V07 tmp4         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Nullable\u00601[int]]\u003E\n ;* V08 tmp5         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Nullable\u00601[int]]\u003E\n ;  V09 tmp6         [V09,T04] (  2,  2   )  struct (24) [rbp-0x28]  do-not-enreg[SF] must-init ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.ValueTask\u00601[System.Nullable\u00601[int]]\u003E\n ;* V10 tmp7         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V02.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;* V11 tmp8         [V11    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022field V04.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V12 tmp9         [V12    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V04.value (fldOffset=0x4)\u0022 P-INDEP\n ;* V13 tmp10        [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V06.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;* V14 tmp11        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022V05.[000..008)\u0022\n ;* V15 tmp12        [V15    ] (  0,  0   )   short  -\u003E  zero-ref    \u0022V05.[008..010)\u0022\n ;* V16 tmp13        [V16    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022V05.[010..011)\u0022\n ;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022V09.[000..008)\u0022\n ;* V18 tmp15        [V18    ] (  0,  0   )   short  -\u003E  zero-ref    \u0022V09.[008..010)\u0022\n ;* V19 tmp16        [V19    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022V09.[010..011)\u0022\n ;  V20 rat0         [V20,T02] (  2,  4   )    long  -\u003E  rax         \u0022TLS field access\u0022\n ;  V21 rat1         [V21,T03] (  2,  4   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 32\n \n G_M15632_IG01:\n        push     rbp\n        push     r15\n        push     rbx\n        sub      rsp, 32\n        lea      rbp, [rsp\u002B0x30]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu  xmmword ptr [rbp-0x28], xmm8\n        xor      eax, eax\n        mov      qword ptr [rbp-0x18], rax\n        mov      rbx, rdi\n        mov      r15, rsi\n \t\t\t\t\t\t;; size=35 bbWeight=1 PerfScore 6.83\n G_M15632_IG02:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        cmp      byte  ptr [rax\u002B0x10], 0\n        je       SHORT G_M15632_IG05\n \t\t\t\t\t\t;; size=32 bbWeight=1 PerfScore 6.75\n G_M15632_IG03:\n        mov      edi, dword ptr [r15\u002B0x34]\n        and      edi, 0xD1FFAB1E\n        cmp      edi, 0xD1FFAB1E\n        je       SHORT G_M15632_IG04\n        mov      rdi, r15\n        xor      esi, esi\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int)\n        call     [rax]System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int)\n \t\t\t\t\t\t;; size=35 bbWeight=0.50 PerfScore 3.62\n G_M15632_IG04:\n        mov      rdi, qword ptr [r15\u002B0x38]\n        mov      qword ptr [rbp-0x1C], rdi\n        xor      rdi, rdi\n        mov      gword ptr [rbx], rdi\n        mov      word  ptr [rbx\u002B0x08], 0\n        mov      byte  ptr [rbx\u002B0x0A], 1\n        mov      rdi, qword ptr [rbp-0x1C]\n        mov      qword ptr [rbx\u002B0x0C], rdi\n        jmp      SHORT G_M15632_IG06\n \t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 5.12\n G_M15632_IG05:\n        test     r15, r15\n        je       SHORT G_M15632_IG08\n        mov      rdi, rbx\n        mov      rsi, r15\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n        mov      word  ptr [rbx\u002B0x08], 0\n        mov      byte  ptr [rbx\u002B0x0A], 1\n        xor      eax, eax\n        mov      qword ptr [rbx\u002B0x0C], rax\n \t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 3.00\n G_M15632_IG06:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M15632_IG07:\n        add      rsp, 32\n        pop      rbx\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 2.75\n G_M15632_IG08:\n        mov      edi, 9\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n ; Total bytes of code 197, prolog size 29, PerfScore 28.33, instruction count 53, allocated bytes for code 197 (MethodHash=cd64c2ef) for method Medallion.Threading.Internal.SyncViaAsync:AwaitSyncOverAsync[System.Nullable\u00601[int]](System.Threading.Tasks.Task\u00601[System.Nullable\u00601[int]]):System.Threading.Tasks.ValueTask\u00601[System.Nullable\u00601[int]] (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":197,"DiffBytes":197},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Common.Utils.Boolean.Simplifier\u00601[byte]:SimplifyTree(System.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[byte]):System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte]:this (FullOpts)","Category":"improvement","Description":"2,002 -\u003E 1,931 bytes (-71)","ExtraInfo":null,"Diff":"@@ -8,69 \u002B8,69 @@\n ; 0 inlinees with PGO data; 66 single block inlinees; 11 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T23] (  3,  6   )     ref  -\u003E  r15         this class-hnd single-def \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.Simplifier\u00601[byte]\u003E\n-;  V01 arg1         [V01,T12] (  9, 12   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[byte]\u003E\n-;  V02 loc0         [V02,T29] (  6,  6.50)   ubyte  -\u003E  r13         single-def\n\u002B;  V00 this         [V00,T22] (  3,  6   )     ref  -\u003E  r15         this class-hnd single-def \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.Simplifier\u00601[byte]\u003E\n\u002B;  V01 arg1         [V01,T11] (  9, 12   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[byte]\u003E\n\u002B;  V02 loc0         [V02,T28] (  6,  6.50)   ubyte  -\u003E  r13         single-def\n ;  V03 loc1         [V03,T09] ( 10, 17   )     ref  -\u003E  r12         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte]]\u003E\n-;  V04 loc2         [V04,T27] (  4,  7.50)     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte],bool]\u003E\n-;  V05 loc3         [V05,T13] (  9, 14   )     ref  -\u003E  r15         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte]]\u003E\n\u002B;  V04 loc2         [V04,T26] (  4,  7.50)     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte],bool]\u003E\n\u002B;  V05 loc3         [V05,T12] (  9, 14   )     ref  -\u003E  r15         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte]]\u003E\n ;  V06 loc4         [V06,T01] ( 17, 42.50)     ref  -\u003E  rbx         class-hnd exact \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte]]\u003E\n ;  V07 loc5         [V07    ] (  7, 13   )  struct (24) [rbp-0x40]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Collections.Generic.HashSet\u00601\u002BEnumerator[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte]]\u003E\n ;  V08 loc6         [V08,T08] (  6, 18   )     ref  -\u003E  [rbp-0x70]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte]\u003E\n ;* V09 loc7         [V09    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte]]\u003E\n ;* V10 loc8         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte]\u003E\n ;* V11 loc9         [V11    ] (  0,  0   )     int  -\u003E  zero-ref   \n-;  V12 loc10        [V12,T53] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte]\u003E\n\u002B;  V12 loc10        [V12,T52] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte]\u003E\n ;* V13 loc11        [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte]\u003E\n ;  V14 loc12        [V14    ] (  7, 10.50)  struct (24) [rbp-0x58]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Collections.Generic.Dictionary\u00602\u002BKeyCollection\u002BEnumerator[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte],bool]\u003E\n-;  V15 loc13        [V15,T16] (  3, 12   )     ref  -\u003E  rdi         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte]\u003E\n-;  V16 loc14        [V16,T54] (  3,  1.50)     ref  -\u003E  r15         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[byte]\u003E\n\u002B;  V15 loc13        [V15,T15] (  3, 12   )     ref  -\u003E  rdi         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte]\u003E\n\u002B;  V16 loc14        [V16,T53] (  3,  1.50)     ref  -\u003E  r15         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[byte]\u003E\n ;# V17 OutArgs      [V17    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V18 tmp1         [V18,T30] (  3,  6   )     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte]]\u003E\n\u002B;  V18 tmp1         [V18,T29] (  3,  6   )     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte]]\u003E\n ;  V19 tmp2         [V19,T04] (  3, 24   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte]\u003E\n ;* V20 tmp3         [V20    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022non-inline candidate call\u0022\n-;  V21 tmp4         [V21,T31] (  3,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte],bool]\u003E\n-;  V22 tmp5         [V22,T32] (  3,  6   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte]]\u003E\n-;  V23 tmp6         [V23,T44] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte]]\u003E\n-;  V24 tmp7         [V24,T41] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.OrExpr\u00601[byte]\u003E\n-;  V25 tmp8         [V25,T42] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.AndExpr\u00601[byte]\u003E\n\u002B;  V21 tmp4         [V21,T30] (  3,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte],bool]\u003E\n\u002B;  V22 tmp5         [V22,T31] (  3,  6   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte]]\u003E\n\u002B;  V23 tmp6         [V23,T43] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte]]\u003E\n\u002B;  V24 tmp7         [V24,T39] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.OrExpr\u00601[byte]\u003E\n\u002B;  V25 tmp8         [V25,T40] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.AndExpr\u00601[byte]\u003E\n ;* V26 tmp9         [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte]]\u003E\n-;  V27 tmp10        [V27,T33] (  3,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.__Canon]\u003E\n\u002B;  V27 tmp10        [V27,T32] (  3,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.__Canon]\u003E\n ;* V28 tmp11        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte]]\u003E\n-;  V29 tmp12        [V29,T34] (  3,  6   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.__Canon]\u003E\n\u002B;  V29 tmp12        [V29,T33] (  3,  6   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.__Canon]\u003E\n ;* V30 tmp13        [V30    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.HashSet\u00601\u002BEnumerator[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte]]\u003E\n ;* V31 tmp14        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[byte]\u003E\n-;  V32 tmp15        [V32,T35] (  3,  6   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte][]\u003E\n-;  V33 tmp16        [V33,T21] (  4,  8   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n\u002B;  V32 tmp15        [V32,T34] (  3,  6   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte][]\u003E\n\u002B;  V33 tmp16        [V33,T20] (  4,  8   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n ;* V34 tmp17        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte]]\u003E\n... diff truncated; middle omitted ...\n G_M32438_IG22:\n        cmp      eax, dword ptr [r12\u002B0x10]\n@@ -466,7 \u002B466,7 @@ G_M32438_IG29:\n        mov      r13, rax\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M32438_IG57\n\u002B       je       G_M32438_IG55\n \t\t\t\t\t\t;; size=84 bbWeight=0.50 PerfScore 6.00\n G_M32438_IG30:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.EqualityComparer\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte]]:\u003CDefault\u003Ek__BackingField\n@@ -501,7 \u002B501,7 @@ G_M32438_IG31:\n        mov      r14, rax\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M32438_IG56\n\u002B       je       G_M32438_IG54\n \t\t\t\t\t\t;; size=55 bbWeight=0.50 PerfScore 3.12\n G_M32438_IG32:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.EqualityComparer\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte]]:\u003CDefault\u003Ek__BackingField\n@@ -533,7 \u002B533,7 @@ G_M32438_IG33:\n G_M32438_IG34:\n        mov      rax, gword ptr [rbx\u002B0x08]\n        cmp      dword ptr [rax\u002B0x08], 0\n-       jbe      G_M32438_IG58\n\u002B       jbe      G_M32438_IG56\n        mov      rax, gword ptr [rax\u002B0x10]\n        jmp      G_M32438_IG44\n \t\t\t\t\t\t;; size=23 bbWeight=0.50 PerfScore 4.50\n@@ -547,7 \u002B547,7 @@ G_M32438_IG35:\n G_M32438_IG36:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M32438_IG55\n\u002B       je       G_M32438_IG53\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n G_M32438_IG37:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Data.Entity.Core.Common.Utils.Boolean.TrueExpr\u00601[byte]:_value\n@@ -575,14 \u002B575,14 @@ G_M32438_IG41:\n G_M32438_IG42:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M32438_IG52\n\u002B       je       G_M32438_IG50\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n G_M32438_IG43:\n        mov      rax, 0xD1FFAB1E      ; data for System.Data.Entity.Core.Common.Utils.Boolean.TrueExpr\u00601[byte]:_value\n        mov      rax, gword ptr [rax]\n \t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 1.12\n G_M32438_IG44:\n-       add      rsp, 120\n\u002B       add      rsp, 104\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -592,101 \u002B592,83 @@ G_M32438_IG44:\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n G_M32438_IG45:\n-       mov      rax, gword ptr [rbp-0x90]\n-       mov      rsi, rax\n\u002B       mov      rax, gword ptr [rbp-0x88]\n\u002B       mov      rdx, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Common.Utils.Boolean.NotExpr\u00601[byte]\n-       cmp      qword ptr [rsi], rdi\n-       jne      G_M32438_IG49\n-\t\t\t\t\t\t;; size=29 bbWeight=1 PerfScore 4.50\n\u002B       cmp      qword ptr [rdx], rdi\n\u002B       jne      SHORT G_M32438_IG47\n\u002B\t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 4.50\n G_M32438_IG46:\n-       mov      rax, gword ptr [rsi\u002B0x08]\n-       mov      gword ptr [rbp-0x88], rax\n-       test     rax, rax\n-       je       G_M32438_IG50\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte]]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M32438_IG47\n-       lea      rsi, [rbp-0x60]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M32438_IG48\n-\t\t\t\t\t\t;; size=69 bbWeight=2 PerfScore 38.00\n-G_M32438_IG47:\n\u002B       mov      rsi, gword ptr [rdx\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M32438_IG48\n        lea      rdx, [rbp-0x60]\n-       mov      rsi, gword ptr [rbp-0x88]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte]](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte]],byref):System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=2 PerfScore 10.00\n-G_M32438_IG48:\n-       cmp      byte  ptr [rbp-0x60], 0\n-       je       SHORT G_M32438_IG51\n-       mov      rdi, r14\n        mov      rsi, rax\n\u002B       cmp      byte  ptr [rbp-0x60], 0\n\u002B       je       SHORT G_M32438_IG49\n\u002B       mov      rdi, r14\n        mov      edx, 1\n        mov      ecx, 1\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary\u00602[System.__Canon,bool]:TryInsert(System.__Canon,bool,byte):bool:this\n        call     [rax]System.Collections.Generic.Dictionary\u00602[System.__Canon,bool]:TryInsert(System.__Canon,bool,byte):bool:this\n        jmp      G_M32438_IG14\n-\t\t\t\t\t\t;; size=39 bbWeight=2 PerfScore 16.50\n-G_M32438_IG49:\n\u002B\t\t\t\t\t\t;; size=74 bbWeight=2 PerfScore 31.00\n\u002BG_M32438_IG47:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rax]CORINFO_HELP_CHKCASTCLASS\n        int3     \n \t\t\t\t\t\t;; size=16 bbWeight=0 PerfScore 0.00\n-G_M32438_IG50:\n\u002BG_M32438_IG48:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M32438_IG51:\n\u002BG_M32438_IG49:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M32438_IG52:\n\u002BG_M32438_IG50:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Common.Utils.Boolean.TrueExpr\u00601[byte]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M32438_IG43\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M32438_IG53:\n\u002BG_M32438_IG51:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M32438_IG54:\n\u002BG_M32438_IG52:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M32438_IG17\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M32438_IG55:\n\u002BG_M32438_IG53:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Common.Utils.Boolean.TrueExpr\u00601[byte]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M32438_IG37\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M32438_IG56:\n\u002BG_M32438_IG54:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.EqualityComparer\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M32438_IG32\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M32438_IG57:\n\u002BG_M32438_IG55:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.EqualityComparer\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M32438_IG30\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M32438_IG58:\n\u002BG_M32438_IG56:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n@@ -697,5 \u002B679,5 @@ RWD00  \tdd\tG_M32438_IG45 - G_M32438_IG02\n        \tdd\tG_M32438_IG39 - G_M32438_IG02\n \n \n-; Total bytes of code 2002, prolog size 43, PerfScore 854.58, instruction count 438, allocated bytes for code 2002 (MethodHash=a7a18149) for method System.Data.Entity.Core.Common.Utils.Boolean.Simplifier\u00601[byte]:SimplifyTree(System.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[byte]):System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte]:this (FullOpts)\n\u002B; Total bytes of code 1931, prolog size 43, PerfScore 821.08, instruction count 424, allocated bytes for code 1931 (MethodHash=a7a18149) for method System.Data.Entity.Core.Common.Utils.Boolean.Simplifier\u00601[byte]:SimplifyTree(System.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[byte]):System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[byte]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":2002,"DiffBytes":1931},{"Assembly":"MathNet.Numerics.dasm","Method":"MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:SameAs[long](MathNet.Numerics.LinearAlgebra.Matrix\u00601[long],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this (FullOpts)","Category":"improvement","Description":"594 -\u003E 120 bytes (-474)","ExtraInfo":null,"Diff":"@@ -1,214 \u002B1,65 @@\n ; Assembly listing for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:SameAs[long](MathNet.Numerics.LinearAlgebra.Matrix\u00601[long],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n-; rbp based frame\n\u002B; rsp based frame\n ; partially interruptible\n ; No PGO data\n-; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data\n\u002B; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 12,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]\u003E\n-;  V01 arg1         [V01,T03] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[long]\u003E\n-;  V02 arg2         [V02,T01] ( 11,  6.50)     int  -\u003E  r15         single-def\n-;  V03 arg3         [V03,T02] ( 11,  6.50)     int  -\u003E  r14         single-def\n-;  V04 arg4         [V04,T04] (  3,  2.50)   ubyte  -\u003E  r13         single-def\n-;  V05 loc0         [V05,T08] (  4,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]\u003E\n\u002B;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]\u003E\n\u002B;  V01 arg1         [V01,T02] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Matrix\u00601[long]\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  4   )     int  -\u003E  r15         single-def\n\u002B;  V03 arg3         [V03,T04] (  4,  4   )     int  -\u003E  r14         single-def\n\u002B;* V04 arg4         [V04    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def\n\u002B;* V05 loc0         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[long]\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]\u003E\n\u002B;  V07 tmp1         [V07,T00] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cshort[]\u003E\n-;  V09 tmp3         [V09,T06] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[short]\u003E\n-;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cshort[]\u003E\n-;  V11 tmp5         [V11,T11] (  2,  1   )     int  -\u003E  rsi         \u0022Inline return value spill temp\u0022\n-;  V12 tmp6         [V12,T09] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]\u003E\n-;  V13 tmp7         [V13,T10] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]\u003E\n-;  V14 tmp8         [V14,T07] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]\u003E\n-;* V15 tmp9         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003Cshort[]\u003E\n-;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022Single return block return value\u0022\n ;\n ; Lcl frame size = 8\n \n G_M43036_IG01:\n-       push     rbp\n        push     r15\n        push     r14\n        push     r13\n-       push     r12\n        push     rbx\n        push     rax\n-       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n        mov      r15d, edx\n        mov      r14d, ecx\n-       mov      r13d, r8d\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.75\n G_M43036_IG02:\n-       mov      r12, gword ptr [rsi\u002B0x08]\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M43036_IG11\n-\t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 7.00\n-G_M43036_IG03:\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[short]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      G_M43036_IG07\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       jne      SHORT G_M43036_IG05\n\u002B       cmp      byte  ptr [rsi], sil\n        mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        mov      rdi, r13\n        mov      esi, r15d\n        mov      edx, r14d\n        mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]:.ctor(int,int):this\n        call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]:.ctor(int,int):this\n        imul     r15d, r14d\n        movsxd   rsi, r15d\n        mov      rdi, 0xD1FFAB1E      ; short[]\n        call     CORINFO_HELP_NEWARR_1_VC\n        mov      rsi, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, rbx\n        mov      rsi, r13\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=150 bbWeight=0.50 PerfScore 12.62\n-G_M43036_IG04:\n\u002B\t\t\t\t\t\t;; size=89 bbWeight=1 PerfScore 17.25\n\u002BG_M43036_IG03:\n        add      rsp, 8\n        pop      rbx\n-       pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n-       pop      rbp\n        tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n-G_M43036_IG05:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 5.00\n-G_M43036_IG06:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M43036_IG07:\n-       test     r13b, r13b\n-       je       SHORT G_M43036_IG09\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]:.ctor(int,int):this\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 5.62\n-G_M43036_IG08:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage\u00601[short]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M43036_IG09:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[short]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]:.ctor(int,int):this\n-       cmp      r15d, r14d\n-       mov      esi, r14d\n-       cmovle   esi, r15d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; short[]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=92 bbWeight=0.50 PerfScore 7.12\n-G_M43036_IG10:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax\u002B0x10]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:Diagonal(MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage\u00601[short]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.62\n-G_M43036_IG11:\n-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rdi, r13\n-       mov      esi, r15d\n-       mov      edx, r14d\n-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]:.ctor(int,int):this\n-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage\u00601[short]:.ctor(int,int):this\n-       mov      esi, r15d\n-       imul     esi, r14d\n-       movsxd   rsi, esi\n-       mov      rdi, 0xD1FFAB1E      ; short[]\n-       call     CORINFO_HELP_NEWARR_1_VC\n-       mov      rsi, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n-       call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, rbx\n-       mov      rsi, r13\n-       mov      rax, qword ptr [rbx]\n-       mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=89 bbWeight=0.50 PerfScore 7.75\n-G_M43036_IG12:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage\u00601[short]):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this\n-\t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.62\n\u002B\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 594, prolog size 16, PerfScore 66.75, instruction count 157, allocated bytes for code 594 (MethodHash=28b057e3) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:SameAs[long](MathNet.Numerics.LinearAlgebra.Matrix\u00601[long],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this (FullOpts)\n\u002B; Total bytes of code 120, prolog size 8, PerfScore 27.25, instruction count 34, allocated bytes for code 120 (MethodHash=28b057e3) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder\u00601[short]:SameAs[long](MathNet.Numerics.LinearAlgebra.Matrix\u00601[long],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix\u00601[short]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":594,"DiffBytes":120},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:Aggregate[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],short]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[short]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[short]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[short]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[short]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[short]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V69 tmp59        [V69,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n\u002BG_M3920_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M3920_IG26\n\u002B       je       SHORT G_M3920_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M3920_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M3920_IG26:\n\u002BG_M3920_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M3920_IG27:\n\u002BG_M3920_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M3920_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M3920_IG28:\n\u002BG_M3920_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M3920_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M3920_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M3920_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M3920_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M3920_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M3920_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M3920_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M3920_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M3920_IG31\n\u002B       je       SHORT G_M3920_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M3920_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M3920_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M3920_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M3920_IG32\n\u002B       je       SHORT G_M3920_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M3920_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M3920_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M3920_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M3920_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateAggregateToCollectionResultCursor[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[short],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[short]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M3920_IG33:\n\u002BG_M3920_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M3920_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M3920_IG34:\n\u002BG_M3920_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M3920_IG35:\n\u002BG_M3920_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M3920_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M3920_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M3920_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M3920_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M3920_IG37\n\u002B       je       SHORT G_M3920_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M3920_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M3920_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M3920_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M3920_IG38\n\u002B       je       SHORT G_M3920_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M3920_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M3920_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M3920_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M3920_IG39:\n\u002BG_M3920_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M3920_IG40:\n\u002BG_M3920_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M3920_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M3920_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M3920_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M3920_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M3920_IG42\n\u002B       je       SHORT G_M3920_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M3920_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M3920_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M3920_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M3920_IG43\n\u002B       je       SHORT G_M3920_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M3920_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M3920_IG43:\n\u002BG_M3920_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M3920_IG44:\n\u002BG_M3920_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=7263f0af) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:Aggregate[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=7263f0af) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:Aggregate[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.RateCardService:ListAutoPaging(Stripe.V2.Billing.RateCardListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.RateCard]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.Billing.RateCardService:ListAutoPaging(Stripe.V2.Billing.RateCardListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.RateCard]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.RateCardService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.RateCardListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.RateCardListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.RateCard]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.RateCard]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.RateCard]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.RateCard]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.RateCard]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.RateCard]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.RateCard]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.RateCard]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.RateCard]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M60392_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M60392_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/billing/rate_cards\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M60392_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M60392_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.RateCard]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.RateCard]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M60392_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M60392_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.RateCard]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.RateCard]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M60392_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M60392_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=df9d1417) for method Stripe.V2.Billing.RateCardService:ListAutoPaging(Stripe.V2.Billing.RateCardListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.RateCard]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=df9d1417) for method Stripe.V2.Billing.RateCardService:ListAutoPaging(Stripe.V2.Billing.RateCardListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.RateCard]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.Internal.SyncViaAsync:AwaitSyncOverAsync[System.Numerics.Vector\u00601[float]](System.Threading.Tasks.Task\u00601[System.Numerics.Vector\u00601[float]]):System.Threading.Tasks.ValueTask\u00601[System.Numerics.Vector\u00601[float]] (FullOpts)","Category":"same-size","Description":"174 -\u003E 174 bytes (0)","ExtraInfo":null,"Diff":"@@ -1,100 \u002B1,100 @@\n ; Assembly listing for method Medallion.Threading.Internal.SyncViaAsync:AwaitSyncOverAsync[System.Numerics.Vector\u00601[float]](System.Threading.Tasks.Task\u00601[System.Numerics.Vector\u00601[float]]):System.Threading.Tasks.ValueTask\u00601[System.Numerics.Vector\u00601[float]] (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 9 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 RetBuf       [V00,T00] ( 11,  7   )    long  -\u003E  rbx         single-def\n ;  V01 arg0         [V01,T01] (  7,  4.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Threading.Tasks.Task\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V02 loc0         [V02    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u003CSystem.Runtime.CompilerServices.TaskAwaiter\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V04 tmp1         [V04    ] (  0,  0   )  simd32  -\u003E  zero-ref    \u0022spilled call-like call argument\u0022\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct (48) zero-ref    do-not-enreg[SF] ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.ValueTask\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V06 tmp3         [V06    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.TaskAwaiter\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V07 tmp4         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V08 tmp5         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V09 tmp6         [V09    ] (  0,  0   )  struct (48) zero-ref    do-not-enreg[SF] ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.ValueTask\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V10 tmp7         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V02.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;* V11 tmp8         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V06.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;* V12 tmp9         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022V05.[000..008)\u0022\n ;* V13 tmp10        [V13    ] (  0,  0   )   short  -\u003E  zero-ref    \u0022V05.[008..010)\u0022\n ;* V14 tmp11        [V14    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022V05.[010..011)\u0022\n ;* V15 tmp12        [V15    ] (  0,  0   )  simd32  -\u003E  zero-ref    \u0022V05.[016..048)\u0022\n ;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022V09.[000..008)\u0022\n ;* V17 tmp14        [V17    ] (  0,  0   )   short  -\u003E  zero-ref    \u0022V09.[008..010)\u0022\n ;* V18 tmp15        [V18    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022V09.[010..011)\u0022\n ;  V19 tmp16        [V19,T04] (  2,  1   )  simd32  -\u003E  mm0         single-def \u0022V09.[016..048)\u0022\n ;  V20 rat0         [V20,T02] (  2,  4   )    long  -\u003E  rax         \u0022TLS field access\u0022\n ;  V21 rat1         [V21,T03] (  2,  4   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 0\n \n G_M32493_IG01:\n        push     rbp\n        push     r15\n        push     rbx\n        lea      rbp, [rsp\u002B0x10]\n        mov      rbx, rdi\n        mov      r15, rsi\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.00\n G_M32493_IG02:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        cmp      byte  ptr [rax\u002B0x10], 0\n        je       SHORT G_M32493_IG05\n \t\t\t\t\t\t;; size=32 bbWeight=1 PerfScore 6.75\n G_M32493_IG03:\n        mov      edi, dword ptr [r15\u002B0x34]\n        and      edi, 0xD1FFAB1E\n        cmp      edi, 0xD1FFAB1E\n        je       SHORT G_M32493_IG04\n        mov      rdi, r15\n        xor      esi, esi\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int)\n        call     [rax]System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int)\n \t\t\t\t\t\t;; size=35 bbWeight=0.50 PerfScore 3.62\n G_M32493_IG04:\n        vmovups  ymm0, ymmword ptr [r15\u002B0x38]\n        xor      rdi, rdi\n        mov      gword ptr [rbx], rdi\n        mov      word  ptr [rbx\u002B0x08], 0\n        mov      byte  ptr [rbx\u002B0x0A], 1\n        vmovups  ymmword ptr [rbx\u002B0x10], ymm0\n        jmp      SHORT G_M32493_IG06\n \t\t\t\t\t\t;; size=28 bbWeight=0.50 PerfScore 4.62\n G_M32493_IG05:\n        test     r15, r15\n        je       SHORT G_M32493_IG08\n        mov      rdi, rbx\n        mov      rsi, r15\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n        mov      word  ptr [rbx\u002B0x08], 0\n        mov      byte  ptr [rbx\u002B0x0A], 1\n        vxorps   ymm0, ymm0, ymm0\n        vmovups  ymmword ptr [rbx\u002B0x10], ymm0\n \t\t\t\t\t\t;; size=35 bbWeight=0.50 PerfScore 3.04\n G_M32493_IG06:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M32493_IG07:\n        vzeroupper \n        pop      rbx\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=8 bbWeight=1 PerfScore 3.50\n G_M32493_IG08:\n        mov      edi, 9\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n ; Total bytes of code 174, prolog size 9, PerfScore 25.79, instruction count 46, allocated bytes for code 174 (MethodHash=c7058112) for method Medallion.Threading.Internal.SyncViaAsync:AwaitSyncOverAsync[System.Numerics.Vector\u00601[float]](System.Threading.Tasks.Task\u00601[System.Numerics.Vector\u00601[float]]):System.Threading.Tasks.ValueTask\u00601[System.Numerics.Vector\u00601[float]] (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":174,"DiffBytes":174},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Common.Utils.Boolean.Simplifier\u00601[double]:SimplifyTree(System.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[double]):System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double]:this (FullOpts)","Category":"improvement","Description":"2,002 -\u003E 1,931 bytes (-71)","ExtraInfo":null,"Diff":"@@ -8,69 \u002B8,69 @@\n ; 0 inlinees with PGO data; 66 single block inlinees; 11 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T23] (  3,  6   )     ref  -\u003E  r15         this class-hnd single-def \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.Simplifier\u00601[double]\u003E\n-;  V01 arg1         [V01,T12] (  9, 12   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[double]\u003E\n-;  V02 loc0         [V02,T29] (  6,  6.50)   ubyte  -\u003E  r13         single-def\n\u002B;  V00 this         [V00,T22] (  3,  6   )     ref  -\u003E  r15         this class-hnd single-def \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.Simplifier\u00601[double]\u003E\n\u002B;  V01 arg1         [V01,T11] (  9, 12   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[double]\u003E\n\u002B;  V02 loc0         [V02,T28] (  6,  6.50)   ubyte  -\u003E  r13         single-def\n ;  V03 loc1         [V03,T09] ( 10, 17   )     ref  -\u003E  r12         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double]]\u003E\n-;  V04 loc2         [V04,T27] (  4,  7.50)     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double],bool]\u003E\n-;  V05 loc3         [V05,T13] (  9, 14   )     ref  -\u003E  r15         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double]]\u003E\n\u002B;  V04 loc2         [V04,T26] (  4,  7.50)     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double],bool]\u003E\n\u002B;  V05 loc3         [V05,T12] (  9, 14   )     ref  -\u003E  r15         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double]]\u003E\n ;  V06 loc4         [V06,T01] ( 17, 42.50)     ref  -\u003E  rbx         class-hnd exact \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double]]\u003E\n ;  V07 loc5         [V07    ] (  7, 13   )  struct (24) [rbp-0x40]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Collections.Generic.HashSet\u00601\u002BEnumerator[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double]]\u003E\n ;  V08 loc6         [V08,T08] (  6, 18   )     ref  -\u003E  [rbp-0x70]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double]\u003E\n ;* V09 loc7         [V09    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double]]\u003E\n ;* V10 loc8         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double]\u003E\n ;* V11 loc9         [V11    ] (  0,  0   )     int  -\u003E  zero-ref   \n-;  V12 loc10        [V12,T53] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double]\u003E\n\u002B;  V12 loc10        [V12,T52] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double]\u003E\n ;* V13 loc11        [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double]\u003E\n ;  V14 loc12        [V14    ] (  7, 10.50)  struct (24) [rbp-0x58]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Collections.Generic.Dictionary\u00602\u002BKeyCollection\u002BEnumerator[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double],bool]\u003E\n-;  V15 loc13        [V15,T16] (  3, 12   )     ref  -\u003E  rdi         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double]\u003E\n-;  V16 loc14        [V16,T54] (  3,  1.50)     ref  -\u003E  r15         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[double]\u003E\n\u002B;  V15 loc13        [V15,T15] (  3, 12   )     ref  -\u003E  rdi         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double]\u003E\n\u002B;  V16 loc14        [V16,T53] (  3,  1.50)     ref  -\u003E  r15         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[double]\u003E\n ;# V17 OutArgs      [V17    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V18 tmp1         [V18,T30] (  3,  6   )     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double]]\u003E\n\u002B;  V18 tmp1         [V18,T29] (  3,  6   )     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double]]\u003E\n ;  V19 tmp2         [V19,T04] (  3, 24   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double]\u003E\n ;* V20 tmp3         [V20    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022non-inline candidate call\u0022\n-;  V21 tmp4         [V21,T31] (  3,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double],bool]\u003E\n-;  V22 tmp5         [V22,T32] (  3,  6   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double]]\u003E\n-;  V23 tmp6         [V23,T44] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double]]\u003E\n-;  V24 tmp7         [V24,T41] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.OrExpr\u00601[double]\u003E\n-;  V25 tmp8         [V25,T42] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.AndExpr\u00601[double]\u003E\n\u002B;  V21 tmp4         [V21,T30] (  3,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double],bool]\u003E\n\u002B;  V22 tmp5         [V22,T31] (  3,  6   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double]]\u003E\n\u002B;  V23 tmp6         [V23,T43] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double]]\u003E\n\u002B;  V24 tmp7         [V24,T39] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.OrExpr\u00601[double]\u003E\n\u002B;  V25 tmp8         [V25,T40] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.AndExpr\u00601[double]\u003E\n ;* V26 tmp9         [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double]]\u003E\n-;  V27 tmp10        [V27,T33] (  3,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.__Canon]\u003E\n\u002B;  V27 tmp10        [V27,T32] (  3,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.__Canon]\u003E\n ;* V28 tmp11        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double]]\u003E\n-;  V29 tmp12        [V29,T34] (  3,  6   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.__Canon]\u003E\n\u002B;  V29 tmp12        [V29,T33] (  3,  6   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.__Canon]\u003E\n ;* V30 tmp13        [V30    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.HashSet\u00601\u002BEnumerator[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double]]\u003E\n ;* V31 tmp14        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[double]\u003E\n-;  V32 tmp15        [V32,T35] (  3,  6   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double][]\u003E\n-;  V33 tmp16        [V33,T21] (  4,  8   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n\u002B;  V32 tmp15        [V32,T34] (  3,  6   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double][]\u003E\n\u002B;  V33 tmp16        [V33,T20] (  4,  8   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n ;* V34 tmp17        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double]]\u003E\n... diff truncated; middle omitted ...\n G_M59177_IG22:\n        cmp      eax, dword ptr [r12\u002B0x10]\n@@ -466,7 \u002B466,7 @@ G_M59177_IG29:\n        mov      r13, rax\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M59177_IG57\n\u002B       je       G_M59177_IG55\n \t\t\t\t\t\t;; size=84 bbWeight=0.50 PerfScore 6.00\n G_M59177_IG30:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.EqualityComparer\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double]]:\u003CDefault\u003Ek__BackingField\n@@ -501,7 \u002B501,7 @@ G_M59177_IG31:\n        mov      r14, rax\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M59177_IG56\n\u002B       je       G_M59177_IG54\n \t\t\t\t\t\t;; size=55 bbWeight=0.50 PerfScore 3.12\n G_M59177_IG32:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.EqualityComparer\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double]]:\u003CDefault\u003Ek__BackingField\n@@ -533,7 \u002B533,7 @@ G_M59177_IG33:\n G_M59177_IG34:\n        mov      rax, gword ptr [rbx\u002B0x08]\n        cmp      dword ptr [rax\u002B0x08], 0\n-       jbe      G_M59177_IG58\n\u002B       jbe      G_M59177_IG56\n        mov      rax, gword ptr [rax\u002B0x10]\n        jmp      G_M59177_IG44\n \t\t\t\t\t\t;; size=23 bbWeight=0.50 PerfScore 4.50\n@@ -547,7 \u002B547,7 @@ G_M59177_IG35:\n G_M59177_IG36:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M59177_IG55\n\u002B       je       G_M59177_IG53\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n G_M59177_IG37:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Data.Entity.Core.Common.Utils.Boolean.TrueExpr\u00601[double]:_value\n@@ -575,14 \u002B575,14 @@ G_M59177_IG41:\n G_M59177_IG42:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M59177_IG52\n\u002B       je       G_M59177_IG50\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n G_M59177_IG43:\n        mov      rax, 0xD1FFAB1E      ; data for System.Data.Entity.Core.Common.Utils.Boolean.TrueExpr\u00601[double]:_value\n        mov      rax, gword ptr [rax]\n \t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 1.12\n G_M59177_IG44:\n-       add      rsp, 120\n\u002B       add      rsp, 104\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -592,101 \u002B592,83 @@ G_M59177_IG44:\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n G_M59177_IG45:\n-       mov      rax, gword ptr [rbp-0x90]\n-       mov      rsi, rax\n\u002B       mov      rax, gword ptr [rbp-0x88]\n\u002B       mov      rdx, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Common.Utils.Boolean.NotExpr\u00601[double]\n-       cmp      qword ptr [rsi], rdi\n-       jne      G_M59177_IG49\n-\t\t\t\t\t\t;; size=29 bbWeight=1 PerfScore 4.50\n\u002B       cmp      qword ptr [rdx], rdi\n\u002B       jne      SHORT G_M59177_IG47\n\u002B\t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 4.50\n G_M59177_IG46:\n-       mov      rax, gword ptr [rsi\u002B0x08]\n-       mov      gword ptr [rbp-0x88], rax\n-       test     rax, rax\n-       je       G_M59177_IG50\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double]]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M59177_IG47\n-       lea      rsi, [rbp-0x60]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M59177_IG48\n-\t\t\t\t\t\t;; size=69 bbWeight=2 PerfScore 38.00\n-G_M59177_IG47:\n\u002B       mov      rsi, gword ptr [rdx\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M59177_IG48\n        lea      rdx, [rbp-0x60]\n-       mov      rsi, gword ptr [rbp-0x88]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double]](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double]],byref):System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=2 PerfScore 10.00\n-G_M59177_IG48:\n-       cmp      byte  ptr [rbp-0x60], 0\n-       je       SHORT G_M59177_IG51\n-       mov      rdi, r14\n        mov      rsi, rax\n\u002B       cmp      byte  ptr [rbp-0x60], 0\n\u002B       je       SHORT G_M59177_IG49\n\u002B       mov      rdi, r14\n        mov      edx, 1\n        mov      ecx, 1\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary\u00602[System.__Canon,bool]:TryInsert(System.__Canon,bool,byte):bool:this\n        call     [rax]System.Collections.Generic.Dictionary\u00602[System.__Canon,bool]:TryInsert(System.__Canon,bool,byte):bool:this\n        jmp      G_M59177_IG14\n-\t\t\t\t\t\t;; size=39 bbWeight=2 PerfScore 16.50\n-G_M59177_IG49:\n\u002B\t\t\t\t\t\t;; size=74 bbWeight=2 PerfScore 31.00\n\u002BG_M59177_IG47:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rax]CORINFO_HELP_CHKCASTCLASS\n        int3     \n \t\t\t\t\t\t;; size=16 bbWeight=0 PerfScore 0.00\n-G_M59177_IG50:\n\u002BG_M59177_IG48:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M59177_IG51:\n\u002BG_M59177_IG49:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M59177_IG52:\n\u002BG_M59177_IG50:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Common.Utils.Boolean.TrueExpr\u00601[double]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M59177_IG43\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M59177_IG53:\n\u002BG_M59177_IG51:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M59177_IG54:\n\u002BG_M59177_IG52:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M59177_IG17\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M59177_IG55:\n\u002BG_M59177_IG53:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Common.Utils.Boolean.TrueExpr\u00601[double]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M59177_IG37\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M59177_IG56:\n\u002BG_M59177_IG54:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.EqualityComparer\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M59177_IG32\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M59177_IG57:\n\u002BG_M59177_IG55:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.EqualityComparer\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M59177_IG30\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M59177_IG58:\n\u002BG_M59177_IG56:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n@@ -697,5 \u002B679,5 @@ RWD00  \tdd\tG_M59177_IG45 - G_M59177_IG02\n        \tdd\tG_M59177_IG39 - G_M59177_IG02\n \n \n-; Total bytes of code 2002, prolog size 43, PerfScore 854.58, instruction count 438, allocated bytes for code 2002 (MethodHash=ad6d18d6) for method System.Data.Entity.Core.Common.Utils.Boolean.Simplifier\u00601[double]:SimplifyTree(System.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[double]):System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double]:this (FullOpts)\n\u002B; Total bytes of code 1931, prolog size 43, PerfScore 821.08, instruction count 424, allocated bytes for code 1931 (MethodHash=ad6d18d6) for method System.Data.Entity.Core.Common.Utils.Boolean.Simplifier\u00601[double]:SimplifyTree(System.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[double]):System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[double]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":2002,"DiffBytes":1931},{"Assembly":"MathNet.Numerics.dasm","Method":"MathNet.Numerics.Optimization.LimitedMemoryBfgsMinimizer:ApplyLbfgsUpdate(MathNet.Numerics.Optimization.IObjectiveFunction,System.Collections.Generic.List\u00601[MathNet.Numerics.LinearAlgebra.Vector\u00601[double]],System.Collections.Generic.List\u00601[MathNet.Numerics.LinearAlgebra.Vector\u00601[double]],System.Collections.Generic.List\u00601[double]):MathNet.Numerics.LinearAlgebra.Vector\u00601[double]:this (FullOpts)","Category":"improvement","Description":"969 -\u003E 867 bytes (-102)","ExtraInfo":null,"Diff":"@@ -10,35 \u002B10,35 @@\n ;\n ;* V00 this         [V00    ] (  0,  0   )     ref  -\u003E  zero-ref    this class-hnd single-def \u003CMathNet.Numerics.Optimization.LimitedMemoryBfgsMinimizer\u003E\n ;  V01 arg1         [V01,T22] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMathNet.Numerics.Optimization.IObjectiveFunction\u003E\n-;  V02 arg2         [V02,T03] ( 11, 25.50)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[MathNet.Numerics.LinearAlgebra.Vector\u00601[double]]\u003E\n-;  V03 arg3         [V03,T10] (  9, 20.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[MathNet.Numerics.LinearAlgebra.Vector\u00601[double]]\u003E\n\u002B;  V02 arg2         [V02,T03] ( 10, 25   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[MathNet.Numerics.LinearAlgebra.Vector\u00601[double]]\u003E\n\u002B;  V03 arg3         [V03,T10] (  8, 20   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[MathNet.Numerics.LinearAlgebra.Vector\u00601[double]]\u003E\n ;  V04 arg4         [V04,T12] (  6, 18   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[double]\u003E\n ;  V05 loc0         [V05,T02] ( 10, 28   )     ref  -\u003E  r13         class-hnd \u003CMathNet.Numerics.LinearAlgebra.Vector\u00601[double]\u003E\n ;  V06 loc1         [V06,T11] (  8, 21   )     ref  -\u003E  r12         class-hnd exact single-def \u003CSystem.Collections.Generic.Stack\u00601[double]\u003E\n ;* V07 loc2         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMathNet.Numerics.LinearAlgebra.Vector\u00601[double]\u003E\n ;* V08 loc3         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMathNet.Numerics.LinearAlgebra.Vector\u00601[double]\u003E\n-;  V09 loc4         [V09,T27] (  2,  2   )     int  -\u003E  rsi        \n-;  V10 loc5         [V10,T32] (  4, 12   )  double  -\u003E  [rbp-0x30]  spill-single-def\n-;* V11 loc6         [V11,T28] (  0,  0   )     int  -\u003E  zero-ref   \n-;  V12 loc7         [V12,T33] (  2,  8   )  double  -\u003E  [rbp-0x38]  spill-single-def\n\u002B;  V09 loc4         [V09,T25] (  2,  2   )     int  -\u003E  rsi        \n\u002B;  V10 loc5         [V10,T30] (  4, 12   )  double  -\u003E  [rbp-0x30]  spill-single-def\n\u002B;* V11 loc6         [V11,T26] (  0,  0   )     int  -\u003E  zero-ref   \n\u002B;  V12 loc7         [V12,T31] (  2,  8   )  double  -\u003E  [rbp-0x38]  spill-single-def\n ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V14 tmp1         [V14,T21] (  3,  6   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Stack\u00601[double]\u003E\n-;  V15 tmp2         [V15,T29] (  2, 16   )  double  -\u003E  [rbp-0x40]  spill-single-def \u0022impAppendStmt\u0022\n\u002B;  V15 tmp2         [V15,T27] (  2, 16   )  double  -\u003E  [rbp-0x40]  spill-single-def \u0022impAppendStmt\u0022\n ;* V16 tmp3         [V16    ] (  0,  0   )  double  -\u003E  zero-ref    \u0022impAppendStmt\u0022\n-;  V17 tmp4         [V17,T30] (  2, 16   )  double  -\u003E  [rbp-0x48]  spill-single-def \u0022impAppendStmt\u0022\n\u002B;  V17 tmp4         [V17,T28] (  2, 16   )  double  -\u003E  [rbp-0x48]  spill-single-def \u0022impAppendStmt\u0022\n ;* V18 tmp5         [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMathNet.Numerics.LinearAlgebra.Vector\u00601[double]\u003E\n ;  V19 tmp6         [V19,T19] (  4, 12   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n ;  V20 tmp7         [V20,T20] (  3, 10   )     ref  -\u003E  rcx         class-hnd \u0022Inline stloc first use temp\u0022 \u003Cdouble[]\u003E\n ;* V21 tmp8         [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V22 tmp9         [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMathNet.Numerics.LinearAlgebra.Vector\u00601[double]\u003E\n-;  V23 tmp10        [V23    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x50]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V23 tmp10        [V23    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x50]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V24 tmp11        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V25 tmp12        [V25,T23] (  5,  4   )     ref  -\u003E  [rbp-0x70]  class-hnd \u0022Inline return value spill temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Vector\u00601[double]\u003E\n-;  V26 tmp13        [V26,T24] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MathNet.Numerics.LinearAlgebra.Vector\u00601[double]]\u003E\n-;  V27 tmp14        [V27    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x58]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V25 tmp12        [V25,T23] (  4,  4   )     ref  -\u003E  [rbp-0x70]  class-hnd spill-single-def \u0022Inline return value spill temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Vector\u00601[double]\u003E\n\u002B;* V26 tmp13        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MathNet.Numerics.LinearAlgebra.Vector\u00601[double]]\u003E\n\u002B;  V27 tmp14        [V27    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x58]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V28 tmp15        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V29 tmp16        [V29,T26] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Vector\u00601[double]\u003E\n-;  V30 tmp17        [V30,T25] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MathNet.Numerics.LinearAlgebra.Vector\u00601[double]]\u003E\n\u002B;  V29 tmp16        [V29,T24] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMathNet.Numerics.LinearAlgebra.Vector\u00601[double]\u003E\n\u002B;* V30 tmp17        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MathNet.Numerics.LinearAlgebra.Vector\u00601[double]]\u003E\n ;* V31 tmp18        [V31    ] (  0,  0   )  double  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V32 tmp19        [V32    ] (  0,  0   )  double  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V33 tmp20        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMathNet.Numerics.LinearAlgebra.Vector\u00601[double]\u003E\n@@ -48,12 \u002B48,12 @@\n ;  V37 tmp24        [V37,T06] (  3, 24   )     ref  -\u003E  rdi         \u0022arr expr\u0022\n ;  V38 tmp25        [V38,T14] (  2, 16   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V39 tmp26        [V39,T15] (  2, 16   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n-;  V40 tmp27        [V40,T34] (  2,  4   )  double  -\u003E  mm0         \u0022argument with side effect\u0022\n\u002B;  V40 tmp27        [V40,T32] (  2,  4   )  double  -\u003E  mm0         \u0022argument with side effect\u0022\n ;  V41 tmp28        [V41,T07] (  3, 24   )     ref  -\u003E  rdi         \u0022arr expr\u0022\n ;  V42 tmp29        [V42,T08] (  3, 24   )     ref  -\u003E  rdi         \u0022arr expr\u0022\n ;  V43 tmp30        [V43,T16] (  2, 16   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V44 tmp31        [V44,T09] (  3, 24   )     ref  -\u003E  rdi         \u0022arr expr\u0022\n-;  V45 tmp32        [V45,T31] (  2, 16   )  double  -\u003E  mm0         \u0022argument with side effect\u0022\n\u002B;  V45 tmp32        [V45,T29] (  2, 16   )  double  -\u003E  mm0         \u0022argument with side effect\u0022\n ;  V46 tmp33        [V46,T17] (  2, 16   )     ref  -\u003E  [rbp-0x78]  spill-single-def \u0022argument with side effect\u0022\n ;  V47 tmp34        [V47,T18] (  2, 16   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n ;  V48 rat0         [V48,T00] ( 14, 50   )    long  -\u003E  [rbp-0x60]  \u0022Widened IV V09\u0022\n@@ -92,7 \u002B92,7 @@ G_M30375_IG02:\n        mov      r12, rax\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M30375_IG18\n\u002B       je       G_M30375_IG12\n \t\t\t\t\t\t;; size=73 bbWeight=1 PerfScore 14.00\n G_M30375_IG03:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Array\u002BEmptyArray\u00601[double]:Value\n@@ -107,17 \u002B107,17 @@ G_M30375_IG03:\n \t\t\t\t\t\t;; size=38 bbWeight=1 PerfScore 7.50\n G_M30375_IG04:\n        cmp      eax, dword ptr [r14\u002B0x10]\n-       jae      G_M30375_IG19\n\u002B       jae      G_M30375_IG13\n        mov      rsi, gword ptr [r14\u002B0x08]\n        cmp      eax, dword ptr [rsi\u002B0x08]\n-       jae      G_M30375_IG22\n\u002B       jae      G_M30375_IG16\n        vmovsd   xmm0, qword ptr [rsi\u002B8*rax\u002B0x10]\n        vmovsd   qword ptr [rbp-0x40], xmm0\n        cmp      eax, dword ptr [r15\u002B0x10]\n-       jae      G_M30375_IG19\n\u002B       jae      G_M30375_IG13\n        mov      rsi, gword ptr [r15\u002B0x08]\n        cmp      eax, dword ptr [rsi\u002B0x08]\n-       jae      G_M30375_IG22\n\u002B       jae      G_M30375_IG16\n        mov      qword ptr [rbp-0x60], rax\n        mov      rsi, gword ptr [rsi\u002B8*rax\u002B0x10]\n        mov      rdi, r13\n@@ -148,10 \u002B148,10 @@ G_M30375_IG06:\n G_M30375_IG07:\n        mov      rax, qword ptr [rbp-0x60]\n        cmp      eax, dword ptr [rbx\u002B0x10]\n-       jae      G_M30375_IG19\n\u002B       jae      G_M30375_IG13\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        cmp      eax, dword ptr [rdi\u002B0x08]\n-       jae      G_M30375_IG22\n\u002B       jae      G_M30375_IG16\n        mov      qword ptr [rbp-0x60], rax\n        mov      rdi, gword ptr [rdi\u002B8*rax\u002B0x10]\n        mov      rcx, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Vector\u00601[double]:Multiply(double):MathNet.Numerics.LinearAlgebra.Vector\u00601[double]:this\n... diff truncated; middle omitted ...\n        call     [rax]MathNet.Numerics.LinearAlgebra.Vector\u00601[double]:Subtract(MathNet.Numerics.LinearAlgebra.Vector\u00601[double]):MathNet.Numerics.LinearAlgebra.Vector\u00601[double]:this\n        mov      r13, rax\n-       mov      rsi, qword ptr [rbp-0x60]\n-       dec      esi\n-       mov      rax, rsi\n\u002B       mov      rdx, qword ptr [rbp-0x60]\n\u002B       dec      edx\n\u002B       mov      rax, rdx\n        jns      G_M30375_IG04\n \t\t\t\t\t\t;; size=85 bbWeight=4 PerfScore 95.00\n G_M30375_IG08:\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MathNet.Numerics.LinearAlgebra.Vector\u00601[double]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M30375_IG10\n-\t\t\t\t\t\t;; size=30 bbWeight=1 PerfScore 5.00\n-G_M30375_IG09:\n-       lea      rsi, [rbp-0x50]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       mov      gword ptr [rbp-0x70], rax\n-       jmp      SHORT G_M30375_IG11\n-\t\t\t\t\t\t;; size=23 bbWeight=0.50 PerfScore 5.38\n-G_M30375_IG10:\n        lea      rdx, [rbp-0x50]\n        mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MathNet.Numerics.LinearAlgebra.Vector\u00601[double]](System.Collections.Generic.IEnumerable\u00601[MathNet.Numerics.LinearAlgebra.Vector\u00601[double]],byref):MathNet.Numerics.LinearAlgebra.Vector\u00601[double]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        mov      gword ptr [rbp-0x70], rax\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.62\n-G_M30375_IG11:\n        cmp      byte  ptr [rbp-0x50], 0\n-       je       G_M30375_IG21\n\u002B       je       G_M30375_IG15\n        test     r15, r15\n-       je       G_M30375_IG20\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MathNet.Numerics.LinearAlgebra.Vector\u00601[double]]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M30375_IG13\n-\t\t\t\t\t\t;; size=49 bbWeight=1 PerfScore 8.25\n-G_M30375_IG12:\n-       lea      rsi, [rbp-0x58]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M30375_IG14\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M30375_IG13:\n\u002B       je       G_M30375_IG14\n        lea      rdx, [rbp-0x58]\n        mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MathNet.Numerics.LinearAlgebra.Vector\u00601[double]](System.Collections.Generic.IEnumerable\u00601[MathNet.Numerics.LinearAlgebra.Vector\u00601[double]],byref):MathNet.Numerics.LinearAlgebra.Vector\u00601[double]\n-       mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M30375_IG14:\n-       cmp      byte  ptr [rbp-0x58], 0\n-       je       G_M30375_IG21\n-       mov      rdi, gword ptr [rbp-0x70]\n\u002B       mov      rcx, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n\u002B       call     [rcx]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        mov      rsi, rax\n\u002B       cmp      byte  ptr [rbp-0x58], 0\n\u002B       je       G_M30375_IG15\n\u002B       mov      rdi, gword ptr [rbp-0x70]\n        mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Vector\u00601[double]:DotProduct(MathNet.Numerics.LinearAlgebra.Vector\u00601[double]):double:this\n        cmp      dword ptr [rdi], edi\n        call     [rax]MathNet.Numerics.LinearAlgebra.Vector\u00601[double]:DotProduct(MathNet.Numerics.LinearAlgebra.Vector\u00601[double]):double:this\n@@ -241,21 \u002B204,21 @@ G_M30375_IG14:\n        mov      r13, rax\n        xor      eax, eax\n        cmp      dword ptr [rbx\u002B0x10], 0\n-       jle      G_M30375_IG16\n-\t\t\t\t\t\t;; size=96 bbWeight=1 PerfScore 37.00\n-G_M30375_IG15:\n\u002B       jle      G_M30375_IG10\n\u002B\t\t\t\t\t\t;; size=177 bbWeight=1 PerfScore 49.75\n\u002BG_M30375_IG09:\n        cmp      eax, dword ptr [r14\u002B0x10]\n-       jae      G_M30375_IG19\n\u002B       jae      G_M30375_IG13\n        mov      rdi, gword ptr [r14\u002B0x08]\n        cmp      eax, dword ptr [rdi\u002B0x08]\n-       jae      G_M30375_IG22\n\u002B       jae      G_M30375_IG16\n        vmovsd   xmm0, qword ptr [rdi\u002B8*rax\u002B0x10]\n        vmovsd   qword ptr [rbp-0x48], xmm0\n        cmp      eax, dword ptr [rbx\u002B0x10]\n-       jae      G_M30375_IG19\n\u002B       jae      G_M30375_IG13\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        cmp      eax, dword ptr [rdi\u002B0x08]\n-       jae      G_M30375_IG22\n\u002B       jae      G_M30375_IG16\n        mov      qword ptr [rbp-0x68], rax\n        mov      rdi, gword ptr [rdi\u002B8*rax\u002B0x10]\n        mov      rsi, r13\n@@ -266,10 \u002B229,10 @@ G_M30375_IG15:\n        vmovsd   qword ptr [rbp-0x38], xmm0\n        mov      rax, qword ptr [rbp-0x68]\n        cmp      eax, dword ptr [r15\u002B0x10]\n-       jae      G_M30375_IG19\n\u002B       jae      G_M30375_IG13\n        mov      rdi, gword ptr [r15\u002B0x08]\n        cmp      eax, dword ptr [rdi\u002B0x08]\n-       jae      G_M30375_IG22\n\u002B       jae      G_M30375_IG16\n        mov      qword ptr [rbp-0x68], rax\n        mov      rcx, gword ptr [rdi\u002B8*rax\u002B0x10]\n        mov      gword ptr [rbp-0x78], rcx\n@@ -290,12 \u002B253,12 @@ G_M30375_IG15:\n        mov      rax, qword ptr [rbp-0x68]\n        inc      eax\n        cmp      eax, dword ptr [rbx\u002B0x10]\n-       jl       G_M30375_IG15\n\u002B       jl       G_M30375_IG09\n \t\t\t\t\t\t;; size=208 bbWeight=4 PerfScore 290.00\n-G_M30375_IG16:\n\u002BG_M30375_IG10:\n        mov      rax, r13\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M30375_IG17:\n\u002BG_M30375_IG11:\n        add      rsp, 88\n        pop      rbx\n        pop      r12\n@@ -305,32 \u002B268,32 @@ G_M30375_IG17:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M30375_IG18:\n\u002BG_M30375_IG12:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[double]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M30375_IG03\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M30375_IG19:\n\u002BG_M30375_IG13:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M30375_IG20:\n\u002BG_M30375_IG14:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M30375_IG21:\n\u002BG_M30375_IG15:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M30375_IG22:\n\u002BG_M30375_IG16:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 969, prolog size 32, PerfScore 678.00, instruction count 225, allocated bytes for code 969 (MethodHash=57ef8958) for method MathNet.Numerics.Optimization.LimitedMemoryBfgsMinimizer:ApplyLbfgsUpdate(MathNet.Numerics.Optimization.IObjectiveFunction,System.Collections.Generic.List\u00601[MathNet.Numerics.LinearAlgebra.Vector\u00601[double]],System.Collections.Generic.List\u00601[MathNet.Numerics.LinearAlgebra.Vector\u00601[double]],System.Collections.Generic.List\u00601[double]):MathNet.Numerics.LinearAlgebra.Vector\u00601[double]:this (FullOpts)\n\u002B; Total bytes of code 867, prolog size 32, PerfScore 662.50, instruction count 200, allocated bytes for code 867 (MethodHash=57ef8958) for method MathNet.Numerics.Optimization.LimitedMemoryBfgsMinimizer:ApplyLbfgsUpdate(MathNet.Numerics.Optimization.IObjectiveFunction,System.Collections.Generic.List\u00601[MathNet.Numerics.LinearAlgebra.Vector\u00601[double]],System.Collections.Generic.List\u00601[MathNet.Numerics.LinearAlgebra.Vector\u00601[double]],System.Collections.Generic.List\u00601[double]):MathNet.Numerics.LinearAlgebra.Vector\u00601[double]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":969,"DiffBytes":867},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollection[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,137 -\u003E 1,056 bytes (-81)","ExtraInfo":null,"Diff":"@@ -14,14 \u002B14,14 @@\n ;  V03 arg2         [V03,T05] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Nullable\u00601[int]]\u003E\n ;  V04 arg3         [V04,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T24] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n\u002B;  V06 loc0         [V06,T23] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n-;  V08 loc2         [V08,T25] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n-;  V09 loc3         [V09,T22] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V08 loc2         [V08,T24] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n\u002B;  V09 loc3         [V09,T21] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V12 tmp2         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V13 tmp3         [V13,T31] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V13 tmp3         [V13,T30] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V14 tmp4         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V15 tmp5         [V15    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V16 tmp6         [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -40,17 \u002B40,17 @@\n ;* V29 tmp19        [V29    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V30 tmp20        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V31 tmp21        [V31    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V32 tmp22        [V32,T23] (  3,  2   )     int  -\u003E  registers  \n-;  V33 tmp23        [V33,T06] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V34 tmp24        [V34    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V35 tmp25        [V35,T20] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V36 tmp26        [V36,T21] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V32 tmp22        [V32,T22] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V33 tmp23        [V33,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V34 tmp24        [V34    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V35 tmp25        [V35,T20] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V38 tmp28        [V38,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V39 tmp29        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V40 tmp30        [V40,T28] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V40 tmp30        [V40,T27] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V41 tmp31        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V42 tmp32        [V42,T19] (  8,  3   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V42 tmp32        [V42,T19] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V43 tmp33        [V43,T07] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V44 tmp34        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V45 tmp35        [V45,T10] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -59,13 \u002B59,13 @@\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V50 tmp40        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;  V51 tmp41        [V51,T16] (  2,  2   )     ref  -\u003E  [rbp-0x90]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp42        [V52,T26] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V53 tmp43        [V53,T27] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp41        [V51,T16] (  2,  2   )     ref  -\u003E  [rbp-0x88]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp42        [V52,T25] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V53 tmp43        [V53,T26] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V54 tmp44        [V54    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V23._name (fldOffset=0x0)\u0022 P-DEP\n ;* V55 tmp45        [V55    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V23._value (fldOffset=0x8)\u0022 P-DEP\n-;  V56 tmp46        [V56,T29] (  2,  1   )     ref  -\u003E  rax         \u0022field V24._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V57 tmp47        [V57,T30] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V24._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V56 tmp46        [V56,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V24._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V57 tmp47        [V57,T29] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V24._value (fldOffset=0x8)\u0022 P-INDEP\n ;  V58 tmp48        [V58,T17] (  2,  4   )    long  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V59 tmp49        [V59,T18] (  2,  4   )    long  -\u003E  rsi         \u0022argument with side effect\u0022\n ;  V60 rat0         [V60,T14] (  3,  4   )    long  -\u003E  rdi         \u0022runtime lookup\u0022\n@@ -73,7 \u002B73,7 @@\n ;  V62 rat2         [V62,T15] (  3,  4   )    long  -\u003E  rsi         \u0022runtime lookup\u0022\n ;  V63 rat3         [V63,T09] (  3,  5.60)    long  -\u003E  rsi         \u0022fgMakeTemp is creating a new local variable\u0022\n ;\n-; Lcl frame size = 168\n\u002B; Lcl frame size = 152\n \n G_M16123_IG01:\n        push     rbp\n@@ -82,14 \u002B82,14 @@ G_M16123_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 168\n-       lea      rbp, [rsp\u002B0xD0]\n\u002B       sub      rsp, 152\n\u002B       lea      rbp, [rsp\u002B0xC0]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x78], rax\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        mov      qword ptr [rbp-0x30], rsi\n-       mov      gword ptr [rbp-0x90], r9\n\u002B       mov      gword ptr [rbp-0x88], r9\n        mov      r15, rdi\n        mov      r14, rsi\n        mov      r13, rdx\n@@ -105,7 \u002B105,7 @@ G_M16123_IG02:\n        mov      rdi, qword ptr [r14\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M16123_IG31\n\u002B       je       G_M16123_IG28\n \t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 9.25\n G_M16123_IG03:\n        mov      rsi, r12\n@@ -155,90 \u002B155,70 @@ G_M16123_IG05:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Nullable\u00601[int]]:Render(MongoDB.Driver.RenderArgs\u00601[System.__Canon]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]:this\n        mov      r12, rax\n-       mov      rax, gword ptr [r12\u002B0x08]\n-       mov      gword ptr [rbp-0x80], rax\n-       test     rax, rax\n-       je       G_M16123_IG33\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n... diff truncated; middle omitted ...\n\u002B       je       SHORT G_M16123_IG17\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M16123_IG19:\n\u002BG_M16123_IG16:\n        xor      ecx, ecx\n-       jmp      SHORT G_M16123_IG22\n\u002B       jmp      SHORT G_M16123_IG19\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M16123_IG20:\n\u002BG_M16123_IG17:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -246,30 \u002B226,30 @@ G_M16123_IG20:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M16123_IG22\n\u002B       jmp      SHORT G_M16123_IG19\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M16123_IG21:\n\u002BG_M16123_IG18:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M16123_IG22:\n\u002BG_M16123_IG19:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M16123_IG23:\n\u002BG_M16123_IG20:\n        mov      dword ptr [rbp-0x6C], ecx\n        mov      rdi, gword ptr [r12\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M16123_IG34\n\u002B       je       G_M16123_IG31\n        cmp      dword ptr [rbp-0x6C], 0\n-       je       G_M16123_IG34\n\u002B       je       G_M16123_IG31\n        mov      rdi, qword ptr [r14\u002B0x18]\n        mov      rsi, qword ptr [rdi\u002B0x20]\n        test     rsi, rsi\n-       je       G_M16123_IG32\n\u002B       je       G_M16123_IG29\n \t\t\t\t\t\t;; size=56 bbWeight=1 PerfScore 14.75\n-G_M16123_IG24:\n\u002BG_M16123_IG21:\n        mov      rdi, r15\n        mov      rdx, r12\n        mov      rcx, rbx\n@@ -281,13 \u002B261,13 @@ G_M16123_IG24:\n        cmp      byte  ptr [r14], r14b\n        mov      rdi, r15\n        mov      rsi, r13\n-       mov      r9, gword ptr [rbp-0x90]\n\u002B       mov      r9, gword ptr [rbp-0x88]\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 16.25\n-G_M16123_IG25:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=74 bbWeight=1 PerfScore 16.25\n\u002BG_M16123_IG22:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -295,22 \u002B275,22 @@ G_M16123_IG25:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r13\n        mov      rcx, r14\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=64 bbWeight=1 PerfScore 11.25\n-G_M16123_IG26:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M16123_IG29\n-\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 2.00\n-G_M16123_IG27:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n\u002BG_M16123_IG23:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M16123_IG26\n\u002B\t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n\u002BG_M16123_IG24:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M16123_IG28\n\u002B       je       SHORT G_M16123_IG25\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -319,12 \u002B299,12 @@ G_M16123_IG27:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M16123_IG28:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n\u002BG_M16123_IG25:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M16123_IG29\n\u002B       je       SHORT G_M16123_IG26\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -333,12 \u002B313,12 @@ G_M16123_IG28:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M16123_IG29:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n\u002BG_M16123_IG26:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M16123_IG30:\n-       add      rsp, 168\n\u002BG_M16123_IG27:\n\u002B       add      rsp, 152\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -347,7 \u002B327,7 @@ G_M16123_IG30:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M16123_IG31:\n\u002BG_M16123_IG28:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -355,21 \u002B335,21 @@ G_M16123_IG31:\n        mov      rdi, rax\n        jmp      G_M16123_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M16123_IG32:\n\u002BG_M16123_IG29:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M16123_IG24\n\u002B       jmp      G_M16123_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M16123_IG33:\n\u002BG_M16123_IG30:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M16123_IG34:\n\u002BG_M16123_IG31:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -381,16 \u002B361,16 @@ G_M16123_IG34:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M16123_IG35:\n\u002BG_M16123_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M16123_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M16123_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M16123_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M16123_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M16123_IG37\n\u002B       je       SHORT G_M16123_IG34\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -399,12 \u002B379,12 @@ G_M16123_IG36:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M16123_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M16123_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M16123_IG38\n\u002B       je       SHORT G_M16123_IG35\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -413,14 \u002B393,14 @@ G_M16123_IG37:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M16123_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M16123_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M16123_IG39:\n\u002BG_M16123_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1137, prolog size 72, PerfScore 161.80, instruction count 268, allocated bytes for code 1137 (MethodHash=d8fec104) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollection[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 1056, prolog size 72, PerfScore 152.42, instruction count 254, allocated bytes for code 1056 (MethodHash=d8fec104) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollection[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1137,"DiffBytes":1056},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.RateCardSubscriptionService:ListAutoPaging(Stripe.V2.Billing.RateCardSubscriptionListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.RateCardSubscription]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.Billing.RateCardSubscriptionService:ListAutoPaging(Stripe.V2.Billing.RateCardSubscriptionListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.RateCardSubscription]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.RateCardSubscriptionService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.RateCardSubscriptionListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.RateCardSubscriptionListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.RateCardSubscription]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.RateCardSubscription]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.RateCardSubscription]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.RateCardSubscription]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.RateCardSubscription]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.RateCardSubscription]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.RateCardSubscription]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.RateCardSubscription]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.RateCardSubscription]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M5995_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M5995_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/billing/rate_card_subscriptions\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M5995_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M5995_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.RateCardSubscription]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.RateCardSubscription]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M5995_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M5995_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.RateCardSubscription]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Billing.RateCardSubscription]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M5995_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M5995_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=fa2de894) for method Stripe.V2.Billing.RateCardSubscriptionService:ListAutoPaging(Stripe.V2.Billing.RateCardSubscriptionListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.RateCardSubscription]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=fa2de894) for method Stripe.V2.Billing.RateCardSubscriptionService:ListAutoPaging(Stripe.V2.Billing.RateCardSubscriptionListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Billing.RateCardSubscription]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.Internal.SyncViaAsync:AwaitSyncOverAsync[System.__Canon](System.Threading.Tasks.Task\u00601[System.__Canon]):System.Threading.Tasks.ValueTask\u00601[System.__Canon] (FullOpts)","Category":"same-size","Description":"170 -\u003E 170 bytes (0)","ExtraInfo":null,"Diff":"@@ -1,109 \u002B1,109 @@\n ; Assembly listing for method Medallion.Threading.Internal.SyncViaAsync:AwaitSyncOverAsync[System.__Canon](System.Threading.Tasks.Task\u00601[System.__Canon]):System.Threading.Tasks.ValueTask\u00601[System.__Canon] (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 9 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 RetBuf       [V00,T00] ( 11,  7   )    long  -\u003E  rbx         single-def\n ;* V01 TypeCtx      [V01    ] (  0,  0   )    long  -\u003E  zero-ref    single-def\n ;  V02 arg0         [V02,T01] (  7,  4.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;* V03 loc0         [V03    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u003CSystem.Runtime.CompilerServices.TaskAwaiter\u00601[System.__Canon]\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V05 loc2         [V05    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V06 tmp2         [V06    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V08 tmp4         [V08    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.ValueTask\u00601[System.__Canon]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V10 tmp6         [V10    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.TaskAwaiter\u00601[System.__Canon]\u003E\n ;* V12 tmp8         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V16 tmp12        [V16    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.ValueTask\u00601[System.__Canon]\u003E\n ;* V17 tmp13        [V17    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V18 tmp14        [V18    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V19 tmp15        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V03.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;* V20 tmp16        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V08._obj (fldOffset=0x0)\u0022 P-INDEP\n ;* V21 tmp17        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V08._result (fldOffset=0x8)\u0022 P-INDEP\n ;* V22 tmp18        [V22    ] (  0,  0   )   short  -\u003E  zero-ref    single-def \u0022field V08._token (fldOffset=0x10)\u0022 P-INDEP\n ;* V23 tmp19        [V23    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V08._continueOnCapturedContext (fldOffset=0x12)\u0022 P-INDEP\n ;* V24 tmp20        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;* V25 tmp21        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V16._obj (fldOffset=0x0)\u0022 P-INDEP\n ;  V26 tmp22        [V26,T04] (  2,  1   )     ref  -\u003E  rsi         single-def \u0022field V16._result (fldOffset=0x8)\u0022 P-INDEP\n ;* V27 tmp23        [V27    ] (  0,  0   )   short  -\u003E  zero-ref    single-def \u0022field V16._token (fldOffset=0x10)\u0022 P-INDEP\n ;* V28 tmp24        [V28    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V16._continueOnCapturedContext (fldOffset=0x12)\u0022 P-INDEP\n ;  V29 rat0         [V29,T02] (  2,  4   )    long  -\u003E  rax         \u0022TLS field access\u0022\n ;  V30 rat1         [V30,T03] (  2,  4   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 0\n \n G_M8552_IG01:\n        push     rbp\n        push     r15\n        push     rbx\n        lea      rbp, [rsp\u002B0x10]\n        mov      rbx, rdi\n        mov      r15, rdx\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.00\n G_M8552_IG02:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        cmp      byte  ptr [rax\u002B0x10], 0\n        je       SHORT G_M8552_IG05\n \t\t\t\t\t\t;; size=32 bbWeight=1 PerfScore 6.75\n G_M8552_IG03:\n        mov      edi, dword ptr [r15\u002B0x34]\n        and      edi, 0xD1FFAB1E\n        cmp      edi, 0xD1FFAB1E\n        je       SHORT G_M8552_IG04\n        mov      rdi, r15\n        xor      esi, esi\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int)\n        call     [rax]System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int)\n \t\t\t\t\t\t;; size=35 bbWeight=0.50 PerfScore 3.62\n G_M8552_IG04:\n        mov      rsi, gword ptr [r15\u002B0x38]\n        xor      rdi, rdi\n        mov      gword ptr [rbx], rdi\n        lea      rdi, [rbx\u002B0x08]\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n        mov      word  ptr [rbx\u002B0x10], 0\n        mov      byte  ptr [rbx\u002B0x12], 1\n        jmp      SHORT G_M8552_IG06\n \t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 4.38\n G_M8552_IG05:\n        test     r15, r15\n        je       SHORT G_M8552_IG08\n        mov      rdi, rbx\n        mov      rsi, r15\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n        xor      rax, rax\n        mov      gword ptr [rbx\u002B0x08], rax\n        mov      word  ptr [rbx\u002B0x10], 0\n        mov      byte  ptr [rbx\u002B0x12], 1\n \t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 3.00\n G_M8552_IG06:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M8552_IG07:\n        pop      rbx\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 2.50\n G_M8552_IG08:\n        mov      edi, 9\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n ; Total bytes of code 170, prolog size 9, PerfScore 24.50, instruction count 46, allocated bytes for code 170 (MethodHash=52e1de97) for method Medallion.Threading.Internal.SyncViaAsync:AwaitSyncOverAsync[System.__Canon](System.Threading.Tasks.Task\u00601[System.__Canon]):System.Threading.Tasks.ValueTask\u00601[System.__Canon] (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":170,"DiffBytes":170},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Common.Utils.Boolean.Simplifier\u00601[int]:SimplifyTree(System.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[int]):System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int]:this (FullOpts)","Category":"improvement","Description":"2,002 -\u003E 1,931 bytes (-71)","ExtraInfo":null,"Diff":"@@ -8,69 \u002B8,69 @@\n ; 0 inlinees with PGO data; 66 single block inlinees; 11 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T23] (  3,  6   )     ref  -\u003E  r15         this class-hnd single-def \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.Simplifier\u00601[int]\u003E\n-;  V01 arg1         [V01,T12] (  9, 12   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[int]\u003E\n-;  V02 loc0         [V02,T29] (  6,  6.50)   ubyte  -\u003E  r13         single-def\n\u002B;  V00 this         [V00,T22] (  3,  6   )     ref  -\u003E  r15         this class-hnd single-def \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.Simplifier\u00601[int]\u003E\n\u002B;  V01 arg1         [V01,T11] (  9, 12   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[int]\u003E\n\u002B;  V02 loc0         [V02,T28] (  6,  6.50)   ubyte  -\u003E  r13         single-def\n ;  V03 loc1         [V03,T09] ( 10, 17   )     ref  -\u003E  r12         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int]]\u003E\n-;  V04 loc2         [V04,T27] (  4,  7.50)     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int],bool]\u003E\n-;  V05 loc3         [V05,T13] (  9, 14   )     ref  -\u003E  r15         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int]]\u003E\n\u002B;  V04 loc2         [V04,T26] (  4,  7.50)     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int],bool]\u003E\n\u002B;  V05 loc3         [V05,T12] (  9, 14   )     ref  -\u003E  r15         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int]]\u003E\n ;  V06 loc4         [V06,T01] ( 17, 42.50)     ref  -\u003E  rbx         class-hnd exact \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int]]\u003E\n ;  V07 loc5         [V07    ] (  7, 13   )  struct (24) [rbp-0x40]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Collections.Generic.HashSet\u00601\u002BEnumerator[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int]]\u003E\n ;  V08 loc6         [V08,T08] (  6, 18   )     ref  -\u003E  [rbp-0x70]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int]\u003E\n ;* V09 loc7         [V09    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int]]\u003E\n ;* V10 loc8         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int]\u003E\n ;* V11 loc9         [V11    ] (  0,  0   )     int  -\u003E  zero-ref   \n-;  V12 loc10        [V12,T53] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int]\u003E\n\u002B;  V12 loc10        [V12,T52] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int]\u003E\n ;* V13 loc11        [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int]\u003E\n ;  V14 loc12        [V14    ] (  7, 10.50)  struct (24) [rbp-0x58]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Collections.Generic.Dictionary\u00602\u002BKeyCollection\u002BEnumerator[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int],bool]\u003E\n-;  V15 loc13        [V15,T16] (  3, 12   )     ref  -\u003E  rdi         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int]\u003E\n-;  V16 loc14        [V16,T54] (  3,  1.50)     ref  -\u003E  r15         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[int]\u003E\n\u002B;  V15 loc13        [V15,T15] (  3, 12   )     ref  -\u003E  rdi         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int]\u003E\n\u002B;  V16 loc14        [V16,T53] (  3,  1.50)     ref  -\u003E  r15         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[int]\u003E\n ;# V17 OutArgs      [V17    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V18 tmp1         [V18,T30] (  3,  6   )     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int]]\u003E\n\u002B;  V18 tmp1         [V18,T29] (  3,  6   )     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int]]\u003E\n ;  V19 tmp2         [V19,T04] (  3, 24   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int]\u003E\n ;* V20 tmp3         [V20    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022non-inline candidate call\u0022\n-;  V21 tmp4         [V21,T31] (  3,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int],bool]\u003E\n-;  V22 tmp5         [V22,T32] (  3,  6   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int]]\u003E\n-;  V23 tmp6         [V23,T44] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int]]\u003E\n-;  V24 tmp7         [V24,T41] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.OrExpr\u00601[int]\u003E\n-;  V25 tmp8         [V25,T42] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.AndExpr\u00601[int]\u003E\n\u002B;  V21 tmp4         [V21,T30] (  3,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int],bool]\u003E\n\u002B;  V22 tmp5         [V22,T31] (  3,  6   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int]]\u003E\n\u002B;  V23 tmp6         [V23,T43] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int]]\u003E\n\u002B;  V24 tmp7         [V24,T39] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.OrExpr\u00601[int]\u003E\n\u002B;  V25 tmp8         [V25,T40] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.AndExpr\u00601[int]\u003E\n ;* V26 tmp9         [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int]]\u003E\n-;  V27 tmp10        [V27,T33] (  3,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.__Canon]\u003E\n\u002B;  V27 tmp10        [V27,T32] (  3,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.__Canon]\u003E\n ;* V28 tmp11        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int]]\u003E\n-;  V29 tmp12        [V29,T34] (  3,  6   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.__Canon]\u003E\n\u002B;  V29 tmp12        [V29,T33] (  3,  6   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.__Canon]\u003E\n ;* V30 tmp13        [V30    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.HashSet\u00601\u002BEnumerator[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int]]\u003E\n ;* V31 tmp14        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[int]\u003E\n-;  V32 tmp15        [V32,T35] (  3,  6   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int][]\u003E\n-;  V33 tmp16        [V33,T21] (  4,  8   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n\u002B;  V32 tmp15        [V32,T34] (  3,  6   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int][]\u003E\n\u002B;  V33 tmp16        [V33,T20] (  4,  8   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n ;* V34 tmp17        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int]]\u003E\n-;  V35 tmp18        [V35,T36] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.__Canon]\u003E\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=14 bbWeight=4 PerfScore 16.00\n G_M32591_IG22:\n        cmp      eax, dword ptr [r12\u002B0x10]\n@@ -466,7 \u002B466,7 @@ G_M32591_IG29:\n        mov      r13, rax\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M32591_IG57\n\u002B       je       G_M32591_IG55\n \t\t\t\t\t\t;; size=84 bbWeight=0.50 PerfScore 6.00\n G_M32591_IG30:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.EqualityComparer\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int]]:\u003CDefault\u003Ek__BackingField\n@@ -501,7 \u002B501,7 @@ G_M32591_IG31:\n        mov      r14, rax\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M32591_IG56\n\u002B       je       G_M32591_IG54\n \t\t\t\t\t\t;; size=55 bbWeight=0.50 PerfScore 3.12\n G_M32591_IG32:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.EqualityComparer\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int]]:\u003CDefault\u003Ek__BackingField\n@@ -533,7 \u002B533,7 @@ G_M32591_IG33:\n G_M32591_IG34:\n        mov      rax, gword ptr [rbx\u002B0x08]\n        cmp      dword ptr [rax\u002B0x08], 0\n-       jbe      G_M32591_IG58\n\u002B       jbe      G_M32591_IG56\n        mov      rax, gword ptr [rax\u002B0x10]\n        jmp      G_M32591_IG44\n \t\t\t\t\t\t;; size=23 bbWeight=0.50 PerfScore 4.50\n@@ -547,7 \u002B547,7 @@ G_M32591_IG35:\n G_M32591_IG36:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M32591_IG55\n\u002B       je       G_M32591_IG53\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n G_M32591_IG37:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Data.Entity.Core.Common.Utils.Boolean.TrueExpr\u00601[int]:_value\n@@ -575,14 \u002B575,14 @@ G_M32591_IG41:\n G_M32591_IG42:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M32591_IG52\n\u002B       je       G_M32591_IG50\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n G_M32591_IG43:\n        mov      rax, 0xD1FFAB1E      ; data for System.Data.Entity.Core.Common.Utils.Boolean.TrueExpr\u00601[int]:_value\n        mov      rax, gword ptr [rax]\n \t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 1.12\n G_M32591_IG44:\n-       add      rsp, 120\n\u002B       add      rsp, 104\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -592,101 \u002B592,83 @@ G_M32591_IG44:\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n G_M32591_IG45:\n-       mov      rax, gword ptr [rbp-0x90]\n-       mov      rsi, rax\n\u002B       mov      rax, gword ptr [rbp-0x88]\n\u002B       mov      rdx, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Common.Utils.Boolean.NotExpr\u00601[int]\n-       cmp      qword ptr [rsi], rdi\n-       jne      G_M32591_IG49\n-\t\t\t\t\t\t;; size=29 bbWeight=1 PerfScore 4.50\n\u002B       cmp      qword ptr [rdx], rdi\n\u002B       jne      SHORT G_M32591_IG47\n\u002B\t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 4.50\n G_M32591_IG46:\n-       mov      rax, gword ptr [rsi\u002B0x08]\n-       mov      gword ptr [rbp-0x88], rax\n-       test     rax, rax\n-       je       G_M32591_IG50\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int]]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M32591_IG47\n-       lea      rsi, [rbp-0x60]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M32591_IG48\n-\t\t\t\t\t\t;; size=69 bbWeight=2 PerfScore 38.00\n-G_M32591_IG47:\n\u002B       mov      rsi, gword ptr [rdx\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M32591_IG48\n        lea      rdx, [rbp-0x60]\n-       mov      rsi, gword ptr [rbp-0x88]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int]](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int]],byref):System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=2 PerfScore 10.00\n-G_M32591_IG48:\n-       cmp      byte  ptr [rbp-0x60], 0\n-       je       SHORT G_M32591_IG51\n-       mov      rdi, r14\n        mov      rsi, rax\n\u002B       cmp      byte  ptr [rbp-0x60], 0\n\u002B       je       SHORT G_M32591_IG49\n\u002B       mov      rdi, r14\n        mov      edx, 1\n        mov      ecx, 1\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary\u00602[System.__Canon,bool]:TryInsert(System.__Canon,bool,byte):bool:this\n        call     [rax]System.Collections.Generic.Dictionary\u00602[System.__Canon,bool]:TryInsert(System.__Canon,bool,byte):bool:this\n        jmp      G_M32591_IG14\n-\t\t\t\t\t\t;; size=39 bbWeight=2 PerfScore 16.50\n-G_M32591_IG49:\n\u002B\t\t\t\t\t\t;; size=74 bbWeight=2 PerfScore 31.00\n\u002BG_M32591_IG47:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rax]CORINFO_HELP_CHKCASTCLASS\n        int3     \n \t\t\t\t\t\t;; size=16 bbWeight=0 PerfScore 0.00\n-G_M32591_IG50:\n\u002BG_M32591_IG48:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M32591_IG51:\n\u002BG_M32591_IG49:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M32591_IG52:\n\u002BG_M32591_IG50:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Common.Utils.Boolean.TrueExpr\u00601[int]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M32591_IG43\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M32591_IG53:\n\u002BG_M32591_IG51:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M32591_IG54:\n\u002BG_M32591_IG52:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M32591_IG17\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M32591_IG55:\n\u002BG_M32591_IG53:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Common.Utils.Boolean.TrueExpr\u00601[int]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M32591_IG37\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M32591_IG56:\n\u002BG_M32591_IG54:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.EqualityComparer\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M32591_IG32\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M32591_IG57:\n\u002BG_M32591_IG55:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.EqualityComparer\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M32591_IG30\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M32591_IG58:\n\u002BG_M32591_IG56:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n@@ -697,5 \u002B679,5 @@ RWD00  \tdd\tG_M32591_IG45 - G_M32591_IG02\n        \tdd\tG_M32591_IG39 - G_M32591_IG02\n \n \n-; Total bytes of code 2002, prolog size 43, PerfScore 854.58, instruction count 438, allocated bytes for code 2002 (MethodHash=8fc380b0) for method System.Data.Entity.Core.Common.Utils.Boolean.Simplifier\u00601[int]:SimplifyTree(System.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[int]):System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int]:this (FullOpts)\n\u002B; Total bytes of code 1931, prolog size 43, PerfScore 821.08, instruction count 424, allocated bytes for code 1931 (MethodHash=8fc380b0) for method System.Data.Entity.Core.Common.Utils.Boolean.Simplifier\u00601[int]:SimplifyTree(System.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[int]):System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[int]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":2002,"DiffBytes":1931},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollection[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,137 -\u003E 1,056 bytes (-81)","ExtraInfo":null,"Diff":"@@ -14,14 \u002B14,14 @@\n ;  V03 arg2         [V03,T05] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Numerics.Vector\u00601[float]]\u003E\n ;  V04 arg3         [V04,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T24] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n\u002B;  V06 loc0         [V06,T23] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V08 loc2         [V08,T25] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n-;  V09 loc3         [V09,T22] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V08 loc2         [V08,T24] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n\u002B;  V09 loc3         [V09,T21] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V12 tmp2         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V13 tmp3         [V13,T31] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V13 tmp3         [V13,T30] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V14 tmp4         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V15 tmp5         [V15    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V16 tmp6         [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -40,17 \u002B40,17 @@\n ;* V29 tmp19        [V29    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V30 tmp20        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V31 tmp21        [V31    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V32 tmp22        [V32,T23] (  3,  2   )     int  -\u003E  registers  \n-;  V33 tmp23        [V33,T06] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V34 tmp24        [V34    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V35 tmp25        [V35,T20] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V36 tmp26        [V36,T21] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V32 tmp22        [V32,T22] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V33 tmp23        [V33,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V34 tmp24        [V34    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V35 tmp25        [V35,T20] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V38 tmp28        [V38,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V39 tmp29        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V40 tmp30        [V40,T28] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V40 tmp30        [V40,T27] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V41 tmp31        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V42 tmp32        [V42,T19] (  8,  3   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V42 tmp32        [V42,T19] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V43 tmp33        [V43,T07] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V44 tmp34        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V45 tmp35        [V45,T10] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -59,13 \u002B59,13 @@\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V50 tmp40        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;  V51 tmp41        [V51,T16] (  2,  2   )     ref  -\u003E  [rbp-0x90]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp42        [V52,T26] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V53 tmp43        [V53,T27] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp41        [V51,T16] (  2,  2   )     ref  -\u003E  [rbp-0x88]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp42        [V52,T25] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V53 tmp43        [V53,T26] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V54 tmp44        [V54    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V23._name (fldOffset=0x0)\u0022 P-DEP\n ;* V55 tmp45        [V55    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V23._value (fldOffset=0x8)\u0022 P-DEP\n-;  V56 tmp46        [V56,T29] (  2,  1   )     ref  -\u003E  rax         \u0022field V24._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V57 tmp47        [V57,T30] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V24._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V56 tmp46        [V56,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V24._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V57 tmp47        [V57,T29] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V24._value (fldOffset=0x8)\u0022 P-INDEP\n ;  V58 tmp48        [V58,T17] (  2,  4   )    long  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V59 tmp49        [V59,T18] (  2,  4   )    long  -\u003E  rsi         \u0022argument with side effect\u0022\n ;  V60 rat0         [V60,T14] (  3,  4   )    long  -\u003E  rdi         \u0022runtime lookup\u0022\n@@ -73,7 \u002B73,7 @@\n ;  V62 rat2         [V62,T15] (  3,  4   )    long  -\u003E  rsi         \u0022runtime lookup\u0022\n ;  V63 rat3         [V63,T09] (  3,  5.60)    long  -\u003E  rsi         \u0022fgMakeTemp is creating a new local variable\u0022\n ;\n-; Lcl frame size = 168\n\u002B; Lcl frame size = 152\n \n G_M41307_IG01:\n        push     rbp\n@@ -82,14 \u002B82,14 @@ G_M41307_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 168\n-       lea      rbp, [rsp\u002B0xD0]\n\u002B       sub      rsp, 152\n\u002B       lea      rbp, [rsp\u002B0xC0]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x78], rax\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        mov      qword ptr [rbp-0x30], rsi\n-       mov      gword ptr [rbp-0x90], r9\n\u002B       mov      gword ptr [rbp-0x88], r9\n        mov      r15, rdi\n        mov      r14, rsi\n        mov      r13, rdx\n@@ -105,7 \u002B105,7 @@ G_M41307_IG02:\n        mov      rdi, qword ptr [r14\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M41307_IG31\n\u002B       je       G_M41307_IG28\n \t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 9.25\n G_M41307_IG03:\n        mov      rsi, r12\n@@ -155,90 \u002B155,70 @@ G_M41307_IG05:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Numerics.Vector\u00601[float]]:Render(MongoDB.Driver.RenderArgs\u00601[System.__Canon]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]:this\n        mov      r12, rax\n-       mov      rax, gword ptr [r12\u002B0x08]\n-       mov      gword ptr [rbp-0x80], rax\n-       test     rax, rax\n-       je       G_M41307_IG33\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M41307_IG19:\n\u002BG_M41307_IG16:\n        xor      ecx, ecx\n-       jmp      SHORT G_M41307_IG22\n\u002B       jmp      SHORT G_M41307_IG19\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M41307_IG20:\n\u002BG_M41307_IG17:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -246,30 \u002B226,30 @@ G_M41307_IG20:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M41307_IG22\n\u002B       jmp      SHORT G_M41307_IG19\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M41307_IG21:\n\u002BG_M41307_IG18:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M41307_IG22:\n\u002BG_M41307_IG19:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M41307_IG23:\n\u002BG_M41307_IG20:\n        mov      dword ptr [rbp-0x6C], ecx\n        mov      rdi, gword ptr [r12\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M41307_IG34\n\u002B       je       G_M41307_IG31\n        cmp      dword ptr [rbp-0x6C], 0\n-       je       G_M41307_IG34\n\u002B       je       G_M41307_IG31\n        mov      rdi, qword ptr [r14\u002B0x18]\n        mov      rsi, qword ptr [rdi\u002B0x20]\n        test     rsi, rsi\n-       je       G_M41307_IG32\n\u002B       je       G_M41307_IG29\n \t\t\t\t\t\t;; size=56 bbWeight=1 PerfScore 14.75\n-G_M41307_IG24:\n\u002BG_M41307_IG21:\n        mov      rdi, r15\n        mov      rdx, r12\n        mov      rcx, rbx\n@@ -281,13 \u002B261,13 @@ G_M41307_IG24:\n        cmp      byte  ptr [r14], r14b\n        mov      rdi, r15\n        mov      rsi, r13\n-       mov      r9, gword ptr [rbp-0x90]\n\u002B       mov      r9, gword ptr [rbp-0x88]\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 16.25\n-G_M41307_IG25:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=74 bbWeight=1 PerfScore 16.25\n\u002BG_M41307_IG22:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -295,22 \u002B275,22 @@ G_M41307_IG25:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r13\n        mov      rcx, r14\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=64 bbWeight=1 PerfScore 11.25\n-G_M41307_IG26:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M41307_IG29\n-\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 2.00\n-G_M41307_IG27:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n\u002BG_M41307_IG23:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M41307_IG26\n\u002B\t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n\u002BG_M41307_IG24:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M41307_IG28\n\u002B       je       SHORT G_M41307_IG25\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -319,12 \u002B299,12 @@ G_M41307_IG27:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M41307_IG28:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n\u002BG_M41307_IG25:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M41307_IG29\n\u002B       je       SHORT G_M41307_IG26\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -333,12 \u002B313,12 @@ G_M41307_IG28:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M41307_IG29:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n\u002BG_M41307_IG26:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M41307_IG30:\n-       add      rsp, 168\n\u002BG_M41307_IG27:\n\u002B       add      rsp, 152\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -347,7 \u002B327,7 @@ G_M41307_IG30:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M41307_IG31:\n\u002BG_M41307_IG28:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -355,21 \u002B335,21 @@ G_M41307_IG31:\n        mov      rdi, rax\n        jmp      G_M41307_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M41307_IG32:\n\u002BG_M41307_IG29:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M41307_IG24\n\u002B       jmp      G_M41307_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M41307_IG33:\n\u002BG_M41307_IG30:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M41307_IG34:\n\u002BG_M41307_IG31:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -381,16 \u002B361,16 @@ G_M41307_IG34:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M41307_IG35:\n\u002BG_M41307_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M41307_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M41307_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M41307_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M41307_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M41307_IG37\n\u002B       je       SHORT G_M41307_IG34\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -399,12 \u002B379,12 @@ G_M41307_IG36:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M41307_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M41307_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M41307_IG38\n\u002B       je       SHORT G_M41307_IG35\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -413,14 \u002B393,14 @@ G_M41307_IG37:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M41307_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M41307_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M41307_IG39:\n\u002BG_M41307_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1137, prolog size 72, PerfScore 161.80, instruction count 268, allocated bytes for code 1137 (MethodHash=3bc95ea4) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollection[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 1056, prolog size 72, PerfScore 152.42, instruction count 254, allocated bytes for code 1056 (MethodHash=3bc95ea4) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollection[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1137,"DiffBytes":1056},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Commerce.ProductCatalog.ImportService:ListAutoPaging(Stripe.V2.Commerce.ProductCatalog.ImportListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Commerce.ProductCatalogImport]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.Commerce.ProductCatalog.ImportService:ListAutoPaging(Stripe.V2.Commerce.ProductCatalog.ImportListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Commerce.ProductCatalogImport]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Commerce.ProductCatalog.ImportService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Commerce.ProductCatalog.ImportListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Commerce.ProductCatalog.ImportListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Commerce.ProductCatalogImport]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Commerce.ProductCatalogImport]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Commerce.ProductCatalogImport]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Commerce.ProductCatalogImport]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Commerce.ProductCatalogImport]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Commerce.ProductCatalogImport]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Commerce.ProductCatalogImport]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Commerce.ProductCatalogImport]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Commerce.ProductCatalogImport]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M37805_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M37805_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/commerce/product_catalog/imports\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M37805_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M37805_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Commerce.ProductCatalogImport]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Commerce.ProductCatalogImport]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M37805_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M37805_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Commerce.ProductCatalogImport]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Commerce.ProductCatalogImport]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M37805_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M37805_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=6cf66c52) for method Stripe.V2.Commerce.ProductCatalog.ImportService:ListAutoPaging(Stripe.V2.Commerce.ProductCatalog.ImportListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Commerce.ProductCatalogImport]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=6cf66c52) for method Stripe.V2.Commerce.ProductCatalog.ImportService:ListAutoPaging(Stripe.V2.Commerce.ProductCatalog.ImportListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Commerce.ProductCatalogImport]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.Internal.SyncViaAsync:AwaitSyncOverAsync[byte](System.Threading.Tasks.Task\u00601[byte]):System.Threading.Tasks.ValueTask\u00601[byte] (FullOpts)","Category":"same-size","Description":"137 -\u003E 137 bytes (0)","ExtraInfo":null,"Diff":"@@ -1,94 \u002B1,94 @@\n ; Assembly listing for method Medallion.Threading.Internal.SyncViaAsync:AwaitSyncOverAsync[byte](System.Threading.Tasks.Task\u00601[byte]):System.Threading.Tasks.ValueTask\u00601[byte] (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 9 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 arg0         [V00,T00] (  7,  4.50)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Threading.Tasks.Task\u00601[byte]\u003E\n ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u003CSystem.Runtime.CompilerServices.TaskAwaiter\u00601[byte]\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V03 tmp1         [V03    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CSystem.Threading.Tasks.ValueTask\u00601[byte]\u003E\n ;* V04 tmp2         [V04    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CSystem.Threading.Tasks.ValueTask\u00601[byte]\u003E\n ;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.ValueTask\u00601[byte]\u003E\n ;* V06 tmp4         [V06    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.TaskAwaiter\u00601[byte]\u003E\n ;* V07 tmp5         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[byte]\u003E\n ;* V08 tmp6         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[byte]\u003E\n ;* V09 tmp7         [V09    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V10 tmp8         [V10    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.ValueTask\u00601[byte]\u003E\n ;* V11 tmp9         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V01.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;* V12 tmp10        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V05._obj (fldOffset=0x0)\u0022 P-INDEP\n ;* V13 tmp11        [V13    ] (  0,  0   )   short  -\u003E  zero-ref    single-def \u0022field V05._token (fldOffset=0x8)\u0022 P-INDEP\n ;* V14 tmp12        [V14    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V05._result (fldOffset=0xa)\u0022 P-INDEP\n ;* V15 tmp13        [V15    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V05._continueOnCapturedContext (fldOffset=0xb)\u0022 P-INDEP\n ;* V16 tmp14        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V06.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;* V17 tmp15        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._obj (fldOffset=0x0)\u0022 P-INDEP\n ;* V18 tmp16        [V18    ] (  0,  0   )   short  -\u003E  zero-ref    single-def \u0022field V10._token (fldOffset=0x8)\u0022 P-INDEP\n ;  V19 tmp17        [V19,T03] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V10._result (fldOffset=0xa)\u0022 P-INDEP\n ;* V20 tmp18        [V20    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V10._continueOnCapturedContext (fldOffset=0xb)\u0022 P-INDEP\n ;  V21 rat0         [V21,T01] (  2,  4   )    long  -\u003E  rax         \u0022TLS field access\u0022\n ;  V22 rat1         [V22,T02] (  2,  4   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M35940_IG01:\n        push     rbp\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x10]\n        mov      rbx, rdi\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.75\n G_M35940_IG02:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        cmp      byte  ptr [rax\u002B0x10], 0\n        je       SHORT G_M35940_IG06\n \t\t\t\t\t\t;; size=32 bbWeight=1 PerfScore 6.75\n G_M35940_IG03:\n        mov      edi, dword ptr [rbx\u002B0x34]\n        and      edi, 0xD1FFAB1E\n        cmp      edi, 0xD1FFAB1E\n        je       SHORT G_M35940_IG04\n        mov      rdi, rbx\n        xor      esi, esi\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int)\n        call     [rax]System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int)\n \t\t\t\t\t\t;; size=34 bbWeight=0.50 PerfScore 3.62\n G_M35940_IG04:\n        movzx    rdx, byte  ptr [rbx\u002B0x38]\n        xor      rax, rax\n        shl      edx, 16\n        or       edx, 0xD1FFAB1E\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 1.50\n G_M35940_IG05:\n        add      rsp, 8\n        pop      rbx\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n G_M35940_IG06:\n        test     rbx, rbx\n        je       SHORT G_M35940_IG08\n        mov      edx, 0xD1FFAB1E\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 0.88\n G_M35940_IG07:\n        add      rsp, 8\n        pop      rbx\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n G_M35940_IG08:\n        mov      edi, 9\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n ; Total bytes of code 137, prolog size 8, PerfScore 18.75, instruction count 39, allocated bytes for code 137 (MethodHash=5178739b) for method Medallion.Threading.Internal.SyncViaAsync:AwaitSyncOverAsync[byte](System.Threading.Tasks.Task\u00601[byte]):System.Threading.Tasks.ValueTask\u00601[byte] (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":137,"DiffBytes":137},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Common.Utils.Boolean.Simplifier\u00601[long]:SimplifyTree(System.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[long]):System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long]:this (FullOpts)","Category":"improvement","Description":"2,002 -\u003E 1,931 bytes (-71)","ExtraInfo":null,"Diff":"@@ -8,69 \u002B8,69 @@\n ; 0 inlinees with PGO data; 66 single block inlinees; 11 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T23] (  3,  6   )     ref  -\u003E  r15         this class-hnd single-def \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.Simplifier\u00601[long]\u003E\n-;  V01 arg1         [V01,T12] (  9, 12   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[long]\u003E\n-;  V02 loc0         [V02,T29] (  6,  6.50)   ubyte  -\u003E  r13         single-def\n\u002B;  V00 this         [V00,T22] (  3,  6   )     ref  -\u003E  r15         this class-hnd single-def \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.Simplifier\u00601[long]\u003E\n\u002B;  V01 arg1         [V01,T11] (  9, 12   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[long]\u003E\n\u002B;  V02 loc0         [V02,T28] (  6,  6.50)   ubyte  -\u003E  r13         single-def\n ;  V03 loc1         [V03,T09] ( 10, 17   )     ref  -\u003E  r12         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long]]\u003E\n-;  V04 loc2         [V04,T27] (  4,  7.50)     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long],bool]\u003E\n-;  V05 loc3         [V05,T13] (  9, 14   )     ref  -\u003E  r15         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long]]\u003E\n\u002B;  V04 loc2         [V04,T26] (  4,  7.50)     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long],bool]\u003E\n\u002B;  V05 loc3         [V05,T12] (  9, 14   )     ref  -\u003E  r15         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long]]\u003E\n ;  V06 loc4         [V06,T01] ( 17, 42.50)     ref  -\u003E  rbx         class-hnd exact \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long]]\u003E\n ;  V07 loc5         [V07    ] (  7, 13   )  struct (24) [rbp-0x40]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Collections.Generic.HashSet\u00601\u002BEnumerator[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long]]\u003E\n ;  V08 loc6         [V08,T08] (  6, 18   )     ref  -\u003E  [rbp-0x70]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long]\u003E\n ;* V09 loc7         [V09    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long]]\u003E\n ;* V10 loc8         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long]\u003E\n ;* V11 loc9         [V11    ] (  0,  0   )     int  -\u003E  zero-ref   \n-;  V12 loc10        [V12,T53] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long]\u003E\n\u002B;  V12 loc10        [V12,T52] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long]\u003E\n ;* V13 loc11        [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long]\u003E\n ;  V14 loc12        [V14    ] (  7, 10.50)  struct (24) [rbp-0x58]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Collections.Generic.Dictionary\u00602\u002BKeyCollection\u002BEnumerator[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long],bool]\u003E\n-;  V15 loc13        [V15,T16] (  3, 12   )     ref  -\u003E  rdi         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long]\u003E\n-;  V16 loc14        [V16,T54] (  3,  1.50)     ref  -\u003E  r15         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[long]\u003E\n\u002B;  V15 loc13        [V15,T15] (  3, 12   )     ref  -\u003E  rdi         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long]\u003E\n\u002B;  V16 loc14        [V16,T53] (  3,  1.50)     ref  -\u003E  r15         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[long]\u003E\n ;# V17 OutArgs      [V17    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V18 tmp1         [V18,T30] (  3,  6   )     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long]]\u003E\n\u002B;  V18 tmp1         [V18,T29] (  3,  6   )     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long]]\u003E\n ;  V19 tmp2         [V19,T04] (  3, 24   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long]\u003E\n ;* V20 tmp3         [V20    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022non-inline candidate call\u0022\n-;  V21 tmp4         [V21,T31] (  3,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long],bool]\u003E\n-;  V22 tmp5         [V22,T32] (  3,  6   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long]]\u003E\n-;  V23 tmp6         [V23,T44] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long]]\u003E\n-;  V24 tmp7         [V24,T41] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.OrExpr\u00601[long]\u003E\n-;  V25 tmp8         [V25,T42] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.AndExpr\u00601[long]\u003E\n\u002B;  V21 tmp4         [V21,T30] (  3,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long],bool]\u003E\n\u002B;  V22 tmp5         [V22,T31] (  3,  6   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long]]\u003E\n\u002B;  V23 tmp6         [V23,T43] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long]]\u003E\n\u002B;  V24 tmp7         [V24,T39] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.OrExpr\u00601[long]\u003E\n\u002B;  V25 tmp8         [V25,T40] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.AndExpr\u00601[long]\u003E\n ;* V26 tmp9         [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long]]\u003E\n-;  V27 tmp10        [V27,T33] (  3,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.__Canon]\u003E\n\u002B;  V27 tmp10        [V27,T32] (  3,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.__Canon]\u003E\n ;* V28 tmp11        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long]]\u003E\n-;  V29 tmp12        [V29,T34] (  3,  6   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.__Canon]\u003E\n\u002B;  V29 tmp12        [V29,T33] (  3,  6   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.__Canon]\u003E\n ;* V30 tmp13        [V30    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.HashSet\u00601\u002BEnumerator[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long]]\u003E\n ;* V31 tmp14        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[long]\u003E\n-;  V32 tmp15        [V32,T35] (  3,  6   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long][]\u003E\n-;  V33 tmp16        [V33,T21] (  4,  8   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n\u002B;  V32 tmp15        [V32,T34] (  3,  6   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long][]\u003E\n\u002B;  V33 tmp16        [V33,T20] (  4,  8   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n ;* V34 tmp17        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long]]\u003E\n... diff truncated; middle omitted ...\n G_M31670_IG22:\n        cmp      eax, dword ptr [r12\u002B0x10]\n@@ -466,7 \u002B466,7 @@ G_M31670_IG29:\n        mov      r13, rax\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M31670_IG57\n\u002B       je       G_M31670_IG55\n \t\t\t\t\t\t;; size=84 bbWeight=0.50 PerfScore 6.00\n G_M31670_IG30:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.EqualityComparer\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long]]:\u003CDefault\u003Ek__BackingField\n@@ -501,7 \u002B501,7 @@ G_M31670_IG31:\n        mov      r14, rax\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M31670_IG56\n\u002B       je       G_M31670_IG54\n \t\t\t\t\t\t;; size=55 bbWeight=0.50 PerfScore 3.12\n G_M31670_IG32:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.EqualityComparer\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long]]:\u003CDefault\u003Ek__BackingField\n@@ -533,7 \u002B533,7 @@ G_M31670_IG33:\n G_M31670_IG34:\n        mov      rax, gword ptr [rbx\u002B0x08]\n        cmp      dword ptr [rax\u002B0x08], 0\n-       jbe      G_M31670_IG58\n\u002B       jbe      G_M31670_IG56\n        mov      rax, gword ptr [rax\u002B0x10]\n        jmp      G_M31670_IG44\n \t\t\t\t\t\t;; size=23 bbWeight=0.50 PerfScore 4.50\n@@ -547,7 \u002B547,7 @@ G_M31670_IG35:\n G_M31670_IG36:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M31670_IG55\n\u002B       je       G_M31670_IG53\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n G_M31670_IG37:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Data.Entity.Core.Common.Utils.Boolean.TrueExpr\u00601[long]:_value\n@@ -575,14 \u002B575,14 @@ G_M31670_IG41:\n G_M31670_IG42:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M31670_IG52\n\u002B       je       G_M31670_IG50\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n G_M31670_IG43:\n        mov      rax, 0xD1FFAB1E      ; data for System.Data.Entity.Core.Common.Utils.Boolean.TrueExpr\u00601[long]:_value\n        mov      rax, gword ptr [rax]\n \t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 1.12\n G_M31670_IG44:\n-       add      rsp, 120\n\u002B       add      rsp, 104\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -592,101 \u002B592,83 @@ G_M31670_IG44:\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n G_M31670_IG45:\n-       mov      rax, gword ptr [rbp-0x90]\n-       mov      rsi, rax\n\u002B       mov      rax, gword ptr [rbp-0x88]\n\u002B       mov      rdx, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Common.Utils.Boolean.NotExpr\u00601[long]\n-       cmp      qword ptr [rsi], rdi\n-       jne      G_M31670_IG49\n-\t\t\t\t\t\t;; size=29 bbWeight=1 PerfScore 4.50\n\u002B       cmp      qword ptr [rdx], rdi\n\u002B       jne      SHORT G_M31670_IG47\n\u002B\t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 4.50\n G_M31670_IG46:\n-       mov      rax, gword ptr [rsi\u002B0x08]\n-       mov      gword ptr [rbp-0x88], rax\n-       test     rax, rax\n-       je       G_M31670_IG50\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long]]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M31670_IG47\n-       lea      rsi, [rbp-0x60]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M31670_IG48\n-\t\t\t\t\t\t;; size=69 bbWeight=2 PerfScore 38.00\n-G_M31670_IG47:\n\u002B       mov      rsi, gword ptr [rdx\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M31670_IG48\n        lea      rdx, [rbp-0x60]\n-       mov      rsi, gword ptr [rbp-0x88]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long]](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long]],byref):System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=2 PerfScore 10.00\n-G_M31670_IG48:\n-       cmp      byte  ptr [rbp-0x60], 0\n-       je       SHORT G_M31670_IG51\n-       mov      rdi, r14\n        mov      rsi, rax\n\u002B       cmp      byte  ptr [rbp-0x60], 0\n\u002B       je       SHORT G_M31670_IG49\n\u002B       mov      rdi, r14\n        mov      edx, 1\n        mov      ecx, 1\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary\u00602[System.__Canon,bool]:TryInsert(System.__Canon,bool,byte):bool:this\n        call     [rax]System.Collections.Generic.Dictionary\u00602[System.__Canon,bool]:TryInsert(System.__Canon,bool,byte):bool:this\n        jmp      G_M31670_IG14\n-\t\t\t\t\t\t;; size=39 bbWeight=2 PerfScore 16.50\n-G_M31670_IG49:\n\u002B\t\t\t\t\t\t;; size=74 bbWeight=2 PerfScore 31.00\n\u002BG_M31670_IG47:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rax]CORINFO_HELP_CHKCASTCLASS\n        int3     \n \t\t\t\t\t\t;; size=16 bbWeight=0 PerfScore 0.00\n-G_M31670_IG50:\n\u002BG_M31670_IG48:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M31670_IG51:\n\u002BG_M31670_IG49:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M31670_IG52:\n\u002BG_M31670_IG50:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Common.Utils.Boolean.TrueExpr\u00601[long]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M31670_IG43\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M31670_IG53:\n\u002BG_M31670_IG51:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M31670_IG54:\n\u002BG_M31670_IG52:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M31670_IG17\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M31670_IG55:\n\u002BG_M31670_IG53:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Common.Utils.Boolean.TrueExpr\u00601[long]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M31670_IG37\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M31670_IG56:\n\u002BG_M31670_IG54:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.EqualityComparer\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M31670_IG32\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M31670_IG57:\n\u002BG_M31670_IG55:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.EqualityComparer\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M31670_IG30\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M31670_IG58:\n\u002BG_M31670_IG56:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n@@ -697,5 \u002B679,5 @@ RWD00  \tdd\tG_M31670_IG45 - G_M31670_IG02\n        \tdd\tG_M31670_IG39 - G_M31670_IG02\n \n \n-; Total bytes of code 2002, prolog size 43, PerfScore 854.58, instruction count 438, allocated bytes for code 2002 (MethodHash=f3f88449) for method System.Data.Entity.Core.Common.Utils.Boolean.Simplifier\u00601[long]:SimplifyTree(System.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[long]):System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long]:this (FullOpts)\n\u002B; Total bytes of code 1931, prolog size 43, PerfScore 821.08, instruction count 424, allocated bytes for code 1931 (MethodHash=f3f88449) for method System.Data.Entity.Core.Common.Utils.Boolean.Simplifier\u00601[long]:SimplifyTree(System.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[long]):System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[long]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":2002,"DiffBytes":1931},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollection[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,137 -\u003E 1,056 bytes (-81)","ExtraInfo":null,"Diff":"@@ -14,14 \u002B14,14 @@\n ;  V03 arg2         [V03,T05] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.__Canon]\u003E\n ;  V04 arg3         [V04,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T24] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n\u002B;  V06 loc0         [V06,T23] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n-;  V08 loc2         [V08,T25] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n-;  V09 loc3         [V09,T22] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V08 loc2         [V08,T24] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n\u002B;  V09 loc3         [V09,T21] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V12 tmp2         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V13 tmp3         [V13,T31] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V13 tmp3         [V13,T30] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V14 tmp4         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V15 tmp5         [V15    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V16 tmp6         [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -40,17 \u002B40,17 @@\n ;* V29 tmp19        [V29    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V30 tmp20        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V31 tmp21        [V31    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V32 tmp22        [V32,T23] (  3,  2   )     int  -\u003E  registers  \n-;  V33 tmp23        [V33,T06] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V34 tmp24        [V34    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V35 tmp25        [V35,T20] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V36 tmp26        [V36,T21] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V32 tmp22        [V32,T22] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V33 tmp23        [V33,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V34 tmp24        [V34    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V35 tmp25        [V35,T20] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V38 tmp28        [V38,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V39 tmp29        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V40 tmp30        [V40,T28] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V40 tmp30        [V40,T27] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V41 tmp31        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V42 tmp32        [V42,T19] (  8,  3   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V42 tmp32        [V42,T19] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V43 tmp33        [V43,T07] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V44 tmp34        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V45 tmp35        [V45,T10] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -59,13 \u002B59,13 @@\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V50 tmp40        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;  V51 tmp41        [V51,T16] (  2,  2   )     ref  -\u003E  [rbp-0x90]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp42        [V52,T26] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V53 tmp43        [V53,T27] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp41        [V51,T16] (  2,  2   )     ref  -\u003E  [rbp-0x88]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp42        [V52,T25] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V53 tmp43        [V53,T26] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V54 tmp44        [V54    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V23._name (fldOffset=0x0)\u0022 P-DEP\n ;* V55 tmp45        [V55    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V23._value (fldOffset=0x8)\u0022 P-DEP\n-;  V56 tmp46        [V56,T29] (  2,  1   )     ref  -\u003E  rax         \u0022field V24._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V57 tmp47        [V57,T30] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V24._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V56 tmp46        [V56,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V24._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V57 tmp47        [V57,T29] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V24._value (fldOffset=0x8)\u0022 P-INDEP\n ;  V58 tmp48        [V58,T17] (  2,  4   )    long  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V59 tmp49        [V59,T18] (  2,  4   )    long  -\u003E  rsi         \u0022argument with side effect\u0022\n ;  V60 rat0         [V60,T14] (  3,  4   )    long  -\u003E  rdi         \u0022runtime lookup\u0022\n@@ -73,7 \u002B73,7 @@\n ;  V62 rat2         [V62,T15] (  3,  4   )    long  -\u003E  rsi         \u0022runtime lookup\u0022\n ;  V63 rat3         [V63,T09] (  3,  5.60)    long  -\u003E  rsi         \u0022fgMakeTemp is creating a new local variable\u0022\n ;\n-; Lcl frame size = 168\n\u002B; Lcl frame size = 152\n \n G_M18043_IG01:\n        push     rbp\n@@ -82,14 \u002B82,14 @@ G_M18043_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 168\n-       lea      rbp, [rsp\u002B0xD0]\n\u002B       sub      rsp, 152\n\u002B       lea      rbp, [rsp\u002B0xC0]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x78], rax\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        mov      qword ptr [rbp-0x30], rsi\n-       mov      gword ptr [rbp-0x90], r9\n\u002B       mov      gword ptr [rbp-0x88], r9\n        mov      r15, rdi\n        mov      r14, rsi\n        mov      r13, rdx\n@@ -105,7 \u002B105,7 @@ G_M18043_IG02:\n        mov      rdi, qword ptr [r14\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M18043_IG31\n\u002B       je       G_M18043_IG28\n \t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 9.25\n G_M18043_IG03:\n        mov      rsi, r12\n@@ -155,90 \u002B155,70 @@ G_M18043_IG05:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.__Canon]:Render(MongoDB.Driver.RenderArgs\u00601[System.__Canon]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]:this\n        mov      r12, rax\n-       mov      rax, gword ptr [r12\u002B0x08]\n-       mov      gword ptr [rbp-0x80], rax\n-       test     rax, rax\n-       je       G_M18043_IG33\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n... diff truncated; middle omitted ...\n-       je       SHORT G_M18043_IG20\n\u002B       je       SHORT G_M18043_IG17\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M18043_IG19:\n\u002BG_M18043_IG16:\n        xor      ecx, ecx\n-       jmp      SHORT G_M18043_IG22\n\u002B       jmp      SHORT G_M18043_IG19\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M18043_IG20:\n\u002BG_M18043_IG17:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -246,30 \u002B226,30 @@ G_M18043_IG20:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M18043_IG22\n\u002B       jmp      SHORT G_M18043_IG19\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M18043_IG21:\n\u002BG_M18043_IG18:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M18043_IG22:\n\u002BG_M18043_IG19:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M18043_IG23:\n\u002BG_M18043_IG20:\n        mov      dword ptr [rbp-0x6C], ecx\n        mov      rdi, gword ptr [r12\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M18043_IG34\n\u002B       je       G_M18043_IG31\n        cmp      dword ptr [rbp-0x6C], 0\n-       je       G_M18043_IG34\n\u002B       je       G_M18043_IG31\n        mov      rdi, qword ptr [r14\u002B0x18]\n        mov      rsi, qword ptr [rdi\u002B0x20]\n        test     rsi, rsi\n-       je       G_M18043_IG32\n\u002B       je       G_M18043_IG29\n \t\t\t\t\t\t;; size=56 bbWeight=1 PerfScore 14.75\n-G_M18043_IG24:\n\u002BG_M18043_IG21:\n        mov      rdi, r15\n        mov      rdx, r12\n        mov      rcx, rbx\n@@ -281,13 \u002B261,13 @@ G_M18043_IG24:\n        cmp      byte  ptr [r14], r14b\n        mov      rdi, r15\n        mov      rsi, r13\n-       mov      r9, gword ptr [rbp-0x90]\n\u002B       mov      r9, gword ptr [rbp-0x88]\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 16.25\n-G_M18043_IG25:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=74 bbWeight=1 PerfScore 16.25\n\u002BG_M18043_IG22:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -295,22 \u002B275,22 @@ G_M18043_IG25:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r13\n        mov      rcx, r14\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=64 bbWeight=1 PerfScore 11.25\n-G_M18043_IG26:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M18043_IG29\n-\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 2.00\n-G_M18043_IG27:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n\u002BG_M18043_IG23:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M18043_IG26\n\u002B\t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n\u002BG_M18043_IG24:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M18043_IG28\n\u002B       je       SHORT G_M18043_IG25\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -319,12 \u002B299,12 @@ G_M18043_IG27:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M18043_IG28:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n\u002BG_M18043_IG25:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M18043_IG29\n\u002B       je       SHORT G_M18043_IG26\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -333,12 \u002B313,12 @@ G_M18043_IG28:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M18043_IG29:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n\u002BG_M18043_IG26:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M18043_IG30:\n-       add      rsp, 168\n\u002BG_M18043_IG27:\n\u002B       add      rsp, 152\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -347,7 \u002B327,7 @@ G_M18043_IG30:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M18043_IG31:\n\u002BG_M18043_IG28:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -355,21 \u002B335,21 @@ G_M18043_IG31:\n        mov      rdi, rax\n        jmp      G_M18043_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M18043_IG32:\n\u002BG_M18043_IG29:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M18043_IG24\n\u002B       jmp      G_M18043_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M18043_IG33:\n\u002BG_M18043_IG30:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M18043_IG34:\n\u002BG_M18043_IG31:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -381,16 \u002B361,16 @@ G_M18043_IG34:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M18043_IG35:\n\u002BG_M18043_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M18043_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M18043_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M18043_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M18043_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M18043_IG37\n\u002B       je       SHORT G_M18043_IG34\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -399,12 \u002B379,12 @@ G_M18043_IG36:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M18043_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M18043_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M18043_IG38\n\u002B       je       SHORT G_M18043_IG35\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -413,14 \u002B393,14 @@ G_M18043_IG37:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M18043_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M18043_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M18043_IG39:\n\u002BG_M18043_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1137, prolog size 72, PerfScore 161.80, instruction count 268, allocated bytes for code 1137 (MethodHash=84cbb984) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollection[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 1056, prolog size 72, PerfScore 152.42, instruction count 254, allocated bytes for code 1056 (MethodHash=84cbb984) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollection[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1137,"DiffBytes":1056},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Core.AccountService:ListAutoPaging(Stripe.V2.Core.AccountListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.Account]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.Core.AccountService:ListAutoPaging(Stripe.V2.Core.AccountListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.Account]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Core.AccountService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Core.AccountListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Core.AccountListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.Account]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.Account]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.Account]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.Account]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.Account]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.Account]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.Account]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.Account]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.Account]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M62383_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M62383_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/core/accounts\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M62383_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M62383_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.Account]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.Account]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M62383_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M62383_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.Account]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.Account]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M62383_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M62383_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=eb890c50) for method Stripe.V2.Core.AccountService:ListAutoPaging(Stripe.V2.Core.AccountListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.Account]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=eb890c50) for method Stripe.V2.Core.AccountService:ListAutoPaging(Stripe.V2.Core.AccountListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.Account]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.Internal.SyncViaAsync:AwaitSyncOverAsync[double](System.Threading.Tasks.Task\u00601[double]):System.Threading.Tasks.ValueTask\u00601[double] (FullOpts)","Category":"same-size","Description":"168 -\u003E 168 bytes (0)","ExtraInfo":null,"Diff":"@@ -1,99 \u002B1,99 @@\n ; Assembly listing for method Medallion.Threading.Internal.SyncViaAsync:AwaitSyncOverAsync[double](System.Threading.Tasks.Task\u00601[double]):System.Threading.Tasks.ValueTask\u00601[double] (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 9 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 RetBuf       [V00,T00] ( 11,  7   )    long  -\u003E  rbx         single-def\n ;  V01 arg0         [V01,T01] (  7,  4.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Threading.Tasks.Task\u00601[double]\u003E\n ;* V02 loc0         [V02    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u003CSystem.Runtime.CompilerServices.TaskAwaiter\u00601[double]\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V04 tmp1         [V04    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.ValueTask\u00601[double]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.TaskAwaiter\u00601[double]\u003E\n ;* V06 tmp3         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[double]\u003E\n ;* V07 tmp4         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[double]\u003E\n ;* V08 tmp5         [V08    ] (  0,  0   )  double  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V09 tmp6         [V09    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.ValueTask\u00601[double]\u003E\n ;* V10 tmp7         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V02.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;* V11 tmp8         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V04._obj (fldOffset=0x0)\u0022 P-INDEP\n ;* V12 tmp9         [V12,T05] (  0,  0   )  double  -\u003E  zero-ref    single-def \u0022field V04._result (fldOffset=0x8)\u0022 P-INDEP\n ;* V13 tmp10        [V13    ] (  0,  0   )   short  -\u003E  zero-ref    single-def \u0022field V04._token (fldOffset=0x10)\u0022 P-INDEP\n ;* V14 tmp11        [V14    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V04._continueOnCapturedContext (fldOffset=0x12)\u0022 P-INDEP\n ;* V15 tmp12        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V05.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._obj (fldOffset=0x0)\u0022 P-INDEP\n ;  V17 tmp14        [V17,T04] (  2,  1   )  double  -\u003E  mm0         single-def \u0022field V09._result (fldOffset=0x8)\u0022 P-INDEP\n ;* V18 tmp15        [V18    ] (  0,  0   )   short  -\u003E  zero-ref    single-def \u0022field V09._token (fldOffset=0x10)\u0022 P-INDEP\n ;* V19 tmp16        [V19    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V09._continueOnCapturedContext (fldOffset=0x12)\u0022 P-INDEP\n ;  V20 rat0         [V20,T02] (  2,  4   )    long  -\u003E  rax         \u0022TLS field access\u0022\n ;  V21 rat1         [V21,T03] (  2,  4   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 0\n \n G_M44539_IG01:\n        push     rbp\n        push     r15\n        push     rbx\n        lea      rbp, [rsp\u002B0x10]\n        mov      rbx, rdi\n        mov      r15, rsi\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.00\n G_M44539_IG02:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        cmp      byte  ptr [rax\u002B0x10], 0\n        je       SHORT G_M44539_IG05\n \t\t\t\t\t\t;; size=32 bbWeight=1 PerfScore 6.75\n G_M44539_IG03:\n        mov      edi, dword ptr [r15\u002B0x34]\n        and      edi, 0xD1FFAB1E\n        cmp      edi, 0xD1FFAB1E\n        je       SHORT G_M44539_IG04\n        mov      rdi, r15\n        xor      esi, esi\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int)\n        call     [rax]System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int)\n \t\t\t\t\t\t;; size=35 bbWeight=0.50 PerfScore 3.62\n G_M44539_IG04:\n        vmovsd   xmm0, qword ptr [r15\u002B0x38]\n        xor      rdi, rdi\n        mov      gword ptr [rbx], rdi\n        vmovsd   qword ptr [rbx\u002B0x08], xmm0\n        mov      word  ptr [rbx\u002B0x10], 0\n        mov      byte  ptr [rbx\u002B0x12], 1\n        jmp      SHORT G_M44539_IG06\n \t\t\t\t\t\t;; size=28 bbWeight=0.50 PerfScore 4.62\n G_M44539_IG05:\n        test     r15, r15\n        je       SHORT G_M44539_IG08\n        mov      rdi, rbx\n        mov      rsi, r15\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n        xor      eax, eax\n        mov      qword ptr [rbx\u002B0x08], rax\n        mov      word  ptr [rbx\u002B0x10], 0\n        mov      byte  ptr [rbx\u002B0x12], 1\n \t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 3.00\n G_M44539_IG06:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M44539_IG07:\n        pop      rbx\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 2.50\n G_M44539_IG08:\n        mov      edi, 9\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n ; Total bytes of code 168, prolog size 9, PerfScore 24.75, instruction count 45, allocated bytes for code 168 (MethodHash=e95d5204) for method Medallion.Threading.Internal.SyncViaAsync:AwaitSyncOverAsync[double](System.Threading.Tasks.Task\u00601[double]):System.Threading.Tasks.ValueTask\u00601[double] (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":168,"DiffBytes":168},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Common.Utils.Boolean.Simplifier\u00601[short]:SimplifyTree(System.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[short]):System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short]:this (FullOpts)","Category":"improvement","Description":"2,002 -\u003E 1,931 bytes (-71)","ExtraInfo":null,"Diff":"@@ -8,69 \u002B8,69 @@\n ; 0 inlinees with PGO data; 66 single block inlinees; 11 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T23] (  3,  6   )     ref  -\u003E  r15         this class-hnd single-def \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.Simplifier\u00601[short]\u003E\n-;  V01 arg1         [V01,T12] (  9, 12   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[short]\u003E\n-;  V02 loc0         [V02,T29] (  6,  6.50)   ubyte  -\u003E  r13         single-def\n\u002B;  V00 this         [V00,T22] (  3,  6   )     ref  -\u003E  r15         this class-hnd single-def \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.Simplifier\u00601[short]\u003E\n\u002B;  V01 arg1         [V01,T11] (  9, 12   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[short]\u003E\n\u002B;  V02 loc0         [V02,T28] (  6,  6.50)   ubyte  -\u003E  r13         single-def\n ;  V03 loc1         [V03,T09] ( 10, 17   )     ref  -\u003E  r12         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short]]\u003E\n-;  V04 loc2         [V04,T27] (  4,  7.50)     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short],bool]\u003E\n-;  V05 loc3         [V05,T13] (  9, 14   )     ref  -\u003E  r15         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short]]\u003E\n\u002B;  V04 loc2         [V04,T26] (  4,  7.50)     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short],bool]\u003E\n\u002B;  V05 loc3         [V05,T12] (  9, 14   )     ref  -\u003E  r15         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short]]\u003E\n ;  V06 loc4         [V06,T01] ( 17, 42.50)     ref  -\u003E  rbx         class-hnd exact \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short]]\u003E\n ;  V07 loc5         [V07    ] (  7, 13   )  struct (24) [rbp-0x40]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Collections.Generic.HashSet\u00601\u002BEnumerator[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short]]\u003E\n ;  V08 loc6         [V08,T08] (  6, 18   )     ref  -\u003E  [rbp-0x70]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short]\u003E\n ;* V09 loc7         [V09    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short]]\u003E\n ;* V10 loc8         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short]\u003E\n ;* V11 loc9         [V11    ] (  0,  0   )     int  -\u003E  zero-ref   \n-;  V12 loc10        [V12,T53] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short]\u003E\n\u002B;  V12 loc10        [V12,T52] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short]\u003E\n ;* V13 loc11        [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short]\u003E\n ;  V14 loc12        [V14    ] (  7, 10.50)  struct (24) [rbp-0x58]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Collections.Generic.Dictionary\u00602\u002BKeyCollection\u002BEnumerator[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short],bool]\u003E\n-;  V15 loc13        [V15,T16] (  3, 12   )     ref  -\u003E  rdi         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short]\u003E\n-;  V16 loc14        [V16,T54] (  3,  1.50)     ref  -\u003E  r15         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[short]\u003E\n\u002B;  V15 loc13        [V15,T15] (  3, 12   )     ref  -\u003E  rdi         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short]\u003E\n\u002B;  V16 loc14        [V16,T53] (  3,  1.50)     ref  -\u003E  r15         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[short]\u003E\n ;# V17 OutArgs      [V17    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V18 tmp1         [V18,T30] (  3,  6   )     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short]]\u003E\n\u002B;  V18 tmp1         [V18,T29] (  3,  6   )     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short]]\u003E\n ;  V19 tmp2         [V19,T04] (  3, 24   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short]\u003E\n ;* V20 tmp3         [V20    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022non-inline candidate call\u0022\n-;  V21 tmp4         [V21,T31] (  3,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short],bool]\u003E\n-;  V22 tmp5         [V22,T32] (  3,  6   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short]]\u003E\n-;  V23 tmp6         [V23,T44] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short]]\u003E\n-;  V24 tmp7         [V24,T41] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.OrExpr\u00601[short]\u003E\n-;  V25 tmp8         [V25,T42] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.AndExpr\u00601[short]\u003E\n\u002B;  V21 tmp4         [V21,T30] (  3,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short],bool]\u003E\n\u002B;  V22 tmp5         [V22,T31] (  3,  6   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short]]\u003E\n\u002B;  V23 tmp6         [V23,T43] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short]]\u003E\n\u002B;  V24 tmp7         [V24,T39] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.OrExpr\u00601[short]\u003E\n\u002B;  V25 tmp8         [V25,T40] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.AndExpr\u00601[short]\u003E\n ;* V26 tmp9         [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short]]\u003E\n-;  V27 tmp10        [V27,T33] (  3,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.__Canon]\u003E\n\u002B;  V27 tmp10        [V27,T32] (  3,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.__Canon]\u003E\n ;* V28 tmp11        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short]]\u003E\n-;  V29 tmp12        [V29,T34] (  3,  6   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.__Canon]\u003E\n\u002B;  V29 tmp12        [V29,T33] (  3,  6   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.__Canon]\u003E\n ;* V30 tmp13        [V30    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.HashSet\u00601\u002BEnumerator[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short]]\u003E\n ;* V31 tmp14        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[short]\u003E\n-;  V32 tmp15        [V32,T35] (  3,  6   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short][]\u003E\n-;  V33 tmp16        [V33,T21] (  4,  8   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n\u002B;  V32 tmp15        [V32,T34] (  3,  6   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short][]\u003E\n\u002B;  V33 tmp16        [V33,T20] (  4,  8   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n ;* V34 tmp17        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short]]\u003E\n... diff truncated; middle omitted ...\n G_M42702_IG22:\n        cmp      eax, dword ptr [r12\u002B0x10]\n@@ -466,7 \u002B466,7 @@ G_M42702_IG29:\n        mov      r13, rax\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M42702_IG57\n\u002B       je       G_M42702_IG55\n \t\t\t\t\t\t;; size=84 bbWeight=0.50 PerfScore 6.00\n G_M42702_IG30:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.EqualityComparer\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short]]:\u003CDefault\u003Ek__BackingField\n@@ -501,7 \u002B501,7 @@ G_M42702_IG31:\n        mov      r14, rax\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M42702_IG56\n\u002B       je       G_M42702_IG54\n \t\t\t\t\t\t;; size=55 bbWeight=0.50 PerfScore 3.12\n G_M42702_IG32:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.EqualityComparer\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short]]:\u003CDefault\u003Ek__BackingField\n@@ -533,7 \u002B533,7 @@ G_M42702_IG33:\n G_M42702_IG34:\n        mov      rax, gword ptr [rbx\u002B0x08]\n        cmp      dword ptr [rax\u002B0x08], 0\n-       jbe      G_M42702_IG58\n\u002B       jbe      G_M42702_IG56\n        mov      rax, gword ptr [rax\u002B0x10]\n        jmp      G_M42702_IG44\n \t\t\t\t\t\t;; size=23 bbWeight=0.50 PerfScore 4.50\n@@ -547,7 \u002B547,7 @@ G_M42702_IG35:\n G_M42702_IG36:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M42702_IG55\n\u002B       je       G_M42702_IG53\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n G_M42702_IG37:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Data.Entity.Core.Common.Utils.Boolean.TrueExpr\u00601[short]:_value\n@@ -575,14 \u002B575,14 @@ G_M42702_IG41:\n G_M42702_IG42:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M42702_IG52\n\u002B       je       G_M42702_IG50\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n G_M42702_IG43:\n        mov      rax, 0xD1FFAB1E      ; data for System.Data.Entity.Core.Common.Utils.Boolean.TrueExpr\u00601[short]:_value\n        mov      rax, gword ptr [rax]\n \t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 1.12\n G_M42702_IG44:\n-       add      rsp, 120\n\u002B       add      rsp, 104\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -592,101 \u002B592,83 @@ G_M42702_IG44:\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n G_M42702_IG45:\n-       mov      rax, gword ptr [rbp-0x90]\n-       mov      rsi, rax\n\u002B       mov      rax, gword ptr [rbp-0x88]\n\u002B       mov      rdx, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Common.Utils.Boolean.NotExpr\u00601[short]\n-       cmp      qword ptr [rsi], rdi\n-       jne      G_M42702_IG49\n-\t\t\t\t\t\t;; size=29 bbWeight=1 PerfScore 4.50\n\u002B       cmp      qword ptr [rdx], rdi\n\u002B       jne      SHORT G_M42702_IG47\n\u002B\t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 4.50\n G_M42702_IG46:\n-       mov      rax, gword ptr [rsi\u002B0x08]\n-       mov      gword ptr [rbp-0x88], rax\n-       test     rax, rax\n-       je       G_M42702_IG50\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short]]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M42702_IG47\n-       lea      rsi, [rbp-0x60]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M42702_IG48\n-\t\t\t\t\t\t;; size=69 bbWeight=2 PerfScore 38.00\n-G_M42702_IG47:\n\u002B       mov      rsi, gword ptr [rdx\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M42702_IG48\n        lea      rdx, [rbp-0x60]\n-       mov      rsi, gword ptr [rbp-0x88]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short]](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short]],byref):System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=2 PerfScore 10.00\n-G_M42702_IG48:\n-       cmp      byte  ptr [rbp-0x60], 0\n-       je       SHORT G_M42702_IG51\n-       mov      rdi, r14\n        mov      rsi, rax\n\u002B       cmp      byte  ptr [rbp-0x60], 0\n\u002B       je       SHORT G_M42702_IG49\n\u002B       mov      rdi, r14\n        mov      edx, 1\n        mov      ecx, 1\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary\u00602[System.__Canon,bool]:TryInsert(System.__Canon,bool,byte):bool:this\n        call     [rax]System.Collections.Generic.Dictionary\u00602[System.__Canon,bool]:TryInsert(System.__Canon,bool,byte):bool:this\n        jmp      G_M42702_IG14\n-\t\t\t\t\t\t;; size=39 bbWeight=2 PerfScore 16.50\n-G_M42702_IG49:\n\u002B\t\t\t\t\t\t;; size=74 bbWeight=2 PerfScore 31.00\n\u002BG_M42702_IG47:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rax]CORINFO_HELP_CHKCASTCLASS\n        int3     \n \t\t\t\t\t\t;; size=16 bbWeight=0 PerfScore 0.00\n-G_M42702_IG50:\n\u002BG_M42702_IG48:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M42702_IG51:\n\u002BG_M42702_IG49:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M42702_IG52:\n\u002BG_M42702_IG50:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Common.Utils.Boolean.TrueExpr\u00601[short]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M42702_IG43\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M42702_IG53:\n\u002BG_M42702_IG51:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M42702_IG54:\n\u002BG_M42702_IG52:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M42702_IG17\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M42702_IG55:\n\u002BG_M42702_IG53:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Common.Utils.Boolean.TrueExpr\u00601[short]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M42702_IG37\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M42702_IG56:\n\u002BG_M42702_IG54:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.EqualityComparer\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M42702_IG32\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M42702_IG57:\n\u002BG_M42702_IG55:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.EqualityComparer\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M42702_IG30\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M42702_IG58:\n\u002BG_M42702_IG56:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n@@ -697,5 \u002B679,5 @@ RWD00  \tdd\tG_M42702_IG45 - G_M42702_IG02\n        \tdd\tG_M42702_IG39 - G_M42702_IG02\n \n \n-; Total bytes of code 2002, prolog size 43, PerfScore 854.58, instruction count 438, allocated bytes for code 2002 (MethodHash=d20f5931) for method System.Data.Entity.Core.Common.Utils.Boolean.Simplifier\u00601[short]:SimplifyTree(System.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[short]):System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short]:this (FullOpts)\n\u002B; Total bytes of code 1931, prolog size 43, PerfScore 821.08, instruction count 424, allocated bytes for code 1931 (MethodHash=d20f5931) for method System.Data.Entity.Core.Common.Utils.Boolean.Simplifier\u00601[short]:SimplifyTree(System.Data.Entity.Core.Common.Utils.Boolean.TreeExpr\u00601[short]):System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[short]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":2002,"DiffBytes":1931},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollection[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,137 -\u003E 1,056 bytes (-81)","ExtraInfo":null,"Diff":"@@ -14,14 \u002B14,14 @@\n ;  V03 arg2         [V03,T05] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.__Canon,byte]\u003E\n ;  V04 arg3         [V04,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T24] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n\u002B;  V06 loc0         [V06,T23] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n-;  V08 loc2         [V08,T25] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n-;  V09 loc3         [V09,T22] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V08 loc2         [V08,T24] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n\u002B;  V09 loc3         [V09,T21] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V12 tmp2         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V13 tmp3         [V13,T31] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V13 tmp3         [V13,T30] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V14 tmp4         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V15 tmp5         [V15    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V16 tmp6         [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -40,17 \u002B40,17 @@\n ;* V29 tmp19        [V29    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V30 tmp20        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V31 tmp21        [V31    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V32 tmp22        [V32,T23] (  3,  2   )     int  -\u003E  registers  \n-;  V33 tmp23        [V33,T06] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V34 tmp24        [V34    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V35 tmp25        [V35,T20] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V36 tmp26        [V36,T21] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V32 tmp22        [V32,T22] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V33 tmp23        [V33,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V34 tmp24        [V34    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V35 tmp25        [V35,T20] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V38 tmp28        [V38,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V39 tmp29        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V40 tmp30        [V40,T28] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V40 tmp30        [V40,T27] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V41 tmp31        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V42 tmp32        [V42,T19] (  8,  3   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V42 tmp32        [V42,T19] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V43 tmp33        [V43,T07] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V44 tmp34        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V45 tmp35        [V45,T10] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -59,13 \u002B59,13 @@\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V50 tmp40        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;  V51 tmp41        [V51,T16] (  2,  2   )     ref  -\u003E  [rbp-0x90]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp42        [V52,T26] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V53 tmp43        [V53,T27] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp41        [V51,T16] (  2,  2   )     ref  -\u003E  [rbp-0x88]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp42        [V52,T25] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V53 tmp43        [V53,T26] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V54 tmp44        [V54    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V23._name (fldOffset=0x0)\u0022 P-DEP\n ;* V55 tmp45        [V55    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V23._value (fldOffset=0x8)\u0022 P-DEP\n-;  V56 tmp46        [V56,T29] (  2,  1   )     ref  -\u003E  rax         \u0022field V24._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V57 tmp47        [V57,T30] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V24._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V56 tmp46        [V56,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V24._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V57 tmp47        [V57,T29] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V24._value (fldOffset=0x8)\u0022 P-INDEP\n ;  V58 tmp48        [V58,T17] (  2,  4   )    long  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V59 tmp49        [V59,T18] (  2,  4   )    long  -\u003E  rsi         \u0022argument with side effect\u0022\n ;  V60 rat0         [V60,T14] (  3,  4   )    long  -\u003E  rdi         \u0022runtime lookup\u0022\n@@ -73,7 \u002B73,7 @@\n ;  V62 rat2         [V62,T15] (  3,  4   )    long  -\u003E  rsi         \u0022runtime lookup\u0022\n ;  V63 rat3         [V63,T09] (  3,  5.60)    long  -\u003E  rsi         \u0022fgMakeTemp is creating a new local variable\u0022\n ;\n-; Lcl frame size = 168\n\u002B; Lcl frame size = 152\n \n G_M1531_IG01:\n        push     rbp\n@@ -82,14 \u002B82,14 @@ G_M1531_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 168\n-       lea      rbp, [rsp\u002B0xD0]\n\u002B       sub      rsp, 152\n\u002B       lea      rbp, [rsp\u002B0xC0]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x78], rax\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        mov      qword ptr [rbp-0x30], rsi\n-       mov      gword ptr [rbp-0x90], r9\n\u002B       mov      gword ptr [rbp-0x88], r9\n        mov      r15, rdi\n        mov      r14, rsi\n        mov      r13, rdx\n@@ -105,7 \u002B105,7 @@ G_M1531_IG02:\n        mov      rdi, qword ptr [r14\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M1531_IG31\n\u002B       je       G_M1531_IG28\n \t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 9.25\n G_M1531_IG03:\n        mov      rsi, r12\n@@ -155,90 \u002B155,70 @@ G_M1531_IG05:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,byte]:Render(MongoDB.Driver.RenderArgs\u00601[System.__Canon]):MongoDB.Driver.RenderedPipelineDefinition\u00601[byte]:this\n        mov      r12, rax\n-       mov      rax, gword ptr [r12\u002B0x08]\n-       mov      gword ptr [rbp-0x80], rax\n-       test     rax, rax\n-       je       G_M1531_IG33\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M1531_IG07\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M1531_IG18:\n\u002BG_M1531_IG15:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M1531_IG20\n\u002B       je       SHORT G_M1531_IG17\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M1531_IG19:\n\u002BG_M1531_IG16:\n        xor      ecx, ecx\n-       jmp      SHORT G_M1531_IG22\n\u002B       jmp      SHORT G_M1531_IG19\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M1531_IG20:\n\u002BG_M1531_IG17:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -246,30 \u002B226,30 @@ G_M1531_IG20:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M1531_IG22\n\u002B       jmp      SHORT G_M1531_IG19\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M1531_IG21:\n\u002BG_M1531_IG18:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M1531_IG22:\n\u002BG_M1531_IG19:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M1531_IG23:\n\u002BG_M1531_IG20:\n        mov      dword ptr [rbp-0x6C], ecx\n        mov      rdi, gword ptr [r12\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M1531_IG34\n\u002B       je       G_M1531_IG31\n        cmp      dword ptr [rbp-0x6C], 0\n-       je       G_M1531_IG34\n\u002B       je       G_M1531_IG31\n        mov      rdi, qword ptr [r14\u002B0x18]\n        mov      rsi, qword ptr [rdi\u002B0x20]\n        test     rsi, rsi\n-       je       G_M1531_IG32\n\u002B       je       G_M1531_IG29\n \t\t\t\t\t\t;; size=56 bbWeight=1 PerfScore 14.75\n-G_M1531_IG24:\n\u002BG_M1531_IG21:\n        mov      rdi, r15\n        mov      rdx, r12\n        mov      rcx, rbx\n@@ -281,13 \u002B261,13 @@ G_M1531_IG24:\n        cmp      byte  ptr [r14], r14b\n        mov      rdi, r15\n        mov      rsi, r13\n-       mov      r9, gword ptr [rbp-0x90]\n\u002B       mov      r9, gword ptr [rbp-0x88]\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 16.25\n-G_M1531_IG25:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=74 bbWeight=1 PerfScore 16.25\n\u002BG_M1531_IG22:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -295,22 \u002B275,22 @@ G_M1531_IG25:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r13\n        mov      rcx, r14\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=64 bbWeight=1 PerfScore 11.25\n-G_M1531_IG26:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M1531_IG29\n-\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 2.00\n-G_M1531_IG27:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n\u002BG_M1531_IG23:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M1531_IG26\n\u002B\t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n\u002BG_M1531_IG24:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M1531_IG28\n\u002B       je       SHORT G_M1531_IG25\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -319,12 \u002B299,12 @@ G_M1531_IG27:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M1531_IG28:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n\u002BG_M1531_IG25:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M1531_IG29\n\u002B       je       SHORT G_M1531_IG26\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -333,12 \u002B313,12 @@ G_M1531_IG28:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M1531_IG29:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n\u002BG_M1531_IG26:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M1531_IG30:\n-       add      rsp, 168\n\u002BG_M1531_IG27:\n\u002B       add      rsp, 152\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -347,7 \u002B327,7 @@ G_M1531_IG30:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M1531_IG31:\n\u002BG_M1531_IG28:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -355,21 \u002B335,21 @@ G_M1531_IG31:\n        mov      rdi, rax\n        jmp      G_M1531_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M1531_IG32:\n\u002BG_M1531_IG29:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M1531_IG24\n\u002B       jmp      G_M1531_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M1531_IG33:\n\u002BG_M1531_IG30:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M1531_IG34:\n\u002BG_M1531_IG31:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -381,16 \u002B361,16 @@ G_M1531_IG34:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M1531_IG35:\n\u002BG_M1531_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M1531_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M1531_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M1531_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M1531_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M1531_IG37\n\u002B       je       SHORT G_M1531_IG34\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -399,12 \u002B379,12 @@ G_M1531_IG36:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M1531_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M1531_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M1531_IG38\n\u002B       je       SHORT G_M1531_IG35\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -413,14 \u002B393,14 @@ G_M1531_IG37:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M1531_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M1531_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M1531_IG39:\n\u002BG_M1531_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1137, prolog size 72, PerfScore 161.80, instruction count 268, allocated bytes for code 1137 (MethodHash=7429fa04) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollection[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 1056, prolog size 72, PerfScore 152.42, instruction count 254, allocated bytes for code 1056 (MethodHash=7429fa04) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollection[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1137,"DiffBytes":1056},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Core.ApprovalRequestService:ListAutoPaging(Stripe.V2.Core.ApprovalRequestListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.ApprovalRequest]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.Core.ApprovalRequestService:ListAutoPaging(Stripe.V2.Core.ApprovalRequestListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.ApprovalRequest]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Core.ApprovalRequestService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Core.ApprovalRequestListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Core.ApprovalRequestListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.ApprovalRequest]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.ApprovalRequest]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.ApprovalRequest]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.ApprovalRequest]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.ApprovalRequest]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.ApprovalRequest]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.ApprovalRequest]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.ApprovalRequest]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.ApprovalRequest]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M60440_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M60440_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/core/approval_requests\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M60440_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M60440_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.ApprovalRequest]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.ApprovalRequest]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M60440_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M60440_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.ApprovalRequest]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.ApprovalRequest]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M60440_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M60440_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=cf0d13e7) for method Stripe.V2.Core.ApprovalRequestService:ListAutoPaging(Stripe.V2.Core.ApprovalRequestListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.ApprovalRequest]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=cf0d13e7) for method Stripe.V2.Core.ApprovalRequestService:ListAutoPaging(Stripe.V2.Core.ApprovalRequestListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.ApprovalRequest]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.Internal.SyncViaAsync:AwaitSyncOverAsync[int](System.Threading.Tasks.Task\u00601[int]):System.Threading.Tasks.ValueTask\u00601[int] (FullOpts)","Category":"same-size","Description":"151 -\u003E 151 bytes (0)","ExtraInfo":null,"Diff":"@@ -1,96 \u002B1,96 @@\n ; Assembly listing for method Medallion.Threading.Internal.SyncViaAsync:AwaitSyncOverAsync[int](System.Threading.Tasks.Task\u00601[int]):System.Threading.Tasks.ValueTask\u00601[int] (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 9 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 arg0         [V00,T00] (  7,  4.50)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Threading.Tasks.Task\u00601[int]\u003E\n ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u003CSystem.Runtime.CompilerServices.TaskAwaiter\u00601[int]\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V03 tmp1         [V03    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CSystem.Threading.Tasks.ValueTask\u00601[int]\u003E\n ;* V04 tmp2         [V04    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CSystem.Threading.Tasks.ValueTask\u00601[int]\u003E\n ;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.ValueTask\u00601[int]\u003E\n ;* V06 tmp4         [V06    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.TaskAwaiter\u00601[int]\u003E\n ;* V07 tmp5         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[int]\u003E\n ;* V08 tmp6         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[int]\u003E\n ;* V09 tmp7         [V09    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V10 tmp8         [V10    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.ValueTask\u00601[int]\u003E\n ;* V11 tmp9         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V01.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;* V12 tmp10        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V05._obj (fldOffset=0x0)\u0022 P-INDEP\n ;* V13 tmp11        [V13    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V05._result (fldOffset=0x8)\u0022 P-INDEP\n ;* V14 tmp12        [V14    ] (  0,  0   )   short  -\u003E  zero-ref    single-def \u0022field V05._token (fldOffset=0xc)\u0022 P-INDEP\n ;* V15 tmp13        [V15    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V05._continueOnCapturedContext (fldOffset=0xe)\u0022 P-INDEP\n ;* V16 tmp14        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V06.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;* V17 tmp15        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._obj (fldOffset=0x0)\u0022 P-INDEP\n ;  V18 tmp16        [V18,T03] (  2,  1   )     int  -\u003E  [rbp-0x0C]  spill-single-def \u0022field V10._result (fldOffset=0x8)\u0022 P-INDEP\n ;* V19 tmp17        [V19    ] (  0,  0   )   short  -\u003E  zero-ref    single-def \u0022field V10._token (fldOffset=0xc)\u0022 P-INDEP\n ;* V20 tmp18        [V20    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V10._continueOnCapturedContext (fldOffset=0xe)\u0022 P-INDEP\n ;  V21 rat0         [V21,T01] (  2,  4   )    long  -\u003E  rax         \u0022TLS field access\u0022\n ;  V22 rat1         [V22,T02] (  2,  4   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M10045_IG01:\n        push     rbp\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x10]\n        mov      rbx, rdi\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.75\n G_M10045_IG02:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        cmp      byte  ptr [rax\u002B0x10], 0\n        je       SHORT G_M10045_IG06\n \t\t\t\t\t\t;; size=32 bbWeight=1 PerfScore 6.75\n G_M10045_IG03:\n        mov      edi, dword ptr [rbx\u002B0x34]\n        and      edi, 0xD1FFAB1E\n        cmp      edi, 0xD1FFAB1E\n        je       SHORT G_M10045_IG04\n        mov      rdi, rbx\n        xor      esi, esi\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int)\n        call     [rax]System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int)\n \t\t\t\t\t\t;; size=34 bbWeight=0.50 PerfScore 3.62\n G_M10045_IG04:\n        mov      eax, dword ptr [rbx\u002B0x38]\n        mov      dword ptr [rbp-0x0C], eax\n        xor      rax, rax\n        mov      edx, dword ptr [rbp-0x0C]\n        mov      rdi, 0xD1FFAB1E\n        or       rdx, rdi\n \t\t\t\t\t\t;; size=24 bbWeight=0.50 PerfScore 2.38\n G_M10045_IG05:\n        add      rsp, 8\n        pop      rbx\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n G_M10045_IG06:\n        test     rbx, rbx\n        je       SHORT G_M10045_IG08\n        mov      rdx, 0xD1FFAB1E\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 0.88\n G_M10045_IG07:\n        add      rsp, 8\n        pop      rbx\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n G_M10045_IG08:\n        mov      edi, 9\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n ; Total bytes of code 151, prolog size 8, PerfScore 19.62, instruction count 41, allocated bytes for code 151 (MethodHash=b419d8c2) for method Medallion.Threading.Internal.SyncViaAsync:AwaitSyncOverAsync[int](System.Threading.Tasks.Task\u00601[int]):System.Threading.Tasks.ValueTask\u00601[int] (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":151,"DiffBytes":151},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Mapping.ViewGeneration.Validation.RewritingValidator:Validate():this (FullOpts)","Category":"improvement","Description":"1,831 -\u003E 1,761 bytes (-70)","ExtraInfo":null,"Diff":"@@ -9,10 \u002B9,10 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T01] ( 23, 36   )     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Validation.RewritingValidator\u003E\n-;  V01 loc0         [V01,T47] (  3,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Validation.RewritingValidator\u002BMemberValueBinding,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellTreeNode]\u003E\n-;  V02 loc1         [V02,T51] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Validation.RewritingValidator\u002BMemberValueBinding,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellTreeNode]\u003E\n-;  V03 loc2         [V03,T50] (  2,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Validation.RewritingValidator\u002BWhereClauseVisitor\u003E\n-;  V04 loc3         [V04,T45] (  2,  5   )     ref  -\u003E  r12         class-hnd exact single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Validation.RewritingValidator\u002BWhereClauseVisitor\u003E\n\u002B;  V01 loc0         [V01,T46] (  3,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Validation.RewritingValidator\u002BMemberValueBinding,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellTreeNode]\u003E\n\u002B;  V02 loc1         [V02,T50] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Validation.RewritingValidator\u002BMemberValueBinding,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellTreeNode]\u003E\n\u002B;  V03 loc2         [V03,T49] (  2,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Validation.RewritingValidator\u002BWhereClauseVisitor\u003E\n\u002B;  V04 loc3         [V04,T44] (  2,  5   )     ref  -\u003E  r12         class-hnd exact single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Validation.RewritingValidator\u002BWhereClauseVisitor\u003E\n ;* V05 loc4         [V05    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n ;* V06 loc5         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper\u003E\n ;* V07 loc6         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\u003E\n@@ -21,44 \u002B21,44 @@\n ;  V10 loc9         [V10,T15] (  4, 12   )     ref  -\u003E  [rbp-0x60]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellTreeNode\u003E\n ;* V11 loc10        [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolExpression\u003E\n ;  V12 loc11        [V12    ] (  2,  4   )     ref  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolExpression\u003E\n-;  V13 loc12        [V13,T25] (  4,  8   )     ref  -\u003E  [rbp-0x68]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellTreeNode\u003E\n-;  V14 loc13        [V14,T48] (  2,  4   )     ref  -\u003E  [rbp-0x70]  class-hnd exact spill-single-def \u003CSystem.String\u003E\n\u002B;  V13 loc12        [V13,T24] (  4,  8   )     ref  -\u003E  [rbp-0x68]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellTreeNode\u003E\n\u002B;  V14 loc13        [V14,T47] (  2,  4   )     ref  -\u003E  [rbp-0x70]  class-hnd exact spill-single-def \u003CSystem.String\u003E\n ;# V15 OutArgs      [V15    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V16 tmp1         [V16,T22] (  5, 10   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Validation.RewritingValidator\u002BWhereClauseVisitor\u003E\n-;  V17 tmp2         [V17,T23] (  5, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Validation.RewritingValidator\u002BWhereClauseVisitor\u003E\n\u002B;  V16 tmp1         [V16,T21] (  5, 10   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Validation.RewritingValidator\u002BWhereClauseVisitor\u003E\n\u002B;  V17 tmp2         [V17,T22] (  5, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Validation.RewritingValidator\u002BWhereClauseVisitor\u003E\n ;  V18 tmp3         [V18,T00] (  7, 44   )     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeafCellTreeNode\u003E\n-;  V19 tmp4         [V19,T27] (  2,  8   )     ref  -\u003E  [rbp-0x80]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.RoleBoolean\u003E\n\u002B;  V19 tmp4         [V19,T26] (  2,  8   )     ref  -\u003E  [rbp-0x80]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.RoleBoolean\u003E\n ;* V20 tmp5         [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022non-inline candidate call\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.QueryRewriting.FragmentQuery\u003E\n-;  V21 tmp6         [V21,T17] (  3, 12   )     ref  -\u003E  [rbp-0x88]  class-hnd exact spill-single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n-;  V22 tmp7         [V22,T28] (  2,  8   )     ref  -\u003E  rsi         class-hnd \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySetBase\u003E\n-;  V23 tmp8         [V23,T29] (  2,  8   )     ref  -\u003E  [rbp-0x90]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V24 tmp9         [V24,T30] (  2,  8   )     ref  -\u003E  [rbp-0x98]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolExpression\u003E\n\u002B;  V21 tmp6         [V21,T16] (  3, 12   )     ref  -\u003E  [rbp-0x88]  class-hnd exact spill-single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n\u002B;  V22 tmp7         [V22,T27] (  2,  8   )     ref  -\u003E  rsi         class-hnd \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySetBase\u003E\n\u002B;  V23 tmp8         [V23,T28] (  2,  8   )     ref  -\u003E  [rbp-0x90]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V24 tmp9         [V24,T29] (  2,  8   )     ref  -\u003E  [rbp-0x98]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolExpression\u003E\n ;* V25 tmp10        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n ;  V26 tmp11        [V26,T10] (  4, 16   )     ref  -\u003E  [rbp-0xA0]  class-hnd exact spill-single-def \u0022NewArr temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellTreeNode[]\u003E\n-;  V27 tmp12        [V27,T31] (  2,  8   )     ref  -\u003E  [rbp-0xA8]  class-hnd spill-single-def \u0022impSpillLclRefs\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.ViewgenContext\u003E\n-;  V28 tmp13        [V28,T32] (  2,  8   )     ref  -\u003E  rsi         class-hnd \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellTreeNode\u003E\n-;  V29 tmp14        [V29,T18] (  3, 12   )     ref  -\u003E  [rbp-0xB0]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.OpCellTreeNode\u003E\n\u002B;  V27 tmp12        [V27,T30] (  2,  8   )     ref  -\u003E  [rbp-0xA8]  class-hnd spill-single-def \u0022impSpillLclRefs\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.ViewgenContext\u003E\n\u002B;  V28 tmp13        [V28,T31] (  2,  8   )     ref  -\u003E  rsi         class-hnd \u0022Strict ordering of exceptions for Array store\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellTreeNode\u003E\n\u002B;  V29 tmp14        [V29,T17] (  3, 12   )     ref  -\u003E  [rbp-0xB0]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.OpCellTreeNode\u003E\n ;* V30 tmp15        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.ErrorLog\u003E\n-;  V31 tmp16        [V31,T41] (  3,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellTreeNode\u003E\n-;  V32 tmp17        [V32,T42] (  3,  6   )     ref  -\u003E  [rbp-0xB8]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellTreeNode\u003E\n\u002B;  V31 tmp16        [V31,T40] (  3,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellTreeNode\u003E\n\u002B;  V32 tmp17        [V32,T41] (  3,  6   )     ref  -\u003E  [rbp-0xB8]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellTreeNode\u003E\n... diff truncated; middle omitted ...\n@@ -405,40 \u002B384,40 @@ G_M37853_IG12:\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Mapping.ViewGeneration.Validation.RewritingValidator:ReportConstraintViolation(System.String,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolExpression,int,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]):this\n        call     [rax]System.Data.Entity.Core.Mapping.ViewGeneration.Validation.RewritingValidator:ReportConstraintViolation(System.String,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolExpression,int,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]):this\n \t\t\t\t\t\t;; size=154 bbWeight=2 PerfScore 57.50\n-G_M37853_IG13:\n-       mov      rdi, gword ptr [rbp-0xC8]\n\u002BG_M37853_IG10:\n\u002B       mov      rdi, gword ptr [rbp-0xC0]\n        mov      rdi, gword ptr [rdi\u002B0x10]\n        mov      rdi, gword ptr [rdi\u002B0x18]\n        mov      rax, gword ptr [rdi\u002B0x08]\n-       mov      gword ptr [rbp-0xF0], rax\n\u002B       mov      gword ptr [rbp-0xE8], rax\n        mov      rdi, rax\n        mov      rsi, 0xD1FFAB1E      ; System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Data.Entity.Core.Common.Utils.Boolean.DomainConstraint\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolLiteral,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]]\n        mov      rdx, 0xD1FFAB1E      ; token handle\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n-       mov      rdi, gword ptr [rbp-0xF0]\n\u002B       mov      rdi, gword ptr [rbp-0xE8]\n        mov      rsi, r13\n        call     rax\n        mov      gword ptr [rbp-0x68], rax\n        test     rax, rax\n-       je       G_M37853_IG15\n\u002B       je       G_M37853_IG12\n        mov      rcx, gword ptr [rbx\u002B0x08]\n-       mov      gword ptr [rbp-0xF8], rcx\n\u002B       mov      gword ptr [rbp-0xF0], rcx\n        mov      rdx, gword ptr [rbx\u002B0x28]\n-       mov      gword ptr [rbp-0x100], rdx\n\u002B       mov      gword ptr [rbp-0xF8], rdx\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Mapping.ViewGeneration.Validation.RewritingValidator\u002BDomainConstraintVisitor\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x108], rax\n\u002B       mov      gword ptr [rbp-0x100], rax\n        lea      rdi, bword ptr [rax\u002B0x08]\n-       mov      rsi, gword ptr [rbp-0x110]\n\u002B       mov      rsi, gword ptr [rbp-0x108]\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rax, gword ptr [rbp-0x108]\n\u002B       mov      rax, gword ptr [rbp-0x100]\n        lea      rdi, bword ptr [rax\u002B0x10]\n-       mov      rsi, gword ptr [rbp-0xF8]\n\u002B       mov      rsi, gword ptr [rbp-0xF0]\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rax, gword ptr [rbp-0x108]\n\u002B       mov      rax, gword ptr [rbp-0x100]\n        lea      rdi, bword ptr [rax\u002B0x18]\n-       mov      rsi, gword ptr [rbp-0x100]\n\u002B       mov      rsi, gword ptr [rbp-0xF8]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, gword ptr [rbp-0x68]\n        mov      rsi, 0xD1FFAB1E      ; System.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellTreeNode\n@@ -447,51 \u002B426,49 @@ G_M37853_IG13:\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, gword ptr [rbp-0x68]\n \t\t\t\t\t\t;; size=232 bbWeight=2 PerfScore 84.00\n-G_M37853_IG14:\n-       mov      rsi, gword ptr [rbp-0x108]\n\u002BG_M37853_IG11:\n\u002B       mov      rsi, gword ptr [rbp-0x100]\n        mov      edx, 1\n        call     rax\n        mov      rdi, gword ptr [rbx\u002B0x28]\n        mov      rdi, gword ptr [rdi\u002B0x08]\n        cmp      dword ptr [rdi\u002B0x10], 0\n-       jg       SHORT G_M37853_IG16\n\u002B       jg       SHORT G_M37853_IG13\n        mov      rdi, rbx\n        mov      rsi, r15\n-       mov      rdx, gword ptr [rbp-0x110]\n\u002B       mov      rdx, gword ptr [rbp-0x108]\n        mov      rcx, gword ptr [rbp-0x58]\n-       mov      r8, gword ptr [rbp-0xE0]\n\u002B       mov      r8, gword ptr [rbp-0xD8]\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Mapping.ViewGeneration.Validation.RewritingValidator:CheckConstraintsOnProjectedConditionMembers(System.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Validation.RewritingValidator\u002BMemberValueBinding,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellTreeNode],System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellTreeNode,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolExpression):this\n        call     [rax]System.Data.Entity.Core.Mapping.ViewGeneration.Validation.RewritingValidator:CheckConstraintsOnProjectedConditionMembers(System.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Validation.RewritingValidator\u002BMemberValueBinding,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellTreeNode],System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellTreeNode,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolExpression):this\n        mov      rdi, gword ptr [rbx\u002B0x28]\n        mov      rdi, gword ptr [rdi\u002B0x08]\n        cmp      dword ptr [rdi\u002B0x10], 0\n-       jg       SHORT G_M37853_IG16\n\u002B       jg       SHORT G_M37853_IG13\n \t\t\t\t\t\t;; size=78 bbWeight=2 PerfScore 50.00\n-G_M37853_IG15:\n\u002BG_M37853_IG12:\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x110]\n\u002B       mov      rsi, gword ptr [rbp-0x108]\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Mapping.ViewGeneration.Validation.RewritingValidator:CheckConstraintsOnNonNullableMembers(System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper):this\n        call     [rax]System.Data.Entity.Core.Mapping.ViewGeneration.Validation.RewritingValidator:CheckConstraintsOnNonNullableMembers(System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper):this\n \t\t\t\t\t\t;; size=22 bbWeight=2 PerfScore 9.00\n-G_M37853_IG16:\n\u002BG_M37853_IG13:\n        mov      esi, dword ptr [rbp-0x3C]\n        cmp      esi, dword ptr [r14\u002B0x14]\n-       jne      SHORT G_M37853_IG23\n-\t\t\t\t\t\t;; size=9 bbWeight=4 PerfScore 16.00\n-G_M37853_IG17:\n-       mov      rsi, qword ptr [rbp-0x50]\n-\t\t\t\t\t\t;; size=4 bbWeight=2 PerfScore 2.00\n-G_M37853_IG18:\n-       cmp      esi, dword ptr [r14\u002B0x10]\n\u002B       mov      rdx, qword ptr [rbp-0x50]\n\u002B       jne      SHORT G_M37853_IG19\n\u002B\t\t\t\t\t\t;; size=13 bbWeight=4 PerfScore 20.00\n\u002BG_M37853_IG14:\n\u002B       cmp      edx, dword ptr [r14\u002B0x10]\n        jb       G_M37853_IG03\n \t\t\t\t\t\t;; size=10 bbWeight=8 PerfScore 24.00\n-G_M37853_IG19:\n\u002BG_M37853_IG15:\n        mov      rsi, gword ptr [rbx\u002B0x28]\n        mov      rsi, gword ptr [rsi\u002B0x08]\n        cmp      dword ptr [rsi\u002B0x10], 0\n-       jg       SHORT G_M37853_IG24\n\u002B       jg       SHORT G_M37853_IG20\n \t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 7.00\n-G_M37853_IG20:\n\u002BG_M37853_IG16:\n        add      rsp, 264\n        pop      rbx\n        pop      r12\n@@ -501,23 \u002B478,23 @@ G_M37853_IG20:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M37853_IG21:\n\u002BG_M37853_IG17:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M37853_IG22:\n\u002BG_M37853_IG18:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M37853_IG23:\n\u002BG_M37853_IG19:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M37853_IG24:\n\u002BG_M37853_IG20:\n        mov      rsi, gword ptr [rbx\u002B0x08]\n        mov      rsi, gword ptr [rsi\u002B0x08]\n        mov      rdi, gword ptr [rbx\u002B0x28]\n@@ -525,10 \u002B502,10 @@ G_M37853_IG24:\n        call     [rax]System.Data.Entity.Core.Mapping.ViewGeneration.Utils.ExceptionHelpers:ThrowMappingException(System.Data.Entity.Core.Mapping.ViewGeneration.Structures.ErrorLog,System.Data.Entity.Core.Mapping.ViewGeneration.ConfigViewGenerator)\n        int3     \n \t\t\t\t\t\t;; size=25 bbWeight=0 PerfScore 0.00\n-G_M37853_IG25:\n\u002BG_M37853_IG21:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1831, prolog size 35, PerfScore 852.75, instruction count 368, allocated bytes for code 1831 (MethodHash=b0396c22) for method System.Data.Entity.Core.Mapping.ViewGeneration.Validation.RewritingValidator:Validate():this (FullOpts)\n\u002B; Total bytes of code 1761, prolog size 35, PerfScore 817.25, instruction count 353, allocated bytes for code 1761 (MethodHash=b0396c22) for method System.Data.Entity.Core.Mapping.ViewGeneration.Validation.RewritingValidator:Validate():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1831,"DiffBytes":1761},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollection[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,137 -\u003E 1,056 bytes (-81)","ExtraInfo":null,"Diff":"@@ -14,14 \u002B14,14 @@\n ;  V03 arg2         [V03,T05] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.__Canon,double]\u003E\n ;  V04 arg3         [V04,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T24] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n\u002B;  V06 loc0         [V06,T23] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n-;  V08 loc2         [V08,T25] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n-;  V09 loc3         [V09,T22] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V08 loc2         [V08,T24] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n\u002B;  V09 loc3         [V09,T21] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V12 tmp2         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V13 tmp3         [V13,T31] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V13 tmp3         [V13,T30] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V14 tmp4         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V15 tmp5         [V15    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V16 tmp6         [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -40,17 \u002B40,17 @@\n ;* V29 tmp19        [V29    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V30 tmp20        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V31 tmp21        [V31    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V32 tmp22        [V32,T23] (  3,  2   )     int  -\u003E  registers  \n-;  V33 tmp23        [V33,T06] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V34 tmp24        [V34    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V35 tmp25        [V35,T20] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V36 tmp26        [V36,T21] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V32 tmp22        [V32,T22] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V33 tmp23        [V33,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V34 tmp24        [V34    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V35 tmp25        [V35,T20] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V38 tmp28        [V38,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V39 tmp29        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V40 tmp30        [V40,T28] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V40 tmp30        [V40,T27] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V41 tmp31        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V42 tmp32        [V42,T19] (  8,  3   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V42 tmp32        [V42,T19] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V43 tmp33        [V43,T07] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V44 tmp34        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V45 tmp35        [V45,T10] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -59,13 \u002B59,13 @@\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V50 tmp40        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;  V51 tmp41        [V51,T16] (  2,  2   )     ref  -\u003E  [rbp-0x90]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp42        [V52,T26] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V53 tmp43        [V53,T27] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp41        [V51,T16] (  2,  2   )     ref  -\u003E  [rbp-0x88]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp42        [V52,T25] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V53 tmp43        [V53,T26] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V54 tmp44        [V54    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V23._name (fldOffset=0x0)\u0022 P-DEP\n ;* V55 tmp45        [V55    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V23._value (fldOffset=0x8)\u0022 P-DEP\n-;  V56 tmp46        [V56,T29] (  2,  1   )     ref  -\u003E  rax         \u0022field V24._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V57 tmp47        [V57,T30] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V24._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V56 tmp46        [V56,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V24._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V57 tmp47        [V57,T29] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V24._value (fldOffset=0x8)\u0022 P-INDEP\n ;  V58 tmp48        [V58,T17] (  2,  4   )    long  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V59 tmp49        [V59,T18] (  2,  4   )    long  -\u003E  rsi         \u0022argument with side effect\u0022\n ;  V60 rat0         [V60,T14] (  3,  4   )    long  -\u003E  rdi         \u0022runtime lookup\u0022\n@@ -73,7 \u002B73,7 @@\n ;  V62 rat2         [V62,T15] (  3,  4   )    long  -\u003E  rsi         \u0022runtime lookup\u0022\n ;  V63 rat3         [V63,T09] (  3,  5.60)    long  -\u003E  rsi         \u0022fgMakeTemp is creating a new local variable\u0022\n ;\n-; Lcl frame size = 168\n\u002B; Lcl frame size = 152\n \n G_M58075_IG01:\n        push     rbp\n@@ -82,14 \u002B82,14 @@ G_M58075_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 168\n-       lea      rbp, [rsp\u002B0xD0]\n\u002B       sub      rsp, 152\n\u002B       lea      rbp, [rsp\u002B0xC0]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x78], rax\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        mov      qword ptr [rbp-0x30], rsi\n-       mov      gword ptr [rbp-0x90], r9\n\u002B       mov      gword ptr [rbp-0x88], r9\n        mov      r15, rdi\n        mov      r14, rsi\n        mov      r13, rdx\n@@ -105,7 \u002B105,7 @@ G_M58075_IG02:\n        mov      rdi, qword ptr [r14\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M58075_IG31\n\u002B       je       G_M58075_IG28\n \t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 9.25\n G_M58075_IG03:\n        mov      rsi, r12\n@@ -155,90 \u002B155,70 @@ G_M58075_IG05:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,double]:Render(MongoDB.Driver.RenderArgs\u00601[System.__Canon]):MongoDB.Driver.RenderedPipelineDefinition\u00601[double]:this\n        mov      r12, rax\n-       mov      rax, gword ptr [r12\u002B0x08]\n-       mov      gword ptr [rbp-0x80], rax\n-       test     rax, rax\n-       je       G_M58075_IG33\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n... diff truncated; middle omitted ...\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M58075_IG20\n\u002B       je       SHORT G_M58075_IG17\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M58075_IG19:\n\u002BG_M58075_IG16:\n        xor      ecx, ecx\n-       jmp      SHORT G_M58075_IG22\n\u002B       jmp      SHORT G_M58075_IG19\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M58075_IG20:\n\u002BG_M58075_IG17:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -246,30 \u002B226,30 @@ G_M58075_IG20:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M58075_IG22\n\u002B       jmp      SHORT G_M58075_IG19\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M58075_IG21:\n\u002BG_M58075_IG18:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M58075_IG22:\n\u002BG_M58075_IG19:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M58075_IG23:\n\u002BG_M58075_IG20:\n        mov      dword ptr [rbp-0x6C], ecx\n        mov      rdi, gword ptr [r12\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M58075_IG34\n\u002B       je       G_M58075_IG31\n        cmp      dword ptr [rbp-0x6C], 0\n-       je       G_M58075_IG34\n\u002B       je       G_M58075_IG31\n        mov      rdi, qword ptr [r14\u002B0x18]\n        mov      rsi, qword ptr [rdi\u002B0x20]\n        test     rsi, rsi\n-       je       G_M58075_IG32\n\u002B       je       G_M58075_IG29\n \t\t\t\t\t\t;; size=56 bbWeight=1 PerfScore 14.75\n-G_M58075_IG24:\n\u002BG_M58075_IG21:\n        mov      rdi, r15\n        mov      rdx, r12\n        mov      rcx, rbx\n@@ -281,13 \u002B261,13 @@ G_M58075_IG24:\n        cmp      byte  ptr [r14], r14b\n        mov      rdi, r15\n        mov      rsi, r13\n-       mov      r9, gword ptr [rbp-0x90]\n\u002B       mov      r9, gword ptr [rbp-0x88]\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 16.25\n-G_M58075_IG25:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=74 bbWeight=1 PerfScore 16.25\n\u002BG_M58075_IG22:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -295,22 \u002B275,22 @@ G_M58075_IG25:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r13\n        mov      rcx, r14\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=64 bbWeight=1 PerfScore 11.25\n-G_M58075_IG26:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M58075_IG29\n-\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 2.00\n-G_M58075_IG27:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n\u002BG_M58075_IG23:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M58075_IG26\n\u002B\t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n\u002BG_M58075_IG24:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M58075_IG28\n\u002B       je       SHORT G_M58075_IG25\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -319,12 \u002B299,12 @@ G_M58075_IG27:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M58075_IG28:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n\u002BG_M58075_IG25:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M58075_IG29\n\u002B       je       SHORT G_M58075_IG26\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -333,12 \u002B313,12 @@ G_M58075_IG28:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M58075_IG29:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n\u002BG_M58075_IG26:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M58075_IG30:\n-       add      rsp, 168\n\u002BG_M58075_IG27:\n\u002B       add      rsp, 152\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -347,7 \u002B327,7 @@ G_M58075_IG30:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M58075_IG31:\n\u002BG_M58075_IG28:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -355,21 \u002B335,21 @@ G_M58075_IG31:\n        mov      rdi, rax\n        jmp      G_M58075_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M58075_IG32:\n\u002BG_M58075_IG29:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M58075_IG24\n\u002B       jmp      G_M58075_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M58075_IG33:\n\u002BG_M58075_IG30:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M58075_IG34:\n\u002BG_M58075_IG31:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -381,16 \u002B361,16 @@ G_M58075_IG34:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M58075_IG35:\n\u002BG_M58075_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M58075_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M58075_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M58075_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M58075_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M58075_IG37\n\u002B       je       SHORT G_M58075_IG34\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -399,12 \u002B379,12 @@ G_M58075_IG36:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M58075_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M58075_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M58075_IG38\n\u002B       je       SHORT G_M58075_IG35\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -413,14 \u002B393,14 @@ G_M58075_IG37:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M58075_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M58075_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M58075_IG39:\n\u002BG_M58075_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1137, prolog size 72, PerfScore 161.80, instruction count 268, allocated bytes for code 1137 (MethodHash=1d351d24) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollection[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 1056, prolog size 72, PerfScore 152.42, instruction count 254, allocated bytes for code 1056 (MethodHash=1d351d24) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollection[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1137,"DiffBytes":1056},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Core.EventDestinationService:ListAutoPaging(Stripe.V2.Core.EventDestinationListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.EventDestination]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.Core.EventDestinationService:ListAutoPaging(Stripe.V2.Core.EventDestinationListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.EventDestination]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Core.EventDestinationService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Core.EventDestinationListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Core.EventDestinationListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.EventDestination]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.EventDestination]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.EventDestination]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.EventDestination]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.EventDestination]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.EventDestination]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.EventDestination]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.EventDestination]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.EventDestination]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M63198_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M63198_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/core/event_destinations\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M63198_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M63198_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.EventDestination]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.EventDestination]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M63198_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M63198_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.EventDestination]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.EventDestination]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M63198_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M63198_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=33ce0921) for method Stripe.V2.Core.EventDestinationService:ListAutoPaging(Stripe.V2.Core.EventDestinationListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.EventDestination]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=33ce0921) for method Stripe.V2.Core.EventDestinationService:ListAutoPaging(Stripe.V2.Core.EventDestinationListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.EventDestination]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.Internal.SyncViaAsync:AwaitSyncOverAsync[long](System.Threading.Tasks.Task\u00601[long]):System.Threading.Tasks.ValueTask\u00601[long] (FullOpts)","Category":"same-size","Description":"165 -\u003E 165 bytes (0)","ExtraInfo":null,"Diff":"@@ -1,99 \u002B1,99 @@\n ; Assembly listing for method Medallion.Threading.Internal.SyncViaAsync:AwaitSyncOverAsync[long](System.Threading.Tasks.Task\u00601[long]):System.Threading.Tasks.ValueTask\u00601[long] (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 9 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 RetBuf       [V00,T00] ( 11,  7   )    long  -\u003E  rbx         single-def\n ;  V01 arg0         [V01,T01] (  7,  4.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Threading.Tasks.Task\u00601[long]\u003E\n ;* V02 loc0         [V02    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u003CSystem.Runtime.CompilerServices.TaskAwaiter\u00601[long]\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V04 tmp1         [V04    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.ValueTask\u00601[long]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.TaskAwaiter\u00601[long]\u003E\n ;* V06 tmp3         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[long]\u003E\n ;* V07 tmp4         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[long]\u003E\n ;* V08 tmp5         [V08    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V09 tmp6         [V09    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.ValueTask\u00601[long]\u003E\n ;* V10 tmp7         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V02.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;* V11 tmp8         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V04._obj (fldOffset=0x0)\u0022 P-INDEP\n ;* V12 tmp9         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    single-def \u0022field V04._result (fldOffset=0x8)\u0022 P-INDEP\n ;* V13 tmp10        [V13    ] (  0,  0   )   short  -\u003E  zero-ref    single-def \u0022field V04._token (fldOffset=0x10)\u0022 P-INDEP\n ;* V14 tmp11        [V14    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V04._continueOnCapturedContext (fldOffset=0x12)\u0022 P-INDEP\n ;* V15 tmp12        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V05.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._obj (fldOffset=0x0)\u0022 P-INDEP\n ;  V17 tmp14        [V17,T04] (  2,  1   )    long  -\u003E  rdi         single-def \u0022field V09._result (fldOffset=0x8)\u0022 P-INDEP\n ;* V18 tmp15        [V18    ] (  0,  0   )   short  -\u003E  zero-ref    single-def \u0022field V09._token (fldOffset=0x10)\u0022 P-INDEP\n ;* V19 tmp16        [V19    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V09._continueOnCapturedContext (fldOffset=0x12)\u0022 P-INDEP\n ;  V20 rat0         [V20,T02] (  2,  4   )    long  -\u003E  rax         \u0022TLS field access\u0022\n ;  V21 rat1         [V21,T03] (  2,  4   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 0\n \n G_M27492_IG01:\n        push     rbp\n        push     r15\n        push     rbx\n        lea      rbp, [rsp\u002B0x10]\n        mov      rbx, rdi\n        mov      r15, rsi\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.00\n G_M27492_IG02:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        cmp      byte  ptr [rax\u002B0x10], 0\n        je       SHORT G_M27492_IG05\n \t\t\t\t\t\t;; size=32 bbWeight=1 PerfScore 6.75\n G_M27492_IG03:\n        mov      edi, dword ptr [r15\u002B0x34]\n        and      edi, 0xD1FFAB1E\n        cmp      edi, 0xD1FFAB1E\n        je       SHORT G_M27492_IG04\n        mov      rdi, r15\n        xor      esi, esi\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int)\n        call     [rax]System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int)\n \t\t\t\t\t\t;; size=35 bbWeight=0.50 PerfScore 3.62\n G_M27492_IG04:\n        mov      rdi, qword ptr [r15\u002B0x38]\n        xor      rsi, rsi\n        mov      gword ptr [rbx], rsi\n        mov      qword ptr [rbx\u002B0x08], rdi\n        mov      word  ptr [rbx\u002B0x10], 0\n        mov      byte  ptr [rbx\u002B0x12], 1\n        jmp      SHORT G_M27492_IG06\n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 4.12\n G_M27492_IG05:\n        test     r15, r15\n        je       SHORT G_M27492_IG08\n        mov      rdi, rbx\n        mov      rsi, r15\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n        xor      eax, eax\n        mov      qword ptr [rbx\u002B0x08], rax\n        mov      word  ptr [rbx\u002B0x10], 0\n        mov      byte  ptr [rbx\u002B0x12], 1\n \t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 3.00\n G_M27492_IG06:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M27492_IG07:\n        pop      rbx\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 2.50\n G_M27492_IG08:\n        mov      edi, 9\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n ; Total bytes of code 165, prolog size 9, PerfScore 24.25, instruction count 45, allocated bytes for code 165 (MethodHash=a05b949b) for method Medallion.Threading.Internal.SyncViaAsync:AwaitSyncOverAsync[long](System.Threading.Tasks.Task\u00601[long]):System.Threading.Tasks.ValueTask\u00601[long] (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":165,"DiffBytes":165},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration:FindAllTypeMappingsUsingTable(System.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping,System.Data.Entity.Core.Metadata.Edm.EntityType):System.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.EntityTypeMapping] (FullOpts)","Category":"improvement","Description":"1,323 -\u003E 1,255 bytes (-68)","ExtraInfo":null,"Diff":"@@ -8,66 \u002B8,66 @@\n ; 0 inlinees with PGO data; 21 single block inlinees; 11 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T44] (  3,   3   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping\u003E\n\u002B;  V00 arg0         [V00,T43] (  3,   3   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping\u003E\n ;  V01 arg1         [V01,T09] (  6, 514   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n-;  V02 loc0         [V02,T27] (  8, 194   )     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.EntityTypeMapping]\u003E\n-;  V03 loc1         [V03,T42] (  3,  13   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.EntityContainerMapping]\u003E\n-;  V04 loc2         [V04,T40] (  5,  21   )     int  -\u003E  r13        \n-;  V05 loc3         [V05,T38] (  5,  56   )     ref  -\u003E  r12         class-hnd \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.EntitySetMapping]\u003E\n-;* V06 loc4         [V06,T45] (  0,   0   )     int  -\u003E  zero-ref   \n-;  V07 loc5         [V07,T26] (  3, 208   )     ref  -\u003E  [rbp-0x58]  class-hnd exact spill-single-def \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.EntityTypeMapping]\u003E\n-;  V08 loc6         [V08,T18] (  5, 336   )     int  -\u003E  [rbp-0x2C] \n-;  V09 loc7         [V09,T04] (  9, 960   )     ref  -\u003E  [rbp-0x60]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Mapping.EntityTypeMapping\u003E\n\u002B;  V02 loc0         [V02,T26] (  8, 194   )     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.EntityTypeMapping]\u003E\n\u002B;  V03 loc1         [V03,T41] (  3,  13   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.EntityContainerMapping]\u003E\n\u002B;  V04 loc2         [V04,T39] (  5,  21   )     int  -\u003E  r13        \n\u002B;  V05 loc3         [V05,T37] (  5,  56   )     ref  -\u003E  r12         class-hnd \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.EntitySetMapping]\u003E\n\u002B;* V06 loc4         [V06,T44] (  0,   0   )     int  -\u003E  zero-ref   \n\u002B;  V07 loc5         [V07,T25] (  3, 208   )     ref  -\u003E  [rbp-0x58]  class-hnd exact spill-single-def \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.EntityTypeMapping]\u003E\n\u002B;  V08 loc6         [V08,T16] (  5, 336   )     int  -\u003E  [rbp-0x2C] \n\u002B;  V09 loc7         [V09,T03] (  9, 960   )     ref  -\u003E  [rbp-0x60]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Mapping.EntityTypeMapping\u003E\n ;  V10 loc8         [V10,T06] (  5, 704   )     ref  -\u003E  [rbp-0x68]  class-hnd spill-single-def \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration\u003E\n ;  V11 loc9         [V11,T01] (  5,1216   )     int  -\u003E  [rbp-0x30] \n-;  V12 loc10        [V12,T16] (  2, 512   )   ubyte  -\u003E  rsi        \n\u002B;  V12 loc10        [V12,T15] (  2, 512   )   ubyte  -\u003E  rdx        \n ;# V13 OutArgs      [V13    ] (  1,   1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V14 tmp1         [V14,T43] (  3,   6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.EntityTypeMapping]\u003E\n-;  V15 tmp2         [V15,T12] (  3, 512   )     int  -\u003E  rsi        \n-;  V16 tmp3         [V16,T37] (  2,  64   )     ref  -\u003E  [rbp-0x70]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n-;  V17 tmp4         [V17,T33] (  3,  96   )     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.EntityTypeMapping]\u003E\n-;  V18 tmp5         [V18,T34] (  3,  96   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.EntityTypeMapping]\u003E\n\u002B;  V14 tmp1         [V14,T42] (  3,   6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.EntityTypeMapping]\u003E\n\u002B;  V15 tmp2         [V15,T11] (  3, 512   )     int  -\u003E  rdx        \n\u002B;  V16 tmp3         [V16,T36] (  2,  64   )     ref  -\u003E  [rbp-0x70]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n\u002B;  V17 tmp4         [V17,T32] (  3,  96   )     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.EntityTypeMapping]\u003E\n\u002B;  V18 tmp5         [V18,T33] (  3,  96   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.EntityTypeMapping]\u003E\n ;* V19 tmp6         [V19    ] (  0,   0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n-;  V20 tmp7         [V20,T22] (  2, 256   )     ref  -\u003E  rdi         class-hnd \u0022dup spill\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n-;  V21 tmp8         [V21,T19] (  5, 288   )     ref  -\u003E  rdi        \n-;  V22 tmp9         [V22,T28] (  3, 192   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022dup spill\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n\u002B;  V20 tmp7         [V20,T20] (  2, 256   )     ref  -\u003E  rdi         class-hnd \u0022dup spill\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n\u002B;  V21 tmp8         [V21,T17] (  5, 288   )     ref  -\u003E  rdi        \n\u002B;  V22 tmp9         [V22,T27] (  3, 192   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022dup spill\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n ;* V23 tmp10        [V23    ] (  0,   0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n ;* V24 tmp11        [V24    ] (  0,   0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602\u002BValueCollection[System.String,System.Data.Entity.Core.Metadata.Edm.EntityType]\u003E\n-;  V25 tmp12        [V25,T20] (  4, 256   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Data.Entity.Core.Metadata.Edm.EntityType]\u003E\n-;  V26 tmp13        [V26,T31] (  2, 128   )     ref  -\u003E  rsi         class-hnd exact \u0022dup spill\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602\u002BValueCollection[System.__Canon,System.__Canon]\u003E\n-;  V27 tmp14        [V27,T29] (  4, 128   )     ref  -\u003E  rsi        \n-;  V28 tmp15        [V28,T21] (  4, 256   )     ref  -\u003E  [rbp-0x90]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602\u002BValueCollection[System.String,System.Data.Entity.Core.Metadata.Edm.EntityType]\u003E\n\u002B;  V25 tmp12        [V25,T18] (  4, 256   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Data.Entity.Core.Metadata.Edm.EntityType]\u003E\n\u002B;  V26 tmp13        [V26,T30] (  2, 128   )     ref  -\u003E  rsi         class-hnd exact \u0022dup spill\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602\u002BValueCollection[System.__Canon,System.__Canon]\u003E\n\u002B;  V27 tmp14        [V27,T28] (  4, 128   )     ref  -\u003E  rsi        \n\u002B;  V28 tmp15        [V28,T19] (  4, 256   )     ref  -\u003E  [rbp-0x90]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602\u002BValueCollection[System.String,System.Data.Entity.Core.Metadata.Edm.EntityType]\u003E\n ;* V29 tmp16        [V29    ] (  0,   0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602\u002BValueCollection[System.String,System.Data.Entity.Core.Metadata.Edm.EntityType]\u003E\n ;  V30 tmp17        [V30    ] (  1,  32   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V31 tmp18        [V31    ] (  0,   0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.MetadataProperty]\u003E\n ;* V32 tmp19        [V32    ] (  0,   0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\u003E\n ;* V33 tmp20        [V33    ] (  0,   0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;  V34 tmp21        [V34,T02] (  8,1024   )     ref  -\u003E  [rbp-0x98]  class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Utilities.DatabaseName\u003E\n-;  V35 tmp22        [V35,T03] (  4,1024   )     ref  -\u003E  [rbp-0xA0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\u003E\n-;  V36 tmp23        [V36    ] (  3, 384   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V35 tmp22        [V35,T04] (  3, 768   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\u003E\n... diff truncated; middle omitted ...\n\u002B       jne      SHORT G_M19352_IG16\n        xor      eax, eax\n-       jmp      SHORT G_M19352_IG20\n\u002B       jmp      SHORT G_M19352_IG18\n \t\t\t\t\t\t;; size=55 bbWeight=128 PerfScore 2080.00\n-G_M19352_IG18:\n-       mov      rdi, gword ptr [rbp-0xA8]\n\u002BG_M19352_IG16:\n\u002B       mov      rdi, gword ptr [rbp-0xA0]\n        mov      rdi, gword ptr [rdi\u002B0x10]\n        mov      rsi, gword ptr [rbp-0x98]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n        mov      edx, 4\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Equals(System.String,System.String,int):bool\n        call     [rax]System.String:Equals(System.String,System.String,int):bool\n-       jmp      SHORT G_M19352_IG20\n\u002B       jmp      SHORT G_M19352_IG18\n \t\t\t\t\t\t;; size=41 bbWeight=128 PerfScore 1472.00\n-G_M19352_IG19:\n\u002BG_M19352_IG17:\n        mov      eax, 1\n \t\t\t\t\t\t;; size=5 bbWeight=128 PerfScore 32.00\n-G_M19352_IG20:\n\u002BG_M19352_IG18:\n        test     eax, eax\n-       jne      G_M19352_IG16\n\u002B       jne      G_M19352_IG14\n \t\t\t\t\t\t;; size=8 bbWeight=128 PerfScore 160.00\n-G_M19352_IG21:\n\u002BG_M19352_IG19:\n        mov      esi, dword ptr [rbp-0x30]\n        inc      esi\n        mov      dword ptr [rbp-0x30], esi\n        mov      rdx, gword ptr [rbp-0x60]\n        mov      rsi, qword ptr [rbp-0x48]\n \t\t\t\t\t\t;; size=16 bbWeight=256 PerfScore 1088.00\n-G_M19352_IG22:\n\u002BG_M19352_IG20:\n        mov      rdi, rdx\n        call     [rsi]System.Data.Entity.Core.Mapping.TypeMapping:get_MappingFragments():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.MappingFragment]:this\n        mov      rdi, gword ptr [rax\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        cmp      eax, dword ptr [rbp-0x30]\n-       jle      SHORT G_M19352_IG27\n\u002B       jle      SHORT G_M19352_IG25\n \t\t\t\t\t\t;; size=27 bbWeight=512 PerfScore 5376.00\n-G_M19352_IG23:\n\u002BG_M19352_IG21:\n        mov      rax, gword ptr [rbp-0x68]\n        test     rax, rax\n        jne      G_M19352_IG09\n \t\t\t\t\t\t;; size=13 bbWeight=256 PerfScore 576.00\n-G_M19352_IG24:\n-       xor      esi, esi\n\u002BG_M19352_IG22:\n\u002B       xor      edx, edx\n        jmp      G_M19352_IG10\n \t\t\t\t\t\t;; size=7 bbWeight=128 PerfScore 288.00\n-G_M19352_IG25:\n\u002BG_M19352_IG23:\n        mov      rdi, gword ptr [rbp-0x60]\n        mov      rdx, qword ptr [rbp-0x48]\n        call     [rdx]System.Data.Entity.Core.Mapping.TypeMapping:get_MappingFragments():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.MappingFragment]:this\n@@ -326,22 \u002B308,22 @@ G_M19352_IG25:\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x38]System.Data.Entity.Core.Metadata.Edm.EntitySet:get_ElementType():System.Data.Entity.Core.Metadata.Edm.EntityType:this\n        cmp      rax, rbx\n-       je       G_M19352_IG16\n-       jmp      SHORT G_M19352_IG21\n\u002B       je       G_M19352_IG14\n\u002B       jmp      SHORT G_M19352_IG19\n \t\t\t\t\t\t;; size=55 bbWeight=128 PerfScore 3008.00\n-G_M19352_IG26:\n\u002BG_M19352_IG24:\n        mov      rdi, r14\n        mov      rsi, gword ptr [rbp-0x60]\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n \t\t\t\t\t\t;; size=19 bbWeight=32 PerfScore 144.00\n-G_M19352_IG27:\n\u002BG_M19352_IG25:\n        mov      ecx, dword ptr [rbp-0x2C]\n        inc      ecx\n        mov      dword ptr [rbp-0x2C], ecx\n        mov      rax, gword ptr [rbp-0x58]\n \t\t\t\t\t\t;; size=12 bbWeight=64 PerfScore 208.00\n-G_M19352_IG28:\n\u002BG_M19352_IG26:\n        mov      rdi, gword ptr [rax\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n@@ -349,23 \u002B331,23 @@ G_M19352_IG28:\n        cmp      eax, ecx\n        jg       G_M19352_IG04\n \t\t\t\t\t\t;; size=28 bbWeight=128 PerfScore 960.00\n-G_M19352_IG29:\n\u002BG_M19352_IG27:\n        mov      rax, qword ptr [rbp-0x50]\n        inc      eax\n        cmp      eax, dword ptr [r12\u002B0x10]\n-       jl       SHORT G_M19352_IG33\n\u002B       jl       SHORT G_M19352_IG31\n \t\t\t\t\t\t;; size=13 bbWeight=16 PerfScore 68.00\n-G_M19352_IG30:\n\u002BG_M19352_IG28:\n        inc      r13d\n \t\t\t\t\t\t;; size=3 bbWeight=4 PerfScore 1.00\n-G_M19352_IG31:\n\u002BG_M19352_IG29:\n        mov      rdi, r15\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        cmp      eax, r13d\n-       jle      G_M19352_IG34\n\u002B       jle      G_M19352_IG32\n \t\t\t\t\t\t;; size=25 bbWeight=8 PerfScore 38.00\n-G_M19352_IG32:\n\u002BG_M19352_IG30:\n        mov      rdi, r15\n        mov      esi, r13d\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IList\u00601[System.__Canon]:get_Item(int):System.__Canon:this\n@@ -381,14 \u002B363,14 @@ G_M19352_IG32:\n        mov      r12, rax\n        xor      eax, eax\n        cmp      dword ptr [r12\u002B0x10], 0\n-       jle      SHORT G_M19352_IG30\n\u002B       jle      SHORT G_M19352_IG28\n \t\t\t\t\t\t;; size=70 bbWeight=4 PerfScore 73.00\n-G_M19352_IG33:\n\u002BG_M19352_IG31:\n        cmp      eax, dword ptr [r12\u002B0x10]\n-       jae      G_M19352_IG37\n\u002B       jae      G_M19352_IG35\n        mov      rdi, gword ptr [r12\u002B0x08]\n        cmp      eax, dword ptr [rdi\u002B0x08]\n-       jae      G_M19352_IG41\n\u002B       jae      G_M19352_IG39\n        mov      qword ptr [rbp-0x50], rax\n        mov      rcx, gword ptr [rdi\u002B8*rax\u002B0x10]\n        mov      gword ptr [rbp-0x70], rcx\n@@ -398,19 \u002B380,19 @@ G_M19352_IG33:\n        mov      rdi, gword ptr [rbp-0x70]\n        mov      rsi, gword ptr [rdi\u002B0x40]\n        test     rsi, rsi\n-       je       SHORT G_M19352_IG38\n\u002B       je       SHORT G_M19352_IG36\n        lea      rdi, bword ptr [rax\u002B0x08]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rax, gword ptr [rbp-0x78]\n        mov      gword ptr [rbp-0x58], rax\n        xor      ecx, ecx\n        mov      dword ptr [rbp-0x2C], ecx\n-       jmp      G_M19352_IG28\n\u002B       jmp      G_M19352_IG26\n \t\t\t\t\t\t;; size=97 bbWeight=16 PerfScore 404.00\n-G_M19352_IG34:\n\u002BG_M19352_IG32:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M19352_IG35:\n\u002BG_M19352_IG33:\n        add      rsp, 136\n        pop      rbx\n        pop      r12\n@@ -420,38 \u002B402,38 @@ G_M19352_IG35:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M19352_IG36:\n\u002BG_M19352_IG34:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.EntityTypeMapping]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M19352_IG03\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M19352_IG37:\n\u002BG_M19352_IG35:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M19352_IG38:\n\u002BG_M19352_IG36:\n        mov      edi, 20\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M19352_IG39:\n\u002BG_M19352_IG37:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M19352_IG40:\n\u002BG_M19352_IG38:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M19352_IG41:\n\u002BG_M19352_IG39:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1323, prolog size 35, PerfScore 28586.75, instruction count 299, allocated bytes for code 1323 (MethodHash=b38eb467) for method System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration:FindAllTypeMappingsUsingTable(System.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping,System.Data.Entity.Core.Metadata.Edm.EntityType):System.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.EntityTypeMapping] (FullOpts)\n\u002B; Total bytes of code 1255, prolog size 35, PerfScore 26442.75, instruction count 285, allocated bytes for code 1255 (MethodHash=b38eb467) for method System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration:FindAllTypeMappingsUsingTable(System.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping,System.Data.Entity.Core.Metadata.Edm.EntityType):System.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.EntityTypeMapping] (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1323,"DiffBytes":1255},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollection[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,137 -\u003E 1,056 bytes (-81)","ExtraInfo":null,"Diff":"@@ -14,14 \u002B14,14 @@\n ;  V03 arg2         [V03,T05] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.__Canon,int]\u003E\n ;  V04 arg3         [V04,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T24] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n\u002B;  V06 loc0         [V06,T23] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n-;  V08 loc2         [V08,T25] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n-;  V09 loc3         [V09,T22] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V08 loc2         [V08,T24] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n\u002B;  V09 loc3         [V09,T21] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V12 tmp2         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V13 tmp3         [V13,T31] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V13 tmp3         [V13,T30] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V14 tmp4         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V15 tmp5         [V15    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V16 tmp6         [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -40,17 \u002B40,17 @@\n ;* V29 tmp19        [V29    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V30 tmp20        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V31 tmp21        [V31    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V32 tmp22        [V32,T23] (  3,  2   )     int  -\u003E  registers  \n-;  V33 tmp23        [V33,T06] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V34 tmp24        [V34    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V35 tmp25        [V35,T20] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V36 tmp26        [V36,T21] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V32 tmp22        [V32,T22] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V33 tmp23        [V33,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V34 tmp24        [V34    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V35 tmp25        [V35,T20] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V38 tmp28        [V38,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V39 tmp29        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V40 tmp30        [V40,T28] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V40 tmp30        [V40,T27] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V41 tmp31        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V42 tmp32        [V42,T19] (  8,  3   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V42 tmp32        [V42,T19] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V43 tmp33        [V43,T07] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V44 tmp34        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V45 tmp35        [V45,T10] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -59,13 \u002B59,13 @@\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V50 tmp40        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;  V51 tmp41        [V51,T16] (  2,  2   )     ref  -\u003E  [rbp-0x90]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp42        [V52,T26] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V53 tmp43        [V53,T27] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp41        [V51,T16] (  2,  2   )     ref  -\u003E  [rbp-0x88]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp42        [V52,T25] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V53 tmp43        [V53,T26] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V54 tmp44        [V54    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V23._name (fldOffset=0x0)\u0022 P-DEP\n ;* V55 tmp45        [V55    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V23._value (fldOffset=0x8)\u0022 P-DEP\n-;  V56 tmp46        [V56,T29] (  2,  1   )     ref  -\u003E  rax         \u0022field V24._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V57 tmp47        [V57,T30] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V24._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V56 tmp46        [V56,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V24._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V57 tmp47        [V57,T29] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V24._value (fldOffset=0x8)\u0022 P-INDEP\n ;  V58 tmp48        [V58,T17] (  2,  4   )    long  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V59 tmp49        [V59,T18] (  2,  4   )    long  -\u003E  rsi         \u0022argument with side effect\u0022\n ;  V60 rat0         [V60,T14] (  3,  4   )    long  -\u003E  rdi         \u0022runtime lookup\u0022\n@@ -73,7 \u002B73,7 @@\n ;  V62 rat2         [V62,T15] (  3,  4   )    long  -\u003E  rsi         \u0022runtime lookup\u0022\n ;  V63 rat3         [V63,T09] (  3,  5.60)    long  -\u003E  rsi         \u0022fgMakeTemp is creating a new local variable\u0022\n ;\n-; Lcl frame size = 168\n\u002B; Lcl frame size = 152\n \n G_M2523_IG01:\n        push     rbp\n@@ -82,14 \u002B82,14 @@ G_M2523_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 168\n-       lea      rbp, [rsp\u002B0xD0]\n\u002B       sub      rsp, 152\n\u002B       lea      rbp, [rsp\u002B0xC0]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x78], rax\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        mov      qword ptr [rbp-0x30], rsi\n-       mov      gword ptr [rbp-0x90], r9\n\u002B       mov      gword ptr [rbp-0x88], r9\n        mov      r15, rdi\n        mov      r14, rsi\n        mov      r13, rdx\n@@ -105,7 \u002B105,7 @@ G_M2523_IG02:\n        mov      rdi, qword ptr [r14\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M2523_IG31\n\u002B       je       G_M2523_IG28\n \t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 9.25\n G_M2523_IG03:\n        mov      rsi, r12\n@@ -155,90 \u002B155,70 @@ G_M2523_IG05:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,int]:Render(MongoDB.Driver.RenderArgs\u00601[System.__Canon]):MongoDB.Driver.RenderedPipelineDefinition\u00601[int]:this\n        mov      r12, rax\n-       mov      rax, gword ptr [r12\u002B0x08]\n-       mov      gword ptr [rbp-0x80], rax\n-       test     rax, rax\n-       je       G_M2523_IG33\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M2523_IG07\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M2523_IG18:\n\u002BG_M2523_IG15:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M2523_IG20\n\u002B       je       SHORT G_M2523_IG17\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M2523_IG19:\n\u002BG_M2523_IG16:\n        xor      ecx, ecx\n-       jmp      SHORT G_M2523_IG22\n\u002B       jmp      SHORT G_M2523_IG19\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M2523_IG20:\n\u002BG_M2523_IG17:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -246,30 \u002B226,30 @@ G_M2523_IG20:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M2523_IG22\n\u002B       jmp      SHORT G_M2523_IG19\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M2523_IG21:\n\u002BG_M2523_IG18:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M2523_IG22:\n\u002BG_M2523_IG19:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M2523_IG23:\n\u002BG_M2523_IG20:\n        mov      dword ptr [rbp-0x6C], ecx\n        mov      rdi, gword ptr [r12\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M2523_IG34\n\u002B       je       G_M2523_IG31\n        cmp      dword ptr [rbp-0x6C], 0\n-       je       G_M2523_IG34\n\u002B       je       G_M2523_IG31\n        mov      rdi, qword ptr [r14\u002B0x18]\n        mov      rsi, qword ptr [rdi\u002B0x20]\n        test     rsi, rsi\n-       je       G_M2523_IG32\n\u002B       je       G_M2523_IG29\n \t\t\t\t\t\t;; size=56 bbWeight=1 PerfScore 14.75\n-G_M2523_IG24:\n\u002BG_M2523_IG21:\n        mov      rdi, r15\n        mov      rdx, r12\n        mov      rcx, rbx\n@@ -281,13 \u002B261,13 @@ G_M2523_IG24:\n        cmp      byte  ptr [r14], r14b\n        mov      rdi, r15\n        mov      rsi, r13\n-       mov      r9, gword ptr [rbp-0x90]\n\u002B       mov      r9, gword ptr [rbp-0x88]\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 16.25\n-G_M2523_IG25:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=74 bbWeight=1 PerfScore 16.25\n\u002BG_M2523_IG22:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -295,22 \u002B275,22 @@ G_M2523_IG25:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r13\n        mov      rcx, r14\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=64 bbWeight=1 PerfScore 11.25\n-G_M2523_IG26:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M2523_IG29\n-\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 2.00\n-G_M2523_IG27:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n\u002BG_M2523_IG23:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M2523_IG26\n\u002B\t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n\u002BG_M2523_IG24:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M2523_IG28\n\u002B       je       SHORT G_M2523_IG25\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -319,12 \u002B299,12 @@ G_M2523_IG27:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M2523_IG28:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n\u002BG_M2523_IG25:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M2523_IG29\n\u002B       je       SHORT G_M2523_IG26\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -333,12 \u002B313,12 @@ G_M2523_IG28:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M2523_IG29:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n\u002BG_M2523_IG26:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M2523_IG30:\n-       add      rsp, 168\n\u002BG_M2523_IG27:\n\u002B       add      rsp, 152\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -347,7 \u002B327,7 @@ G_M2523_IG30:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M2523_IG31:\n\u002BG_M2523_IG28:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -355,21 \u002B335,21 @@ G_M2523_IG31:\n        mov      rdi, rax\n        jmp      G_M2523_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M2523_IG32:\n\u002BG_M2523_IG29:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M2523_IG24\n\u002B       jmp      G_M2523_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M2523_IG33:\n\u002BG_M2523_IG30:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M2523_IG34:\n\u002BG_M2523_IG31:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -381,16 \u002B361,16 @@ G_M2523_IG34:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M2523_IG35:\n\u002BG_M2523_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M2523_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M2523_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M2523_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M2523_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M2523_IG37\n\u002B       je       SHORT G_M2523_IG34\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -399,12 \u002B379,12 @@ G_M2523_IG36:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M2523_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M2523_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M2523_IG38\n\u002B       je       SHORT G_M2523_IG35\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -413,14 \u002B393,14 @@ G_M2523_IG37:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M2523_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M2523_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M2523_IG39:\n\u002BG_M2523_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1137, prolog size 72, PerfScore 161.80, instruction count 268, allocated bytes for code 1137 (MethodHash=582cf624) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollection[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 1056, prolog size 72, PerfScore 152.42, instruction count 254, allocated bytes for code 1056 (MethodHash=582cf624) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollection[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1137,"DiffBytes":1056},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Core.EventService:ListAutoPaging(Stripe.V2.Core.EventListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.Event]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.Core.EventService:ListAutoPaging(Stripe.V2.Core.EventListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.Event]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Core.EventService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Core.EventListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Core.EventListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.Event]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.Event]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.Event]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.Event]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.Event]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.Event]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.Event]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.Event]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.Event]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M45570_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M45570_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/core/events\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M45570_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M45570_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.Event]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.Event]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M45570_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M45570_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.Event]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.Event]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M45570_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M45570_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=5a8e4dfd) for method Stripe.V2.Core.EventService:ListAutoPaging(Stripe.V2.Core.EventListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.Event]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=5a8e4dfd) for method Stripe.V2.Core.EventService:ListAutoPaging(Stripe.V2.Core.EventListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.Event]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.Internal.SyncViaAsync:AwaitSyncOverAsync[short](System.Threading.Tasks.Task\u00601[short]):System.Threading.Tasks.ValueTask\u00601[short] (FullOpts)","Category":"same-size","Description":"159 -\u003E 159 bytes (0)","ExtraInfo":null,"Diff":"@@ -1,97 \u002B1,97 @@\n ; Assembly listing for method Medallion.Threading.Internal.SyncViaAsync:AwaitSyncOverAsync[short](System.Threading.Tasks.Task\u00601[short]):System.Threading.Tasks.ValueTask\u00601[short] (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 9 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 arg0         [V00,T00] (  7,  4.50)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Threading.Tasks.Task\u00601[short]\u003E\n ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u003CSystem.Runtime.CompilerServices.TaskAwaiter\u00601[short]\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V03 tmp1         [V03    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CSystem.Threading.Tasks.ValueTask\u00601[short]\u003E\n ;* V04 tmp2         [V04    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CSystem.Threading.Tasks.ValueTask\u00601[short]\u003E\n ;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.ValueTask\u00601[short]\u003E\n ;* V06 tmp4         [V06    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Runtime.CompilerServices.TaskAwaiter\u00601[short]\u003E\n ;* V07 tmp5         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[short]\u003E\n ;* V08 tmp6         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.Tasks.Task\u00601[short]\u003E\n ;* V09 tmp7         [V09    ] (  0,  0   )   short  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V10 tmp8         [V10    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Threading.Tasks.ValueTask\u00601[short]\u003E\n ;* V11 tmp9         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V01.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;* V12 tmp10        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V05._obj (fldOffset=0x0)\u0022 P-INDEP\n ;* V13 tmp11        [V13    ] (  0,  0   )   short  -\u003E  zero-ref    single-def \u0022field V05._result (fldOffset=0x8)\u0022 P-INDEP\n ;* V14 tmp12        [V14    ] (  0,  0   )   short  -\u003E  zero-ref    single-def \u0022field V05._token (fldOffset=0xa)\u0022 P-INDEP\n ;* V15 tmp13        [V15    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V05._continueOnCapturedContext (fldOffset=0xc)\u0022 P-INDEP\n ;* V16 tmp14        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V06.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;* V17 tmp15        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._obj (fldOffset=0x0)\u0022 P-INDEP\n ;  V18 tmp16        [V18,T03] (  2,  1   )   short  -\u003E  [rbp-0x0C]  spill-single-def \u0022field V10._result (fldOffset=0x8)\u0022 P-INDEP\n ;* V19 tmp17        [V19    ] (  0,  0   )   short  -\u003E  zero-ref    single-def \u0022field V10._token (fldOffset=0xa)\u0022 P-INDEP\n ;* V20 tmp18        [V20    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V10._continueOnCapturedContext (fldOffset=0xc)\u0022 P-INDEP\n ;  V21 rat0         [V21,T01] (  2,  4   )    long  -\u003E  rax         \u0022TLS field access\u0022\n ;  V22 rat1         [V22,T02] (  2,  4   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M51964_IG01:\n        push     rbp\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x10]\n        mov      rbx, rdi\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.75\n G_M51964_IG02:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        cmp      byte  ptr [rax\u002B0x10], 0\n        je       SHORT G_M51964_IG06\n \t\t\t\t\t\t;; size=32 bbWeight=1 PerfScore 6.75\n G_M51964_IG03:\n        mov      edi, dword ptr [rbx\u002B0x34]\n        and      edi, 0xD1FFAB1E\n        cmp      edi, 0xD1FFAB1E\n        je       SHORT G_M51964_IG04\n        mov      rdi, rbx\n        xor      esi, esi\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int)\n        call     [rax]System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int)\n \t\t\t\t\t\t;; size=34 bbWeight=0.50 PerfScore 3.62\n G_M51964_IG04:\n        movsx    rax, word  ptr [rbx\u002B0x38]\n        mov      word  ptr [rbp-0x0C], ax\n        xor      rax, rax\n        movsx    rdx, word  ptr [rbp-0x0C]\n        movzx    rdx, dx\n        mov      rdi, 0xD1FFAB1E\n        or       rdx, rdi\n \t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.50\n G_M51964_IG05:\n        add      rsp, 8\n        pop      rbx\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n G_M51964_IG06:\n        test     rbx, rbx\n        je       SHORT G_M51964_IG08\n        mov      rdx, 0xD1FFAB1E\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 0.88\n G_M51964_IG07:\n        add      rsp, 8\n        pop      rbx\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n G_M51964_IG08:\n        mov      edi, 9\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n ; Total bytes of code 159, prolog size 8, PerfScore 19.75, instruction count 42, allocated bytes for code 159 (MethodHash=3c3b3503) for method Medallion.Threading.Internal.SyncViaAsync:AwaitSyncOverAsync[short](System.Threading.Tasks.Task\u00601[short]):System.Threading.Tasks.ValueTask\u00601[short] (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":159,"DiffBytes":159},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Objects.Internal.ForeignKeyFactory:CreateKeyFromForeignKeyValues(System.Data.Entity.Core.Objects.EntityEntry,System.Data.Entity.Core.Objects.DataClasses.RelatedEnd):System.Data.Entity.Core.EntityKey (FullOpts)","Category":"improvement","Description":"272 -\u003E 206 bytes (-66)","ExtraInfo":null,"Diff":"@@ -1,125 \u002B1,103 @@\n ; Assembly listing for method System.Data.Entity.Core.Objects.Internal.ForeignKeyFactory:CreateKeyFromForeignKeyValues(System.Data.Entity.Core.Objects.EntityEntry,System.Data.Entity.Core.Objects.DataClasses.RelatedEnd):System.Data.Entity.Core.EntityKey (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 2 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 arg0         [V00,T03] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Objects.EntityEntry\u003E\n ;  V01 arg1         [V01,T01] (  5,  5   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Objects.DataClasses.RelatedEnd\u003E\n ;* V02 loc0         [V02    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CSystem.Data.Entity.Core.Metadata.Edm.ReferentialConstraint\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V04 tmp1         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationType\u003E\n-;  V05 tmp2         [V05,T02] (  4,  7   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint]\u003E\n-;  V06 tmp3         [V06    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V05 tmp2         [V05,T02] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint]\u003E\n\u002B;  V06 tmp3         [V06    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V07 tmp4         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V08 tmp5         [V08,T08] (  3,  2   )     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReferentialConstraint\u003E\n-;  V09 tmp6         [V09,T06] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint]\u003E\n\u002B;  V08 tmp5         [V08,T07] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReferentialConstraint\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint]\u003E\n ;  V10 tmp7         [V10,T04] (  3,  4.50)     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n ;  V11 tmp8         [V11,T05] (  2,  4   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n ;  V12 rat0         [V12,T00] (  5,  7.50)     ref  -\u003E  rcx         \u0022replacement local\u0022\n-;  V13 rat1         [V13,T07] (  3,  2.50)    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n\u002B;  V13 rat1         [V13,T06] (  3,  2.50)    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n ;\n-; Lcl frame size = 16\n\u002B; Lcl frame size = 8\n \n G_M24730_IG01:\n        push     rbp\n        push     r15\n        push     r14\n-       push     r13\n        push     rbx\n-       sub      rsp, 16\n-       lea      rbp, [rsp\u002B0x30]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x20]\n        xor      eax, eax\n-       mov      qword ptr [rbp-0x28], rax\n\u002B       mov      qword ptr [rbp-0x20], rax\n        mov      r15, rdi\n        mov      rbx, rsi\n-\t\t\t\t\t\t;; size=29 bbWeight=1 PerfScore 7.50\n\u002B\t\t\t\t\t\t;; size=24 bbWeight=1 PerfScore 7.25\n G_M24730_IG02:\n        mov      rdi, rbx\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x30]System.Data.Entity.Core.Objects.DataClasses.RelatedEnd:get_RelationMetadata():System.Data.Entity.Core.Metadata.Edm.RelationshipType:this\n        mov      rcx, rax\n        test     rcx, rcx\n        je       SHORT G_M24730_IG05\n \t\t\t\t\t\t;; size=21 bbWeight=1 PerfScore 8.75\n G_M24730_IG03:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Metadata.Edm.AssociationType\n        cmp      qword ptr [rcx], rdi\n        je       SHORT G_M24730_IG05\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 1.62\n G_M24730_IG04:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        mov      rcx, rax\n \t\t\t\t\t\t;; size=18 bbWeight=0.25 PerfScore 0.94\n G_M24730_IG05:\n-       mov      r14, gword ptr [rcx\u002B0x80]\n-       test     r14, r14\n-       je       G_M24730_IG10\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n\u002B       mov      rsi, gword ptr [rcx\u002B0x80]\n\u002B       test     rsi, rsi\n        je       SHORT G_M24730_IG07\n-\t\t\t\t\t\t;; size=46 bbWeight=1 PerfScore 8.25\n-G_M24730_IG06:\n-       lea      rsi, [rbp-0x28]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      r13, rax\n-       jmp      SHORT G_M24730_IG08\n-\t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 5.00\n-G_M24730_IG07:\n-       lea      rdx, [rbp-0x28]\n-       mov      rsi, r14\n\u002B       lea      rdx, [rbp-0x20]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint],byref):System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      r13, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M24730_IG08:\n-       cmp      byte  ptr [rbp-0x28], 0\n-       je       SHORT G_M24730_IG11\n\u002B       mov      r14, rax\n\u002B       cmp      byte  ptr [rbp-0x20], 0\n\u002B       je       SHORT G_M24730_IG08\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Objects.DataClasses.RelatedEnd:GetTargetEntitySetFromRelationshipSet():System.Data.Entity.Core.Metadata.Edm.EntitySet:this\n        call     [rax]System.Data.Entity.Core.Objects.DataClasses.RelatedEnd:GetTargetEntitySetFromRelationshipSet():System.Data.Entity.Core.Metadata.Edm.EntitySet:this\n        mov      rdx, rax\n-       mov      rsi, r13\n\u002B       mov      rsi, r14\n        mov      rdi, r15\n        xor      ecx, ecx\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Objects.Internal.ForeignKeyFactory:CreateKeyFromForeignKeyValues(System.Data.Entity.Core.Objects.EntityEntry,System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint,System.Data.Entity.Core.Metadata.Edm.EntitySet,bool):System.Data.Entity.Core.EntityKey\n        call     [rax]System.Data.Entity.Core.Objects.Internal.ForeignKeyFactory:CreateKeyFromForeignKeyValues(System.Data.Entity.Core.Objects.EntityEntry,System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint,System.Data.Entity.Core.Metadata.Edm.EntitySet,bool):System.Data.Entity.Core.EntityKey\n        nop      \n-\t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 10.00\n-G_M24730_IG09:\n-       add      rsp, 16\n\u002B\t\t\t\t\t\t;; size=86 bbWeight=1 PerfScore 17.50\n\u002BG_M24730_IG06:\n\u002B       add      rsp, 8\n        pop      rbx\n-       pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n-G_M24730_IG10:\n\u002B\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n\u002BG_M24730_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M24730_IG11:\n\u002BG_M24730_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 272, prolog size 23, PerfScore 48.06, instruction count 73, allocated bytes for code 272 (MethodHash=8d529f65) for method System.Data.Entity.Core.Objects.Internal.ForeignKeyFactory:CreateKeyFromForeignKeyValues(System.Data.Entity.Core.Objects.EntityEntry,System.Data.Entity.Core.Objects.DataClasses.RelatedEnd):System.Data.Entity.Core.EntityKey (FullOpts)\n\u002B; Total bytes of code 206, prolog size 18, PerfScore 39.31, instruction count 57, allocated bytes for code 206 (MethodHash=8d529f65) for method System.Data.Entity.Core.Objects.Internal.ForeignKeyFactory:CreateKeyFromForeignKeyValues(System.Data.Entity.Core.Objects.EntityEntry,System.Data.Entity.Core.Objects.DataClasses.RelatedEnd):System.Data.Entity.Core.EntityKey (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":272,"DiffBytes":206},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollection[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,137 -\u003E 1,056 bytes (-81)","ExtraInfo":null,"Diff":"@@ -14,14 \u002B14,14 @@\n ;  V03 arg2         [V03,T05] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.__Canon,long]\u003E\n ;  V04 arg3         [V04,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T24] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n\u002B;  V06 loc0         [V06,T23] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n-;  V08 loc2         [V08,T25] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n-;  V09 loc3         [V09,T22] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V08 loc2         [V08,T24] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n\u002B;  V09 loc3         [V09,T21] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V12 tmp2         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V13 tmp3         [V13,T31] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V13 tmp3         [V13,T30] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V14 tmp4         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V15 tmp5         [V15    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V16 tmp6         [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -40,17 \u002B40,17 @@\n ;* V29 tmp19        [V29    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V30 tmp20        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V31 tmp21        [V31    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V32 tmp22        [V32,T23] (  3,  2   )     int  -\u003E  registers  \n-;  V33 tmp23        [V33,T06] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V34 tmp24        [V34    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V35 tmp25        [V35,T20] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V36 tmp26        [V36,T21] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V32 tmp22        [V32,T22] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V33 tmp23        [V33,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V34 tmp24        [V34    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V35 tmp25        [V35,T20] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V38 tmp28        [V38,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V39 tmp29        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V40 tmp30        [V40,T28] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V40 tmp30        [V40,T27] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V41 tmp31        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V42 tmp32        [V42,T19] (  8,  3   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V42 tmp32        [V42,T19] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V43 tmp33        [V43,T07] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V44 tmp34        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V45 tmp35        [V45,T10] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -59,13 \u002B59,13 @@\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V50 tmp40        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;  V51 tmp41        [V51,T16] (  2,  2   )     ref  -\u003E  [rbp-0x90]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp42        [V52,T26] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V53 tmp43        [V53,T27] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp41        [V51,T16] (  2,  2   )     ref  -\u003E  [rbp-0x88]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp42        [V52,T25] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V53 tmp43        [V53,T26] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V54 tmp44        [V54    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V23._name (fldOffset=0x0)\u0022 P-DEP\n ;* V55 tmp45        [V55    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V23._value (fldOffset=0x8)\u0022 P-DEP\n-;  V56 tmp46        [V56,T29] (  2,  1   )     ref  -\u003E  rax         \u0022field V24._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V57 tmp47        [V57,T30] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V24._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V56 tmp46        [V56,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V24._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V57 tmp47        [V57,T29] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V24._value (fldOffset=0x8)\u0022 P-INDEP\n ;  V58 tmp48        [V58,T17] (  2,  4   )    long  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V59 tmp49        [V59,T18] (  2,  4   )    long  -\u003E  rsi         \u0022argument with side effect\u0022\n ;  V60 rat0         [V60,T14] (  3,  4   )    long  -\u003E  rdi         \u0022runtime lookup\u0022\n@@ -73,7 \u002B73,7 @@\n ;  V62 rat2         [V62,T15] (  3,  4   )    long  -\u003E  rsi         \u0022runtime lookup\u0022\n ;  V63 rat3         [V63,T09] (  3,  5.60)    long  -\u003E  rsi         \u0022fgMakeTemp is creating a new local variable\u0022\n ;\n-; Lcl frame size = 168\n\u002B; Lcl frame size = 152\n \n G_M27387_IG01:\n        push     rbp\n@@ -82,14 \u002B82,14 @@ G_M27387_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 168\n-       lea      rbp, [rsp\u002B0xD0]\n\u002B       sub      rsp, 152\n\u002B       lea      rbp, [rsp\u002B0xC0]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x78], rax\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        mov      qword ptr [rbp-0x30], rsi\n-       mov      gword ptr [rbp-0x90], r9\n\u002B       mov      gword ptr [rbp-0x88], r9\n        mov      r15, rdi\n        mov      r14, rsi\n        mov      r13, rdx\n@@ -105,7 \u002B105,7 @@ G_M27387_IG02:\n        mov      rdi, qword ptr [r14\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M27387_IG31\n\u002B       je       G_M27387_IG28\n \t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 9.25\n G_M27387_IG03:\n        mov      rsi, r12\n@@ -155,90 \u002B155,70 @@ G_M27387_IG05:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,long]:Render(MongoDB.Driver.RenderArgs\u00601[System.__Canon]):MongoDB.Driver.RenderedPipelineDefinition\u00601[long]:this\n        mov      r12, rax\n-       mov      rax, gword ptr [r12\u002B0x08]\n-       mov      gword ptr [rbp-0x80], rax\n-       test     rax, rax\n-       je       G_M27387_IG33\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n... diff truncated; middle omitted ...\n\u002BG_M27387_IG15:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M27387_IG20\n\u002B       je       SHORT G_M27387_IG17\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M27387_IG19:\n\u002BG_M27387_IG16:\n        xor      ecx, ecx\n-       jmp      SHORT G_M27387_IG22\n\u002B       jmp      SHORT G_M27387_IG19\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M27387_IG20:\n\u002BG_M27387_IG17:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -246,30 \u002B226,30 @@ G_M27387_IG20:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M27387_IG22\n\u002B       jmp      SHORT G_M27387_IG19\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M27387_IG21:\n\u002BG_M27387_IG18:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M27387_IG22:\n\u002BG_M27387_IG19:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M27387_IG23:\n\u002BG_M27387_IG20:\n        mov      dword ptr [rbp-0x6C], ecx\n        mov      rdi, gword ptr [r12\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M27387_IG34\n\u002B       je       G_M27387_IG31\n        cmp      dword ptr [rbp-0x6C], 0\n-       je       G_M27387_IG34\n\u002B       je       G_M27387_IG31\n        mov      rdi, qword ptr [r14\u002B0x18]\n        mov      rsi, qword ptr [rdi\u002B0x20]\n        test     rsi, rsi\n-       je       G_M27387_IG32\n\u002B       je       G_M27387_IG29\n \t\t\t\t\t\t;; size=56 bbWeight=1 PerfScore 14.75\n-G_M27387_IG24:\n\u002BG_M27387_IG21:\n        mov      rdi, r15\n        mov      rdx, r12\n        mov      rcx, rbx\n@@ -281,13 \u002B261,13 @@ G_M27387_IG24:\n        cmp      byte  ptr [r14], r14b\n        mov      rdi, r15\n        mov      rsi, r13\n-       mov      r9, gword ptr [rbp-0x90]\n\u002B       mov      r9, gword ptr [rbp-0x88]\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 16.25\n-G_M27387_IG25:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=74 bbWeight=1 PerfScore 16.25\n\u002BG_M27387_IG22:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -295,22 \u002B275,22 @@ G_M27387_IG25:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r13\n        mov      rcx, r14\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=64 bbWeight=1 PerfScore 11.25\n-G_M27387_IG26:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M27387_IG29\n-\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 2.00\n-G_M27387_IG27:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n\u002BG_M27387_IG23:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M27387_IG26\n\u002B\t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n\u002BG_M27387_IG24:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M27387_IG28\n\u002B       je       SHORT G_M27387_IG25\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -319,12 \u002B299,12 @@ G_M27387_IG27:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M27387_IG28:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n\u002BG_M27387_IG25:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M27387_IG29\n\u002B       je       SHORT G_M27387_IG26\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -333,12 \u002B313,12 @@ G_M27387_IG28:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M27387_IG29:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n\u002BG_M27387_IG26:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M27387_IG30:\n-       add      rsp, 168\n\u002BG_M27387_IG27:\n\u002B       add      rsp, 152\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -347,7 \u002B327,7 @@ G_M27387_IG30:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M27387_IG31:\n\u002BG_M27387_IG28:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -355,21 \u002B335,21 @@ G_M27387_IG31:\n        mov      rdi, rax\n        jmp      G_M27387_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M27387_IG32:\n\u002BG_M27387_IG29:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M27387_IG24\n\u002B       jmp      G_M27387_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M27387_IG33:\n\u002BG_M27387_IG30:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M27387_IG34:\n\u002BG_M27387_IG31:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -381,16 \u002B361,16 @@ G_M27387_IG34:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M27387_IG35:\n\u002BG_M27387_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M27387_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M27387_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M27387_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M27387_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M27387_IG37\n\u002B       je       SHORT G_M27387_IG34\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -399,12 \u002B379,12 @@ G_M27387_IG36:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M27387_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M27387_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M27387_IG38\n\u002B       je       SHORT G_M27387_IG35\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -413,14 \u002B393,14 @@ G_M27387_IG37:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M27387_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M27387_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M27387_IG39:\n\u002BG_M27387_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1137, prolog size 72, PerfScore 161.80, instruction count 268, allocated bytes for code 1137 (MethodHash=22439504) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollection[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 1056, prolog size 72, PerfScore 152.42, instruction count 254, allocated bytes for code 1056 (MethodHash=22439504) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollection[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1137,"DiffBytes":1056},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Core.FeeBatchService:ListAutoPaging(Stripe.V2.Core.FeeBatchListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.FeeBatch]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.Core.FeeBatchService:ListAutoPaging(Stripe.V2.Core.FeeBatchListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.FeeBatch]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Core.FeeBatchService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Core.FeeBatchListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Core.FeeBatchListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.FeeBatch]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.FeeBatch]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.FeeBatch]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.FeeBatch]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.FeeBatch]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.FeeBatch]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.FeeBatch]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.FeeBatch]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.FeeBatch]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M47156_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M47156_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/core/fee_batches\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M47156_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M47156_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.FeeBatch]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.FeeBatch]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M47156_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M47156_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.FeeBatch]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.FeeBatch]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M47156_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M47156_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=000b47cb) for method Stripe.V2.Core.FeeBatchService:ListAutoPaging(Stripe.V2.Core.FeeBatchListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.FeeBatch]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=000b47cb) for method Stripe.V2.Core.FeeBatchService:ListAutoPaging(Stripe.V2.Core.FeeBatchListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.FeeBatch]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.Internal.SyncViaAsync:Delay(Medallion.Threading.Internal.TimeoutValue,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask (FullOpts)","Category":"same-size","Description":"722 -\u003E 722 bytes (0)","ExtraInfo":null,"Diff":"@@ -103,7 \u002B103,7 @@ G_M43511_IG02:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        cmp      byte  ptr [rax\u002B0x10], 0\n        je       SHORT G_M43511_IG07\n \t\t\t\t\t\t;; size=32 bbWeight=1 PerfScore 6.75","Truncated":true,"BaseBytes":722,"DiffBytes":722},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Common.CommandTrees.Internal.ViewSimplifier:SimplifyNestedTphDiscriminator(System.Data.Entity.Core.Common.CommandTrees.DbExpression):System.Data.Entity.Core.Common.CommandTrees.DbExpression (FullOpts)","Category":"improvement","Description":"3,892 -\u003E 3,828 bytes (-64)","ExtraInfo":null,"Diff":"@@ -12,7 \u002B12,7 @@\n ;  V01 loc0         [V01,T46] (  8,  8.50)     ref  -\u003E  r15         class-hnd exact single-def \u003CSystem.Data.Entity.Core.Common.CommandTrees.Internal.ViewSimplifier\u002B\u003C\u003Ec__DisplayClass9_0\u003E\n ;  V02 loc1         [V02,T61] (  5,  7   )     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.Data.Entity.Core.Common.CommandTrees.DbProjectExpression\u003E\n ;  V03 loc2         [V03,T70] (  5,  5   )     ref  -\u003E  r13         class-hnd exact single-def \u003CSystem.Data.Entity.Core.Common.CommandTrees.DbProjectExpression\u003E\n-;  V04 loc3         [V04,T95] (  6,  3.50)     ref  -\u003E  r12         class-hnd \u003CSystem.Data.Entity.Core.Common.CommandTrees.DbFilterExpression\u003E\n\u002B;  V04 loc3         [V04,T94] (  6,  3.50)     ref  -\u003E  r12         class-hnd \u003CSystem.Data.Entity.Core.Common.CommandTrees.DbFilterExpression\u003E\n ;  V05 loc4         [V05,T113] (  3,  2.50)     ref  -\u003E  [rbp-0x68]  class-hnd spill-single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.CommandTrees.DbPropertyExpression]\u003E\n ;  V06 loc5         [V06,T47] (  4,  8.50)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[System.String]\u003E\n ;  V07 loc6         [V07,T114] (  2,  2.50)     ref  -\u003E  [rbp-0x70]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmProperty\u003E\n@@ -21,12 \u002B21,12 @@\n ;  V10 loc9         [V10,T77] (  5,  4   )     ref  -\u003E  [rbp-0x88]  class-hnd exact spill-single-def \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Data.Entity.Core.Common.CommandTrees.DbComparisonExpression]\u003E\n ;  V11 loc10        [V11,T67] (  3,  6.50)     ref  -\u003E  [rbp-0x90]  class-hnd exact spill-single-def \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Data.Entity.Core.Common.CommandTrees.DbComparisonExpression]\u003E\n ;  V12 loc11        [V12,T62] (  4,  7   )     ref  -\u003E  [rbp-0x98]  class-hnd exact spill-single-def \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Data.Entity.Core.Common.CommandTrees.DbExpression]\u003E\n-;  V13 loc12        [V13,T151] (  2,  1   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.Data.Entity.Core.Common.CommandTrees.DbExpression\u003E\n\u002B;  V13 loc12        [V13,T149] (  2,  1   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.Data.Entity.Core.Common.CommandTrees.DbExpression\u003E\n ;  V14 loc13        [V14,T19] (  7, 14   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CSystem.Data.Entity.Core.Common.CommandTrees.DbCaseExpression\u003E\n ;  V15 loc14        [V15,T07] (  8, 21   )     ref  -\u003E  r15         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression]\u003E\n ;  V16 loc15        [V16,T08] (  8, 21   )     ref  -\u003E  [rbp-0xA0]  class-hnd exact spill-single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression]\u003E\n ;* V17 loc16        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Data.Entity.Core.Common.CommandTrees.DbExpression\u003E\n-;  V18 loc17        [V18,T152] (  2,  1   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CSystem.Data.Entity.Core.Common.CommandTrees.DbCaseExpression\u003E\n\u002B;  V18 loc17        [V18,T150] (  2,  1   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CSystem.Data.Entity.Core.Common.CommandTrees.DbCaseExpression\u003E\n ;* V19 loc18        [V19    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.KeyValuePair\u00602[System.Object,System.Data.Entity.Core.Common.CommandTrees.DbComparisonExpression]\u003E\n ;  V20 loc19        [V20,T09] (  6, 20.50)     int  -\u003E  [rbp-0x2C] \n ;  V21 loc20        [V21,T23] (  5, 12   )     ref  -\u003E  [rbp-0xA8]  class-hnd exact spill-single-def \u003CSystem.String\u003E\n@@ -43,25 \u002B43,25 @@\n ;* V32 tmp1         [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.CommandTrees.Internal.ViewSimplifier\u002B\u003C\u003Ec__DisplayClass9_0\u003E\n ;  V33 tmp2         [V33,T68] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression]\u003E\n ;  V34 tmp3         [V34,T49] (  4,  8   )     ref  -\u003E  [rbp-0xD0]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Common.CommandTrees.DbPropertyExpression,bool]\u003E\n-;  V35 tmp4         [V35,T88] (  2,  4   )     ref  -\u003E  [rbp-0xD8]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbPropertyExpression]\u003E\n\u002B;  V35 tmp4         [V35,T87] (  2,  4   )     ref  -\u003E  [rbp-0xD8]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbPropertyExpression]\u003E\n ;* V36 tmp5         [V36    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022impAppendStmt\u0022\n-;  V37 tmp6         [V37,T128] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Common.CommandTrees.DbPropertyExpression,System.String]\u003E\n\u002B;  V37 tmp6         [V37,T127] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Common.CommandTrees.DbPropertyExpression,System.String]\u003E\n ;* V38 tmp7         [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V39 tmp8         [V39,T118] (  4,  2   )     ref  -\u003E  rdx        \n-;  V40 tmp9         [V40,T98] (  3,  3   )     ref  -\u003E  [rbp-0xE0]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Object,System.Data.Entity.Core.Common.CommandTrees.DbComparisonExpression]\u003E\n\u002B;  V40 tmp9         [V40,T97] (  3,  3   )     ref  -\u003E  [rbp-0xE0]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Object,System.Data.Entity.Core.Common.CommandTrees.DbComparisonExpression]\u003E\n ;  V41 tmp10        [V41,T78] (  4,  4   )     ref  -\u003E  [rbp-0xE8]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u00602[System.Data.Entity.Core.Common.CommandTrees.DbComparisonExpression,System.Object]\u003E\n-;  V42 tmp11        [V42,T99] (  3,  3   )     ref  -\u003E  [rbp-0xF0]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Data.Entity.Core.Common.CommandTrees.DbComparisonExpression]\u003E\n-;  V43 tmp12        [V43,T100] (  3,  3   )     ref  -\u003E  [rbp-0xF8]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Data.Entity.Core.Common.CommandTrees.DbComparisonExpression]\u003E\n-;  V44 tmp13        [V44,T101] (  3,  3   )     ref  -\u003E  [rbp-0x100]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Data.Entity.Core.Common.CommandTrees.DbExpression]\u003E\n\u002B;  V42 tmp11        [V42,T98] (  3,  3   )     ref  -\u003E  [rbp-0xF0]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Data.Entity.Core.Common.CommandTrees.DbComparisonExpression]\u003E\n\u002B;  V43 tmp12        [V43,T99] (  3,  3   )     ref  -\u003E  [rbp-0xF8]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Data.Entity.Core.Common.CommandTrees.DbComparisonExpression]\u003E\n\u002B;  V44 tmp13        [V44,T100] (  3,  3   )     ref  -\u003E  [rbp-0x100]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Data.Entity.Core.Common.CommandTrees.DbExpression]\u003E\n ;  V45 tmp14        [V45,T20] (  4, 14   )     ref  -\u003E  [rbp-0x108]  spill-single-def \u0022inline UNBOX clone1\u0022\n ;  V46 tmp15        [V46,T21] (  4, 14   )     ref  -\u003E  [rbp-0x110]  spill-single-def \u0022inline UNBOX clone1\u0022\n ;* V47 tmp16        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.__Canon\u003E\n-;  V48 tmp17        [V48,T102] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression]\u003E\n-;  V49 tmp18        [V49,T129] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00603[System.Data.Entity.Core.Common.CommandTrees.DbExpression,System.Data.Entity.Core.Common.CommandTrees.DbExpression,System.Data.Entity.Core.Common.CommandTrees.DbExpression]\u003E\n\u002B;  V48 tmp17        [V48,T101] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression]\u003E\n\u002B;  V49 tmp18        [V49,T128] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00603[System.Data.Entity.Core.Common.CommandTrees.DbExpression,System.Data.Entity.Core.Common.CommandTrees.DbExpression,System.Data.Entity.Core.Common.CommandTrees.DbExpression]\u003E\n ;* V50 tmp19        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V51 tmp20        [V51,T119] (  4,  2   )     ref  -\u003E  rdx        \n-;  V52 tmp21        [V52,T103] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression]\u003E\n... diff truncated; middle omitted ...\n-       jmp      G_M19159_IG55\n\u002B       jmp      G_M19159_IG53\n \t\t\t\t\t\t;; size=23 bbWeight=2 PerfScore 11.50\n-G_M19159_IG67:\n\u002BG_M19159_IG65:\n        lea      esi, [rcx\u002B0x01]\n        mov      dword ptr [rax\u002B0x10], esi\n        mov      esi, ecx\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST\n        call     [rcx]CORINFO_HELP_ARRADDR_ST\n-       jmp      G_M19159_IG59\n\u002B       jmp      G_M19159_IG57\n \t\t\t\t\t\t;; size=25 bbWeight=2 PerfScore 14.00\n-G_M19159_IG68:\n\u002BG_M19159_IG66:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M19159_IG69:\n-       add      rsp, 312\n\u002BG_M19159_IG67:\n\u002B       add      rsp, 296\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -1083,7 \u002B1064,7 @@ G_M19159_IG69:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M19159_IG70:\n\u002BG_M19159_IG68:\n        mov      rbx, gword ptr [rbx\u002B0x28]\n        mov      rdi, gword ptr [r14\u002B0x18]\n        mov      rdi, gword ptr [rdi\u002B0x10]\n@@ -1093,30 \u002B1074,30 @@ G_M19159_IG70:\n        mov      r14, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Common.CommandTrees.Internal.ViewSimplifier\u002BValueSubstituter\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x148], rax\n\u002B       mov      gword ptr [rbp-0x140], rax\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Common.CommandTrees.DbVariableReferenceExpression,System.Data.Entity.Core.Common.CommandTrees.DbVariableReferenceExpression]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x150], rax\n\u002B       mov      gword ptr [rbp-0x148], rax\n        mov      rdi, rax\n        xor      esi, esi\n        xor      rdx, rdx\n        mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary\u00602[System.__Canon,System.__Canon]:.ctor(int,System.Collections.Generic.IEqualityComparer\u00601[System.__Canon]):this\n        call     [rcx]System.Collections.Generic.Dictionary\u00602[System.__Canon,System.__Canon]:.ctor(int,System.Collections.Generic.IEqualityComparer\u00601[System.__Canon]):this\n-       mov      rax, gword ptr [rbp-0x148]\n\u002B       mov      rax, gword ptr [rbp-0x140]\n        lea      rdi, bword ptr [rax\u002B0x08]\n-       mov      rsi, gword ptr [rbp-0x150]\n\u002B       mov      rsi, gword ptr [rbp-0x148]\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rax, gword ptr [rbp-0x148]\n\u002B       mov      rax, gword ptr [rbp-0x140]\n        lea      rdi, bword ptr [rax\u002B0x10]\n        mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r14, gword ptr [rbp-0x148]\n\u002B       mov      r14, gword ptr [rbp-0x140]\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, gword ptr [rbp-0x98]\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      rdx, rdx\n        test     rbx, rbx\n-       je       SHORT G_M19159_IG72\n\u002B       je       SHORT G_M19159_IG70\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; System.Data.Entity.Core.Common.CommandTrees.DbExpression\n        mov      rdx, 0xD1FFAB1E      ; token handle\n@@ -1125,11 \u002B1106,11 @@ G_M19159_IG70:\n        mov      rdi, rbx\n        mov      rsi, r14\n \t\t\t\t\t\t;; size=200 bbWeight=0.50 PerfScore 18.75\n-G_M19159_IG71:\n\u002BG_M19159_IG69:\n        call     rax\n        mov      rdx, rax\n \t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 1.62\n-G_M19159_IG72:\n\u002BG_M19159_IG70:\n        mov      rdi, r15\n        mov      rsi, gword ptr [rbp-0xA0]\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.DbExpressionBuilder:Case(System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression],System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression],System.Data.Entity.Core.Common.CommandTrees.DbExpression):System.Data.Entity.Core.Common.CommandTrees.DbCaseExpression\n@@ -1150,8 \u002B1131,8 @@ G_M19159_IG72:\n        call     [rax]System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.DbExpressionBuilder:Project(System.Data.Entity.Core.Common.CommandTrees.DbExpressionBinding,System.Data.Entity.Core.Common.CommandTrees.DbExpression):System.Data.Entity.Core.Common.CommandTrees.DbProjectExpression\n        nop      \n \t\t\t\t\t\t;; size=79 bbWeight=0.50 PerfScore 11.75\n-G_M19159_IG73:\n-       add      rsp, 312\n\u002BG_M19159_IG71:\n\u002B       add      rsp, 296\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -1160,73 \u002B1141,73 @@ G_M19159_IG73:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M19159_IG74:\n\u002BG_M19159_IG72:\n        mov      rsi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rax]CORINFO_HELP_CHKCASTCLASS\n        int3     \n \t\t\t\t\t\t;; size=16 bbWeight=0 PerfScore 0.00\n\u002BG_M19159_IG73:\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n\u002B       call     [rax]CORINFO_HELP_CHKCASTCLASS\n\u002B       int3     \n\u002B\t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n\u002BG_M19159_IG74:\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n\u002B       call     [rax]CORINFO_HELP_CHKCASTCLASS\n\u002B       int3     \n\u002B\t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n G_M19159_IG75:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rax]CORINFO_HELP_CHKCASTCLASS\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n G_M19159_IG76:\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n-       call     [rax]CORINFO_HELP_CHKCASTCLASS\n-       int3     \n-\t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M19159_IG77:\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n-       call     [rax]CORINFO_HELP_CHKCASTCLASS\n-       int3     \n-\t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M19159_IG78:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M19159_IG79:\n\u002BG_M19159_IG77:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M19159_IG80:\n\u002BG_M19159_IG78:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rax]CORINFO_HELP_CHKCASTCLASS\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n\u002BG_M19159_IG79:\n\u002B       mov      rsi, rax\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n\u002B       call     [rax]CORINFO_HELP_CHKCASTCLASS\n\u002B       int3     \n\u002B\t\t\t\t\t\t;; size=16 bbWeight=0 PerfScore 0.00\n\u002BG_M19159_IG80:\n\u002B       mov      rsi, rax\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n\u002B       call     [rax]CORINFO_HELP_CHKCASTCLASS\n\u002B       int3     \n\u002B\t\t\t\t\t\t;; size=16 bbWeight=0 PerfScore 0.00\n G_M19159_IG81:\n-       mov      rsi, rax\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n-       call     [rax]CORINFO_HELP_CHKCASTCLASS\n-       int3     \n-\t\t\t\t\t\t;; size=16 bbWeight=0 PerfScore 0.00\n-G_M19159_IG82:\n-       mov      rsi, rax\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n-       call     [rax]CORINFO_HELP_CHKCASTCLASS\n-       int3     \n-\t\t\t\t\t\t;; size=16 bbWeight=0 PerfScore 0.00\n-G_M19159_IG83:\n-       mov      rsi, gword ptr [rbp-0x128]\n\u002B       mov      rsi, gword ptr [rbp-0x120]\n        mov      rdi, 0xD1FFAB1E      ; System.ThrowHelper:ThrowKeyNotFoundException[System.Object](System.Object)\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowKeyNotFoundException[System.__Canon](System.__Canon)\n        call     [rax]System.ThrowHelper:ThrowKeyNotFoundException[System.__Canon](System.__Canon)\n        int3     \n \t\t\t\t\t\t;; size=30 bbWeight=0 PerfScore 0.00\n-G_M19159_IG84:\n\u002BG_M19159_IG82:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rax]CORINFO_HELP_CHKCASTCLASS\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M19159_IG85:\n\u002BG_M19159_IG83:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rax]CORINFO_HELP_CHKCASTCLASS\n        int3     \n \t\t\t\t\t\t;; size=16 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 3892, prolog size 40, PerfScore 1430.80, instruction count 831, allocated bytes for code 3892 (MethodHash=feeab528) for method System.Data.Entity.Core.Common.CommandTrees.Internal.ViewSimplifier:SimplifyNestedTphDiscriminator(System.Data.Entity.Core.Common.CommandTrees.DbExpression):System.Data.Entity.Core.Common.CommandTrees.DbExpression (FullOpts)\n\u002B; Total bytes of code 3828, prolog size 40, PerfScore 1422.30, instruction count 816, allocated bytes for code 3828 (MethodHash=feeab528) for method System.Data.Entity.Core.Common.CommandTrees.Internal.ViewSimplifier:SimplifyNestedTphDiscriminator(System.Data.Entity.Core.Common.CommandTrees.DbExpression):System.Data.Entity.Core.Common.CommandTrees.DbExpression (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":3892,"DiffBytes":3828},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollection[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,137 -\u003E 1,056 bytes (-81)","ExtraInfo":null,"Diff":"@@ -14,14 \u002B14,14 @@\n ;  V03 arg2         [V03,T05] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.__Canon,short]\u003E\n ;  V04 arg3         [V04,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T24] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n\u002B;  V06 loc0         [V06,T23] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n-;  V08 loc2         [V08,T25] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n-;  V09 loc3         [V09,T22] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V08 loc2         [V08,T24] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n\u002B;  V09 loc3         [V09,T21] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V12 tmp2         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V13 tmp3         [V13,T31] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V13 tmp3         [V13,T30] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V14 tmp4         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V15 tmp5         [V15    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V16 tmp6         [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -40,17 \u002B40,17 @@\n ;* V29 tmp19        [V29    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V30 tmp20        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V31 tmp21        [V31    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V32 tmp22        [V32,T23] (  3,  2   )     int  -\u003E  registers  \n-;  V33 tmp23        [V33,T06] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V34 tmp24        [V34    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V35 tmp25        [V35,T20] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V36 tmp26        [V36,T21] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V32 tmp22        [V32,T22] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V33 tmp23        [V33,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V34 tmp24        [V34    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V35 tmp25        [V35,T20] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V38 tmp28        [V38,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V39 tmp29        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V40 tmp30        [V40,T28] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V40 tmp30        [V40,T27] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V41 tmp31        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V42 tmp32        [V42,T19] (  8,  3   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V42 tmp32        [V42,T19] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V43 tmp33        [V43,T07] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V44 tmp34        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V45 tmp35        [V45,T10] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -59,13 \u002B59,13 @@\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V50 tmp40        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;  V51 tmp41        [V51,T16] (  2,  2   )     ref  -\u003E  [rbp-0x90]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp42        [V52,T26] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V53 tmp43        [V53,T27] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp41        [V51,T16] (  2,  2   )     ref  -\u003E  [rbp-0x88]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp42        [V52,T25] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V53 tmp43        [V53,T26] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V54 tmp44        [V54    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V23._name (fldOffset=0x0)\u0022 P-DEP\n ;* V55 tmp45        [V55    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V23._value (fldOffset=0x8)\u0022 P-DEP\n-;  V56 tmp46        [V56,T29] (  2,  1   )     ref  -\u003E  rax         \u0022field V24._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V57 tmp47        [V57,T30] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V24._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V56 tmp46        [V56,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V24._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V57 tmp47        [V57,T29] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V24._value (fldOffset=0x8)\u0022 P-INDEP\n ;  V58 tmp48        [V58,T17] (  2,  4   )    long  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V59 tmp49        [V59,T18] (  2,  4   )    long  -\u003E  rsi         \u0022argument with side effect\u0022\n ;  V60 rat0         [V60,T14] (  3,  4   )    long  -\u003E  rdi         \u0022runtime lookup\u0022\n@@ -73,7 \u002B73,7 @@\n ;  V62 rat2         [V62,T15] (  3,  4   )    long  -\u003E  rsi         \u0022runtime lookup\u0022\n ;  V63 rat3         [V63,T09] (  3,  5.60)    long  -\u003E  rsi         \u0022fgMakeTemp is creating a new local variable\u0022\n ;\n-; Lcl frame size = 168\n\u002B; Lcl frame size = 152\n \n G_M52251_IG01:\n        push     rbp\n@@ -82,14 \u002B82,14 @@ G_M52251_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 168\n-       lea      rbp, [rsp\u002B0xD0]\n\u002B       sub      rsp, 152\n\u002B       lea      rbp, [rsp\u002B0xC0]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x78], rax\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        mov      qword ptr [rbp-0x30], rsi\n-       mov      gword ptr [rbp-0x90], r9\n\u002B       mov      gword ptr [rbp-0x88], r9\n        mov      r15, rdi\n        mov      r14, rsi\n        mov      r13, rdx\n@@ -105,7 \u002B105,7 @@ G_M52251_IG02:\n        mov      rdi, qword ptr [r14\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M52251_IG31\n\u002B       je       G_M52251_IG28\n \t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 9.25\n G_M52251_IG03:\n        mov      rsi, r12\n@@ -155,90 \u002B155,70 @@ G_M52251_IG05:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,short]:Render(MongoDB.Driver.RenderArgs\u00601[System.__Canon]):MongoDB.Driver.RenderedPipelineDefinition\u00601[short]:this\n        mov      r12, rax\n-       mov      rax, gword ptr [r12\u002B0x08]\n-       mov      gword ptr [rbp-0x80], rax\n-       test     rax, rax\n-       je       G_M52251_IG33\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n... diff truncated; middle omitted ...\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M52251_IG20\n\u002B       je       SHORT G_M52251_IG17\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M52251_IG19:\n\u002BG_M52251_IG16:\n        xor      ecx, ecx\n-       jmp      SHORT G_M52251_IG22\n\u002B       jmp      SHORT G_M52251_IG19\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M52251_IG20:\n\u002BG_M52251_IG17:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -246,30 \u002B226,30 @@ G_M52251_IG20:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M52251_IG22\n\u002B       jmp      SHORT G_M52251_IG19\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M52251_IG21:\n\u002BG_M52251_IG18:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M52251_IG22:\n\u002BG_M52251_IG19:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M52251_IG23:\n\u002BG_M52251_IG20:\n        mov      dword ptr [rbp-0x6C], ecx\n        mov      rdi, gword ptr [r12\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M52251_IG34\n\u002B       je       G_M52251_IG31\n        cmp      dword ptr [rbp-0x6C], 0\n-       je       G_M52251_IG34\n\u002B       je       G_M52251_IG31\n        mov      rdi, qword ptr [r14\u002B0x18]\n        mov      rsi, qword ptr [rdi\u002B0x20]\n        test     rsi, rsi\n-       je       G_M52251_IG32\n\u002B       je       G_M52251_IG29\n \t\t\t\t\t\t;; size=56 bbWeight=1 PerfScore 14.75\n-G_M52251_IG24:\n\u002BG_M52251_IG21:\n        mov      rdi, r15\n        mov      rdx, r12\n        mov      rcx, rbx\n@@ -281,13 \u002B261,13 @@ G_M52251_IG24:\n        cmp      byte  ptr [r14], r14b\n        mov      rdi, r15\n        mov      rsi, r13\n-       mov      r9, gword ptr [rbp-0x90]\n\u002B       mov      r9, gword ptr [rbp-0x88]\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 16.25\n-G_M52251_IG25:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=74 bbWeight=1 PerfScore 16.25\n\u002BG_M52251_IG22:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -295,22 \u002B275,22 @@ G_M52251_IG25:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r13\n        mov      rcx, r14\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=64 bbWeight=1 PerfScore 11.25\n-G_M52251_IG26:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M52251_IG29\n-\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 2.00\n-G_M52251_IG27:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n\u002BG_M52251_IG23:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M52251_IG26\n\u002B\t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n\u002BG_M52251_IG24:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M52251_IG28\n\u002B       je       SHORT G_M52251_IG25\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -319,12 \u002B299,12 @@ G_M52251_IG27:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M52251_IG28:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n\u002BG_M52251_IG25:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M52251_IG29\n\u002B       je       SHORT G_M52251_IG26\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -333,12 \u002B313,12 @@ G_M52251_IG28:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M52251_IG29:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n\u002BG_M52251_IG26:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M52251_IG30:\n-       add      rsp, 168\n\u002BG_M52251_IG27:\n\u002B       add      rsp, 152\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -347,7 \u002B327,7 @@ G_M52251_IG30:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M52251_IG31:\n\u002BG_M52251_IG28:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -355,21 \u002B335,21 @@ G_M52251_IG31:\n        mov      rdi, rax\n        jmp      G_M52251_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M52251_IG32:\n\u002BG_M52251_IG29:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M52251_IG24\n\u002B       jmp      G_M52251_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M52251_IG33:\n\u002BG_M52251_IG30:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M52251_IG34:\n\u002BG_M52251_IG31:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -381,16 \u002B361,16 @@ G_M52251_IG34:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M52251_IG35:\n\u002BG_M52251_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M52251_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M52251_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M52251_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M52251_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M52251_IG37\n\u002B       je       SHORT G_M52251_IG34\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -399,12 \u002B379,12 @@ G_M52251_IG36:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M52251_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M52251_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M52251_IG38\n\u002B       je       SHORT G_M52251_IG35\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -413,14 \u002B393,14 @@ G_M52251_IG37:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M52251_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M52251_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M52251_IG39:\n\u002BG_M52251_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1137, prolog size 72, PerfScore 161.80, instruction count 268, allocated bytes for code 1137 (MethodHash=ed2f33e4) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollection[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 1056, prolog size 72, PerfScore 152.42, instruction count 254, allocated bytes for code 1056 (MethodHash=ed2f33e4) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollection[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1137,"DiffBytes":1056},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Core.FeeEntryService:ListAutoPaging(Stripe.V2.Core.FeeEntryListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.FeeEntry]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.Core.FeeEntryService:ListAutoPaging(Stripe.V2.Core.FeeEntryListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.FeeEntry]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Core.FeeEntryService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Core.FeeEntryListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Core.FeeEntryListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.FeeEntry]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.FeeEntry]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.FeeEntry]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.FeeEntry]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.FeeEntry]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.FeeEntry]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.FeeEntry]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.FeeEntry]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.FeeEntry]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M8188_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M8188_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/core/fee_entries\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M8188_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M8188_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.FeeEntry]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.FeeEntry]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M8188_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M8188_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.FeeEntry]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.FeeEntry]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M8188_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M8188_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=7b68e003) for method Stripe.V2.Core.FeeEntryService:ListAutoPaging(Stripe.V2.Core.FeeEntryListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.FeeEntry]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=7b68e003) for method Stripe.V2.Core.FeeEntryService:ListAutoPaging(Stripe.V2.Core.FeeEntryListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.FeeEntry]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.Internal.SyncViaAsync:Run[System.Nullable\u00601[int],System.Nullable\u00601[int]](System.Func\u00602[System.Nullable\u00601[int],System.Threading.Tasks.ValueTask\u00601[System.Nullable\u00601[int]]],System.Nullable\u00601[int]):System.Nullable\u00601[int] (FullOpts)","Category":"same-size","Description":"668 -\u003E 668 bytes (0)","ExtraInfo":null,"Diff":"@@ -77,7 \u002B77,7 @@ G_M48686_IG02:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        mov      r15, rax\n        movzx    rsi, byte  ptr [r15\u002B0x10]\n        mov      dword ptr [rbp-0x2C], esi\n@@ -262,7 \u002B262,7 @@ G_M48686_IG26:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n G_M48686_IG27:\n-       mov      edi, 70\n\u002B       mov      edi, 68\n        call     CORINFO_HELP_GETDYNAMIC_NONGCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED2\n        mov      r15, rax\n        mov      esi, dword ptr [rbp-0x2C]","Truncated":true,"BaseBytes":668,"DiffBytes":668},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Mapping.ViewGeneration.QueryRewriting.QueryRewriter:RemapFromVariables():System.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]:this (FullOpts)","Category":"improvement","Description":"1,525 -\u003E 1,462 bytes (-63)","ExtraInfo":null,"Diff":"@@ -8,86 \u002B8,86 @@\n ; 0 inlinees with PGO data; 52 single block inlinees; 6 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T24] ( 10, 13   )     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.QueryRewriting.QueryRewriter\u003E\n-;  V01 loc0         [V01,T25] (  8, 14   )     ref  -\u003E  r15         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n\u002B;  V00 this         [V00,T23] ( 10, 13   )     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.QueryRewriting.QueryRewriter\u003E\n\u002B;  V01 loc0         [V01,T24] (  8, 14   )     ref  -\u003E  r15         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n ;  V02 loc1         [V02,T30] (  6, 11   )     int  -\u003E  r14        \n ;  V03 loc2         [V03,T17] (  6, 21.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolLiteral,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolLiteral]\u003E\n ;* V04 loc3         [V04    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n ;* V05 loc4         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper\u003E\n-;  V06 loc5         [V06,T32] (  4,  8   )     int  -\u003E  [rbp-0x2C]  spill-single-def\n-;  V07 loc6         [V07,T42] (  3,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.CaseStatement]\u003E\n\u002B;  V06 loc5         [V06,T31] (  4,  8   )     int  -\u003E  [rbp-0x2C]  spill-single-def\n\u002B;  V07 loc6         [V07,T40] (  3,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.CaseStatement]\u003E\n ;  V08 loc7         [V08    ] (  8, 14.50)  struct (40) [rbp-0x58]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Collections.Generic.Dictionary\u00602\u002BEnumerator[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.CaseStatement]\u003E\n ;* V09 loc8         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.KeyValuePair\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.CaseStatement]\u003E\n ;  V10 loc9         [V10,T12] (  3, 24   )     ref  -\u003E  [rbp-0xA8]  class-hnd exact spill-single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.CaseStatement\u003E\n ;* V11 loc10        [V11    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.CaseStatement\u002BWhenThen]\u003E\n ;* V12 loc11        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.CaseStatement\u002BWhenThen\u003E\n ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V14 tmp1         [V14,T37] (  3,  6   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n-;  V15 tmp2         [V15,T38] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolLiteral,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolLiteral]\u003E\n\u002B;  V14 tmp1         [V14,T36] (  3,  6   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n\u002B;  V15 tmp2         [V15,T37] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolLiteral,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolLiteral]\u003E\n ;  V16 tmp3         [V16,T13] (  3, 24   )     ref  -\u003E  rdi         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.QueryRewriting.FragmentQuery]\u003E\n ;  V17 tmp4         [V17,T20] (  4, 16   )     ref  -\u003E  [rbp-0xB0]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellIdBoolean\u003E\n ;  V18 tmp5         [V18,T21] (  4, 16   )     ref  -\u003E  [rbp-0xB8]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellIdBoolean\u003E\n-;  V19 tmp6         [V19,T45] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.CaseStatement]\u003E\n\u002B;  V19 tmp6         [V19,T44] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.CaseStatement]\u003E\n ;  V20 tmp7         [V20,T10] (  4, 32   )     ref  -\u003E  [rbp-0xC0]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.CaseStatement\u003E\n ;  V21 tmp8         [V21,T03] (  3, 96   )     ref  -\u003E  [rbp-0xC8]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolExpression\u003E\n ;* V22 tmp9         [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolLiteral\u002BIdentifierComparer\u003E\n ;* V23 tmp10        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.ViewgenContext\u003E\n-;  V24 tmp11        [V24,T39] (  3,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n\u002B;  V24 tmp11        [V24,T38] (  3,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n ;* V25 tmp12        [V25    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n-;  V26 tmp13        [V26,T23] (  2, 16   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.QueryRewriting.FragmentQuery\u003E\n-;  V27 tmp14        [V27,T40] (  3,  6   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper[]\u003E\n-;  V28 tmp15        [V28,T33] (  4,  8   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n-;  V29 tmp16        [V29,T22] (  4, 16   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n-;  V30 tmp17        [V30    ] (  3,  6   )   ubyte  -\u003E  [rbp-0x60]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V26 tmp13        [V26,T22] (  2, 16   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.QueryRewriting.FragmentQuery\u003E\n\u002B;  V27 tmp14        [V27,T39] (  3,  6   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper[]\u003E\n\u002B;  V28 tmp15        [V28,T32] (  4,  8   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n\u002B;  V29 tmp16        [V29,T26] (  3, 12   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n\u002B;  V30 tmp17        [V30    ] (  2,  4   )   ubyte  -\u003E  [rbp-0x60]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V31 tmp18        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V32 tmp19        [V32,T41] (  3,  6   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\u003E\n-;  V33 tmp20        [V33,T31] (  4,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n... diff truncated; middle omitted ...\n\u002B       je       G_M50362_IG26\n        mov      r12, gword ptr [rbp-0x40]\n        mov      rax, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbp-0x100], rax\n\u002B       mov      gword ptr [rbp-0xF8], rax\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Mapping.ViewGeneration.Structures.CaseStatement\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0xC0], rax\n@@ -327,59 \u002B311,59 @@ G_M50362_IG19:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.CaseStatement\u002BWhenThen]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0xD8], rax\n\u002B       mov      gword ptr [rbp-0xD0], rax\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M50362_IG34\n\u002B       je       G_M50362_IG33\n \t\t\t\t\t\t;; size=124 bbWeight=4 PerfScore 71.00\n-G_M50362_IG20:\n\u002BG_M50362_IG19:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.CaseStatement\u002BWhenThen]:s_emptyArray\n        mov      rsi, gword ptr [rdi]\n-       mov      rax, gword ptr [rbp-0xD8]\n\u002B       mov      rax, gword ptr [rbp-0xD0]\n        lea      rdi, bword ptr [rax\u002B0x08]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rax, gword ptr [rbp-0xC0]\n        lea      rdi, bword ptr [rax\u002B0x10]\n-       mov      rsi, gword ptr [rbp-0xD8]\n\u002B       mov      rsi, gword ptr [rbp-0xD0]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rax, gword ptr [rbp-0xC0]\n        mov      gword ptr [rbp-0xA8], rax\n-       mov      rdi, gword ptr [rbp-0x100]\n\u002B       mov      rdi, gword ptr [rbp-0xF8]\n        mov      rcx, gword ptr [rdi\u002B0x10]\n        mov      edx, dword ptr [rcx\u002B0x14]\n-       mov      gword ptr [rbp-0x108], rcx\n\u002B       mov      gword ptr [rbp-0x100], rcx\n        mov      dword ptr [rbp-0x90], edx\n        xor      edi, edi\n-       jmp      SHORT G_M50362_IG24\n\u002B       jmp      SHORT G_M50362_IG23\n \t\t\t\t\t\t;; size=97 bbWeight=4 PerfScore 78.00\n-G_M50362_IG21:\n\u002BG_M50362_IG20:\n        lea      edi, [rdx\u002B0x01]\n        mov      dword ptr [rax\u002B0x10], edi\n        mov      edi, edx\n        lea      rdi, bword ptr [rcx\u002B8*rdi\u002B0x10]\n-       mov      rsi, gword ptr [rbp-0xE8]\n\u002B       mov      rsi, gword ptr [rbp-0xE0]\n        call     CORINFO_HELP_ASSIGN_REF\n \t\t\t\t\t\t;; size=25 bbWeight=8 PerfScore 38.00\n-G_M50362_IG22:\n\u002BG_M50362_IG21:\n        mov      edi, dword ptr [rbp-0x90]\n-       mov      rsi, gword ptr [rbp-0x108]\n\u002B       mov      rsi, gword ptr [rbp-0x100]\n        cmp      edi, dword ptr [rsi\u002B0x14]\n        mov      rcx, rsi\n-       jne      G_M50362_IG33\n\u002B       jne      G_M50362_IG32\n \t\t\t\t\t\t;; size=25 bbWeight=16 PerfScore 84.00\n-G_M50362_IG23:\n\u002BG_M50362_IG22:\n        mov      rdi, qword ptr [rbp-0xA0]\n \t\t\t\t\t\t;; size=7 bbWeight=8 PerfScore 8.00\n-G_M50362_IG24:\n\u002BG_M50362_IG23:\n        cmp      edi, dword ptr [rcx\u002B0x10]\n-       jae      G_M50362_IG18\n\u002B       jae      G_M50362_IG17\n \t\t\t\t\t\t;; size=9 bbWeight=32 PerfScore 96.00\n-G_M50362_IG25:\n\u002BG_M50362_IG24:\n        mov      rsi, gword ptr [rcx\u002B0x08]\n        cmp      edi, dword ptr [rsi\u002B0x08]\n-       jae      G_M50362_IG35\n\u002B       jae      G_M50362_IG34\n        mov      r8, gword ptr [rsi\u002B8*rdi\u002B0x10]\n-       mov      gword ptr [rbp-0x110], r8\n\u002B       mov      gword ptr [rbp-0x108], r8\n        inc      edi\n        mov      qword ptr [rbp-0xA0], rdi\n        mov      rdi, gword ptr [r8\u002B0x08]\n@@ -388,49 \u002B372,49 @@ G_M50362_IG25:\n        cmp      dword ptr [rdi], edi\n        call     [r10]System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolExpression:RemapLiterals(System.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolLiteral,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolLiteral]):System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolExpression:this\n        mov      gword ptr [rbp-0xC8], rax\n-       mov      rdi, gword ptr [rbp-0x110]\n\u002B       mov      rdi, gword ptr [rbp-0x108]\n        mov      rcx, gword ptr [rdi\u002B0x10]\n-       mov      gword ptr [rbp-0xE0], rcx\n\u002B       mov      gword ptr [rbp-0xD8], rcx\n        mov      rdi, rax\n        mov      rdx, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolExpression:ExpensiveSimplify():this\n        cmp      dword ptr [rdi], edi\n        call     [rdx]System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolExpression:ExpensiveSimplify():this\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Mapping.ViewGeneration.Structures.CaseStatement\u002BWhenThen\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0xE8], rax\n\u002B       mov      gword ptr [rbp-0xE0], rax\n        mov      rcx, gword ptr [rbp-0xA8]\n        mov      rdx, gword ptr [rcx\u002B0x10]\n-       mov      gword ptr [rbp-0xF0], rdx\n\u002B       mov      gword ptr [rbp-0xE8], rdx\n        lea      rdi, bword ptr [rax\u002B0x08]\n        mov      rsi, gword ptr [rbp-0xC8]\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rax, gword ptr [rbp-0xE8]\n\u002B       mov      rax, gword ptr [rbp-0xE0]\n        lea      rdi, bword ptr [rax\u002B0x10]\n-       mov      rsi, gword ptr [rbp-0xE0]\n\u002B       mov      rsi, gword ptr [rbp-0xD8]\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rax, gword ptr [rbp-0xF0]\n\u002B       mov      rax, gword ptr [rbp-0xE8]\n        inc      dword ptr [rax\u002B0x14]\n        mov      rcx, gword ptr [rax\u002B0x08]\n        mov      edx, dword ptr [rax\u002B0x10]\n        cmp      dword ptr [rcx\u002B0x08], edx\n-       ja       G_M50362_IG21\n\u002B       ja       G_M50362_IG20\n \t\t\t\t\t\t;; size=203 bbWeight=16 PerfScore 808.00\n-G_M50362_IG26:\n\u002BG_M50362_IG25:\n        mov      rdi, rax\n-       mov      rsi, gword ptr [rbp-0xE8]\n\u002B       mov      rsi, gword ptr [rbp-0xE0]\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n-       jmp      G_M50362_IG22\n\u002B       jmp      G_M50362_IG21\n \t\t\t\t\t\t;; size=27 bbWeight=8 PerfScore 52.00\n-G_M50362_IG27:\n\u002BG_M50362_IG26:\n        lea      rdi, bword ptr [rbx\u002B0x80]\n        mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.88\n-G_M50362_IG28:\n\u002BG_M50362_IG27:\n        mov      rax, r15\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M50362_IG29:\n\u002BG_M50362_IG28:\n        vzeroupper \n        add      rsp, 232\n        pop      rbx\n@@ -441,38 \u002B425,38 @@ G_M50362_IG29:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=21 bbWeight=1 PerfScore 5.25\n-G_M50362_IG30:\n\u002BG_M50362_IG29:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M50362_IG03\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M50362_IG31:\n\u002BG_M50362_IG30:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M50362_IG32:\n\u002BG_M50362_IG31:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M50362_IG33:\n\u002BG_M50362_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M50362_IG34:\n\u002BG_M50362_IG33:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.CaseStatement\u002BWhenThen]\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rcx]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M50362_IG20\n\u002B       jmp      G_M50362_IG19\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M50362_IG35:\n\u002BG_M50362_IG34:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1525, prolog size 51, PerfScore 1617.38, instruction count 310, allocated bytes for code 1525 (MethodHash=d13a3b45) for method System.Data.Entity.Core.Mapping.ViewGeneration.QueryRewriting.QueryRewriter:RemapFromVariables():System.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]:this (FullOpts)\n\u002B; Total bytes of code 1462, prolog size 51, PerfScore 1583.88, instruction count 296, allocated bytes for code 1462 (MethodHash=d13a3b45) for method System.Data.Entity.Core.Mapping.ViewGeneration.QueryRewriting.QueryRewriter:RemapFromVariables():System.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1525,"DiffBytes":1462},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollection[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,137 -\u003E 1,056 bytes (-81)","ExtraInfo":null,"Diff":"@@ -14,14 \u002B14,14 @@\n ;  V03 arg2         [V03,T05] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[byte,System.__Canon]\u003E\n ;  V04 arg3         [V04,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T24] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n\u002B;  V06 loc0         [V06,T23] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n-;  V08 loc2         [V08,T25] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n-;  V09 loc3         [V09,T22] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V08 loc2         [V08,T24] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n\u002B;  V09 loc3         [V09,T21] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V12 tmp2         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V13 tmp3         [V13,T31] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V13 tmp3         [V13,T30] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V14 tmp4         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V15 tmp5         [V15    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V16 tmp6         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n@@ -39,17 \u002B39,17 @@\n ;* V28 tmp18        [V28    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V29 tmp19        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V30 tmp20        [V30    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V31 tmp21        [V31,T23] (  3,  2   )     int  -\u003E  registers  \n-;  V32 tmp22        [V32,T06] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V33 tmp23        [V33    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V34 tmp24        [V34,T20] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V35 tmp25        [V35,T21] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V31 tmp21        [V31,T22] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V32 tmp22        [V32,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V33 tmp23        [V33    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V34 tmp24        [V34,T20] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V37 tmp27        [V37,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V38 tmp28        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V39 tmp29        [V39,T28] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V39 tmp29        [V39,T27] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V41 tmp31        [V41,T19] (  8,  3   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V41 tmp31        [V41,T19] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V42 tmp32        [V42,T07] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V43 tmp33        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V44 tmp34        [V44,T10] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -58,13 \u002B58,13 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;  V50 tmp40        [V50,T16] (  2,  2   )     ref  -\u003E  [rbp-0x90]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V51 tmp41        [V51,T26] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V15.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp42        [V52,T27] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V15.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V50 tmp40        [V50,T16] (  2,  2   )     ref  -\u003E  [rbp-0x88]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V51 tmp41        [V51,T25] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V15.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp42        [V52,T26] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V15.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V53 tmp43        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V22._name (fldOffset=0x0)\u0022 P-DEP\n ;* V54 tmp44        [V54    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V22._value (fldOffset=0x8)\u0022 P-DEP\n-;  V55 tmp45        [V55,T29] (  2,  1   )     ref  -\u003E  rax         \u0022field V23._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V56 tmp46        [V56,T30] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V23._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V55 tmp45        [V55,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V23._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V56 tmp46        [V56,T29] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V23._value (fldOffset=0x8)\u0022 P-INDEP\n ;  V57 tmp47        [V57,T17] (  2,  4   )    long  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V58 tmp48        [V58,T18] (  2,  4   )    long  -\u003E  rsi         \u0022argument with side effect\u0022\n ;  V59 rat0         [V59,T14] (  3,  4   )    long  -\u003E  rdi         \u0022runtime lookup\u0022\n@@ -72,7 \u002B72,7 @@\n ;  V61 rat2         [V61,T15] (  3,  4   )    long  -\u003E  rsi         \u0022runtime lookup\u0022\n ;  V62 rat3         [V62,T09] (  3,  5.60)    long  -\u003E  rsi         \u0022fgMakeTemp is creating a new local variable\u0022\n ;\n-; Lcl frame size = 168\n\u002B; Lcl frame size = 152\n \n G_M35067_IG01:\n        push     rbp\n@@ -81,14 \u002B81,14 @@ G_M35067_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 168\n-       lea      rbp, [rsp\u002B0xD0]\n\u002B       sub      rsp, 152\n\u002B       lea      rbp, [rsp\u002B0xC0]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x78], rax\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        mov      qword ptr [rbp-0x30], rsi\n-       mov      gword ptr [rbp-0x90], r9\n\u002B       mov      gword ptr [rbp-0x88], r9\n        mov      r15, rdi\n        mov      r14, rsi\n        mov      r13, rdx\n@@ -104,7 \u002B104,7 @@ G_M35067_IG02:\n        mov      rdi, qword ptr [r14\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M35067_IG31\n\u002B       je       G_M35067_IG28\n \t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 9.25\n G_M35067_IG03:\n        mov      rsi, r12\n@@ -154,90 \u002B154,70 @@ G_M35067_IG05:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[byte,System.__Canon]:Render(MongoDB.Driver.RenderArgs\u00601[byte]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]:this\n        mov      r12, rax\n-       mov      rax, gword ptr [r12\u002B0x08]\n-       mov      gword ptr [rbp-0x80], rax\n-       test     rax, rax\n-       je       G_M35067_IG33\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n... diff truncated; middle omitted ...\n-G_M35067_IG18:\n\u002BG_M35067_IG15:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M35067_IG20\n\u002B       je       SHORT G_M35067_IG17\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M35067_IG19:\n\u002BG_M35067_IG16:\n        xor      ecx, ecx\n-       jmp      SHORT G_M35067_IG22\n\u002B       jmp      SHORT G_M35067_IG19\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M35067_IG20:\n\u002BG_M35067_IG17:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -245,30 \u002B225,30 @@ G_M35067_IG20:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M35067_IG22\n\u002B       jmp      SHORT G_M35067_IG19\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M35067_IG21:\n\u002BG_M35067_IG18:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M35067_IG22:\n\u002BG_M35067_IG19:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M35067_IG23:\n\u002BG_M35067_IG20:\n        mov      dword ptr [rbp-0x6C], ecx\n        mov      rdi, gword ptr [r12\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M35067_IG34\n\u002B       je       G_M35067_IG31\n        cmp      dword ptr [rbp-0x6C], 0\n-       je       G_M35067_IG34\n\u002B       je       G_M35067_IG31\n        mov      rdi, qword ptr [r14\u002B0x18]\n        mov      rsi, qword ptr [rdi\u002B0x20]\n        test     rsi, rsi\n-       je       G_M35067_IG32\n\u002B       je       G_M35067_IG29\n \t\t\t\t\t\t;; size=56 bbWeight=1 PerfScore 14.75\n-G_M35067_IG24:\n\u002BG_M35067_IG21:\n        mov      rdi, r15\n        mov      rdx, r12\n        mov      rcx, rbx\n@@ -280,13 \u002B260,13 @@ G_M35067_IG24:\n        cmp      byte  ptr [r14], r14b\n        mov      rdi, r15\n        mov      rsi, r13\n-       mov      r9, gword ptr [rbp-0x90]\n\u002B       mov      r9, gword ptr [rbp-0x88]\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 16.25\n-G_M35067_IG25:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=74 bbWeight=1 PerfScore 16.25\n\u002BG_M35067_IG22:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -294,22 \u002B274,22 @@ G_M35067_IG25:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r13\n        mov      rcx, r14\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=64 bbWeight=1 PerfScore 11.25\n-G_M35067_IG26:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M35067_IG29\n-\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 2.00\n-G_M35067_IG27:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n\u002BG_M35067_IG23:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M35067_IG26\n\u002B\t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n\u002BG_M35067_IG24:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M35067_IG28\n\u002B       je       SHORT G_M35067_IG25\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -318,12 \u002B298,12 @@ G_M35067_IG27:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M35067_IG28:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n\u002BG_M35067_IG25:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M35067_IG29\n\u002B       je       SHORT G_M35067_IG26\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -332,12 \u002B312,12 @@ G_M35067_IG28:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M35067_IG29:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n\u002BG_M35067_IG26:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M35067_IG30:\n-       add      rsp, 168\n\u002BG_M35067_IG27:\n\u002B       add      rsp, 152\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -346,7 \u002B326,7 @@ G_M35067_IG30:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M35067_IG31:\n\u002BG_M35067_IG28:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -354,21 \u002B334,21 @@ G_M35067_IG31:\n        mov      rdi, rax\n        jmp      G_M35067_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M35067_IG32:\n\u002BG_M35067_IG29:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M35067_IG24\n\u002B       jmp      G_M35067_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M35067_IG33:\n\u002BG_M35067_IG30:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M35067_IG34:\n\u002BG_M35067_IG31:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -380,16 \u002B360,16 @@ G_M35067_IG34:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M35067_IG35:\n\u002BG_M35067_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M35067_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M35067_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M35067_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M35067_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M35067_IG37\n\u002B       je       SHORT G_M35067_IG34\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -398,12 \u002B378,12 @@ G_M35067_IG36:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M35067_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M35067_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M35067_IG38\n\u002B       je       SHORT G_M35067_IG35\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -412,14 \u002B392,14 @@ G_M35067_IG37:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M35067_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M35067_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M35067_IG39:\n\u002BG_M35067_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1137, prolog size 72, PerfScore 161.80, instruction count 268, allocated bytes for code 1137 (MethodHash=1c357704) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollection[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 1056, prolog size 72, PerfScore 152.42, instruction count 254, allocated bytes for code 1056 (MethodHash=1c357704) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollection[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1137,"DiffBytes":1056},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Core.Health.AlertService:ListAutoPaging(Stripe.V2.Core.Health.AlertListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.Health.Alert]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.Core.Health.AlertService:ListAutoPaging(Stripe.V2.Core.Health.AlertListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.Health.Alert]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Core.Health.AlertService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Core.Health.AlertListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Core.Health.AlertListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.Health.Alert]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.Health.Alert]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.Health.Alert]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.Health.Alert]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.Health.Alert]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.Health.Alert]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.Health.Alert]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.Health.Alert]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.Health.Alert]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M12530_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M12530_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/core/health/alerts\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M12530_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M12530_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.Health.Alert]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.Health.Alert]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M12530_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M12530_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.Health.Alert]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.Health.Alert]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M12530_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M12530_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=797acf0d) for method Stripe.V2.Core.Health.AlertService:ListAutoPaging(Stripe.V2.Core.Health.AlertListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.Health.Alert]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=797acf0d) for method Stripe.V2.Core.Health.AlertService:ListAutoPaging(Stripe.V2.Core.Health.AlertListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.Health.Alert]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.Internal.SyncViaAsync:Run[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]](System.Func\u00602[System.Numerics.Vector\u00601[float],System.Threading.Tasks.ValueTask\u00601[System.Nullable\u00601[int]]],System.Numerics.Vector\u00601[float]):System.Nullable\u00601[int] (FullOpts)","Category":"same-size","Description":"687 -\u003E 687 bytes (0)","ExtraInfo":null,"Diff":"@@ -78,7 \u002B78,7 @@ G_M43859_IG02:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        mov      r15, rax\n        movzx    rsi, byte  ptr [r15\u002B0x10]\n        mov      dword ptr [rbp-0x24], esi\n@@ -264,7 \u002B264,7 @@ G_M43859_IG26:\n        sub      rsp, 40\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n G_M43859_IG27:\n-       mov      edi, 70\n\u002B       mov      edi, 68\n        call     CORINFO_HELP_GETDYNAMIC_NONGCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED2\n        mov      r15, rax\n        mov      esi, dword ptr [rbp-0x24]","Truncated":true,"BaseBytes":687,"DiffBytes":687},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeafCellTreeNode:ToCqlBlock(bool[],System.Data.Entity.Core.Mapping.ViewGeneration.Structures.CqlIdentifiers,byref,byref):System.Data.Entity.Core.Mapping.ViewGeneration.CqlGeneration.CqlBlock:this (FullOpts)","Category":"improvement","Description":"2,196 -\u003E 2,133 bytes (-63)","ExtraInfo":null,"Diff":"@@ -11,63 \u002B11,63 @@\n ;  V00 this         [V00,T04] ( 14, 30.50)     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeafCellTreeNode\u003E\n ;  V01 arg1         [V01,T14] (  6, 15   )     ref  -\u003E  r15         class-hnd single-def \u003Cbool[]\u003E\n ;  V02 arg2         [V02,T27] (  9, 13   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.CqlIdentifiers\u003E\n-;  V03 arg3         [V03,T44] (  4,  4   )   byref  -\u003E  r13         single-def\n-;  V04 arg4         [V04,T45] (  3,  4   )   byref  -\u003E  r12         single-def\n\u002B;  V03 arg3         [V03,T43] (  4,  4   )   byref  -\u003E  r13         single-def\n\u002B;  V04 arg4         [V04,T44] (  3,  4   )   byref  -\u003E  r12         single-def\n ;  V05 loc0         [V05,T05] ( 14, 29.50)     ref  -\u003E  [rbp-0x70]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellQuery\u003E\n ;  V06 loc1         [V06,T30] (  5, 12   )     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.CqlGeneration.SlotInfo[]\u003E\n-;  V07 loc2         [V07,T49] (  3,  4   )     ref  -\u003E  [rbp-0x80]  class-hnd \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.CqlGeneration.SlotInfo]\u003E\n-;* V08 loc3         [V08,T62] (  0,  0   )     int  -\u003E  zero-ref   \n\u002B;  V07 loc2         [V07,T48] (  3,  4   )     ref  -\u003E  [rbp-0x80]  class-hnd \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.CqlGeneration.SlotInfo]\u003E\n\u002B;* V08 loc3         [V08,T61] (  0,  0   )     int  -\u003E  zero-ref   \n ;  V09 loc4         [V09,T15] (  5, 16   )     ref  -\u003E  [rbp-0x88]  class-hnd \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.ProjectedSlot\u003E\n ;* V10 loc5         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.CqlGeneration.SlotInfo\u003E\n ;* V11 loc6         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.ConstantProjectedSlot\u003E\n-;* V12 loc7         [V12,T63] (  0,  0   )     int  -\u003E  zero-ref   \n\u002B;* V12 loc7         [V12,T62] (  0,  0   )     int  -\u003E  zero-ref   \n ;  V13 loc8         [V13,T28] (  4, 14   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolExpression\u003E\n-;  V14 loc9         [V14,T39] (  3,  8   )     ref  -\u003E  [rbp-0x98]  class-hnd \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.CqlGeneration.BooleanProjectedSlot\u003E\n\u002B;  V14 loc9         [V14,T38] (  3,  8   )     ref  -\u003E  [rbp-0x98]  class-hnd \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.CqlGeneration.BooleanProjectedSlot\u003E\n ;  V15 loc10        [V15,T21] (  4, 16   )     int  -\u003E  [rbp-0x2C]  spill-single-def\n ;* V16 loc11        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.CqlGeneration.SlotInfo\u003E\n ;  V17 loc12        [V17    ] (  3,  6.50)     ref  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.CqlGeneration.SlotInfo]\u003E\n-;  V18 loc13        [V18,T37] (  6,  8.50)     ref  -\u003E  [rbp-0xA0]  class-hnd EH-live single-def \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Data.Entity.Core.Mapping.AssociationSetMapping]\u003E\n\u002B;  V18 loc13        [V18,T36] (  6,  8.50)     ref  -\u003E  [rbp-0xA0]  class-hnd EH-live single-def \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Data.Entity.Core.Mapping.AssociationSetMapping]\u003E\n ;  V19 loc14        [V19    ] (  2,  6   )     ref  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.WithRelationship\u003E\n-;  V20 loc15        [V20,T57] (  3,  3   )     int  -\u003E  [rbp-0x44]  spill-single-def\n\u002B;  V20 loc15        [V20,T56] (  3,  3   )     int  -\u003E  [rbp-0x44]  spill-single-def\n ;# V21 OutArgs      [V21    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V22 tmp1         [V22,T53] (  2,  4   )     int  -\u003E  rsi         \u0022impAppendStmt\u0022\n\u002B;  V22 tmp1         [V22,T52] (  2,  4   )     int  -\u003E  rsi         \u0022impAppendStmt\u0022\n ;* V23 tmp2         [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewArr temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.CqlGeneration.SlotInfo[]\u003E\n ;  V24 tmp3         [V24,T25] (  2, 16   )     int  -\u003E  [rbp-0x48]  spill-single-def \u0022impAppendStmt\u0022\n ;  V25 tmp4         [V25,T01] (  7, 56   )     ref  -\u003E  [rbp-0xA8]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.CqlGeneration.SlotInfo\u003E\n-;  V26 tmp5         [V26,T41] (  2,  8   )     ref  -\u003E  [rbp-0xB0]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath\u003E\n-;  V27 tmp6         [V27,T42] (  2,  8   )     ref  -\u003E  [rbp-0xB8]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n\u002B;  V26 tmp5         [V26,T40] (  2,  8   )     ref  -\u003E  [rbp-0xB0]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath\u003E\n\u002B;  V27 tmp6         [V27,T41] (  2,  8   )     ref  -\u003E  [rbp-0xB8]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n ;  V28 tmp7         [V28,T16] (  4, 16   )     ref  -\u003E  [rbp-0xC0]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.ConstantProjectedSlot\u003E\n ;  V29 tmp8         [V29,T17] (  4, 16   )     ref  -\u003E  [rbp-0xC8]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.CqlGeneration.BooleanProjectedSlot\u003E\n ;  V30 tmp9         [V30,T02] (  7, 56   )     ref  -\u003E  [rbp-0xD0]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.CqlGeneration.SlotInfo\u003E\n ;  V31 tmp10        [V31,T18] (  4, 16   )     ref  -\u003E  [rbp-0xD8]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.CqlGeneration.BooleanProjectedSlot\u003E\n-;  V32 tmp11        [V32,T50] (  2,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySetBase\u003E\n-;  V33 tmp12        [V33,T54] (  2,  4   )     int  -\u003E  r12         \u0022impAppendStmt\u0022\n-;  V34 tmp13        [V34,T51] (  2,  4   )     ref  -\u003E  [rbp-0xE0]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.CqlGeneration.SlotInfo[]\u003E\n-;  V35 tmp14        [V35,T52] (  2,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolExpression\u003E\n\u002B;  V32 tmp11        [V32,T49] (  2,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySetBase\u003E\n\u002B;  V33 tmp12        [V33,T53] (  2,  4   )     int  -\u003E  r12         \u0022impAppendStmt\u0022\n\u002B;  V34 tmp13        [V34,T50] (  2,  4   )     ref  -\u003E  [rbp-0xE0]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.CqlGeneration.SlotInfo[]\u003E\n\u002B;  V35 tmp14        [V35,T51] (  2,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolExpression\u003E\n ;  V36 tmp15        [V36,T29] (  6, 12   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.CqlGeneration.ExtentCqlBlock\u003E\n-;  V37 tmp16        [V37,T58] (  2,  2   )     ref  -\u003E  [rbp-0xE8]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Mapping.EntityContainerMapping\u003E\n-;  V38 tmp17        [V38,T59] (  2,  2   )     ref  -\u003E  [rbp-0xF0]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySetBase\u003E\n-;  V39 tmp18        [V39,T55] (  3,  3   )     ref  -\u003E  [rbp-0xF8]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.CqlGeneration.SlotInfo]\u003E\n-;  V40 tmp19        [V40,T60] (  2,  2   )     ref  -\u003E  [rbp-0x100]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.AssociationSetMapping]\u003E\n\u002B;  V37 tmp16        [V37,T57] (  2,  2   )     ref  -\u003E  [rbp-0xE8]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Mapping.EntityContainerMapping\u003E\n\u002B;  V38 tmp17        [V38,T58] (  2,  2   )     ref  -\u003E  [rbp-0xF0]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySetBase\u003E\n\u002B;  V39 tmp18        [V39,T54] (  3,  3   )     ref  -\u003E  [rbp-0xF8]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.CqlGeneration.SlotInfo]\u003E\n... diff truncated; middle omitted ...\n        cmp      byte  ptr [rbp-0x50], 0\n-       je       G_M25788_IG23\n\u002B       je       G_M25788_IG20\n        mov      rsi, gword ptr [rbp-0x148]\n        mov      esi, dword ptr [rsi\u002B0x38]\n        cmp      byte  ptr [rax], al\n        test     esi, esi\n-       jne      SHORT G_M25788_IG17\n-\t\t\t\t\t\t;; size=26 bbWeight=4 PerfScore 33.00\n-G_M25788_IG16:\n\u002B       jne      SHORT G_M25788_IG14\n\u002B\t\t\t\t\t\t;; size=132 bbWeight=4 PerfScore 117.00\n\u002BG_M25788_IG13:\n        mov      rsi, gword ptr [rax\u002B0x08]\n-       jmp      SHORT G_M25788_IG18\n\u002B       jmp      SHORT G_M25788_IG15\n \t\t\t\t\t\t;; size=6 bbWeight=2 PerfScore 8.00\n-G_M25788_IG17:\n\u002BG_M25788_IG14:\n        mov      rsi, gword ptr [rax\u002B0x10]\n \t\t\t\t\t\t;; size=4 bbWeight=2 PerfScore 4.00\n-G_M25788_IG18:\n\u002BG_M25788_IG15:\n        mov      rsi, gword ptr [rsi\u002B0x28]\n        mov      rsi, gword ptr [rsi\u002B0x08]\n        mov      rax, gword ptr [rbp-0x70]\n@@ -406,26 \u002B386,26 @@ G_M25788_IG18:\n        test     eax, eax\n        je       G_M25788_IG12\n \t\t\t\t\t\t;; size=52 bbWeight=4 PerfScore 54.00\n-G_M25788_IG19:\n\u002BG_M25788_IG16:\n        mov      rdi, gword ptr [r12]\n        mov      rsi, gword ptr [rbp-0x40]\n        inc      dword ptr [rdi\u002B0x14]\n        mov      rax, gword ptr [rdi\u002B0x08]\n        mov      ecx, dword ptr [rdi\u002B0x10]\n        cmp      dword ptr [rax\u002B0x08], ecx\n-       ja       SHORT G_M25788_IG20\n\u002B       ja       SHORT G_M25788_IG17\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n-       jmp      SHORT G_M25788_IG21\n\u002B       jmp      SHORT G_M25788_IG18\n \t\t\t\t\t\t;; size=37 bbWeight=2 PerfScore 36.50\n-G_M25788_IG20:\n\u002BG_M25788_IG17:\n        lea      edx, [rcx\u002B0x01]\n        mov      dword ptr [rdi\u002B0x10], edx\n        mov      edi, ecx\n        lea      rdi, bword ptr [rax\u002B8*rdi\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n \t\t\t\t\t\t;; size=18 bbWeight=2 PerfScore 7.50\n-G_M25788_IG21:\n\u002BG_M25788_IG18:\n        mov      rdx, gword ptr [rbp-0x38]\n        mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:Concat[System.Data.Entity.Core.Mapping.ViewGeneration.CqlGeneration.SlotInfo](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.CqlGeneration.SlotInfo],System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.CqlGeneration.SlotInfo]):System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.CqlGeneration.SlotInfo]\n@@ -434,23 \u002B414,23 @@ G_M25788_IG21:\n        mov      gword ptr [rbp-0x80], rax\n        jmp      G_M25788_IG12\n \t\t\t\t\t\t;; size=38 bbWeight=2 PerfScore 15.50\n-G_M25788_IG22:\n\u002BG_M25788_IG19:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M25788_IG23:\n\u002BG_M25788_IG20:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M25788_IG24:\n\u002BG_M25788_IG21:\n        mov      rdi, gword ptr [rbp-0xA0]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 2.12\n-G_M25788_IG25:\n\u002BG_M25788_IG22:\n        mov      rbx, gword ptr [rbp-0x70]\n        mov      rsi, gword ptr [rbx\u002B0x28]\n        mov      r15, gword ptr [rsi\u002B0x08]\n@@ -492,7 \u002B472,7 @@ G_M25788_IG25:\n        mov      dword ptr [r13\u002B0x40], r12d\n        mov      rax, r13\n \t\t\t\t\t\t;; size=193 bbWeight=1 PerfScore 39.25\n-G_M25788_IG26:\n\u002BG_M25788_IG23:\n        add      rsp, 296\n        pop      rbx\n        pop      r12\n@@ -502,16 \u002B482,16 @@ G_M25788_IG26:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M25788_IG27:\n\u002BG_M25788_IG24:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      rdi, gword ptr [rdi\u002B0x18]\n        mov      rdi, gword ptr [rdi\u002B0x08]\n        mov      rdi, gword ptr [rdi\u002B0x10]\n        cmp      ecx, dword ptr [rdi\u002B0x10]\n-       jae      G_M25788_IG33\n\u002B       jae      G_M25788_IG30\n        mov      rdi, gword ptr [rdi\u002B0x08]\n        cmp      ecx, dword ptr [rdi\u002B0x08]\n-       jae      G_M25788_IG35\n\u002B       jae      G_M25788_IG32\n        mov      qword ptr [rbp-0x60], rcx\n        mov      rsi, gword ptr [rdi\u002B8*rcx\u002B0x10]\n        mov      gword ptr [rbp-0xB0], rsi\n@@ -545,7 \u002B525,7 @@ G_M25788_IG27:\n        mov      rcx, qword ptr [rbp-0x60]\n        mov      rsi, gword ptr [rbp-0x88]\n \t\t\t\t\t\t;; size=222 bbWeight=2 PerfScore 106.00\n-G_M25788_IG28:\n\u002BG_M25788_IG25:\n        movzx    r9, byte  ptr [r15\u002Brcx\u002B0x10]\n        mov      dword ptr [rbp-0x48], r9d\n        mov      rdi, gword ptr [rbx\u002B0x08]\n@@ -556,7 \u002B536,7 @@ G_M25788_IG28:\n        mov      qword ptr [rbp-0x60], rcx\n        cmp      ecx, dword ptr [r10\u002B0x10]\n        mov      gword ptr [rbp-0x88], rsi\n-       jae      G_M25788_IG33\n\u002B       jae      G_M25788_IG30\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Mapping.ViewGeneration.CqlGeneration.SlotInfo\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0xA8], rax\n@@ -564,7 \u002B544,7 @@ G_M25788_IG28:\n        mov      rdi, gword ptr [rdi\u002B0x08]\n        mov      rcx, qword ptr [rbp-0x60]\n        cmp      ecx, dword ptr [rdi\u002B0x08]\n-       jae      G_M25788_IG35\n\u002B       jae      G_M25788_IG32\n        mov      qword ptr [rbp-0x60], rcx\n        mov      rdx, gword ptr [rdi\u002B8*rcx\u002B0x10]\n        mov      gword ptr [rbp-0x120], rdx\n@@ -594,59 \u002B574,59 @@ G_M25788_IG28:\n        cmp      dword ptr [rcx\u002B0x08], edi\n        mov      rcx, rdi\n \t\t\t\t\t\t;; size=225 bbWeight=4 PerfScore 211.00\n-G_M25788_IG29:\n\u002BG_M25788_IG26:\n        jle      G_M25788_IG04\n \t\t\t\t\t\t;; size=6 bbWeight=4 PerfScore 4.00\n-G_M25788_IG30:\n\u002BG_M25788_IG27:\n        mov      rdx, rax\n \t\t\t\t\t\t;; size=3 bbWeight=2 PerfScore 0.50\n-G_M25788_IG31:\n\u002BG_M25788_IG28:\n        mov      rdi, gword ptr [rdx\u002B0x10]\n        cmp      ecx, dword ptr [rdi\u002B0x08]\n-       jae      SHORT G_M25788_IG35\n\u002B       jae      SHORT G_M25788_IG32\n        mov      rsi, gword ptr [rdi\u002B8*rcx\u002B0x10]\n        cmp      ecx, dword ptr [rbp-0x54]\n-       jae      SHORT G_M25788_IG35\n\u002B       jae      SHORT G_M25788_IG32\n        cmp      byte  ptr [r15\u002Brcx\u002B0x10], 0\n-       je       G_M25788_IG28\n\u002B       je       G_M25788_IG25\n \t\t\t\t\t\t;; size=31 bbWeight=4 PerfScore 48.00\n-G_M25788_IG32:\n\u002BG_M25788_IG29:\n        test     rsi, rsi\n-       jne      G_M25788_IG28\n-       jmp      G_M25788_IG27\n\u002B       jne      G_M25788_IG25\n\u002B       jmp      G_M25788_IG24\n \t\t\t\t\t\t;; size=14 bbWeight=2 PerfScore 6.50\n-G_M25788_IG33:\n\u002BG_M25788_IG30:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M25788_IG34:\n\u002BG_M25788_IG31:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.CqlGeneration.SlotInfo]\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rcx]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M25788_IG11\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M25788_IG35:\n\u002BG_M25788_IG32:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n-G_M25788_IG36:\n\u002BG_M25788_IG33:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M25788_IG37:\n\u002BG_M25788_IG34:\n        cmp      gword ptr [rbp-0xA0], 0\n-       je       SHORT G_M25788_IG38\n\u002B       je       SHORT G_M25788_IG35\n        mov      rdi, gword ptr [rbp-0xA0]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=30 bbWeight=0 PerfScore 0.00\n-G_M25788_IG38:\n\u002BG_M25788_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M25788_IG39:\n\u002BG_M25788_IG36:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 2196, prolog size 50, PerfScore 1149.96, instruction count 459, allocated bytes for code 2196 (MethodHash=b8229b43) for method System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeafCellTreeNode:ToCqlBlock(bool[],System.Data.Entity.Core.Mapping.ViewGeneration.Structures.CqlIdentifiers,byref,byref):System.Data.Entity.Core.Mapping.ViewGeneration.CqlGeneration.CqlBlock:this (FullOpts)\n\u002B; Total bytes of code 2133, prolog size 50, PerfScore 1112.46, instruction count 445, allocated bytes for code 2133 (MethodHash=b8229b43) for method System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeafCellTreeNode:ToCqlBlock(bool[],System.Data.Entity.Core.Mapping.ViewGeneration.Structures.CqlIdentifiers,byref,byref):System.Data.Entity.Core.Mapping.ViewGeneration.CqlGeneration.CqlBlock:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":2196,"DiffBytes":2133},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[byte]:Aggregate[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[byte,System.Nullable\u00601[int]]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Nullable\u00601[int]]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n... diff truncated; middle omitted ...\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M7036_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M7036_IG26\n\u002B       je       SHORT G_M7036_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M7036_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M7036_IG26:\n\u002BG_M7036_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M7036_IG27:\n\u002BG_M7036_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M7036_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M7036_IG28:\n\u002BG_M7036_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M7036_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M7036_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M7036_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M7036_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M7036_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M7036_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M7036_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M7036_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M7036_IG31\n\u002B       je       SHORT G_M7036_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M7036_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M7036_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M7036_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M7036_IG32\n\u002B       je       SHORT G_M7036_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M7036_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M7036_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M7036_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M7036_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateAggregateToCollectionResultCursor[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M7036_IG33:\n\u002BG_M7036_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M7036_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M7036_IG34:\n\u002BG_M7036_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M7036_IG35:\n\u002BG_M7036_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M7036_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M7036_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M7036_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M7036_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M7036_IG37\n\u002B       je       SHORT G_M7036_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M7036_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M7036_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M7036_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M7036_IG38\n\u002B       je       SHORT G_M7036_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M7036_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M7036_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M7036_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M7036_IG39:\n\u002BG_M7036_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M7036_IG40:\n\u002BG_M7036_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M7036_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M7036_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M7036_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M7036_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M7036_IG42\n\u002B       je       SHORT G_M7036_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M7036_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M7036_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M7036_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M7036_IG43\n\u002B       je       SHORT G_M7036_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M7036_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M7036_IG43:\n\u002BG_M7036_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M7036_IG44:\n\u002BG_M7036_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=304fe483) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:Aggregate[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=304fe483) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:Aggregate[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Core.Vault.GbBankAccountService:ListAutoPaging(Stripe.V2.Core.Vault.GbBankAccountListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.Vault.GbBankAccount]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.Core.Vault.GbBankAccountService:ListAutoPaging(Stripe.V2.Core.Vault.GbBankAccountListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.Vault.GbBankAccount]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Core.Vault.GbBankAccountService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Core.Vault.GbBankAccountListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Core.Vault.GbBankAccountListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.Vault.GbBankAccount]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.Vault.GbBankAccount]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.Vault.GbBankAccount]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.Vault.GbBankAccount]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.Vault.GbBankAccount]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.Vault.GbBankAccount]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.Vault.GbBankAccount]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.Vault.GbBankAccount]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.Vault.GbBankAccount]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M40728_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M40728_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/core/vault/gb_bank_accounts\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M40728_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M40728_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.Vault.GbBankAccount]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.Vault.GbBankAccount]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M40728_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M40728_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.Vault.GbBankAccount]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.Vault.GbBankAccount]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M40728_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M40728_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=799560e7) for method Stripe.V2.Core.Vault.GbBankAccountService:ListAutoPaging(Stripe.V2.Core.Vault.GbBankAccountListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.Vault.GbBankAccount]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=799560e7) for method Stripe.V2.Core.Vault.GbBankAccountService:ListAutoPaging(Stripe.V2.Core.Vault.GbBankAccountListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.Vault.GbBankAccount]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.Internal.SyncViaAsync:Run[System.__Canon,System.Nullable\u00601[int]](System.Func\u00602[System.__Canon,System.Threading.Tasks.ValueTask\u00601[System.Nullable\u00601[int]]],System.__Canon):System.Nullable\u00601[int] (FullOpts)","Category":"same-size","Description":"674 -\u003E 674 bytes (0)","ExtraInfo":null,"Diff":"@@ -80,7 \u002B80,7 @@ G_M23638_IG02:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        mov      r14, rax\n        movzx    rsi, byte  ptr [r14\u002B0x10]\n        mov      dword ptr [rbp-0x24], esi\n@@ -265,7 \u002B265,7 @@ G_M23638_IG26:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n G_M23638_IG27:\n-       mov      edi, 70\n\u002B       mov      edi, 68\n        call     CORINFO_HELP_GETDYNAMIC_NONGCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED2\n        mov      r14, rax\n        mov      esi, dword ptr [rbp-0x24]","Truncated":true,"BaseBytes":674,"DiffBytes":674},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Mapping.ViewGeneration.ViewgenContext:CheckConcurrencyControlTokens():this (FullOpts)","Category":"improvement","Description":"2,342 -\u003E 2,279 bytes (-63)","ExtraInfo":null,"Diff":"@@ -8,13 \u002B8,13 @@\n ; 0 inlinees with PGO data; 78 single block inlinees; 15 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T25] ( 11,  8.50)     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.ViewgenContext\u003E\n-;  V01 loc0         [V01,T32] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityTypeBase\u003E\n-;  V02 loc1         [V02,T39] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n\u002B;  V00 this         [V00,T24] ( 11,  8.50)     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.ViewgenContext\u003E\n\u002B;  V01 loc0         [V01,T31] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityTypeBase\u003E\n\u002B;  V02 loc1         [V02,T38] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n ;* V03 loc2         [V03    ] (  0,  0   )    long  -\u003E  zero-ref    class-hnd exact \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath]\u003E\n ;  V04 loc3         [V04    ] (  7, 13   )  struct (24) [rbp-0x40]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Collections.Generic.HashSet\u00601\u002BEnumerator[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n ;  V05 loc4         [V05,T12] (  8, 16   )     ref  -\u003E  [rbp-0x68]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmMember\u003E\n-;  V06 loc5         [V06,T58] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u003CSystem.String\u003E\n\u002B;  V06 loc5         [V06,T57] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u003CSystem.String\u003E\n ;* V07 loc6         [V07    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n ;* V08 loc7         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper\u003E\n ;* V09 loc8         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath]\u003E\n@@ -22,18 \u002B22,18 @@\n ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V12 tmp1         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath]\u003E\n ;  V13 tmp2         [V13,T03] (  4, 32   )     ref  -\u003E  [rbp-0x70]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath\u003E\n-;  V14 tmp3         [V14,T69] (  2,  0   )     ref  -\u003E  r15         class-hnd exact \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n-;  V15 tmp4         [V15,T50] (  8,  0   )     ref  -\u003E  r14         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.ErrorLog\u002BRecord\u003E\n\u002B;  V14 tmp3         [V14,T68] (  2,  0   )     ref  -\u003E  r15         class-hnd exact \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n\u002B;  V15 tmp4         [V15,T49] (  8,  0   )     ref  -\u003E  r14         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.ErrorLog\u002BRecord\u003E\n ;  V16 tmp5         [V16,T13] (  2, 16   )     ref  -\u003E  rax         class-hnd \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberRestriction,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath]\u003E\n ;* V17 tmp6         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impSpillLclRefs\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolExpression\u002B\u003Cget_MemberRestrictions\u003Ed__35\u003E\n ;* V18 tmp7         [V18    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;  V19 tmp8         [V19,T21] (  4, 14   )     ref  -\u003E  [rbp-0x78] \n ;  V20 tmp9         [V20,T02] (  5, 32   )     ref  -\u003E  [rbp-0x80]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath]\u003E\n-;  V21 tmp10        [V21,T48] (  9,  0   )     ref  -\u003E  r15         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Text.StringBuilder\u003E\n-;  V22 tmp11        [V22,T70] (  2,  0   )     ref  -\u003E  r14         class-hnd exact \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n-;  V23 tmp12        [V23,T59] (  3,  0   )     ref  -\u003E  r14         class-hnd exact \u0022NewArr temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper[]\u003E\n-;  V24 tmp13        [V24,T71] (  2,  0   )     ref  -\u003E  r15         class-hnd exact \u0022impSpillLclRefs\u0022 \u003CSystem.String\u003E\n-;  V25 tmp14        [V25,T60] (  3,  0   )     ref  -\u003E  r13         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.ErrorLog\u002BRecord\u003E\n\u002B;  V21 tmp10        [V21,T47] (  9,  0   )     ref  -\u003E  r15         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Text.StringBuilder\u003E\n\u002B;  V22 tmp11        [V22,T69] (  2,  0   )     ref  -\u003E  r14         class-hnd exact \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n\u002B;  V23 tmp12        [V23,T58] (  3,  0   )     ref  -\u003E  r14         class-hnd exact \u0022NewArr temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper[]\u003E\n\u002B;  V24 tmp13        [V24,T70] (  2,  0   )     ref  -\u003E  r15         class-hnd exact \u0022impSpillLclRefs\u0022 \u003CSystem.String\u003E\n\u002B;  V25 tmp14        [V25,T59] (  3,  0   )     ref  -\u003E  r13         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.ErrorLog\u002BRecord\u003E\n ;  V26 tmp15        [V26,T11] (  5, 20   )     ref  -\u003E  [rbp-0x88]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberRestriction,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath]\u003E\n ;* V27 tmp16        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySetBase\u003E\n ;* V28 tmp17        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath\u002BComparer\u003E\n@@ -41,69 \u002B41,69 @@\n ;* V30 tmp19        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V31 tmp20        [V31    ] (  0,  0   )    long  -\u003E  zero-ref   \n ;* V32 tmp21        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V33 tmp22        [V33,T38] (  2,  4   )     ref  -\u003E  r12         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath\u002BComparer\u003E\n\u002B;  V33 tmp22        [V33,T37] (  2,  4   )     ref  -\u003E  r12         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath\u002BComparer\u003E\n ;* V34 tmp23        [V34    ] (  0,  0   )    long  -\u003E  zero-ref   \n-;  V35 tmp24        [V35,T41] (  2,  2   )     ref  -\u003E  [rbp-0x90]  spill-single-def\n-;  V36 tmp25        [V36,T42] (  2,  2   )     ref  -\u003E  r12        \n-;  V37 tmp26        [V37,T33] (  3,  6   )     ref  -\u003E  [rbp-0x98]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath]\u003E\n-;  V38 tmp27        [V38,T34] (  3,  6   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.__Canon]\u003E\n\u002B;  V35 tmp24        [V35,T40] (  2,  2   )     ref  -\u003E  [rbp-0x90]  spill-single-def\n\u002B;  V36 tmp25        [V36,T41] (  2,  2   )     ref  -\u003E  r12        \n\u002B;  V37 tmp26        [V37,T32] (  3,  6   )     ref  -\u003E  [rbp-0x98]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath]\u003E\n\u002B;  V38 tmp27        [V38,T33] (  3,  6   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.__Canon]\u003E\n ;* V39 tmp28        [V39    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.HashSet\u00601\u002BEnumerator[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n-;  V40 tmp29        [V40,T51] (  5,  0   )     ref  -\u003E  r12         class-hnd exact \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n-;  V41 tmp30        [V41,T72] (  2,  0   )     ref  -\u003E  r14         class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V42 tmp31        [V42,T73] (  2,  0   )     ref  -\u003E  r13         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySetBase\u003E\n-;  V43 tmp32        [V43,T74] (  2,  0   )     ref  -\u003E  r13         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper]\u003E\n\u002B;  V40 tmp29        [V40,T50] (  5,  0   )     ref  -\u003E  r12         class-hnd exact \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n\u002B;  V41 tmp30        [V41,T71] (  2,  0   )     ref  -\u003E  r14         class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n... diff truncated; middle omitted ...\n\u002BG_M14749_IG13:\n\u002B       mov      gword ptr [rbp-0xD0], rcx\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0xE0], rax\n\u002B       mov      gword ptr [rbp-0xD8], rax\n        mov      rdi, rax\n-       mov      rsi, gword ptr [rbp-0xD0]\n-       mov      rdx, gword ptr [rbp-0xD8]\n\u002B       mov      rsi, gword ptr [rbp-0xC8]\n\u002B       mov      rdx, gword ptr [rbp-0xD0]\n        mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Generic.HashSet\u00601[System.__Canon]:.ctor(System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Collections.Generic.IEqualityComparer\u00601[System.__Canon]):this\n        call     [rcx]System.Collections.Generic.HashSet\u00601[System.__Canon]:.ctor(System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Collections.Generic.IEqualityComparer\u00601[System.__Canon]):this\n        mov      rax, gword ptr [rbp-0x80]\n        lea      rdi, bword ptr [rax\u002B0x08]\n-       mov      rsi, gword ptr [rbp-0xE0]\n\u002B       mov      rsi, gword ptr [rbp-0xD8]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rax, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rax\u002B0x08]\n@@ -396,17 \u002B376,17 @@ G_M14749_IG16:\n        mov      edx, dword ptr [rcx\u002B0x28]\n        sub      edx, dword ptr [rcx\u002B0x30]\n        test     edx, edx\n-       jg       G_M14749_IG27\n\u002B       jg       G_M14749_IG24\n        cmp      r14d, dword ptr [r15\u002B0x14]\n-       mov      rsi, qword ptr [rbp-0x60]\n-       jne      G_M14749_IG32\n\u002B       mov      rdx, qword ptr [rbp-0x60]\n\u002B       jne      G_M14749_IG29\n \t\t\t\t\t\t;; size=139 bbWeight=4 PerfScore 132.00\n-G_M14749_IG17:\n-       cmp      esi, dword ptr [r15\u002B0x10]\n\u002BG_M14749_IG14:\n\u002B       cmp      edx, dword ptr [r15\u002B0x10]\n        jb       G_M14749_IG09\n \t\t\t\t\t\t;; size=10 bbWeight=4 PerfScore 12.00\n-G_M14749_IG18:\n-       add      rsp, 200\n\u002BG_M14749_IG15:\n\u002B       add      rsp, 184\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -415,13 \u002B395,13 @@ G_M14749_IG18:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M14749_IG19:\n\u002BG_M14749_IG16:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M14749_IG03\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M14749_IG20:\n\u002BG_M14749_IG17:\n        mov      rdi, gword ptr [rbp-0x68]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x48]\n@@ -482,17 \u002B462,17 @@ G_M14749_IG20:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdx, gword ptr [r14\u002B0x10]\n \t\t\t\t\t\t;; size=273 bbWeight=0 PerfScore 0.00\n-G_M14749_IG21:\n\u002BG_M14749_IG18:\n        cmp      dword ptr [rdx\u002B0x10], 0\n-       jne      SHORT G_M14749_IG22\n\u002B       jne      SHORT G_M14749_IG19\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        int3     \n \t\t\t\t\t\t;; size=19 bbWeight=0 PerfScore 0.00\n-G_M14749_IG22:\n\u002BG_M14749_IG19:\n        mov      rdx, gword ptr [rdx\u002B0x08]\n        cmp      dword ptr [rdx\u002B0x08], 0\n-       jbe      G_M14749_IG33\n\u002B       jbe      G_M14749_IG30\n        mov      rdx, gword ptr [rdx\u002B0x10]\n        mov      rdx, gword ptr [rdx\u002B0x18]\n        mov      r13, gword ptr [rdx\u002B0x08]\n@@ -527,7 \u002B507,7 @@ G_M14749_IG22:\n        mov      rax, 0xD1FFAB1E      ; code for System.String:IsNullOrWhiteSpace(System.String):bool\n        call     [rax]System.String:IsNullOrWhiteSpace(System.String):bool\n        test     eax, eax\n-       je       SHORT G_M14749_IG24\n\u002B       je       SHORT G_M14749_IG21\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -537,14 \u002B517,14 @@ G_M14749_IG22:\n        mov      rsi, rax\n        mov      rdi, rbx\n \t\t\t\t\t\t;; size=243 bbWeight=0 PerfScore 0.00\n-G_M14749_IG23:\n\u002BG_M14749_IG20:\n        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentException:.ctor(System.String):this\n        call     [rax]System.ArgumentException:.ctor(System.String):this\n        mov      rdi, rbx\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=21 bbWeight=0 PerfScore 0.00\n-G_M14749_IG24:\n\u002BG_M14749_IG21:\n        lea      rdi, bword ptr [r15\u002B0x08]\n        mov      rsi, gword ptr [rbp-0xA0]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -565,18 \u002B545,18 @@ G_M14749_IG24:\n        call     [rax]System.Data.Entity.Core.Mapping.ViewGeneration.Utils.ExceptionHelpers:ThrowMappingException(System.Data.Entity.Core.Mapping.ViewGeneration.Structures.ErrorLog\u002BRecord,System.Data.Entity.Core.Mapping.ViewGeneration.ConfigViewGenerator)\n        int3     \n \t\t\t\t\t\t;; size=86 bbWeight=0 PerfScore 0.00\n-G_M14749_IG25:\n\u002BG_M14749_IG22:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M14749_IG26:\n\u002BG_M14749_IG23:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M14749_IG27:\n\u002BG_M14749_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.Text.StringBuilder\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -613,35 \u002B593,35 @@ G_M14749_IG27:\n        call     [rax]System.Data.Entity.Resources.EntityRes:GetString(System.String,System.Object[]):System.String\n        mov      rsi, rax\n        test     rsi, rsi\n-       je       SHORT G_M14749_IG29\n\u002B       je       SHORT G_M14749_IG26\n        mov      edx, dword ptr [rsi\u002B0x08]\n \t\t\t\t\t\t;; size=181 bbWeight=0 PerfScore 0.00\n-G_M14749_IG28:\n\u002BG_M14749_IG25:\n        add      rsi, 12\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:Append(byref,int):this\n        call     [rax]System.Text.StringBuilder:Append(byref,int):this\n \t\t\t\t\t\t;; size=19 bbWeight=0 PerfScore 0.00\n-G_M14749_IG29:\n\u002BG_M14749_IG26:\n        mov      rsi, 0xD1FFAB1E\n        mov      r14, gword ptr [r15\u002B0x08]\n        mov      r13d, dword ptr [r15\u002B0x18]\n        lea      edi, [r13\u002B0x01]\n        cmp      dword ptr [r14\u002B0x08], edi\n-       jb       SHORT G_M14749_IG30\n\u002B       jb       SHORT G_M14749_IG27\n        movsxd   rdi, r13d\n        mov      word  ptr [r14\u002B2*rdi\u002B0x10], 10\n        inc      r13d\n        mov      dword ptr [r15\u002B0x18], r13d\n-       jmp      SHORT G_M14749_IG31\n\u002B       jmp      SHORT G_M14749_IG28\n \t\t\t\t\t\t;; size=48 bbWeight=0 PerfScore 0.00\n-G_M14749_IG30:\n\u002BG_M14749_IG27:\n        mov      rdi, r15\n        mov      edx, 1\n        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this\n        call     [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this\n \t\t\t\t\t\t;; size=20 bbWeight=0 PerfScore 0.00\n-G_M14749_IG31:\n\u002BG_M14749_IG28:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:ToString():System.String:this\n        call     [rax]System.Text.StringBuilder:ToString():System.String:this\n@@ -651,7 \u002B631,7 @@ G_M14749_IG31:\n        call     CORINFO_HELP_NEWARR_1_PTR\n        mov      r14, rax\n        lea      rdi, bword ptr [r14\u002B0x10]\n-       mov      rsi, gword ptr [rbp-0xE8]\n\u002B       mov      rsi, gword ptr [rbp-0xE0]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Mapping.ViewGeneration.Structures.ErrorLog\u002BRecord\n        call     CORINFO_HELP_NEWSFAST\n@@ -680,15 \u002B660,15 @@ G_M14749_IG31:\n        call     [rax]System.Data.Entity.Core.Mapping.ViewGeneration.Utils.ExceptionHelpers:ThrowMappingException(System.Data.Entity.Core.Mapping.ViewGeneration.Structures.ErrorLog\u002BRecord,System.Data.Entity.Core.Mapping.ViewGeneration.ConfigViewGenerator)\n        int3     \n \t\t\t\t\t\t;; size=189 bbWeight=0 PerfScore 0.00\n-G_M14749_IG32:\n\u002BG_M14749_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M14749_IG33:\n\u002BG_M14749_IG30:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 2342, prolog size 45, PerfScore 725.96, instruction count 481, allocated bytes for code 2342 (MethodHash=fed0c662) for method System.Data.Entity.Core.Mapping.ViewGeneration.ViewgenContext:CheckConcurrencyControlTokens():this (FullOpts)\n\u002B; Total bytes of code 2279, prolog size 45, PerfScore 688.46, instruction count 467, allocated bytes for code 2279 (MethodHash=fed0c662) for method System.Data.Entity.Core.Mapping.ViewGeneration.ViewgenContext:CheckConcurrencyControlTokens():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":2342,"DiffBytes":2279},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[byte]:Aggregate[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[byte,System.Numerics.Vector\u00601[float]]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n... diff truncated; middle omitted ...\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M5057_IG26\n\u002B       je       SHORT G_M5057_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M5057_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M5057_IG26:\n\u002BG_M5057_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M5057_IG27:\n\u002BG_M5057_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M5057_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M5057_IG28:\n\u002BG_M5057_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M5057_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M5057_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M5057_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M5057_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M5057_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M5057_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M5057_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M5057_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M5057_IG31\n\u002B       je       SHORT G_M5057_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M5057_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M5057_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M5057_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M5057_IG32\n\u002B       je       SHORT G_M5057_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M5057_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M5057_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M5057_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M5057_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateAggregateToCollectionResultCursor[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M5057_IG33:\n\u002BG_M5057_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M5057_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M5057_IG34:\n\u002BG_M5057_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M5057_IG35:\n\u002BG_M5057_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M5057_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M5057_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M5057_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M5057_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M5057_IG37\n\u002B       je       SHORT G_M5057_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M5057_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M5057_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M5057_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M5057_IG38\n\u002B       je       SHORT G_M5057_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M5057_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M5057_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M5057_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M5057_IG39:\n\u002BG_M5057_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M5057_IG40:\n\u002BG_M5057_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M5057_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M5057_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M5057_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M5057_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M5057_IG42\n\u002B       je       SHORT G_M5057_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M5057_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M5057_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M5057_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M5057_IG43\n\u002B       je       SHORT G_M5057_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M5057_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M5057_IG43:\n\u002BG_M5057_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M5057_IG44:\n\u002BG_M5057_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=11f3ec3e) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:Aggregate[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=11f3ec3e) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:Aggregate[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Core.Vault.UsBankAccountService:ListAutoPaging(Stripe.V2.Core.Vault.UsBankAccountListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.Vault.UsBankAccount]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.Core.Vault.UsBankAccountService:ListAutoPaging(Stripe.V2.Core.Vault.UsBankAccountListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.Vault.UsBankAccount]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Core.Vault.UsBankAccountService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Core.Vault.UsBankAccountListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Core.Vault.UsBankAccountListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.Vault.UsBankAccount]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.Vault.UsBankAccount]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.Vault.UsBankAccount]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.Vault.UsBankAccount]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.Vault.UsBankAccount]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.Vault.UsBankAccount]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.Vault.UsBankAccount]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.Vault.UsBankAccount]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.Vault.UsBankAccount]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M13915_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M13915_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/core/vault/us_bank_accounts\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M13915_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M13915_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.Vault.UsBankAccount]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.Vault.UsBankAccount]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M13915_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M13915_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.Vault.UsBankAccount]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Core.Vault.UsBankAccount]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M13915_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M13915_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=7365c9a4) for method Stripe.V2.Core.Vault.UsBankAccountService:ListAutoPaging(Stripe.V2.Core.Vault.UsBankAccountListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.Vault.UsBankAccount]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=7365c9a4) for method Stripe.V2.Core.Vault.UsBankAccountService:ListAutoPaging(Stripe.V2.Core.Vault.UsBankAccountListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Core.Vault.UsBankAccount]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.Internal.SyncViaAsync:Run[byte,System.Nullable\u00601[int]](System.Func\u00602[byte,System.Threading.Tasks.ValueTask\u00601[System.Nullable\u00601[int]]],byte):System.Nullable\u00601[int] (FullOpts)","Category":"same-size","Description":"675 -\u003E 675 bytes (0)","ExtraInfo":null,"Diff":"@@ -79,7 \u002B79,7 @@ G_M62042_IG02:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        mov      r14, rax\n        movzx    rdx, byte  ptr [r14\u002B0x10]\n        mov      dword ptr [rbp-0x24], edx\n@@ -264,7 \u002B264,7 @@ G_M62042_IG26:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n G_M62042_IG27:\n-       mov      edi, 70\n\u002B       mov      edi, 68\n        call     CORINFO_HELP_GETDYNAMIC_NONGCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED2\n        mov      r14, rax\n        mov      edx, dword ptr [rbp-0x24]","Truncated":true,"BaseBytes":675,"DiffBytes":675},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Metadata.Edm.EdmModelSemanticValidationRules\u002B\u003C\u003Ec:\u003C.cctor\u003Eb__52_3(System.Data.Entity.Core.Metadata.Edm.EdmModelValidationContext,System.Data.Entity.Core.Metadata.Edm.EntityContainer):this (FullOpts)","Category":"improvement","Description":"2,130 -\u003E 2,067 bytes (-63)","ExtraInfo":null,"Diff":"@@ -20,35 \u002B20,35 @@\n ;* V09 loc6         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op \u003CSystem.Collections.Generic.KeyValuePair\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSet,System.Data.Entity.Core.Metadata.Edm.EntitySet]\u003E\n ;* V10 loc7         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.KeyValuePair\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSet,System.Data.Entity.Core.Metadata.Edm.EntitySet]\u003E\n ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V12 tmp1         [V12,T50] (  3,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Collections.Generic.KeyValuePair\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSet,System.Data.Entity.Core.Metadata.Edm.EntitySet]]\u003E\n-;  V13 tmp2         [V13,T51] (  3,  6   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Collections.Generic.KeyValuePair\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSet,System.Data.Entity.Core.Metadata.Edm.EntitySet]]\u003E\n\u002B;  V12 tmp1         [V12,T49] (  3,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Collections.Generic.KeyValuePair\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSet,System.Data.Entity.Core.Metadata.Edm.EntitySet]]\u003E\n\u002B;  V13 tmp2         [V13,T50] (  3,  6   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Collections.Generic.KeyValuePair\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSet,System.Data.Entity.Core.Metadata.Edm.EntitySet]]\u003E\n ;* V14 tmp3         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmModelSemanticValidationRules\u002B\u003C\u003Ec__DisplayClass52_0\u003E\n ;* V15 tmp4         [V15    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.KeyValuePair\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSet,System.Data.Entity.Core.Metadata.Edm.EntitySet]\u003E\n ;* V16 tmp5         [V16    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.KeyValuePair\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSet,System.Data.Entity.Core.Metadata.Edm.EntitySet]\u003E\n ;  V17 tmp6         [V17,T01] (  4, 32   )     ref  -\u003E  [rbp-0x60]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Collections.Generic.KeyValuePair\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSet,System.Data.Entity.Core.Metadata.Edm.EntitySet],bool]\u003E\n ;  V18 tmp7         [V18,T02] (  4, 32   )     ref  -\u003E  [rbp-0x68]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Collections.Generic.KeyValuePair\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSet,System.Data.Entity.Core.Metadata.Edm.EntitySet],bool]\u003E\n-;  V19 tmp8         [V19,T09] (  3, 24   )     ref  -\u003E  [rbp-0x70]  class-hnd exact spill-single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Collections.Generic.KeyValuePair\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSet,System.Data.Entity.Core.Metadata.Edm.EntitySet]\u003E\n\u002B;  V19 tmp8         [V19,T08] (  3, 24   )     ref  -\u003E  [rbp-0x70]  class-hnd exact spill-single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Collections.Generic.KeyValuePair\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSet,System.Data.Entity.Core.Metadata.Edm.EntitySet]\u003E\n ;  V20 tmp9         [V20,T03] (  4, 32   )     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Collections.Generic.KeyValuePair\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSet,System.Data.Entity.Core.Metadata.Edm.EntitySet]\u003E\n-;  V21 tmp10        [V21,T10] (  3, 24   )     ref  -\u003E  [rbp-0x80]  class-hnd exact spill-single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Collections.Generic.KeyValuePair\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSet,System.Data.Entity.Core.Metadata.Edm.EntitySet]\u003E\n\u002B;  V21 tmp10        [V21,T09] (  3, 24   )     ref  -\u003E  [rbp-0x80]  class-hnd exact spill-single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Collections.Generic.KeyValuePair\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSet,System.Data.Entity.Core.Metadata.Edm.EntitySet]\u003E\n ;  V22 tmp11        [V22,T04] (  4, 32   )     ref  -\u003E  [rbp-0x88]  class-hnd exact spill-single-def \u0022Single-def Box Helper\u0022 \u003CSystem.Collections.Generic.KeyValuePair\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSet,System.Data.Entity.Core.Metadata.Edm.EntitySet]\u003E\n-;  V23 tmp12        [V23,T38] (  2,  8   )     ref  -\u003E  [rbp-0x90]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V24 tmp13        [V24,T39] (  2,  8   )     ref  -\u003E  [rbp-0x98]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V25 tmp14        [V25,T40] (  2,  8   )     ref  -\u003E  [rbp-0xA0]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V26 tmp15        [V26,T41] (  2,  8   )     ref  -\u003E  [rbp-0xA8]  class-hnd exact spill-single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n-;  V27 tmp16        [V27,T42] (  2,  8   )     ref  -\u003E  [rbp-0xB0]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V28 tmp17        [V28,T43] (  2,  8   )     ref  -\u003E  [rbp-0xB8]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V29 tmp18        [V29,T44] (  2,  8   )     ref  -\u003E  [rbp-0xC0]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V30 tmp19        [V30,T45] (  2,  8   )     ref  -\u003E  [rbp-0xC8]  class-hnd exact spill-single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n-;  V31 tmp20        [V31,T60] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSet]\u003E\n\u002B;  V23 tmp12        [V23,T37] (  2,  8   )     ref  -\u003E  [rbp-0x90]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V24 tmp13        [V24,T38] (  2,  8   )     ref  -\u003E  [rbp-0x98]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V25 tmp14        [V25,T39] (  2,  8   )     ref  -\u003E  [rbp-0xA0]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V26 tmp15        [V26,T40] (  2,  8   )     ref  -\u003E  [rbp-0xA8]  class-hnd exact spill-single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n\u002B;  V27 tmp16        [V27,T41] (  2,  8   )     ref  -\u003E  [rbp-0xB0]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V28 tmp17        [V28,T42] (  2,  8   )     ref  -\u003E  [rbp-0xB8]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V29 tmp18        [V29,T43] (  2,  8   )     ref  -\u003E  [rbp-0xC0]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V30 tmp19        [V30,T44] (  2,  8   )     ref  -\u003E  [rbp-0xC8]  class-hnd exact spill-single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n\u002B;  V31 tmp20        [V31,T59] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSet]\u003E\n ;* V32 tmp21        [V32    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601\u002BEnumerator[System.Data.Entity.Core.Metadata.Edm.AssociationSet]\u003E\n ;* V33 tmp22        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IList\u00601[System.__Canon]\u003E\n-;  V34 tmp23        [V34,T37] (  3,  8   )     ref  -\u003E  [rbp-0xD0]  class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySet\u003E\n\u002B;  V34 tmp23        [V34,T36] (  3,  8   )     ref  -\u003E  [rbp-0xD0]  class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySet\u003E\n ;* V35 tmp24        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationSetEnd\u003E\n-;  V36 tmp25        [V36,T07] (  4, 28   )     ref  -\u003E  [rbp-0xD8]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n-;  V37 tmp26        [V37    ] (  2,  4   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V38 tmp27        [V38,T29] (  4, 10   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationSetEnd\u003E\n-;  V39 tmp28        [V39,T22] (  4, 12   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n-;  V40 tmp29        [V40,T19] (  2, 16   )     ref  -\u003E  [rbp-0xE0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySet\u003E\n\u002B;  V36 tmp25        [V36,T10] (  3, 24   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n... diff truncated; middle omitted ...\n        cmp      dword ptr [r8\u002B0x08], r9d\n-       ja       SHORT G_M36631_IG22\n\u002B       ja       SHORT G_M36631_IG19\n        mov      rsi, rax\n        mov      rdx, rcx\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]]:AddWithResize(System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]):this\n        call     [rax]System.Collections.Generic.List\u00601[System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]]:AddWithResize(System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]):this\n-       jmp      G_M36631_IG28\n\u002B       jmp      G_M36631_IG25\n \t\t\t\t\t\t;; size=66 bbWeight=2 PerfScore 44.00\n-G_M36631_IG22:\n\u002BG_M36631_IG19:\n        lea      edi, [r9\u002B0x01]\n        mov      dword ptr [r12\u002B0x10], edi\n        mov      edi, r9d\n        shl      rdi, 4\n        lea      rdx, bword ptr [r8\u002Brdi\u002B0x10]\n-       mov      bword ptr [rbp-0x168], rdx\n\u002B       mov      bword ptr [rbp-0x160], rdx\n        mov      rdi, rdx\n        mov      rsi, rax\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, bword ptr [rbp-0x168]\n\u002B       mov      rdi, bword ptr [rbp-0x160]\n        lea      rdi, bword ptr [rdi\u002B0x08]\n-       mov      rsi, gword ptr [rbp-0x158]\n\u002B       mov      rsi, gword ptr [rbp-0x150]\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M36631_IG28\n\u002B       jmp      G_M36631_IG25\n \t\t\t\t\t\t;; size=67 bbWeight=2 PerfScore 22.50\n-G_M36631_IG23:\n-       mov      rax, gword ptr [rbp-0x140]\n\u002BG_M36631_IG20:\n\u002B       mov      rax, gword ptr [rbp-0x138]\n        mov      rsi, gword ptr [rax\u002B0x30]\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Metadata.Edm.RelationshipType\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rcx]CORINFO_HELP_CHKCASTCLASS\n        mov      rdi, rax\n        test     rdi, rdi\n-       je       SHORT G_M36631_IG26\n\u002B       je       SHORT G_M36631_IG23\n \t\t\t\t\t\t;; size=41 bbWeight=2 PerfScore 16.00\n-G_M36631_IG24:\n\u002BG_M36631_IG21:\n        mov      rcx, 0xD1FFAB1E      ; System.Data.Entity.Core.Metadata.Edm.AssociationType\n        cmp      qword ptr [rdi], rcx\n-       je       SHORT G_M36631_IG26\n\u002B       je       SHORT G_M36631_IG23\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 3.25\n-G_M36631_IG25:\n\u002BG_M36631_IG22:\n        mov      rsi, rax\n        mov      rdi, rcx\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        mov      rdi, rax\n \t\t\t\t\t\t;; size=21 bbWeight=0.50 PerfScore 2.00\n-G_M36631_IG26:\n\u002BG_M36631_IG23:\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.AssociationType:get_TargetEnd():System.Data.Entity.Core.Metadata.Edm.AssociationEndMember:this\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.Data.Entity.Core.Metadata.Edm.AssociationType:get_TargetEnd():System.Data.Entity.Core.Metadata.Edm.AssociationEndMember:this\n        mov      rax, gword ptr [rax\u002B0x30]\n        mov      gword ptr [rbp-0x90], rax\n-       mov      rdi, gword ptr [rbp-0x140]\n\u002B       mov      rdi, gword ptr [rbp-0x138]\n        mov      rcx, gword ptr [rdi\u002B0x28]\n        mov      gword ptr [rbp-0x98], rcx\n-       mov      rdi, gword ptr [rbp-0x128]\n\u002B       mov      rdi, gword ptr [rbp-0x120]\n        mov      rdx, gword ptr [rdi\u002B0x28]\n        mov      gword ptr [rbp-0xA0], rdx\n-       mov      rdi, gword ptr [rbp-0x148]\n\u002B       mov      rdi, gword ptr [rbp-0x140]\n        mov      rsi, qword ptr [rdi]\n        mov      rsi, qword ptr [rsi\u002B0x48]\n        call     [rsi\u002B0x20]System.Data.Entity.Core.Metadata.Edm.EntitySetBase:get_Name():System.String:this\n@@ -523,59 \u002B503,59 @@ G_M36631_IG26:\n        mov      rcx, qword ptr [rbx]\n        mov      rcx, qword ptr [rcx\u002B0x48]\n        call     [rcx\u002B0x28]System.Data.Entity.Core.Metadata.Edm.EntityContainer:get_Name():System.String:this\n-       mov      gword ptr [rbp-0x110], rax\n\u002B       mov      gword ptr [rbp-0x108], rax\n        mov      rdi, 0xD1FFAB1E      ; System.Object[]\n        mov      esi, 5\n        call     CORINFO_HELP_NEWARR_1_PTR\n-       mov      gword ptr [rbp-0x108], rax\n\u002B       mov      gword ptr [rbp-0x100], rax\n        lea      rdi, bword ptr [rax\u002B0x10]\n        mov      rsi, gword ptr [rbp-0x90]\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rax, gword ptr [rbp-0x108]\n\u002B       mov      rax, gword ptr [rbp-0x100]\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, gword ptr [rbp-0x98]\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rax, gword ptr [rbp-0x108]\n\u002B       mov      rax, gword ptr [rbp-0x100]\n        lea      rdi, bword ptr [rax\u002B0x20]\n        mov      rsi, gword ptr [rbp-0xA0]\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rax, gword ptr [rbp-0x108]\n\u002B       mov      rax, gword ptr [rbp-0x100]\n        lea      rdi, bword ptr [rax\u002B0x28]\n        mov      rsi, gword ptr [rbp-0xA8]\n        call     CORINFO_HELP_ASSIGN_REF\n \t\t\t\t\t\t;; size=217 bbWeight=2 PerfScore 98.00\n-G_M36631_IG27:\n-       mov      rax, gword ptr [rbp-0x108]\n\u002BG_M36631_IG24:\n\u002B       mov      rax, gword ptr [rbp-0x100]\n        lea      rdi, bword ptr [rax\u002B0x30]\n-       mov      rsi, gword ptr [rbp-0x110]\n-       call     CORINFO_HELP_ASSIGN_REF\n        mov      rsi, gword ptr [rbp-0x108]\n\u002B       call     CORINFO_HELP_ASSIGN_REF\n\u002B       mov      rsi, gword ptr [rbp-0x100]\n        mov      rdi, 0xD1FFAB1E      ; \u0027EdmModel_Validator_Semantic_SimilarRelationshipEnd\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Resources.EntityRes:GetString(System.String,System.Object[]):System.String\n        call     [rax]System.Data.Entity.Resources.EntityRes:GetString(System.String,System.Object[]):System.String\n-       mov      gword ptr [rbp-0x120], rax\n\u002B       mov      gword ptr [rbp-0x118], rax\n        cmp      byte  ptr [r15], r15b\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Metadata.Edm.DataModelErrorEventArgs\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x118], rax\n\u002B       mov      gword ptr [rbp-0x110], rax\n        lea      rdi, bword ptr [rax\u002B0x10]\n-       mov      rsi, gword ptr [rbp-0x120]\n\u002B       mov      rsi, gword ptr [rbp-0x118]\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rax, gword ptr [rbp-0x118]\n\u002B       mov      rax, gword ptr [rbp-0x110]\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      rsi, rsi\n-       mov      rdx, gword ptr [rbp-0x118]\n\u002B       mov      rdx, gword ptr [rbp-0x110]\n        mov      gword ptr [rdx\u002B0x08], rsi\n        mov      rax, gword ptr [r15\u002B0x08]\n        test     rax, rax\n-       je       SHORT G_M36631_IG28\n\u002B       je       SHORT G_M36631_IG25\n        mov      rsi, r15\n        mov      rdi, gword ptr [rax\u002B0x10]\n        call     [rax\u002B0x18]System.EventHandler\u00601[System.__Canon]:Invoke(System.Object,System.__Canon):this\n \t\t\t\t\t\t;; size=151 bbWeight=2 PerfScore 58.50\n-G_M36631_IG28:\n\u002BG_M36631_IG25:\n        mov      rdi, r13\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n@@ -584,8 \u002B564,8 @@ G_M36631_IG28:\n        mov      dword ptr [rbp-0x44], edi\n        ja       G_M36631_IG04\n \t\t\t\t\t\t;; size=30 bbWeight=4 PerfScore 27.00\n-G_M36631_IG29:\n-       add      rsp, 328\n\u002BG_M36631_IG26:\n\u002B       add      rsp, 312\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -594,18 \u002B574,18 @@ G_M36631_IG29:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M36631_IG30:\n\u002BG_M36631_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.Collections.Generic.KeyValuePair\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSet,System.Data.Entity.Core.Metadata.Edm.EntitySet]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M36631_IG03\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M36631_IG31:\n\u002BG_M36631_IG28:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 2130, prolog size 41, PerfScore 1033.08, instruction count 430, allocated bytes for code 2130 (MethodHash=4c8770e8) for method System.Data.Entity.Core.Metadata.Edm.EdmModelSemanticValidationRules\u002B\u003C\u003Ec:\u003C.cctor\u003Eb__52_3(System.Data.Entity.Core.Metadata.Edm.EdmModelValidationContext,System.Data.Entity.Core.Metadata.Edm.EntityContainer):this (FullOpts)\n\u002B; Total bytes of code 2067, prolog size 41, PerfScore 995.58, instruction count 416, allocated bytes for code 2067 (MethodHash=4c8770e8) for method System.Data.Entity.Core.Metadata.Edm.EdmModelSemanticValidationRules\u002B\u003C\u003Ec:\u003C.cctor\u003Eb__52_3(System.Data.Entity.Core.Metadata.Edm.EdmModelValidationContext,System.Data.Entity.Core.Metadata.Edm.EntityContainer):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":2130,"DiffBytes":2067},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[byte]:Aggregate[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[byte,byte]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[byte]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[byte]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[byte]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[byte]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[byte]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V69 tmp59        [V69,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 8.75\n-G_M47048_IG25:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M47048_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M47048_IG26\n\u002B       je       SHORT G_M47048_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M47048_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M47048_IG26:\n\u002BG_M47048_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M47048_IG27:\n\u002BG_M47048_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M47048_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M47048_IG28:\n\u002BG_M47048_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M47048_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M47048_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M47048_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M47048_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M47048_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M47048_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M47048_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M47048_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M47048_IG31\n\u002B       je       SHORT G_M47048_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M47048_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M47048_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M47048_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M47048_IG32\n\u002B       je       SHORT G_M47048_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M47048_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M47048_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M47048_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M47048_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateAggregateToCollectionResultCursor[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[byte],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[byte]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M47048_IG33:\n\u002BG_M47048_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M47048_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M47048_IG34:\n\u002BG_M47048_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M47048_IG35:\n\u002BG_M47048_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M47048_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M47048_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M47048_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M47048_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M47048_IG37\n\u002B       je       SHORT G_M47048_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M47048_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M47048_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M47048_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M47048_IG38\n\u002B       je       SHORT G_M47048_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M47048_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M47048_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M47048_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M47048_IG39:\n\u002BG_M47048_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M47048_IG40:\n\u002BG_M47048_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M47048_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M47048_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M47048_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M47048_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M47048_IG42\n\u002B       je       SHORT G_M47048_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M47048_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M47048_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M47048_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M47048_IG43\n\u002B       je       SHORT G_M47048_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M47048_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M47048_IG43:\n\u002BG_M47048_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M47048_IG44:\n\u002BG_M47048_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=349a4837) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:Aggregate[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=349a4837) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:Aggregate[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Extend.WorkflowRunService:ListAutoPaging(Stripe.V2.Extend.WorkflowRunListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Extend.WorkflowRun]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.Extend.WorkflowRunService:ListAutoPaging(Stripe.V2.Extend.WorkflowRunListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Extend.WorkflowRun]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Extend.WorkflowRunService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Extend.WorkflowRunListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Extend.WorkflowRunListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Extend.WorkflowRun]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Extend.WorkflowRun]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Extend.WorkflowRun]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Extend.WorkflowRun]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Extend.WorkflowRun]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Extend.WorkflowRun]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Extend.WorkflowRun]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Extend.WorkflowRun]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Extend.WorkflowRun]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M62601_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M62601_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/extend/workflow_runs\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M62601_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M62601_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Extend.WorkflowRun]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Extend.WorkflowRun]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M62601_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M62601_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Extend.WorkflowRun]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Extend.WorkflowRun]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M62601_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M62601_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=02b00b76) for method Stripe.V2.Extend.WorkflowRunService:ListAutoPaging(Stripe.V2.Extend.WorkflowRunListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Extend.WorkflowRun]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=02b00b76) for method Stripe.V2.Extend.WorkflowRunService:ListAutoPaging(Stripe.V2.Extend.WorkflowRunListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Extend.WorkflowRun]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.Internal.SyncViaAsync:Run[double,System.Nullable\u00601[int]](System.Func\u00602[double,System.Threading.Tasks.ValueTask\u00601[System.Nullable\u00601[int]]],double):System.Nullable\u00601[int] (FullOpts)","Category":"same-size","Description":"670 -\u003E 670 bytes (0)","ExtraInfo":null,"Diff":"@@ -77,7 \u002B77,7 @@ G_M20677_IG02:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        mov      r15, rax\n        movzx    rsi, byte  ptr [r15\u002B0x10]\n        mov      dword ptr [rbp-0x2C], esi\n@@ -262,7 \u002B262,7 @@ G_M20677_IG26:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n G_M20677_IG27:\n-       mov      edi, 70\n\u002B       mov      edi, 68\n        call     CORINFO_HELP_GETDYNAMIC_NONGCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED2\n        mov      r15, rax\n        mov      esi, dword ptr [rbp-0x2C]","Truncated":true,"BaseBytes":670,"DiffBytes":670},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Query.InternalTrees.AggregateOp:.ctor(System.Data.Entity.Core.Metadata.Edm.EdmFunction,bool):this (FullOpts)","Category":"improvement","Description":"184 -\u003E 121 bytes (-63)","ExtraInfo":null,"Diff":"@@ -1,88 \u002B1,67 @@\n ; Assembly listing for method System.Data.Entity.Core.Query.InternalTrees.AggregateOp:.ctor(System.Data.Entity.Core.Metadata.Edm.EdmFunction,bool):this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 8 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T00] (  6,  6   )     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.Core.Query.InternalTrees.AggregateOp\u003E\n-;  V01 arg1         [V01,T02] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmFunction\u003E\n\u002B;  V01 arg1         [V01,T01] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmFunction\u003E\n ;  V02 arg2         [V02,T03] (  3,  3   )   ubyte  -\u003E  r14         single-def\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V04 tmp1         [V04,T01] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V05 tmp2         [V05    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V06 tmp3         [V06,T06] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n-;  V07 tmp4         [V07,T05] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V04 tmp1         [V04,T02] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V05 tmp2         [V05    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V06 tmp3         [V06,T05] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n ;  V08 tmp5         [V08,T04] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.TypeUsage\u003E\n ;\n-; Lcl frame size = 16\n\u002B; Lcl frame size = 8\n \n G_M31954_IG01:\n        push     rbp\n        push     r15\n        push     r14\n-       push     r13\n        push     rbx\n-       sub      rsp, 16\n-       lea      rbp, [rsp\u002B0x30]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x20]\n        mov      rbx, rdi\n        mov      r15, rsi\n        mov      r14d, edx\n-\t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 6.50\n\u002B\t\t\t\t\t\t;; size=21 bbWeight=1 PerfScore 6.25\n G_M31954_IG02:\n-       mov      r13, gword ptr [r15\u002B0x48]\n-       test     r13, r13\n-       je       G_M31954_IG07\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n\u002B       mov      rsi, gword ptr [r15\u002B0x48]\n\u002B       test     rsi, rsi\n        je       SHORT G_M31954_IG04\n-\t\t\t\t\t\t;; size=43 bbWeight=1 PerfScore 8.25\n-G_M31954_IG03:\n-       lea      rsi, [rbp-0x28]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M31954_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M31954_IG04:\n-       lea      rdx, [rbp-0x28]\n-       mov      rsi, r13\n\u002B       lea      rdx, [rbp-0x20]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.FunctionParameter](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter],byref):System.Data.Entity.Core.Metadata.Edm.FunctionParameter\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M31954_IG05:\n        mov      rsi, gword ptr [rax\u002B0x28]\n        mov      dword ptr [rbx\u002B0x08], 29\n        lea      rdi, bword ptr [rbx\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x18]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      byte  ptr [rbx\u002B0x20], r14b\n-\t\t\t\t\t\t;; size=36 bbWeight=1 PerfScore 7.25\n-G_M31954_IG06:\n-       add      rsp, 16\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=1 PerfScore 14.50\n\u002BG_M31954_IG03:\n\u002B       add      rsp, 8\n        pop      rbx\n-       pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n-G_M31954_IG07:\n\u002B\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n\u002BG_M31954_IG04:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 184, prolog size 17, PerfScore 32.75, instruction count 49, allocated bytes for code 184 (MethodHash=6a5f832d) for method System.Data.Entity.Core.Query.InternalTrees.AggregateOp:.ctor(System.Data.Entity.Core.Metadata.Edm.EdmFunction,bool):this (FullOpts)\n\u002B; Total bytes of code 121, prolog size 12, PerfScore 24.00, instruction count 34, allocated bytes for code 121 (MethodHash=6a5f832d) for method System.Data.Entity.Core.Query.InternalTrees.AggregateOp:.ctor(System.Data.Entity.Core.Metadata.Edm.EdmFunction,bool):this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":184,"DiffBytes":121},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[byte]:Aggregate[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[byte,double]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[double]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[double]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[double]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[double]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[double]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V69 tmp59        [V69,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 8.75\n-G_M29911_IG25:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M29911_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M29911_IG26\n\u002B       je       SHORT G_M29911_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M29911_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M29911_IG26:\n\u002BG_M29911_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M29911_IG27:\n\u002BG_M29911_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M29911_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M29911_IG28:\n\u002BG_M29911_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M29911_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M29911_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M29911_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M29911_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M29911_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M29911_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M29911_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M29911_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M29911_IG31\n\u002B       je       SHORT G_M29911_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M29911_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M29911_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M29911_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M29911_IG32\n\u002B       je       SHORT G_M29911_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M29911_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M29911_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M29911_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M29911_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateAggregateToCollectionResultCursor[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[double],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[double]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M29911_IG33:\n\u002BG_M29911_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M29911_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M29911_IG34:\n\u002BG_M29911_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M29911_IG35:\n\u002BG_M29911_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M29911_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M29911_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M29911_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M29911_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M29911_IG37\n\u002B       je       SHORT G_M29911_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M29911_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M29911_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M29911_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M29911_IG38\n\u002B       je       SHORT G_M29911_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M29911_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M29911_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M29911_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M29911_IG39:\n\u002BG_M29911_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M29911_IG40:\n\u002BG_M29911_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M29911_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M29911_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M29911_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M29911_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M29911_IG42\n\u002B       je       SHORT G_M29911_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M29911_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M29911_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M29911_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M29911_IG43\n\u002B       je       SHORT G_M29911_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M29911_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M29911_IG43:\n\u002BG_M29911_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M29911_IG44:\n\u002BG_M29911_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=e1728b28) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:Aggregate[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=e1728b28) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:Aggregate[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Extend.WorkflowService:ListAutoPaging(Stripe.V2.Extend.WorkflowListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Extend.Workflow]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.Extend.WorkflowService:ListAutoPaging(Stripe.V2.Extend.WorkflowListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Extend.Workflow]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Extend.WorkflowService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Extend.WorkflowListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Extend.WorkflowListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Extend.Workflow]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Extend.Workflow]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Extend.Workflow]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Extend.Workflow]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Extend.Workflow]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Extend.Workflow]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Extend.Workflow]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Extend.Workflow]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Extend.Workflow]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M32448_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M32448_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/extend/workflows\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M32448_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M32448_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Extend.Workflow]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Extend.Workflow]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M32448_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M32448_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Extend.Workflow]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Extend.Workflow]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M32448_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M32448_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=a153813f) for method Stripe.V2.Extend.WorkflowService:ListAutoPaging(Stripe.V2.Extend.WorkflowListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Extend.Workflow]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=a153813f) for method Stripe.V2.Extend.WorkflowService:ListAutoPaging(Stripe.V2.Extend.WorkflowListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Extend.Workflow]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.Internal.SyncViaAsync:Run[int,System.Nullable\u00601[int]](System.Func\u00602[int,System.Threading.Tasks.ValueTask\u00601[System.Nullable\u00601[int]]],int):System.Nullable\u00601[int] (FullOpts)","Category":"same-size","Description":"674 -\u003E 674 bytes (0)","ExtraInfo":null,"Diff":"@@ -79,7 \u002B79,7 @@ G_M58691_IG02:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        mov      r14, rax\n        movzx    rsi, byte  ptr [r14\u002B0x10]\n        mov      dword ptr [rbp-0x24], esi\n@@ -264,7 \u002B264,7 @@ G_M58691_IG26:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n G_M58691_IG27:\n-       mov      edi, 70\n\u002B       mov      edi, 68\n        call     CORINFO_HELP_GETDYNAMIC_NONGCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED2\n        mov      r14, rax\n        mov      esi, dword ptr [rbp-0x24]","Truncated":true,"BaseBytes":674,"DiffBytes":674},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Query.InternalTrees.Command:CreateAggregateOp(System.Data.Entity.Core.Metadata.Edm.EdmFunction,bool):System.Data.Entity.Core.Query.InternalTrees.AggregateOp:this (FullOpts)","Category":"improvement","Description":"203 -\u003E 140 bytes (-63)","ExtraInfo":null,"Diff":"@@ -1,92 \u002B1,71 @@\n ; Assembly listing for method System.Data.Entity.Core.Query.InternalTrees.Command:CreateAggregateOp(System.Data.Entity.Core.Metadata.Edm.EdmFunction,bool):System.Data.Entity.Core.Query.InternalTrees.AggregateOp:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;* V00 this         [V00    ] (  0,  0   )     ref  -\u003E  zero-ref    this class-hnd single-def \u003CSystem.Data.Entity.Core.Query.InternalTrees.Command\u003E\n-;  V01 arg1         [V01,T02] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmFunction\u003E\n\u002B;  V01 arg1         [V01,T01] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmFunction\u003E\n ;  V02 arg2         [V02,T03] (  3,  3   )   ubyte  -\u003E  r15         single-def\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T00] (  6, 12   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Query.InternalTrees.AggregateOp\u003E\n-;  V05 tmp2         [V05,T01] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V06 tmp3         [V06    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V07 tmp4         [V07,T06] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n-;  V08 tmp5         [V08,T05] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V05 tmp2         [V05,T02] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V06 tmp3         [V06    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V07 tmp4         [V07,T05] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n\u002B;* V08 tmp5         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n ;  V09 tmp6         [V09,T04] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.TypeUsage\u003E\n ;\n-; Lcl frame size = 16\n\u002B; Lcl frame size = 8\n \n G_M54716_IG01:\n        push     rbp\n        push     r15\n        push     r14\n-       push     r13\n        push     rbx\n-       sub      rsp, 16\n-       lea      rbp, [rsp\u002B0x30]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x20]\n        mov      rbx, rsi\n        mov      r15d, edx\n-\t\t\t\t\t\t;; size=23 bbWeight=1 PerfScore 6.25\n\u002B\t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 6.00\n G_M54716_IG02:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Query.InternalTrees.AggregateOp\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n-       mov      r13, gword ptr [rbx\u002B0x48]\n-       test     r13, r13\n-       je       G_M54716_IG07\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n\u002B       mov      rsi, gword ptr [rbx\u002B0x48]\n\u002B       test     rsi, rsi\n        je       SHORT G_M54716_IG04\n-\t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 9.75\n-G_M54716_IG03:\n-       lea      rsi, [rbp-0x28]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M54716_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M54716_IG04:\n-       lea      rdx, [rbp-0x28]\n-       mov      rsi, r13\n\u002B       lea      rdx, [rbp-0x20]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.FunctionParameter](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter],byref):System.Data.Entity.Core.Metadata.Edm.FunctionParameter\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M54716_IG05:\n        mov      rsi, gword ptr [rax\u002B0x28]\n        mov      dword ptr [r14\u002B0x08], 29\n        lea      rdi, bword ptr [r14\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      byte  ptr [r14\u002B0x20], r15b\n        mov      rax, r14\n-\t\t\t\t\t\t;; size=40 bbWeight=1 PerfScore 7.50\n-G_M54716_IG06:\n-       add      rsp, 16\n\u002B\t\t\t\t\t\t;; size=93 bbWeight=1 PerfScore 16.25\n\u002BG_M54716_IG03:\n\u002B       add      rsp, 8\n        pop      rbx\n-       pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n-G_M54716_IG07:\n\u002B\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n\u002BG_M54716_IG04:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 203, prolog size 17, PerfScore 34.25, instruction count 52, allocated bytes for code 203 (MethodHash=150d2a43) for method System.Data.Entity.Core.Query.InternalTrees.Command:CreateAggregateOp(System.Data.Entity.Core.Metadata.Edm.EdmFunction,bool):System.Data.Entity.Core.Query.InternalTrees.AggregateOp:this (FullOpts)\n\u002B; Total bytes of code 140, prolog size 12, PerfScore 25.50, instruction count 37, allocated bytes for code 140 (MethodHash=150d2a43) for method System.Data.Entity.Core.Query.InternalTrees.Command:CreateAggregateOp(System.Data.Entity.Core.Metadata.Edm.EdmFunction,bool):System.Data.Entity.Core.Query.InternalTrees.AggregateOp:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":203,"DiffBytes":140},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[byte]:Aggregate[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[byte,int]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[int]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[int]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[int]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[int]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[int]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V69 tmp59        [V69,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 8.75\n-G_M59025_IG25:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M59025_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M59025_IG26\n\u002B       je       SHORT G_M59025_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M59025_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M59025_IG26:\n\u002BG_M59025_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M59025_IG27:\n\u002BG_M59025_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M59025_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M59025_IG28:\n\u002BG_M59025_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M59025_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M59025_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M59025_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M59025_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M59025_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M59025_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M59025_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M59025_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M59025_IG31\n\u002B       je       SHORT G_M59025_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M59025_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M59025_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M59025_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M59025_IG32\n\u002B       je       SHORT G_M59025_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M59025_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M59025_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M59025_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M59025_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateAggregateToCollectionResultCursor[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[int],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[int]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M59025_IG33:\n\u002BG_M59025_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M59025_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M59025_IG34:\n\u002BG_M59025_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M59025_IG35:\n\u002BG_M59025_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M59025_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M59025_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M59025_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M59025_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M59025_IG37\n\u002B       je       SHORT G_M59025_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M59025_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M59025_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M59025_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M59025_IG38\n\u002B       je       SHORT G_M59025_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M59025_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M59025_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M59025_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M59025_IG39:\n\u002BG_M59025_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M59025_IG40:\n\u002BG_M59025_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M59025_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M59025_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M59025_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M59025_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M59025_IG42\n\u002B       je       SHORT G_M59025_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M59025_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M59025_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M59025_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M59025_IG43\n\u002B       je       SHORT G_M59025_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M59025_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M59025_IG43:\n\u002BG_M59025_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M59025_IG44:\n\u002BG_M59025_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=7e60196e) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:Aggregate[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=7e60196e) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:Aggregate[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Iam.ActivityLogService:ListAutoPaging(Stripe.V2.Iam.ActivityLogListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Iam.ActivityLog]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.Iam.ActivityLogService:ListAutoPaging(Stripe.V2.Iam.ActivityLogListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Iam.ActivityLog]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Iam.ActivityLogService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Iam.ActivityLogListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Iam.ActivityLogListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Iam.ActivityLog]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Iam.ActivityLog]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Iam.ActivityLog]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Iam.ActivityLog]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Iam.ActivityLog]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Iam.ActivityLog]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Iam.ActivityLog]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Iam.ActivityLog]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Iam.ActivityLog]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M34777_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M34777_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/iam/activity_logs\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M34777_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M34777_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Iam.ActivityLog]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Iam.ActivityLog]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M34777_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M34777_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Iam.ActivityLog]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Iam.ActivityLog]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M34777_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M34777_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=6c537826) for method Stripe.V2.Iam.ActivityLogService:ListAutoPaging(Stripe.V2.Iam.ActivityLogListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Iam.ActivityLog]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=6c537826) for method Stripe.V2.Iam.ActivityLogService:ListAutoPaging(Stripe.V2.Iam.ActivityLogListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Iam.ActivityLog]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.Internal.SyncViaAsync:Run[long,System.Nullable\u00601[int]](System.Func\u00602[long,System.Threading.Tasks.ValueTask\u00601[System.Nullable\u00601[int]]],long):System.Nullable\u00601[int] (FullOpts)","Category":"same-size","Description":"674 -\u003E 674 bytes (0)","ExtraInfo":null,"Diff":"@@ -79,7 \u002B79,7 @@ G_M13658_IG02:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        mov      r14, rax\n        movzx    rsi, byte  ptr [r14\u002B0x10]\n        mov      dword ptr [rbp-0x24], esi\n@@ -264,7 \u002B264,7 @@ G_M13658_IG26:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n G_M13658_IG27:\n-       mov      edi, 70\n\u002B       mov      edi, 68\n        call     CORINFO_HELP_GETDYNAMIC_NONGCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED2\n        mov      r14, rax\n        mov      esi, dword ptr [rbp-0x24]","Truncated":true,"BaseBytes":674,"DiffBytes":674},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Mapping.StorageMappingItemCollection:FindInterestingFunctionMappingMembers(System.Data.Entity.Core.Mapping.EntityTypeModificationFunctionMapping,int,byref) (FullOpts)","Category":"improvement","Description":"649 -\u003E 587 bytes (-62)","ExtraInfo":null,"Diff":"@@ -8,57 \u002B8,58 @@\n ; 0 inlinees with PGO data; 6 single block inlinees; 5 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T11] (  4,  3   )     ref  -\u003E  rdi         class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.EntityTypeModificationFunctionMapping\u003E\n-;  V01 arg1         [V01,T12] (  3,  3   )     int  -\u003E  rsi         single-def\n-;  V02 arg2         [V02,T06] (  4,  6.50)   byref  -\u003E  rbx         single-def\n-;  V03 loc0         [V03,T05] (  6,  8.50)     ref  -\u003E  [rbp-0x28]  class-hnd EH-live spill-single-def \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]\u003E\n-;  V04 loc1         [V04,T08] (  2,  8   )     ref  -\u003E  rax         class-hnd \u003CSystem.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding\u003E\n\u002B;  V00 arg0         [V00,T10] (  4,  3   )     ref  -\u003E  rdi         class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.EntityTypeModificationFunctionMapping\u003E\n\u002B;  V01 arg1         [V01,T11] (  3,  3   )     int  -\u003E  rsi         single-def\n\u002B;  V02 arg2         [V02,T05] (  4,  6.50)   byref  -\u003E  rbx         single-def\n\u002B;  V03 loc0         [V03,T04] (  6,  8.50)     ref  -\u003E  [rbp-0x30]  class-hnd EH-live single-def \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]\u003E\n\u002B;  V04 loc1         [V04,T07] (  2,  8   )     ref  -\u003E  rax         class-hnd \u003CSystem.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding\u003E\n ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V06 tmp1         [V06,T15] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,bool]\u003E\n-;  V07 tmp2         [V07,T16] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]\u003E\n\u002B;  V06 tmp1         [V06,T14] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,bool]\u003E\n\u002B;  V07 tmp2         [V07,T15] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]\u003E\n ;* V08 tmp3         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V09 tmp4         [V09,T13] (  4,  2   )     ref  -\u003E  rdx        \n-;  V10 tmp5         [V10,T00] (  7, 48   )     ref  -\u003E  r15         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Object\u003E\n-;  V11 tmp6         [V11,T09] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,bool]\u003E\n-;  V12 tmp7         [V12,T17] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Object\u003E\n-;  V13 tmp8         [V13,T18] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n-;  V14 tmp9         [V14,T19] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]\u003E\n\u002B;  V09 tmp4         [V09,T12] (  4,  2   )     ref  -\u003E  rdx        \n\u002B;  V10 tmp5         [V10,T00] (  7, 48   )     ref  -\u003E  r14         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Object\u003E\n\u002B;  V11 tmp6         [V11,T08] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,bool]\u003E\n\u002B;  V12 tmp7         [V12,T16] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Object\u003E\n\u002B;  V13 tmp8         [V13,T17] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n\u002B;  V14 tmp9         [V14,T18] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]\u003E\n ;* V15 tmp10        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V16 tmp11        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V17 tmp12        [V17,T14] (  4,  2   )     ref  -\u003E  rdx        \n-;  V18 tmp13        [V18,T10] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n\u002B;  V17 tmp12        [V17,T13] (  4,  2   )     ref  -\u003E  rdx        \n\u002B;  V18 tmp13        [V18,T09] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n ;* V19 tmp14        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ModificationFunctionMapping\u003E\n-;  V20 tmp15        [V20,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.StorageMappingItemCollection\u002B\u003C\u003Ec\u003E\n\u002B;  V20 tmp15        [V20,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.StorageMappingItemCollection\u002B\u003C\u003Ec\u003E\n ;* V21 tmp16        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ModificationFunctionMapping\u003E\n-;  V22 tmp17        [V22,T21] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.StorageMappingItemCollection\u002B\u003C\u003Ec\u003E\n\u002B;  V22 tmp17        [V22,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.StorageMappingItemCollection\u002B\u003C\u003Ec\u003E\n ;* V23 tmp18        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ModificationFunctionMemberPath\u003E\n-;  V24 tmp19        [V24,T01] (  4, 28   )     ref  -\u003E  r14         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n-;  V25 tmp20        [V25    ] (  3,  8   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V24 tmp19        [V24,T01] (  3, 24   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n\u002B;  V25 tmp20        [V25    ] (  2,  8   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V26 tmp21        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V27 tmp22        [V27,T07] (  4,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmMember\u003E\n-;  V28 tmp23        [V28,T02] (  4, 12   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n-;  V29 tmp24        [V29,T04] (  3, 10   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmMember[]\u003E\n-;  V30 tmp25        [V30,T03] (  4, 12   )     int  -\u003E  r14         \u0022Inline stloc first use temp\u0022\n\u002B;  V27 tmp22        [V27,T06] (  3,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmMember\u003E\n\u002B;* V28 tmp23        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n\u002B;  V29 tmp24        [V29,T03] (  3, 10   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmMember[]\u003E\n\u002B;  V30 tmp25        [V30,T02] (  4, 12   )     int  -\u003E  r13         \u0022Inline stloc first use temp\u0022\n ;* V31 tmp26        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmMember\u003E\n-;  V32 tmp27        [V32,T22] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V33 tmp28        [V33,T23] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V32 tmp27        [V32,T21] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V33 tmp28        [V33,T22] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 16\n \n G_M9395_IG01:\n        push     rbp\n        push     r15\n        push     r14\n\u002B       push     r13\n        push     rbx\n-       sub      rsp, 24\n\u002B       sub      rsp, 16\n        lea      rbp, [rsp\u002B0x30]\n        xor      eax, eax\n... diff truncated; middle omitted ...\n        call     [r11]System.Collections.Generic.IEnumerable\u00601[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator\u00601[System.__Canon]:this\n-       mov      gword ptr [rbp-0x28], rax\n-\t\t\t\t\t\t;; size=45 bbWeight=0.50 PerfScore 4.12\n\u002B       mov      r15, rax\n\u002B       mov      gword ptr [rbp-0x30], r15\n\u002B\t\t\t\t\t\t;; size=48 bbWeight=0.50 PerfScore 4.25\n G_M9395_IG05:\n-       mov      rdi, rax\n\u002B       mov      rdi, r15\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():bool:this\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n-       je       G_M9395_IG13\n-       mov      rdi, gword ptr [rbp-0x28]\n\u002B       je       G_M9395_IG10\n\u002B       mov      rdi, r15\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEnumerator\u00601[System.__Canon]:get_Current():System.__Canon:this\n        call     [r11]System.Collections.Generic.IEnumerator\u00601[System.__Canon]:get_Current():System.__Canon:this\n-       mov      r15, gword ptr [rbx]\n-       mov      rsi, gword ptr [rax\u002B0x20]\n-       mov      r14, gword ptr [rsi\u002B0x18]\n-       test     r14, r14\n-       je       G_M9395_IG11\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M9395_IG07\n-\t\t\t\t\t\t;; size=91 bbWeight=4 PerfScore 85.00\n-G_M9395_IG06:\n-       lea      rsi, [rbp-0x20]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M9395_IG08\n-\t\t\t\t\t\t;; size=19 bbWeight=2 PerfScore 19.50\n-G_M9395_IG07:\n-       lea      rdx, [rbp-0x20]\n-       mov      rsi, r14\n\u002B       mov      r14, gword ptr [rbx]\n\u002B       mov      rdx, gword ptr [rax\u002B0x20]\n\u002B       mov      rsi, gword ptr [rdx\u002B0x18]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M9395_IG08\n\u002B       lea      rdx, [rbp-0x28]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.Data.Entity.Core.Metadata.Edm.EdmMember](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember],byref):System.Data.Entity.Core.Metadata.Edm.EdmMember\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=2 PerfScore 8.50\n-G_M9395_IG08:\n-       cmp      byte  ptr [rbp-0x20], 0\n-       je       SHORT G_M9395_IG12\n-       inc      dword ptr [r15\u002B0x14]\n-       mov      rdi, gword ptr [r15\u002B0x08]\n-       mov      r14d, dword ptr [r15\u002B0x10]\n-       cmp      dword ptr [rdi\u002B0x08], r14d\n-       ja       SHORT G_M9395_IG10\n-\t\t\t\t\t\t;; size=24 bbWeight=4 PerfScore 48.00\n-G_M9395_IG09:\n-       mov      rdi, r15\n\u002B       cmp      byte  ptr [rbp-0x28], 0\n\u002B       je       SHORT G_M9395_IG09\n\u002B       inc      dword ptr [r14\u002B0x14]\n\u002B       mov      rdi, gword ptr [r14\u002B0x08]\n\u002B       mov      r13d, dword ptr [r14\u002B0x10]\n\u002B       cmp      dword ptr [rdi\u002B0x08], r13d\n\u002B       ja       SHORT G_M9395_IG07\n\u002B\t\t\t\t\t\t;; size=106 bbWeight=4 PerfScore 126.00\n\u002BG_M9395_IG06:\n\u002B       mov      rdi, r14\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n-       mov      rax, gword ptr [rbp-0x28]\n-       jmp      G_M9395_IG05\n-\t\t\t\t\t\t;; size=27 bbWeight=2 PerfScore 13.50\n-G_M9395_IG10:\n-       lea      esi, [r14\u002B0x01]\n-       mov      dword ptr [r15\u002B0x10], esi\n-       mov      esi, r14d\n\u002B       jmp      SHORT G_M9395_IG05\n\u002B\t\t\t\t\t\t;; size=20 bbWeight=2 PerfScore 11.50\n\u002BG_M9395_IG07:\n\u002B       lea      esi, [r13\u002B0x01]\n\u002B       mov      dword ptr [r14\u002B0x10], esi\n\u002B       mov      esi, r13d\n        mov      rdx, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST\n        call     [rax]CORINFO_HELP_ARRADDR_ST\n-       mov      rax, gword ptr [rbp-0x28]\n        jmp      G_M9395_IG05\n-\t\t\t\t\t\t;; size=35 bbWeight=2 PerfScore 16.50\n-G_M9395_IG11:\n\u002B\t\t\t\t\t\t;; size=31 bbWeight=2 PerfScore 14.50\n\u002BG_M9395_IG08:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M9395_IG12:\n\u002BG_M9395_IG09:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M9395_IG13:\n-       mov      rdi, gword ptr [rbp-0x28]\n\u002BG_M9395_IG10:\n\u002B       mov      rdi, r15\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n-       jmp      G_M9395_IG16\n-\t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 3.12\n-G_M9395_IG14:\n\u002B       jmp      G_M9395_IG13\n\u002B\t\t\t\t\t\t;; size=21 bbWeight=0.50 PerfScore 2.75\n\u002BG_M9395_IG11:\n        mov      rbx, gword ptr [rbx]\n        mov      rdi, gword ptr [rdi\u002B0x30]\n        mov      r15, gword ptr [rdi\u002B0x28]\n        mov      rdi, 0xD1FFAB1E      ; data for System.Data.Entity.Core.Mapping.StorageMappingItemCollection\u002B\u003C\u003Ec:\u003C\u003E9__42_0\n        mov      rdx, gword ptr [rdi]\n        test     rdx, rdx\n-       jne      SHORT G_M9395_IG15\n\u002B       jne      SHORT G_M9395_IG12\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,System.Data.Entity.Core.Metadata.Edm.EdmMember]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -193,7 \u002B174,7 @@ G_M9395_IG14:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdx, r14\n \t\t\t\t\t\t;; size=104 bbWeight=0.50 PerfScore 8.88\n-G_M9395_IG15:\n\u002BG_M9395_IG12:\n        mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:Select[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,System.Data.Entity.Core.Metadata.Edm.EdmMember](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding],System.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,System.Data.Entity.Core.Metadata.Edm.EdmMember]):System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:Select[System.__Canon,System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Func\u00602[System.__Canon,System.__Canon]):System.Collections.Generic.IEnumerable\u00601[System.__Canon]\n@@ -204,34 \u002B185,35 @@ G_M9395_IG15:\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddRange(System.Collections.Generic.IEnumerable\u00601[System.__Canon]):this\n \t\t\t\t\t\t;; size=45 bbWeight=0.50 PerfScore 4.75\n-G_M9395_IG16:\n\u002BG_M9395_IG13:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M9395_IG17:\n-       add      rsp, 24\n\u002BG_M9395_IG14:\n\u002B       add      rsp, 16\n        pop      rbx\n\u002B       pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M9395_IG18:\n\u002B\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n\u002BG_M9395_IG15:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M9395_IG19:\n-       cmp      gword ptr [rbp-0x28], 0\n-       je       SHORT G_M9395_IG20\n-       mov      rdi, gword ptr [rbp-0x28]\n\u002BG_M9395_IG16:\n\u002B       cmp      gword ptr [rbp-0x30], 0\n\u002B       je       SHORT G_M9395_IG17\n\u002B       mov      rdi, gword ptr [rbp-0x30]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M9395_IG20:\n\u002BG_M9395_IG17:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M9395_IG21:\n\u002BG_M9395_IG18:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 649, prolog size 24, PerfScore 230.75, instruction count 145, allocated bytes for code 649 (MethodHash=cceadb4c) for method System.Data.Entity.Core.Mapping.StorageMappingItemCollection:FindInterestingFunctionMappingMembers(System.Data.Entity.Core.Mapping.EntityTypeModificationFunctionMapping,int,byref) (FullOpts)\n\u002B; Total bytes of code 587, prolog size 26, PerfScore 193.00, instruction count 133, allocated bytes for code 587 (MethodHash=cceadb4c) for method System.Data.Entity.Core.Mapping.StorageMappingItemCollection:FindInterestingFunctionMappingMembers(System.Data.Entity.Core.Mapping.EntityTypeModificationFunctionMapping,int,byref) (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":649,"DiffBytes":587},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[byte]:Aggregate[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[byte,long]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[long]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[long]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[long]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[long]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[long]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V69 tmp59        [V69,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 8.75\n-G_M7368_IG25:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M7368_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M7368_IG26\n\u002B       je       SHORT G_M7368_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M7368_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M7368_IG26:\n\u002BG_M7368_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M7368_IG27:\n\u002BG_M7368_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M7368_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M7368_IG28:\n\u002BG_M7368_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M7368_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M7368_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M7368_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M7368_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M7368_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M7368_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M7368_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M7368_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M7368_IG31\n\u002B       je       SHORT G_M7368_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M7368_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M7368_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M7368_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M7368_IG32\n\u002B       je       SHORT G_M7368_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M7368_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M7368_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M7368_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M7368_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateAggregateToCollectionResultCursor[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[long],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[long]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M7368_IG33:\n\u002BG_M7368_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M7368_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M7368_IG34:\n\u002BG_M7368_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M7368_IG35:\n\u002BG_M7368_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M7368_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M7368_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M7368_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M7368_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M7368_IG37\n\u002B       je       SHORT G_M7368_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M7368_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M7368_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M7368_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M7368_IG38\n\u002B       je       SHORT G_M7368_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M7368_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M7368_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M7368_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M7368_IG39:\n\u002BG_M7368_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M7368_IG40:\n\u002BG_M7368_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M7368_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M7368_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M7368_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M7368_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M7368_IG42\n\u002B       je       SHORT G_M7368_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M7368_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M7368_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M7368_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M7368_IG43\n\u002B       je       SHORT G_M7368_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M7368_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M7368_IG43:\n\u002BG_M7368_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M7368_IG44:\n\u002BG_M7368_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=61a6e337) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:Aggregate[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=61a6e337) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:Aggregate[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Iam.ApiKeyService:ListAutoPaging(Stripe.V2.Iam.ApiKeyListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Iam.ApiKey]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.Iam.ApiKeyService:ListAutoPaging(Stripe.V2.Iam.ApiKeyListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Iam.ApiKey]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Iam.ApiKeyService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Iam.ApiKeyListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Iam.ApiKeyListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Iam.ApiKey]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Iam.ApiKey]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Iam.ApiKey]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Iam.ApiKey]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Iam.ApiKey]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Iam.ApiKey]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Iam.ApiKey]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Iam.ApiKey]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Iam.ApiKey]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M35551_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M35551_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/iam/api_keys\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M35551_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M35551_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Iam.ApiKey]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Iam.ApiKey]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M35551_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M35551_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Iam.ApiKey]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Iam.ApiKey]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M35551_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M35551_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=ef2e7520) for method Stripe.V2.Iam.ApiKeyService:ListAutoPaging(Stripe.V2.Iam.ApiKeyListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Iam.ApiKey]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=ef2e7520) for method Stripe.V2.Iam.ApiKeyService:ListAutoPaging(Stripe.V2.Iam.ApiKeyListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Iam.ApiKey]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.Internal.SyncViaAsync:Run[short,System.Nullable\u00601[int]](System.Func\u00602[short,System.Threading.Tasks.ValueTask\u00601[System.Nullable\u00601[int]]],short):System.Nullable\u00601[int] (FullOpts)","Category":"same-size","Description":"675 -\u003E 675 bytes (0)","ExtraInfo":null,"Diff":"@@ -79,7 \u002B79,7 @@ G_M31554_IG02:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        mov      r14, rax\n        movzx    rdx, byte  ptr [r14\u002B0x10]\n        mov      dword ptr [rbp-0x24], edx\n@@ -264,7 \u002B264,7 @@ G_M31554_IG26:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n G_M31554_IG27:\n-       mov      edi, 70\n\u002B       mov      edi, 68\n        call     CORINFO_HELP_GETDYNAMIC_NONGCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED2\n        mov      r14, rax\n        mov      edx, dword ptr [rbp-0x24]","Truncated":true,"BaseBytes":675,"DiffBytes":675},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Metadata.Edm.MslXmlSchemaWriter:WriteDbModelElement(System.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping):this (FullOpts)","Category":"improvement","Description":"324 -\u003E 264 bytes (-60)","ExtraInfo":null,"Diff":"@@ -1,129 \u002B1,110 @@\n ; Assembly listing for method System.Data.Entity.Core.Metadata.Edm.MslXmlSchemaWriter:WriteDbModelElement(System.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping):this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 5 single block inlinees; 3 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T00] (  5,  5   )     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.MslXmlSchemaWriter\u003E\n ;  V01 arg1         [V01,T01] (  5,  5   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V03 tmp1         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.String]\u003E\n ;  V04 tmp2         [V04    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V05 tmp3         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EntityContainer]\u003E\n ;  V06 tmp4         [V06    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V07 tmp5         [V07,T08] (  3,  3   )     ref  -\u003E  rax         single-def\n-;  V08 tmp6         [V08,T02] (  4,  7   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.EntityContainerMapping]\u003E\n-;  V09 tmp7         [V09    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V07 tmp5         [V07,T07] (  3,  3   )     ref  -\u003E  rax         single-def\n\u002B;  V08 tmp6         [V08,T02] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.EntityContainerMapping]\u003E\n\u002B;  V09 tmp7         [V09    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V10 tmp8         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V11 tmp9         [V11,T09] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.EntityContainerMapping\u003E\n-;  V12 tmp10        [V12,T07] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.EntityContainerMapping]\u003E\n\u002B;  V11 tmp9         [V11,T08] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.EntityContainerMapping\u003E\n\u002B;* V12 tmp10        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.EntityContainerMapping]\u003E\n ;  V13 tmp11        [V13,T03] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V14 tmp12        [V14,T05] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;  V15 tmp13        [V15,T04] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V16 tmp14        [V16,T06] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 32\n \n G_M65133_IG01:\n        push     rbp\n        push     r15\n        push     rbx\n        sub      rsp, 32\n        lea      rbp, [rsp\u002B0x30]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu  xmmword ptr [rbp-0x28], xmm8\n        xor      eax, eax\n        mov      qword ptr [rbp-0x18], rax\n        mov      rbx, rdi\n        mov      r15, rsi\n \t\t\t\t\t\t;; size=35 bbWeight=1 PerfScore 6.83\n G_M65133_IG02:\n        mov      rdi, gword ptr [r15\u002B0x10]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x18]System.Data.Entity.Core.Metadata.Edm.EdmModel:get_NamespaceNames():System.Collections.Generic.IEnumerable\u00601[System.String]:this\n        mov      rsi, rax\n        lea      rdx, [rbp-0x18]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetSingle[System.String](System.Collections.Generic.IEnumerable\u00601[System.String],byref):System.String\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetSingle[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetSingle[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        mov      rsi, rax\n        lea      rdi, bword ptr [rbx\u002B0x18]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, gword ptr [r15\u002B0x18]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x20]System.Data.Entity.Core.Metadata.Edm.EdmModel:get_Containers():System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EntityContainer]:this\n        mov      rsi, rax\n        lea      rdx, [rbp-0x20]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetSingle[System.Data.Entity.Core.Metadata.Edm.EntityContainer](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EntityContainer],byref):System.Data.Entity.Core.Metadata.Edm.EntityContainer\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetSingle[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetSingle[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        cmp      byte  ptr [rbp-0x20], 0\n-       je       G_M65133_IG07\n\u002B       je       SHORT G_M65133_IG04\n        mov      rdi, rax\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x28]System.Data.Entity.Core.Metadata.Edm.EntityContainer:get_Name():System.String:this\n        mov      rsi, rax\n        lea      rdi, bword ptr [rbx\u002B0x20]\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r15, gword ptr [r15\u002B0x08]\n-       test     r15, r15\n-       je       G_M65133_IG08\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.EntityContainerMapping]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M65133_IG04\n-\t\t\t\t\t\t;; size=176 bbWeight=1 PerfScore 47.50\n-G_M65133_IG03:\n-       lea      rsi, [rbp-0x28]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M65133_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M65133_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M65133_IG05\n        lea      rdx, [rbp-0x28]\n-       mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Mapping.EntityContainerMapping](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.EntityContainerMapping],byref):System.Data.Entity.Core.Mapping.EntityContainerMapping\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M65133_IG05:\n-       cmp      byte  ptr [rbp-0x28], 0\n-       je       SHORT G_M65133_IG07\n-       mov      rdi, rbx\n        mov      rsi, rax\n\u002B       cmp      byte  ptr [rbp-0x28], 0\n\u002B       je       SHORT G_M65133_IG04\n\u002B       mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.MslXmlSchemaWriter:WriteEntityContainerMappingElement(System.Data.Entity.Core.Mapping.EntityContainerMapping):this\n        call     [rax]System.Data.Entity.Core.Metadata.Edm.MslXmlSchemaWriter:WriteEntityContainerMappingElement(System.Data.Entity.Core.Mapping.EntityContainerMapping):this\n        nop      \n-\t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 6.00\n-G_M65133_IG06:\n\u002B\t\t\t\t\t\t;; size=189 bbWeight=1 PerfScore 52.50\n\u002BG_M65133_IG03:\n        add      rsp, 32\n        pop      rbx\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 2.75\n-G_M65133_IG07:\n\u002BG_M65133_IG04:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M65133_IG08:\n\u002BG_M65133_IG05:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 324, prolog size 29, PerfScore 70.08, instruction count 80, allocated bytes for code 324 (MethodHash=8c1f0192) for method System.Data.Entity.Core.Metadata.Edm.MslXmlSchemaWriter:WriteDbModelElement(System.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping):this (FullOpts)\n\u002B; Total bytes of code 264, prolog size 29, PerfScore 62.08, instruction count 67, allocated bytes for code 264 (MethodHash=8c1f0192) for method System.Data.Entity.Core.Metadata.Edm.MslXmlSchemaWriter:WriteDbModelElement(System.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping):this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":324,"DiffBytes":264},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[byte]:Aggregate[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[byte,short]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[short]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[short]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[short]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[short]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[short]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V69 tmp59        [V69,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 8.75\n-G_M43664_IG25:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M43664_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M43664_IG26\n\u002B       je       SHORT G_M43664_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M43664_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M43664_IG26:\n\u002BG_M43664_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M43664_IG27:\n\u002BG_M43664_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M43664_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M43664_IG28:\n\u002BG_M43664_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M43664_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M43664_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M43664_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M43664_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M43664_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M43664_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M43664_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M43664_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M43664_IG31\n\u002B       je       SHORT G_M43664_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M43664_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M43664_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M43664_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M43664_IG32\n\u002B       je       SHORT G_M43664_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M43664_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M43664_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M43664_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M43664_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateAggregateToCollectionResultCursor[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[short],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[short]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M43664_IG33:\n\u002BG_M43664_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M43664_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M43664_IG34:\n\u002BG_M43664_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M43664_IG35:\n\u002BG_M43664_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M43664_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M43664_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M43664_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M43664_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M43664_IG37\n\u002B       je       SHORT G_M43664_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M43664_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M43664_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M43664_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M43664_IG38\n\u002B       je       SHORT G_M43664_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M43664_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M43664_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M43664_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M43664_IG39:\n\u002BG_M43664_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M43664_IG40:\n\u002BG_M43664_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M43664_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M43664_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M43664_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M43664_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M43664_IG42\n\u002B       je       SHORT G_M43664_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M43664_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M43664_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M43664_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M43664_IG43\n\u002B       je       SHORT G_M43664_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M43664_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M43664_IG43:\n\u002BG_M43664_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M43664_IG44:\n\u002BG_M43664_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=245f556f) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:Aggregate[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=245f556f) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:Aggregate[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.MoneyManagement.AdjustmentService:ListAutoPaging(Stripe.V2.MoneyManagement.AdjustmentListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.Adjustment]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.MoneyManagement.AdjustmentService:ListAutoPaging(Stripe.V2.MoneyManagement.AdjustmentListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.Adjustment]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.MoneyManagement.AdjustmentService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.MoneyManagement.AdjustmentListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.MoneyManagement.AdjustmentListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.Adjustment]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.Adjustment]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.Adjustment]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.Adjustment]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.Adjustment]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.Adjustment]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.Adjustment]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.Adjustment]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.Adjustment]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M8921_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M8921_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/money_management/adjustments\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M8921_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M8921_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.Adjustment]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.Adjustment]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M8921_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M8921_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.Adjustment]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.Adjustment]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M8921_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M8921_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=3992dd26) for method Stripe.V2.MoneyManagement.AdjustmentService:ListAutoPaging(Stripe.V2.MoneyManagement.AdjustmentListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.Adjustment]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=3992dd26) for method Stripe.V2.MoneyManagement.AdjustmentService:ListAutoPaging(Stripe.V2.MoneyManagement.AdjustmentListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.Adjustment]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"DistributedLock.Core.dasm","Method":"Medallion.Threading.Internal.SyncViaAsync:get_IsSynchronous():bool (FullOpts)","Category":"same-size","Description":"36 -\u003E 36 bytes (0)","ExtraInfo":null,"Diff":"@@ -1,32 \u002B1,32 @@\n ; Assembly listing for method Medallion.Threading.Internal.SyncViaAsync:get_IsSynchronous():bool (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rsp based frame\n ; partially interruptible\n ; No PGO data\n ; Final local variable assignments\n ;\n ;# V00 OutArgs      [V00    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V01 rat0         [V01,T00] (  2,  4   )    long  -\u003E  rax         \u0022TLS field access\u0022\n ;  V02 rat1         [V02,T01] (  2,  4   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M58350_IG01:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 1.00\n G_M58350_IG02:\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n-       add      rax, 70\n\u002B       add      rax, 68\n        movzx    rax, byte  ptr [rax\u002B0x10]\n \t\t\t\t\t\t;; size=30 bbWeight=1 PerfScore 5.75\n G_M58350_IG03:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n \n ; Total bytes of code 36, prolog size 1, PerfScore 8.00, instruction count 8, allocated bytes for code 36 (MethodHash=f7eb1c11) for method Medallion.Threading.Internal.SyncViaAsync:get_IsSynchronous():bool (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":36,"DiffBytes":36},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration:FindParentTable(System.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping,System.Data.Entity.Core.Metadata.Edm.EntityType,System.Data.Entity.Core.Mapping.EntityTypeMapping,System.Data.Entity.Core.Metadata.Edm.EntityType,bool,int,int,byref):System.Data.Entity.Core.Metadata.Edm.EntityType (FullOpts)","Category":"improvement","Description":"578 -\u003E 518 bytes (-60)","ExtraInfo":null,"Diff":"@@ -8,30 \u002B8,30 @@\n ; 0 inlinees with PGO data; 5 single block inlinees; 3 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T10] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping\u003E\n-;  V01 arg1         [V01,T15] (  3,  2.50)     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n-;  V02 arg2         [V02,T12] (  5,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.EntityTypeMapping\u003E\n-;  V03 arg3         [V03,T14] (  4,  3.50)     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n-;  V04 arg4         [V04,T16] (  3,  2.50)   ubyte  -\u003E  r12         single-def\n-;  V05 arg5         [V05,T17] (  3,  2.50)     int  -\u003E  [rbp-0x2C]  single-def\n-;  V06 arg6         [V06,T20] (  1,  0.50)     int  -\u003E  [rbp\u002B0x10]  single-def\n-;  V07 arg7         [V07,T19] (  2,  1.50)   byref  -\u003E  [rbp\u002B0x18]  single-def\n\u002B;  V00 arg0         [V00,T09] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping\u003E\n\u002B;  V01 arg1         [V01,T13] (  3,  2.50)     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n\u002B;  V02 arg2         [V02,T11] (  5,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.EntityTypeMapping\u003E\n\u002B;  V03 arg3         [V03,T12] (  4,  3.50)     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n\u002B;  V04 arg4         [V04,T14] (  3,  2.50)   ubyte  -\u003E  r12         single-def\n\u002B;  V05 arg5         [V05,T15] (  3,  2.50)     int  -\u003E  [rbp-0x2C]  single-def\n\u002B;  V06 arg6         [V06,T19] (  1,  0.50)     int  -\u003E  [rbp\u002B0x10]  single-def\n\u002B;  V07 arg7         [V07,T18] (  2,  1.50)   byref  -\u003E  [rbp\u002B0x18]  single-def\n ;  V08 loc0         [V08,T08] (  6,  9.50)     ref  -\u003E  [rbp-0x48]  class-hnd \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n ;  V09 loc1         [V09,T01] (  8, 23.50)     ref  -\u003E  r15         class-hnd \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmType\u003E\n ;* V10 loc2         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Data.Entity.Core.Mapping.EntityTypeMapping\u003E\n ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V12 tmp1         [V12,T00] (  4, 28   )     ref  -\u003E  r13         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IList\u00601[System.Data.Entity.Core.Mapping.EntityTypeMapping]\u003E\n ;  V13 tmp2         [V13    ] (  2,  4   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V14 tmp3         [V14,T04] (  5, 12   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.EntityTypeMapping\u003E\n-;  V15 tmp4         [V15,T05] (  4, 12   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.EntityTypeMapping]\u003E\n-;  V16 tmp5         [V16,T03] (  4, 16   )     ref  -\u003E  r14         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\u003E\n-;  V17 tmp6         [V17    ] (  3,  6   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V14 tmp3         [V14,T03] (  5, 12   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.EntityTypeMapping\u003E\n\u002B;  V15 tmp4         [V15,T04] (  4, 12   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.EntityTypeMapping]\u003E\n\u002B;  V16 tmp5         [V16,T05] (  3, 12   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\u003E\n\u002B;  V17 tmp6         [V17    ] (  2,  4   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp7         [V18    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V19 tmp8         [V19,T13] (  3,  6   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.MappingFragment\u003E\n-;  V20 tmp9         [V20,T09] (  4,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\u003E\n\u002B;  V19 tmp8         [V19,T16] (  2,  4   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.MappingFragment\u003E\n\u002B;* V20 tmp9         [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\u003E\n ;* V21 tmp10        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.MappingFragment\u003E\n-;  V22 tmp11        [V22,T18] (  3,  3   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n-;* V23 tmp12        [V23,T11] (  0,  0   )     ref  -\u003E  zero-ref    \u0022argument with side effect\u0022\n\u002B;  V22 tmp11        [V22,T17] (  3,  3   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n\u002B;* V23 tmp12        [V23,T10] (  0,  0   )     ref  -\u003E  zero-ref    \u0022argument with side effect\u0022\n ;  V24 tmp13        [V24,T06] (  3, 12   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V25 rat0         [V25,T02] (  2,  8   )     ref  -\u003E  rsi         \u0022replacement local\u0022\n ;  V26 rat1         [V26,T07] (  3, 10   )    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n@@ -90,7 \u002B90,7 @@ G_M56074_IG05:\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n G_M56074_IG06:\n        mov      r14, gword ptr [rbp-0x48]\n-       jmp      G_M56074_IG25\n\u002B       jmp      G_M56074_IG23\n \t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 1.50\n G_M56074_IG07:\n        cmp      r13, r14\n@@ -98,7 \u002B98,7 @@ G_M56074_IG07:\n \t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 0.62\n G_M56074_IG08:\n        mov      r14, gword ptr [rbp-0x48]\n-       jmp      G_M56074_IG25\n\u002B       jmp      G_M56074_IG23\n \t\t\t\t\t\t;; size=9 bbWeight=0.25 PerfScore 0.75\n G_M56074_IG09:\n        test     r12b, r12b\n@@ -106,7 \u002B106,7 @@ G_M56074_IG09:\n \t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 0.62\n G_M56074_IG10:\n        mov      r14, gword ptr [rbp-0x48]\n-       jmp      G_M56074_IG25\n\u002B       jmp      G_M56074_IG23\n \t\t\t\t\t\t;; size=9 bbWeight=0.25 PerfScore 0.75\n G_M56074_IG11:\n        mov      rdi, r15\n@@ -118,12 \u002B118,12 @@ G_M56074_IG11:\n        mov      rax, qword ptr [rax\u002B0x50]\n        call     [rax\u002B0x10]System.Data.Entity.Core.Metadata.Edm.EdmType:get_BaseType():System.Data.Entity.Core.Metadata.Edm.EdmType:this\n        mov      r15, rax\n-       jmp      G_M56074_IG23\n\u002B       jmp      G_M56074_IG21\n \t\t\t\t\t\t;; size=38 bbWeight=0.50 PerfScore 7.50\n G_M56074_IG12:\n        mov      r14, gword ptr [rbp-0x48]\n        test     r14, r14\n-       jne      G_M56074_IG25\n\u002B       jne      G_M56074_IG23\n \t\t\t\t\t\t;; size=13 bbWeight=4 PerfScore 9.00\n G_M56074_IG13:\n        mov      rsi, r15\n@@ -143,7 \u002B143,7 @@ G_M56074_IG15:\n        call     [rax]System.Data.Entity.ModelConfiguration.Edm.DbDatabaseMappingExtensions:GetEntityTypeMappings(System.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping,System.Data.Entity.Core.Metadata.Edm.EntityType):System.Collections.Generic.IList\u00601[System.Data.Entity.Core.Mapping.EntityTypeMapping]\n        mov      r13, rax\n        test     r13, r13\n-       je       G_M56074_IG27\n\u002B       je       G_M56074_IG25\n        mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.EntityTypeMapping]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n@@ -168,46 \u002B168,29 @@ G_M56074_IG17:\n \t\t\t\t\t\t;; size=29 bbWeight=2 PerfScore 8.50\n G_M56074_IG18:\n        test     rax, rax\n-       je       G_M56074_IG22\n-\t\t\t\t\t\t;; size=9 bbWeight=4 PerfScore 5.00\n\u002B       je       SHORT G_M56074_IG20\n\u002B\t\t\t\t\t\t;; size=5 bbWeight=4 PerfScore 5.00\n G_M56074_IG19:\n        mov      rdi, rax\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax]System.Data.Entity.Core.Mapping.TypeMapping:get_MappingFragments():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.MappingFragment]:this\n-       mov      r14, rax\n-       test     r14, r14\n-       je       G_M56074_IG27\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M56074_IG20\n-       lea      rsi, [rbp-0x40]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M56074_IG21\n-\t\t\t\t\t\t;; size=73 bbWeight=2 PerfScore 47.00\n-G_M56074_IG20:\n\u002B       je       SHORT G_M56074_IG25\n        lea      rdx, [rbp-0x40]\n-       mov      rsi, r14\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Mapping.MappingFragment](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.MappingFragment],byref):System.Data.Entity.Core.Mapping.MappingFragment\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=2 PerfScore 8.50\n-G_M56074_IG21:\n        cmp      byte  ptr [rbp-0x40], 0\n-       je       SHORT G_M56074_IG28\n\u002B       je       SHORT G_M56074_IG26\n        mov      rdi, gword ptr [rax\u002B0x20]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x38]System.Data.Entity.Core.Metadata.Edm.EntitySet:get_ElementType():System.Data.Entity.Core.Metadata.Edm.EntityType:this\n        mov      r14, rax\n-\t\t\t\t\t\t;; size=23 bbWeight=2 PerfScore 22.50\n-G_M56074_IG22:\n\u002B\t\t\t\t\t\t;; size=69 bbWeight=2 PerfScore 48.00\n\u002BG_M56074_IG20:\n        mov      rdi, r15\n        mov      rax, qword ptr [r15]\n        mov      rax, qword ptr [rax\u002B0x50]\n@@ -215,17 \u002B198,17 @@ G_M56074_IG22:\n        mov      r15, rax\n        mov      gword ptr [rbp-0x48], r14\n \t\t\t\t\t\t;; size=20 bbWeight=4 PerfScore 34.00\n-G_M56074_IG23:\n\u002BG_M56074_IG21:\n        test     r15, r15\n        jne      G_M56074_IG12\n \t\t\t\t\t\t;; size=9 bbWeight=4 PerfScore 5.00\n-G_M56074_IG24:\n\u002BG_M56074_IG22:\n        mov      r14, gword ptr [rbp-0x48]\n \t\t\t\t\t\t;; size=4 bbWeight=2 PerfScore 2.00\n-G_M56074_IG25:\n\u002BG_M56074_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M56074_IG26:\n\u002BG_M56074_IG24:\n        add      rsp, 40\n        pop      rbx\n        pop      r12\n@@ -235,17 \u002B218,17 @@ G_M56074_IG26:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M56074_IG27:\n\u002BG_M56074_IG25:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M56074_IG28:\n\u002BG_M56074_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 578, prolog size 29, PerfScore 256.50, instruction count 152, allocated bytes for code 578 (MethodHash=26db24f5) for method System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration:FindParentTable(System.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping,System.Data.Entity.Core.Metadata.Edm.EntityType,System.Data.Entity.Core.Mapping.EntityTypeMapping,System.Data.Entity.Core.Metadata.Edm.EntityType,bool,int,int,byref):System.Data.Entity.Core.Metadata.Edm.EntityType (FullOpts)\n\u002B; Total bytes of code 518, prolog size 29, PerfScore 226.50, instruction count 139, allocated bytes for code 518 (MethodHash=26db24f5) for method System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration:FindParentTable(System.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping,System.Data.Entity.Core.Metadata.Edm.EntityType,System.Data.Entity.Core.Mapping.EntityTypeMapping,System.Data.Entity.Core.Metadata.Edm.EntityType,bool,int,int,byref):System.Data.Entity.Core.Metadata.Edm.EntityType (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":578,"DiffBytes":518},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollection[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,137 -\u003E 1,056 bytes (-81)","ExtraInfo":null,"Diff":"@@ -14,14 \u002B14,14 @@\n ;  V03 arg2         [V03,T05] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[double,System.__Canon]\u003E\n ;  V04 arg3         [V04,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T24] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n\u002B;  V06 loc0         [V06,T23] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n-;  V08 loc2         [V08,T25] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n-;  V09 loc3         [V09,T22] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V08 loc2         [V08,T24] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n\u002B;  V09 loc3         [V09,T21] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V12 tmp2         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V13 tmp3         [V13,T31] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V13 tmp3         [V13,T30] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V14 tmp4         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V15 tmp5         [V15    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V16 tmp6         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n@@ -39,17 \u002B39,17 @@\n ;* V28 tmp18        [V28    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V29 tmp19        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V30 tmp20        [V30    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V31 tmp21        [V31,T23] (  3,  2   )     int  -\u003E  registers  \n-;  V32 tmp22        [V32,T06] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V33 tmp23        [V33    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V34 tmp24        [V34,T20] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V35 tmp25        [V35,T21] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V31 tmp21        [V31,T22] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V32 tmp22        [V32,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V33 tmp23        [V33    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V34 tmp24        [V34,T20] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V37 tmp27        [V37,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V38 tmp28        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V39 tmp29        [V39,T28] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V39 tmp29        [V39,T27] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V41 tmp31        [V41,T19] (  8,  3   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V41 tmp31        [V41,T19] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V42 tmp32        [V42,T07] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V43 tmp33        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V44 tmp34        [V44,T10] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -58,13 \u002B58,13 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;  V50 tmp40        [V50,T16] (  2,  2   )     ref  -\u003E  [rbp-0x90]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V51 tmp41        [V51,T26] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V15.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp42        [V52,T27] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V15.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V50 tmp40        [V50,T16] (  2,  2   )     ref  -\u003E  [rbp-0x88]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V51 tmp41        [V51,T25] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V15.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp42        [V52,T26] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V15.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V53 tmp43        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V22._name (fldOffset=0x0)\u0022 P-DEP\n ;* V54 tmp44        [V54    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V22._value (fldOffset=0x8)\u0022 P-DEP\n-;  V55 tmp45        [V55,T29] (  2,  1   )     ref  -\u003E  rax         \u0022field V23._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V56 tmp46        [V56,T30] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V23._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V55 tmp45        [V55,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V23._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V56 tmp46        [V56,T29] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V23._value (fldOffset=0x8)\u0022 P-INDEP\n ;  V57 tmp47        [V57,T17] (  2,  4   )    long  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V58 tmp48        [V58,T18] (  2,  4   )    long  -\u003E  rsi         \u0022argument with side effect\u0022\n ;  V59 rat0         [V59,T14] (  3,  4   )    long  -\u003E  rdi         \u0022runtime lookup\u0022\n@@ -72,7 \u002B72,7 @@\n ;  V61 rat2         [V61,T15] (  3,  4   )    long  -\u003E  rsi         \u0022runtime lookup\u0022\n ;  V62 rat3         [V62,T09] (  3,  5.60)    long  -\u003E  rsi         \u0022fgMakeTemp is creating a new local variable\u0022\n ;\n-; Lcl frame size = 168\n\u002B; Lcl frame size = 152\n \n G_M55099_IG01:\n        push     rbp\n@@ -81,14 \u002B81,14 @@ G_M55099_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 168\n-       lea      rbp, [rsp\u002B0xD0]\n\u002B       sub      rsp, 152\n\u002B       lea      rbp, [rsp\u002B0xC0]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x78], rax\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        mov      qword ptr [rbp-0x30], rsi\n-       mov      gword ptr [rbp-0x90], r9\n\u002B       mov      gword ptr [rbp-0x88], r9\n        mov      r15, rdi\n        mov      r14, rsi\n        mov      r13, rdx\n@@ -104,7 \u002B104,7 @@ G_M55099_IG02:\n        mov      rdi, qword ptr [r14\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M55099_IG31\n\u002B       je       G_M55099_IG28\n \t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 9.25\n G_M55099_IG03:\n        mov      rsi, r12\n@@ -154,90 \u002B154,70 @@ G_M55099_IG05:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[double,System.__Canon]:Render(MongoDB.Driver.RenderArgs\u00601[double]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]:this\n        mov      r12, rax\n-       mov      rax, gword ptr [r12\u002B0x08]\n-       mov      gword ptr [rbp-0x80], rax\n-       test     rax, rax\n-       je       G_M55099_IG33\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n... diff truncated; middle omitted ...\n\u002BG_M55099_IG15:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M55099_IG20\n\u002B       je       SHORT G_M55099_IG17\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M55099_IG19:\n\u002BG_M55099_IG16:\n        xor      ecx, ecx\n-       jmp      SHORT G_M55099_IG22\n\u002B       jmp      SHORT G_M55099_IG19\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M55099_IG20:\n\u002BG_M55099_IG17:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -245,30 \u002B225,30 @@ G_M55099_IG20:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M55099_IG22\n\u002B       jmp      SHORT G_M55099_IG19\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M55099_IG21:\n\u002BG_M55099_IG18:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M55099_IG22:\n\u002BG_M55099_IG19:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M55099_IG23:\n\u002BG_M55099_IG20:\n        mov      dword ptr [rbp-0x6C], ecx\n        mov      rdi, gword ptr [r12\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M55099_IG34\n\u002B       je       G_M55099_IG31\n        cmp      dword ptr [rbp-0x6C], 0\n-       je       G_M55099_IG34\n\u002B       je       G_M55099_IG31\n        mov      rdi, qword ptr [r14\u002B0x18]\n        mov      rsi, qword ptr [rdi\u002B0x20]\n        test     rsi, rsi\n-       je       G_M55099_IG32\n\u002B       je       G_M55099_IG29\n \t\t\t\t\t\t;; size=56 bbWeight=1 PerfScore 14.75\n-G_M55099_IG24:\n\u002BG_M55099_IG21:\n        mov      rdi, r15\n        mov      rdx, r12\n        mov      rcx, rbx\n@@ -280,13 \u002B260,13 @@ G_M55099_IG24:\n        cmp      byte  ptr [r14], r14b\n        mov      rdi, r15\n        mov      rsi, r13\n-       mov      r9, gword ptr [rbp-0x90]\n\u002B       mov      r9, gword ptr [rbp-0x88]\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 16.25\n-G_M55099_IG25:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=74 bbWeight=1 PerfScore 16.25\n\u002BG_M55099_IG22:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -294,22 \u002B274,22 @@ G_M55099_IG25:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r13\n        mov      rcx, r14\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=64 bbWeight=1 PerfScore 11.25\n-G_M55099_IG26:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M55099_IG29\n-\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 2.00\n-G_M55099_IG27:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n\u002BG_M55099_IG23:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M55099_IG26\n\u002B\t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n\u002BG_M55099_IG24:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M55099_IG28\n\u002B       je       SHORT G_M55099_IG25\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -318,12 \u002B298,12 @@ G_M55099_IG27:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M55099_IG28:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n\u002BG_M55099_IG25:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M55099_IG29\n\u002B       je       SHORT G_M55099_IG26\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -332,12 \u002B312,12 @@ G_M55099_IG28:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M55099_IG29:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n\u002BG_M55099_IG26:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M55099_IG30:\n-       add      rsp, 168\n\u002BG_M55099_IG27:\n\u002B       add      rsp, 152\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -346,7 \u002B326,7 @@ G_M55099_IG30:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M55099_IG31:\n\u002BG_M55099_IG28:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -354,21 \u002B334,21 @@ G_M55099_IG31:\n        mov      rdi, rax\n        jmp      G_M55099_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M55099_IG32:\n\u002BG_M55099_IG29:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M55099_IG24\n\u002B       jmp      G_M55099_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M55099_IG33:\n\u002BG_M55099_IG30:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M55099_IG34:\n\u002BG_M55099_IG31:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -380,16 \u002B360,16 @@ G_M55099_IG34:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M55099_IG35:\n\u002BG_M55099_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M55099_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M55099_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M55099_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M55099_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M55099_IG37\n\u002B       je       SHORT G_M55099_IG34\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -398,12 \u002B378,12 @@ G_M55099_IG36:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M55099_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M55099_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M55099_IG38\n\u002B       je       SHORT G_M55099_IG35\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -412,14 \u002B392,14 @@ G_M55099_IG37:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M55099_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M55099_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M55099_IG39:\n\u002BG_M55099_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1137, prolog size 72, PerfScore 161.80, instruction count 268, allocated bytes for code 1137 (MethodHash=618028c4) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollection[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 1056, prolog size 72, PerfScore 152.42, instruction count 254, allocated bytes for code 1056 (MethodHash=618028c4) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollection[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1137,"DiffBytes":1056},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.MoneyManagement.CurrencyConversionService:ListAutoPaging(Stripe.V2.MoneyManagement.CurrencyConversionListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.CurrencyConversion]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.MoneyManagement.CurrencyConversionService:ListAutoPaging(Stripe.V2.MoneyManagement.CurrencyConversionListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.CurrencyConversion]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.MoneyManagement.CurrencyConversionService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.MoneyManagement.CurrencyConversionListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.MoneyManagement.CurrencyConversionListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.CurrencyConversion]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.CurrencyConversion]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.CurrencyConversion]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.CurrencyConversion]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.CurrencyConversion]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.CurrencyConversion]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.CurrencyConversion]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.CurrencyConversion]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.CurrencyConversion]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M62953_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M62953_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/money_management/currency_conversions\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M62953_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M62953_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.CurrencyConversion]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.CurrencyConversion]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M62953_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M62953_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.CurrencyConversion]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.CurrencyConversion]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M62953_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M62953_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=a6b00a16) for method Stripe.V2.MoneyManagement.CurrencyConversionService:ListAutoPaging(Stripe.V2.MoneyManagement.CurrencyConversionListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.CurrencyConversion]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=a6b00a16) for method Stripe.V2.MoneyManagement.CurrencyConversionService:ListAutoPaging(Stripe.V2.MoneyManagement.CurrencyConversionListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.CurrencyConversion]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper:get_LeftExtent():System.Data.Entity.Core.Metadata.Edm.EntitySetBase:this (FullOpts)","Category":"improvement","Description":"176 -\u003E 117 bytes (-59)","ExtraInfo":null,"Diff":"@@ -1,98 \u002B1,77 @@\n ; Assembly listing for method System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper:get_LeftExtent():System.Data.Entity.Core.Metadata.Edm.EntitySetBase:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 3 single block inlinees; 3 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper\u003E\n\u002B;  V00 this         [V00,T00] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper\u003E\n ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V02 tmp1         [V02,T00] (  4,  7   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n-;  V03 tmp2         [V03    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V02 tmp1         [V02,T01] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n\u002B;  V03 tmp2         [V03    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x10]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V04 tmp3         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V05 tmp4         [V05,T03] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\u003E\n-;  V06 tmp5         [V06,T04] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n-;  V07 tmp6         [V07,T05] (  3,  2   )     ref  -\u003E  rcx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellQuery\u003E\n\u002B;  V05 tmp4         [V05,T03] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\u003E\n\u002B;* V06 tmp5         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n\u002B;  V07 tmp6         [V07,T04] (  3,  2   )     ref  -\u003E  rcx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellQuery\u003E\n ;  V08 tmp7         [V08,T02] (  2,  4   )     int  -\u003E  rcx         \u0022Inlining Arg\u0022\n ;* V09 tmp8         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\u003E\n ;* V10 tmp9         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath\u003E\n ;\n-; Lcl frame size = 16\n\u002B; Lcl frame size = 8\n \n G_M46383_IG01:\n        push     rbp\n-       push     r15\n        push     rbx\n-       sub      rsp, 16\n-       lea      rbp, [rsp\u002B0x20]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x10]\n        mov      rbx, rdi\n-\t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 4.00\n\u002B\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.75\n G_M46383_IG02:\n-       mov      r15, gword ptr [rbx\u002B0x28]\n-       test     r15, r15\n-       je       SHORT G_M46383_IG10\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M46383_IG04\n-\t\t\t\t\t\t;; size=39 bbWeight=1 PerfScore 8.25\n-G_M46383_IG03:\n-       lea      rsi, [rbp-0x18]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M46383_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M46383_IG04:\n-       lea      rdx, [rbp-0x18]\n-       mov      rsi, r15\n\u002B       mov      rsi, gword ptr [rbx\u002B0x28]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M46383_IG07\n\u002B       lea      rdx, [rbp-0x10]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell],byref):System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M46383_IG05:\n-       cmp      byte  ptr [rbp-0x18], 0\n-       je       SHORT G_M46383_IG11\n\u002B       cmp      byte  ptr [rbp-0x10], 0\n\u002B       je       SHORT G_M46383_IG08\n        mov      ecx, dword ptr [rbx\u002B0x38]\n        cmp      byte  ptr [rax], al\n        test     ecx, ecx\n-       jne      SHORT G_M46383_IG07\n-\t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 7.25\n-G_M46383_IG06:\n\u002B       jne      SHORT G_M46383_IG04\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=1 PerfScore 14.50\n\u002BG_M46383_IG03:\n        mov      rcx, gword ptr [rax\u002B0x08]\n-       jmp      SHORT G_M46383_IG08\n\u002B       jmp      SHORT G_M46383_IG05\n \t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 2.00\n-G_M46383_IG07:\n\u002BG_M46383_IG04:\n        mov      rcx, gword ptr [rax\u002B0x10]\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 1.00\n-G_M46383_IG08:\n\u002BG_M46383_IG05:\n        mov      rax, gword ptr [rcx\u002B0x28]\n        mov      rax, gword ptr [rax\u002B0x08]\n \t\t\t\t\t\t;; size=8 bbWeight=1 PerfScore 4.00\n-G_M46383_IG09:\n-       add      rsp, 16\n\u002BG_M46383_IG06:\n\u002B       add      rsp, 8\n        pop      rbx\n-       pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 2.75\n-G_M46383_IG10:\n\u002B\t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.25\n\u002BG_M46383_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M46383_IG11:\n\u002BG_M46383_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 176, prolog size 13, PerfScore 36.25, instruction count 49, allocated bytes for code 176 (MethodHash=cbc04ad0) for method System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper:get_LeftExtent():System.Data.Entity.Core.Metadata.Edm.EntitySetBase:this (FullOpts)\n\u002B; Total bytes of code 117, prolog size 8, PerfScore 27.50, instruction count 34, allocated bytes for code 117 (MethodHash=cbc04ad0) for method System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper:get_LeftExtent():System.Data.Entity.Core.Metadata.Edm.EntitySetBase:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":176,"DiffBytes":117},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[double]:Aggregate[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[double,System.Nullable\u00601[int]]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Nullable\u00601[int]]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n... diff truncated; middle omitted ...\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M44156_IG26\n\u002B       je       SHORT G_M44156_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M44156_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M44156_IG26:\n\u002BG_M44156_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M44156_IG27:\n\u002BG_M44156_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M44156_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M44156_IG28:\n\u002BG_M44156_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M44156_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M44156_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M44156_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M44156_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M44156_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M44156_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M44156_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M44156_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M44156_IG31\n\u002B       je       SHORT G_M44156_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M44156_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M44156_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M44156_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M44156_IG32\n\u002B       je       SHORT G_M44156_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M44156_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M44156_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M44156_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M44156_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateAggregateToCollectionResultCursor[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M44156_IG33:\n\u002BG_M44156_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M44156_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M44156_IG34:\n\u002BG_M44156_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M44156_IG35:\n\u002BG_M44156_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M44156_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M44156_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M44156_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M44156_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M44156_IG37\n\u002B       je       SHORT G_M44156_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M44156_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M44156_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M44156_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M44156_IG38\n\u002B       je       SHORT G_M44156_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M44156_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M44156_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M44156_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M44156_IG39:\n\u002BG_M44156_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M44156_IG40:\n\u002BG_M44156_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M44156_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M44156_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M44156_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M44156_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M44156_IG42\n\u002B       je       SHORT G_M44156_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M44156_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M44156_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M44156_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M44156_IG43\n\u002B       je       SHORT G_M44156_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M44156_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M44156_IG43:\n\u002BG_M44156_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M44156_IG44:\n\u002BG_M44156_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=f05e5383) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:Aggregate[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=f05e5383) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:Aggregate[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.MoneyManagement.DebitDisputeService:ListAutoPaging(Stripe.V2.MoneyManagement.DebitDisputeListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.DebitDispute]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.MoneyManagement.DebitDisputeService:ListAutoPaging(Stripe.V2.MoneyManagement.DebitDisputeListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.DebitDispute]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.MoneyManagement.DebitDisputeService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.MoneyManagement.DebitDisputeListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.MoneyManagement.DebitDisputeListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.DebitDispute]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.DebitDispute]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.DebitDispute]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.DebitDispute]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.DebitDispute]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.DebitDispute]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.DebitDispute]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.DebitDispute]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.DebitDispute]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M62594_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M62594_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/money_management/debit_disputes\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M62594_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M62594_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.DebitDispute]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.DebitDispute]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M62594_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M62594_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.DebitDispute]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.DebitDispute]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M62594_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M62594_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=5a830b7d) for method Stripe.V2.MoneyManagement.DebitDisputeService:ListAutoPaging(Stripe.V2.MoneyManagement.DebitDisputeListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.DebitDispute]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=5a830b7d) for method Stripe.V2.MoneyManagement.DebitDisputeService:ListAutoPaging(Stripe.V2.MoneyManagement.DebitDisputeListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.DebitDispute]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Metadata.Edm.MslXmlSchemaWriter:WriteAssociationParameterBindings(System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]):this (FullOpts)","Category":"improvement","Description":"1,267 -\u003E 1,208 bytes (-59)","ExtraInfo":null,"Diff":"@@ -8,65 \u002B8,65 @@\n ; 0 inlinees with PGO data; 25 single block inlinees; 8 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T07] (  8, 38   )     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.MslXmlSchemaWriter\u003E\n-;  V01 arg1         [V01,T28] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]\u003E\n-;  V02 loc0         [V02,T18] (  6, 13   )     ref  -\u003E  [rbp-0x50]  class-hnd EH-live single-def \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.IGrouping\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd,System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]]\u003E\n-;  V03 loc1         [V03,T10] (  6, 24   )     ref  -\u003E  r15         class-hnd exact \u003CSystem.Data.Entity.Core.Metadata.Edm.MslXmlSchemaWriter\u002B\u003C\u003Ec__DisplayClass27_0\u003E\n-;  V04 loc2         [V04,T19] (  3, 12   )     ref  -\u003E  r14         class-hnd exact \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationSet\u003E\n\u002B;  V00 this         [V00,T06] (  8, 38   )     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.MslXmlSchemaWriter\u003E\n\u002B;  V01 arg1         [V01,T27] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]\u003E\n\u002B;  V02 loc0         [V02,T17] (  6, 13   )     ref  -\u003E  [rbp-0x50]  class-hnd EH-live single-def \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.IGrouping\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd,System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]]\u003E\n\u002B;  V03 loc1         [V03,T09] (  6, 24   )     ref  -\u003E  r15         class-hnd exact \u003CSystem.Data.Entity.Core.Metadata.Edm.MslXmlSchemaWriter\u002B\u003C\u003Ec__DisplayClass27_0\u003E\n\u002B;  V04 loc2         [V04,T18] (  3, 12   )     ref  -\u003E  r14         class-hnd exact \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationSet\u003E\n ;  V05 loc3         [V05,T01] (  6, 56   )     ref  -\u003E  [rbp-0x58]  do-not-enreg[Z] class-hnd EH-live \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]\u003E\n-;  V06 loc4         [V06,T06] (  3, 48   )     ref  -\u003E  r15         class-hnd \u003CSystem.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding\u003E\n\u002B;  V06 loc4         [V06,T05] (  3, 48   )     ref  -\u003E  r15         class-hnd \u003CSystem.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V08 tmp1         [V08,T30] (  2,  4   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,bool]\u003E\n\u002B;  V08 tmp1         [V08,T29] (  2,  4   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,bool]\u003E\n ;* V09 tmp2         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V10 tmp3         [V10,T32] (  4,  3.50)     ref  -\u003E  rdx        \n-;  V11 tmp4         [V11,T31] (  2,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n-;  V12 tmp5         [V12,T25] (  4,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]\u003E\n\u002B;  V10 tmp3         [V10,T31] (  4,  3.50)     ref  -\u003E  rdx        \n\u002B;  V11 tmp4         [V11,T30] (  2,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n\u002B;  V12 tmp5         [V12,T24] (  4,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]\u003E\n ;* V13 tmp6         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V14 tmp7         [V14,T33] (  4,  3   )     ref  -\u003E  r14        \n\u002B;  V14 tmp7         [V14,T32] (  4,  3   )     ref  -\u003E  r14        \n ;* V15 tmp8         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.MslXmlSchemaWriter\u002B\u003C\u003Ec__DisplayClass27_0\u003E\n ;  V16 tmp9         [V16,T02] (  6, 48   )     ref  -\u003E  r13         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Xml.XmlWriter\u003E\n ;  V17 tmp10        [V17,T03] (  6, 48   )     ref  -\u003E  r13         class-hnd \u0022non-inline candidate call\u0022 \u003CSystem.Xml.XmlWriter\u003E\n ;  V18 tmp11        [V18,T04] (  6, 48   )     ref  -\u003E  r13         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Xml.XmlWriter\u003E\n-;  V19 tmp12        [V19,T08] (  4, 32   )     ref  -\u003E  r12         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd,bool]\u003E\n-;  V20 tmp13        [V20,T13] (  2, 16   )     ref  -\u003E  r14         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n-;  V21 tmp14        [V21,T26] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n-;  V22 tmp15        [V22,T27] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,bool]\u003E\n-;  V23 tmp16        [V23,T36] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.MslXmlSchemaWriter\u002B\u003C\u003Ec\u003E\n-;  V24 tmp17        [V24,T37] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.MslXmlSchemaWriter\u002B\u003C\u003Ec\u003E\n\u002B;  V19 tmp12        [V19,T07] (  4, 32   )     ref  -\u003E  r12         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd,bool]\u003E\n\u002B;  V20 tmp13        [V20,T12] (  2, 16   )     ref  -\u003E  r14         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n\u002B;  V21 tmp14        [V21,T25] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n\u002B;  V22 tmp15        [V22,T26] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,bool]\u003E\n\u002B;  V23 tmp16        [V23,T35] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.MslXmlSchemaWriter\u002B\u003C\u003Ec\u003E\n\u002B;  V24 tmp17        [V24,T36] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.MslXmlSchemaWriter\u002B\u003C\u003Ec\u003E\n ;* V25 tmp18        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]\u003E\n ;* V26 tmp19        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n-;  V27 tmp20        [V27,T35] (  3,  2   )     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Linq.IGrouping\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd,System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]]\u003E\n\u002B;  V27 tmp20        [V27,T34] (  3,  2   )     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Linq.IGrouping\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd,System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]]\u003E\n ;* V28 tmp21        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]\u003E\n ;* V29 tmp22        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n-;  V30 tmp23        [V30,T24] (  6,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Enumerable\u002BGroupByIterator\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n-;* V31 tmp24        [V31,T41] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n... diff truncated; middle omitted ...\n@@ -192,7 \u002B192,7 @@ G_M16527_IG15:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():bool:this\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n-       je       G_M16527_IG28\n\u002B       je       G_M16527_IG25\n \t\t\t\t\t\t;; size=25 bbWeight=8 PerfScore 44.00\n G_M16527_IG16:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Metadata.Edm.MslXmlSchemaWriter\u002B\u003C\u003Ec__DisplayClass27_0\n@@ -274,7 \u002B274,7 @@ G_M16527_IG17:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetSingle[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Func\u00602[System.__Canon,bool],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetSingle[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Func\u00602[System.__Canon,bool],byref):System.__Canon\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M16527_IG27\n\u002B       je       G_M16527_IG24\n        mov      rdi, gword ptr [rax\u002B0x30]\n        mov      r14, gword ptr [rdi\u002B0x30]\n        mov      rdi, r13\n@@ -303,61 \u002B303,42 @@ G_M16527_IG19:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():bool:this\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n-       je       G_M16527_IG26\n-\t\t\t\t\t\t;; size=25 bbWeight=32 PerfScore 176.00\n\u002B       je       SHORT G_M16527_IG23\n\u002B\t\t\t\t\t\t;; size=21 bbWeight=32 PerfScore 176.00\n G_M16527_IG20:\n        mov      rdi, gword ptr [rbp-0x58]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEnumerator\u00601[System.__Canon]:get_Current():System.__Canon:this\n        call     [r11]System.Collections.Generic.IEnumerator\u00601[System.__Canon]:get_Current():System.__Canon:this\n        mov      r15, rax\n-       mov      rsi, gword ptr [r15\u002B0x20]\n-       mov      r14, gword ptr [rsi\u002B0x18]\n-       test     r14, r14\n-       je       SHORT G_M16527_IG24\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M16527_IG22\n-\t\t\t\t\t\t;; size=63 bbWeight=16 PerfScore 236.00\n-G_M16527_IG21:\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M16527_IG23\n-\t\t\t\t\t\t;; size=19 bbWeight=8 PerfScore 78.00\n-G_M16527_IG22:\n\u002B       mov      rdx, gword ptr [r15\u002B0x20]\n\u002B       mov      rsi, gword ptr [rdx\u002B0x18]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M16527_IG21\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.EdmMember](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember],byref):System.Data.Entity.Core.Metadata.Edm.EdmMember\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=8 PerfScore 34.00\n-G_M16527_IG23:\n-       cmp      byte  ptr [rbp-0x38], 0\n-       je       SHORT G_M16527_IG25\n-       mov      rdi, rbx\n        mov      rsi, rax\n\u002B       cmp      byte  ptr [rbp-0x38], 0\n\u002B       je       SHORT G_M16527_IG22\n\u002B       mov      rdi, rbx\n        mov      rdx, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.MslXmlSchemaWriter:WriteScalarParameterElement(System.Data.Entity.Core.Metadata.Edm.EdmMember,System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding):this\n        call     [rax]System.Data.Entity.Core.Metadata.Edm.MslXmlSchemaWriter:WriteScalarParameterElement(System.Data.Entity.Core.Metadata.Edm.EdmMember,System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding):this\n-       jmp      G_M16527_IG19\n-\t\t\t\t\t\t;; size=32 bbWeight=16 PerfScore 128.00\n-G_M16527_IG24:\n\u002B       jmp      SHORT G_M16527_IG19\n\u002B\t\t\t\t\t\t;; size=88 bbWeight=16 PerfScore 348.00\n\u002BG_M16527_IG21:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M16527_IG25:\n\u002BG_M16527_IG22:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M16527_IG26:\n\u002BG_M16527_IG23:\n        mov      rdi, gword ptr [rbp-0x58]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n@@ -367,18 \u002B348,18 @@ G_M16527_IG26:\n        call     [rax\u002B0x10]System.Xml.XmlWriter:WriteEndElement():this\n        jmp      G_M16527_IG15\n \t\t\t\t\t\t;; size=36 bbWeight=4 PerfScore 61.00\n-G_M16527_IG27:\n\u002BG_M16527_IG24:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoMatchException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoMatchException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M16527_IG28:\n\u002BG_M16527_IG25:\n        mov      rdi, gword ptr [rbp-0x50]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        nop      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.50\n-G_M16527_IG29:\n\u002BG_M16527_IG26:\n        add      rsp, 56\n        pop      rbx\n        pop      r12\n@@ -388,52 \u002B369,52 @@ G_M16527_IG29:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M16527_IG30:\n\u002BG_M16527_IG27:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M16527_IG31:\n\u002BG_M16527_IG28:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[System.Linq.IGrouping\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd,System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M16527_IG13\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M16527_IG32:\n\u002BG_M16527_IG29:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M16527_IG33:\n\u002BG_M16527_IG30:\n        cmp      gword ptr [rbp-0x58], 0\n-       je       SHORT G_M16527_IG34\n\u002B       je       SHORT G_M16527_IG31\n        mov      rdi, gword ptr [rbp-0x58]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M16527_IG34:\n\u002BG_M16527_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M16527_IG35:\n\u002BG_M16527_IG32:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M16527_IG36:\n\u002BG_M16527_IG33:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M16527_IG37:\n\u002BG_M16527_IG34:\n        cmp      gword ptr [rbp-0x50], 0\n-       je       SHORT G_M16527_IG38\n\u002B       je       SHORT G_M16527_IG35\n        mov      rdi, gword ptr [rbp-0x50]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M16527_IG38:\n\u002BG_M16527_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M16527_IG39:\n\u002BG_M16527_IG36:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1267, prolog size 35, PerfScore 1315.94, instruction count 286, allocated bytes for code 1267 (MethodHash=a85dbf70) for method System.Data.Entity.Core.Metadata.Edm.MslXmlSchemaWriter:WriteAssociationParameterBindings(System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]):this (FullOpts)\n\u002B; Total bytes of code 1208, prolog size 35, PerfScore 1187.94, instruction count 273, allocated bytes for code 1208 (MethodHash=a85dbf70) for method System.Data.Entity.Core.Metadata.Edm.MslXmlSchemaWriter:WriteAssociationParameterBindings(System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1267,"DiffBytes":1208},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[double]:Aggregate[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[double,System.Numerics.Vector\u00601[float]]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n... diff truncated; middle omitted ...\n-       je       SHORT G_M31969_IG26\n\u002B       je       SHORT G_M31969_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M31969_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M31969_IG26:\n\u002BG_M31969_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M31969_IG27:\n\u002BG_M31969_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M31969_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M31969_IG28:\n\u002BG_M31969_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M31969_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M31969_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M31969_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M31969_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M31969_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M31969_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M31969_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M31969_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M31969_IG31\n\u002B       je       SHORT G_M31969_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M31969_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M31969_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M31969_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M31969_IG32\n\u002B       je       SHORT G_M31969_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M31969_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M31969_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M31969_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M31969_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateAggregateToCollectionResultCursor[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M31969_IG33:\n\u002BG_M31969_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M31969_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M31969_IG34:\n\u002BG_M31969_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M31969_IG35:\n\u002BG_M31969_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M31969_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M31969_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M31969_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M31969_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M31969_IG37\n\u002B       je       SHORT G_M31969_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M31969_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M31969_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M31969_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M31969_IG38\n\u002B       je       SHORT G_M31969_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M31969_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M31969_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M31969_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M31969_IG39:\n\u002BG_M31969_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M31969_IG40:\n\u002BG_M31969_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M31969_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M31969_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M31969_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M31969_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M31969_IG42\n\u002B       je       SHORT G_M31969_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M31969_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M31969_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M31969_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M31969_IG43\n\u002B       je       SHORT G_M31969_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M31969_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M31969_IG43:\n\u002BG_M31969_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M31969_IG44:\n\u002BG_M31969_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=b2f1831e) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:Aggregate[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=b2f1831e) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:Aggregate[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.MoneyManagement.FinancialAccountService:ListAutoPaging(Stripe.V2.MoneyManagement.FinancialAccountListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.FinancialAccount]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.MoneyManagement.FinancialAccountService:ListAutoPaging(Stripe.V2.MoneyManagement.FinancialAccountListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.FinancialAccount]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.MoneyManagement.FinancialAccountService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.MoneyManagement.FinancialAccountListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.MoneyManagement.FinancialAccountListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.FinancialAccount]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.FinancialAccount]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.FinancialAccount]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.FinancialAccount]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.FinancialAccount]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.FinancialAccount]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.FinancialAccount]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.FinancialAccount]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.FinancialAccount]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M51486_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M51486_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/money_management/financial_accounts\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M51486_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M51486_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.FinancialAccount]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.FinancialAccount]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M51486_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M51486_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.FinancialAccount]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.FinancialAccount]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M51486_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M51486_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=409336e1) for method Stripe.V2.MoneyManagement.FinancialAccountService:ListAutoPaging(Stripe.V2.MoneyManagement.FinancialAccountListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.FinancialAccount]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=409336e1) for method Stripe.V2.MoneyManagement.FinancialAccountService:ListAutoPaging(Stripe.V2.MoneyManagement.FinancialAccountListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.FinancialAccount]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Metadata.Edm.MslXmlSchemaWriter:WriteAssociationSetMappingParameterBindings(System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]):this (FullOpts)","Category":"improvement","Description":"966 -\u003E 907 bytes (-59)","ExtraInfo":null,"Diff":"@@ -8,50 \u002B8,50 @@\n ; 0 inlinees with PGO data; 15 single block inlinees; 6 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T05] (  6, 30   )     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.MslXmlSchemaWriter\u003E\n-;  V01 arg1         [V01,T18] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]\u003E\n-;  V02 loc0         [V02,T11] (  6, 13   )     ref  -\u003E  [rbp-0x38]  class-hnd EH-live single-def \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.IGrouping\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd,System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]]\u003E\n-;  V03 loc1         [V03,T12] (  3, 12   )     ref  -\u003E  r15         class-hnd \u003CSystem.Linq.IGrouping\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd,System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]\u003E\n\u002B;  V00 this         [V00,T04] (  6, 30   )     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.MslXmlSchemaWriter\u003E\n\u002B;  V01 arg1         [V01,T17] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]\u003E\n\u002B;  V02 loc0         [V02,T10] (  6, 13   )     ref  -\u003E  [rbp-0x38]  class-hnd EH-live single-def \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.IGrouping\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd,System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]]\u003E\n\u002B;  V03 loc1         [V03,T11] (  3, 12   )     ref  -\u003E  r15         class-hnd \u003CSystem.Linq.IGrouping\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd,System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]\u003E\n ;  V04 loc2         [V04,T01] (  6, 56   )     ref  -\u003E  [rbp-0x40]  do-not-enreg[Z] class-hnd EH-live \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]\u003E\n-;  V05 loc3         [V05,T04] (  3, 48   )     ref  -\u003E  r15         class-hnd \u003CSystem.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding\u003E\n\u002B;  V05 loc3         [V05,T03] (  3, 48   )     ref  -\u003E  r15         class-hnd \u003CSystem.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T20] (  2,  4   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,bool]\u003E\n\u002B;  V07 tmp1         [V07,T19] (  2,  4   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,bool]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V09 tmp3         [V09,T22] (  4,  3.50)     ref  -\u003E  rdx        \n-;  V10 tmp4         [V10,T21] (  2,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n-;  V11 tmp5         [V11,T15] (  4,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]\u003E\n\u002B;  V09 tmp3         [V09,T21] (  4,  3.50)     ref  -\u003E  rdx        \n\u002B;  V10 tmp4         [V10,T20] (  2,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n\u002B;  V11 tmp5         [V11,T14] (  4,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]\u003E\n ;* V12 tmp6         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V13 tmp7         [V13,T23] (  4,  3   )     ref  -\u003E  r14        \n\u002B;  V13 tmp7         [V13,T22] (  4,  3   )     ref  -\u003E  r14        \n ;  V14 tmp8         [V14,T02] (  6, 48   )     ref  -\u003E  r14         class-hnd \u0022non-inline candidate call\u0022 \u003CSystem.Xml.XmlWriter\u003E\n-;  V15 tmp9         [V15,T16] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n-;  V16 tmp10        [V16,T17] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,bool]\u003E\n-;  V17 tmp11        [V17,T26] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.MslXmlSchemaWriter\u002B\u003C\u003Ec\u003E\n-;  V18 tmp12        [V18,T27] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.MslXmlSchemaWriter\u002B\u003C\u003Ec\u003E\n\u002B;  V15 tmp9         [V15,T15] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n\u002B;  V16 tmp10        [V16,T16] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,bool]\u003E\n\u002B;  V17 tmp11        [V17,T25] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.MslXmlSchemaWriter\u002B\u003C\u003Ec\u003E\n\u002B;  V18 tmp12        [V18,T26] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.MslXmlSchemaWriter\u002B\u003C\u003Ec\u003E\n ;* V19 tmp13        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]\u003E\n ;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n-;  V21 tmp15        [V21,T25] (  3,  2   )     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Linq.IGrouping\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd,System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]]\u003E\n\u002B;  V21 tmp15        [V21,T24] (  3,  2   )     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Linq.IGrouping\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd,System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]]\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n-;  V24 tmp18        [V24,T14] (  6,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Enumerable\u002BGroupByIterator\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n-;* V25 tmp19        [V25,T31] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V26 tmp20        [V26,T24] (  3,  2.50)     ref  -\u003E  rdi         class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding[]\u003E\n\u002B;  V24 tmp18        [V24,T13] (  6,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Enumerable\u002BGroupByIterator\u00602[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding,System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n\u002B;* V25 tmp19        [V25,T30] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V26 tmp20        [V26,T23] (  3,  2.50)     ref  -\u003E  rdi         class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding[]\u003E\n ;* V27 tmp21        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Xml.XmlWriter\u003E\n-;  V28 tmp22        [V28,T09] (  2, 16   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n\u002B;  V28 tmp22        [V28,T08] (  2, 16   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V29 tmp23        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationEndMember\u003E\n-;  V30 tmp24        [V30,T10] (  2, 16   )     ref  -\u003E  r13         class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n... diff truncated; middle omitted ...\n\u002B;  V40 rat0         [V40,T18] (  4,  4.50)     ref  -\u003E  rdi         \u0022replacement local\u0022\n\u002B;  V41 rat1         [V41,T27] (  2,  2   )    long  -\u003E  rax         \u0022CSE for expectedClsNode\u0022\n\u002B;  V42 rat2         [V42,T28] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V43 rat3         [V43,T29] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 24\n \n@@ -117,7 \u002B117,7 @@ G_M47937_IG05:\n \t\t\t\t\t\t;; size=72 bbWeight=0.50 PerfScore 4.00\n G_M47937_IG06:\n        test     r15, r15\n-       je       G_M47937_IG27\n\u002B       je       G_M47937_IG24\n \t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 1.25\n G_M47937_IG07:\n        mov      rdi, r15\n@@ -159,7 \u002B159,7 @@ G_M47937_IG11:\n G_M47937_IG12:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M47937_IG28\n\u002B       je       G_M47937_IG25\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n G_M47937_IG13:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Array\u002BEmptyArray\u00601[System.Linq.IGrouping\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd,System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]]:Value\n@@ -176,7 \u002B176,7 @@ G_M47937_IG15:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():bool:this\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n-       je       G_M47937_IG25\n\u002B       je       G_M47937_IG22\n \t\t\t\t\t\t;; size=25 bbWeight=8 PerfScore 44.00\n G_M47937_IG16:\n        mov      rdi, gword ptr [rbp-0x38]\n@@ -220,61 \u002B220,42 @@ G_M47937_IG17:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():bool:this\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n-       je       G_M47937_IG24\n-\t\t\t\t\t\t;; size=25 bbWeight=32 PerfScore 176.00\n\u002B       je       SHORT G_M47937_IG21\n\u002B\t\t\t\t\t\t;; size=21 bbWeight=32 PerfScore 176.00\n G_M47937_IG18:\n        mov      rdi, gword ptr [rbp-0x40]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEnumerator\u00601[System.__Canon]:get_Current():System.__Canon:this\n        call     [r11]System.Collections.Generic.IEnumerator\u00601[System.__Canon]:get_Current():System.__Canon:this\n        mov      r15, rax\n-       mov      rsi, gword ptr [r15\u002B0x20]\n-       mov      r14, gword ptr [rsi\u002B0x18]\n-       test     r14, r14\n-       je       SHORT G_M47937_IG22\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M47937_IG20\n-\t\t\t\t\t\t;; size=63 bbWeight=16 PerfScore 236.00\n-G_M47937_IG19:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M47937_IG21\n-\t\t\t\t\t\t;; size=19 bbWeight=8 PerfScore 78.00\n-G_M47937_IG20:\n\u002B       mov      rdx, gword ptr [r15\u002B0x20]\n\u002B       mov      rsi, gword ptr [rdx\u002B0x18]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M47937_IG19\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.EdmMember](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember],byref):System.Data.Entity.Core.Metadata.Edm.EdmMember\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=8 PerfScore 34.00\n-G_M47937_IG21:\n-       cmp      byte  ptr [rbp-0x30], 0\n-       je       SHORT G_M47937_IG23\n-       mov      rdi, rbx\n        mov      rsi, rax\n\u002B       cmp      byte  ptr [rbp-0x30], 0\n\u002B       je       SHORT G_M47937_IG20\n\u002B       mov      rdi, rbx\n        mov      rdx, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.MslXmlSchemaWriter:WriteScalarParameterElement(System.Data.Entity.Core.Metadata.Edm.EdmMember,System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding):this\n        call     [rax]System.Data.Entity.Core.Metadata.Edm.MslXmlSchemaWriter:WriteScalarParameterElement(System.Data.Entity.Core.Metadata.Edm.EdmMember,System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding):this\n-       jmp      G_M47937_IG17\n-\t\t\t\t\t\t;; size=32 bbWeight=16 PerfScore 128.00\n-G_M47937_IG22:\n\u002B       jmp      SHORT G_M47937_IG17\n\u002B\t\t\t\t\t\t;; size=88 bbWeight=16 PerfScore 348.00\n\u002BG_M47937_IG19:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M47937_IG23:\n\u002BG_M47937_IG20:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M47937_IG24:\n\u002BG_M47937_IG21:\n        mov      rdi, gword ptr [rbp-0x40]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n@@ -284,13 \u002B265,13 @@ G_M47937_IG24:\n        call     [rax\u002B0x10]System.Xml.XmlWriter:WriteEndElement():this\n        jmp      G_M47937_IG15\n \t\t\t\t\t\t;; size=36 bbWeight=4 PerfScore 61.00\n-G_M47937_IG25:\n\u002BG_M47937_IG22:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        nop      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.50\n-G_M47937_IG26:\n\u002BG_M47937_IG23:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -300,52 \u002B281,52 @@ G_M47937_IG26:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M47937_IG27:\n\u002BG_M47937_IG24:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M47937_IG28:\n\u002BG_M47937_IG25:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[System.Linq.IGrouping\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd,System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M47937_IG13\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M47937_IG29:\n\u002BG_M47937_IG26:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M47937_IG30:\n\u002BG_M47937_IG27:\n        cmp      gword ptr [rbp-0x40], 0\n-       je       SHORT G_M47937_IG31\n\u002B       je       SHORT G_M47937_IG28\n        mov      rdi, gword ptr [rbp-0x40]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M47937_IG31:\n\u002BG_M47937_IG28:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M47937_IG32:\n\u002BG_M47937_IG29:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M47937_IG33:\n\u002BG_M47937_IG30:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M47937_IG34:\n\u002BG_M47937_IG31:\n        cmp      gword ptr [rbp-0x38], 0\n-       je       SHORT G_M47937_IG35\n\u002B       je       SHORT G_M47937_IG32\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M47937_IG35:\n\u002BG_M47937_IG32:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M47937_IG36:\n\u002BG_M47937_IG33:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 966, prolog size 31, PerfScore 1001.94, instruction count 219, allocated bytes for code 966 (MethodHash=abd644be) for method System.Data.Entity.Core.Metadata.Edm.MslXmlSchemaWriter:WriteAssociationSetMappingParameterBindings(System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]):this (FullOpts)\n\u002B; Total bytes of code 907, prolog size 31, PerfScore 873.94, instruction count 206, allocated bytes for code 907 (MethodHash=abd644be) for method System.Data.Entity.Core.Metadata.Edm.MslXmlSchemaWriter:WriteAssociationSetMappingParameterBindings(System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding]):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":966,"DiffBytes":907},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[double]:Aggregate[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[double,byte]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[byte]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[byte]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[byte]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[byte]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[byte]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V69 tmp59        [V69,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 8.75\n-G_M47432_IG25:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M47432_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M47432_IG26\n\u002B       je       SHORT G_M47432_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M47432_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M47432_IG26:\n\u002BG_M47432_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M47432_IG27:\n\u002BG_M47432_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M47432_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M47432_IG28:\n\u002BG_M47432_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M47432_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M47432_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M47432_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M47432_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M47432_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M47432_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M47432_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M47432_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M47432_IG31\n\u002B       je       SHORT G_M47432_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M47432_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M47432_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M47432_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M47432_IG32\n\u002B       je       SHORT G_M47432_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M47432_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M47432_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M47432_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M47432_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateAggregateToCollectionResultCursor[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[byte],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[byte]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M47432_IG33:\n\u002BG_M47432_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M47432_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M47432_IG34:\n\u002BG_M47432_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M47432_IG35:\n\u002BG_M47432_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M47432_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M47432_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M47432_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M47432_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M47432_IG37\n\u002B       je       SHORT G_M47432_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M47432_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M47432_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M47432_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M47432_IG38\n\u002B       je       SHORT G_M47432_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M47432_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M47432_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M47432_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M47432_IG39:\n\u002BG_M47432_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M47432_IG40:\n\u002BG_M47432_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M47432_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M47432_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M47432_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M47432_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M47432_IG42\n\u002B       je       SHORT G_M47432_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M47432_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M47432_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M47432_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M47432_IG43\n\u002B       je       SHORT G_M47432_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M47432_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M47432_IG43:\n\u002BG_M47432_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M47432_IG44:\n\u002BG_M47432_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=6b9146b7) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:Aggregate[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=6b9146b7) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:Aggregate[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.MoneyManagement.FinancialAddressService:ListAutoPaging(Stripe.V2.MoneyManagement.FinancialAddressListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.FinancialAddress]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.MoneyManagement.FinancialAddressService:ListAutoPaging(Stripe.V2.MoneyManagement.FinancialAddressListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.FinancialAddress]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.MoneyManagement.FinancialAddressService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.MoneyManagement.FinancialAddressListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.MoneyManagement.FinancialAddressListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.FinancialAddress]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.FinancialAddress]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.FinancialAddress]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.FinancialAddress]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.FinancialAddress]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.FinancialAddress]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.FinancialAddress]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.FinancialAddress]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.FinancialAddress]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M12937_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M12937_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/money_management/financial_addresses\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M12937_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M12937_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.FinancialAddress]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.FinancialAddress]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M12937_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M12937_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.FinancialAddress]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.FinancialAddress]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M12937_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M12937_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=198fcd76) for method Stripe.V2.MoneyManagement.FinancialAddressService:ListAutoPaging(Stripe.V2.MoneyManagement.FinancialAddressListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.FinancialAddress]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=198fcd76) for method Stripe.V2.MoneyManagement.FinancialAddressService:ListAutoPaging(Stripe.V2.MoneyManagement.FinancialAddressListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.FinancialAddress]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.ModelConfiguration.Configuration.ModificationStoredProcedureConfiguration\u002B\u003C\u003Ec__DisplayClass30_0:\u003CConfigureParameters\u003Eb__4(System.Reflection.PropertyInfo):bool:this (FullOpts)","Category":"improvement","Description":"168 -\u003E 109 bytes (-59)","ExtraInfo":null,"Diff":"@@ -1,85 \u002B1,64 @@\n ; Assembly listing for method System.Data.Entity.ModelConfiguration.Configuration.ModificationStoredProcedureConfiguration\u002B\u003C\u003Ec__DisplayClass30_0:\u003CConfigureParameters\u003Eb__4(System.Reflection.PropertyInfo):bool:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T01] (  3,  3   )     ref  -\u003E  rdi         this class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Configuration.ModificationStoredProcedureConfiguration\u002B\u003C\u003Ec__DisplayClass30_0\u003E\n ;  V01 arg1         [V01,T02] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Reflection.PropertyInfo\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V03 tmp1         [V03,T00] (  4,  7   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Utilities.PropertyPath\u003E\n-;  V04 tmp2         [V04    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V03 tmp1         [V03,T00] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Utilities.PropertyPath\u003E\n\u002B;  V04 tmp2         [V04    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x10]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V05 tmp3         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V06 tmp4         [V06,T04] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Reflection.PropertyInfo\u003E\n-;  V07 tmp5         [V07,T03] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Reflection.PropertyInfo]\u003E\n\u002B;  V06 tmp4         [V06,T03] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Reflection.PropertyInfo\u003E\n\u002B;* V07 tmp5         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Reflection.PropertyInfo]\u003E\n ;\n-; Lcl frame size = 16\n\u002B; Lcl frame size = 8\n \n G_M11073_IG01:\n        push     rbp\n-       push     r15\n        push     rbx\n-       sub      rsp, 16\n-       lea      rbp, [rsp\u002B0x20]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x10]\n        mov      rbx, rsi\n-\t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 4.00\n\u002B\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.75\n G_M11073_IG02:\n-       mov      r15, gword ptr [rdi\u002B0x08]\n-       test     r15, r15\n-       je       SHORT G_M11073_IG07\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Reflection.PropertyInfo]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n\u002B       mov      rsi, gword ptr [rdi\u002B0x08]\n\u002B       test     rsi, rsi\n        je       SHORT G_M11073_IG04\n-\t\t\t\t\t\t;; size=39 bbWeight=1 PerfScore 8.25\n-G_M11073_IG03:\n-       lea      rsi, [rbp-0x18]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M11073_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M11073_IG04:\n-       lea      rdx, [rbp-0x18]\n-       mov      rsi, r15\n\u002B       lea      rdx, [rbp-0x10]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Reflection.PropertyInfo](System.Collections.Generic.IEnumerable\u00601[System.Reflection.PropertyInfo],byref):System.Reflection.PropertyInfo\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M11073_IG05:\n-       cmp      byte  ptr [rbp-0x18], 0\n-       je       SHORT G_M11073_IG08\n-       mov      rdi, rbx\n        mov      rsi, rax\n\u002B       cmp      byte  ptr [rbp-0x10], 0\n\u002B       je       SHORT G_M11073_IG05\n\u002B       mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Utilities.PropertyInfoExtensions:IsSameAs(System.Reflection.PropertyInfo,System.Reflection.PropertyInfo):bool\n        call     [rax]System.Data.Entity.Utilities.PropertyInfoExtensions:IsSameAs(System.Reflection.PropertyInfo,System.Reflection.PropertyInfo):bool\n        nop      \n-\t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 6.00\n-G_M11073_IG06:\n-       add      rsp, 16\n\u002B\t\t\t\t\t\t;; size=60 bbWeight=1 PerfScore 13.25\n\u002BG_M11073_IG03:\n\u002B       add      rsp, 8\n        pop      rbx\n-       pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 2.75\n-G_M11073_IG07:\n\u002B\t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.25\n\u002BG_M11073_IG04:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M11073_IG08:\n\u002BG_M11073_IG05:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 168, prolog size 13, PerfScore 28.00, instruction count 45, allocated bytes for code 168 (MethodHash=bbd5d4be) for method System.Data.Entity.ModelConfiguration.Configuration.ModificationStoredProcedureConfiguration\u002B\u003C\u003Ec__DisplayClass30_0:\u003CConfigureParameters\u003Eb__4(System.Reflection.PropertyInfo):bool:this (FullOpts)\n\u002B; Total bytes of code 109, prolog size 8, PerfScore 19.25, instruction count 30, allocated bytes for code 109 (MethodHash=bbd5d4be) for method System.Data.Entity.ModelConfiguration.Configuration.ModificationStoredProcedureConfiguration\u002B\u003C\u003Ec__DisplayClass30_0:\u003CConfigureParameters\u003Eb__4(System.Reflection.PropertyInfo):bool:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":168,"DiffBytes":109},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[double]:Aggregate[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[double,double]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[double]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[double]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[double]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[double]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[double]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V69 tmp59        [V69,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 8.75\n-G_M8535_IG25:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M8535_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M8535_IG26\n\u002B       je       SHORT G_M8535_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M8535_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M8535_IG26:\n\u002BG_M8535_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M8535_IG27:\n\u002BG_M8535_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M8535_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M8535_IG28:\n\u002BG_M8535_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M8535_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M8535_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M8535_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M8535_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M8535_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M8535_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M8535_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M8535_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M8535_IG31\n\u002B       je       SHORT G_M8535_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M8535_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M8535_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M8535_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M8535_IG32\n\u002B       je       SHORT G_M8535_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M8535_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M8535_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M8535_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M8535_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateAggregateToCollectionResultCursor[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[double],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[double]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M8535_IG33:\n\u002BG_M8535_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M8535_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M8535_IG34:\n\u002BG_M8535_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M8535_IG35:\n\u002BG_M8535_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M8535_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M8535_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M8535_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M8535_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M8535_IG37\n\u002B       je       SHORT G_M8535_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M8535_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M8535_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M8535_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M8535_IG38\n\u002B       je       SHORT G_M8535_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M8535_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M8535_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M8535_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M8535_IG39:\n\u002BG_M8535_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M8535_IG40:\n\u002BG_M8535_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M8535_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M8535_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M8535_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M8535_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M8535_IG42\n\u002B       je       SHORT G_M8535_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M8535_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M8535_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M8535_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M8535_IG43\n\u002B       je       SHORT G_M8535_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M8535_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M8535_IG43:\n\u002BG_M8535_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M8535_IG44:\n\u002BG_M8535_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=e1a8dea8) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:Aggregate[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=e1a8dea8) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:Aggregate[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.MoneyManagement.InboundTransferService:ListAutoPaging(Stripe.V2.MoneyManagement.InboundTransferListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.InboundTransfer]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.MoneyManagement.InboundTransferService:ListAutoPaging(Stripe.V2.MoneyManagement.InboundTransferListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.InboundTransfer]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.MoneyManagement.InboundTransferService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.MoneyManagement.InboundTransferListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.MoneyManagement.InboundTransferListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.InboundTransfer]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.InboundTransfer]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.InboundTransfer]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.InboundTransfer]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.InboundTransfer]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.InboundTransfer]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.InboundTransfer]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.InboundTransfer]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.InboundTransfer]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M42120_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M42120_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/money_management/inbound_transfers\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M42120_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M42120_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.InboundTransfer]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.InboundTransfer]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M42120_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M42120_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.InboundTransfer]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.InboundTransfer]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M42120_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M42120_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=ca4f5b77) for method Stripe.V2.MoneyManagement.InboundTransferService:ListAutoPaging(Stripe.V2.MoneyManagement.InboundTransferListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.InboundTransfer]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=ca4f5b77) for method Stripe.V2.MoneyManagement.InboundTransferService:ListAutoPaging(Stripe.V2.MoneyManagement.InboundTransferListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.InboundTransfer]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.ModelConfiguration.Configuration.Types.StructuralTypeConfiguration\u002B\u003C\u003Ec__DisplayClass16_0:\u003CProperty\u003Eb__0():System.Data.Entity.ModelConfiguration.Configuration.Properties.Primitive.PrimitivePropertyConfiguration:this (FullOpts)","Category":"improvement","Description":"291 -\u003E 232 bytes (-59)","ExtraInfo":null,"Diff":"@@ -1,135 \u002B1,114 @@\n ; Assembly listing for method System.Data.Entity.ModelConfiguration.Configuration.Types.StructuralTypeConfiguration\u002B\u003C\u003Ec__DisplayClass16_0:\u003CProperty\u003Eb__0():System.Data.Entity.ModelConfiguration.Configuration.Properties.Primitive.PrimitivePropertyConfiguration:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 4 single block inlinees; 3 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T02] (  5,  4.50)     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Types.StructuralTypeConfiguration\u002B\u003C\u003Ec__DisplayClass16_0\u003E\n-;  V01 loc0         [V01,T08] (  3,  2.50)     ref  -\u003E  rcx         class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Properties.Primitive.PrimitivePropertyConfiguration\u003E\n\u002B;  V00 this         [V00,T01] (  5,  4.50)     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Types.StructuralTypeConfiguration\u002B\u003C\u003Ec__DisplayClass16_0\u003E\n\u002B;  V01 loc0         [V01,T07] (  3,  2.50)     ref  -\u003E  rcx         class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Properties.Primitive.PrimitivePropertyConfiguration\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V03 tmp1         [V03,T01] (  4,  7   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Utilities.PropertyPath\u003E\n-;  V04 tmp2         [V04    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V03 tmp1         [V03,T02] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Utilities.PropertyPath\u003E\n\u002B;  V04 tmp2         [V04    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x10]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V05 tmp3         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V06 tmp4         [V06,T05] (  4,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Reflection.PropertyInfo\u003E\n-;  V07 tmp5         [V07,T06] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Reflection.PropertyInfo]\u003E\n\u002B;  V06 tmp4         [V06,T05] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Reflection.PropertyInfo\u003E\n\u002B;* V07 tmp5         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Reflection.PropertyInfo]\u003E\n ;* V08 tmp6         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Type\u003E\n ;* V09 tmp7         [V09    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V10 tmp8         [V10,T07] (  3,  3   )   byref  -\u003E  rbx         single-def \u0022Inlining Arg\u0022\n\u002B;  V10 tmp8         [V10,T06] (  3,  3   )   byref  -\u003E  rbx         single-def \u0022Inlining Arg\u0022\n ;* V11 tmp9         [V11    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V12 tmp10        [V12,T04] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V13 tmp11        [V13,T03] (  3,  4.50)     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n ;  V14 rat0         [V14,T00] (  5,  7.50)     ref  -\u003E  registers   \u0022replacement local\u0022\n-;  V15 rat1         [V15,T09] (  3,  2.50)    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n\u002B;  V15 rat1         [V15,T08] (  3,  2.50)    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n ;\n-; Lcl frame size = 16\n\u002B; Lcl frame size = 8\n \n G_M56224_IG01:\n        push     rbp\n-       push     r15\n        push     rbx\n-       sub      rsp, 16\n-       lea      rbp, [rsp\u002B0x20]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x10]\n        xor      eax, eax\n-       mov      qword ptr [rbp-0x18], rax\n\u002B       mov      qword ptr [rbp-0x10], rax\n        mov      rbx, rdi\n-\t\t\t\t\t\t;; size=22 bbWeight=1 PerfScore 5.25\n\u002B\t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.00\n G_M56224_IG02:\n-       mov      r15, gword ptr [rbx\u002B0x08]\n-       test     r15, r15\n-       je       G_M56224_IG12\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Reflection.PropertyInfo]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M56224_IG04\n-\t\t\t\t\t\t;; size=43 bbWeight=1 PerfScore 8.25\n-G_M56224_IG03:\n-       lea      rsi, [rbp-0x18]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M56224_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M56224_IG04:\n-       lea      rdx, [rbp-0x18]\n-       mov      rsi, r15\n\u002B       mov      rsi, gword ptr [rbx\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M56224_IG09\n\u002B       lea      rdx, [rbp-0x10]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.Reflection.PropertyInfo](System.Collections.Generic.IEnumerable\u00601[System.Reflection.PropertyInfo],byref):System.Reflection.PropertyInfo\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M56224_IG05:\n-       cmp      byte  ptr [rbp-0x18], 0\n-       je       G_M56224_IG13\n\u002B       cmp      byte  ptr [rbp-0x10], 0\n\u002B       je       G_M56224_IG10\n        mov      rdi, rax\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x50]\n        call     [rax\u002B0x10]System.Reflection.PropertyInfo:get_PropertyType():System.Type:this\n        mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.ModelConfiguration.Configuration.Types.StructuralTypeConfiguration:GetPropertyConfigurationType(System.Type):System.Type\n        call     [rax]System.Data.Entity.ModelConfiguration.Configuration.Types.StructuralTypeConfiguration:GetPropertyConfigurationType(System.Type):System.Type\n        mov      rdi, rax\n        xor      esi, esi\n        mov      edx, 1\n        mov      rax, 0xD1FFAB1E      ; code for System.Activator:CreateInstance(System.Type,bool,bool):System.Object\n        call     [rax]System.Activator:CreateInstance(System.Type,bool,bool):System.Object\n        mov      rcx, rax\n        test     rcx, rcx\n-       je       SHORT G_M56224_IG08\n-\t\t\t\t\t\t;; size=68 bbWeight=1 PerfScore 18.25\n-G_M56224_IG06:\n\u002B       je       SHORT G_M56224_IG05\n\u002B\t\t\t\t\t\t;; size=107 bbWeight=1 PerfScore 25.50\n\u002BG_M56224_IG03:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.ModelConfiguration.Configuration.Properties.Primitive.PrimitivePropertyConfiguration\n        cmp      qword ptr [rcx], rdi\n-       je       SHORT G_M56224_IG08\n\u002B       je       SHORT G_M56224_IG05\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 1.62\n-G_M56224_IG07:\n\u002BG_M56224_IG04:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        mov      rcx, rax\n \t\t\t\t\t\t;; size=18 bbWeight=0.25 PerfScore 0.94\n-G_M56224_IG08:\n\u002BG_M56224_IG05:\n        cmp      byte  ptr [rbx\u002B0x10], 0\n-       je       SHORT G_M56224_IG10\n\u002B       je       SHORT G_M56224_IG07\n \t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 3.00\n-G_M56224_IG09:\n\u002BG_M56224_IG06:\n        add      rbx, 16\n        cmp      byte  ptr [rbx], 0\n-       je       SHORT G_M56224_IG14\n\u002B       je       SHORT G_M56224_IG11\n        mov      eax, dword ptr [rbx\u002B0x04]\n        mov      dword ptr [rcx\u002B0x30], eax\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 3.12\n-G_M56224_IG10:\n\u002BG_M56224_IG07:\n        mov      rax, rcx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M56224_IG11:\n-       add      rsp, 16\n\u002BG_M56224_IG08:\n\u002B       add      rsp, 8\n        pop      rbx\n-       pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 2.75\n-G_M56224_IG12:\n\u002B\t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.25\n\u002BG_M56224_IG09:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M56224_IG13:\n\u002BG_M56224_IG10:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M56224_IG14:\n\u002BG_M56224_IG11:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_NoValue()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_NoValue()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 291, prolog size 19, PerfScore 50.44, instruction count 75, allocated bytes for code 291 (MethodHash=8685245f) for method System.Data.Entity.ModelConfiguration.Configuration.Types.StructuralTypeConfiguration\u002B\u003C\u003Ec__DisplayClass16_0:\u003CProperty\u003Eb__0():System.Data.Entity.ModelConfiguration.Configuration.Properties.Primitive.PrimitivePropertyConfiguration:this (FullOpts)\n\u002B; Total bytes of code 232, prolog size 14, PerfScore 41.69, instruction count 60, allocated bytes for code 232 (MethodHash=8685245f) for method System.Data.Entity.ModelConfiguration.Configuration.Types.StructuralTypeConfiguration\u002B\u003C\u003Ec__DisplayClass16_0:\u003CProperty\u003Eb__0():System.Data.Entity.ModelConfiguration.Configuration.Properties.Primitive.PrimitivePropertyConfiguration:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":291,"DiffBytes":232},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[double]:Aggregate[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[double,int]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[int]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[int]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[int]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[int]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[int]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V69 tmp59        [V69,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 8.75\n-G_M44849_IG25:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M44849_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M44849_IG26\n\u002B       je       SHORT G_M44849_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M44849_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M44849_IG26:\n\u002BG_M44849_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M44849_IG27:\n\u002BG_M44849_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M44849_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M44849_IG28:\n\u002BG_M44849_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M44849_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M44849_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M44849_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M44849_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M44849_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M44849_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M44849_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M44849_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M44849_IG31\n\u002B       je       SHORT G_M44849_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M44849_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M44849_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M44849_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M44849_IG32\n\u002B       je       SHORT G_M44849_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M44849_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M44849_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M44849_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M44849_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateAggregateToCollectionResultCursor[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[int],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[int]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M44849_IG33:\n\u002BG_M44849_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M44849_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M44849_IG34:\n\u002BG_M44849_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M44849_IG35:\n\u002BG_M44849_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M44849_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M44849_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M44849_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M44849_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M44849_IG37\n\u002B       je       SHORT G_M44849_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M44849_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M44849_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M44849_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M44849_IG38\n\u002B       je       SHORT G_M44849_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M44849_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M44849_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M44849_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M44849_IG39:\n\u002BG_M44849_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M44849_IG40:\n\u002BG_M44849_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M44849_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M44849_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M44849_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M44849_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M44849_IG42\n\u002B       je       SHORT G_M44849_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M44849_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M44849_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M44849_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M44849_IG43\n\u002B       je       SHORT G_M44849_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M44849_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M44849_IG43:\n\u002BG_M44849_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M44849_IG44:\n\u002BG_M44849_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=6fac50ce) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:Aggregate[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=6fac50ce) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:Aggregate[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.MoneyManagement.OutboundPaymentService:ListAutoPaging(Stripe.V2.MoneyManagement.OutboundPaymentListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.OutboundPayment]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.MoneyManagement.OutboundPaymentService:ListAutoPaging(Stripe.V2.MoneyManagement.OutboundPaymentListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.OutboundPayment]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.MoneyManagement.OutboundPaymentService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.MoneyManagement.OutboundPaymentListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.MoneyManagement.OutboundPaymentListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.OutboundPayment]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.OutboundPayment]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.OutboundPayment]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.OutboundPayment]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.OutboundPayment]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.OutboundPayment]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.OutboundPayment]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.OutboundPayment]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.OutboundPayment]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M12112_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M12112_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/money_management/outbound_payments\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M12112_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M12112_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.OutboundPayment]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.OutboundPayment]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M12112_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M12112_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.OutboundPayment]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.OutboundPayment]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M12112_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M12112_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=901cd0af) for method Stripe.V2.MoneyManagement.OutboundPaymentService:ListAutoPaging(Stripe.V2.MoneyManagement.OutboundPaymentListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.OutboundPayment]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=901cd0af) for method Stripe.V2.MoneyManagement.OutboundPaymentService:ListAutoPaging(Stripe.V2.MoneyManagement.OutboundPaymentListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.OutboundPayment]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper:CreateRoleBoolean():System.Data.Entity.Core.Mapping.ViewGeneration.Structures.RoleBoolean:this (FullOpts)","Category":"improvement","Description":"378 -\u003E 320 bytes (-58)","ExtraInfo":null,"Diff":"@@ -9,31 \u002B9,31 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T00] (  6,  4.50)     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper\u003E\n-;  V01 loc0         [V01,T07] (  4,  2   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationEndMember]\u003E\n\u002B;  V01 loc0         [V01,T09] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationEndMember]\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V03 tmp1         [V03,T01] (  3,  4.50)     ref  -\u003E  rdi         single-def \u0022ISINST eval op1\u0022\n ;* V04 tmp2         [V04    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling qmarkNull\u0022\n ;  V05 tmp3         [V05,T03] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.RoleBoolean\u003E\n ;  V06 tmp4         [V06,T04] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n-;  V07 tmp5         [V07,T05] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.RoleBoolean\u003E\n\u002B;  V07 tmp5         [V07,T05] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.RoleBoolean\u003E\n ;* V08 tmp6         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellQuery\u003E\n ;* V09 tmp7         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath\u003E\n-;  V10 tmp8         [V10,T06] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.__Canon]\u003E\n\u002B;  V10 tmp8         [V10,T06] (  3,  3   )     ref  -\u003E  rdx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.__Canon]\u003E\n ;* V11 tmp9         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellQuery\u003E\n ;* V12 tmp10        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath\u003E\n ;* V13 tmp11        [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationSet\u003E\n-;  V14 tmp12        [V14    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V14 tmp12        [V14    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V15 tmp13        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V16 tmp14        [V16,T11] (  3,  1.50)     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationEndMember\u003E\n-;  V17 tmp15        [V17,T08] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationEndMember]\u003E\n\u002B;  V16 tmp14        [V16,T11] (  2,  1   )     ref  -\u003E  r15         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationEndMember\u003E\n\u002B;* V17 tmp15        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationEndMember]\u003E\n ;* V18 tmp16        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmMember\u003E\n ;* V19 tmp17        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V20 tmp18        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellQuery\u003E\n-;  V21 tmp19        [V21,T10] (  2,  2   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath\u003E\n\u002B;  V21 tmp19        [V21,T08] (  2,  2   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath\u003E\n ;* V22 tmp20        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySetBase\u003E\n-;  V23 rat0         [V23,T09] (  3,  2   )     ref  -\u003E  rsi         class-hnd \u0022Spilling to split statement for tree\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySetBase\u003E\n-;  V24 rat1         [V24,T02] (  4,  3.50)     ref  -\u003E  rdi         \u0022replacement local\u0022\n-;  V25 rat2         [V25,T12] (  3,  1   )    long  -\u003E  rax         \u0022CSE for expectedClsNode\u0022\n\u002B;  V23 rat0         [V23,T07] (  3,  2   )     ref  -\u003E  rsi         class-hnd \u0022Spilling to split statement for tree\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySetBase\u003E\n\u002B;  V24 rat1         [V24,T02] (  4,  3.50)     ref  -\u003E  rdx         \u0022replacement local\u0022\n\u002B;  V25 rat2         [V25,T10] (  3,  1   )    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n ;\n ; Lcl frame size = 8\n \n@@ -53,76 \u002B53,58 @@ G_M52301_IG02:\n        mov      rdi, gword ptr [rdi\u002B0x28]\n        mov      rdi, gword ptr [rdi\u002B0x08]\n        test     rdi, rdi\n-       je       G_M52301_IG10\n\u002B       je       G_M52301_IG08\n \t\t\t\t\t\t;; size=21 bbWeight=1 PerfScore 7.25\n G_M52301_IG03:\n        mov      rax, 0xD1FFAB1E      ; System.Data.Entity.Core.Metadata.Edm.AssociationSet\n        cmp      qword ptr [rdi], rax\n-       jne      G_M52301_IG10\n\u002B       jne      G_M52301_IG08\n \t\t\t\t\t\t;; size=19 bbWeight=0.25 PerfScore 0.81\n G_M52301_IG04:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper:GetEndsForTablePrimaryKey():System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationEndMember]:this\n        call     [rax]System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper:GetEndsForTablePrimaryKey():System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationEndMember]:this\n-       mov      r15, rax\n-       mov      rsi, gword ptr [r15\u002B0x08]\n-       mov      edi, dword ptr [rsi\u002B0x28]\n-       sub      edi, dword ptr [rsi\u002B0x30]\n-       cmp      edi, 1\n-       jne      G_M52301_IG10\n-       mov      rsi, gword ptr [rbx\u002B0x20]\n-       mov      rsi, gword ptr [rsi\u002B0x28]\n-       mov      rsi, gword ptr [rsi\u002B0x08]\n-       mov      rdi, rsi\n-       test     rdi, rdi\n\u002B       mov      rdx, gword ptr [rax\u002B0x08]\n\u002B       mov      esi, dword ptr [rdx\u002B0x28]\n\u002B       sub      esi, dword ptr [rdx\u002B0x30]\n\u002B       cmp      esi, 1\n\u002B       jne      G_M52301_IG08\n\u002B       mov      rdx, gword ptr [rbx\u002B0x20]\n\u002B       mov      rdx, gword ptr [rdx\u002B0x28]\n\u002B       mov      rsi, gword ptr [rdx\u002B0x08]\n\u002B       mov      rdx, rsi\n\u002B       test     rdx, rdx\n        je       SHORT G_M52301_IG06\n-\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 9.25\n\u002B\t\t\t\t\t\t;; size=54 bbWeight=0.50 PerfScore 9.12\n G_M52301_IG05:\n-       mov      rax, 0xD1FFAB1E      ; System.Data.Entity.Core.Metadata.Edm.AssociationSet\n-       cmp      qword ptr [rdi], rax\n-       jne      G_M52301_IG12\n\u002B       mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Metadata.Edm.AssociationSet\n\u002B       cmp      qword ptr [rdx], rdi\n\u002B       jne      G_M52301_IG10\n \t\t\t\t\t\t;; size=19 bbWeight=0.25 PerfScore 0.81\n G_M52301_IG06:\n-       mov      rbx, gword ptr [rdi\u002B0x50]\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationEndMember]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M52301_IG07\n-       lea      rsi, [rbp-0x20]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      r14, rax\n-       jmp      SHORT G_M52301_IG08\n-\t\t\t\t\t\t;; size=56 bbWeight=0.50 PerfScore 8.50\n-G_M52301_IG07:\n\u002B       mov      rbx, gword ptr [rdx\u002B0x50]\n        lea      rdx, [rbp-0x20]\n-       mov      rsi, r15\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.AssociationEndMember](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationEndMember],byref):System.Data.Entity.Core.Metadata.Edm.AssociationEndMember\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      r14, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M52301_IG08:\n\u002B       mov      r15, rax\n        cmp      byte  ptr [rbp-0x20], 0\n-       je       G_M52301_IG13\n\u002B       je       G_M52301_IG11\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Mapping.ViewGeneration.Structures.RoleBoolean\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r15, rax\n-       mov      rsi, gword ptr [r14\u002B0x30]\n\u002B       mov      r14, rax\n\u002B       mov      rsi, gword ptr [r15\u002B0x30]\n        mov      rdi, rbx\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x60]\n        call     [rax\u002B0x08]System.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.__Canon]:get_Item(System.String):System.__Canon:this\n        mov      rsi, rax\n-       lea      rdi, bword ptr [r15\u002B0x08]\n\u002B       lea      rdi, bword ptr [r14\u002B0x08]\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rax, r15\n-\t\t\t\t\t\t;; size=60 bbWeight=0.50 PerfScore 7.38\n-G_M52301_IG09:\n\u002B       mov      rax, r14\n\u002B\t\t\t\t\t\t;; size=96 bbWeight=0.50 PerfScore 10.62\n\u002BG_M52301_IG07:\n        add      rsp, 8\n        pop      rbx\n        pop      r14\n@@ -130,7 \u002B112,7 @@ G_M52301_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 1.62\n-G_M52301_IG10:\n\u002BG_M52301_IG08:\n        mov      rdi, gword ptr [rbx\u002B0x20]\n        mov      rbx, gword ptr [rdi\u002B0x28]\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Mapping.ViewGeneration.Structures.RoleBoolean\n@@ -141,7 \u002B123,7 @@ G_M52301_IG10:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rax, r15\n \t\t\t\t\t\t;; size=42 bbWeight=0.50 PerfScore 4.62\n-G_M52301_IG11:\n\u002BG_M52301_IG09:\n        add      rsp, 8\n        pop      rbx\n        pop      r14\n@@ -149,17 \u002B131,16 @@ G_M52301_IG11:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 1.62\n-G_M52301_IG12:\n-       mov      rdi, rax\n\u002BG_M52301_IG10:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rax]CORINFO_HELP_CHKCASTCLASS\n        int3     \n-\t\t\t\t\t\t;; size=16 bbWeight=0 PerfScore 0.00\n-G_M52301_IG13:\n\u002B\t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n\u002BG_M52301_IG11:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 378, prolog size 18, PerfScore 51.12, instruction count 97, allocated bytes for code 378 (MethodHash=fe3833b2) for method System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper:CreateRoleBoolean():System.Data.Entity.Core.Mapping.ViewGeneration.Structures.RoleBoolean:this (FullOpts)\n\u002B; Total bytes of code 320, prolog size 18, PerfScore 43.50, instruction count 82, allocated bytes for code 320 (MethodHash=fe3833b2) for method System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper:CreateRoleBoolean():System.Data.Entity.Core.Mapping.ViewGeneration.Structures.RoleBoolean:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":378,"DiffBytes":320},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[double]:Aggregate[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[double,long]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[long]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[long]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[long]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[long]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[long]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V69 tmp59        [V69,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 8.75\n-G_M56136_IG25:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M56136_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M56136_IG26\n\u002B       je       SHORT G_M56136_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M56136_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M56136_IG26:\n\u002BG_M56136_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M56136_IG27:\n\u002BG_M56136_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M56136_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M56136_IG28:\n\u002BG_M56136_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M56136_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M56136_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M56136_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M56136_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M56136_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M56136_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M56136_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M56136_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M56136_IG31\n\u002B       je       SHORT G_M56136_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M56136_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M56136_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M56136_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M56136_IG32\n\u002B       je       SHORT G_M56136_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M56136_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M56136_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M56136_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M56136_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateAggregateToCollectionResultCursor[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[long],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[long]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M56136_IG33:\n\u002BG_M56136_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M56136_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M56136_IG34:\n\u002BG_M56136_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M56136_IG35:\n\u002BG_M56136_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M56136_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M56136_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M56136_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M56136_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M56136_IG37\n\u002B       je       SHORT G_M56136_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M56136_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M56136_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M56136_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M56136_IG38\n\u002B       je       SHORT G_M56136_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M56136_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M56136_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M56136_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M56136_IG39:\n\u002BG_M56136_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M56136_IG40:\n\u002BG_M56136_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M56136_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M56136_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M56136_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M56136_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M56136_IG42\n\u002B       je       SHORT G_M56136_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M56136_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M56136_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M56136_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M56136_IG43\n\u002B       je       SHORT G_M56136_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M56136_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M56136_IG43:\n\u002BG_M56136_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M56136_IG44:\n\u002BG_M56136_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=6b9d24b7) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:Aggregate[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=6b9d24b7) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:Aggregate[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.MoneyManagement.OutboundSetupIntentService:ListAutoPaging(Stripe.V2.MoneyManagement.OutboundSetupIntentListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.OutboundSetupIntent]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.MoneyManagement.OutboundSetupIntentService:ListAutoPaging(Stripe.V2.MoneyManagement.OutboundSetupIntentListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.OutboundSetupIntent]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.MoneyManagement.OutboundSetupIntentService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.MoneyManagement.OutboundSetupIntentListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.MoneyManagement.OutboundSetupIntentListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.OutboundSetupIntent]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.OutboundSetupIntent]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.OutboundSetupIntent]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.OutboundSetupIntent]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.OutboundSetupIntent]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.OutboundSetupIntent]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.OutboundSetupIntent]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.OutboundSetupIntent]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.OutboundSetupIntent]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M37569_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M37569_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/money_management/outbound_setup_intents\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M37569_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M37569_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.OutboundSetupIntent]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.OutboundSetupIntent]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M37569_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M37569_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.OutboundSetupIntent]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.OutboundSetupIntent]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M37569_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M37569_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=c8496d3e) for method Stripe.V2.MoneyManagement.OutboundSetupIntentService:ListAutoPaging(Stripe.V2.MoneyManagement.OutboundSetupIntentListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.OutboundSetupIntent]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=c8496d3e) for method Stripe.V2.MoneyManagement.OutboundSetupIntentService:ListAutoPaging(Stripe.V2.MoneyManagement.OutboundSetupIntentListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.OutboundSetupIntent]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Objects.DataClasses.RelatedEnd:Attach(System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Objects.Internal.IEntityWrapper],bool):this (FullOpts)","Category":"improvement","Description":"1,443 -\u003E 1,386 bytes (-57)","ExtraInfo":null,"Diff":"@@ -15,27 \u002B15,27 @@\n ;  V04 loc1         [V04,T01] ( 12, 24   )     ref  -\u003E  r12         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Objects.Internal.IEntityWrapper]\u003E\n ;  V05 loc2         [V05,T08] (  6, 13   )     ref  -\u003E  [rbp-0x50]  class-hnd EH-live single-def \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Data.Entity.Core.Objects.Internal.IEntityWrapper]\u003E\n ;  V06 loc3         [V06,T10] (  4, 12   )     ref  -\u003E  r15         class-hnd \u003CSystem.Data.Entity.Core.Objects.Internal.IEntityWrapper\u003E\n-;  V07 loc4         [V07,T27] (  4,  4   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.ReferentialConstraint\u003E\n\u002B;  V07 loc4         [V07,T27] (  4,  4   )     ref  -\u003E  r15         class-hnd exact single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.ReferentialConstraint\u003E\n ;  V08 loc5         [V08,T30] (  4,  3.50)     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Data.Entity.Core.Objects.ObjectStateManager\u003E\n ;  V09 loc6         [V09,T19] (  6,  7.50)     ref  -\u003E  [rbp-0x58]  class-hnd exact spill-single-def \u003CSystem.Data.Entity.Core.Objects.EntityEntry\u003E\n ;* V10 loc7         [V10    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[System.Data.Entity.Core.Objects.Internal.IEntityWrapper]\u003E\n ;* V11 loc8         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Data.Entity.Core.Objects.Internal.IEntityWrapper\u003E\n ;  V12 loc9         [V12,T11] (  4, 12   )     ref  -\u003E  [rbp-0x60]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Objects.DataClasses.RelatedEnd\u003E\n-;  V13 loc10        [V13,T22] (  3,  6   )     ref  -\u003E  [rbp-0x68]  class-hnd exact spill-single-def \u003CSystem.Data.Entity.Core.Objects.EntityEntry\u003E\n\u002B;  V13 loc10        [V13,T21] (  3,  6   )     ref  -\u003E  [rbp-0x68]  class-hnd exact spill-single-def \u003CSystem.Data.Entity.Core.Objects.EntityEntry\u003E\n ;# V14 OutArgs      [V14    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V15 tmp1         [V15,T23] (  3,  6   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Objects.Internal.IEntityWrapper]\u003E\n\u002B;  V15 tmp1         [V15,T22] (  3,  6   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Objects.Internal.IEntityWrapper]\u003E\n ;  V16 tmp2         [V16,T03] (  3, 24   )     int  -\u003E  rdx         \u0022impSpillLclRefs\u0022\n ;  V17 tmp3         [V17,T05] (  4, 16   )     ref  -\u003E  [rbp-0x70]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.String,System.Object]\u003E\n-;  V18 tmp4         [V18,T43] (  3,  0   )     ref  -\u003E  r14         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n-;  V19 tmp5         [V19,T28] (  4,  4   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.String,System.Object]\u003E\n-;  V20 tmp6         [V20,T44] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V18 tmp4         [V18,T42] (  3,  0   )     ref  -\u003E  r14         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V19 tmp5         [V19,T28] (  4,  4   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.String,System.Object]\u003E\n\u002B;  V20 tmp6         [V20,T43] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;  V21 tmp7         [V21,T13] (  3, 10   )     ref  -\u003E  rdi         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Objects.Internal.IEntityWrapper[]\u003E\n ;  V22 tmp8         [V22,T12] (  4, 12   )     int  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n ;* V23 tmp9         [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationType\u003E\n-;  V24 tmp10        [V24,T21] (  4,  7   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint]\u003E\n-;  V25 tmp11        [V25    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V26 tmp12        [V26,T36] (  5,  2.50)     ref  -\u003E  r15         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReferentialConstraint\u003E\n-;  V27 tmp13        [V27,T31] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint]\u003E\n\u002B;  V24 tmp10        [V24,T23] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint]\u003E\n\u002B;  V25 tmp11        [V25    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V26 tmp12        [V26,T35] (  4,  2.50)     ref  -\u003E  rbx         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReferentialConstraint\u003E\n\u002B;* V27 tmp13        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint]\u003E\n ;  V28 tmp14        [V28,T29] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Objects.EntityEntry\u003E\n ;* V29 tmp15        [V29    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[System.Data.Entity.Core.Objects.Internal.IEntityWrapper]\u003E\n ;* V30 tmp16        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Objects.DataClasses.RelationshipManager\u003E\n@@ -43,30 \u002B43,30 @@\n ;* V32 tmp18        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Objects.Internal.IEntityWrapper]\u003E\n ;  V33 tmp19        [V33,T09] (  4, 12.50)     ref  -\u003E  r12         single-def \u0022field V10._list (fldOffset=0x0)\u0022 P-INDEP\n ;  V34 tmp20        [V34,T16] (  2,  8   )     ref  -\u003E  [rbp-0x78]  spill-single-def \u0022field V10._current (fldOffset=0x8)\u0022 P-INDEP\n-;  V35 tmp21        [V35,T25] (  3,  5   )     int  -\u003E  r15         single-def \u0022field V10._version (fldOffset=0x10)\u0022 P-INDEP\n-;* V36 tmp22        [V36,T42] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V10._index (fldOffset=0x14)\u0022 P-INDEP\n\u002B;  V35 tmp21        [V35,T25] (  3,  5   )     int  -\u003E  rbx         single-def \u0022field V10._version (fldOffset=0x10)\u0022 P-INDEP\n\u002B;* V36 tmp22        [V36,T41] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V10._index (fldOffset=0x14)\u0022 P-INDEP\n ;* V37 tmp23        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V29._list (fldOffset=0x0)\u0022 P-INDEP\n ;* V38 tmp24        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V29._current (fldOffset=0x8)\u0022 P-INDEP\n-;  V39 tmp25        [V39,T41] (  2,  1   )     int  -\u003E  r15         single-def \u0022field V29._version (fldOffset=0x10)\u0022 P-INDEP\n\u002B;  V39 tmp25        [V39,T40] (  2,  1   )     int  -\u003E  rbx         single-def \u0022field V29._version (fldOffset=0x10)\u0022 P-INDEP\n ;* V40 tmp26        [V40    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V29._index (fldOffset=0x14)\u0022 P-INDEP\n ;  V41 tmp27        [V41,T26] (  3,  4.50)     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n-;  V42 tmp28        [V42,T32] (  3,  3   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n-;  V43 tmp29        [V43,T38] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V42 tmp28        [V42,T31] (  3,  3   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n\u002B;  V43 tmp29        [V43,T37] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;  V44 tmp30        [V44,T02] (  3, 24   )     ref  -\u003E  rdi         \u0022arr expr\u0022\n ;  V45 tmp31        [V45,T06] (  2, 16   )     ref  -\u003E  [rbp-0x80]  spill-single-def \u0022argument with side effect\u0022\n ;  V46 tmp32        [V46,T07] (  2, 16   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n ;  V47 tmp33        [V47,T17] (  2,  8   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V48 tmp34        [V48,T18] (  2,  8   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n-;  V49 tmp35        [V49,T45] (  2,  0   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n-;  V50 tmp36        [V50,T33] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022arr expr\u0022\n-;  V51 tmp37        [V51,T39] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V52 tmp38        [V52,T46] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V53 cse0         [V53,T34] (  3,  3   )    long  -\u003E  [rbp-0x38]  spill-single-def \u0022CSE #06: conservative\u0022\n-;  V54 cse1         [V54,T35] (  3,  3   )    long  -\u003E  r14         \u0022CSE #09: conservative\u0022\n... diff truncated; middle omitted ...\n\u002BG_M32405_IG18:\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[System.String,System.Object]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      rbx, rax\n\u002B       mov      r15, rax\n        mov      r13, gword ptr [rbp-0x58]\n        test     r13, r13\n-       je       G_M32405_IG23\n-       lea      rdi, bword ptr [rbx\u002B0x10]\n\u002B       je       G_M32405_IG20\n\u002B       lea      rdi, bword ptr [r15\u002B0x10]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Objects.EntityEntry:GetCurrentEntityValue(System.String):System.Object:this\n-       mov      qword ptr [rbx\u002B0x18], rdi\n\u002B       mov      qword ptr [r15\u002B0x18], rdi\n        cmp      dword ptr [r12\u002B0x10], 0\n-       je       SHORT G_M32405_IG24\n\u002B       je       SHORT G_M32405_IG21\n        mov      rdi, gword ptr [r12\u002B0x08]\n        cmp      dword ptr [rdi\u002B0x08], 0\n-       jbe      G_M32405_IG28\n\u002B       jbe      G_M32405_IG25\n        mov      rdi, gword ptr [rdi\u002B0x10]\n        mov      r11, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Objects.Internal.IEntityWrapper:get_ObjectStateEntry():System.Data.Entity.Core.Objects.EntityEntry:this\n        call     [r11]System.Data.Entity.Core.Objects.Internal.IEntityWrapper:get_ObjectStateEntry():System.Data.Entity.Core.Objects.EntityEntry:this\n@@ -365,53 \u002B345,53 @@ G_M32405_IG21:\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Objects.ObjectStateEntry:ValidateState():this\n        call     [rax]System.Data.Entity.Core.Objects.ObjectStateEntry:ValidateState():this\n        mov      rdx, gword ptr [r13\u002B0x28]\n-       mov      rdi, r15\n-       mov      rsi, rbx\n\u002B       mov      rdi, rbx\n\u002B       mov      rsi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Objects.DataClasses.RelatedEnd:VerifyRIConstraintsWithRelatedEntry(System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint,System.Func\u00602[System.String,System.Object],System.Data.Entity.Core.EntityKey):bool\n        call     [rax]System.Data.Entity.Core.Objects.DataClasses.RelatedEnd:VerifyRIConstraintsWithRelatedEntry(System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint,System.Func\u00602[System.String,System.Object],System.Data.Entity.Core.EntityKey):bool\n        test     eax, eax\n-       jne      G_M32405_IG29\n-       jmp      SHORT G_M32405_IG25\n\u002B       jne      G_M32405_IG26\n\u002B       jmp      SHORT G_M32405_IG22\n \t\t\t\t\t\t;; size=151 bbWeight=0.50 PerfScore 17.38\n-G_M32405_IG22:\n\u002BG_M32405_IG19:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M32405_IG23:\n\u002BG_M32405_IG20:\n        mov      rax, 0xD1FFAB1E      ; code for System.Delegate:ThrowNullThisInDelegateToInstance()\n        call     [rax]System.Delegate:ThrowNullThisInDelegateToInstance()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M32405_IG24:\n\u002BG_M32405_IG21:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M32405_IG25:\n\u002BG_M32405_IG22:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n-       mov      rbx, rax\n\u002B       mov      r15, rax\n\u002B       mov      rdi, rbx\n\u002B       mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint:BuildConstraintExceptionMessage():System.String:this\n\u002B       call     [rax]System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint:BuildConstraintExceptionMessage():System.String:this\n\u002B       mov      rsi, rax\n\u002B       mov      rdi, r15\n\u002B       mov      rax, 0xD1FFAB1E      ; code for System.InvalidOperationException:.ctor(System.String):this\n\u002B       call     [rax]System.InvalidOperationException:.ctor(System.String):this\n\u002B       mov      rdi, r15\n\u002B       call     CORINFO_HELP_THROW\n\u002B       int3     \n\u002B\t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n\u002BG_M32405_IG23:\n\u002B       mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n\u002B       call     CORINFO_HELP_NEWSFAST\n\u002B       mov      r14, rax\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint:BuildConstraintExceptionMessage():System.String:this\n        call     [rax]System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint:BuildConstraintExceptionMessage():System.String:this\n        mov      rsi, rax\n-       mov      rdi, rbx\n-       mov      rax, 0xD1FFAB1E      ; code for System.InvalidOperationException:.ctor(System.String):this\n-       call     [rax]System.InvalidOperationException:.ctor(System.String):this\n-       mov      rdi, rbx\n-       call     CORINFO_HELP_THROW\n-       int3     \n-\t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M32405_IG26:\n-       mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      rdi, rbx\n-       mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint:BuildConstraintExceptionMessage():System.String:this\n-       call     [rax]System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint:BuildConstraintExceptionMessage():System.String:this\n-       mov      rsi, rax\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.InvalidOperationException:.ctor(System.String):this\n        call     [rax]System.InvalidOperationException:.ctor(System.String):this\n@@ -419,16 \u002B399,16 @@ G_M32405_IG26:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M32405_IG27:\n\u002BG_M32405_IG24:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M32405_IG28:\n\u002BG_M32405_IG25:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n-G_M32405_IG29:\n\u002BG_M32405_IG26:\n        mov      rax, gword ptr [rbp-0x48]\n        mov      byte  ptr [rax\u002B0x7A], 0\n        mov      rdi, rax\n@@ -437,7 \u002B417,7 @@ G_M32405_IG29:\n        call     [r14\u002B0x10]System.Data.Entity.Core.Objects.DataClasses.RelatedEnd:OnAssociationChanged(int,System.Object):this\n        nop      \n \t\t\t\t\t\t;; size=23 bbWeight=1 PerfScore 6.00\n-G_M32405_IG30:\n\u002BG_M32405_IG27:\n        add      rsp, 88\n        pop      rbx\n        pop      r12\n@@ -447,40 \u002B427,40 @@ G_M32405_IG30:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M32405_IG31:\n\u002BG_M32405_IG28:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.Data.Entity.Core.Objects.Internal.IEntityWrapper]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M32405_IG03\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M32405_IG32:\n\u002BG_M32405_IG29:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M32405_IG33:\n\u002BG_M32405_IG30:\n        cmp      gword ptr [rbp-0x50], 0\n-       je       SHORT G_M32405_IG34\n\u002B       je       SHORT G_M32405_IG31\n        mov      rdi, gword ptr [rbp-0x50]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M32405_IG34:\n\u002BG_M32405_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n\u002BG_M32405_IG32:\n\u002B       add      rsp, 8\n\u002B       ret      \n\u002B\t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n\u002BG_M32405_IG33:\n\u002B       push     rax\n\u002B\t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n\u002BG_M32405_IG34:\n\u002B       mov      rax, gword ptr [rbp-0x48]\n\u002B       mov      byte  ptr [rax\u002B0x7A], 0\n\u002B\t\t\t\t\t\t;; size=8 bbWeight=0 PerfScore 0.00\n G_M32405_IG35:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M32405_IG36:\n-       push     rax\n-\t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M32405_IG37:\n-       mov      rax, gword ptr [rbp-0x48]\n-       mov      byte  ptr [rax\u002B0x7A], 0\n-\t\t\t\t\t\t;; size=8 bbWeight=0 PerfScore 0.00\n-G_M32405_IG38:\n-       add      rsp, 8\n-       ret      \n-\t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1443, prolog size 37, PerfScore 568.31, instruction count 335, allocated bytes for code 1443 (MethodHash=2757816a) for method System.Data.Entity.Core.Objects.DataClasses.RelatedEnd:Attach(System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Objects.Internal.IEntityWrapper],bool):this (FullOpts)\n\u002B; Total bytes of code 1386, prolog size 37, PerfScore 560.31, instruction count 321, allocated bytes for code 1386 (MethodHash=2757816a) for method System.Data.Entity.Core.Objects.DataClasses.RelatedEnd:Attach(System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Objects.Internal.IEntityWrapper],bool):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1443,"DiffBytes":1386},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[double]:Aggregate[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[double,short]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[short]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[short]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[short]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[short]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[short]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V69 tmp59        [V69,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 8.75\n-G_M51056_IG25:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M51056_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M51056_IG26\n\u002B       je       SHORT G_M51056_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M51056_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M51056_IG26:\n\u002BG_M51056_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M51056_IG27:\n\u002BG_M51056_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M51056_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M51056_IG28:\n\u002BG_M51056_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M51056_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M51056_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M51056_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M51056_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M51056_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M51056_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M51056_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M51056_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M51056_IG31\n\u002B       je       SHORT G_M51056_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M51056_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M51056_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M51056_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M51056_IG32\n\u002B       je       SHORT G_M51056_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M51056_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M51056_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M51056_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M51056_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateAggregateToCollectionResultCursor[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[short],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[short]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M51056_IG33:\n\u002BG_M51056_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M51056_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M51056_IG34:\n\u002BG_M51056_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M51056_IG35:\n\u002BG_M51056_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M51056_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M51056_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M51056_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M51056_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M51056_IG37\n\u002B       je       SHORT G_M51056_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M51056_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M51056_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M51056_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M51056_IG38\n\u002B       je       SHORT G_M51056_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M51056_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M51056_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M51056_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M51056_IG39:\n\u002BG_M51056_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M51056_IG40:\n\u002BG_M51056_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M51056_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M51056_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M51056_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M51056_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M51056_IG42\n\u002B       je       SHORT G_M51056_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M51056_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M51056_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M51056_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M51056_IG43\n\u002B       je       SHORT G_M51056_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M51056_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M51056_IG43:\n\u002BG_M51056_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M51056_IG44:\n\u002BG_M51056_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=2ed5388f) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:Aggregate[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=2ed5388f) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:Aggregate[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.MoneyManagement.OutboundTransferService:ListAutoPaging(Stripe.V2.MoneyManagement.OutboundTransferListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.OutboundTransfer]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.MoneyManagement.OutboundTransferService:ListAutoPaging(Stripe.V2.MoneyManagement.OutboundTransferListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.OutboundTransfer]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.MoneyManagement.OutboundTransferService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.MoneyManagement.OutboundTransferListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.MoneyManagement.OutboundTransferListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.OutboundTransfer]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.OutboundTransfer]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.OutboundTransfer]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.OutboundTransfer]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.OutboundTransfer]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.OutboundTransfer]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.OutboundTransfer]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.OutboundTransfer]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.OutboundTransfer]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M13793_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M13793_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/money_management/outbound_transfers\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M13793_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M13793_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.OutboundTransfer]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.OutboundTransfer]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M13793_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M13793_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.OutboundTransfer]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.OutboundTransfer]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M13793_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M13793_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=e0cdca1e) for method Stripe.V2.MoneyManagement.OutboundTransferService:ListAutoPaging(Stripe.V2.MoneyManagement.OutboundTransferListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.OutboundTransfer]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=e0cdca1e) for method Stripe.V2.MoneyManagement.OutboundTransferService:ListAutoPaging(Stripe.V2.MoneyManagement.OutboundTransferListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.OutboundTransfer]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Objects.EntityEntry:AddDetectedRelationship[System.Numerics.Vector\u00601[float]](System.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Objects.Internal.IEntityWrapper,System.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Objects.DataClasses.RelatedEnd,System.Collections.Generic.HashSet\u00601[System.Numerics.Vector\u00601[float]]]],System.Numerics.Vector\u00601[float],System.Data.Entity.Core.Objects.DataClasses.RelatedEnd) (FullOpts)","Category":"improvement","Description":"579 -\u003E 522 bytes (-57)","ExtraInfo":null,"Diff":"@@ -9,22 \u002B9,22 @@\n ; Final local variable assignments\n ;\n ;  V00 arg0         [V00,T01] (  5,  4.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Objects.Internal.IEntityWrapper,System.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Objects.DataClasses.RelatedEnd,System.Collections.Generic.HashSet\u00601[System.Numerics.Vector\u00601[float]]]]\u003E\n-;  V01 arg1         [V01,T13] (  4,  2.50)  simd32  -\u003E  [rbp\u002B0x10]  single-def \u003CSystem.Numerics.Vector\u00601[float]\u003E\n\u002B;  V01 arg1         [V01,T11] (  4,  2.50)  simd32  -\u003E  [rbp\u002B0x10]  single-def \u003CSystem.Numerics.Vector\u00601[float]\u003E\n ;  V02 arg2         [V02,T00] ( 10,  6.50)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Objects.DataClasses.RelatedEnd\u003E\n ;  V03 loc0         [V03,T03] (  6,  4   )     ref  -\u003E  r13         ld-addr-op class-hnd \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Objects.DataClasses.RelatedEnd,System.Collections.Generic.HashSet\u00601[System.Numerics.Vector\u00601[float]]]\u003E\n-;  V04 loc1         [V04,T02] (  8,  5   )     ref  -\u003E  r15         ld-addr-op class-hnd \u003CSystem.Collections.Generic.HashSet\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V04 loc1         [V04,T02] (  7,  4.50)     ref  -\u003E  r15         ld-addr-op class-hnd \u003CSystem.Collections.Generic.HashSet\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (32) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V06 tmp1         [V06    ] (  0,  0   )    long  -\u003E  zero-ref    class-hnd exact \u0022Single-def Box Helper\u0022 \u003CSystem.Numerics.Vector\u00601[float]\u003E\n ;* V07 tmp2         [V07    ] (  0,  0   )  simd32  -\u003E  zero-ref    \u0022stack copy for value returned via return buffer\u0022 \u003CSystem.Numerics.Vector\u00601[float]\u003E\n ;* V08 tmp3         [V08    ] (  0,  0   )    long  -\u003E  zero-ref    class-hnd exact \u0022Single-def Box Helper\u0022 \u003CSystem.Numerics.Vector\u00601[float]\u003E\n-;  V09 tmp4         [V09,T15] (  2,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V10 tmp5         [V10,T14] (  3,  0   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V09 tmp4         [V09,T14] (  2,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V10 tmp5         [V10,T13] (  3,  0   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp6         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V12 tmp7         [V12,T05] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Objects.DataClasses.RelatedEnd,System.Collections.Generic.HashSet\u00601[System.Numerics.Vector\u00601[float]]]\u003E\n ;* V13 tmp8         [V13    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V14 tmp9         [V14,T04] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Objects.Internal.IEntityWrapper\u003E\n ;  V15 tmp10        [V15,T06] (  3,  2.50)   byref  -\u003E  rax         single-def \u0022Inline stloc first use temp\u0022\n-;  V16 tmp11        [V16,T10] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Objects.Internal.IEntityWrapper\u003E\n\u002B;  V16 tmp11        [V16,T09] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Objects.Internal.IEntityWrapper\u003E\n ;* V17 tmp12        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Objects.DataClasses.RelatedEnd,System.Collections.Generic.HashSet\u00601[System.Numerics.Vector\u00601[float]]]\u003E\n ;* V18 tmp13        [V18    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V19 tmp14        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Objects.DataClasses.RelatedEnd,System.Collections.Generic.HashSet\u00601[System.Numerics.Vector\u00601[float]]]\u003E\n@@ -32,19 \u002B32,19 @@\n ;* V21 tmp16        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Objects.DataClasses.RelatedEnd,System.Collections.Generic.HashSet\u00601[System.Numerics.Vector\u00601[float]]]\u003E\n ;* V22 tmp17        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V23 tmp18        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V24 tmp19        [V24    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V24 tmp19        [V24    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V25 tmp20        [V25    ] (  0,  0   )  simd32  -\u003E  zero-ref    single-def\n-;  V26 tmp21        [V26,T12] (  5,  2.50)  simd32  -\u003E  [rbp-0x50]  do-not-enreg[DAS] defined-via-address \u0022Inline return value spill temp\u0022 \u003CSystem.Numerics.Vector\u00601[float]\u003E\n-;  V27 tmp22        [V27,T09] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V26 tmp21        [V26,T12] (  4,  2   )  simd32  -\u003E  [rbp-0x50]  do-not-enreg[DAS] defined-via-address \u0022Inline return value spill temp\u0022 \u003CSystem.Numerics.Vector\u00601[float]\u003E\n\u002B;* V27 tmp22        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V28 tmp23        [V28    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022Inline return value spill temp\u0022\n ;* V29 tmp24        [V29    ] (  0,  0   )    long  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Numerics.Vector\u00601[float]\u003E\n ;* V30 tmp25        [V30    ] (  0,  0   )    long  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Numerics.Vector\u00601[float]\u003E\n-;  V31 tmp26        [V31,T11] (  2,  1   )   ubyte  -\u003E  rsi         single-def \u0022Inline return value spill temp\u0022\n\u002B;  V31 tmp26        [V31,T10] (  2,  1   )   ubyte  -\u003E  rsi         single-def \u0022Inline return value spill temp\u0022\n ;* V32 tmp27        [V32    ] (  0,  0   )  simd32  -\u003E  zero-ref    single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Numerics.Vector\u00601[float]\u003E\n ;* V33 tmp28        [V33    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V34 tmp29        [V34    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V35 tmp30        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Objects.DataClasses.RelationshipNavigation\u003E\n-;  V36 tmp31        [V36,T16] (  2,  0   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Objects.DataClasses.RelationshipNavigation\u003E\n\u002B;  V36 tmp31        [V36,T15] (  2,  0   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Objects.DataClasses.RelationshipNavigation\u003E\n ;* V37 tmp32        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V38 tmp33        [V38    ] (  1,  1   )     int  -\u003E  [rbp-0x58]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V39 tmp34        [V39    ] (  0,  0   )  struct (40) zero-ref    do-not-enreg[SF] \u0022stack allocated [boxed] System.Numerics.Vector\u00601\u0022 \u003C[boxed] System.Numerics.Vector\u00601[float]\u003E\n@@ -53,7 \u002B53,7 @@\n ;* V42 tmp37        [V42    ] (  0,  0   )  simd32  -\u003E  zero-ref    single-def \u0022V39.[008..040)\u0022\n ;* V43 tmp38        [V43    ] (  0,  0   )    long  -\u003E  zero-ref    single-def \u0022V40.[000..008)\u0022\n ;* V44 tmp39        [V44    ] (  0,  0   )  simd32  -\u003E  zero-ref    single-def \u0022V40.[008..040)\u0022\n-;  V45 tmp40        [V45,T17] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V45 tmp40        [V45,T16] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;  V46 cse0         [V46,T08] (  3,  2.50)    long  -\u003E  r14         \u0022CSE #02: moderate\u0022\n ;\n ; Lcl frame size = 96\n@@ -126,7 \u002B126,7 @@ G_M50968_IG06:\n        mov      ecx, 2\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary\u00602[System.__Canon,System.__Canon]:TryInsert(System.__Canon,System.__Canon,byte):bool:this\n        call     [rax]System.Collections.Generic.Dictionary\u00602[System.__Canon,System.__Canon]:TryInsert(System.__Canon,System.__Canon,byte):bool:this\n-       jmp      G_M50968_IG10\n\u002B       jmp      G_M50968_IG08\n \t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 3.88\n G_M50968_IG07:\n        mov      r15, gword ptr [rax]\n@@ -135,33 \u002B135,16 @@ G_M50968_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       G_M50968_IG10\n-       test     r15, r15\n-       je       G_M50968_IG12\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Numerics.Vector\u00601[float]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n        je       SHORT G_M50968_IG08\n-       lea      rdx, [rbp-0x28]\n-       lea      rsi, [rbp-0x50]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.Numerics.Vector\u00601[float]]:TryGetFirst(byref):System.Numerics.Vector\u00601[float]:this\n-       jmp      SHORT G_M50968_IG09\n-\t\t\t\t\t\t;; size=99 bbWeight=0.50 PerfScore 11.75\n-G_M50968_IG08:\n\u002B       test     r15, r15\n\u002B       je       G_M50968_IG10\n        lea      rdi, [rbp-0x50]\n        lea      rdx, [rbp-0x28]\n        mov      rsi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.Numerics.Vector\u00601[float]](System.Collections.Generic.IEnumerable\u00601[System.Numerics.Vector\u00601[float]],byref):System.Numerics.Vector\u00601[float]\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.Numerics.Vector\u00601[float]](System.Collections.Generic.IEnumerable\u00601[System.Numerics.Vector\u00601[float]],byref):System.Numerics.Vector\u00601[float]\n-\t\t\t\t\t\t;; size=23 bbWeight=0.50 PerfScore 2.25\n-G_M50968_IG09:\n        cmp      byte  ptr [rbp-0x28], 0\n-       je       G_M50968_IG13\n\u002B       je       G_M50968_IG11\n        vmovups  ymm0, ymmword ptr [rbp\u002B0x10]\n        vcmpeqps ymm1, ymm0, ymmword ptr [rbp-0x50]\n        vmovups  ymm2, ymmword ptr [rbp-0x50]\n@@ -175,9 \u002B158,9 @@ G_M50968_IG09:\n        movzx    rsi, sil\n        test     esi, esi\n        vmovups  ymmword ptr [rbp\u002B0x10], ymm0\n-       je       SHORT G_M50968_IG14\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 15.17\n-G_M50968_IG10:\n\u002B       je       SHORT G_M50968_IG12\n\u002B\t\t\t\t\t\t;; size=139 bbWeight=0.50 PerfScore 21.54\n\u002BG_M50968_IG08:\n        cmp      byte  ptr [r15], r15b\n        vmovups  ymm0, ymmword ptr [rbp\u002B0x10]\n        vmovups  ymmword ptr [rsp], ymm0\n@@ -187,7 \u002B170,7 @@ G_M50968_IG10:\n        call     [rax]System.Collections.Generic.HashSet\u00601[System.Numerics.Vector\u00601[float]]:AddIfNotPresent(System.Numerics.Vector\u00601[float],byref):bool:this\n        nop      \n \t\t\t\t\t\t;; size=33 bbWeight=1 PerfScore 9.25\n-G_M50968_IG11:\n\u002BG_M50968_IG09:\n        vzeroupper \n        add      rsp, 96\n        pop      rbx\n@@ -197,18 \u002B180,18 @@ G_M50968_IG11:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 4.75\n-G_M50968_IG12:\n\u002BG_M50968_IG10:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M50968_IG13:\n\u002BG_M50968_IG11:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M50968_IG14:\n\u002BG_M50968_IG12:\n        mov      rdi, gword ptr [rbx\u002B0x10]\n        mov      r15, gword ptr [rdi\u002B0x18]\n        mov      rbx, gword ptr [rbx\u002B0x10]\n@@ -228,5 \u002B211,5 @@ G_M50968_IG14:\n        int3     \n \t\t\t\t\t\t;; size=76 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 579, prolog size 30, PerfScore 85.29, instruction count 141, allocated bytes for code 579 (MethodHash=208638e7) for method System.Data.Entity.Core.Objects.EntityEntry:AddDetectedRelationship[System.Numerics.Vector\u00601[float]](System.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Objects.Internal.IEntityWrapper,System.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Objects.DataClasses.RelatedEnd,System.Collections.Generic.HashSet\u00601[System.Numerics.Vector\u00601[float]]]],System.Numerics.Vector\u00601[float],System.Data.Entity.Core.Objects.DataClasses.RelatedEnd) (FullOpts)\n\u002B; Total bytes of code 522, prolog size 30, PerfScore 77.67, instruction count 128, allocated bytes for code 522 (MethodHash=208638e7) for method System.Data.Entity.Core.Objects.EntityEntry:AddDetectedRelationship[System.Numerics.Vector\u00601[float]](System.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Objects.Internal.IEntityWrapper,System.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Objects.DataClasses.RelatedEnd,System.Collections.Generic.HashSet\u00601[System.Numerics.Vector\u00601[float]]]],System.Numerics.Vector\u00601[float],System.Data.Entity.Core.Objects.DataClasses.RelatedEnd) (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":579,"DiffBytes":522},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollection[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,137 -\u003E 1,056 bytes (-81)","ExtraInfo":null,"Diff":"@@ -14,14 \u002B14,14 @@\n ;  V03 arg2         [V03,T05] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[int,System.__Canon]\u003E\n ;  V04 arg3         [V04,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T24] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n\u002B;  V06 loc0         [V06,T23] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n-;  V08 loc2         [V08,T25] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n-;  V09 loc3         [V09,T22] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V08 loc2         [V08,T24] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n\u002B;  V09 loc3         [V09,T21] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V12 tmp2         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V13 tmp3         [V13,T31] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V13 tmp3         [V13,T30] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V14 tmp4         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V15 tmp5         [V15    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V16 tmp6         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n@@ -39,17 \u002B39,17 @@\n ;* V28 tmp18        [V28    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V29 tmp19        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V30 tmp20        [V30    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V31 tmp21        [V31,T23] (  3,  2   )     int  -\u003E  registers  \n-;  V32 tmp22        [V32,T06] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V33 tmp23        [V33    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V34 tmp24        [V34,T20] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V35 tmp25        [V35,T21] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V31 tmp21        [V31,T22] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V32 tmp22        [V32,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V33 tmp23        [V33    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V34 tmp24        [V34,T20] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V37 tmp27        [V37,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V38 tmp28        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V39 tmp29        [V39,T28] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V39 tmp29        [V39,T27] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V41 tmp31        [V41,T19] (  8,  3   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V41 tmp31        [V41,T19] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V42 tmp32        [V42,T07] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V43 tmp33        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V44 tmp34        [V44,T10] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -58,13 \u002B58,13 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;  V50 tmp40        [V50,T16] (  2,  2   )     ref  -\u003E  [rbp-0x90]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V51 tmp41        [V51,T26] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V15.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp42        [V52,T27] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V15.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V50 tmp40        [V50,T16] (  2,  2   )     ref  -\u003E  [rbp-0x88]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V51 tmp41        [V51,T25] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V15.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp42        [V52,T26] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V15.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V53 tmp43        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V22._name (fldOffset=0x0)\u0022 P-DEP\n ;* V54 tmp44        [V54    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V22._value (fldOffset=0x8)\u0022 P-DEP\n-;  V55 tmp45        [V55,T29] (  2,  1   )     ref  -\u003E  rax         \u0022field V23._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V56 tmp46        [V56,T30] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V23._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V55 tmp45        [V55,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V23._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V56 tmp46        [V56,T29] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V23._value (fldOffset=0x8)\u0022 P-INDEP\n ;  V57 tmp47        [V57,T17] (  2,  4   )    long  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V58 tmp48        [V58,T18] (  2,  4   )    long  -\u003E  rsi         \u0022argument with side effect\u0022\n ;  V59 rat0         [V59,T14] (  3,  4   )    long  -\u003E  rdi         \u0022runtime lookup\u0022\n@@ -72,7 \u002B72,7 @@\n ;  V61 rat2         [V61,T15] (  3,  4   )    long  -\u003E  rsi         \u0022runtime lookup\u0022\n ;  V62 rat3         [V62,T09] (  3,  5.60)    long  -\u003E  rsi         \u0022fgMakeTemp is creating a new local variable\u0022\n ;\n-; Lcl frame size = 168\n\u002B; Lcl frame size = 152\n \n G_M65211_IG01:\n        push     rbp\n@@ -81,14 \u002B81,14 @@ G_M65211_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 168\n-       lea      rbp, [rsp\u002B0xD0]\n\u002B       sub      rsp, 152\n\u002B       lea      rbp, [rsp\u002B0xC0]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x78], rax\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        mov      qword ptr [rbp-0x30], rsi\n-       mov      gword ptr [rbp-0x90], r9\n\u002B       mov      gword ptr [rbp-0x88], r9\n        mov      r15, rdi\n        mov      r14, rsi\n        mov      r13, rdx\n@@ -104,7 \u002B104,7 @@ G_M65211_IG02:\n        mov      rdi, qword ptr [r14\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M65211_IG31\n\u002B       je       G_M65211_IG28\n \t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 9.25\n G_M65211_IG03:\n        mov      rsi, r12\n@@ -154,90 \u002B154,70 @@ G_M65211_IG05:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[int,System.__Canon]:Render(MongoDB.Driver.RenderArgs\u00601[int]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]:this\n        mov      r12, rax\n-       mov      rax, gword ptr [r12\u002B0x08]\n-       mov      gword ptr [rbp-0x80], rax\n-       test     rax, rax\n-       je       G_M65211_IG33\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n... diff truncated; middle omitted ...\n-G_M65211_IG18:\n\u002BG_M65211_IG15:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M65211_IG20\n\u002B       je       SHORT G_M65211_IG17\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M65211_IG19:\n\u002BG_M65211_IG16:\n        xor      ecx, ecx\n-       jmp      SHORT G_M65211_IG22\n\u002B       jmp      SHORT G_M65211_IG19\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M65211_IG20:\n\u002BG_M65211_IG17:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -245,30 \u002B225,30 @@ G_M65211_IG20:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M65211_IG22\n\u002B       jmp      SHORT G_M65211_IG19\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M65211_IG21:\n\u002BG_M65211_IG18:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M65211_IG22:\n\u002BG_M65211_IG19:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M65211_IG23:\n\u002BG_M65211_IG20:\n        mov      dword ptr [rbp-0x6C], ecx\n        mov      rdi, gword ptr [r12\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M65211_IG34\n\u002B       je       G_M65211_IG31\n        cmp      dword ptr [rbp-0x6C], 0\n-       je       G_M65211_IG34\n\u002B       je       G_M65211_IG31\n        mov      rdi, qword ptr [r14\u002B0x18]\n        mov      rsi, qword ptr [rdi\u002B0x20]\n        test     rsi, rsi\n-       je       G_M65211_IG32\n\u002B       je       G_M65211_IG29\n \t\t\t\t\t\t;; size=56 bbWeight=1 PerfScore 14.75\n-G_M65211_IG24:\n\u002BG_M65211_IG21:\n        mov      rdi, r15\n        mov      rdx, r12\n        mov      rcx, rbx\n@@ -280,13 \u002B260,13 @@ G_M65211_IG24:\n        cmp      byte  ptr [r14], r14b\n        mov      rdi, r15\n        mov      rsi, r13\n-       mov      r9, gword ptr [rbp-0x90]\n\u002B       mov      r9, gword ptr [rbp-0x88]\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 16.25\n-G_M65211_IG25:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=74 bbWeight=1 PerfScore 16.25\n\u002BG_M65211_IG22:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -294,22 \u002B274,22 @@ G_M65211_IG25:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r13\n        mov      rcx, r14\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=64 bbWeight=1 PerfScore 11.25\n-G_M65211_IG26:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M65211_IG29\n-\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 2.00\n-G_M65211_IG27:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n\u002BG_M65211_IG23:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M65211_IG26\n\u002B\t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n\u002BG_M65211_IG24:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M65211_IG28\n\u002B       je       SHORT G_M65211_IG25\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -318,12 \u002B298,12 @@ G_M65211_IG27:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M65211_IG28:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n\u002BG_M65211_IG25:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M65211_IG29\n\u002B       je       SHORT G_M65211_IG26\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -332,12 \u002B312,12 @@ G_M65211_IG28:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M65211_IG29:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n\u002BG_M65211_IG26:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M65211_IG30:\n-       add      rsp, 168\n\u002BG_M65211_IG27:\n\u002B       add      rsp, 152\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -346,7 \u002B326,7 @@ G_M65211_IG30:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M65211_IG31:\n\u002BG_M65211_IG28:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -354,21 \u002B334,21 @@ G_M65211_IG31:\n        mov      rdi, rax\n        jmp      G_M65211_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M65211_IG32:\n\u002BG_M65211_IG29:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M65211_IG24\n\u002B       jmp      G_M65211_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M65211_IG33:\n\u002BG_M65211_IG30:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M65211_IG34:\n\u002BG_M65211_IG31:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -380,16 \u002B360,16 @@ G_M65211_IG34:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M65211_IG35:\n\u002BG_M65211_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M65211_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M65211_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M65211_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M65211_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M65211_IG37\n\u002B       je       SHORT G_M65211_IG34\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -398,12 \u002B378,12 @@ G_M65211_IG36:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M65211_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M65211_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M65211_IG38\n\u002B       je       SHORT G_M65211_IG35\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -412,14 \u002B392,14 @@ G_M65211_IG37:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M65211_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M65211_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M65211_IG39:\n\u002BG_M65211_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1137, prolog size 72, PerfScore 161.80, instruction count 268, allocated bytes for code 1137 (MethodHash=1f270144) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollection[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 1056, prolog size 72, PerfScore 152.42, instruction count 254, allocated bytes for code 1056 (MethodHash=1f270144) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollection[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1137,"DiffBytes":1056},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.MoneyManagement.PayoutIntentService:ListAutoPaging(Stripe.V2.MoneyManagement.PayoutIntentListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.PayoutIntent]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.MoneyManagement.PayoutIntentService:ListAutoPaging(Stripe.V2.MoneyManagement.PayoutIntentListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.PayoutIntent]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.MoneyManagement.PayoutIntentService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.MoneyManagement.PayoutIntentListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.MoneyManagement.PayoutIntentListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.PayoutIntent]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.PayoutIntent]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.PayoutIntent]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.PayoutIntent]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.PayoutIntent]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.PayoutIntent]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.PayoutIntent]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.PayoutIntent]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.PayoutIntent]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M34076_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M34076_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/money_management/payout_intents\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M34076_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M34076_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.PayoutIntent]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.PayoutIntent]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M34076_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M34076_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.PayoutIntent]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.PayoutIntent]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M34076_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M34076_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=f2137ae3) for method Stripe.V2.MoneyManagement.PayoutIntentService:ListAutoPaging(Stripe.V2.MoneyManagement.PayoutIntentListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.PayoutIntent]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=f2137ae3) for method Stripe.V2.MoneyManagement.PayoutIntentService:ListAutoPaging(Stripe.V2.MoneyManagement.PayoutIntentListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.PayoutIntent]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Query.InternalTrees.Command:CreateFunctionOp(System.Data.Entity.Core.Metadata.Edm.EdmFunction):System.Data.Entity.Core.Query.InternalTrees.FunctionOp:this (FullOpts)","Category":"improvement","Description":"189 -\u003E 132 bytes (-57)","ExtraInfo":null,"Diff":"@@ -1,87 \u002B1,66 @@\n ; Assembly listing for method System.Data.Entity.Core.Query.InternalTrees.Command:CreateFunctionOp(System.Data.Entity.Core.Metadata.Edm.EdmFunction):System.Data.Entity.Core.Query.InternalTrees.FunctionOp:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;* V00 this         [V00    ] (  0,  0   )     ref  -\u003E  zero-ref    this class-hnd single-def \u003CSystem.Data.Entity.Core.Query.InternalTrees.Command\u003E\n-;  V01 arg1         [V01,T02] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmFunction\u003E\n\u002B;  V01 arg1         [V01,T01] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmFunction\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V03 tmp1         [V03,T00] (  5, 10   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Query.InternalTrees.FunctionOp\u003E\n-;  V04 tmp2         [V04,T01] (  4,  7   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V05 tmp3         [V05    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V06 tmp4         [V06,T05] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n-;  V07 tmp5         [V07,T04] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V04 tmp2         [V04,T02] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V05 tmp3         [V05    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V06 tmp4         [V06,T04] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n\u002B;* V07 tmp5         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n ;  V08 tmp6         [V08,T03] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.TypeUsage\u003E\n ;\n-; Lcl frame size = 8\n\u002B; Lcl frame size = 16\n \n G_M8126_IG01:\n        push     rbp\n        push     r15\n-       push     r14\n        push     rbx\n-       push     rax\n\u002B       sub      rsp, 16\n        lea      rbp, [rsp\u002B0x20]\n        mov      rbx, rsi\n-\t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 5.75\n\u002B\t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 4.00\n G_M8126_IG02:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Query.InternalTrees.FunctionOp\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n-       mov      r14, gword ptr [rbx\u002B0x48]\n-       test     r14, r14\n-       je       G_M8126_IG07\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n\u002B       mov      rsi, gword ptr [rbx\u002B0x48]\n\u002B       test     rsi, rsi\n        je       SHORT G_M8126_IG04\n-\t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 9.75\n-G_M8126_IG03:\n-       lea      rsi, [rbp-0x20]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M8126_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M8126_IG04:\n-       lea      rdx, [rbp-0x20]\n-       mov      rsi, r14\n\u002B       lea      rdx, [rbp-0x18]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.FunctionParameter](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter],byref):System.Data.Entity.Core.Metadata.Edm.FunctionParameter\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M8126_IG05:\n        mov      rsi, gword ptr [rax\u002B0x28]\n        mov      dword ptr [r15\u002B0x08], 30\n        lea      rdi, bword ptr [r15\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r15\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rax, r15\n-\t\t\t\t\t\t;; size=36 bbWeight=1 PerfScore 6.50\n-G_M8126_IG06:\n-       add      rsp, 8\n\u002B\t\t\t\t\t\t;; size=89 bbWeight=1 PerfScore 15.25\n\u002BG_M8126_IG03:\n\u002B       add      rsp, 16\n        pop      rbx\n-       pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M8126_IG07:\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 2.75\n\u002BG_M8126_IG04:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 189, prolog size 12, PerfScore 32.25, instruction count 48, allocated bytes for code 189 (MethodHash=fd61e041) for method System.Data.Entity.Core.Query.InternalTrees.Command:CreateFunctionOp(System.Data.Entity.Core.Metadata.Edm.EdmFunction):System.Data.Entity.Core.Query.InternalTrees.FunctionOp:this (FullOpts)\n\u002B; Total bytes of code 132, prolog size 13, PerfScore 22.00, instruction count 33, allocated bytes for code 132 (MethodHash=fd61e041) for method System.Data.Entity.Core.Query.InternalTrees.Command:CreateFunctionOp(System.Data.Entity.Core.Metadata.Edm.EdmFunction):System.Data.Entity.Core.Query.InternalTrees.FunctionOp:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":189,"DiffBytes":132},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[int]:Aggregate[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[int,System.Nullable\u00601[int]]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Nullable\u00601[int]]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n... diff truncated; middle omitted ...\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M10012_IG26\n\u002B       je       SHORT G_M10012_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M10012_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M10012_IG26:\n\u002BG_M10012_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M10012_IG27:\n\u002BG_M10012_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M10012_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M10012_IG28:\n\u002BG_M10012_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M10012_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M10012_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M10012_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M10012_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M10012_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M10012_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M10012_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M10012_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M10012_IG31\n\u002B       je       SHORT G_M10012_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M10012_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M10012_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M10012_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M10012_IG32\n\u002B       je       SHORT G_M10012_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M10012_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M10012_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M10012_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M10012_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateAggregateToCollectionResultCursor[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M10012_IG33:\n\u002BG_M10012_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M10012_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M10012_IG34:\n\u002BG_M10012_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M10012_IG35:\n\u002BG_M10012_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M10012_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M10012_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M10012_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M10012_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M10012_IG37\n\u002B       je       SHORT G_M10012_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M10012_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M10012_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M10012_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M10012_IG38\n\u002B       je       SHORT G_M10012_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M10012_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M10012_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M10012_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M10012_IG39:\n\u002BG_M10012_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M10012_IG40:\n\u002BG_M10012_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M10012_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M10012_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M10012_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M10012_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M10012_IG42\n\u002B       je       SHORT G_M10012_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M10012_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M10012_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M10012_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M10012_IG43\n\u002B       je       SHORT G_M10012_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M10012_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M10012_IG43:\n\u002BG_M10012_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M10012_IG44:\n\u002BG_M10012_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=7ebdd8e3) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:Aggregate[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=7ebdd8e3) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:Aggregate[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.MoneyManagement.PayoutMethodService:ListAutoPaging(Stripe.V2.MoneyManagement.PayoutMethodListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.PayoutMethod]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.MoneyManagement.PayoutMethodService:ListAutoPaging(Stripe.V2.MoneyManagement.PayoutMethodListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.PayoutMethod]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.MoneyManagement.PayoutMethodService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.MoneyManagement.PayoutMethodListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.MoneyManagement.PayoutMethodListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.PayoutMethod]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.PayoutMethod]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.PayoutMethod]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.PayoutMethod]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.PayoutMethod]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.PayoutMethod]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.PayoutMethod]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.PayoutMethod]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.PayoutMethod]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M26767_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M26767_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/money_management/payout_methods\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M26767_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M26767_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.PayoutMethod]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.PayoutMethod]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M26767_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M26767_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.PayoutMethod]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.PayoutMethod]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M26767_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M26767_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=42bf9770) for method Stripe.V2.MoneyManagement.PayoutMethodService:ListAutoPaging(Stripe.V2.MoneyManagement.PayoutMethodListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.PayoutMethod]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=42bf9770) for method Stripe.V2.MoneyManagement.PayoutMethodService:ListAutoPaging(Stripe.V2.MoneyManagement.PayoutMethodListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.PayoutMethod]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.ModelConfiguration.Edm.EdmModelExtensions:ReplaceEntitySet(System.Data.Entity.Core.Metadata.Edm.EdmModel,System.Data.Entity.Core.Metadata.Edm.EntityType,System.Data.Entity.Core.Metadata.Edm.EntitySet) (FullOpts)","Category":"improvement","Description":"641 -\u003E 584 bytes (-57)","ExtraInfo":null,"Diff":"@@ -8,45 \u002B8,45 @@\n ; 0 inlinees with PGO data; 12 single block inlinees; 6 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T10] (  5,  4.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmModel\u003E\n-;  V01 arg1         [V01,T11] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n-;  V02 arg2         [V02,T07] (  5,  6.50)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySet\u003E\n-;  V03 loc0         [V03,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CSystem.Data.Entity.ModelConfiguration.Edm.EdmModelExtensions\u002B\u003C\u003Ec__DisplayClass33_0\u003E\n\u002B;  V00 arg0         [V00,T09] (  5,  4.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmModel\u003E\n\u002B;  V01 arg1         [V01,T10] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n\u002B;  V02 arg2         [V02,T06] (  5,  6.50)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySet\u003E\n\u002B;  V03 loc0         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CSystem.Data.Entity.ModelConfiguration.Edm.EdmModelExtensions\u002B\u003C\u003Ec__DisplayClass33_0\u003E\n ;* V04 loc1         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityContainer\u003E\n-;  V05 loc2         [V05,T04] (  5, 10.50)     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySet\u003E\n\u002B;  V05 loc2         [V05,T03] (  5, 10.50)     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySet\u003E\n ;* V06 loc3         [V06    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601\u002BEnumerator[System.Data.Entity.Core.Metadata.Edm.AssociationSet]\u003E\n ;* V07 loc4         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationSet\u003E\n ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V09 tmp1         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Edm.EdmModelExtensions\u002B\u003C\u003Ec__DisplayClass33_0\u003E\n-;  V10 tmp2         [V10,T08] (  4,  8   )     ref  -\u003E  [rbp-0x50]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Metadata.Edm.EntitySet,bool]\u003E\n-;  V11 tmp3         [V11,T12] (  2,  4   )     ref  -\u003E  [rbp-0x58]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EntitySet]\u003E\n\u002B;  V10 tmp2         [V10,T07] (  4,  8   )     ref  -\u003E  [rbp-0x50]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Metadata.Edm.EntitySet,bool]\u003E\n\u002B;  V11 tmp3         [V11,T11] (  2,  4   )     ref  -\u003E  [rbp-0x58]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EntitySet]\u003E\n ;* V12 tmp4         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EntityContainer]\u003E\n ;  V13 tmp5         [V13    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V14 tmp6         [V14,T15] (  3,  2.50)     ref  -\u003E  r12         single-def\n\u002B;  V14 tmp6         [V14,T14] (  3,  2.50)     ref  -\u003E  r12         single-def\n ;  V15 tmp7         [V15    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V16 tmp8         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EntityContainer]\u003E\n ;  V17 tmp9         [V17    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V18 tmp10        [V18,T19] (  2,  1   )     ref  -\u003E  rdi         single-def\n-;  V19 tmp11        [V19,T17] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSet]\u003E\n\u002B;  V18 tmp10        [V18,T18] (  2,  1   )     ref  -\u003E  rdi         single-def\n\u002B;  V19 tmp11        [V19,T16] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSet]\u003E\n ;* V20 tmp12        [V20    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601\u002BEnumerator[System.Data.Entity.Core.Metadata.Edm.AssociationSet]\u003E\n ;* V21 tmp13        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IList\u00601[System.__Canon]\u003E\n-;  V22 tmp14        [V22,T09] (  3,  8   )     ref  -\u003E  rdi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySet\u003E\n\u002B;  V22 tmp14        [V22,T08] (  3,  8   )     ref  -\u003E  rdi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySet\u003E\n ;* V23 tmp15        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationSetEnd\u003E\n-;  V24 tmp16        [V24,T00] (  4, 28   )     ref  -\u003E  [rbp-0x60]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n-;  V25 tmp17        [V25    ] (  2,  4   )   ubyte  -\u003E  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V26 tmp18        [V26,T05] (  4, 10   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationSetEnd\u003E\n-;  V27 tmp19        [V27,T03] (  4, 12   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n\u002B;  V24 tmp16        [V24,T00] (  3, 24   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n\u002B;  V25 tmp17        [V25    ] (  1,  4   )   ubyte  -\u003E  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V26 tmp18        [V26,T04] (  3, 10   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationSetEnd\u003E\n\u002B;* V27 tmp19        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n ;* V28 tmp20        [V28    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V29 tmp21        [V29    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022non-inline candidate call\u0022\n-;  V30 tmp22        [V30,T06] (  4,  9   )     ref  -\u003E  r15         single-def \u0022field V06._parent (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V30 tmp22        [V30,T05] (  4,  9   )     ref  -\u003E  r15         single-def \u0022field V06._parent (fldOffset=0x0)\u0022 P-INDEP\n ;  V31 tmp23        [V31,T02] (  5, 16   )     ref  -\u003E  r12         \u0022field V06._current (fldOffset=0x8)\u0022 P-INDEP\n ;  V32 tmp24        [V32,T01] (  5, 16.50)     int  -\u003E  r14         \u0022field V06._nextIndex (fldOffset=0x10)\u0022 P-INDEP\n-;  V33 tmp25        [V33,T20] (  2,  1   )     ref  -\u003E  r15         single-def \u0022field V20._parent (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V33 tmp25        [V33,T19] (  2,  1   )     ref  -\u003E  r15         single-def \u0022field V20._parent (fldOffset=0x0)\u0022 P-INDEP\n ;* V34 tmp26        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V20._current (fldOffset=0x8)\u0022 P-INDEP\n ;* V35 tmp27        [V35    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V20._nextIndex (fldOffset=0x10)\u0022 P-INDEP\n-;  V36 tmp28        [V36,T13] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V37 tmp29        [V37,T18] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V38 cse0         [V38,T16] (  3,  2.50)    long  -\u003E  r14         \u0022CSE #02: moderate\u0022\n\u002B;  V36 tmp28        [V36,T12] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V37 tmp29        [V37,T17] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V38 cse0         [V38,T15] (  3,  2.50)    long  -\u003E  r14         \u0022CSE #02: moderate\u0022\n ;\n ; Lcl frame size = 56\n \n@@ -86,7 \u002B86,7 @@ G_M25571_IG02:\n        call     [rax]System.Linq.Enumerable:TryGetSingle[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        mov      r12, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M25571_IG16\n\u002B       je       G_M25571_IG13\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[System.Data.Entity.Core.Metadata.Edm.EntitySet,bool]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x50], rax\n@@ -110,7 \u002B110,7 @@ G_M25571_IG02:\n        call     [rax]System.Linq.Enumerable:TryGetSingle[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Func\u00602[System.__Canon,bool],byref):System.__Canon\n        mov      r13, rax\n        test     r13, r13\n-       je       G_M25571_IG15\n\u002B       je       G_M25571_IG12\n \t\t\t\t\t\t;; size=205 bbWeight=1 PerfScore 37.50\n G_M25571_IG03:\n        mov      rdi, r12\n@@ -118,7 \u002B118,7 @@ G_M25571_IG03:\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.EntityContainer:RemoveEntitySetBase(System.Data.Entity.Core.Metadata.Edm.EntitySetBase):this\n        call     [rax]System.Data.Entity.Core.Metadata.Edm.EntityContainer:RemoveEntitySetBase(System.Data.Entity.Core.Metadata.Edm.EntitySetBase):this\n        test     rbx, rbx\n-       je       G_M25571_IG15\n\u002B       je       G_M25571_IG12\n        mov      rdi, r15\n        call     [r14\u002B0x20]System.Data.Entity.Core.Metadata.Edm.EdmModel:get_Containers():System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EntityContainer]:this\n        mov      rsi, rax\n@@ -128,7 \u002B128,7 @@ G_M25571_IG03:\n        call     [rax]System.Linq.Enumerable:TryGetSingle[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        mov      rdi, rax\n        cmp      byte  ptr [rbp-0x40], 0\n-       je       G_M25571_IG16\n\u002B       je       G_M25571_IG13\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.EntityContainer:get_AssociationSets():System.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSet]:this\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.Data.Entity.Core.Metadata.Edm.EntityContainer:get_AssociationSets():System.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSet]:this\n@@ -138,7 \u002B138,7 @@ G_M25571_IG03:\n        mov      r11, 0xD1FFAB1E      ; function address\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M25571_IG15\n\u002B       je       G_M25571_IG12\n \t\t\t\t\t\t;; size=121 bbWeight=0.50 PerfScore 13.50\n G_M25571_IG04:\n        mov      rdi, r15\n@@ -147,74 \u002B147,54 @@ G_M25571_IG04:\n        call     [r11]System.Collections.Generic.IList\u00601[System.__Canon]:get_Item(int):System.__Canon:this\n        mov      r12, rax\n        inc      r14d\n-       mov      rax, gword ptr [r12\u002B0x50]\n-       mov      gword ptr [rbp-0x60], rax\n-       test     rax, rax\n-       je       G_M25571_IG17\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M25571_IG06\n-\t\t\t\t\t\t;; size=73 bbWeight=4 PerfScore 54.00\n-G_M25571_IG05:\n-       lea      rsi, [rbp-0x48]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M25571_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=2 PerfScore 19.50\n-G_M25571_IG06:\n\u002B       mov      rsi, gword ptr [r12\u002B0x50]\n\u002B       test     rsi, rsi\n\u002B       je       G_M25571_IG14\n        lea      rdx, [rbp-0x48]\n-       mov      rsi, gword ptr [rbp-0x60]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd],byref):System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=2 PerfScore 10.00\n-G_M25571_IG07:\n        test     rax, rax\n-       je       SHORT G_M25571_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=4 PerfScore 5.00\n-G_M25571_IG08:\n\u002B       je       SHORT G_M25571_IG06\n\u002B\t\t\t\t\t\t;; size=70 bbWeight=4 PerfScore 51.00\n\u002BG_M25571_IG05:\n        mov      rdi, gword ptr [rax\u002B0x20]\n-       jmp      SHORT G_M25571_IG10\n\u002B       jmp      SHORT G_M25571_IG07\n \t\t\t\t\t\t;; size=6 bbWeight=2 PerfScore 8.00\n-G_M25571_IG09:\n\u002BG_M25571_IG06:\n        xor      rdi, rdi\n \t\t\t\t\t\t;; size=2 bbWeight=2 PerfScore 0.50\n-G_M25571_IG10:\n\u002BG_M25571_IG07:\n        cmp      rdi, r13\n-       jne      SHORT G_M25571_IG12\n\u002B       jne      SHORT G_M25571_IG09\n \t\t\t\t\t\t;; size=5 bbWeight=4 PerfScore 5.00\n-G_M25571_IG11:\n\u002BG_M25571_IG08:\n        mov      rdi, r12\n        mov      rsi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.AssociationSet:set_SourceSet(System.Data.Entity.Core.Metadata.Edm.EntitySet):this\n        call     [rax]System.Data.Entity.Core.Metadata.Edm.AssociationSet:set_SourceSet(System.Data.Entity.Core.Metadata.Edm.EntitySet):this\n \t\t\t\t\t\t;; size=18 bbWeight=2 PerfScore 7.50\n-G_M25571_IG12:\n\u002BG_M25571_IG09:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.AssociationSet:get_TargetSet():System.Data.Entity.Core.Metadata.Edm.EntitySet:this\n        call     [rax]System.Data.Entity.Core.Metadata.Edm.AssociationSet:get_TargetSet():System.Data.Entity.Core.Metadata.Edm.EntitySet:this\n        cmp      rax, r13\n-       jne      SHORT G_M25571_IG14\n\u002B       jne      SHORT G_M25571_IG11\n \t\t\t\t\t\t;; size=20 bbWeight=4 PerfScore 19.00\n-G_M25571_IG13:\n\u002BG_M25571_IG10:\n        mov      rdi, r12\n        mov      rsi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.AssociationSet:set_TargetSet(System.Data.Entity.Core.Metadata.Edm.EntitySet):this\n        call     [rax]System.Data.Entity.Core.Metadata.Edm.AssociationSet:set_TargetSet(System.Data.Entity.Core.Metadata.Edm.EntitySet):this\n \t\t\t\t\t\t;; size=18 bbWeight=2 PerfScore 7.50\n-G_M25571_IG14:\n\u002BG_M25571_IG11:\n        mov      rdi, r15\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        cmp      eax, r14d\n        ja       G_M25571_IG04\n \t\t\t\t\t\t;; size=25 bbWeight=4 PerfScore 19.00\n-G_M25571_IG15:\n\u002BG_M25571_IG12:\n        add      rsp, 56\n        pop      rbx\n        pop      r12\n@@ -224,17 \u002B204,17 @@ G_M25571_IG15:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M25571_IG16:\n\u002BG_M25571_IG13:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M25571_IG17:\n\u002BG_M25571_IG14:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 641, prolog size 39, PerfScore 221.33, instruction count 151, allocated bytes for code 641 (MethodHash=e48e9c1c) for method System.Data.Entity.ModelConfiguration.Edm.EdmModelExtensions:ReplaceEntitySet(System.Data.Entity.Core.Metadata.Edm.EdmModel,System.Data.Entity.Core.Metadata.Edm.EntityType,System.Data.Entity.Core.Metadata.Edm.EntitySet) (FullOpts)\n\u002B; Total bytes of code 584, prolog size 39, PerfScore 183.83, instruction count 137, allocated bytes for code 584 (MethodHash=e48e9c1c) for method System.Data.Entity.ModelConfiguration.Edm.EdmModelExtensions:ReplaceEntitySet(System.Data.Entity.Core.Metadata.Edm.EdmModel,System.Data.Entity.Core.Metadata.Edm.EntityType,System.Data.Entity.Core.Metadata.Edm.EntitySet) (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":641,"DiffBytes":584},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[int]:Aggregate[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[int,System.Numerics.Vector\u00601[float]]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n... diff truncated; middle omitted ...\n        test     r12, r12\n-       je       SHORT G_M16801_IG26\n\u002B       je       SHORT G_M16801_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M16801_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M16801_IG26:\n\u002BG_M16801_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M16801_IG27:\n\u002BG_M16801_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M16801_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M16801_IG28:\n\u002BG_M16801_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M16801_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M16801_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M16801_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M16801_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M16801_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M16801_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M16801_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M16801_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M16801_IG31\n\u002B       je       SHORT G_M16801_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M16801_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M16801_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M16801_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M16801_IG32\n\u002B       je       SHORT G_M16801_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M16801_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M16801_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M16801_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M16801_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateAggregateToCollectionResultCursor[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M16801_IG33:\n\u002BG_M16801_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M16801_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M16801_IG34:\n\u002BG_M16801_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M16801_IG35:\n\u002BG_M16801_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M16801_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M16801_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M16801_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M16801_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M16801_IG37\n\u002B       je       SHORT G_M16801_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M16801_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M16801_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M16801_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M16801_IG38\n\u002B       je       SHORT G_M16801_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M16801_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M16801_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M16801_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M16801_IG39:\n\u002BG_M16801_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M16801_IG40:\n\u002BG_M16801_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M16801_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M16801_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M16801_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M16801_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M16801_IG42\n\u002B       je       SHORT G_M16801_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M16801_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M16801_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M16801_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M16801_IG43\n\u002B       je       SHORT G_M16801_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M16801_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M16801_IG43:\n\u002BG_M16801_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M16801_IG44:\n\u002BG_M16801_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=c0c9be5e) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:Aggregate[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=c0c9be5e) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:Aggregate[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.MoneyManagement.ReceivedCreditService:ListAutoPaging(Stripe.V2.MoneyManagement.ReceivedCreditListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.ReceivedCredit]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.MoneyManagement.ReceivedCreditService:ListAutoPaging(Stripe.V2.MoneyManagement.ReceivedCreditListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.ReceivedCredit]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.MoneyManagement.ReceivedCreditService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.MoneyManagement.ReceivedCreditListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.MoneyManagement.ReceivedCreditListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.ReceivedCredit]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.ReceivedCredit]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.ReceivedCredit]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.ReceivedCredit]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.ReceivedCredit]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.ReceivedCredit]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.ReceivedCredit]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.ReceivedCredit]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.ReceivedCredit]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M43444_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M43444_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/money_management/received_credits\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M43444_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M43444_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.ReceivedCredit]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.ReceivedCredit]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M43444_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M43444_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.ReceivedCredit]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.ReceivedCredit]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M43444_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M43444_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=9162564b) for method Stripe.V2.MoneyManagement.ReceivedCreditService:ListAutoPaging(Stripe.V2.MoneyManagement.ReceivedCreditListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.ReceivedCredit]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=9162564b) for method Stripe.V2.MoneyManagement.ReceivedCreditService:ListAutoPaging(Stripe.V2.MoneyManagement.ReceivedCreditListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.ReceivedCredit]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.DbExpressionBuilder:CreateFunctionAggregate(System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression],bool):System.Data.Entity.Core.Common.CommandTrees.DbFunctionAggregate (FullOpts)","Category":"improvement","Description":"239 -\u003E 183 bytes (-56)","ExtraInfo":null,"Diff":"@@ -1,105 \u002B1,85 @@\n ; Assembly listing for method System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.DbExpressionBuilder:CreateFunctionAggregate(System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression],bool):System.Data.Entity.Core.Common.CommandTrees.DbFunctionAggregate (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 7 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 arg0         [V00,T01] (  5,  5   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmFunction\u003E\n ;  V01 arg1         [V01,T03] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression]\u003E\n ;  V02 arg2         [V02,T04] (  3,  3   )   ubyte  -\u003E  r15         single-def\n-;  V03 loc0         [V03,T07] (  2,  2   )     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.Data.Entity.Core.Common.CommandTrees.Internal.DbExpressionList\u003E\n\u002B;  V03 loc0         [V03,T05] (  2,  2   )     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.Data.Entity.Core.Common.CommandTrees.Internal.DbExpressionList\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V05 tmp1         [V05,T00] (  6, 12   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.CommandTrees.DbFunctionAggregate\u003E\n-;  V06 tmp2         [V06,T02] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V07 tmp3         [V07    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V08 tmp4         [V08,T06] (  3,  2   )     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n-;  V09 tmp5         [V09,T05] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V05 tmp1         [V05,T00] (  6, 12   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.CommandTrees.DbFunctionAggregate\u003E\n\u002B;  V06 tmp2         [V06,T02] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V07 tmp3         [V07    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V08 tmp4         [V08,T06] (  2,  2   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n\u002B;* V09 tmp5         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n ;* V10 tmp6         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.TypeUsage\u003E\n ;\n ; Lcl frame size = 8\n \n G_M1492_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x30], rax\n        mov      rbx, rdi\n        mov      r15d, edx\n \t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 9.25\n G_M1492_IG02:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation:ValidateFunctionAggregate(System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression]):System.Data.Entity.Core.Common.CommandTrees.Internal.DbExpressionList\n        call     [rax]System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation:ValidateFunctionAggregate(System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression]):System.Data.Entity.Core.Common.CommandTrees.Internal.DbExpressionList\n        mov      r14, rax\n-       mov      r13, gword ptr [rbx\u002B0x48]\n-       test     r13, r13\n-       je       G_M1492_IG07\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n\u002B       mov      rsi, gword ptr [rbx\u002B0x48]\n\u002B       test     rsi, rsi\n        je       SHORT G_M1492_IG04\n-\t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 12.00\n-G_M1492_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      r12, rax\n-       jmp      SHORT G_M1492_IG05\n-\t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 5.00\n-G_M1492_IG04:\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.FunctionParameter](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter],byref):System.Data.Entity.Core.Metadata.Edm.FunctionParameter\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      r12, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M1492_IG05:\n\u002B       mov      r13, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Common.CommandTrees.DbFunctionAggregate\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rsi, gword ptr [r12\u002B0x28]\n-       lea      rdi, bword ptr [r13\u002B0x10]\n\u002B       mov      r12, rax\n\u002B       mov      rsi, gword ptr [r13\u002B0x28]\n\u002B       lea      rdi, bword ptr [r12\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r13\u002B0x08]\n\u002B       lea      rdi, bword ptr [r12\u002B0x08]\n        mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r13\u002B0x18]\n\u002B       lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      byte  ptr [r13\u002B0x20], r15b\n-       mov      rax, r13\n-\t\t\t\t\t\t;; size=63 bbWeight=1 PerfScore 9.75\n-G_M1492_IG06:\n\u002B       mov      byte  ptr [r12\u002B0x20], r15b\n\u002B       mov      rax, r12\n\u002B\t\t\t\t\t\t;; size=122 bbWeight=1 PerfScore 21.00\n\u002BG_M1492_IG03:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M1492_IG07:\n\u002BG_M1492_IG04:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 239, prolog size 22, PerfScore 42.50, instruction count 64, allocated bytes for code 239 (MethodHash=f816fa2b) for method System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.DbExpressionBuilder:CreateFunctionAggregate(System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression],bool):System.Data.Entity.Core.Common.CommandTrees.DbFunctionAggregate (FullOpts)\n\u002B; Total bytes of code 183, prolog size 22, PerfScore 34.50, instruction count 50, allocated bytes for code 183 (MethodHash=f816fa2b) for method System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.DbExpressionBuilder:CreateFunctionAggregate(System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression],bool):System.Data.Entity.Core.Common.CommandTrees.DbFunctionAggregate (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":239,"DiffBytes":183},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[int]:Aggregate[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[int,byte]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[byte]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[byte]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[byte]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[byte]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[byte]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V69 tmp59        [V69,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 8.75\n-G_M28712_IG25:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M28712_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M28712_IG26\n\u002B       je       SHORT G_M28712_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M28712_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M28712_IG26:\n\u002BG_M28712_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M28712_IG27:\n\u002BG_M28712_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M28712_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M28712_IG28:\n\u002BG_M28712_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M28712_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M28712_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M28712_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M28712_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M28712_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M28712_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M28712_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M28712_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M28712_IG31\n\u002B       je       SHORT G_M28712_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M28712_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M28712_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M28712_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M28712_IG32\n\u002B       je       SHORT G_M28712_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M28712_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M28712_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M28712_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M28712_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateAggregateToCollectionResultCursor[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[byte],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[byte]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M28712_IG33:\n\u002BG_M28712_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M28712_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M28712_IG34:\n\u002BG_M28712_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M28712_IG35:\n\u002BG_M28712_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M28712_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M28712_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M28712_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M28712_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M28712_IG37\n\u002B       je       SHORT G_M28712_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M28712_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M28712_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M28712_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M28712_IG38\n\u002B       je       SHORT G_M28712_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M28712_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M28712_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M28712_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M28712_IG39:\n\u002BG_M28712_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M28712_IG40:\n\u002BG_M28712_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M28712_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M28712_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M28712_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M28712_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M28712_IG42\n\u002B       je       SHORT G_M28712_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M28712_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M28712_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M28712_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M28712_IG43\n\u002B       je       SHORT G_M28712_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M28712_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M28712_IG43:\n\u002BG_M28712_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M28712_IG44:\n\u002BG_M28712_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=c6008fd7) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:Aggregate[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=c6008fd7) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:Aggregate[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.MoneyManagement.ReceivedDebitMandateService:ListAutoPaging(Stripe.V2.MoneyManagement.ReceivedDebitMandateListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.ReceivedDebitMandate]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.MoneyManagement.ReceivedDebitMandateService:ListAutoPaging(Stripe.V2.MoneyManagement.ReceivedDebitMandateListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.ReceivedDebitMandate]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.MoneyManagement.ReceivedDebitMandateService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.MoneyManagement.ReceivedDebitMandateListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.MoneyManagement.ReceivedDebitMandateListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.ReceivedDebitMandate]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.ReceivedDebitMandate]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.ReceivedDebitMandate]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.ReceivedDebitMandate]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.ReceivedDebitMandate]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.ReceivedDebitMandate]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.ReceivedDebitMandate]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.ReceivedDebitMandate]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.ReceivedDebitMandate]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M39281_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M39281_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/money_management/received_debit_mandates\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M39281_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M39281_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.ReceivedDebitMandate]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.ReceivedDebitMandate]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M39281_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M39281_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.ReceivedDebitMandate]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.ReceivedDebitMandate]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M39281_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M39281_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=e35f668e) for method Stripe.V2.MoneyManagement.ReceivedDebitMandateService:ListAutoPaging(Stripe.V2.MoneyManagement.ReceivedDebitMandateListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.ReceivedDebitMandate]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=e35f668e) for method Stripe.V2.MoneyManagement.ReceivedDebitMandateService:ListAutoPaging(Stripe.V2.MoneyManagement.ReceivedDebitMandateListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.ReceivedDebitMandate]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.DbExpressionBuilder:CreateFunctionAggregate(System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Data.Entity.Core.Common.CommandTrees.DbExpression,bool):System.Data.Entity.Core.Common.CommandTrees.DbFunctionAggregate (FullOpts)","Category":"improvement","Description":"280 -\u003E 224 bytes (-56)","ExtraInfo":null,"Diff":"@@ -1,115 \u002B1,95 @@\n ; Assembly listing for method System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.DbExpressionBuilder:CreateFunctionAggregate(System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Data.Entity.Core.Common.CommandTrees.DbExpression,bool):System.Data.Entity.Core.Common.CommandTrees.DbFunctionAggregate (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 7 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 arg0         [V00,T01] (  5,  5   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmFunction\u003E\n ;  V01 arg1         [V01,T04] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Common.CommandTrees.DbExpression\u003E\n ;  V02 arg2         [V02,T05] (  3,  3   )   ubyte  -\u003E  r14         single-def\n-;  V03 loc0         [V03,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd exact single-def \u003CSystem.Data.Entity.Core.Common.CommandTrees.Internal.DbExpressionList\u003E\n\u002B;  V03 loc0         [V03,T06] (  2,  2   )     ref  -\u003E  r15         class-hnd exact single-def \u003CSystem.Data.Entity.Core.Common.CommandTrees.Internal.DbExpressionList\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V05 tmp1         [V05,T03] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Data.Entity.Core.Common.CommandTrees.DbExpression[]\u003E\n-;  V06 tmp2         [V06,T00] (  6, 12   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.CommandTrees.DbFunctionAggregate\u003E\n-;  V07 tmp3         [V07,T02] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V08 tmp4         [V08    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V09 tmp5         [V09,T07] (  3,  2   )     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n-;  V10 tmp6         [V10,T06] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V05 tmp1         [V05,T02] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Data.Entity.Core.Common.CommandTrees.DbExpression[]\u003E\n\u002B;  V06 tmp2         [V06,T00] (  6, 12   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.CommandTrees.DbFunctionAggregate\u003E\n\u002B;  V07 tmp3         [V07,T03] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V08 tmp4         [V08    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V09 tmp5         [V09,T07] (  2,  2   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n\u002B;* V10 tmp6         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n ;* V11 tmp7         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.TypeUsage\u003E\n ;\n ; Lcl frame size = 8\n \n G_M62011_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x30], rax\n        mov      rbx, rdi\n        mov      r15, rsi\n        mov      r14d, edx\n \t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 9.50\n G_M62011_IG02:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Common.CommandTrees.DbExpression[]\n        mov      esi, 1\n        call     CORINFO_HELP_NEWARR_1_PTR\n        mov      r13, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, rbx\n        mov      rsi, r13\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation:ValidateFunctionAggregate(System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression]):System.Data.Entity.Core.Common.CommandTrees.Internal.DbExpressionList\n        call     [rax]System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation:ValidateFunctionAggregate(System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression]):System.Data.Entity.Core.Common.CommandTrees.Internal.DbExpressionList\n        mov      r15, rax\n-       mov      r13, gword ptr [rbx\u002B0x48]\n-       test     r13, r13\n-       je       G_M62011_IG07\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n\u002B       mov      rsi, gword ptr [rbx\u002B0x48]\n\u002B       test     rsi, rsi\n        je       SHORT G_M62011_IG04\n-\t\t\t\t\t\t;; size=99 bbWeight=1 PerfScore 15.75\n-G_M62011_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      r12, rax\n-       jmp      SHORT G_M62011_IG05\n-\t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 5.00\n-G_M62011_IG04:\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.FunctionParameter](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter],byref):System.Data.Entity.Core.Metadata.Edm.FunctionParameter\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      r12, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M62011_IG05:\n\u002B       mov      r13, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Common.CommandTrees.DbFunctionAggregate\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       mov      rsi, gword ptr [r12\u002B0x28]\n-       lea      rdi, bword ptr [r13\u002B0x10]\n\u002B       mov      r12, rax\n\u002B       mov      rsi, gword ptr [r13\u002B0x28]\n\u002B       lea      rdi, bword ptr [r12\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r13\u002B0x08]\n\u002B       lea      rdi, bword ptr [r12\u002B0x08]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r13\u002B0x18]\n\u002B       lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      byte  ptr [r13\u002B0x20], r14b\n-       mov      rax, r13\n-\t\t\t\t\t\t;; size=63 bbWeight=1 PerfScore 9.75\n-G_M62011_IG06:\n\u002B       mov      byte  ptr [r12\u002B0x20], r14b\n\u002B       mov      rax, r12\n\u002B\t\t\t\t\t\t;; size=160 bbWeight=1 PerfScore 24.75\n\u002BG_M62011_IG03:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M62011_IG07:\n\u002BG_M62011_IG04:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 280, prolog size 22, PerfScore 46.50, instruction count 73, allocated bytes for code 280 (MethodHash=ce630dc4) for method System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.DbExpressionBuilder:CreateFunctionAggregate(System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Data.Entity.Core.Common.CommandTrees.DbExpression,bool):System.Data.Entity.Core.Common.CommandTrees.DbFunctionAggregate (FullOpts)\n\u002B; Total bytes of code 224, prolog size 22, PerfScore 38.50, instruction count 59, allocated bytes for code 224 (MethodHash=ce630dc4) for method System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.DbExpressionBuilder:CreateFunctionAggregate(System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Data.Entity.Core.Common.CommandTrees.DbExpression,bool):System.Data.Entity.Core.Common.CommandTrees.DbFunctionAggregate (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":280,"DiffBytes":224},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[int]:Aggregate[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[int,double]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[double]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[double]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[double]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[double]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[double]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V69 tmp59        [V69,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 8.75\n-G_M42583_IG25:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M42583_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M42583_IG26\n\u002B       je       SHORT G_M42583_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M42583_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M42583_IG26:\n\u002BG_M42583_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M42583_IG27:\n\u002BG_M42583_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M42583_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M42583_IG28:\n\u002BG_M42583_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M42583_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M42583_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M42583_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M42583_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M42583_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M42583_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M42583_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M42583_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M42583_IG31\n\u002B       je       SHORT G_M42583_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M42583_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M42583_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M42583_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M42583_IG32\n\u002B       je       SHORT G_M42583_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M42583_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M42583_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M42583_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M42583_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateAggregateToCollectionResultCursor[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[double],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[double]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M42583_IG33:\n\u002BG_M42583_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M42583_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M42583_IG34:\n\u002BG_M42583_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M42583_IG35:\n\u002BG_M42583_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M42583_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M42583_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M42583_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M42583_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M42583_IG37\n\u002B       je       SHORT G_M42583_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M42583_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M42583_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M42583_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M42583_IG38\n\u002B       je       SHORT G_M42583_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M42583_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M42583_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M42583_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M42583_IG39:\n\u002BG_M42583_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M42583_IG40:\n\u002BG_M42583_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M42583_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M42583_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M42583_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M42583_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M42583_IG42\n\u002B       je       SHORT G_M42583_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M42583_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M42583_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M42583_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M42583_IG43\n\u002B       je       SHORT G_M42583_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M42583_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M42583_IG43:\n\u002BG_M42583_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M42583_IG44:\n\u002BG_M42583_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=b44a59a8) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:Aggregate[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=b44a59a8) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:Aggregate[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.MoneyManagement.ReceivedDebitService:ListAutoPaging(Stripe.V2.MoneyManagement.ReceivedDebitListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.ReceivedDebit]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.MoneyManagement.ReceivedDebitService:ListAutoPaging(Stripe.V2.MoneyManagement.ReceivedDebitListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.ReceivedDebit]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.MoneyManagement.ReceivedDebitService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.MoneyManagement.ReceivedDebitListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.MoneyManagement.ReceivedDebitListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.ReceivedDebit]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.ReceivedDebit]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.ReceivedDebit]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.ReceivedDebit]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.ReceivedDebit]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.ReceivedDebit]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.ReceivedDebit]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.ReceivedDebit]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.ReceivedDebit]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M13255_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M13255_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/money_management/received_debits\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M13255_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M13255_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.ReceivedDebit]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.ReceivedDebit]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M13255_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M13255_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.ReceivedDebit]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.ReceivedDebit]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M13255_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M13255_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=a305cc38) for method Stripe.V2.MoneyManagement.ReceivedDebitService:ListAutoPaging(Stripe.V2.MoneyManagement.ReceivedDebitListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.ReceivedDebit]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=a305cc38) for method Stripe.V2.MoneyManagement.ReceivedDebitService:ListAutoPaging(Stripe.V2.MoneyManagement.ReceivedDebitListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.ReceivedDebit]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Objects.ObjectStateManager:DetectConflicts(System.Collections.Generic.IList\u00601[System.Data.Entity.Core.Objects.EntityEntry]):this (FullOpts)","Category":"improvement","Description":"2,789 -\u003E 2,733 bytes (-56)","ExtraInfo":null,"Diff":"@@ -9,12 \u002B9,12 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T29] (  8, 36   )     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.Core.Objects.ObjectStateManager\u003E\n-;  V01 arg1         [V01,T67] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.IList\u00601[System.Data.Entity.Core.Objects.EntityEntry]\u003E\n-;  V02 loc0         [V02,T41] (  5, 25   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Data.Entity.Core.Objects.Internal.TransactionManager\u003E\n-;  V03 loc1         [V03,T61] (  6, 13   )     ref  -\u003E  [rbp-0xE8]  class-hnd EH-live spill-single-def \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Data.Entity.Core.Objects.EntityEntry]\u003E\n\u002B;  V01 arg1         [V01,T66] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.IList\u00601[System.Data.Entity.Core.Objects.EntityEntry]\u003E\n\u002B;  V02 loc0         [V02,T40] (  5, 25   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Data.Entity.Core.Objects.Internal.TransactionManager\u003E\n\u002B;  V03 loc1         [V03,T60] (  6, 13   )     ref  -\u003E  [rbp-0xE8]  class-hnd EH-live spill-single-def \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Data.Entity.Core.Objects.EntityEntry]\u003E\n ;  V04 loc2         [V04,T18] ( 10, 70   )     ref  -\u003E  r15         class-hnd \u003CSystem.Data.Entity.Core.Objects.EntityEntry\u003E\n-;  V05 loc3         [V05,T56] (  8, 20   )     ref  -\u003E  r13         ld-addr-op class-hnd \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Objects.DataClasses.RelatedEnd,System.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.Objects.Internal.IEntityWrapper]]\u003E\n-;  V06 loc4         [V06,T40] (  7, 28   )     ref  -\u003E  r12         ld-addr-op class-hnd \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Objects.DataClasses.RelatedEnd,System.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.EntityKey]]\u003E\n\u002B;  V05 loc3         [V05,T54] (  8, 20   )     ref  -\u003E  r13         ld-addr-op class-hnd \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Objects.DataClasses.RelatedEnd,System.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.Objects.Internal.IEntityWrapper]]\u003E\n\u002B;  V06 loc4         [V06,T39] (  7, 28   )     ref  -\u003E  r12         ld-addr-op class-hnd \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Objects.DataClasses.RelatedEnd,System.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.EntityKey]]\u003E\n ;  V07 loc5         [V07    ] (  9, 60   )  struct (40) [rbp-0x50]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Collections.Generic.Dictionary\u00602\u002BEnumerator[System.Data.Entity.Core.Objects.DataClasses.RelatedEnd,System.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.EntityKey]]\u003E\n ;* V08 loc6         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.KeyValuePair\u00602[System.Data.Entity.Core.Objects.DataClasses.RelatedEnd,System.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.EntityKey]]\u003E\n ;  V09 loc7         [V09,T19] (  2, 66   )     ref  -\u003E  [rbp-0xF0]  class-hnd exact \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Collections.Generic.KeyValuePair\u00602[System.Object,System.Data.Entity.Core.Objects.IntBox]]\u003E\n@@ -22,57 \u002B22,57 @@\n ;* V11 loc9         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.KeyValuePair\u00602[System.Data.Entity.Core.Objects.DataClasses.RelatedEnd,System.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.Objects.Internal.IEntityWrapper]]\u003E\n ;  V12 loc10        [V12,T10] ( 11,184   )     ref  -\u003E  registers   class-hnd \u003CSystem.Data.Entity.Core.Objects.DataClasses.EntityReference\u003E\n ;* V13 loc11        [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Data.Entity.Core.Objects.Internal.IEntityWrapper\u003E\n-;  V14 loc12        [V14,T20] (  8, 64   )     ref  -\u003E  [rbp-0xF8]  ld-addr-op class-hnd \u003CSystem.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.EntityKey]\u003E\n\u002B;  V14 loc12        [V14,T22] (  7, 56   )     ref  -\u003E  [rbp-0xF8]  ld-addr-op class-hnd \u003CSystem.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.EntityKey]\u003E\n ;  V15 loc13        [V15,T31] (  4, 32   )     ref  -\u003E  [rbp-0x100]  class-hnd exact \u003CSystem.Data.Entity.Core.Objects.EntityEntry\u003E\n-;  V16 loc14        [V16,T42] (  3, 24   )     ref  -\u003E  rdi         ld-addr-op class-hnd \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Objects.DataClasses.RelatedEnd,System.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.EntityKey]]\u003E\n-;  V17 loc15        [V17,T43] (  3, 24   )     ref  -\u003E  rdi         ld-addr-op class-hnd \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Objects.DataClasses.RelatedEnd,System.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.EntityKey]]\u003E\n-;  V18 loc16        [V18,T44] (  3, 24   )     ref  -\u003E  rsi         ld-addr-op class-hnd \u003CSystem.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.EntityKey]\u003E\n\u002B;  V16 loc14        [V16,T41] (  3, 24   )     ref  -\u003E  rdi         ld-addr-op class-hnd \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Objects.DataClasses.RelatedEnd,System.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.EntityKey]]\u003E\n\u002B;  V17 loc15        [V17,T42] (  3, 24   )     ref  -\u003E  rdi         ld-addr-op class-hnd \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Objects.DataClasses.RelatedEnd,System.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.EntityKey]]\u003E\n\u002B;  V18 loc16        [V18,T43] (  3, 24   )     ref  -\u003E  rsi         ld-addr-op class-hnd \u003CSystem.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.EntityKey]\u003E\n ;  V19 loc17        [V19,T16] (  3, 80   )     ref  -\u003E  [rbp-0x108]  class-hnd exact \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Collections.Generic.KeyValuePair\u00602[System.Object,System.Data.Entity.Core.Objects.IntBox]]\u003E\n ;* V20 loc18        [V20    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601\u002BEnumerator[System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint]\u003E\n ;  V21 loc19        [V21,T00] (  6,384   )     ref  -\u003E  [rbp-0x110]  class-hnd exact \u003CSystem.Data.Entity.Core.Metadata.Edm.ReferentialConstraint\u003E\n ;  V22 loc20        [V22,T03] (  6,328   )     int  -\u003E  r13        \n ;* V23 loc21        [V23    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.KeyValuePair\u00602[System.Object,System.Data.Entity.Core.Objects.IntBox]\u003E\n ;# V24 OutArgs      [V24    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V25 tmp1         [V25,T45] (  3, 24   )     ref  -\u003E  rdi         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Objects.Internal.IEntityWrapper,System.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Objects.DataClasses.RelatedEnd,System.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.Objects.Internal.IEntityWrapper]]]\u003E\n-;  V26 tmp2         [V26,T46] (  3, 24   )     ref  -\u003E  rdi         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Objects.Internal.IEntityWrapper,System.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Objects.DataClasses.RelatedEnd,System.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.EntityKey]]]\u003E\n-;  V27 tmp3         [V27,T62] (  3, 12   )     ref  -\u003E  [rbp-0x118]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Collections.Generic.KeyValuePair\u00602[System.Object,System.Data.Entity.Core.Objects.IntBox]]\u003E\n\u002B;  V25 tmp1         [V25,T44] (  3, 24   )     ref  -\u003E  rdi         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Objects.Internal.IEntityWrapper,System.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Objects.DataClasses.RelatedEnd,System.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.Objects.Internal.IEntityWrapper]]]\u003E\n\u002B;  V26 tmp2         [V26,T45] (  3, 24   )     ref  -\u003E  rdi         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Objects.Internal.IEntityWrapper,System.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Objects.DataClasses.RelatedEnd,System.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.EntityKey]]]\u003E\n\u002B;  V27 tmp3         [V27,T61] (  3, 12   )     ref  -\u003E  [rbp-0x118]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.String,System.Collections.Generic.KeyValuePair\u00602[System.Object,System.Data.Entity.Core.Objects.IntBox]]\u003E\n ;  V28 tmp4         [V28,T24] (  3, 48   )     ref  -\u003E  rdi         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Objects.Internal.IEntityWrapper,System.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Objects.DataClasses.RelatedEnd,System.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.EntityKey]]]\u003E\n ;  V29 tmp5         [V29,T25] (  3, 48   )     ref  -\u003E  rdi         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Objects.Internal.IEntityWrapper,System.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Objects.DataClasses.RelatedEnd,System.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.EntityKey]]]\u003E\n... diff truncated; middle omitted ...\n\u002B       je       G_M53986_IG61\n\u002B\t\t\t\t\t\t;; size=122 bbWeight=8 PerfScore 196.00\n\u002BG_M53986_IG45:\n        mov      rdi, gword ptr [rbp-0x138]\n        mov      r11, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Objects.Internal.IEntityWrapper:get_Entity():System.Object:this\n        call     [r11]System.Data.Entity.Core.Objects.Internal.IEntityWrapper:get_Entity():System.Object:this\n@@ -619,11 \u002B603,11 @@ G_M53986_IG47:\n        mov      gword ptr [rbp-0x100], rcx\n        mov      edi, dword ptr [rcx\u002B0x18]\n        cmp      edi, 2\n-       je       SHORT G_M53986_IG48\n\u002B       je       SHORT G_M53986_IG46\n        cmp      edi, 16\n        jne      G_M53986_IG29\n \t\t\t\t\t\t;; size=75 bbWeight=8 PerfScore 150.00\n-G_M53986_IG48:\n\u002BG_M53986_IG46:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.Dictionary\u00602[System.String,System.Collections.Generic.KeyValuePair\u00602[System.Object,System.Data.Entity.Core.Objects.IntBox]]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x120], rax\n@@ -644,20 \u002B628,20 @@ G_M53986_IG48:\n        call     [rax\u002B0x30]System.Data.Entity.Core.Objects.DataClasses.RelatedEnd:get_RelationMetadata():System.Data.Entity.Core.Metadata.Edm.RelationshipType:this\n        mov      rcx, rax\n        test     rcx, rcx\n-       je       SHORT G_M53986_IG51\n\u002B       je       SHORT G_M53986_IG49\n \t\t\t\t\t\t;; size=99 bbWeight=8 PerfScore 172.00\n-G_M53986_IG49:\n\u002BG_M53986_IG47:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Metadata.Edm.AssociationType\n        cmp      qword ptr [rcx], rdi\n-       je       SHORT G_M53986_IG51\n\u002B       je       SHORT G_M53986_IG49\n \t\t\t\t\t\t;; size=15 bbWeight=4 PerfScore 13.00\n-G_M53986_IG50:\n\u002BG_M53986_IG48:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        mov      rcx, rax\n \t\t\t\t\t\t;; size=18 bbWeight=2 PerfScore 7.50\n-G_M53986_IG51:\n\u002BG_M53986_IG49:\n        mov      rdi, gword ptr [rcx\u002B0x80]\n        mov      rax, gword ptr [rdi\u002B0x08]\n        mov      gword ptr [rbp-0x168], rax\n@@ -669,7 \u002B653,7 @@ G_M53986_IG51:\n        test     eax, eax\n        je       G_M53986_IG29\n \t\t\t\t\t\t;; size=50 bbWeight=8 PerfScore 88.00\n-G_M53986_IG52:\n\u002BG_M53986_IG50:\n        mov      rdi, gword ptr [rbp-0x168]\n        mov      esi, dword ptr [rbp-0xDC]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IList\u00601[System.__Canon]:get_Item(int):System.__Canon:this\n@@ -687,11 \u002B671,11 @@ G_M53986_IG52:\n        cmp      gword ptr [rbp-0x170], rax\n        jne      G_M53986_IG28\n \t\t\t\t\t\t;; size=84 bbWeight=64 PerfScore 1328.00\n-G_M53986_IG53:\n\u002BG_M53986_IG51:\n        xor      r13d, r13d\n-       jmp      SHORT G_M53986_IG55\n\u002B       jmp      SHORT G_M53986_IG53\n \t\t\t\t\t\t;; size=5 bbWeight=8 PerfScore 18.00\n-G_M53986_IG54:\n\u002BG_M53986_IG52:\n        mov      rcx, gword ptr [rax]\n        mov      rdi, gword ptr [rbp-0x110]\n        mov      rsi, gword ptr [rbp-0xF0]\n@@ -700,7 \u002B684,7 @@ G_M53986_IG54:\n        call     [rax]System.Data.Entity.Core.Objects.EntityEntry:AddOrIncreaseCounter(System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint,System.Collections.Generic.Dictionary\u00602[System.String,System.Collections.Generic.KeyValuePair\u00602[System.Object,System.Data.Entity.Core.Objects.IntBox]],System.String,System.Object)\n        inc      r13d\n \t\t\t\t\t\t;; size=39 bbWeight=64 PerfScore 544.00\n-G_M53986_IG55:\n\u002BG_M53986_IG53:\n        mov      rdi, gword ptr [rbp-0x110]\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint:get_FromProperties():System.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]:this\n        call     [rax]System.Data.Entity.Core.Metadata.Edm.ReferentialConstraint:get_FromProperties():System.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]:this\n@@ -738,12 \u002B722,12 @@ G_M53986_IG55:\n        mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary\u00602[System.__Canon,System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]]:FindValue(System.__Canon):byref:this\n        call     [rcx]System.Collections.Generic.Dictionary\u00602[System.__Canon,System.Collections.Generic.KeyValuePair\u00602[System.__Canon,System.__Canon]]:FindValue(System.__Canon):byref:this\n        test     rax, rax\n-       je       G_M53986_IG65\n\u002B       je       G_M53986_IG63\n \t\t\t\t\t\t;; size=193 bbWeight=64 PerfScore 3344.00\n-G_M53986_IG56:\n-       jmp      G_M53986_IG54\n\u002BG_M53986_IG54:\n\u002B       jmp      G_M53986_IG52\n \t\t\t\t\t\t;; size=5 bbWeight=64 PerfScore 128.00\n-G_M53986_IG57:\n\u002BG_M53986_IG55:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -757,7 \u002B741,7 @@ G_M53986_IG57:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=57 bbWeight=0 PerfScore 0.00\n-G_M53986_IG58:\n\u002BG_M53986_IG56:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -771,7 \u002B755,7 @@ G_M53986_IG58:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=57 bbWeight=0 PerfScore 0.00\n-G_M53986_IG59:\n\u002BG_M53986_IG57:\n        mov      rbx, gword ptr [rbp-0x148]\n        mov      rdi, gword ptr [rbx\u002B0x10]\n        mov      r15, gword ptr [rdi\u002B0x18]\n@@ -791,7 \u002B775,7 @@ G_M53986_IG59:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=83 bbWeight=0 PerfScore 0.00\n-G_M53986_IG60:\n\u002BG_M53986_IG58:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -805,7 \u002B789,7 @@ G_M53986_IG60:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=57 bbWeight=0 PerfScore 0.00\n-G_M53986_IG61:\n\u002BG_M53986_IG59:\n        mov      rdi, gword ptr [rcx\u002B0x10]\n        mov      rbx, gword ptr [rdi\u002B0x18]\n        mov      r15, gword ptr [rcx\u002B0x10]\n@@ -824,12 \u002B808,12 @@ G_M53986_IG61:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=76 bbWeight=0 PerfScore 0.00\n-G_M53986_IG62:\n\u002BG_M53986_IG60:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M53986_IG63:\n\u002BG_M53986_IG61:\n        mov      rdi, gword ptr [r13\u002B0x10]\n        mov      rbx, gword ptr [rdi\u002B0x18]\n        mov      r15, gword ptr [r13\u002B0x10]\n@@ -848,7 \u002B832,7 @@ G_M53986_IG63:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=76 bbWeight=0 PerfScore 0.00\n-G_M53986_IG64:\n\u002BG_M53986_IG62:\n        mov      rdi, gword ptr [r13\u002B0x10]\n        mov      rbx, gword ptr [rdi\u002B0x18]\n        mov      r13, gword ptr [r13\u002B0x10]\n@@ -867,20 \u002B851,20 @@ G_M53986_IG64:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=76 bbWeight=0 PerfScore 0.00\n-G_M53986_IG65:\n\u002BG_M53986_IG63:\n        mov      rsi, gword ptr [rbp-0x140]\n        mov      rdi, 0xD1FFAB1E      ; System.ThrowHelper:ThrowKeyNotFoundException[System.String](System.String)\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowKeyNotFoundException[System.__Canon](System.__Canon)\n        call     [rax]System.ThrowHelper:ThrowKeyNotFoundException[System.__Canon](System.__Canon)\n        int3     \n \t\t\t\t\t\t;; size=30 bbWeight=0 PerfScore 0.00\n-G_M53986_IG66:\n\u002BG_M53986_IG64:\n        mov      rdi, gword ptr [rbp-0xE8]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        nop      \n \t\t\t\t\t\t;; size=21 bbWeight=1 PerfScore 4.50\n-G_M53986_IG67:\n\u002BG_M53986_IG65:\n        vzeroupper \n        add      rsp, 328\n        pop      rbx\n@@ -891,24 \u002B875,24 @@ G_M53986_IG67:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=21 bbWeight=1 PerfScore 5.25\n-G_M53986_IG68:\n\u002BG_M53986_IG66:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M53986_IG69:\n\u002BG_M53986_IG67:\n        cmp      gword ptr [rbp-0xE8], 0\n-       je       SHORT G_M53986_IG70\n\u002B       je       SHORT G_M53986_IG68\n        mov      rdi, gword ptr [rbp-0xE8]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=30 bbWeight=0 PerfScore 0.00\n-G_M53986_IG70:\n\u002BG_M53986_IG68:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M53986_IG71:\n\u002BG_M53986_IG69:\n        vzeroupper \n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=8 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 2789, prolog size 92, PerfScore 8850.92, instruction count 591, allocated bytes for code 2789 (MethodHash=37f22d1d) for method System.Data.Entity.Core.Objects.ObjectStateManager:DetectConflicts(System.Collections.Generic.IList\u00601[System.Data.Entity.Core.Objects.EntityEntry]):this (FullOpts)\n\u002B; Total bytes of code 2733, prolog size 92, PerfScore 8726.92, instruction count 579, allocated bytes for code 2733 (MethodHash=37f22d1d) for method System.Data.Entity.Core.Objects.ObjectStateManager:DetectConflicts(System.Collections.Generic.IList\u00601[System.Data.Entity.Core.Objects.EntityEntry]):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":2789,"DiffBytes":2733},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[int]:Aggregate[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[int,int]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[int]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[int]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[int]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[int]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[int]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V69 tmp59        [V69,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 8.75\n-G_M31281_IG25:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M31281_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M31281_IG26\n\u002B       je       SHORT G_M31281_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M31281_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M31281_IG26:\n\u002BG_M31281_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M31281_IG27:\n\u002BG_M31281_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M31281_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M31281_IG28:\n\u002BG_M31281_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M31281_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M31281_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M31281_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M31281_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M31281_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M31281_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M31281_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M31281_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M31281_IG31\n\u002B       je       SHORT G_M31281_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M31281_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M31281_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M31281_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M31281_IG32\n\u002B       je       SHORT G_M31281_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M31281_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M31281_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M31281_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M31281_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateAggregateToCollectionResultCursor[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[int],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[int]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M31281_IG33:\n\u002BG_M31281_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M31281_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M31281_IG34:\n\u002BG_M31281_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M31281_IG35:\n\u002BG_M31281_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M31281_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M31281_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M31281_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M31281_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M31281_IG37\n\u002B       je       SHORT G_M31281_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M31281_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M31281_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M31281_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M31281_IG38\n\u002B       je       SHORT G_M31281_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M31281_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M31281_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M31281_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M31281_IG39:\n\u002BG_M31281_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M31281_IG40:\n\u002BG_M31281_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M31281_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M31281_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M31281_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M31281_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M31281_IG42\n\u002B       je       SHORT G_M31281_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M31281_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M31281_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M31281_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M31281_IG43\n\u002B       je       SHORT G_M31281_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M31281_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M31281_IG43:\n\u002BG_M31281_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M31281_IG44:\n\u002BG_M31281_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=762c85ce) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:Aggregate[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=762c85ce) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:Aggregate[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.MoneyManagement.TransactionEntryService:ListAutoPaging(Stripe.V2.MoneyManagement.TransactionEntryListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.TransactionEntry]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.MoneyManagement.TransactionEntryService:ListAutoPaging(Stripe.V2.MoneyManagement.TransactionEntryListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.TransactionEntry]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.MoneyManagement.TransactionEntryService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.MoneyManagement.TransactionEntryListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.MoneyManagement.TransactionEntryListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.TransactionEntry]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.TransactionEntry]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.TransactionEntry]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.TransactionEntry]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.TransactionEntry]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.TransactionEntry]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.TransactionEntry]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.TransactionEntry]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.TransactionEntry]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M26022_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M26022_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/money_management/transaction_entries\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M26022_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M26022_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.TransactionEntry]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.TransactionEntry]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M26022_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M26022_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.TransactionEntry]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.TransactionEntry]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M26022_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M26022_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=246b9a59) for method Stripe.V2.MoneyManagement.TransactionEntryService:ListAutoPaging(Stripe.V2.MoneyManagement.TransactionEntryListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.TransactionEntry]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=246b9a59) for method Stripe.V2.MoneyManagement.TransactionEntryService:ListAutoPaging(Stripe.V2.MoneyManagement.TransactionEntryListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.TransactionEntry]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Query.PlanCompiler.ProjectionPruner:RemoveRedundantConstantKeys(System.Data.Entity.Core.Query.InternalTrees.VarVec,System.Data.Entity.Core.Query.InternalTrees.VarVec,System.Data.Entity.Core.Query.InternalTrees.Node):this (FullOpts)","Category":"improvement","Description":"894 -\u003E 838 bytes (-56)","ExtraInfo":null,"Diff":"@@ -14,42 \u002B14,42 @@\n ;  V03 arg3         [V03,T04] (  5,  4.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Query.InternalTrees.Node\u003E\n ;  V04 loc0         [V04,T00] (  9,  8.50)     ref  -\u003E  r12         class-hnd exact single-def \u003CSystem.Data.Entity.Core.Query.PlanCompiler.ProjectionPruner\u002B\u003C\u003Ec__DisplayClass27_0\u003E\n ;* V05 loc1         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Data.Entity.Core.Query.InternalTrees.Node\u003E\n-;  V06 loc2         [V06,T27] (  3,  1.50)     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Data.Entity.Core.Query.InternalTrees.Var\u003E\n\u002B;  V06 loc2         [V06,T26] (  3,  1.50)     ref  -\u003E  r12         class-hnd single-def \u003CSystem.Data.Entity.Core.Query.InternalTrees.Var\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V08 tmp1         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Query.PlanCompiler.ProjectionPruner\u002B\u003C\u003Ec__DisplayClass27_0\u003E\n-;  V09 tmp2         [V09,T11] (  2,  4   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Query.InternalTrees.Node,bool]\u003E\n-;  V10 tmp3         [V10,T12] (  2,  4   )     ref  -\u003E  [rbp-0x38]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Query.InternalTrees.Node]\u003E\n\u002B;  V09 tmp2         [V09,T10] (  2,  4   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Query.InternalTrees.Node,bool]\u003E\n\u002B;  V10 tmp3         [V10,T11] (  2,  4   )     ref  -\u003E  [rbp-0x38]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Query.InternalTrees.Node]\u003E\n ;* V11 tmp4         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V12 tmp5         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V13 tmp6         [V13,T18] (  4,  3.50)     ref  -\u003E  rdx        \n-;  V14 tmp7         [V14,T13] (  2,  4   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Query.InternalTrees.Node,System.Data.Entity.Core.Query.InternalTrees.Var]\u003E\n\u002B;  V13 tmp6         [V13,T17] (  4,  3.50)     ref  -\u003E  rdx        \n\u002B;  V14 tmp7         [V14,T12] (  2,  4   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Query.InternalTrees.Node,System.Data.Entity.Core.Query.InternalTrees.Var]\u003E\n ;  V15 tmp8         [V15,T06] (  3,  6   )     ref  -\u003E  [rbp-0x40]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Query.InternalTrees.Command\u003E\n-;  V16 tmp9         [V16,T14] (  2,  4   )     ref  -\u003E  [rbp-0x48]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Query.InternalTrees.Node]\u003E\n\u002B;  V16 tmp9         [V16,T13] (  2,  4   )     ref  -\u003E  [rbp-0x48]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Query.InternalTrees.Node]\u003E\n ;* V17 tmp10        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V18 tmp11        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V19 tmp12        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V20 tmp13        [V20,T19] (  4,  3.50)     ref  -\u003E  rdx        \n\u002B;  V20 tmp13        [V20,T18] (  4,  3.50)     ref  -\u003E  rdx        \n ;  V21 tmp14        [V21,T01] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Predicate\u00601[System.Data.Entity.Core.Query.InternalTrees.Node]\u003E\n-;  V22 tmp15        [V22,T15] (  2,  4   )     ref  -\u003E  [rbp-0x50]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Query.InternalTrees.Node]\u003E\n\u002B;  V22 tmp15        [V22,T14] (  2,  4   )     ref  -\u003E  [rbp-0x50]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Query.InternalTrees.Node]\u003E\n ;  V23 tmp16        [V23,T08] (  5,  5   )     ref  -\u003E  [rbp-0x58]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Query.InternalTrees.Node,System.Data.Entity.Core.Query.InternalTrees.Var]\u003E\n ;  V24 tmp17        [V24,T09] (  5,  5   )     ref  -\u003E  [rbp-0x60]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Query.InternalTrees.Node,bool]\u003E\n-;  V25 tmp18        [V25,T25] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Query.PlanCompiler.ProjectionPruner\u002B\u003C\u003Ec\u003E\n\u002B;  V25 tmp18        [V25,T24] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Query.PlanCompiler.ProjectionPruner\u002B\u003C\u003Ec\u003E\n ;* V26 tmp19        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Query.PlanCompiler.PlanCompiler\u003E\n-;  V27 tmp20        [V27,T26] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Query.PlanCompiler.ProjectionPruner\u002B\u003C\u003Ec\u003E\n-;  V28 tmp21        [V28,T10] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Query.InternalTrees.Node]\u003E\n-;  V29 tmp22        [V29    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V27 tmp20        [V27,T25] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Query.PlanCompiler.ProjectionPruner\u002B\u003C\u003Ec\u003E\n\u002B;  V28 tmp21        [V28,T20] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Query.InternalTrees.Node]\u003E\n\u002B;  V29 tmp22        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V30 tmp23        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V31 tmp24        [V31,T21] (  5,  2.50)     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Query.InternalTrees.Node\u003E\n-;  V32 tmp25        [V32,T22] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Query.InternalTrees.Node]\u003E\n\u002B;  V31 tmp24        [V31,T21] (  4,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Query.InternalTrees.Node\u003E\n\u002B;* V32 tmp25        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Query.InternalTrees.Node]\u003E\n ;* V33 tmp26        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Query.InternalTrees.VarDefOp\u003E\n ;  V34 tmp27        [V34,T02] (  7,  7   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Query.InternalTrees.Node]\u003E\n-;  V35 tmp28        [V35,T28] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Query.InternalTrees.Node[]\u003E\n-;  V36 tmp29        [V36,T23] (  4,  2   )     int  -\u003E  rbx         single-def \u0022Inline stloc first use temp\u0022\n-;  V37 tmp30        [V37,T16] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V38 tmp31        [V38,T17] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V39 rat0         [V39,T24] (  3,  2   )     ref  -\u003E  rsi         class-hnd \u0022Spilling to split statement for tree\u0022 \u003CSystem.Data.Entity.Core.Query.InternalTrees.Op\u003E\n-;  V40 rat1         [V40,T20] (  4,  3.50)     ref  -\u003E  rdi         \u0022replacement local\u0022\n-;  V41 rat2         [V41,T29] (  3,  1   )    long  -\u003E  rax         \u0022CSE for expectedClsNode\u0022\n\u002B;  V35 tmp28        [V35,T27] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Query.InternalTrees.Node[]\u003E\n\u002B;  V36 tmp29        [V36,T22] (  4,  2   )     int  -\u003E  rbx         single-def \u0022Inline stloc first use temp\u0022\n\u002B;  V37 tmp30        [V37,T15] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V38 tmp31        [V38,T16] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V39 rat0         [V39,T23] (  3,  2   )     ref  -\u003E  rsi         class-hnd \u0022Spilling to split statement for tree\u0022 \u003CSystem.Data.Entity.Core.Query.InternalTrees.Op\u003E\n\u002B;  V40 rat1         [V40,T19] (  4,  3.50)     ref  -\u003E  rdi         \u0022replacement local\u0022\n\u002B;  V41 rat2         [V41,T28] (  3,  1   )    long  -\u003E  rax         \u0022CSE for expectedClsNode\u0022\n ;\n ; Lcl frame size = 56\n \n@@ -193,55 \u002B193,37 @@ G_M10887_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Query.InternalTrees.VarVec:get_Count():int:this\n        call     [rax]System.Data.Entity.Core.Query.InternalTrees.VarVec:get_Count():int:this\n        test     eax, eax\n-       jne      G_M10887_IG15\n\u002B       jne      G_M10887_IG13\n \t\t\t\t\t\t;; size=218 bbWeight=1 PerfScore 56.75\n G_M10887_IG09:\n-       mov      r14, gword ptr [r12\u002B0x08]\n-       test     r14, r14\n-       je       G_M10887_IG17\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Query.InternalTrees.Node]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M10887_IG10\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      r12, rax\n-       jmp      SHORT G_M10887_IG11\n-\t\t\t\t\t\t;; size=66 bbWeight=0.50 PerfScore 9.12\n-G_M10887_IG10:\n\u002B       mov      rsi, gword ptr [r12\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M10887_IG15\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Query.InternalTrees.Node](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Query.InternalTrees.Node],byref):System.Data.Entity.Core.Query.InternalTrees.Node\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      r12, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M10887_IG11:\n\u002B       mov      r14, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M10887_IG18\n-       mov      rsi, gword ptr [r12\u002B0x18]\n\u002B       je       G_M10887_IG16\n\u002B       mov      rsi, gword ptr [r14\u002B0x18]\n        mov      rdi, rsi\n        test     rdi, rdi\n-       je       SHORT G_M10887_IG13\n-\t\t\t\t\t\t;; size=23 bbWeight=0.50 PerfScore 2.75\n-G_M10887_IG12:\n\u002B       je       SHORT G_M10887_IG11\n\u002B\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.50\n\u002BG_M10887_IG10:\n        mov      rax, 0xD1FFAB1E      ; System.Data.Entity.Core.Query.InternalTrees.VarDefOp\n        cmp      qword ptr [rdi], rax\n-       jne      G_M10887_IG19\n\u002B       jne      G_M10887_IG17\n \t\t\t\t\t\t;; size=19 bbWeight=0.25 PerfScore 0.81\n-G_M10887_IG13:\n-       mov      r14, gword ptr [rdi\u002B0x10]\n\u002BG_M10887_IG11:\n\u002B       mov      r12, gword ptr [rdi\u002B0x10]\n        mov      rdi, rbx\n-       mov      rsi, r14\n\u002B       mov      rsi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Query.InternalTrees.VarVec:Set(System.Data.Entity.Core.Query.InternalTrees.Var):this\n        call     [rax]System.Data.Entity.Core.Query.InternalTrees.VarVec:Set(System.Data.Entity.Core.Query.InternalTrees.Var):this\n        mov      rdi, r13\n-       mov      rsi, r14\n\u002B       mov      rsi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Query.InternalTrees.VarVec:Set(System.Data.Entity.Core.Query.InternalTrees.Var):this\n        call     [rax]System.Data.Entity.Core.Query.InternalTrees.VarVec:Set(System.Data.Entity.Core.Query.InternalTrees.Var):this\n        mov      rdi, gword ptr [r15\u002B0x08]\n@@ -249,25 \u002B231,25 @@ G_M10887_IG13:\n        mov      rax, gword ptr [rdi\u002B0x08]\n        mov      ebx, dword ptr [rdi\u002B0x10]\n        cmp      dword ptr [rax\u002B0x08], ebx\n-       ja       SHORT G_M10887_IG14\n-       mov      rsi, r12\n\u002B       ja       SHORT G_M10887_IG12\n\u002B       mov      rsi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n-       jmp      SHORT G_M10887_IG15\n\u002B       jmp      SHORT G_M10887_IG13\n \t\t\t\t\t\t;; size=76 bbWeight=0.50 PerfScore 13.50\n-G_M10887_IG14:\n\u002BG_M10887_IG12:\n        lea      esi, [rbx\u002B0x01]\n        mov      dword ptr [rdi\u002B0x10], esi\n        mov      esi, ebx\n        mov      rdi, rax\n-       mov      rdx, r12\n\u002B       mov      rdx, r14\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST\n        call     [rax]CORINFO_HELP_ARRADDR_ST\n \t\t\t\t\t\t;; size=26 bbWeight=0.50 PerfScore 2.75\n-G_M10887_IG15:\n\u002BG_M10887_IG13:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M10887_IG16:\n\u002BG_M10887_IG14:\n        add      rsp, 56\n        pop      rbx\n        pop      r12\n@@ -277,23 \u002B259,23 @@ G_M10887_IG16:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M10887_IG17:\n\u002BG_M10887_IG15:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M10887_IG18:\n\u002BG_M10887_IG16:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M10887_IG19:\n\u002BG_M10887_IG17:\n        mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rax]CORINFO_HELP_CHKCASTCLASS\n        int3     \n \t\t\t\t\t\t;; size=16 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 894, prolog size 25, PerfScore 145.19, instruction count 203, allocated bytes for code 894 (MethodHash=9a9fd578) for method System.Data.Entity.Core.Query.PlanCompiler.ProjectionPruner:RemoveRedundantConstantKeys(System.Data.Entity.Core.Query.InternalTrees.VarVec,System.Data.Entity.Core.Query.InternalTrees.VarVec,System.Data.Entity.Core.Query.InternalTrees.Node):this (FullOpts)\n\u002B; Total bytes of code 838, prolog size 25, PerfScore 137.56, instruction count 189, allocated bytes for code 838 (MethodHash=9a9fd578) for method System.Data.Entity.Core.Query.PlanCompiler.ProjectionPruner:RemoveRedundantConstantKeys(System.Data.Entity.Core.Query.InternalTrees.VarVec,System.Data.Entity.Core.Query.InternalTrees.VarVec,System.Data.Entity.Core.Query.InternalTrees.Node):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":894,"DiffBytes":838},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[int]:Aggregate[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[int,long]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[long]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[long]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[long]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[long]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[long]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V69 tmp59        [V69,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 8.75\n-G_M53288_IG25:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M53288_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M53288_IG26\n\u002B       je       SHORT G_M53288_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M53288_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M53288_IG26:\n\u002BG_M53288_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M53288_IG27:\n\u002BG_M53288_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M53288_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M53288_IG28:\n\u002BG_M53288_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M53288_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M53288_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M53288_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M53288_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M53288_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M53288_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M53288_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M53288_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M53288_IG31\n\u002B       je       SHORT G_M53288_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M53288_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M53288_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M53288_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M53288_IG32\n\u002B       je       SHORT G_M53288_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M53288_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M53288_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M53288_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M53288_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateAggregateToCollectionResultCursor[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[long],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[long]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M53288_IG33:\n\u002BG_M53288_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M53288_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M53288_IG34:\n\u002BG_M53288_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M53288_IG35:\n\u002BG_M53288_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M53288_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M53288_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M53288_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M53288_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M53288_IG37\n\u002B       je       SHORT G_M53288_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M53288_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M53288_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M53288_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M53288_IG38\n\u002B       je       SHORT G_M53288_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M53288_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M53288_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M53288_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M53288_IG39:\n\u002BG_M53288_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M53288_IG40:\n\u002BG_M53288_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M53288_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M53288_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M53288_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M53288_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M53288_IG42\n\u002B       je       SHORT G_M53288_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M53288_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M53288_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M53288_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M53288_IG43\n\u002B       je       SHORT G_M53288_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M53288_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M53288_IG43:\n\u002BG_M53288_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M53288_IG44:\n\u002BG_M53288_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=e2532fd7) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:Aggregate[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=e2532fd7) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:Aggregate[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.MoneyManagement.TransactionService:ListAutoPaging(Stripe.V2.MoneyManagement.TransactionListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.Transaction]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.MoneyManagement.TransactionService:ListAutoPaging(Stripe.V2.MoneyManagement.TransactionListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.Transaction]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.MoneyManagement.TransactionService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.MoneyManagement.TransactionListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.MoneyManagement.TransactionListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.Transaction]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.Transaction]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.Transaction]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.Transaction]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.Transaction]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.Transaction]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.Transaction]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.Transaction]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.Transaction]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M25842_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M25842_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/money_management/transactions\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M25842_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M25842_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.Transaction]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.Transaction]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M25842_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M25842_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.Transaction]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.MoneyManagement.Transaction]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M25842_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M25842_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=4d739b0d) for method Stripe.V2.MoneyManagement.TransactionService:ListAutoPaging(Stripe.V2.MoneyManagement.TransactionListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.Transaction]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=4d739b0d) for method Stripe.V2.MoneyManagement.TransactionService:ListAutoPaging(Stripe.V2.MoneyManagement.TransactionListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.MoneyManagement.Transaction]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Infrastructure.DependencyResolution.DbConfigurationManager:GetConfiguration():System.Data.Entity.Infrastructure.DependencyResolution.InternalConfiguration:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 325 bytes (-56)","ExtraInfo":null,"Diff":"@@ -9,21 \u002B9,21 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T00] (  7,  7   )     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.Infrastructure.DependencyResolution.DbConfigurationManager\u003E\n-;  V01 loc0         [V01,T06] (  4,  3   )     ref  -\u003E  [rbp-0x28]  class-hnd EH-live spill-single-def \u003CSystem.Object\u003E\n-;  V02 loc1         [V02,T10] (  3,  3   )   ubyte  -\u003E  [rbp-0x14]  do-not-enreg[M] ld-addr-op EH-live\n-;  V03 loc2         [V03,T11] (  2,  1   )     ref  -\u003E  [rbp-0x30]  must-init class-hnd EH-live single-def \u003CSystem.Data.Entity.Infrastructure.DependencyResolution.InternalConfiguration\u003E\n\u002B;  V01 loc0         [V01,T05] (  4,  3   )     ref  -\u003E  [rbp-0x28]  class-hnd EH-live spill-single-def \u003CSystem.Object\u003E\n\u002B;  V02 loc1         [V02,T08] (  3,  3   )   ubyte  -\u003E  [rbp-0x14]  do-not-enreg[M] ld-addr-op EH-live\n\u002B;  V03 loc2         [V03,T10] (  2,  1   )     ref  -\u003E  [rbp-0x30]  must-init class-hnd EH-live single-def \u003CSystem.Data.Entity.Infrastructure.DependencyResolution.InternalConfiguration\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V05 tmp1         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Lazy\u00601[System.Collections.Generic.List\u00601[System.Tuple\u00602[System.Data.Entity.Internal.AppConfig,System.Data.Entity.Infrastructure.DependencyResolution.InternalConfiguration]]]\u003E\n-;  V06 tmp2         [V06,T07] (  3,  3   )     ref  -\u003E  r15         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Tuple\u00602[System.Data.Entity.Internal.AppConfig,System.Data.Entity.Infrastructure.DependencyResolution.InternalConfiguration]]\u003E\n\u002B;  V06 tmp2         [V06,T06] (  3,  3   )     ref  -\u003E  r15         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Tuple\u00602[System.Data.Entity.Internal.AppConfig,System.Data.Entity.Infrastructure.DependencyResolution.InternalConfiguration]]\u003E\n ;  V07 tmp3         [V07,T01] (  4,  8   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Lazy\u00601[System.Collections.Generic.List\u00601[System.Tuple\u00602[System.Data.Entity.Internal.AppConfig,System.Data.Entity.Infrastructure.DependencyResolution.InternalConfiguration]]]\u003E\n-;  V08 tmp4         [V08,T04] (  5,  5   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Tuple\u00602[System.Data.Entity.Internal.AppConfig,System.Data.Entity.Infrastructure.DependencyResolution.InternalConfiguration]]\u003E\n\u002B;  V08 tmp4         [V08,T04] (  4,  4   )     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Tuple\u00602[System.Data.Entity.Internal.AppConfig,System.Data.Entity.Infrastructure.DependencyResolution.InternalConfiguration]]\u003E\n ;  V09 tmp5         [V09,T02] (  4,  8   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Lazy\u00601[System.Collections.Generic.List\u00601[System.Tuple\u00602[System.Data.Entity.Internal.AppConfig,System.Data.Entity.Infrastructure.DependencyResolution.InternalConfiguration]]]\u003E\n-;  V10 tmp6         [V10    ] (  3,  3   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V10 tmp6         [V10    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V11 tmp7         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V12 tmp8         [V12,T08] (  3,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Tuple\u00602[System.Data.Entity.Internal.AppConfig,System.Data.Entity.Infrastructure.DependencyResolution.InternalConfiguration]\u003E\n-;  V13 tmp9         [V13,T05] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Tuple\u00602[System.Data.Entity.Internal.AppConfig,System.Data.Entity.Infrastructure.DependencyResolution.InternalConfiguration]]\u003E\n\u002B;  V12 tmp8         [V12,T09] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Tuple\u00602[System.Data.Entity.Internal.AppConfig,System.Data.Entity.Infrastructure.DependencyResolution.InternalConfiguration]\u003E\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Tuple\u00602[System.Data.Entity.Internal.AppConfig,System.Data.Entity.Infrastructure.DependencyResolution.InternalConfiguration]]\u003E\n ;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Tuple\u00602[System.__Canon,System.__Canon]\u003E\n-;  V15 tmp11        [V15,T09] (  3,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Infrastructure.DependencyResolution.InternalConfiguration\u003E\n\u002B;  V15 tmp11        [V15,T07] (  3,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Infrastructure.DependencyResolution.InternalConfiguration\u003E\n ;  V16 tmp12        [V16,T03] (  4,  8   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Lazy\u00601[System.Data.Entity.Infrastructure.DependencyResolution.InternalConfiguration]\u003E\n ;\n ; Lcl frame size = 32\n@@ -42,7 \u002B42,7 @@ G_M2355_IG01:\n G_M2355_IG02:\n        mov      rdi, gword ptr [rbx\u002B0x48]\n        cmp      gword ptr [rdi\u002B0x08], 0\n-       jne      G_M2355_IG13\n\u002B       jne      G_M2355_IG11\n        mov      rdi, gword ptr [rbx\u002B0x38]\n        mov      gword ptr [rbp-0x28], rdi\n        xor      eax, eax\n@@ -65,116 \u002B65,99 @@ G_M2355_IG04:\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 3.50\n G_M2355_IG05:\n        cmp      dword ptr [r15\u002B0x10], 0\n-       je       G_M2355_IG12\n\u002B       je       SHORT G_M2355_IG10\n        mov      rdi, gword ptr [rbx\u002B0x48]\n        cmp      gword ptr [rdi\u002B0x08], 0\n        jne      SHORT G_M2355_IG06\n-       mov      rbx, gword ptr [rdi\u002B0x18]\n\u002B       mov      rsi, gword ptr [rdi\u002B0x18]\n        jmp      SHORT G_M2355_IG07\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 12.00\n\u002B\t\t\t\t\t\t;; size=24 bbWeight=1 PerfScore 12.00\n G_M2355_IG06:\n        mov      rax, 0xD1FFAB1E      ; code for System.Lazy\u00601[System.__Canon]:CreateValue():System.__Canon:this\n        call     [rax]System.Lazy\u00601[System.__Canon]:CreateValue():System.__Canon:this\n-       mov      rbx, rax\n\u002B       mov      rsi, rax\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 3.50\n G_M2355_IG07:\n-       test     rbx, rbx\n-       je       SHORT G_M2355_IG10\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Tuple\u00602[System.Data.Entity.Internal.AppConfig,System.Data.Entity.Infrastructure.DependencyResolution.InternalConfiguration]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n\u002B       test     rsi, rsi\n        je       SHORT G_M2355_IG08\n-       lea      rsi, [rbp-0x20]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M2355_IG09\n-\t\t\t\t\t\t;; size=54 bbWeight=1 PerfScore 16.00\n-G_M2355_IG08:\n        lea      rdx, [rbp-0x20]\n-       mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.Tuple\u00602[System.Data.Entity.Internal.AppConfig,System.Data.Entity.Infrastructure.DependencyResolution.InternalConfiguration]](System.Collections.Generic.IEnumerable\u00601[System.Tuple\u00602[System.Data.Entity.Internal.AppConfig,System.Data.Entity.Infrastructure.DependencyResolution.InternalConfiguration]],byref):System.Tuple\u00602[System.Data.Entity.Internal.AppConfig,System.Data.Entity.Infrastructure.DependencyResolution.InternalConfiguration]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=1 PerfScore 4.25\n-G_M2355_IG09:\n        cmp      byte  ptr [rbp-0x20], 0\n-       je       SHORT G_M2355_IG11\n\u002B       je       SHORT G_M2355_IG09\n        mov      rax, gword ptr [rax\u002B0x10]\n        mov      gword ptr [rbp-0x30], rax\n-       jmp      SHORT G_M2355_IG17\n-\t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 7.00\n-G_M2355_IG10:\n\u002B       jmp      SHORT G_M2355_IG15\n\u002B\t\t\t\t\t\t;; size=47 bbWeight=1 PerfScore 12.25\n\u002BG_M2355_IG08:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M2355_IG11:\n\u002BG_M2355_IG09:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M2355_IG12:\n\u002BG_M2355_IG10:\n        mov      rdi, gword ptr [rbp-0x28]\n        mov      rax, 0xD1FFAB1E      ; code for System.Threading.Monitor:Exit(System.Object)\n        call     [rax]System.Threading.Monitor:Exit(System.Object)\n \t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 4.25\n-G_M2355_IG13:\n\u002BG_M2355_IG11:\n        mov      rdi, gword ptr [rbx\u002B0x20]\n        cmp      gword ptr [rdi\u002B0x08], 0\n-       jne      SHORT G_M2355_IG14\n\u002B       jne      SHORT G_M2355_IG12\n        mov      rax, gword ptr [rdi\u002B0x18]\n-       jmp      SHORT G_M2355_IG15\n\u002B       jmp      SHORT G_M2355_IG13\n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 9.00\n-G_M2355_IG14:\n\u002BG_M2355_IG12:\n        mov      rax, 0xD1FFAB1E      ; code for System.Lazy\u00601[System.__Canon]:CreateValue():System.__Canon:this\n        call     [rax]System.Lazy\u00601[System.__Canon]:CreateValue():System.__Canon:this\n \t\t\t\t\t\t;; size=12 bbWeight=1 PerfScore 3.25\n-G_M2355_IG15:\n\u002BG_M2355_IG13:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M2355_IG16:\n\u002BG_M2355_IG14:\n        add      rsp, 32\n        pop      rbx\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 2.75\n-G_M2355_IG17:\n-       call     G_M2355_IG20\n\u002BG_M2355_IG15:\n\u002B       call     G_M2355_IG18\n        nop      \n \t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 1.25\n-G_M2355_IG18:\n\u002BG_M2355_IG16:\n        mov      rax, gword ptr [rbp-0x30]\n \t\t\t\t\t\t;; size=4 bbWeight=1 PerfScore 1.00\n-G_M2355_IG19:\n\u002BG_M2355_IG17:\n        add      rsp, 32\n        pop      rbx\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 2.75\n-G_M2355_IG20:\n\u002BG_M2355_IG18:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 1.00\n-G_M2355_IG21:\n\u002BG_M2355_IG19:\n        cmp      dword ptr [rbp-0x14], 0\n-       je       SHORT G_M2355_IG22\n\u002B       je       SHORT G_M2355_IG20\n        mov      rdi, gword ptr [rbp-0x28]\n        mov      rax, 0xD1FFAB1E      ; code for System.Threading.Monitor:Exit(System.Object)\n        call     [rax]System.Threading.Monitor:Exit(System.Object)\n \t\t\t\t\t\t;; size=22 bbWeight=1 PerfScore 6.25\n-G_M2355_IG22:\n\u002BG_M2355_IG20:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M2355_IG23:\n\u002BG_M2355_IG21:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n \n-; Total bytes of code 381, prolog size 26, PerfScore 108.25, instruction count 101, allocated bytes for code 381 (MethodHash=5852f6cc) for method System.Data.Entity.Infrastructure.DependencyResolution.DbConfigurationManager:GetConfiguration():System.Data.Entity.Infrastructure.DependencyResolution.InternalConfiguration:this (FullOpts)\n\u002B; Total bytes of code 325, prolog size 26, PerfScore 93.25, instruction count 88, allocated bytes for code 325 (MethodHash=5852f6cc) for method System.Data.Entity.Infrastructure.DependencyResolution.DbConfigurationManager:GetConfiguration():System.Data.Entity.Infrastructure.DependencyResolution.InternalConfiguration:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":381,"DiffBytes":325},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[int]:Aggregate[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[int,short]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[short]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[short]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[short]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[short]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[short]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V69 tmp59        [V69,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 8.75\n-G_M57168_IG25:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M57168_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M57168_IG26\n\u002B       je       SHORT G_M57168_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M57168_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M57168_IG26:\n\u002BG_M57168_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M57168_IG27:\n\u002BG_M57168_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M57168_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M57168_IG28:\n\u002BG_M57168_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M57168_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M57168_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M57168_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M57168_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M57168_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M57168_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M57168_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M57168_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M57168_IG31\n\u002B       je       SHORT G_M57168_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M57168_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M57168_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M57168_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M57168_IG32\n\u002B       je       SHORT G_M57168_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M57168_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M57168_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M57168_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M57168_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateAggregateToCollectionResultCursor[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[short],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[short]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M57168_IG33:\n\u002BG_M57168_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M57168_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M57168_IG34:\n\u002BG_M57168_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M57168_IG35:\n\u002BG_M57168_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M57168_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M57168_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M57168_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M57168_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M57168_IG37\n\u002B       je       SHORT G_M57168_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M57168_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M57168_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M57168_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M57168_IG38\n\u002B       je       SHORT G_M57168_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M57168_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M57168_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M57168_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M57168_IG39:\n\u002BG_M57168_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M57168_IG40:\n\u002BG_M57168_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M57168_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M57168_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M57168_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M57168_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M57168_IG42\n\u002B       je       SHORT G_M57168_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M57168_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M57168_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M57168_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M57168_IG43\n\u002B       je       SHORT G_M57168_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M57168_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M57168_IG43:\n\u002BG_M57168_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M57168_IG44:\n\u002BG_M57168_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=70b620af) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:Aggregate[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=70b620af) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:Aggregate[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.OrchestratedCommerce.AgreementService:ListAutoPaging(Stripe.V2.OrchestratedCommerce.AgreementListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.OrchestratedCommerce.Agreement]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.OrchestratedCommerce.AgreementService:ListAutoPaging(Stripe.V2.OrchestratedCommerce.AgreementListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.OrchestratedCommerce.Agreement]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.OrchestratedCommerce.AgreementService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.OrchestratedCommerce.AgreementListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.OrchestratedCommerce.AgreementListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.OrchestratedCommerce.Agreement]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.OrchestratedCommerce.Agreement]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.OrchestratedCommerce.Agreement]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.OrchestratedCommerce.Agreement]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.OrchestratedCommerce.Agreement]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.OrchestratedCommerce.Agreement]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.OrchestratedCommerce.Agreement]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.OrchestratedCommerce.Agreement]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.OrchestratedCommerce.Agreement]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M30556_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M30556_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/orchestrated_commerce/agreements\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M30556_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M30556_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.OrchestratedCommerce.Agreement]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.OrchestratedCommerce.Agreement]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M30556_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M30556_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.OrchestratedCommerce.Agreement]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.OrchestratedCommerce.Agreement]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M30556_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M30556_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=76ce88a3) for method Stripe.V2.OrchestratedCommerce.AgreementService:ListAutoPaging(Stripe.V2.OrchestratedCommerce.AgreementListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.OrchestratedCommerce.Agreement]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=76ce88a3) for method Stripe.V2.OrchestratedCommerce.AgreementService:ListAutoPaging(Stripe.V2.OrchestratedCommerce.AgreementListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.OrchestratedCommerce.Agreement]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.ModelConfiguration.Edm.Services.TableMappingGenerator:Generate(System.Data.Entity.Core.Metadata.Edm.EntityType,System.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping):this (FullOpts)","Category":"improvement","Description":"1,070 -\u003E 1,014 bytes (-56)","ExtraInfo":null,"Diff":"@@ -18,49 \u002B18,49 @@\n ;* V07 loc4         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CSystem.Data.Entity.Core.Mapping.MappingFragment\u003E\n ;  V08 OutArgs      [V08    ] (  1,  1   )  struct ( 8) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V09 tmp1         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Edm.Services.TableMappingGenerator\u002B\u003C\u003Ec__DisplayClass1_0\u003E\n-;  V10 tmp2         [V10,T16] (  2,  4   )     ref  -\u003E  r12         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Data.Entity.Core.Mapping.EntitySetMapping\u003E\n\u002B;  V10 tmp2         [V10,T15] (  2,  4   )     ref  -\u003E  r12         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Data.Entity.Core.Mapping.EntitySetMapping\u003E\n ;  V11 tmp3         [V11,T07] (  8,  7   )     ref  -\u003E  r12        \n ;  V12 tmp4         [V12,T06] (  4,  8   )     ref  -\u003E  [rbp-0x48]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.EntityTypeMapping,bool]\u003E\n ;* V13 tmp5         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.EntityTypeMapping]\u003E\n-;  V14 tmp6         [V14,T17] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Data.Entity.Core.Mapping.EntityTypeMapping\u003E\n\u002B;  V14 tmp6         [V14,T16] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Data.Entity.Core.Mapping.EntityTypeMapping\u003E\n ;  V15 tmp7         [V15,T13] (  6,  4.50)     ref  -\u003E  rdi        \n-;  V16 tmp8         [V16,T30] (  3,  2   )     ref  -\u003E  r13        \n\u002B;  V16 tmp8         [V16,T29] (  3,  2   )     ref  -\u003E  r13        \n ;  V17 tmp9         [V17,T00] (  9, 16   )     ref  -\u003E  [rbp-0x50]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.EntityTypeMapping\u003E\n ;  V18 tmp10        [V18,T05] (  5,  8   )     ref  -\u003E  [rbp-0x58]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.MappingFragment\u003E\n ;  V19 tmp11        [V19,T08] (  3,  6   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Edm.Services.PropertyMappingGenerator\u003E\n ;  V20 tmp12        [V20,T09] (  3,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n-;  V21 tmp13        [V21,T18] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n\u002B;  V21 tmp13        [V21,T17] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n ;* V22 tmp14        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmModel\u003E\n ;  V23 tmp15        [V23,T10] (  3,  6   )     ref  -\u003E  [rbp-0x60]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.EntityTypeMapping]\u003E\n ;  V24 tmp16        [V24,T11] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.EntityTypeMapping]\u003E\n ;  V25 tmp17        [V25    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V26 tmp18        [V26,T23] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.EntityTypeMapping]\u003E\n-;  V27 tmp19        [V27,T24] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.EntityTypeMapping]\u003E\n\u002B;  V26 tmp18        [V26,T22] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.EntityTypeMapping]\u003E\n\u002B;  V27 tmp19        [V27,T23] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.EntityTypeMapping]\u003E\n ;  V28 tmp20        [V28    ] (  1,  0.50)   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V29 tmp21        [V29,T34] (  2,  1   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.EntityTypeMapping\u003E\n\u002B;  V29 tmp21        [V29,T32] (  2,  1   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.EntityTypeMapping\u003E\n ;* V30 tmp22        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.EntityTypeMapping]\u003E\n-;  V31 tmp23        [V31,T15] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\u003E\n-;  V32 tmp24        [V32    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp23        [V31,T24] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\u003E\n\u002B;  V32 tmp24        [V32    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V33 tmp25        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V34 tmp26        [V34,T33] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.MappingFragment\u003E\n-;  V35 tmp27        [V35,T29] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\u003E\n\u002B;  V34 tmp26        [V34,T33] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.MappingFragment\u003E\n\u002B;* V35 tmp27        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\u003E\n ;* V36 tmp28        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.MappingFragment\u003E\n ;* V37 tmp29        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n ;  V38 tmp30        [V38,T01] (  7, 12   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\u003E\n ;  V39 tmp31        [V39,T27] (  3,  2.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.MappingFragment[]\u003E\n-;  V40 tmp32        [V40,T21] (  4,  3   )     int  -\u003E  r13         single-def \u0022Inline stloc first use temp\u0022\n-;  V41 tmp33        [V41,T19] (  2,  4   )     ref  -\u003E  rdx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Type\u003E\n\u002B;  V40 tmp32        [V40,T20] (  4,  3   )     int  -\u003E  r13         single-def \u0022Inline stloc first use temp\u0022\n\u002B;  V41 tmp33        [V41,T18] (  2,  4   )     ref  -\u003E  rdx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Type\u003E\n ;* V42 tmp34        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Metadata.Edm.MetadataProperty]\u003E\n ;* V43 tmp35        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n ;  V44 tmp36        [V44,T02] (  7, 12   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.EntityTypeMapping]\u003E\n ;  V45 tmp37        [V45,T28] (  3,  2.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.EntityTypeMapping[]\u003E\n-;  V46 tmp38        [V46,T22] (  4,  3   )     int  -\u003E  r13         single-def \u0022Inline stloc first use temp\u0022\n\u002B;  V46 tmp38        [V46,T21] (  4,  3   )     int  -\u003E  r13         single-def \u0022Inline stloc first use temp\u0022\n ;* V47 tmp39        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Common.DbProviderManifest\u003E\n ;  V48 tmp40        [V48,T25] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V49 tmp41        [V49,T26] (  3,  3   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n-;  V50 tmp42        [V50,T31] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n... diff truncated; middle omitted ...\n\u002B;  V51 tmp43        [V51,T31] (  2,  2   )     ref  -\u003E  r13         single-def \u0022argument with side effect\u0022\n\u002B;  V52 tmp44        [V52,T19] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 72\n \n@@ -113,7 \u002B113,7 @@ G_M45892_IG04:\n        mov      gword ptr [rbp-0x60], rax\n        mov      rsi, gword ptr [r12\u002B0x40]\n        test     rsi, rsi\n-       je       G_M45892_IG19\n\u002B       je       G_M45892_IG17\n        lea      rdi, bword ptr [rax\u002B0x08]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[System.Data.Entity.Core.Mapping.EntityTypeMapping,bool]\n@@ -141,7 \u002B141,7 @@ G_M45892_IG05:\n        mov      r13, rax\n        mov      rsi, gword ptr [r12\u002B0x40]\n        test     rsi, rsi\n-       je       G_M45892_IG19\n\u002B       je       G_M45892_IG17\n        lea      rdi, bword ptr [r13\u002B0x08]\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdx, [rbp-0x38]\n@@ -153,46 \u002B153,29 @@ G_M45892_IG05:\n \t\t\t\t\t\t;; size=73 bbWeight=0.50 PerfScore 5.38\n G_M45892_IG06:\n        test     rdi, rdi\n-       je       G_M45892_IG10\n-\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 1.25\n\u002B       je       SHORT G_M45892_IG08\n\u002B\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n G_M45892_IG07:\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax]System.Data.Entity.Core.Mapping.TypeMapping:get_MappingFragments():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.MappingFragment]:this\n-       mov      r13, rax\n-       test     r13, r13\n-       je       G_M45892_IG20\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M45892_IG08\n-       lea      rsi, [rbp-0x40]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M45892_IG09\n-\t\t\t\t\t\t;; size=70 bbWeight=0.50 PerfScore 11.62\n-G_M45892_IG08:\n\u002B       je       G_M45892_IG18\n        lea      rdx, [rbp-0x40]\n-       mov      rsi, r13\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Mapping.MappingFragment](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.MappingFragment],byref):System.Data.Entity.Core.Mapping.MappingFragment\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M45892_IG09:\n        cmp      byte  ptr [rbp-0x40], 0\n-       je       G_M45892_IG21\n\u002B       je       G_M45892_IG19\n        mov      rdi, gword ptr [rax\u002B0x20]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x38]System.Data.Entity.Core.Metadata.Edm.EntitySet:get_ElementType():System.Data.Entity.Core.Metadata.Edm.EntityType:this\n        mov      r13, rax\n-       jmp      SHORT G_M45892_IG11\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 6.62\n-G_M45892_IG10:\n\u002B       jmp      SHORT G_M45892_IG09\n\u002B\t\t\t\t\t\t;; size=76 bbWeight=0.50 PerfScore 12.88\n\u002BG_M45892_IG08:\n        mov      r13, gword ptr [r15\u002B0x18]\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.ModelConfiguration.Edm.EntityTypeExtensions:GetRootType(System.Data.Entity.Core.Metadata.Edm.EntityType):System.Data.Entity.Core.Metadata.Edm.EntityType\n@@ -207,7 \u002B190,7 @@ G_M45892_IG10:\n        call     [rax]System.Data.Entity.ModelConfiguration.Edm.EdmModelExtensions:AddTable(System.Data.Entity.Core.Metadata.Edm.EdmModel,System.String):System.Data.Entity.Core.Metadata.Edm.EntityType\n        mov      r13, rax\n \t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 8.38\n-G_M45892_IG11:\n\u002BG_M45892_IG09:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Mapping.EntityTypeMapping\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x50], rax\n@@ -241,15 \u002B224,15 @@ G_M45892_IG11:\n        mov      rax, gword ptr [rdi\u002B0x08]\n        mov      r13d, dword ptr [rdi\u002B0x10]\n        cmp      dword ptr [rax\u002B0x08], r13d\n-       ja       SHORT G_M45892_IG13\n\u002B       ja       SHORT G_M45892_IG11\n \t\t\t\t\t\t;; size=159 bbWeight=1 PerfScore 41.25\n-G_M45892_IG12:\n\u002BG_M45892_IG10:\n        mov      rsi, gword ptr [rbp-0x58]\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n-       jmp      SHORT G_M45892_IG14\n\u002B       jmp      SHORT G_M45892_IG12\n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 3.12\n-G_M45892_IG13:\n\u002BG_M45892_IG11:\n        lea      esi, [r13\u002B0x01]\n        mov      dword ptr [rdi\u002B0x10], esi\n        mov      esi, r13d\n@@ -258,7 \u002B241,7 @@ G_M45892_IG13:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST\n        call     [rax]CORINFO_HELP_ARRADDR_ST\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 3.12\n-G_M45892_IG14:\n\u002BG_M45892_IG12:\n        mov      rdi, rbx\n        mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x40]\n@@ -279,15 \u002B262,15 @@ G_M45892_IG14:\n        mov      rax, gword ptr [rdi\u002B0x08]\n        mov      r13d, dword ptr [rdi\u002B0x10]\n        cmp      dword ptr [rax\u002B0x08], r13d\n-       ja       SHORT G_M45892_IG16\n\u002B       ja       SHORT G_M45892_IG14\n \t\t\t\t\t\t;; size=94 bbWeight=1 PerfScore 32.00\n-G_M45892_IG15:\n\u002BG_M45892_IG13:\n        mov      rsi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n-       jmp      SHORT G_M45892_IG17\n\u002B       jmp      SHORT G_M45892_IG15\n \t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.75\n-G_M45892_IG16:\n\u002BG_M45892_IG14:\n        lea      esi, [r13\u002B0x01]\n        mov      dword ptr [rdi\u002B0x10], esi\n        mov      esi, r13d\n@@ -296,7 \u002B279,7 @@ G_M45892_IG16:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST\n        call     [rax]CORINFO_HELP_ARRADDR_ST\n \t\t\t\t\t\t;; size=28 bbWeight=0.50 PerfScore 2.75\n-G_M45892_IG17:\n\u002BG_M45892_IG15:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.ModelConfiguration.Edm.Services.PropertyMappingGenerator\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -327,7 \u002B310,7 @@ G_M45892_IG17:\n        call     [rax]System.Data.Entity.ModelConfiguration.Edm.Services.PropertyMappingGenerator:Generate(System.Data.Entity.Core.Metadata.Edm.EntityType,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty],System.Data.Entity.Core.Mapping.EntitySetMapping,System.Data.Entity.Core.Mapping.MappingFragment,System.Collections.Generic.IList\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty],bool):this\n        nop      \n \t\t\t\t\t\t;; size=124 bbWeight=1 PerfScore 24.75\n-G_M45892_IG18:\n\u002BG_M45892_IG16:\n        add      rsp, 72\n        pop      rbx\n        pop      r12\n@@ -337,23 \u002B320,23 @@ G_M45892_IG18:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M45892_IG19:\n\u002BG_M45892_IG17:\n        mov      edi, 20\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M45892_IG20:\n\u002BG_M45892_IG18:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M45892_IG21:\n\u002BG_M45892_IG19:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1070, prolog size 35, PerfScore 198.08, instruction count 248, allocated bytes for code 1070 (MethodHash=5b484cbb) for method System.Data.Entity.ModelConfiguration.Edm.Services.TableMappingGenerator:Generate(System.Data.Entity.Core.Metadata.Edm.EntityType,System.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping):this (FullOpts)\n\u002B; Total bytes of code 1014, prolog size 35, PerfScore 190.58, instruction count 235, allocated bytes for code 1014 (MethodHash=5b484cbb) for method System.Data.Entity.ModelConfiguration.Edm.Services.TableMappingGenerator:Generate(System.Data.Entity.Core.Metadata.Edm.EntityType,System.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1070,"DiffBytes":1014},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollection[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,137 -\u003E 1,056 bytes (-81)","ExtraInfo":null,"Diff":"@@ -14,14 \u002B14,14 @@\n ;  V03 arg2         [V03,T05] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[long,System.__Canon]\u003E\n ;  V04 arg3         [V04,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T24] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n\u002B;  V06 loc0         [V06,T23] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n-;  V08 loc2         [V08,T25] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n-;  V09 loc3         [V09,T22] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V08 loc2         [V08,T24] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n\u002B;  V09 loc3         [V09,T21] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V12 tmp2         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V13 tmp3         [V13,T31] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V13 tmp3         [V13,T30] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V14 tmp4         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V15 tmp5         [V15    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V16 tmp6         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n@@ -39,17 \u002B39,17 @@\n ;* V28 tmp18        [V28    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V29 tmp19        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V30 tmp20        [V30    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V31 tmp21        [V31,T23] (  3,  2   )     int  -\u003E  registers  \n-;  V32 tmp22        [V32,T06] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V33 tmp23        [V33    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V34 tmp24        [V34,T20] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V35 tmp25        [V35,T21] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V31 tmp21        [V31,T22] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V32 tmp22        [V32,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V33 tmp23        [V33    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V34 tmp24        [V34,T20] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V37 tmp27        [V37,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V38 tmp28        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V39 tmp29        [V39,T28] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V39 tmp29        [V39,T27] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V41 tmp31        [V41,T19] (  8,  3   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V41 tmp31        [V41,T19] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V42 tmp32        [V42,T07] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V43 tmp33        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V44 tmp34        [V44,T10] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -58,13 \u002B58,13 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;  V50 tmp40        [V50,T16] (  2,  2   )     ref  -\u003E  [rbp-0x90]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V51 tmp41        [V51,T26] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V15.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp42        [V52,T27] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V15.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V50 tmp40        [V50,T16] (  2,  2   )     ref  -\u003E  [rbp-0x88]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V51 tmp41        [V51,T25] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V15.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp42        [V52,T26] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V15.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V53 tmp43        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V22._name (fldOffset=0x0)\u0022 P-DEP\n ;* V54 tmp44        [V54    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V22._value (fldOffset=0x8)\u0022 P-DEP\n-;  V55 tmp45        [V55,T29] (  2,  1   )     ref  -\u003E  rax         \u0022field V23._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V56 tmp46        [V56,T30] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V23._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V55 tmp45        [V55,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V23._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V56 tmp46        [V56,T29] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V23._value (fldOffset=0x8)\u0022 P-INDEP\n ;  V57 tmp47        [V57,T17] (  2,  4   )    long  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V58 tmp48        [V58,T18] (  2,  4   )    long  -\u003E  rsi         \u0022argument with side effect\u0022\n ;  V59 rat0         [V59,T14] (  3,  4   )    long  -\u003E  rdi         \u0022runtime lookup\u0022\n@@ -72,7 \u002B72,7 @@\n ;  V61 rat2         [V61,T15] (  3,  4   )    long  -\u003E  rsi         \u0022runtime lookup\u0022\n ;  V62 rat3         [V62,T09] (  3,  5.60)    long  -\u003E  rsi         \u0022fgMakeTemp is creating a new local variable\u0022\n ;\n-; Lcl frame size = 168\n\u002B; Lcl frame size = 152\n \n G_M27131_IG01:\n        push     rbp\n@@ -81,14 \u002B81,14 @@ G_M27131_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 168\n-       lea      rbp, [rsp\u002B0xD0]\n\u002B       sub      rsp, 152\n\u002B       lea      rbp, [rsp\u002B0xC0]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x78], rax\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        mov      qword ptr [rbp-0x30], rsi\n-       mov      gword ptr [rbp-0x90], r9\n\u002B       mov      gword ptr [rbp-0x88], r9\n        mov      r15, rdi\n        mov      r14, rsi\n        mov      r13, rdx\n@@ -104,7 \u002B104,7 @@ G_M27131_IG02:\n        mov      rdi, qword ptr [r14\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M27131_IG31\n\u002B       je       G_M27131_IG28\n \t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 9.25\n G_M27131_IG03:\n        mov      rsi, r12\n@@ -154,90 \u002B154,70 @@ G_M27131_IG05:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[long,System.__Canon]:Render(MongoDB.Driver.RenderArgs\u00601[long]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]:this\n        mov      r12, rax\n-       mov      rax, gword ptr [r12\u002B0x08]\n-       mov      gword ptr [rbp-0x80], rax\n-       test     rax, rax\n-       je       G_M27131_IG33\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n... diff truncated; middle omitted ...\n-G_M27131_IG18:\n\u002BG_M27131_IG15:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M27131_IG20\n\u002B       je       SHORT G_M27131_IG17\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M27131_IG19:\n\u002BG_M27131_IG16:\n        xor      ecx, ecx\n-       jmp      SHORT G_M27131_IG22\n\u002B       jmp      SHORT G_M27131_IG19\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M27131_IG20:\n\u002BG_M27131_IG17:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -245,30 \u002B225,30 @@ G_M27131_IG20:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M27131_IG22\n\u002B       jmp      SHORT G_M27131_IG19\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M27131_IG21:\n\u002BG_M27131_IG18:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M27131_IG22:\n\u002BG_M27131_IG19:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M27131_IG23:\n\u002BG_M27131_IG20:\n        mov      dword ptr [rbp-0x6C], ecx\n        mov      rdi, gword ptr [r12\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M27131_IG34\n\u002B       je       G_M27131_IG31\n        cmp      dword ptr [rbp-0x6C], 0\n-       je       G_M27131_IG34\n\u002B       je       G_M27131_IG31\n        mov      rdi, qword ptr [r14\u002B0x18]\n        mov      rsi, qword ptr [rdi\u002B0x20]\n        test     rsi, rsi\n-       je       G_M27131_IG32\n\u002B       je       G_M27131_IG29\n \t\t\t\t\t\t;; size=56 bbWeight=1 PerfScore 14.75\n-G_M27131_IG24:\n\u002BG_M27131_IG21:\n        mov      rdi, r15\n        mov      rdx, r12\n        mov      rcx, rbx\n@@ -280,13 \u002B260,13 @@ G_M27131_IG24:\n        cmp      byte  ptr [r14], r14b\n        mov      rdi, r15\n        mov      rsi, r13\n-       mov      r9, gword ptr [rbp-0x90]\n\u002B       mov      r9, gword ptr [rbp-0x88]\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 16.25\n-G_M27131_IG25:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=74 bbWeight=1 PerfScore 16.25\n\u002BG_M27131_IG22:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -294,22 \u002B274,22 @@ G_M27131_IG25:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r13\n        mov      rcx, r14\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=64 bbWeight=1 PerfScore 11.25\n-G_M27131_IG26:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M27131_IG29\n-\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 2.00\n-G_M27131_IG27:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n\u002BG_M27131_IG23:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M27131_IG26\n\u002B\t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n\u002BG_M27131_IG24:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M27131_IG28\n\u002B       je       SHORT G_M27131_IG25\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -318,12 \u002B298,12 @@ G_M27131_IG27:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M27131_IG28:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n\u002BG_M27131_IG25:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M27131_IG29\n\u002B       je       SHORT G_M27131_IG26\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -332,12 \u002B312,12 @@ G_M27131_IG28:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M27131_IG29:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n\u002BG_M27131_IG26:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M27131_IG30:\n-       add      rsp, 168\n\u002BG_M27131_IG27:\n\u002B       add      rsp, 152\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -346,7 \u002B326,7 @@ G_M27131_IG30:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M27131_IG31:\n\u002BG_M27131_IG28:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -354,21 \u002B334,21 @@ G_M27131_IG31:\n        mov      rdi, rax\n        jmp      G_M27131_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M27131_IG32:\n\u002BG_M27131_IG29:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M27131_IG24\n\u002B       jmp      G_M27131_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M27131_IG33:\n\u002BG_M27131_IG30:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M27131_IG34:\n\u002BG_M27131_IG31:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -380,16 \u002B360,16 @@ G_M27131_IG34:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M27131_IG35:\n\u002BG_M27131_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M27131_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M27131_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M27131_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M27131_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M27131_IG37\n\u002B       je       SHORT G_M27131_IG34\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -398,12 \u002B378,12 @@ G_M27131_IG36:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M27131_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M27131_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M27131_IG38\n\u002B       je       SHORT G_M27131_IG35\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -412,14 \u002B392,14 @@ G_M27131_IG37:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M27131_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M27131_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M27131_IG39:\n\u002BG_M27131_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1137, prolog size 72, PerfScore 161.80, instruction count 268, allocated bytes for code 1137 (MethodHash=8fc49604) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollection[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 1056, prolog size 72, PerfScore 152.42, instruction count 254, allocated bytes for code 1056 (MethodHash=8fc49604) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollection[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1137,"DiffBytes":1056},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Payments.OffSessionPaymentService:ListAutoPaging(Stripe.V2.Payments.OffSessionPaymentListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Payments.OffSessionPayment]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.Payments.OffSessionPaymentService:ListAutoPaging(Stripe.V2.Payments.OffSessionPaymentListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Payments.OffSessionPayment]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Payments.OffSessionPaymentService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Payments.OffSessionPaymentListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Payments.OffSessionPaymentListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Payments.OffSessionPayment]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Payments.OffSessionPayment]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Payments.OffSessionPayment]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Payments.OffSessionPayment]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Payments.OffSessionPayment]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Payments.OffSessionPayment]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Payments.OffSessionPayment]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Payments.OffSessionPayment]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Payments.OffSessionPayment]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M12599_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M12599_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/payments/off_session_payments\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M12599_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M12599_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Payments.OffSessionPayment]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Payments.OffSessionPayment]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M12599_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M12599_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Payments.OffSessionPayment]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Payments.OffSessionPayment]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M12599_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M12599_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=4911cec8) for method Stripe.V2.Payments.OffSessionPaymentService:ListAutoPaging(Stripe.V2.Payments.OffSessionPaymentListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Payments.OffSessionPayment]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=4911cec8) for method Stripe.V2.Payments.OffSessionPaymentService:ListAutoPaging(Stripe.V2.Payments.OffSessionPaymentListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Payments.OffSessionPayment]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.DbExpressionBuilder:Aggregate(System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression]):System.Data.Entity.Core.Common.CommandTrees.DbFunctionAggregate (FullOpts)","Category":"improvement","Description":"442 -\u003E 387 bytes (-55)","ExtraInfo":null,"Diff":"@@ -1,151 \u002B1,131 @@\n ; Assembly listing for method System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.DbExpressionBuilder:Aggregate(System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression]):System.Data.Entity.Core.Common.CommandTrees.DbFunctionAggregate (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 8 single block inlinees; 3 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 arg0         [V00,T01] (  6,  6   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmFunction\u003E\n ;  V01 arg1         [V01,T02] (  5,  5   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression]\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V03 tmp1         [V03,T07] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V04 tmp2         [V04,T08] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V05 tmp3         [V05,T09] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V03 tmp1         [V03,T06] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V04 tmp2         [V04,T07] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V05 tmp3         [V05,T08] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n ;* V06 tmp4         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Common.CommandTrees.DbFunctionAggregate\u003E\n-;  V07 tmp5         [V07,T06] (  2,  2   )     ref  -\u003E  r15         class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Common.CommandTrees.Internal.DbExpressionList\u003E\n-;  V08 tmp6         [V08,T00] (  6, 12   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.CommandTrees.DbFunctionAggregate\u003E\n-;  V09 tmp7         [V09,T03] (  4,  7   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V10 tmp8         [V10    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V11 tmp9         [V11,T05] (  3,  2   )     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n-;  V12 tmp10        [V12,T04] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V07 tmp5         [V07,T04] (  2,  2   )     ref  -\u003E  r15         class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Common.CommandTrees.Internal.DbExpressionList\u003E\n\u002B;  V08 tmp6         [V08,T00] (  6, 12   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.CommandTrees.DbFunctionAggregate\u003E\n\u002B;  V09 tmp7         [V09,T03] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V10 tmp8         [V10    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V11 tmp9         [V11,T05] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n\u002B;* V12 tmp10        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n ;* V13 tmp11        [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.TypeUsage\u003E\n ;\n ; Lcl frame size = 16\n \n G_M34256_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     rbx\n        sub      rsp, 16\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n        mov      r15, rsi\n \t\t\t\t\t\t;; size=23 bbWeight=1 PerfScore 6.25\n G_M34256_IG02:\n        test     rbx, rbx\n-       je       G_M34256_IG07\n\u002B       je       G_M34256_IG04\n        test     r15, r15\n-       je       G_M34256_IG08\n\u002B       je       G_M34256_IG05\n        mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:Any[System.Data.Entity.Core.Common.CommandTrees.DbExpression](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression]):bool\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:Any[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):bool\n        call     [rax]System.Linq.Enumerable:Any[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):bool\n        test     eax, eax\n-       je       G_M34256_IG09\n\u002B       je       G_M34256_IG06\n        mov      rdi, rbx\n        mov      rsi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation:ValidateFunctionAggregate(System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression]):System.Data.Entity.Core.Common.CommandTrees.Internal.DbExpressionList\n        call     [rax]System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation:ValidateFunctionAggregate(System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression]):System.Data.Entity.Core.Common.CommandTrees.Internal.DbExpressionList\n        mov      r15, rax\n-       mov      r14, gword ptr [rbx\u002B0x48]\n-       test     r14, r14\n-       je       G_M34256_IG10\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M34256_IG04\n-\t\t\t\t\t\t;; size=115 bbWeight=1 PerfScore 19.75\n-G_M34256_IG03:\n-       lea      rsi, [rbp-0x28]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      r13, rax\n-       jmp      SHORT G_M34256_IG05\n-\t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 5.00\n-G_M34256_IG04:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x48]\n\u002B       test     rsi, rsi\n\u002B       je       G_M34256_IG07\n        lea      rdx, [rbp-0x28]\n-       mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.FunctionParameter](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter],byref):System.Data.Entity.Core.Metadata.Edm.FunctionParameter\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      r13, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M34256_IG05:\n\u002B       mov      r14, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Common.CommandTrees.DbFunctionAggregate\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      rsi, gword ptr [r13\u002B0x28]\n-       lea      rdi, bword ptr [r14\u002B0x10]\n\u002B       mov      r13, rax\n\u002B       mov      rsi, gword ptr [r14\u002B0x28]\n\u002B       lea      rdi, bword ptr [r13\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r14\u002B0x08]\n\u002B       lea      rdi, bword ptr [r13\u002B0x08]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r14\u002B0x18]\n\u002B       lea      rdi, bword ptr [r13\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      byte  ptr [r14\u002B0x20], 0\n-       mov      rax, r14\n-\t\t\t\t\t\t;; size=63 bbWeight=1 PerfScore 9.75\n-G_M34256_IG06:\n\u002B       mov      byte  ptr [r13\u002B0x20], 0\n\u002B       mov      rax, r13\n\u002B\t\t\t\t\t\t;; size=177 bbWeight=1 PerfScore 28.75\n\u002BG_M34256_IG03:\n        add      rsp, 16\n        pop      rbx\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n-G_M34256_IG07:\n\u002BG_M34256_IG04:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; \u0027function\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:.ctor(System.String):this\n        call     [rax]System.ArgumentNullException:.ctor(System.String):this\n        mov      rdi, rbx\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M34256_IG08:\n\u002BG_M34256_IG05:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; \u0027argument\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:.ctor(System.String):this\n        call     [rax]System.ArgumentNullException:.ctor(System.String):this\n        mov      rdi, rbx\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M34256_IG09:\n\u002BG_M34256_IG06:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; \u0027arguments\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:.ctor(System.String):this\n        call     [rax]System.ArgumentNullException:.ctor(System.String):this\n        mov      rdi, rbx\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M34256_IG10:\n\u002BG_M34256_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 442, prolog size 17, PerfScore 46.75, instruction count 101, allocated bytes for code 442 (MethodHash=e2c07a2f) for method System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.DbExpressionBuilder:Aggregate(System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression]):System.Data.Entity.Core.Common.CommandTrees.DbFunctionAggregate (FullOpts)\n\u002B; Total bytes of code 387, prolog size 17, PerfScore 38.75, instruction count 87, allocated bytes for code 387 (MethodHash=e2c07a2f) for method System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.DbExpressionBuilder:Aggregate(System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression]):System.Data.Entity.Core.Common.CommandTrees.DbFunctionAggregate (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":442,"DiffBytes":387},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[long]:Aggregate[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[long,System.Nullable\u00601[int]]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Nullable\u00601[int]]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n... diff truncated; middle omitted ...\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M63356_IG26\n\u002B       je       SHORT G_M63356_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M63356_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M63356_IG26:\n\u002BG_M63356_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M63356_IG27:\n\u002BG_M63356_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M63356_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M63356_IG28:\n\u002BG_M63356_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M63356_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M63356_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M63356_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M63356_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M63356_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M63356_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M63356_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M63356_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M63356_IG31\n\u002B       je       SHORT G_M63356_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M63356_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M63356_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M63356_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M63356_IG32\n\u002B       je       SHORT G_M63356_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M63356_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M63356_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M63356_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M63356_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateAggregateToCollectionResultCursor[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M63356_IG33:\n\u002BG_M63356_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M63356_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M63356_IG34:\n\u002BG_M63356_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M63356_IG35:\n\u002BG_M63356_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M63356_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M63356_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M63356_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M63356_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M63356_IG37\n\u002B       je       SHORT G_M63356_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M63356_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M63356_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M63356_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M63356_IG38\n\u002B       je       SHORT G_M63356_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M63356_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M63356_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M63356_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M63356_IG39:\n\u002BG_M63356_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M63356_IG40:\n\u002BG_M63356_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M63356_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M63356_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M63356_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M63356_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M63356_IG42\n\u002B       je       SHORT G_M63356_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M63356_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M63356_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M63356_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M63356_IG43\n\u002B       je       SHORT G_M63356_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M63356_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M63356_IG43:\n\u002BG_M63356_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M63356_IG44:\n\u002BG_M63356_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=f9aa0883) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:Aggregate[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=f9aa0883) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:Aggregate[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Payments.SettlementAllocationIntentService:ListAutoPaging(Stripe.V2.Payments.SettlementAllocationIntentListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Payments.SettlementAllocationIntent]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.Payments.SettlementAllocationIntentService:ListAutoPaging(Stripe.V2.Payments.SettlementAllocationIntentListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Payments.SettlementAllocationIntent]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Payments.SettlementAllocationIntentService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Payments.SettlementAllocationIntentListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Payments.SettlementAllocationIntentListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Payments.SettlementAllocationIntent]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Payments.SettlementAllocationIntent]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Payments.SettlementAllocationIntent]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Payments.SettlementAllocationIntent]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Payments.SettlementAllocationIntent]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Payments.SettlementAllocationIntent]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Payments.SettlementAllocationIntent]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Payments.SettlementAllocationIntent]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Payments.SettlementAllocationIntent]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M29517_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M29517_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/payments/settlement_allocation_intents\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M29517_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M29517_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Payments.SettlementAllocationIntent]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Payments.SettlementAllocationIntent]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M29517_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M29517_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Payments.SettlementAllocationIntent]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Payments.SettlementAllocationIntent]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M29517_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M29517_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=57988cb2) for method Stripe.V2.Payments.SettlementAllocationIntentService:ListAutoPaging(Stripe.V2.Payments.SettlementAllocationIntentListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Payments.SettlementAllocationIntent]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=57988cb2) for method Stripe.V2.Payments.SettlementAllocationIntentService:ListAutoPaging(Stripe.V2.Payments.SettlementAllocationIntentListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Payments.SettlementAllocationIntent]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.DbExpressionBuilder:AggregateDistinct(System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression]):System.Data.Entity.Core.Common.CommandTrees.DbFunctionAggregate (FullOpts)","Category":"improvement","Description":"442 -\u003E 387 bytes (-55)","ExtraInfo":null,"Diff":"@@ -1,151 \u002B1,131 @@\n ; Assembly listing for method System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.DbExpressionBuilder:AggregateDistinct(System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression]):System.Data.Entity.Core.Common.CommandTrees.DbFunctionAggregate (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 8 single block inlinees; 3 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 arg0         [V00,T01] (  6,  6   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmFunction\u003E\n ;  V01 arg1         [V01,T02] (  5,  5   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression]\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V03 tmp1         [V03,T07] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V04 tmp2         [V04,T08] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V05 tmp3         [V05,T09] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V03 tmp1         [V03,T06] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V04 tmp2         [V04,T07] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V05 tmp3         [V05,T08] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n ;* V06 tmp4         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Common.CommandTrees.DbFunctionAggregate\u003E\n-;  V07 tmp5         [V07,T06] (  2,  2   )     ref  -\u003E  r15         class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Common.CommandTrees.Internal.DbExpressionList\u003E\n-;  V08 tmp6         [V08,T00] (  6, 12   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.CommandTrees.DbFunctionAggregate\u003E\n-;  V09 tmp7         [V09,T03] (  4,  7   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V10 tmp8         [V10    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V11 tmp9         [V11,T05] (  3,  2   )     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n-;  V12 tmp10        [V12,T04] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V07 tmp5         [V07,T04] (  2,  2   )     ref  -\u003E  r15         class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Common.CommandTrees.Internal.DbExpressionList\u003E\n\u002B;  V08 tmp6         [V08,T00] (  6, 12   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.CommandTrees.DbFunctionAggregate\u003E\n\u002B;  V09 tmp7         [V09,T03] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V10 tmp8         [V10    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V11 tmp9         [V11,T05] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n\u002B;* V12 tmp10        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n ;* V13 tmp11        [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.TypeUsage\u003E\n ;\n ; Lcl frame size = 16\n \n G_M39626_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     rbx\n        sub      rsp, 16\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n        mov      r15, rsi\n \t\t\t\t\t\t;; size=23 bbWeight=1 PerfScore 6.25\n G_M39626_IG02:\n        test     rbx, rbx\n-       je       G_M39626_IG07\n\u002B       je       G_M39626_IG04\n        test     r15, r15\n-       je       G_M39626_IG08\n\u002B       je       G_M39626_IG05\n        mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:Any[System.Data.Entity.Core.Common.CommandTrees.DbExpression](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression]):bool\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:Any[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):bool\n        call     [rax]System.Linq.Enumerable:Any[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):bool\n        test     eax, eax\n-       je       G_M39626_IG09\n\u002B       je       G_M39626_IG06\n        mov      rdi, rbx\n        mov      rsi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation:ValidateFunctionAggregate(System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression]):System.Data.Entity.Core.Common.CommandTrees.Internal.DbExpressionList\n        call     [rax]System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation:ValidateFunctionAggregate(System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression]):System.Data.Entity.Core.Common.CommandTrees.Internal.DbExpressionList\n        mov      r15, rax\n-       mov      r14, gword ptr [rbx\u002B0x48]\n-       test     r14, r14\n-       je       G_M39626_IG10\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M39626_IG04\n-\t\t\t\t\t\t;; size=115 bbWeight=1 PerfScore 19.75\n-G_M39626_IG03:\n-       lea      rsi, [rbp-0x28]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      r13, rax\n-       jmp      SHORT G_M39626_IG05\n-\t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 5.00\n-G_M39626_IG04:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x48]\n\u002B       test     rsi, rsi\n\u002B       je       G_M39626_IG07\n        lea      rdx, [rbp-0x28]\n-       mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.FunctionParameter](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter],byref):System.Data.Entity.Core.Metadata.Edm.FunctionParameter\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      r13, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M39626_IG05:\n\u002B       mov      r14, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Common.CommandTrees.DbFunctionAggregate\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      rsi, gword ptr [r13\u002B0x28]\n-       lea      rdi, bword ptr [r14\u002B0x10]\n\u002B       mov      r13, rax\n\u002B       mov      rsi, gword ptr [r14\u002B0x28]\n\u002B       lea      rdi, bword ptr [r13\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r14\u002B0x08]\n\u002B       lea      rdi, bword ptr [r13\u002B0x08]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r14\u002B0x18]\n\u002B       lea      rdi, bword ptr [r13\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      byte  ptr [r14\u002B0x20], 1\n-       mov      rax, r14\n-\t\t\t\t\t\t;; size=63 bbWeight=1 PerfScore 9.75\n-G_M39626_IG06:\n\u002B       mov      byte  ptr [r13\u002B0x20], 1\n\u002B       mov      rax, r13\n\u002B\t\t\t\t\t\t;; size=177 bbWeight=1 PerfScore 28.75\n\u002BG_M39626_IG03:\n        add      rsp, 16\n        pop      rbx\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n-G_M39626_IG07:\n\u002BG_M39626_IG04:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; \u0027function\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:.ctor(System.String):this\n        call     [rax]System.ArgumentNullException:.ctor(System.String):this\n        mov      rdi, rbx\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M39626_IG08:\n\u002BG_M39626_IG05:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; \u0027argument\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:.ctor(System.String):this\n        call     [rax]System.ArgumentNullException:.ctor(System.String):this\n        mov      rdi, rbx\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M39626_IG09:\n\u002BG_M39626_IG06:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; \u0027arguments\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:.ctor(System.String):this\n        call     [rax]System.ArgumentNullException:.ctor(System.String):this\n        mov      rdi, rbx\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M39626_IG10:\n\u002BG_M39626_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 442, prolog size 17, PerfScore 46.75, instruction count 101, allocated bytes for code 442 (MethodHash=619c6535) for method System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.DbExpressionBuilder:AggregateDistinct(System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression]):System.Data.Entity.Core.Common.CommandTrees.DbFunctionAggregate (FullOpts)\n\u002B; Total bytes of code 387, prolog size 17, PerfScore 38.75, instruction count 87, allocated bytes for code 387 (MethodHash=619c6535) for method System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.DbExpressionBuilder:AggregateDistinct(System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression]):System.Data.Entity.Core.Common.CommandTrees.DbFunctionAggregate (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":442,"DiffBytes":387},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[long]:Aggregate[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[long,System.Numerics.Vector\u00601[float]]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n... diff truncated; middle omitted ...\n-       je       SHORT G_M54721_IG26\n\u002B       je       SHORT G_M54721_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M54721_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M54721_IG26:\n\u002BG_M54721_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M54721_IG27:\n\u002BG_M54721_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M54721_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M54721_IG28:\n\u002BG_M54721_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M54721_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M54721_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M54721_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M54721_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M54721_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M54721_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M54721_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M54721_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M54721_IG31\n\u002B       je       SHORT G_M54721_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M54721_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M54721_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M54721_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M54721_IG32\n\u002B       je       SHORT G_M54721_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M54721_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M54721_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M54721_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M54721_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateAggregateToCollectionResultCursor[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M54721_IG33:\n\u002BG_M54721_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M54721_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M54721_IG34:\n\u002BG_M54721_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M54721_IG35:\n\u002BG_M54721_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M54721_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M54721_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M54721_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M54721_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M54721_IG37\n\u002B       je       SHORT G_M54721_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M54721_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M54721_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M54721_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M54721_IG38\n\u002B       je       SHORT G_M54721_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M54721_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M54721_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M54721_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M54721_IG39:\n\u002BG_M54721_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M54721_IG40:\n\u002BG_M54721_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M54721_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M54721_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M54721_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M54721_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M54721_IG42\n\u002B       je       SHORT G_M54721_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M54721_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M54721_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M54721_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M54721_IG43\n\u002B       je       SHORT G_M54721_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M54721_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M54721_IG43:\n\u002BG_M54721_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M54721_IG44:\n\u002BG_M54721_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=84cc2a3e) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:Aggregate[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=84cc2a3e) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:Aggregate[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Risk.InquiryService:ListAutoPaging(Stripe.V2.Risk.InquiryListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Risk.Inquiry]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.Risk.InquiryService:ListAutoPaging(Stripe.V2.Risk.InquiryListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Risk.Inquiry]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Risk.InquiryService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Risk.InquiryListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Risk.InquiryListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Risk.Inquiry]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Risk.Inquiry]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Risk.Inquiry]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Risk.Inquiry]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Risk.Inquiry]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Risk.Inquiry]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Risk.Inquiry]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Risk.Inquiry]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Risk.Inquiry]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M7575_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M7575_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/risk/inquiries\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M7575_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M7575_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Risk.Inquiry]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Risk.Inquiry]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M7575_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M7575_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Risk.Inquiry]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Risk.Inquiry]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M7575_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M7575_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=afa4e268) for method Stripe.V2.Risk.InquiryService:ListAutoPaging(Stripe.V2.Risk.InquiryListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Risk.Inquiry]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=afa4e268) for method Stripe.V2.Risk.InquiryService:ListAutoPaging(Stripe.V2.Risk.InquiryListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Risk.Inquiry]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeafCellTreeNode:GetForeignKeyEndMapFromAssociationMap(System.Data.Entity.Core.Mapping.AssociationSetMapping):System.Data.Entity.Core.Mapping.EndPropertyMapping (FullOpts)","Category":"improvement","Description":"1,019 -\u003E 964 bytes (-55)","ExtraInfo":null,"Diff":"@@ -8,42 \u002B8,42 @@\n ; 0 inlinees with PGO data; 6 single block inlinees; 8 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T12] (  5,  5   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.AssociationSetMapping\u003E\n-;  V01 loc0         [V01,T16] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.MappingFragment\u003E\n\u002B;  V00 arg0         [V00,T11] (  5,  5   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.AssociationSetMapping\u003E\n\u002B;  V01 loc0         [V01,T16] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.MappingFragment\u003E\n ;  V02 loc1         [V02,T07] (  2,  9   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n ;  V03 loc2         [V03,T06] (  6, 19   )     ref  -\u003E  [rbp-0x48]  class-hnd EH-live single-def \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Data.Entity.Core.Mapping.PropertyMapping]\u003E\n ;  V04 loc3         [V04,T04] (  4, 25   )     ref  -\u003E  r13         class-hnd exact \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeafCellTreeNode\u002B\u003C\u003Ec__DisplayClass28_0\u003E\n-;  V05 loc4         [V05,T27] (  2,  2   )     ref  -\u003E  [rbp-0x50]  do-not-enreg[Z] must-init class-hnd EH-live \u003CSystem.Data.Entity.Core.Mapping.EndPropertyMapping\u003E\n\u002B;  V05 loc4         [V05,T25] (  2,  2   )     ref  -\u003E  [rbp-0x50]  do-not-enreg[Z] must-init class-hnd EH-live \u003CSystem.Data.Entity.Core.Mapping.EndPropertyMapping\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeafCellTreeNode\u002B\u003C\u003Ec__DisplayClass28_0\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n ;  V09 tmp3         [V09,T08] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.EndPropertyMapping,bool]\u003E\n-;  V10 tmp4         [V10,T21] (  2,  4   )     ref  -\u003E  r15         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.EndPropertyMapping]\u003E\n\u002B;  V10 tmp4         [V10,T20] (  2,  4   )     ref  -\u003E  r15         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.EndPropertyMapping]\u003E\n ;  V11 tmp5         [V11,T09] (  4,  8   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.TypeMapping]\u003E\n ;  V12 tmp6         [V12    ] (  3,  3   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V13 tmp7         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V14 tmp8         [V14,T17] (  4,  4   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.TypeMapping\u003E\n ;  V15 tmp9         [V15,T18] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.TypeMapping]\u003E\n-;  V16 tmp10        [V16,T10] (  4,  8   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\u003E\n-;  V17 tmp11        [V17    ] (  3,  3   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V16 tmp10        [V16,T12] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T23] (  3,  3   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.MappingFragment\u003E\n-;  V20 tmp14        [V20,T19] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\u003E\n-;  V21 tmp15        [V21,T24] (  3,  3   )     ref  -\u003E  rdi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Data.Entity.Core.Mapping.PropertyMapping]\u003E\n\u002B;  V19 tmp13        [V19,T26] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.MappingFragment\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\u003E\n\u002B;  V21 tmp15        [V21,T22] (  3,  3   )     ref  -\u003E  rdi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Data.Entity.Core.Mapping.PropertyMapping]\u003E\n ;  V22 tmp16        [V22,T13] (  3,  6   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.PropertyMapping]\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.SZGenericArrayEnumerator\u00601[System.Data.Entity.Core.Mapping.PropertyMapping]\u003E\n-;  V24 tmp18        [V24,T11] (  4,  8   )     ref  -\u003E  rbx         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.__Canon]\u003E\n\u002B;  V24 tmp18        [V24,T10] (  4,  8   )     ref  -\u003E  rbx         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.__Canon]\u003E\n ;  V25 tmp19        [V25    ] (  3,  3   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V26 tmp20        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V27 tmp21        [V27,T25] (  3,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.EndPropertyMapping\u003E\n-;  V28 tmp22        [V28,T20] (  4,  4   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.EndPropertyMapping]\u003E\n\u002B;  V27 tmp21        [V27,T23] (  3,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.EndPropertyMapping\u003E\n\u002B;  V28 tmp22        [V28,T19] (  4,  4   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.EndPropertyMapping]\u003E\n ;  V29 tmp23        [V29,T14] (  3,  6   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n ;  V30 tmp24        [V30,T15] (  3,  6   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n ;  V31 tmp25        [V31,T01] (  3, 36   )     ref  -\u003E  rax         \u0022argument with side effect\u0022\n ;  V32 tmp26        [V32,T02] (  2, 32   )     ref  -\u003E  rcx         \u0022argument with side effect\u0022\n ;  V33 tmp27        [V33,T03] (  2, 32   )     ref  -\u003E  r12         \u0022argument with side effect\u0022\n-;  V34 tmp28        [V34,T22] (  2,  4   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n-;  V35 cse0         [V35,T26] (  3,  3   )    long  -\u003E  r15         \u0022CSE #02: moderate\u0022\n\u002B;  V34 tmp28        [V34,T21] (  2,  4   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n\u002B;  V35 cse0         [V35,T24] (  3,  3   )    long  -\u003E  r14         \u0022CSE #02: moderate\u0022\n ;  V36 rat0         [V36,T00] (  5, 60   )     ref  -\u003E  rsi         \u0022replacement local\u0022\n ;  V37 rat1         [V37,T05] (  3, 20   )    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n ;\n@@ -71,7 \u002B71,7 @@ G_M21923_IG02:\n        call     [rax\u002B0x30]System.Data.Entity.Core.Mapping.EntitySetBaseMapping:get_TypeMappings():System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.TypeMapping]:this\n        mov      r15, rax\n        test     r15, r15\n-       je       G_M21923_IG26\n\u002B       je       G_M21923_IG25\n        mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.TypeMapping]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n@@ -94,39 \u002B94,21 @@ G_M21923_IG03:\n \t\t\t\t\t\t;; size=29 bbWeight=1 PerfScore 4.25\n G_M21923_IG04:\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M21923_IG27\n\u002B       je       G_M21923_IG26\n        mov      rdi, rax\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax]System.Data.Entity.Core.Mapping.TypeMapping:get_MappingFragments():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.MappingFragment]:this\n-       mov      r15, rax\n-       test     r15, r15\n-       je       G_M21923_IG26\n-       mov      rsi, r15\n... diff truncated; middle omitted ...\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        mov      rsi, rax\n \t\t\t\t\t\t;; size=18 bbWeight=2 PerfScore 7.50\n-G_M21923_IG13:\n\u002BG_M21923_IG12:\n        lea      rdi, bword ptr [r13\u002B0x08]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, gword ptr [r13\u002B0x08]\n@@ -204,9 \u002B188,9 @@ G_M21923_IG13:\n        mov      r12, rax\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M21923_IG18\n\u002B       je       G_M21923_IG17\n \t\t\t\t\t\t;; size=49 bbWeight=8 PerfScore 98.00\n-G_M21923_IG14:\n\u002BG_M21923_IG13:\n        mov      rcx, 0xD1FFAB1E      ; data for System.Collections.Generic.EqualityComparer\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]:\u003CDefault\u003Ek__BackingField\n        mov      rcx, gword ptr [rcx]\n        mov      rsi, r12\n@@ -215,14 \u002B199,14 @@ G_M21923_IG14:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:SequenceEqual[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Collections.Generic.IEqualityComparer\u00601[System.__Canon]):bool\n        call     [rax]System.Linq.Enumerable:SequenceEqual[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Collections.Generic.IEqualityComparer\u00601[System.__Canon]):bool\n        test     eax, eax\n-       je       G_M21923_IG10\n\u002B       je       G_M21923_IG09\n \t\t\t\t\t\t;; size=49 bbWeight=8 PerfScore 60.00\n-G_M21923_IG15:\n\u002BG_M21923_IG14:\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[System.Data.Entity.Core.Mapping.EndPropertyMapping,bool]\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n-       mov      rdi, r14\n-       call     [r15\u002B0x28]System.Data.Entity.Core.Mapping.StructuralTypeMapping:get_PropertyMappings():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.PropertyMapping]:this\n\u002B       mov      rdi, r15\n\u002B       call     [r14\u002B0x28]System.Data.Entity.Core.Mapping.StructuralTypeMapping:get_PropertyMappings():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.PropertyMapping]:this\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:OfType[System.Data.Entity.Core.Mapping.EndPropertyMapping](System.Collections.IEnumerable):System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.EndPropertyMapping]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:OfType[System.__Canon](System.Collections.IEnumerable):System.Collections.Generic.IEnumerable\u00601[System.__Canon]\n@@ -240,58 \u002B224,58 @@ G_M21923_IG15:\n        call     [rax]System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Func\u00602[System.__Canon,bool]):System.Collections.Generic.IEnumerable\u00601[System.__Canon]\n        mov      rbx, rax\n        test     rbx, rbx\n-       je       SHORT G_M21923_IG19\n\u002B       je       SHORT G_M21923_IG18\n        mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.EndPropertyMapping]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M21923_IG16\n\u002B       je       SHORT G_M21923_IG15\n        lea      rsi, [rbp-0x40]\n        mov      rdi, rax\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x50]\n        call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M21923_IG17\n\u002B       jmp      SHORT G_M21923_IG16\n \t\t\t\t\t\t;; size=164 bbWeight=1 PerfScore 32.00\n-G_M21923_IG16:\n\u002BG_M21923_IG15:\n        lea      rdx, [rbp-0x40]\n        mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Mapping.EndPropertyMapping](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.EndPropertyMapping],byref):System.Data.Entity.Core.Mapping.EndPropertyMapping\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n \t\t\t\t\t\t;; size=29 bbWeight=1 PerfScore 4.25\n-G_M21923_IG17:\n\u002BG_M21923_IG16:\n        cmp      byte  ptr [rbp-0x40], 0\n-       je       SHORT G_M21923_IG20\n\u002B       je       SHORT G_M21923_IG19\n        mov      gword ptr [rbp-0x50], rax\n-       jmp      SHORT G_M21923_IG21\n\u002B       jmp      SHORT G_M21923_IG20\n \t\t\t\t\t\t;; size=12 bbWeight=1 PerfScore 5.00\n-G_M21923_IG18:\n\u002BG_M21923_IG17:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.EqualityComparer\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M21923_IG14\n\u002B       jmp      G_M21923_IG13\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M21923_IG19:\n\u002BG_M21923_IG18:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M21923_IG20:\n\u002BG_M21923_IG19:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M21923_IG21:\n-       call     G_M21923_IG29\n\u002BG_M21923_IG20:\n\u002B       call     G_M21923_IG28\n        nop      \n \t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 1.25\n-G_M21923_IG22:\n\u002BG_M21923_IG21:\n        mov      rax, gword ptr [rbp-0x50]\n \t\t\t\t\t\t;; size=4 bbWeight=1 PerfScore 1.00\n-G_M21923_IG23:\n\u002BG_M21923_IG22:\n        add      rsp, 40\n        pop      rbx\n        pop      r12\n@@ -301,13 \u002B285,13 @@ G_M21923_IG23:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M21923_IG24:\n\u002BG_M21923_IG23:\n        mov      rdi, gword ptr [rbp-0x48]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        xor      rax, rax\n \t\t\t\t\t\t;; size=19 bbWeight=1 PerfScore 4.50\n-G_M21923_IG25:\n\u002BG_M21923_IG24:\n        add      rsp, 40\n        pop      rbx\n        pop      r12\n@@ -317,40 \u002B301,40 @@ G_M21923_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M21923_IG26:\n\u002BG_M21923_IG25:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M21923_IG27:\n\u002BG_M21923_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M21923_IG28:\n\u002BG_M21923_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.SZGenericArrayEnumerator\u00601[System.Data.Entity.Core.Mapping.PropertyMapping]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M21923_IG07\n\u002B       jmp      G_M21923_IG06\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M21923_IG29:\n\u002BG_M21923_IG28:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 1.00\n-G_M21923_IG30:\n\u002BG_M21923_IG29:\n        cmp      gword ptr [rbp-0x48], 0\n-       je       SHORT G_M21923_IG31\n\u002B       je       SHORT G_M21923_IG30\n        mov      rdi, gword ptr [rbp-0x48]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=1 PerfScore 6.25\n-G_M21923_IG31:\n\u002BG_M21923_IG30:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M21923_IG32:\n\u002BG_M21923_IG31:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n \n-; Total bytes of code 1019, prolog size 38, PerfScore 461.58, instruction count 238, allocated bytes for code 1019 (MethodHash=8acfaa5c) for method System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeafCellTreeNode:GetForeignKeyEndMapFromAssociationMap(System.Data.Entity.Core.Mapping.AssociationSetMapping):System.Data.Entity.Core.Mapping.EndPropertyMapping (FullOpts)\n\u002B; Total bytes of code 964, prolog size 38, PerfScore 446.33, instruction count 224, allocated bytes for code 964 (MethodHash=8acfaa5c) for method System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeafCellTreeNode:GetForeignKeyEndMapFromAssociationMap(System.Data.Entity.Core.Mapping.AssociationSetMapping):System.Data.Entity.Core.Mapping.EndPropertyMapping (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1019,"DiffBytes":964},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[long]:Aggregate[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[long,byte]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[byte]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[byte]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[byte]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[byte]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[byte]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V69 tmp59        [V69,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 8.75\n-G_M30920_IG25:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M30920_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M30920_IG26\n\u002B       je       SHORT G_M30920_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M30920_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M30920_IG26:\n\u002BG_M30920_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M30920_IG27:\n\u002BG_M30920_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M30920_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M30920_IG28:\n\u002BG_M30920_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M30920_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M30920_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M30920_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M30920_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M30920_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M30920_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M30920_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M30920_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M30920_IG31\n\u002B       je       SHORT G_M30920_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M30920_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M30920_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M30920_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M30920_IG32\n\u002B       je       SHORT G_M30920_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M30920_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M30920_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M30920_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M30920_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateAggregateToCollectionResultCursor[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[byte],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[byte]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M30920_IG33:\n\u002BG_M30920_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M30920_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M30920_IG34:\n\u002BG_M30920_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M30920_IG35:\n\u002BG_M30920_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M30920_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M30920_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M30920_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M30920_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M30920_IG37\n\u002B       je       SHORT G_M30920_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M30920_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M30920_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M30920_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M30920_IG38\n\u002B       je       SHORT G_M30920_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M30920_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M30920_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M30920_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M30920_IG39:\n\u002BG_M30920_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M30920_IG40:\n\u002BG_M30920_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M30920_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M30920_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M30920_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M30920_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M30920_IG42\n\u002B       je       SHORT G_M30920_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M30920_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M30920_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M30920_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M30920_IG43\n\u002B       je       SHORT G_M30920_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M30920_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M30920_IG43:\n\u002BG_M30920_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M30920_IG44:\n\u002BG_M30920_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=a8538737) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:Aggregate[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=a8538737) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:Aggregate[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Signals.AccountSignalService:ListAutoPaging(Stripe.V2.Signals.AccountSignalListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Signals.AccountSignal]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.Signals.AccountSignalService:ListAutoPaging(Stripe.V2.Signals.AccountSignalListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Signals.AccountSignal]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Signals.AccountSignalService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Signals.AccountSignalListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Signals.AccountSignalListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Signals.AccountSignal]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Signals.AccountSignal]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Signals.AccountSignal]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Signals.AccountSignal]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Signals.AccountSignal]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Signals.AccountSignal]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Signals.AccountSignal]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Signals.AccountSignal]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Signals.AccountSignal]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M33415_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M33415_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/signals/account_signals\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M33415_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M33415_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Signals.AccountSignal]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Signals.AccountSignal]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M33415_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M33415_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Signals.AccountSignal]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Signals.AccountSignal]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M33415_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M33415_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=fd9c7d78) for method Stripe.V2.Signals.AccountSignalService:ListAutoPaging(Stripe.V2.Signals.AccountSignalListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Signals.AccountSignal]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=fd9c7d78) for method Stripe.V2.Signals.AccountSignalService:ListAutoPaging(Stripe.V2.Signals.AccountSignalListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Signals.AccountSignal]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Metadata.Edm.EdmSerializationVisitor:VisitFunctionImportReturnParameters(System.Data.Entity.Core.Metadata.Edm.EdmFunction):this (FullOpts)","Category":"improvement","Description":"489 -\u003E 434 bytes (-55)","ExtraInfo":null,"Diff":"@@ -9,26 \u002B9,26 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T06] (  7, 18   )     ref  -\u003E  r15         this class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmSerializationVisitor\u003E\n-;  V01 arg1         [V01,T02] (  6, 22   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmFunction\u003E\n-;  V02 loc0         [V02,T01] (  6, 25   )     int  -\u003E  r14        \n\u002B;  V01 arg1         [V01,T01] (  6, 22   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmFunction\u003E\n\u002B;  V02 loc0         [V02,T00] (  6, 25   )     int  -\u003E  r14        \n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V04 tmp1         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmXmlSchemaWriter\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n ;* V06 tmp3         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n ;* V07 tmp4         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EntitySet]\u003E\n-;  V08 tmp5         [V08,T00] (  4, 28   )     ref  -\u003E  r13         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V09 tmp6         [V09    ] (  2,  4   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V10 tmp7         [V10,T10] (  5, 12   )     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n-;  V11 tmp8         [V11,T11] (  4, 12   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V12 tmp9         [V12,T12] (  2,  8   )     ref  -\u003E  r13         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.MetadataProperty]\u003E\n\u002B;  V08 tmp5         [V08,T02] (  3, 24   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V09 tmp6         [V09    ] (  1,  4   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V10 tmp7         [V10,T10] (  4, 12   )     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n\u002B;* V11 tmp8         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V12 tmp9         [V12,T11] (  2,  8   )     ref  -\u003E  r13         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.MetadataProperty]\u003E\n ;  V13 tmp10        [V13,T07] (  4, 16   )     ref  -\u003E  r12         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u00601[System.Data.Entity.Core.Metadata.Edm.MetadataProperty]\u003E\n-;  V14 tmp11        [V14,T14] (  2,  8   )    long  -\u003E  [rbp-0x38]  spill-single-def \u0022Inlining Arg\u0022\n\u002B;  V14 tmp11        [V14,T13] (  2,  8   )    long  -\u003E  [rbp-0x38]  spill-single-def \u0022Inlining Arg\u0022\n ;* V15 tmp12        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n ;  V16 tmp13        [V16,T03] (  3, 24   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V17 tmp14        [V17,T08] (  2, 16   )     ref  -\u003E  r12         \u0022argument with side effect\u0022\n ;  V18 tmp15        [V18,T09] (  2, 16   )     ref  -\u003E  rdx         \u0022argument with side effect\u0022\n ;  V19 tmp16        [V19,T04] (  3, 24   )     ref  -\u003E  r13         \u0022argument with side effect\u0022\n-;  V20 tmp17        [V20,T13] (  2,  8   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n\u002B;  V20 tmp17        [V20,T12] (  2,  8   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n ;  V21 tmp18        [V21,T05] (  3, 24   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 24\n@@ -49,7 \u002B49,7 @@ G_M7331_IG01:\n \t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 8.50\n G_M7331_IG02:\n        xor      r14d, r14d\n-       jmp      G_M7331_IG09\n\u002B       jmp      G_M7331_IG06\n \t\t\t\t\t\t;; size=8 bbWeight=1 PerfScore 2.25\n G_M7331_IG03:\n        mov      rdi, gword ptr [r15\u002B0x08]\n@@ -75,39 \u002B75,19 @@ G_M7331_IG03:\n        mov      rax, qword ptr [r13]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x38]System.Data.Entity.Core.Metadata.Edm.EdmXmlSchemaWriter:WriteFunctionImportReturnTypeAttributes(System.Data.Entity.Core.Metadata.Edm.FunctionParameter,System.Data.Entity.Core.Metadata.Edm.EntitySet,bool):this\n-       mov      r13, gword ptr [rbx\u002B0x48]\n-       test     r13, r13\n-       je       G_M7331_IG11\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M7331_IG05\n-\t\t\t\t\t\t;; size=134 bbWeight=4 PerfScore 170.00\n-G_M7331_IG04:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      r12, rax\n-       jmp      SHORT G_M7331_IG06\n-\t\t\t\t\t\t;; size=22 bbWeight=2 PerfScore 20.00\n-G_M7331_IG05:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x48]\n\u002B       test     rsi, rsi\n\u002B       je       G_M7331_IG08\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.FunctionParameter](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter],byref):System.Data.Entity.Core.Metadata.Edm.FunctionParameter\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      r12, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=2 PerfScore 9.00\n-G_M7331_IG06:\n-       test     r12, r12\n-       je       G_M7331_IG08\n-\t\t\t\t\t\t;; size=9 bbWeight=4 PerfScore 5.00\n-G_M7331_IG07:\n-       mov      rdi, r12\n\u002B       mov      r13, rax\n\u002B       test     r13, r13\n\u002B       je       G_M7331_IG05\n\u002B\t\t\t\t\t\t;; size=142 bbWeight=4 PerfScore 172.00\n\u002BG_M7331_IG04:\n\u002B       mov      rdi, r13\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.MetadataItem:get_Annotations():System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.MetadataProperty]:this\n        call     [rax]System.Data.Entity.Core.Metadata.Edm.MetadataItem:get_Annotations():System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.MetadataProperty]:this\n        mov      rsi, rax\n@@ -115,8 \u002B95,8 @@ G_M7331_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:Any[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):bool\n        call     [rax]System.Linq.Enumerable:Any[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):bool\n        test     eax, eax\n-       je       G_M7331_IG08\n-       mov      rdi, r12\n\u002B       je       G_M7331_IG05\n\u002B       mov      rdi, r13\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.MetadataItem:get_Annotations():System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.MetadataProperty]:this\n        call     [rax]System.Data.Entity.Core.Metadata.Edm.MetadataItem:get_Annotations():System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.MetadataProperty]:this\n        mov      r13, rax\n@@ -140,14 \u002B120,14 @@ G_M7331_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Edm.EdmModelVisitor:VisitCollection[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Action\u00601[System.__Canon])\n        call     [rax]System.Data.Entity.Edm.EdmModelVisitor:VisitCollection[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Action\u00601[System.__Canon])\n \t\t\t\t\t\t;; size=173 bbWeight=2 PerfScore 53.00\n-G_M7331_IG08:\n\u002BG_M7331_IG05:\n        mov      rdi, gword ptr [r15\u002B0x08]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x20]System.Data.Entity.Core.Metadata.Edm.XmlSchemaWriter:WriteEndElement():this\n        inc      r14d\n \t\t\t\t\t\t;; size=17 bbWeight=4 PerfScore 37.00\n-G_M7331_IG09:\n\u002BG_M7331_IG06:\n        mov      rdi, gword ptr [rbx\u002B0x48]\n        mov      rdi, gword ptr [rdi\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n@@ -155,7 \u002B135,7 @@ G_M7331_IG09:\n        cmp      eax, r14d\n        jg       G_M7331_IG03\n \t\t\t\t\t\t;; size=30 bbWeight=8 PerfScore 68.00\n-G_M7331_IG10:\n\u002BG_M7331_IG07:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -165,12 \u002B145,12 @@ G_M7331_IG10:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M7331_IG11:\n\u002BG_M7331_IG08:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 489, prolog size 25, PerfScore 377.00, instruction count 116, allocated bytes for code 489 (MethodHash=7a0ce35c) for method System.Data.Entity.Core.Metadata.Edm.EdmSerializationVisitor:VisitFunctionImportReturnParameters(System.Data.Entity.Core.Metadata.Edm.EdmFunction):this (FullOpts)\n\u002B; Total bytes of code 434, prolog size 25, PerfScore 345.00, instruction count 102, allocated bytes for code 434 (MethodHash=7a0ce35c) for method System.Data.Entity.Core.Metadata.Edm.EdmSerializationVisitor:VisitFunctionImportReturnParameters(System.Data.Entity.Core.Metadata.Edm.EdmFunction):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":489,"DiffBytes":434},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[long]:Aggregate[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[long,double]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[double]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[double]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[double]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[double]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[double]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V69 tmp59        [V69,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 8.75\n-G_M37335_IG25:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M37335_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M37335_IG26\n\u002B       je       SHORT G_M37335_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M37335_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M37335_IG26:\n\u002BG_M37335_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M37335_IG27:\n\u002BG_M37335_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M37335_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M37335_IG28:\n\u002BG_M37335_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M37335_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M37335_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M37335_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M37335_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M37335_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M37335_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M37335_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M37335_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M37335_IG31\n\u002B       je       SHORT G_M37335_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M37335_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M37335_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M37335_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M37335_IG32\n\u002B       je       SHORT G_M37335_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M37335_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M37335_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M37335_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M37335_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateAggregateToCollectionResultCursor[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[double],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[double]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M37335_IG33:\n\u002BG_M37335_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M37335_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M37335_IG34:\n\u002BG_M37335_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M37335_IG35:\n\u002BG_M37335_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M37335_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M37335_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M37335_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M37335_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M37335_IG37\n\u002B       je       SHORT G_M37335_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M37335_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M37335_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M37335_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M37335_IG38\n\u002B       je       SHORT G_M37335_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M37335_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M37335_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M37335_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M37335_IG39:\n\u002BG_M37335_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M37335_IG40:\n\u002BG_M37335_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M37335_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M37335_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M37335_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M37335_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M37335_IG42\n\u002B       je       SHORT G_M37335_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M37335_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M37335_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M37335_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M37335_IG43\n\u002B       je       SHORT G_M37335_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M37335_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M37335_IG43:\n\u002BG_M37335_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M37335_IG44:\n\u002BG_M37335_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=78796e28) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:Aggregate[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=78796e28) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:Aggregate[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Tax.ManualRuleService:ListAutoPaging(Stripe.V2.Tax.ManualRuleListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Tax.ManualRule]:this (FullOpts)","Category":"improvement","Description":"465 -\u003E 419 bytes (-46)","ExtraInfo":null,"Diff":"@@ -1,159 \u002B1,151 @@\n ; Assembly listing for method Stripe.V2.Tax.ManualRuleService:ListAutoPaging(Stripe.V2.Tax.ManualRuleListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Tax.ManualRule]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T04] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Tax.ManualRuleService\u003E\n-;  V01 arg1         [V01,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Tax.ManualRuleListOptions\u003E\n-;  V02 arg2         [V02,T06] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Tax.ManualRuleListOptions\u003E\n\u002B;  V02 arg2         [V02,T05] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[Stripe.V2.Tax.ManualRule]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 tmp3         [V06,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CStripe.ListOptions\u003E\n-;* V07 tmp4         [V07    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;* V08 tmp5         [V08    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V09 tmp6         [V09,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Tax.ManualRule]\u003E\n-;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V12 tmp9         [V12,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Tax.ManualRule]\u003E\n-;  V13 tmp10        [V13,T01] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Tax.ManualRule]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n-;* V15 tmp12        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V16 tmp13        [V16,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Tax.ManualRule]\u003E\n-;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V15.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V22 cse0         [V22,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n-;  V23 cse1         [V23,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n-;  V24 rat0         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V25 rat1         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V26 rat2         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V27 rat3         [V27,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;* V06 tmp3         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;  V08 tmp5         [V08,T00] ( 10, 10   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Tax.ManualRule]\u003E\n\u002B;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V11 tmp8         [V11,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Tax.ManualRule]\u003E\n\u002B;  V12 tmp9         [V12,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Tax.ManualRule]\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V15 tmp12        [V15,T03] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Tax.ManualRule]\u003E\n\u002B;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V10.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V14.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V21 cse0         [V21,T07] (  6,  3   )     int  -\u003E  [rbp-0x2C]  multi-def \u0022CSE #03: aggressive\u0022\n\u002B;  V22 cse1         [V22,T08] (  4,  3   )     ref  -\u003E  r13         \u0022CSE #01: aggressive\u0022\n\u002B;  V23 rat0         [V23,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V24 rat1         [V24,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V25 rat2         [V25,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V26 rat3         [V26,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n ; Lcl frame size = 8\n \n G_M61580_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 8.25\n G_M61580_IG02:\n        mov      r13, 0xD1FFAB1E      ; \u0027/v2/tax/manual_rules\u0027\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M61580_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M61580_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Tax.ManualRule]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0x70], rdi\n        mov      dword ptr [r12\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      eax, dword ptr [rax\u002B0x10]\n        mov      dword ptr [rbp-0x2C], eax\n        mov      dword ptr [r12\u002B0x64], eax\n        lea      rdi, bword ptr [r12\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [r12\u002B0x28], r13\n        lea      rdi, bword ptr [r12\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n        mov      qword ptr [r12\u002B0xA8], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Tax.ManualRule]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n\u002B       mov      r15d, dword ptr [rbp-0x2C]\n\u002B       mov      dword ptr [r14\u002B0x2C], r15d\n        lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M61580_IG05\n \t\t\t\t\t\t;; size=176 bbWeight=0.50 PerfScore 13.62\n G_M61580_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Tax.ManualRule]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0x78], rdi\n-       mov      dword ptr [r12\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rax, 0xD1FFAB1E      ; function address\n        call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      eax, edi\n-       mov      dword ptr [rbp-0x2C], eax\n-       mov      dword ptr [r12\u002B0x6C], eax\n-       lea      rdi, bword ptr [r12\u002B0x18]\n\u002B       mov      r12d, edi\n\u002B       mov      dword ptr [r14\u002B0x6C], r12d\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      gword ptr [r12\u002B0x28], r13\n-       lea      rdi, bword ptr [r12\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r13\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r12\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n        xor      edi, edi\n-       mov      qword ptr [r12\u002B0xB0], rdi\n\u002B       mov      qword ptr [r14\u002B0xB0], rdi\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Infrastructure.AsyncUtils\u002B\u003CToEnumerable\u003Ed__0\u00601[Stripe.V2.Tax.ManualRule]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      dword ptr [r14\u002B0x28], -2\n-       mov      r13d, dword ptr [rbp-0x2C]\n-       mov      dword ptr [r14\u002B0x2C], r13d\n-       lea      rdi, bword ptr [r14\u002B0x18]\n-       mov      rsi, r12\n\u002B       mov      rbx, rax\n\u002B       mov      dword ptr [rbx\u002B0x28], -2\n\u002B       mov      dword ptr [rbx\u002B0x2C], r12d\n\u002B       lea      rdi, bword ptr [rbx\u002B0x18]\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=201 bbWeight=0.50 PerfScore 14.75\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 11.62\n G_M61580_IG05:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M61580_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 465, prolog size 16, PerfScore 46.62, instruction count 103, allocated bytes for code 465 (MethodHash=836d0f73) for method Stripe.V2.Tax.ManualRuleService:ListAutoPaging(Stripe.V2.Tax.ManualRuleListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Tax.ManualRule]:this (FullOpts)\n\u002B; Total bytes of code 419, prolog size 16, PerfScore 43.50, instruction count 96, allocated bytes for code 419 (MethodHash=836d0f73) for method Stripe.V2.Tax.ManualRuleService:ListAutoPaging(Stripe.V2.Tax.ManualRuleListOptions,Stripe.RequestOptions):System.Collections.Generic.IEnumerable\u00601[Stripe.V2.Tax.ManualRule]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":465,"DiffBytes":419},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Objects.ELinq.CompiledELinqQueryState:CreateExpressionConverter():System.Data.Entity.Core.Objects.ELinq.ExpressionConverter:this (FullOpts)","Category":"improvement","Description":"574 -\u003E 519 bytes (-55)","ExtraInfo":null,"Diff":"@@ -8,28 \u002B8,28 @@\n ; 0 inlinees with PGO data; 14 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T02] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.Core.Objects.ELinq.CompiledELinqQueryState\u003E\n\u002B;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.Core.Objects.ELinq.CompiledELinqQueryState\u003E\n ;  V01 loc0         [V01,T07] (  5,  5   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Linq.Expressions.LambdaExpression\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V03 tmp1         [V03,T08] (  2,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Objects.ObjectContext\u003E\n ;* V04 tmp2         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n-;  V05 tmp3         [V05,T03] (  3,  6   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V05 tmp3         [V05,T02] (  3,  6   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;* V06 tmp4         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Objects.ELinq.Funcletizer\u003E\n-;  V07 tmp5         [V07,T04] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Objects.ELinq.ExpressionConverter\u003E\n-;  V08 tmp6         [V08,T01] (  4,  7   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V09 tmp7         [V09    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V07 tmp5         [V07,T03] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Objects.ELinq.ExpressionConverter\u003E\n\u002B;  V08 tmp6         [V08,T04] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V09 tmp7         [V09    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V10 tmp8         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V11 tmp9         [V11,T15] (  3,  2   )     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n-;  V12 tmp10        [V12,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V11 tmp9         [V11,T14] (  2,  2   )     ref  -\u003E  r12         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n\u002B;* V12 tmp10        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;  V13 tmp11        [V13,T05] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.__Canon]\u003E\n ;  V14 tmp12        [V14,T00] (  9, 17   )     ref  -\u003E  [rbp-0x40]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Objects.ELinq.Funcletizer\u003E\n ;  V15 tmp13        [V15,T06] (  3,  6   )     ref  -\u003E  [rbp-0x48]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V16 tmp14        [V16,T16] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Objects.ObjectContext\u003E\n-;  V17 tmp15        [V17,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Expressions.ConstantExpression\u003E\n\u002B;  V16 tmp14        [V16,T15] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Objects.ObjectContext\u003E\n\u002B;  V17 tmp15        [V17,T12] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Expressions.ConstantExpression\u003E\n ;  V18 tmp16        [V18,T09] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;  V19 tmp17        [V19,T10] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V20 cse0         [V20,T14] (  3,  3   )    long  -\u003E  r13         \u0022CSE #02: moderate\u0022\n-;  V21 cse1         [V21,T12] (  4,  3   )     ref  -\u003E  rbx         \u0022CSE #03: moderate\u0022\n\u002B;  V20 cse0         [V20,T13] (  3,  3   )    long  -\u003E  r13         \u0022CSE #02: moderate\u0022\n\u002B;  V21 cse1         [V21,T11] (  4,  3   )     ref  -\u003E  rbx         \u0022CSE #03: moderate\u0022\n ;\n ; Lcl frame size = 40\n \n@@ -58,36 \u002B58,16 @@ G_M6100_IG02:\n        mov      rax, qword ptr [r15]\n        mov      r13, qword ptr [rax\u002B0x48]\n        call     [r13\u002B0x30]System.Linq.Expressions.LambdaExpression:GetOrMakeParameters():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]:this\n-       mov      r12, rax\n-       test     r12, r12\n-       je       G_M6100_IG10\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ParameterExpression]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M6100_IG04\n-\t\t\t\t\t\t;; size=92 bbWeight=1 PerfScore 21.75\n-G_M6100_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      r12, rax\n-       jmp      SHORT G_M6100_IG05\n-\t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 5.00\n-G_M6100_IG04:\n\u002B       je       G_M6100_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r12\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Linq.Expressions.ParameterExpression](System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.ParameterExpression],byref):System.Linq.Expressions.ParameterExpression\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        mov      r12, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M6100_IG05:\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M6100_IG11\n\u002B       je       G_M6100_IG08\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x38], rax\n@@ -103,7 \u002B83,7 @@ G_M6100_IG05:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:ToList[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.Collections.Generic.List\u00601[System.__Canon]\n        call     [rax]System.Linq.Enumerable:ToList[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.Collections.Generic.List\u00601[System.__Canon]\n        test     rax, rax\n-       je       G_M6100_IG12\n\u002B       je       G_M6100_IG09\n        mov      r13, gword ptr [rbp-0x38]\n        lea      rdi, bword ptr [r13\u002B0x08]\n        mov      rsi, rax\n@@ -111,6 \u002B91,8 @@ G_M6100_IG05:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Objects.ELinq.Funcletizer\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x40], rax\n\u002B\t\t\t\t\t\t;; size=226 bbWeight=1 PerfScore 42.50\n\u002BG_M6100_IG03:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.HashSet\u00601[System.Linq.Expressions.Expression]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x48], rax\n@@ -123,8 \u002B105,6 @@ G_M6100_IG05:\n        mov      rsi, gword ptr [rbp-0x48]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rax, gword ptr [rbp-0x40]\n-\t\t\t\t\t\t;; size=192 bbWeight=1 PerfScore 32.00\n-G_M6100_IG06:\n        mov      dword ptr [rax\u002B0x38], 1\n        lea      rdi, bword ptr [rax\u002B0x10]\n        mov      rsi, r14\n@@ -137,11 \u002B117,11 @@ G_M6100_IG06:\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n        cmp      gword ptr [r14\u002B0x08], 0\n-       je       SHORT G_M6100_IG08\n-\t\t\t\t\t\t;; size=54 bbWeight=1 PerfScore 10.25\n-G_M6100_IG07:\n\u002B       je       SHORT G_M6100_IG05\n\u002B\t\t\t\t\t\t;; size=111 bbWeight=1 PerfScore 20.75\n\u002BG_M6100_IG04:\n        test     rbx, rbx\n-       je       SHORT G_M6100_IG08\n\u002B       je       SHORT G_M6100_IG05\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Expressions.ConstantExpression\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n@@ -152,7 \u002B132,7 @@ G_M6100_IG07:\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n \t\t\t\t\t\t;; size=47 bbWeight=0.50 PerfScore 3.12\n-G_M6100_IG08:\n\u002BG_M6100_IG05:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Objects.ELinq.ExpressionConverter\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -163,7 \u002B143,7 @@ G_M6100_IG08:\n        call     [rax]System.Data.Entity.Core.Objects.ELinq.ExpressionConverter:.ctor(System.Data.Entity.Core.Objects.ELinq.Funcletizer,System.Linq.Expressions.Expression):this\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=43 bbWeight=1 PerfScore 7.50\n-G_M6100_IG09:\n\u002BG_M6100_IG06:\n        add      rsp, 40\n        pop      rbx\n        pop      r12\n@@ -173,23 \u002B153,23 @@ G_M6100_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M6100_IG10:\n\u002BG_M6100_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M6100_IG11:\n\u002BG_M6100_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M6100_IG12:\n\u002BG_M6100_IG09:\n        mov      edi, 20\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 574, prolog size 25, PerfScore 94.38, instruction count 133, allocated bytes for code 574 (MethodHash=ce29e82b) for method System.Data.Entity.Core.Objects.ELinq.CompiledELinqQueryState:CreateExpressionConverter():System.Data.Entity.Core.Objects.ELinq.ExpressionConverter:this (FullOpts)\n\u002B; Total bytes of code 519, prolog size 25, PerfScore 86.38, instruction count 119, allocated bytes for code 519 (MethodHash=ce29e82b) for method System.Data.Entity.Core.Objects.ELinq.CompiledELinqQueryState:CreateExpressionConverter():System.Data.Entity.Core.Objects.ELinq.ExpressionConverter:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":574,"DiffBytes":519},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[long]:Aggregate[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[long,int]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[int]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[int]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[int]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[int]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[int]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V69 tmp59        [V69,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 8.75\n-G_M9361_IG25:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M9361_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M9361_IG26\n\u002B       je       SHORT G_M9361_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M9361_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M9361_IG26:\n\u002BG_M9361_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M9361_IG27:\n\u002BG_M9361_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M9361_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M9361_IG28:\n\u002BG_M9361_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M9361_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M9361_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M9361_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M9361_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M9361_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M9361_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M9361_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M9361_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M9361_IG31\n\u002B       je       SHORT G_M9361_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M9361_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M9361_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M9361_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M9361_IG32\n\u002B       je       SHORT G_M9361_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M9361_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M9361_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M9361_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M9361_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateAggregateToCollectionResultCursor[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[int],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[int]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M9361_IG33:\n\u002BG_M9361_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M9361_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M9361_IG34:\n\u002BG_M9361_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M9361_IG35:\n\u002BG_M9361_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M9361_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M9361_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M9361_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M9361_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M9361_IG37\n\u002B       je       SHORT G_M9361_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M9361_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M9361_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M9361_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M9361_IG38\n\u002B       je       SHORT G_M9361_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M9361_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M9361_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M9361_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M9361_IG39:\n\u002BG_M9361_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M9361_IG40:\n\u002BG_M9361_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M9361_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M9361_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M9361_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M9361_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M9361_IG42\n\u002B       je       SHORT G_M9361_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M9361_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M9361_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M9361_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M9361_IG43\n\u002B       je       SHORT G_M9361_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M9361_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M9361_IG43:\n\u002BG_M9361_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M9361_IG44:\n\u002BG_M9361_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=1fe3db6e) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:Aggregate[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=1fe3db6e) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:Aggregate[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.BillSettingService:ListAutoPagingAsync(Stripe.V2.Billing.BillSettingListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.BillSetting]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.Billing.BillSettingService:ListAutoPagingAsync(Stripe.V2.Billing.BillSettingListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.BillSetting]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.BillSettingService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.BillSettingListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.BillSettingListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.BillSetting]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.BillSetting]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.BillSetting]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.BillSetting]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M33672_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M33672_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/billing/bill_settings\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M33672_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M33672_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.BillSetting]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M33672_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M33672_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M33672_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.BillSetting]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M33672_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M33672_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=28527c77) for method Stripe.V2.Billing.BillSettingService:ListAutoPagingAsync(Stripe.V2.Billing.BillSettingListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.BillSetting]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=28527c77) for method Stripe.V2.Billing.BillSettingService:ListAutoPagingAsync(Stripe.V2.Billing.BillSettingListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.BillSetting]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.ModelConfiguration.Edm.ColumnMappingBuilderExtensions:GetEntitySetMapping(System.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping,System.Data.Entity.Core.Metadata.Edm.EntityType,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EntitySet]):System.Data.Entity.Core.Mapping.EntitySetMapping (FullOpts)","Category":"improvement","Description":"534 -\u003E 479 bytes (-55)","ExtraInfo":null,"Diff":"@@ -15,17 \u002B15,17 @@\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V05 tmp1         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Edm.ColumnMappingBuilderExtensions\u002B\u003C\u003Ec__DisplayClass1_0\u003E\n ;  V06 tmp2         [V06,T06] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Metadata.Edm.EntitySet,bool]\u003E\n-;  V07 tmp3         [V07,T07] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.EntitySetMapping,bool]\u003E\n-;  V08 tmp4         [V08,T12] (  2,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.EntitySetMapping]\u003E\n\u002B;  V07 tmp3         [V07,T07] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.EntitySetMapping,bool]\u003E\n\u002B;  V08 tmp4         [V08,T12] (  2,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.EntitySetMapping]\u003E\n ;  V09 tmp5         [V09    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V10 tmp6         [V10,T15] (  2,  2   )     ref  -\u003E  rax         single-def\n-;  V11 tmp7         [V11,T08] (  4,  7   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.EntityContainerMapping]\u003E\n-;  V12 tmp8         [V12    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V10 tmp6         [V10,T14] (  2,  2   )     ref  -\u003E  rax         single-def\n\u002B;  V11 tmp7         [V11,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.EntityContainerMapping]\u003E\n\u002B;  V12 tmp8         [V12    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V14 tmp10        [V14,T13] (  4,  3   )     ref  -\u003E  r15         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.EntityContainerMapping\u003E\n-;  V15 tmp11        [V15,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.EntityContainerMapping]\u003E\n\u002B;  V14 tmp10        [V14,T13] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.EntityContainerMapping\u003E\n\u002B;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.EntityContainerMapping]\u003E\n ;  V16 tmp12        [V16    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V17 tmp13        [V17,T16] (  2,  2   )     ref  -\u003E  rax         single-def\n\u002B;  V17 tmp13        [V17,T15] (  2,  2   )     ref  -\u003E  rax         single-def\n ;  V18 tmp14        [V18,T00] (  6, 30   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V19 tmp15        [V19,T02] (  3, 24   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V20 tmp16        [V20,T04] (  3, 18   )     ref  -\u003E  rax         \u0022argument with side effect\u0022\n@@ -110,63 \u002B110,43 @@ G_M50166_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirst[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Func\u00602[System.__Canon,bool],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirst[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Func\u00602[System.__Canon,bool],byref):System.__Canon\n        cmp      byte  ptr [rbp-0x28], 0\n-       je       G_M50166_IG12\n\u002B       je       G_M50166_IG09\n        lea      rdi, bword ptr [r13\u002B0x10]\n        mov      rsi, rax\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbx\u002B0x08]\n-       test     rbx, rbx\n-       je       G_M50166_IG13\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.EntityContainerMapping]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M50166_IG09\n-\t\t\t\t\t\t;; size=141 bbWeight=1 PerfScore 21.00\n-G_M50166_IG08:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      r15, rax\n-       jmp      SHORT G_M50166_IG10\n-\t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 5.00\n-G_M50166_IG09:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M50166_IG10\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Mapping.EntityContainerMapping](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.EntityContainerMapping],byref):System.Data.Entity.Core.Mapping.EntityContainerMapping\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      r15, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M50166_IG10:\n\u002B       mov      rbx, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M50166_IG14\n\u002B       je       G_M50166_IG11\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[System.Data.Entity.Core.Mapping.EntitySetMapping,bool]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      rbx, rax\n-       mov      rdi, r15\n-       mov      rax, qword ptr [r15]\n\u002B       mov      r15, rax\n\u002B       mov      rdi, rbx\n\u002B       mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x30]System.Data.Entity.Core.Mapping.EntityContainerMapping:get_EntitySetMappings():System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.EntitySetMapping]:this\n-       mov      r15, rax\n-       lea      rdi, bword ptr [rbx\u002B0x10]\n\u002B       mov      rbx, rax\n\u002B       lea      rdi, bword ptr [r15\u002B0x10]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rcx, 0xD1FFAB1E      ; code for System.Data.Entity.ModelConfiguration.Edm.ColumnMappingBuilderExtensions\u002B\u003C\u003Ec__DisplayClass1_0:\u003CGetEntitySetMapping\u003Eb__1(System.Data.Entity.Core.Mapping.EntitySetMapping):bool:this\n-       mov      qword ptr [rbx\u002B0x18], rcx\n\u002B       mov      qword ptr [r15\u002B0x18], rcx\n        lea      rcx, [rbp-0x38]\n-       mov      rsi, r15\n-       mov      rdx, rbx\n\u002B       mov      rsi, rbx\n\u002B       mov      rdx, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirst[System.Data.Entity.Core.Mapping.EntitySetMapping](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.EntitySetMapping],System.Func\u00602[System.Data.Entity.Core.Mapping.EntitySetMapping,bool],byref):System.Data.Entity.Core.Mapping.EntitySetMapping\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirst[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Func\u00602[System.__Canon,bool],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirst[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Func\u00602[System.__Canon,bool],byref):System.__Canon\n        cmp      byte  ptr [rbp-0x38], 0\n-       je       SHORT G_M50166_IG12\n-\t\t\t\t\t\t;; size=108 bbWeight=1 PerfScore 20.50\n-G_M50166_IG11:\n\u002B       je       SHORT G_M50166_IG09\n\u002B\t\t\t\t\t\t;; size=248 bbWeight=1 PerfScore 40.75\n\u002BG_M50166_IG08:\n        add      rsp, 32\n        pop      rbx\n        pop      r13\n@@ -175,22 \u002B155,22 @@ G_M50166_IG11:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n-G_M50166_IG12:\n\u002BG_M50166_IG09:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoMatchException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoMatchException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M50166_IG13:\n\u002BG_M50166_IG10:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M50166_IG14:\n\u002BG_M50166_IG11:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 534, prolog size 33, PerfScore 174.33, instruction count 129, allocated bytes for code 534 (MethodHash=346a3c09) for method System.Data.Entity.ModelConfiguration.Edm.ColumnMappingBuilderExtensions:GetEntitySetMapping(System.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping,System.Data.Entity.Core.Metadata.Edm.EntityType,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EntitySet]):System.Data.Entity.Core.Mapping.EntitySetMapping (FullOpts)\n\u002B; Total bytes of code 479, prolog size 33, PerfScore 166.33, instruction count 115, allocated bytes for code 479 (MethodHash=346a3c09) for method System.Data.Entity.ModelConfiguration.Edm.ColumnMappingBuilderExtensions:GetEntitySetMapping(System.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping,System.Data.Entity.Core.Metadata.Edm.EntityType,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EntitySet]):System.Data.Entity.Core.Mapping.EntitySetMapping (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":534,"DiffBytes":479},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[long]:Aggregate[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[long,long]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[long]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[long]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[long]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[long]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[long]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V69 tmp59        [V69,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 8.75\n-G_M56776_IG25:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M56776_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M56776_IG26\n\u002B       je       SHORT G_M56776_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M56776_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M56776_IG26:\n\u002BG_M56776_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M56776_IG27:\n\u002BG_M56776_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M56776_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M56776_IG28:\n\u002BG_M56776_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M56776_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M56776_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M56776_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M56776_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M56776_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M56776_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M56776_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M56776_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M56776_IG31\n\u002B       je       SHORT G_M56776_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M56776_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M56776_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M56776_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M56776_IG32\n\u002B       je       SHORT G_M56776_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M56776_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M56776_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M56776_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M56776_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateAggregateToCollectionResultCursor[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[long],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[long]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M56776_IG33:\n\u002BG_M56776_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M56776_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M56776_IG34:\n\u002BG_M56776_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M56776_IG35:\n\u002BG_M56776_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M56776_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M56776_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M56776_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M56776_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M56776_IG37\n\u002B       je       SHORT G_M56776_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M56776_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M56776_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M56776_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M56776_IG38\n\u002B       je       SHORT G_M56776_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M56776_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M56776_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M56776_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M56776_IG39:\n\u002BG_M56776_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M56776_IG40:\n\u002BG_M56776_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M56776_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M56776_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M56776_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M56776_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M56776_IG42\n\u002B       je       SHORT G_M56776_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M56776_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M56776_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M56776_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M56776_IG43\n\u002B       je       SHORT G_M56776_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M56776_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M56776_IG43:\n\u002BG_M56776_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M56776_IG44:\n\u002BG_M56776_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=d5602237) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:Aggregate[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=d5602237) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:Aggregate[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.CadenceService:ListAutoPagingAsync(Stripe.V2.Billing.CadenceListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.Cadence]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.Billing.CadenceService:ListAutoPagingAsync(Stripe.V2.Billing.CadenceListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.Cadence]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.CadenceService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.CadenceListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.CadenceListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.Cadence]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.Cadence]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.Cadence]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.Cadence]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M57310_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M57310_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/billing/cadences\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M57310_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M57310_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.Cadence]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M57310_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M57310_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M57310_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.Cadence]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M57310_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M57310_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=e3362021) for method Stripe.V2.Billing.CadenceService:ListAutoPagingAsync(Stripe.V2.Billing.CadenceListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.Cadence]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=e3362021) for method Stripe.V2.Billing.CadenceService:ListAutoPagingAsync(Stripe.V2.Billing.CadenceListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.Cadence]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath:IsAlwaysDefined(System.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Metadata.Edm.EntityType,System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Metadata.Edm.EntityType]]):bool:this (FullOpts)","Category":"improvement","Description":"681 -\u003E 627 bytes (-54)","ExtraInfo":null,"Diff":"@@ -10,33 \u002B10,33 @@\n ;\n ;  V00 this         [V00,T03] ( 10, 13.50)     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath\u003E\n ;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Metadata.Edm.EntityType,System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Metadata.Edm.EntityType]]\u003E\n-;  V02 loc0         [V02,T20] (  3,  1.50)     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmMember\u003E\n-;  V03 loc1         [V03,T06] (  6,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n-;  V04 loc2         [V04,T07] (  6,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n\u002B;  V02 loc0         [V02,T19] (  3,  1.50)     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmMember\u003E\n\u002B;  V03 loc1         [V03,T05] (  6,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n\u002B;  V04 loc2         [V04,T06] (  6,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n ;  V05 loc3         [V05,T14] (  5,  2.50)     ref  -\u003E  r12         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n-;* V06 loc4         [V06,T22] (  0,  0   )     int  -\u003E  zero-ref   \n\u002B;* V06 loc4         [V06,T21] (  0,  0   )     int  -\u003E  zero-ref   \n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V08 tmp1         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n-;  V09 tmp2         [V09,T05] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n-;  V10 tmp3         [V10    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V09 tmp2         [V09,T07] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n\u002B;  V10 tmp3         [V10    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V11 tmp4         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V12 tmp5         [V12,T21] (  3,  1.50)     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmMember\u003E\n-;  V13 tmp6         [V13,T15] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n\u002B;  V12 tmp5         [V12,T20] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmMember\u003E\n\u002B;* V13 tmp6         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n ;  V14 tmp7         [V14,T01] (  3, 24   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n ;* V15 tmp8         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n ;  V16 tmp9         [V16,T08] (  3,  3   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n ;* V17 tmp10        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySetBase\u003E\n ;  V18 tmp11        [V18,T09] (  3,  3   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n-;  V19 tmp12        [V19,T19] (  2,  2   )     int  -\u003E  rax         \u0022Single return block return value\u0022\n\u002B;  V19 tmp12        [V19,T18] (  2,  2   )     int  -\u003E  rax         \u0022Single return block return value\u0022\n ;  V20 tmp13        [V20,T02] (  3, 24   )     ref  -\u003E  rdi         \u0022arr expr\u0022\n ;  V21 tmp14        [V21,T10] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022arr expr\u0022\n ;  V22 tmp15        [V22,T11] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V23 tmp16        [V23,T16] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V23 tmp16        [V23,T15] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;  V24 tmp17        [V24,T12] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022arr expr\u0022\n ;  V25 tmp18        [V25,T13] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V26 tmp19        [V26,T17] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V27 tmp20        [V27,T18] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V28 rat0         [V28,T00] (  7, 24.50)    long  -\u003E  r14         \u0022Widened IV V06\u0022\n\u002B;  V26 tmp19        [V26,T16] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V27 tmp20        [V27,T17] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V28 rat0         [V28,T00] (  7, 24.50)    long  -\u003E  r13         \u0022Widened IV V06\u0022\n ;\n ; Lcl frame size = 8\n \n@@ -55,72 \u002B55,54 @@ G_M54625_IG01:\n        mov      r15, rsi\n \t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 9.25\n G_M54625_IG02:\n-       mov      rsi, gword ptr [rbx\u002B0x10]\n-       cmp      dword ptr [rsi\u002B0x10], 0\n-       je       G_M54625_IG13\n\u002B       mov      rdx, gword ptr [rbx\u002B0x10]\n\u002B       cmp      dword ptr [rdx\u002B0x10], 0\n\u002B       je       G_M54625_IG11\n \t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 5.00\n G_M54625_IG03:\n-       mov      r14, gword ptr [rbx\u002B0x10]\n-       test     r14, r14\n-       je       G_M54625_IG15\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M54625_IG04\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       mov      r13, rax\n-       jmp      SHORT G_M54625_IG05\n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 9.12\n-G_M54625_IG04:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x10]\n\u002B       test     rsi, rsi\n\u002B       je       G_M54625_IG13\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.Data.Entity.Core.Metadata.Edm.EdmMember](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember],byref):System.Data.Entity.Core.Metadata.Edm.EdmMember\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      r13, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M54625_IG05:\n\u002B       mov      r14, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M54625_IG16\n-       xor      r14d, r14d\n\u002B       je       G_M54625_IG14\n\u002B       xor      r13d, r13d\n        mov      rdi, gword ptr [rbx\u002B0x10]\n        mov      edi, dword ptr [rdi\u002B0x10]\n        dec      edi\n        test     edi, edi\n-       jle      SHORT G_M54625_IG07\n-\t\t\t\t\t\t;; size=26 bbWeight=0.50 PerfScore 3.88\n-G_M54625_IG06:\n\u002B       jle      SHORT G_M54625_IG05\n\u002B\t\t\t\t\t\t;; size=68 bbWeight=0.50 PerfScore 7.62\n\u002BG_M54625_IG04:\n        mov      rdi, gword ptr [rbx\u002B0x10]\n-       cmp      r14d, dword ptr [rdi\u002B0x10]\n-       jae      G_M54625_IG17\n\u002B       cmp      r13d, dword ptr [rdi\u002B0x10]\n\u002B       jae      G_M54625_IG15\n        mov      rdi, gword ptr [rdi\u002B0x08]\n-       cmp      r14d, dword ptr [rdi\u002B0x08]\n-       jae      G_M54625_IG18\n-       mov      rdi, gword ptr [rdi\u002B8*r14\u002B0x10]\n\u002B       cmp      r13d, dword ptr [rdi\u002B0x08]\n\u002B       jae      G_M54625_IG16\n\u002B       mov      rdi, gword ptr [rdi\u002B8*r13\u002B0x10]\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Common.Utils.MetadataHelper:IsMemberNullable(System.Data.Entity.Core.Metadata.Edm.EdmMember):bool\n        call     [rax]System.Data.Entity.Core.Common.Utils.MetadataHelper:IsMemberNullable(System.Data.Entity.Core.Metadata.Edm.EdmMember):bool\n        test     eax, eax\n-       jne      G_M54625_IG11\n-       inc      r14d\n\u002B       jne      G_M54625_IG09\n\u002B       inc      r13d\n        mov      rdi, gword ptr [rbx\u002B0x10]\n        mov      edi, dword ptr [rdi\u002B0x10]\n        dec      edi\n-       cmp      r14d, edi\n-       jl       SHORT G_M54625_IG06\n\u002B       cmp      r13d, edi\n\u002B       jl       SHORT G_M54625_IG04\n \t\t\t\t\t\t;; size=70 bbWeight=4 PerfScore 89.00\n-G_M54625_IG07:\n\u002BG_M54625_IG05:\n        mov      rdi, gword ptr [rbx\u002B0x10]\n        cmp      dword ptr [rdi\u002B0x10], 0\n-       je       G_M54625_IG17\n\u002B       je       G_M54625_IG15\n        mov      rdi, gword ptr [rdi\u002B0x08]\n        cmp      dword ptr [rdi\u002B0x08], 0\n-       jbe      G_M54625_IG18\n\u002B       jbe      G_M54625_IG16\n        mov      rdi, gword ptr [rdi\u002B0x10]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x48]\n@@ -130,21 \u002B112,21 @@ G_M54625_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       jne      G_M54625_IG13\n\u002B       jne      G_M54625_IG11\n        mov      rsi, gword ptr [rbx\u002B0x08]\n        mov      rsi, gword ptr [rsi\u002B0x30]\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Metadata.Edm.EntityType\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r14, rax\n-       test     r14, r14\n-       je       G_M54625_IG13\n\u002B       mov      r13, rax\n\u002B       test     r13, r13\n\u002B       je       G_M54625_IG11\n        mov      rdi, gword ptr [rbx\u002B0x10]\n        cmp      dword ptr [rdi\u002B0x10], 0\n-       je       G_M54625_IG17\n\u002B       je       G_M54625_IG15\n        mov      rdi, gword ptr [rdi\u002B0x08]\n        cmp      dword ptr [rdi\u002B0x08], 0\n-       jbe      G_M54625_IG18\n\u002B       jbe      G_M54625_IG16\n        mov      rdi, gword ptr [rdi\u002B0x10]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x48]\n@@ -163,37 \u002B145,37 @@ G_M54625_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        mov      r12, rax\n-       mov      rdi, r14\n\u002B       mov      rdi, r13\n        mov      rsi, rbx\n-       mov      rax, qword ptr [r14]\n\u002B       mov      rax, qword ptr [r13]\n        mov      rax, qword ptr [rax\u002B0x48]\n-\t\t\t\t\t\t;; size=242 bbWeight=0.50 PerfScore 35.88\n-G_M54625_IG08:\n\u002B\t\t\t\t\t\t;; size=243 bbWeight=0.50 PerfScore 35.88\n\u002BG_M54625_IG06:\n        call     [rax]System.Data.Entity.Core.Metadata.Edm.MetadataItem:EdmEquals(System.Data.Entity.Core.Metadata.Edm.MetadataItem):bool:this\n        test     eax, eax\n-       jne      G_M54625_IG13\n\u002B       jne      G_M54625_IG11\n        mov      rdi, rbx\n-       mov      rsi, r14\n\u002B       mov      rsi, r13\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Common.Utils.MetadataHelper:IsParentOf(System.Data.Entity.Core.Metadata.Edm.EntityType,System.Data.Entity.Core.Metadata.Edm.EntityType):bool\n        call     [rax]System.Data.Entity.Core.Common.Utils.MetadataHelper:IsParentOf(System.Data.Entity.Core.Metadata.Edm.EntityType,System.Data.Entity.Core.Metadata.Edm.EntityType):bool\n        test     eax, eax\n-       jne      SHORT G_M54625_IG13\n\u002B       jne      SHORT G_M54625_IG11\n        test     r12, r12\n-       je       SHORT G_M54625_IG13\n\u002B       je       SHORT G_M54625_IG11\n        test     byte  ptr [r12\u002B0x18], 16\n-       jne      SHORT G_M54625_IG09\n\u002B       jne      SHORT G_M54625_IG07\n        mov      rdi, r12\n-       mov      rsi, r13\n\u002B       mov      rsi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Common.Utils.MetadataHelper:DoesMemberExist(System.Data.Entity.Core.Metadata.Edm.StructuralType,System.Data.Entity.Core.Metadata.Edm.EdmMember):bool\n        call     [rax]System.Data.Entity.Core.Common.Utils.MetadataHelper:DoesMemberExist(System.Data.Entity.Core.Metadata.Edm.StructuralType,System.Data.Entity.Core.Metadata.Edm.EdmMember):bool\n        test     eax, eax\n-       je       SHORT G_M54625_IG11\n\u002B       je       SHORT G_M54625_IG09\n \t\t\t\t\t\t;; size=67 bbWeight=0.50 PerfScore 9.25\n-G_M54625_IG09:\n\u002BG_M54625_IG07:\n        mov      rdi, r12\n        mov      rsi, rbx\n-       mov      rdx, r13\n-       mov      rcx, r14\n\u002B       mov      rdx, r14\n\u002B       mov      rcx, r13\n        mov      r8, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath:RecurseToFindMemberAbsentInConcreteType(System.Data.Entity.Core.Metadata.Edm.EntityType,System.Data.Entity.Core.Metadata.Edm.EntityType,System.Data.Entity.Core.Metadata.Edm.EdmMember,System.Data.Entity.Core.Metadata.Edm.EntityType,System.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Metadata.Edm.EntityType,System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Metadata.Edm.EntityType]]):bool\n        call     [rax]System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath:RecurseToFindMemberAbsentInConcreteType(System.Data.Entity.Core.Metadata.Edm.EntityType,System.Data.Entity.Core.Metadata.Edm.EntityType,System.Data.Entity.Core.Metadata.Edm.EdmMember,System.Data.Entity.Core.Metadata.Edm.EntityType,System.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Metadata.Edm.EntityType,System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Metadata.Edm.EntityType]]):bool\n@@ -201,6 \u002B183,19 @@ G_M54625_IG09:\n        sete     al\n        movzx    rax, al\n \t\t\t\t\t\t;; size=35 bbWeight=0.50 PerfScore 2.75\n\u002BG_M54625_IG08:\n\u002B       add      rsp, 8\n\u002B       pop      rbx\n\u002B       pop      r12\n\u002B       pop      r13\n\u002B       pop      r14\n\u002B       pop      r15\n\u002B       pop      rbp\n\u002B       ret      \n\u002B\t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n\u002BG_M54625_IG09:\n\u002B       xor      eax, eax\n\u002B\t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n G_M54625_IG10:\n        add      rsp, 8\n        pop      rbx\n@@ -212,8 \u002B207,8 @@ G_M54625_IG10:\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n G_M54625_IG11:\n-       xor      eax, eax\n-\t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n\u002B       mov      eax, 1\n\u002B\t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 0.12\n G_M54625_IG12:\n        add      rsp, 8\n        pop      rbx\n@@ -225,38 \u002B220,25 @@ G_M54625_IG12:\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n G_M54625_IG13:\n-       mov      eax, 1\n-\t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 0.12\n-G_M54625_IG14:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       ret      \n-\t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M54625_IG15:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M54625_IG16:\n\u002BG_M54625_IG14:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M54625_IG17:\n\u002BG_M54625_IG15:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M54625_IG18:\n\u002BG_M54625_IG16:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 681, prolog size 22, PerfScore 173.00, instruction count 181, allocated bytes for code 681 (MethodHash=e70f2a9e) for method System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath:IsAlwaysDefined(System.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Metadata.Edm.EntityType,System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Metadata.Edm.EntityType]]):bool:this (FullOpts)\n\u002B; Total bytes of code 627, prolog size 22, PerfScore 165.38, instruction count 167, allocated bytes for code 627 (MethodHash=e70f2a9e) for method System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath:IsAlwaysDefined(System.Collections.Generic.Dictionary\u00602[System.Data.Entity.Core.Metadata.Edm.EntityType,System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Metadata.Edm.EntityType]]):bool:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":681,"DiffBytes":627},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[long]:Aggregate[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[long,short]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[short]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[short]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[short]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[short]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[short]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V69 tmp59        [V69,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 8.75\n-G_M51088_IG25:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M51088_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M51088_IG26\n\u002B       je       SHORT G_M51088_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M51088_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M51088_IG26:\n\u002BG_M51088_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M51088_IG27:\n\u002BG_M51088_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M51088_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M51088_IG28:\n\u002BG_M51088_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M51088_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M51088_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M51088_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M51088_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M51088_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M51088_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M51088_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M51088_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M51088_IG31\n\u002B       je       SHORT G_M51088_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M51088_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M51088_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M51088_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M51088_IG32\n\u002B       je       SHORT G_M51088_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M51088_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M51088_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M51088_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M51088_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateAggregateToCollectionResultCursor[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[short],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[short]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M51088_IG33:\n\u002BG_M51088_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M51088_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M51088_IG34:\n\u002BG_M51088_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M51088_IG35:\n\u002BG_M51088_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M51088_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M51088_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M51088_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M51088_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M51088_IG37\n\u002B       je       SHORT G_M51088_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M51088_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M51088_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M51088_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M51088_IG38\n\u002B       je       SHORT G_M51088_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M51088_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M51088_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M51088_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M51088_IG39:\n\u002BG_M51088_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M51088_IG40:\n\u002BG_M51088_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M51088_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M51088_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M51088_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M51088_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M51088_IG42\n\u002B       je       SHORT G_M51088_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M51088_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M51088_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M51088_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M51088_IG43\n\u002B       je       SHORT G_M51088_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M51088_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M51088_IG43:\n\u002BG_M51088_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M51088_IG44:\n\u002BG_M51088_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=848b386f) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:Aggregate[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=848b386f) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:Aggregate[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.CollectionSettingService:ListAutoPagingAsync(Stripe.V2.Billing.CollectionSettingListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.CollectionSetting]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.Billing.CollectionSettingService:ListAutoPagingAsync(Stripe.V2.Billing.CollectionSettingListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.CollectionSetting]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.CollectionSettingService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.CollectionSettingListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.CollectionSettingListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.CollectionSetting]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.CollectionSetting]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.CollectionSetting]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.CollectionSetting]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M8373_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M8373_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/billing/collection_settings\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M8373_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M8373_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.CollectionSetting]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M8373_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M8373_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M8373_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.CollectionSetting]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M8373_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M8373_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=a184df4a) for method Stripe.V2.Billing.CollectionSettingService:ListAutoPagingAsync(Stripe.V2.Billing.CollectionSettingListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.CollectionSetting]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=a184df4a) for method Stripe.V2.Billing.CollectionSettingService:ListAutoPagingAsync(Stripe.V2.Billing.CollectionSettingListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.CollectionSetting]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.ModelConfiguration.Configuration.ConventionTypeConfiguration:NavigationProperty(System.Data.Entity.ModelConfiguration.Utilities.PropertyPath):System.Data.Entity.ModelConfiguration.Configuration.Properties.Navigation.ConventionNavigationPropertyConfiguration:this (FullOpts)","Category":"improvement","Description":"367 -\u003E 313 bytes (-54)","ExtraInfo":null,"Diff":"@@ -1,148 \u002B1,129 @@\n ; Assembly listing for method System.Data.Entity.ModelConfiguration.Configuration.ConventionTypeConfiguration:NavigationProperty(System.Data.Entity.ModelConfiguration.Utilities.PropertyPath):System.Data.Entity.ModelConfiguration.Configuration.Properties.Navigation.ConventionNavigationPropertyConfiguration:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 2 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T01] (  6,  5.50)     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Configuration.ConventionTypeConfiguration\u003E\n-;  V01 arg1         [V01,T02] (  6,  4.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Utilities.PropertyPath\u003E\n\u002B;  V00 this         [V00,T01] (  5,  5   )     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Configuration.ConventionTypeConfiguration\u003E\n\u002B;  V01 arg1         [V01,T02] (  5,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Utilities.PropertyPath\u003E\n ;* V02 loc0         [V02    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Reflection.PropertyInfo\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V04 tmp1         [V04,T07] (  3,  2   )     ref  -\u003E  r15        \n\u002B;  V04 tmp1         [V04,T06] (  3,  2   )     ref  -\u003E  r15        \n ;  V05 tmp2         [V05,T00] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Properties.Navigation.ConventionNavigationPropertyConfiguration\u003E\n-;  V06 tmp3         [V06,T09] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n-;  V07 tmp4         [V07    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V06 tmp3         [V06,T08] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V07 tmp4         [V07    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V08 tmp5         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V09 tmp6         [V09,T06] (  4,  2.50)     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Reflection.PropertyInfo\u003E\n-;  V10 tmp7         [V10,T04] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Reflection.PropertyInfo]\u003E\n\u002B;  V09 tmp6         [V09,T05] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Reflection.PropertyInfo\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Reflection.PropertyInfo]\u003E\n ;* V11 tmp8         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Properties.Navigation.NavigationPropertyConfiguration\u003E\n ;  V12 tmp9         [V12,T03] (  2,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.ModelConfiguration\u003E\n-;  V13 tmp10        [V13,T08] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V14 tmp11        [V14,T10] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V15 rat0         [V15,T05] (  3,  3   )     ref  -\u003E  rax         \u0022delegate invoke call\u0022\n\u002B;  V13 tmp10        [V13,T07] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V14 tmp11        [V14,T09] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V15 cse0         [V15,T04] (  4,  3   )     ref  -\u003E  rax         \u0022CSE #01: aggressive\u0022\n ;\n ; Lcl frame size = 8\n \n G_M7879_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x20]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x20], rax\n        mov      rbx, rdi\n        mov      r15, rsi\n \t\t\t\t\t\t;; size=24 bbWeight=1 PerfScore 7.25\n G_M7879_IG02:\n        mov      rdi, rbx\n        mov      esi, 128\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.ModelConfiguration.Configuration.ConventionTypeConfiguration:ValidateConfiguration(uint):this\n        call     [rax]System.Data.Entity.ModelConfiguration.Configuration.ConventionTypeConfiguration:ValidateConfiguration(uint):this\n        test     r15, r15\n-       je       G_M7879_IG10\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Reflection.PropertyInfo]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M7879_IG04\n-\t\t\t\t\t\t;; size=59 bbWeight=1 PerfScore 10.00\n-G_M7879_IG03:\n-       lea      rsi, [rbp-0x20]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       mov      r14, rax\n-       jmp      SHORT G_M7879_IG05\n-\t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 5.00\n-G_M7879_IG04:\n\u002B       je       G_M7879_IG07\n        lea      rdx, [rbp-0x20]\n        mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.Reflection.PropertyInfo](System.Collections.Generic.IEnumerable\u00601[System.Reflection.PropertyInfo],byref):System.Reflection.PropertyInfo\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        mov      r14, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M7879_IG05:\n        cmp      byte  ptr [rbp-0x20], 0\n-       je       G_M7879_IG11\n\u002B       je       G_M7879_IG08\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Utilities.PropertyInfoExtensions:IsValidEdmNavigationProperty(System.Reflection.PropertyInfo):bool\n        call     [rax]System.Data.Entity.Utilities.PropertyInfoExtensions:IsValidEdmNavigationProperty(System.Reflection.PropertyInfo):bool\n        test     eax, eax\n-       je       G_M7879_IG12\n-       cmp      gword ptr [rbx\u002B0x10], 0\n-       je       SHORT G_M7879_IG07\n-\t\t\t\t\t\t;; size=40 bbWeight=1 PerfScore 9.75\n-G_M7879_IG06:\n\u002B       je       G_M7879_IG09\n        mov      rax, gword ptr [rbx\u002B0x10]\n\u002B       test     rax, rax\n\u002B       je       SHORT G_M7879_IG04\n\u002B\t\t\t\t\t\t;; size=103 bbWeight=1 PerfScore 19.50\n\u002BG_M7879_IG03:\n        mov      rdi, gword ptr [rax\u002B0x10]\n        call     [rax\u002B0x18]System.Func\u00601[System.__Canon]:Invoke():System.__Canon:this\n        mov      rdi, rax\n        mov      rsi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration:Navigation(System.Reflection.PropertyInfo):System.Data.Entity.ModelConfiguration.Configuration.Properties.Navigation.NavigationPropertyConfiguration:this\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration:Navigation(System.Reflection.PropertyInfo):System.Data.Entity.ModelConfiguration.Configuration.Properties.Navigation.NavigationPropertyConfiguration:this\n        mov      r15, rax\n-       jmp      SHORT G_M7879_IG08\n-\t\t\t\t\t\t;; size=36 bbWeight=0.50 PerfScore 7.50\n-G_M7879_IG07:\n\u002B       jmp      SHORT G_M7879_IG05\n\u002B\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 6.50\n\u002BG_M7879_IG04:\n        xor      r15, r15\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M7879_IG08:\n\u002BG_M7879_IG05:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.ModelConfiguration.Configuration.Properties.Navigation.ConventionNavigationPropertyConfiguration\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      rbx, gword ptr [rbx\u002B0x18]\n        lea      rdi, bword ptr [r14\u002B0x08]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r14\u002B0x10]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rax, r14\n \t\t\t\t\t\t;; size=49 bbWeight=1 PerfScore 7.25\n-G_M7879_IG09:\n\u002BG_M7879_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M7879_IG10:\n\u002BG_M7879_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M7879_IG11:\n\u002BG_M7879_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M7879_IG12:\n\u002BG_M7879_IG09:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Resources.Strings:LightweightEntityConfiguration_InvalidNavigationProperty(System.Object):System.String\n        call     [rax]System.Data.Entity.Resources.Strings:LightweightEntityConfiguration_InvalidNavigationProperty(System.Object):System.String\n        mov      rsi, rax\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.InvalidOperationException:.ctor(System.String):this\n        call     [rax]System.InvalidOperationException:.ctor(System.String):this\n        mov      rdi, rbx\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 367, prolog size 18, PerfScore 52.38, instruction count 92, allocated bytes for code 367 (MethodHash=6d20e138) for method System.Data.Entity.ModelConfiguration.Configuration.ConventionTypeConfiguration:NavigationProperty(System.Data.Entity.ModelConfiguration.Utilities.PropertyPath):System.Data.Entity.ModelConfiguration.Configuration.Properties.Navigation.ConventionNavigationPropertyConfiguration:this (FullOpts)\n\u002B; Total bytes of code 313, prolog size 18, PerfScore 43.88, instruction count 79, allocated bytes for code 313 (MethodHash=6d20e138) for method System.Data.Entity.ModelConfiguration.Configuration.ConventionTypeConfiguration:NavigationProperty(System.Data.Entity.ModelConfiguration.Utilities.PropertyPath):System.Data.Entity.ModelConfiguration.Configuration.Properties.Navigation.ConventionNavigationPropertyConfiguration:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":367,"DiffBytes":313},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollection[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,137 -\u003E 1,056 bytes (-81)","ExtraInfo":null,"Diff":"@@ -14,14 \u002B14,14 @@\n ;  V03 arg2         [V03,T05] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[short,System.__Canon]\u003E\n ;  V04 arg3         [V04,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T24] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n\u002B;  V06 loc0         [V06,T23] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n-;  V08 loc2         [V08,T25] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n-;  V09 loc3         [V09,T22] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V08 loc2         [V08,T24] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n\u002B;  V09 loc3         [V09,T21] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V12 tmp2         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V13 tmp3         [V13,T31] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V13 tmp3         [V13,T30] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V14 tmp4         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V15 tmp5         [V15    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V16 tmp6         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n@@ -39,17 \u002B39,17 @@\n ;* V28 tmp18        [V28    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V29 tmp19        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V30 tmp20        [V30    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V31 tmp21        [V31,T23] (  3,  2   )     int  -\u003E  registers  \n-;  V32 tmp22        [V32,T06] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V33 tmp23        [V33    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V34 tmp24        [V34,T20] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V35 tmp25        [V35,T21] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V31 tmp21        [V31,T22] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V32 tmp22        [V32,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V33 tmp23        [V33    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V34 tmp24        [V34,T20] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V37 tmp27        [V37,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V38 tmp28        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V39 tmp29        [V39,T28] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V39 tmp29        [V39,T27] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V41 tmp31        [V41,T19] (  8,  3   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V41 tmp31        [V41,T19] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V42 tmp32        [V42,T07] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V43 tmp33        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V44 tmp34        [V44,T10] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -58,13 \u002B58,13 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;  V50 tmp40        [V50,T16] (  2,  2   )     ref  -\u003E  [rbp-0x90]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V51 tmp41        [V51,T26] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V15.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp42        [V52,T27] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V15.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V50 tmp40        [V50,T16] (  2,  2   )     ref  -\u003E  [rbp-0x88]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V51 tmp41        [V51,T25] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V15.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp42        [V52,T26] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V15.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V53 tmp43        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V22._name (fldOffset=0x0)\u0022 P-DEP\n ;* V54 tmp44        [V54    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V22._value (fldOffset=0x8)\u0022 P-DEP\n-;  V55 tmp45        [V55,T29] (  2,  1   )     ref  -\u003E  rax         \u0022field V23._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V56 tmp46        [V56,T30] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V23._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V55 tmp45        [V55,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V23._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V56 tmp46        [V56,T29] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V23._value (fldOffset=0x8)\u0022 P-INDEP\n ;  V57 tmp47        [V57,T17] (  2,  4   )    long  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V58 tmp48        [V58,T18] (  2,  4   )    long  -\u003E  rsi         \u0022argument with side effect\u0022\n ;  V59 rat0         [V59,T14] (  3,  4   )    long  -\u003E  rdi         \u0022runtime lookup\u0022\n@@ -72,7 \u002B72,7 @@\n ;  V61 rat2         [V61,T15] (  3,  4   )    long  -\u003E  rsi         \u0022runtime lookup\u0022\n ;  V62 rat3         [V62,T09] (  3,  5.60)    long  -\u003E  rsi         \u0022fgMakeTemp is creating a new local variable\u0022\n ;\n-; Lcl frame size = 168\n\u002B; Lcl frame size = 152\n \n G_M11739_IG01:\n        push     rbp\n@@ -81,14 \u002B81,14 @@ G_M11739_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 168\n-       lea      rbp, [rsp\u002B0xD0]\n\u002B       sub      rsp, 152\n\u002B       lea      rbp, [rsp\u002B0xC0]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x78], rax\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        mov      qword ptr [rbp-0x30], rsi\n-       mov      gword ptr [rbp-0x90], r9\n\u002B       mov      gword ptr [rbp-0x88], r9\n        mov      r15, rdi\n        mov      r14, rsi\n        mov      r13, rdx\n@@ -104,7 \u002B104,7 @@ G_M11739_IG02:\n        mov      rdi, qword ptr [r14\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M11739_IG31\n\u002B       je       G_M11739_IG28\n \t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 9.25\n G_M11739_IG03:\n        mov      rsi, r12\n@@ -154,90 \u002B154,70 @@ G_M11739_IG05:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[short,System.__Canon]:Render(MongoDB.Driver.RenderArgs\u00601[short]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]:this\n        mov      r12, rax\n-       mov      rax, gword ptr [r12\u002B0x08]\n-       mov      gword ptr [rbp-0x80], rax\n-       test     rax, rax\n-       je       G_M11739_IG33\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n... diff truncated; middle omitted ...\n\u002BG_M11739_IG15:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M11739_IG20\n\u002B       je       SHORT G_M11739_IG17\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M11739_IG19:\n\u002BG_M11739_IG16:\n        xor      ecx, ecx\n-       jmp      SHORT G_M11739_IG22\n\u002B       jmp      SHORT G_M11739_IG19\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M11739_IG20:\n\u002BG_M11739_IG17:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -245,30 \u002B225,30 @@ G_M11739_IG20:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M11739_IG22\n\u002B       jmp      SHORT G_M11739_IG19\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M11739_IG21:\n\u002BG_M11739_IG18:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M11739_IG22:\n\u002BG_M11739_IG19:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M11739_IG23:\n\u002BG_M11739_IG20:\n        mov      dword ptr [rbp-0x6C], ecx\n        mov      rdi, gword ptr [r12\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M11739_IG34\n\u002B       je       G_M11739_IG31\n        cmp      dword ptr [rbp-0x6C], 0\n-       je       G_M11739_IG34\n\u002B       je       G_M11739_IG31\n        mov      rdi, qword ptr [r14\u002B0x18]\n        mov      rsi, qword ptr [rdi\u002B0x20]\n        test     rsi, rsi\n-       je       G_M11739_IG32\n\u002B       je       G_M11739_IG29\n \t\t\t\t\t\t;; size=56 bbWeight=1 PerfScore 14.75\n-G_M11739_IG24:\n\u002BG_M11739_IG21:\n        mov      rdi, r15\n        mov      rdx, r12\n        mov      rcx, rbx\n@@ -280,13 \u002B260,13 @@ G_M11739_IG24:\n        cmp      byte  ptr [r14], r14b\n        mov      rdi, r15\n        mov      rsi, r13\n-       mov      r9, gword ptr [rbp-0x90]\n\u002B       mov      r9, gword ptr [rbp-0x88]\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 16.25\n-G_M11739_IG25:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=74 bbWeight=1 PerfScore 16.25\n\u002BG_M11739_IG22:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -294,22 \u002B274,22 @@ G_M11739_IG25:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r13\n        mov      rcx, r14\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=64 bbWeight=1 PerfScore 11.25\n-G_M11739_IG26:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M11739_IG29\n-\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 2.00\n-G_M11739_IG27:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n\u002BG_M11739_IG23:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M11739_IG26\n\u002B\t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n\u002BG_M11739_IG24:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M11739_IG28\n\u002B       je       SHORT G_M11739_IG25\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -318,12 \u002B298,12 @@ G_M11739_IG27:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M11739_IG28:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n\u002BG_M11739_IG25:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M11739_IG29\n\u002B       je       SHORT G_M11739_IG26\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -332,12 \u002B312,12 @@ G_M11739_IG28:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M11739_IG29:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n\u002BG_M11739_IG26:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M11739_IG30:\n-       add      rsp, 168\n\u002BG_M11739_IG27:\n\u002B       add      rsp, 152\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -346,7 \u002B326,7 @@ G_M11739_IG30:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M11739_IG31:\n\u002BG_M11739_IG28:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -354,21 \u002B334,21 @@ G_M11739_IG31:\n        mov      rdi, rax\n        jmp      G_M11739_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M11739_IG32:\n\u002BG_M11739_IG29:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M11739_IG24\n\u002B       jmp      G_M11739_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M11739_IG33:\n\u002BG_M11739_IG30:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M11739_IG34:\n\u002BG_M11739_IG31:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -380,16 \u002B360,16 @@ G_M11739_IG34:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M11739_IG35:\n\u002BG_M11739_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M11739_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M11739_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M11739_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M11739_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M11739_IG37\n\u002B       je       SHORT G_M11739_IG34\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -398,12 \u002B378,12 @@ G_M11739_IG36:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M11739_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M11739_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M11739_IG38\n\u002B       je       SHORT G_M11739_IG35\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -412,14 \u002B392,14 @@ G_M11739_IG37:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M11739_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M11739_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M11739_IG39:\n\u002BG_M11739_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1137, prolog size 72, PerfScore 161.80, instruction count 268, allocated bytes for code 1137 (MethodHash=2313d224) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollection[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 1056, prolog size 72, PerfScore 152.42, instruction count 254, allocated bytes for code 1056 (MethodHash=2313d224) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollection[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1137,"DiffBytes":1056},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.ContractService:ListAutoPagingAsync(Stripe.V2.Billing.ContractListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.Contract]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.Billing.ContractService:ListAutoPagingAsync(Stripe.V2.Billing.ContractListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.Contract]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.ContractService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.ContractListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.ContractListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.Contract]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.Contract]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.Contract]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.Contract]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M455_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M455_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/billing/contracts\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M455_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M455_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.Contract]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M455_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M455_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M455_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.Contract]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M455_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M455_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=345cfe38) for method Stripe.V2.Billing.ContractService:ListAutoPagingAsync(Stripe.V2.Billing.ContractListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.Contract]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=345cfe38) for method Stripe.V2.Billing.ContractService:ListAutoPagingAsync(Stripe.V2.Billing.ContractListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.Contract]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.ModelConfiguration.Configuration.Types.StructuralTypeConfiguration\u002B\u003C\u003Ec:\u003Cget_ConfiguredProperties\u003Eb__8_0(System.Data.Entity.ModelConfiguration.Utilities.PropertyPath):System.Reflection.PropertyInfo:this (FullOpts)","Category":"improvement","Description":"138 -\u003E 84 bytes (-54)","ExtraInfo":null,"Diff":"@@ -1,76 \u002B1,54 @@\n ; Assembly listing for method System.Data.Entity.ModelConfiguration.Configuration.Types.StructuralTypeConfiguration\u002B\u003C\u003Ec:\u003Cget_ConfiguredProperties\u003Eb__8_0(System.Data.Entity.ModelConfiguration.Utilities.PropertyPath):System.Reflection.PropertyInfo:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 0 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;* V00 this         [V00    ] (  0,  0   )     ref  -\u003E  zero-ref    this class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Types.StructuralTypeConfiguration\u002B\u003C\u003Ec\u003E\n-;  V01 arg1         [V01,T00] (  5,  4.50)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Utilities.PropertyPath\u003E\n\u002B;  V01 arg1         [V01,T00] (  4,  4   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Utilities.PropertyPath\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V03 tmp1         [V03    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x10]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V03 tmp1         [V03    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x08]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V04 tmp2         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V05 tmp3         [V05,T02] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Reflection.PropertyInfo\u003E\n-;  V06 tmp4         [V06,T01] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Reflection.PropertyInfo]\u003E\n\u002B;  V05 tmp3         [V05,T01] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Reflection.PropertyInfo\u003E\n\u002B;* V06 tmp4         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Reflection.PropertyInfo]\u003E\n ;\n-; Lcl frame size = 8\n\u002B; Lcl frame size = 16\n \n G_M29657_IG01:\n        push     rbp\n-       push     rbx\n-       push     rax\n\u002B       sub      rsp, 16\n        lea      rbp, [rsp\u002B0x10]\n-       mov      rbx, rsi\n-\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.75\n\u002B\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 1.75\n G_M29657_IG02:\n-       test     rbx, rbx\n-       je       SHORT G_M29657_IG07\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Reflection.PropertyInfo]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n\u002B       test     rsi, rsi\n        je       SHORT G_M29657_IG04\n-\t\t\t\t\t\t;; size=35 bbWeight=1 PerfScore 6.25\n-G_M29657_IG03:\n-       lea      rsi, [rbp-0x10]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M29657_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M29657_IG04:\n-       lea      rdx, [rbp-0x10]\n-       mov      rsi, rbx\n\u002B       lea      rdx, [rbp-0x08]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.Reflection.PropertyInfo](System.Collections.Generic.IEnumerable\u00601[System.Reflection.PropertyInfo],byref):System.Reflection.PropertyInfo\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M29657_IG05:\n-       cmp      byte  ptr [rbp-0x10], 0\n-       je       SHORT G_M29657_IG08\n-\t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 2.00\n-G_M29657_IG06:\n-       add      rsp, 8\n-       pop      rbx\n\u002B       cmp      byte  ptr [rbp-0x08], 0\n\u002B       je       SHORT G_M29657_IG05\n\u002B\t\t\t\t\t\t;; size=37 bbWeight=1 PerfScore 7.25\n\u002BG_M29657_IG03:\n\u002B       add      rsp, 16\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.25\n-G_M29657_IG07:\n\u002B\t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 1.75\n\u002BG_M29657_IG04:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M29657_IG08:\n\u002BG_M29657_IG05:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 138, prolog size 8, PerfScore 21.25, instruction count 37, allocated bytes for code 138 (MethodHash=a7f28c26) for method System.Data.Entity.ModelConfiguration.Configuration.Types.StructuralTypeConfiguration\u002B\u003C\u003Ec:\u003Cget_ConfiguredProperties\u003Eb__8_0(System.Data.Entity.ModelConfiguration.Utilities.PropertyPath):System.Reflection.PropertyInfo:this (FullOpts)\n\u002B; Total bytes of code 84, prolog size 10, PerfScore 10.75, instruction count 21, allocated bytes for code 84 (MethodHash=a7f28c26) for method System.Data.Entity.ModelConfiguration.Configuration.Types.StructuralTypeConfiguration\u002B\u003C\u003Ec:\u003Cget_ConfiguredProperties\u003Eb__8_0(System.Data.Entity.ModelConfiguration.Utilities.PropertyPath):System.Reflection.PropertyInfo:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":138,"DiffBytes":84},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[short]:Aggregate[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[short,System.Nullable\u00601[int]]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Nullable\u00601[int]]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n... diff truncated; middle omitted ...\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M22588_IG26\n\u002B       je       SHORT G_M22588_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M22588_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M22588_IG26:\n\u002BG_M22588_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M22588_IG27:\n\u002BG_M22588_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M22588_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M22588_IG28:\n\u002BG_M22588_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M22588_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M22588_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M22588_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M22588_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M22588_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M22588_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M22588_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M22588_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M22588_IG31\n\u002B       je       SHORT G_M22588_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M22588_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M22588_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M22588_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M22588_IG32\n\u002B       je       SHORT G_M22588_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M22588_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M22588_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M22588_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M22588_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateAggregateToCollectionResultCursor[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M22588_IG33:\n\u002BG_M22588_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M22588_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M22588_IG34:\n\u002BG_M22588_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M22588_IG35:\n\u002BG_M22588_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M22588_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M22588_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M22588_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M22588_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M22588_IG37\n\u002B       je       SHORT G_M22588_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M22588_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M22588_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M22588_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M22588_IG38\n\u002B       je       SHORT G_M22588_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M22588_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M22588_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M22588_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M22588_IG39:\n\u002BG_M22588_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M22588_IG40:\n\u002BG_M22588_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M22588_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M22588_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M22588_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M22588_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M22588_IG42\n\u002B       je       SHORT G_M22588_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M22588_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M22588_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M22588_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M22588_IG43\n\u002B       je       SHORT G_M22588_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M22588_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M22588_IG43:\n\u002BG_M22588_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M22588_IG44:\n\u002BG_M22588_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=779da7c3) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:Aggregate[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=779da7c3) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:Aggregate[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.CustomPricingUnitService:ListAutoPagingAsync(Stripe.V2.Billing.CustomPricingUnitListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.CustomPricingUnit]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.Billing.CustomPricingUnitService:ListAutoPagingAsync(Stripe.V2.Billing.CustomPricingUnitListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.CustomPricingUnit]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.CustomPricingUnitService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.CustomPricingUnitListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.CustomPricingUnitListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.CustomPricingUnit]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.CustomPricingUnit]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.CustomPricingUnit]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.CustomPricingUnit]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M55496_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M55496_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/billing/custom_pricing_units\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M55496_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M55496_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.CustomPricingUnit]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M55496_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M55496_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M55496_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.CustomPricingUnit]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M55496_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M55496_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=150c2737) for method Stripe.V2.Billing.CustomPricingUnitService:ListAutoPagingAsync(Stripe.V2.Billing.CustomPricingUnitListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.CustomPricingUnit]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=150c2737) for method Stripe.V2.Billing.CustomPricingUnitService:ListAutoPagingAsync(Stripe.V2.Billing.CustomPricingUnitListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.CustomPricingUnit]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Mapping.ViewGeneration.Structures.TrueFalseLiteral:FixRange(System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant],System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberDomainMap):System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Data.Entity.Core.Common.Utils.Boolean.DomainConstraint\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolLiteral,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]]:this (FullOpts)","Category":"improvement","Description":"511 -\u003E 458 bytes (-53)","ExtraInfo":null,"Diff":"@@ -8,20 \u002B8,20 @@\n ; 0 inlinees with PGO data; 13 single block inlinees; 3 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T03] (  4,  4   )     ref  -\u003E  r15         this class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.TrueFalseLiteral\u003E\n-;  V01 arg1         [V01,T01] (  5,  4.50)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]\u003E\n-;  V02 arg2         [V02,T05] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberDomainMap\u003E\n-;  V03 loc0         [V03,T07] (  4,  3   )     ref  -\u003E  r15         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Data.Entity.Core.Common.Utils.Boolean.DomainConstraint\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolLiteral,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]]\u003E\n\u002B;  V00 this         [V00,T02] (  4,  4   )     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.TrueFalseLiteral\u003E\n\u002B;  V01 arg1         [V01,T03] (  4,  4   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]\u003E\n\u002B;  V02 arg2         [V02,T05] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberDomainMap\u003E\n\u002B;  V03 loc0         [V03,T07] (  4,  3   )     ref  -\u003E  rbx         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Data.Entity.Core.Common.Utils.Boolean.DomainConstraint\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolLiteral,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]]\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V05 tmp1         [V05,T06] (  2,  4   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022non-inline candidate call\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.ScalarConstant\u003E\n-;  V06 tmp2         [V06,T02] (  4,  6.50)     ref  -\u003E  rbx         single-def \u0022inline UNBOX clone1\u0022\n-;  V07 tmp3         [V07,T04] (  5,  5   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.NotExpr\u00601[System.Data.Entity.Core.Common.Utils.Boolean.DomainConstraint\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolLiteral,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]]\u003E\n-;  V08 tmp4         [V08    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V05 tmp1         [V05,T06] (  2,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022non-inline candidate call\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.ScalarConstant\u003E\n\u002B;  V06 tmp2         [V06,T01] (  4,  6.50)     ref  -\u003E  r15         single-def \u0022inline UNBOX clone1\u0022\n\u002B;  V07 tmp3         [V07,T04] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.NotExpr\u00601[System.Data.Entity.Core.Common.Utils.Boolean.DomainConstraint\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolLiteral,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]]\u003E\n\u002B;  V08 tmp4         [V08    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V09 tmp5         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V10 tmp6         [V10,T12] (  4,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant\u003E\n-;  V11 tmp7         [V11,T08] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]\u003E\n-;  V12 tmp8         [V12,T09] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Data.Entity.Core.Common.Utils.Boolean.DomainConstraint\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolLiteral,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]][]\u003E\n-;  V13 tmp9         [V13,T10] (  3,  3   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Data.Entity.Core.Common.Utils.Boolean.DomainConstraint\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolLiteral,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]]]\u003E\n\u002B;  V10 tmp6         [V10,T11] (  3,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]\u003E\n\u002B;  V12 tmp8         [V12,T08] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Data.Entity.Core.Common.Utils.Boolean.DomainConstraint\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolLiteral,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]][]\u003E\n\u002B;  V13 tmp9         [V13,T09] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Data.Entity.Core.Common.Utils.Boolean.DomainConstraint\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolLiteral,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]]]\u003E\n ;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V16 tmp12        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -29,12 \u002B29,12 @@\n ;* V18 tmp14        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V19 tmp15        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V20 tmp16        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V21 tmp17        [V21,T15] (  2,  1   )     ref  -\u003E  r13         single-def\n-;  V22 tmp18        [V22,T11] (  3,  3   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Data.Entity.Core.Common.Utils.Boolean.DomainConstraint\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolLiteral,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]]]\u003E\n\u002B;  V21 tmp17        [V21,T14] (  2,  1   )     ref  -\u003E  r13         single-def\n\u002B;  V22 tmp18        [V22,T10] (  3,  3   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Data.Entity.Core.Common.Utils.Boolean.DomainConstraint\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolLiteral,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]]]\u003E\n ;* V23 tmp19        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.__Canon]\u003E\n-;  V24 cse0         [V24,T14] (  3,  1.50)     ref  -\u003E  rdi         \u0022CSE #02: moderate\u0022\n-;  V25 rat0         [V25,T00] (  4,  7   )     ref  -\u003E  rbx         \u0022replacement local\u0022\n-;  V26 rat1         [V26,T13] (  3,  2   )    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n\u002B;  V24 cse0         [V24,T13] (  3,  1.50)     ref  -\u003E  rdi         \u0022CSE #02: moderate\u0022\n\u002B;  V25 rat0         [V25,T00] (  4,  7   )     ref  -\u003E  r14         \u0022replacement local\u0022\n\u002B;  V26 rat1         [V26,T12] (  3,  2   )    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n ;\n ; Lcl frame size = 8\n \n@@ -49,88 \u002B49,68 @@ G_M39761_IG01:\n        lea      rbp, [rsp\u002B0x30]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x30], rax\n-       mov      r15, rdi\n-       mov      rbx, rsi\n-       mov      r14, rdx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 9.50\n\u002B       mov      rbx, rdi\n\u002B       mov      r15, rdx\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 9.25\n G_M39761_IG02:\n-       test     rbx, rbx\n-       je       G_M39761_IG14\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M39761_IG04\n-\t\t\t\t\t\t;; size=39 bbWeight=1 PerfScore 6.25\n-G_M39761_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n... diff truncated; middle omitted ...\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M39761_IG15\n-       mov      rbx, rax\n-       test     rbx, rbx\n-       je       SHORT G_M39761_IG07\n-\t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 3.50\n-G_M39761_IG06:\n\u002B       je       G_M39761_IG12\n\u002B       mov      r14, rax\n\u002B       test     r14, r14\n\u002B       je       SHORT G_M39761_IG04\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=1 PerfScore 8.75\n\u002BG_M39761_IG03:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Mapping.ViewGeneration.Structures.ScalarConstant\n-       cmp      qword ptr [rbx], rdi\n-       jne      G_M39761_IG16\n\u002B       cmp      qword ptr [r14], rdi\n\u002B       jne      G_M39761_IG13\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n-G_M39761_IG07:\n-       mov      rdi, r15\n-       mov      rsi, r14\n-       mov      rax, qword ptr [r15]\n\u002BG_M39761_IG04:\n\u002B       mov      rdi, rbx\n\u002B       mov      rsi, r15\n\u002B       mov      rax, qword ptr [rbx]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax]System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolLiteral:GetDomainBoolExpression(System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberDomainMap):System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Data.Entity.Core.Common.Utils.Boolean.DomainConstraint\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolLiteral,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]]:this\n-       mov      r15, rax\n-       mov      rbx, gword ptr [rbx\u002B0x08]\n\u002B       mov      rbx, rax\n\u002B       mov      r15, gword ptr [r14\u002B0x08]\n        mov      rsi, 0xD1FFAB1E      ; System.Boolean\n-       cmp      qword ptr [rbx], rsi\n-       je       SHORT G_M39761_IG09\n\u002B       cmp      qword ptr [r15], rsi\n\u002B       je       SHORT G_M39761_IG06\n \t\t\t\t\t\t;; size=37 bbWeight=1 PerfScore 13.00\n-G_M39761_IG08:\n-       mov      rsi, rbx\n\u002BG_M39761_IG05:\n\u002B       mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Boolean\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_UNBOX\n        call     [rax]CORINFO_HELP_UNBOX\n \t\t\t\t\t\t;; size=25 bbWeight=0.25 PerfScore 0.94\n-G_M39761_IG09:\n-       cmp      byte  ptr [rbx\u002B0x08], 0\n-       jne      G_M39761_IG12\n-\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.00\n-G_M39761_IG10:\n\u002BG_M39761_IG06:\n\u002B       cmp      byte  ptr [r15\u002B0x08], 0\n\u002B       jne      G_M39761_IG09\n\u002B\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.00\n\u002BG_M39761_IG07:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Common.Utils.Boolean.NotExpr\u00601[System.Data.Entity.Core.Common.Utils.Boolean.DomainConstraint\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolLiteral,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      rbx, rax\n\u002B       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Data.Entity.Core.Common.Utils.Boolean.DomainConstraint\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolLiteral,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]][]\n        mov      esi, 1\n        call     CORINFO_HELP_NEWARR_1_PTR\n        mov      r14, rax\n        lea      rdi, bword ptr [r14\u002B0x10]\n-       mov      rsi, r15\n\u002B       mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Data.Entity.Core.Common.Utils.Boolean.DomainConstraint\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolLiteral,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]]]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r15, rax\n\u002B       mov      rbx, rax\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M39761_IG17\n\u002B       je       G_M39761_IG14\n \t\t\t\t\t\t;; size=90 bbWeight=0.50 PerfScore 4.88\n-G_M39761_IG11:\n\u002BG_M39761_IG08:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.EqualityComparer\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Data.Entity.Core.Common.Utils.Boolean.DomainConstraint\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolLiteral,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]]]:\u003CDefault\u003Ek__BackingField\n        mov      r13, gword ptr [rdi]\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Data.Entity.Core.Common.Utils.Boolean.DomainConstraint\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolLiteral,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]]]\n@@ -141,23 \u002B121,23 @@ G_M39761_IG11:\n        mov      rdx, r13\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.HashSet\u00601[System.__Canon]:.ctor(System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Collections.Generic.IEqualityComparer\u00601[System.__Canon]):this\n        call     [rax]System.Collections.Generic.HashSet\u00601[System.__Canon]:.ctor(System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Collections.Generic.IEqualityComparer\u00601[System.__Canon]):this\n-       lea      rdi, bword ptr [r15\u002B0x08]\n\u002B       lea      rdi, bword ptr [rbx\u002B0x08]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x08]\n-       mov      rsi, r15\n\u002B       lea      rdi, bword ptr [r15\u002B0x08]\n\u002B       mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, gword ptr [rbx\u002B0x08]\n\u002B       mov      rdi, gword ptr [r15\u002B0x08]\n        mov      byte  ptr [rdi\u002B0x10], 1\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Common.Utils.Set\u00601[System.__Canon]:GetElementsHashCode():int:this\n        call     [rax]System.Data.Entity.Core.Common.Utils.Set\u00601[System.__Canon]:GetElementsHashCode():int:this\n-       mov      dword ptr [rbx\u002B0x10], eax\n-       mov      r15, rbx\n-\t\t\t\t\t\t;; size=102 bbWeight=0.50 PerfScore 9.38\n-G_M39761_IG12:\n-       mov      rax, r15\n\u002B       mov      dword ptr [r15\u002B0x10], eax\n\u002B       mov      rbx, r15\n\u002B\t\t\t\t\t\t;; size=103 bbWeight=0.50 PerfScore 9.38\n\u002BG_M39761_IG09:\n\u002B       mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n-G_M39761_IG13:\n\u002BG_M39761_IG10:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n@@ -167,29 \u002B147,29 @@ G_M39761_IG13:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M39761_IG14:\n\u002BG_M39761_IG11:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M39761_IG15:\n\u002BG_M39761_IG12:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M39761_IG16:\n\u002BG_M39761_IG13:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rax]CORINFO_HELP_CHKCASTCLASS\n        int3     \n \t\t\t\t\t\t;; size=16 bbWeight=0 PerfScore 0.00\n-G_M39761_IG17:\n\u002BG_M39761_IG14:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.EqualityComparer\u00601[System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Data.Entity.Core.Common.Utils.Boolean.DomainConstraint\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolLiteral,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M39761_IG11\n\u002B       jmp      G_M39761_IG08\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 511, prolog size 22, PerfScore 63.56, instruction count 118, allocated bytes for code 511 (MethodHash=de2c64ae) for method System.Data.Entity.Core.Mapping.ViewGeneration.Structures.TrueFalseLiteral:FixRange(System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant],System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberDomainMap):System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Data.Entity.Core.Common.Utils.Boolean.DomainConstraint\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolLiteral,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]]:this (FullOpts)\n\u002B; Total bytes of code 458, prolog size 22, PerfScore 55.31, instruction count 104, allocated bytes for code 458 (MethodHash=de2c64ae) for method System.Data.Entity.Core.Mapping.ViewGeneration.Structures.TrueFalseLiteral:FixRange(System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant],System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberDomainMap):System.Data.Entity.Core.Common.Utils.Boolean.BoolExpr\u00601[System.Data.Entity.Core.Common.Utils.Boolean.DomainConstraint\u00602[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.BoolLiteral,System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":511,"DiffBytes":458},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[short]:Aggregate[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[short,System.Numerics.Vector\u00601[float]]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n... diff truncated; middle omitted ...\n-       je       SHORT G_M28705_IG26\n\u002B       je       SHORT G_M28705_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M28705_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M28705_IG26:\n\u002BG_M28705_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M28705_IG27:\n\u002BG_M28705_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M28705_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M28705_IG28:\n\u002BG_M28705_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M28705_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M28705_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M28705_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M28705_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M28705_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M28705_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M28705_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M28705_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M28705_IG31\n\u002B       je       SHORT G_M28705_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M28705_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M28705_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M28705_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M28705_IG32\n\u002B       je       SHORT G_M28705_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M28705_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M28705_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M28705_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M28705_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateAggregateToCollectionResultCursor[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M28705_IG33:\n\u002BG_M28705_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M28705_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M28705_IG34:\n\u002BG_M28705_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M28705_IG35:\n\u002BG_M28705_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M28705_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M28705_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M28705_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M28705_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M28705_IG37\n\u002B       je       SHORT G_M28705_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M28705_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M28705_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M28705_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M28705_IG38\n\u002B       je       SHORT G_M28705_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M28705_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M28705_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M28705_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M28705_IG39:\n\u002BG_M28705_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M28705_IG40:\n\u002BG_M28705_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M28705_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M28705_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M28705_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M28705_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M28705_IG42\n\u002B       je       SHORT G_M28705_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M28705_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M28705_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M28705_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M28705_IG43\n\u002B       je       SHORT G_M28705_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M28705_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M28705_IG43:\n\u002BG_M28705_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M28705_IG44:\n\u002BG_M28705_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=86758fde) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:Aggregate[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=86758fde) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:Aggregate[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.IntentService:ListAutoPagingAsync(Stripe.V2.Billing.IntentListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.Intent]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.Billing.IntentService:ListAutoPagingAsync(Stripe.V2.Billing.IntentListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.Intent]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.IntentService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.IntentListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.IntentListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.Intent]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.Intent]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.Intent]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.Intent]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M10297_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M10297_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/billing/intents\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M10297_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M10297_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.Intent]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M10297_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M10297_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M10297_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.Intent]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M10297_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M10297_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=5afdd7c6) for method Stripe.V2.Billing.IntentService:ListAutoPagingAsync(Stripe.V2.Billing.IntentListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.Intent]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=5afdd7c6) for method Stripe.V2.Billing.IntentService:ListAutoPagingAsync(Stripe.V2.Billing.IntentListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.Intent]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Query.InternalTrees.FunctionOp:.ctor(System.Data.Entity.Core.Metadata.Edm.EdmFunction):this (FullOpts)","Category":"improvement","Description":"167 -\u003E 114 bytes (-53)","ExtraInfo":null,"Diff":"@@ -1,84 \u002B1,63 @@\n ; Assembly listing for method System.Data.Entity.Core.Query.InternalTrees.FunctionOp:.ctor(System.Data.Entity.Core.Metadata.Edm.EdmFunction):this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 8 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T00] (  5,  5   )     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.Core.Query.InternalTrees.FunctionOp\u003E\n-;  V01 arg1         [V01,T02] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmFunction\u003E\n\u002B;  V01 arg1         [V01,T01] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmFunction\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V03 tmp1         [V03,T01] (  4,  7   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V04 tmp2         [V04    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V05 tmp3         [V05,T05] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n-;  V06 tmp4         [V06,T04] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V03 tmp1         [V03,T02] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V04 tmp2         [V04    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V05 tmp3         [V05,T04] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n\u002B;* V06 tmp4         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n ;  V07 tmp5         [V07,T03] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.TypeUsage\u003E\n ;\n-; Lcl frame size = 8\n\u002B; Lcl frame size = 16\n \n G_M52467_IG01:\n        push     rbp\n        push     r15\n-       push     r14\n        push     rbx\n-       push     rax\n\u002B       sub      rsp, 16\n        lea      rbp, [rsp\u002B0x20]\n        mov      rbx, rdi\n        mov      r15, rsi\n-\t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 6.00\n\u002B\t\t\t\t\t\t;; size=19 bbWeight=1 PerfScore 4.25\n G_M52467_IG02:\n-       mov      r14, gword ptr [r15\u002B0x48]\n-       test     r14, r14\n-       je       SHORT G_M52467_IG07\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n\u002B       mov      rsi, gword ptr [r15\u002B0x48]\n\u002B       test     rsi, rsi\n        je       SHORT G_M52467_IG04\n-\t\t\t\t\t\t;; size=39 bbWeight=1 PerfScore 8.25\n-G_M52467_IG03:\n-       lea      rsi, [rbp-0x20]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M52467_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M52467_IG04:\n-       lea      rdx, [rbp-0x20]\n-       mov      rsi, r14\n\u002B       lea      rdx, [rbp-0x18]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.FunctionParameter](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter],byref):System.Data.Entity.Core.Metadata.Edm.FunctionParameter\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M52467_IG05:\n        mov      rsi, gword ptr [rax\u002B0x28]\n        mov      dword ptr [rbx\u002B0x08], 30\n        lea      rdi, bword ptr [rbx\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x18]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        nop      \n-\t\t\t\t\t\t;; size=33 bbWeight=1 PerfScore 6.50\n-G_M52467_IG06:\n-       add      rsp, 8\n\u002B\t\t\t\t\t\t;; size=68 bbWeight=1 PerfScore 13.75\n\u002BG_M52467_IG03:\n\u002B       add      rsp, 16\n        pop      rbx\n-       pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M52467_IG07:\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 2.75\n\u002BG_M52467_IG04:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 167, prolog size 12, PerfScore 31.00, instruction count 46, allocated bytes for code 167 (MethodHash=a68b330c) for method System.Data.Entity.Core.Query.InternalTrees.FunctionOp:.ctor(System.Data.Entity.Core.Metadata.Edm.EdmFunction):this (FullOpts)\n\u002B; Total bytes of code 114, prolog size 13, PerfScore 20.75, instruction count 31, allocated bytes for code 114 (MethodHash=a68b330c) for method System.Data.Entity.Core.Query.InternalTrees.FunctionOp:.ctor(System.Data.Entity.Core.Metadata.Edm.EdmFunction):this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":167,"DiffBytes":114},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[short]:Aggregate[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[short,byte]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[byte]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[byte]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[byte]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[byte]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[byte]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V69 tmp59        [V69,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 8.75\n-G_M15816_IG25:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M15816_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M15816_IG26\n\u002B       je       SHORT G_M15816_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M15816_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M15816_IG26:\n\u002BG_M15816_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M15816_IG27:\n\u002BG_M15816_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M15816_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M15816_IG28:\n\u002BG_M15816_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M15816_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M15816_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M15816_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M15816_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M15816_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M15816_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M15816_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M15816_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M15816_IG31\n\u002B       je       SHORT G_M15816_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M15816_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M15816_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M15816_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M15816_IG32\n\u002B       je       SHORT G_M15816_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M15816_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M15816_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M15816_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M15816_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateAggregateToCollectionResultCursor[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[byte],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[byte]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M15816_IG33:\n\u002BG_M15816_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M15816_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M15816_IG34:\n\u002BG_M15816_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M15816_IG35:\n\u002BG_M15816_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M15816_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M15816_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M15816_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M15816_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M15816_IG37\n\u002B       je       SHORT G_M15816_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M15816_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M15816_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M15816_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M15816_IG38\n\u002B       je       SHORT G_M15816_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M15816_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M15816_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M15816_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M15816_IG39:\n\u002BG_M15816_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M15816_IG40:\n\u002BG_M15816_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M15816_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M15816_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M15816_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M15816_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M15816_IG42\n\u002B       je       SHORT G_M15816_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M15816_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M15816_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M15816_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M15816_IG43\n\u002B       je       SHORT G_M15816_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M15816_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M15816_IG43:\n\u002BG_M15816_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M15816_IG44:\n\u002BG_M15816_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=04d2c237) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:Aggregate[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=04d2c237) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:Aggregate[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.LicenseFeeService:ListAutoPagingAsync(Stripe.V2.Billing.LicenseFeeListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.LicenseFee]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.Billing.LicenseFeeService:ListAutoPagingAsync(Stripe.V2.Billing.LicenseFeeListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.LicenseFee]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.LicenseFeeService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.LicenseFeeListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.LicenseFeeListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.LicenseFee]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.LicenseFee]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.LicenseFee]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.LicenseFee]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M15240_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M15240_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/billing/license_fees\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M15240_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M15240_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.LicenseFee]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M15240_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M15240_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M15240_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.LicenseFee]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M15240_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M15240_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=1107c477) for method Stripe.V2.Billing.LicenseFeeService:ListAutoPagingAsync(Stripe.V2.Billing.LicenseFeeListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.LicenseFee]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=1107c477) for method Stripe.V2.Billing.LicenseFeeService:ListAutoPagingAsync(Stripe.V2.Billing.LicenseFeeListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.LicenseFee]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u002B\u003C\u003Ec__DisplayClass44_0:\u003CFindOrCreateTypeMappingFragment\u003Eb__1(System.Data.Entity.ModelConfiguration.Utilities.EdmPropertyPath):bool:this (FullOpts)","Category":"improvement","Description":"217 -\u003E 164 bytes (-53)","ExtraInfo":null,"Diff":"@@ -1,97 \u002B1,79 @@\n ; Assembly listing for method System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u002B\u003C\u003Ec__DisplayClass44_0:\u003CFindOrCreateTypeMappingFragment\u003Eb__1(System.Data.Entity.ModelConfiguration.Utilities.EdmPropertyPath):bool:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 2 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  3,  3   )     ref  -\u003E  rdi         this class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u002B\u003C\u003Ec__DisplayClass44_0\u003E\n-;  V01 arg1         [V01,T00] (  5,  4.50)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Utilities.EdmPropertyPath\u003E\n\u002B;  V01 arg1         [V01,T00] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Utilities.EdmPropertyPath\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V03 tmp1         [V03,T03] (  2,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n ;* V04 tmp2         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n-;  V05 tmp3         [V05    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V05 tmp3         [V05    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V06 tmp4         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V07 tmp5         [V07,T05] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmProperty\u003E\n-;  V08 tmp6         [V08,T04] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n\u002B;  V07 tmp5         [V07,T04] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmProperty\u003E\n\u002B;* V08 tmp6         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n ;  V09 tmp7         [V09,T01] (  3,  6   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 16\n \n G_M65172_IG01:\n        push     rbp\n        push     r15\n        push     rbx\n        sub      rsp, 16\n        lea      rbp, [rsp\u002B0x20]\n        mov      rbx, rsi\n \t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 4.00\n G_M65172_IG02:\n        mov      rdi, gword ptr [rdi\u002B0x08]\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.ModelConfiguration.Edm.EntityTypeExtensions:GetRootType(System.Data.Entity.Core.Metadata.Edm.EntityType):System.Data.Entity.Core.Metadata.Edm.EntityType\n        call     [rax]System.Data.Entity.ModelConfiguration.Edm.EntityTypeExtensions:GetRootType(System.Data.Entity.Core.Metadata.Edm.EntityType):System.Data.Entity.Core.Metadata.Edm.EntityType\n        mov      rdi, rax\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x58]\n        call     [rax\u002B0x38]System.Data.Entity.Core.Metadata.Edm.EntityTypeBase:get_KeyProperties():System.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]:this\n        mov      r15, rax\n        test     rbx, rbx\n-       je       G_M65172_IG07\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n        je       SHORT G_M65172_IG04\n-\t\t\t\t\t\t;; size=71 bbWeight=1 PerfScore 19.00\n-G_M65172_IG03:\n-       lea      rsi, [rbp-0x18]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M65172_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M65172_IG04:\n        lea      rdx, [rbp-0x18]\n        mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.EdmProperty](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty],byref):System.Data.Entity.Core.Metadata.Edm.EdmProperty\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M65172_IG05:\n-       cmp      byte  ptr [rbp-0x18], 0\n-       je       SHORT G_M65172_IG08\n        mov      rdx, rax\n\u002B       cmp      byte  ptr [rbp-0x18], 0\n\u002B       je       SHORT G_M65172_IG05\n        mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:Contains[System.Data.Entity.Core.Metadata.Edm.EdmProperty](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty],System.Data.Entity.Core.Metadata.Edm.EdmProperty):bool\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:Contains[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.__Canon):bool\n        call     [rax]System.Linq.Enumerable:Contains[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.__Canon):bool\n        test     eax, eax\n        sete     al\n        movzx    rax, al\n-\t\t\t\t\t\t;; size=42 bbWeight=1 PerfScore 7.00\n-G_M65172_IG06:\n\u002B\t\t\t\t\t\t;; size=108 bbWeight=1 PerfScore 25.25\n\u002BG_M65172_IG03:\n        add      rsp, 16\n        pop      rbx\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 2.75\n-G_M65172_IG07:\n\u002BG_M65172_IG04:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M65172_IG08:\n\u002BG_M65172_IG05:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 217, prolog size 13, PerfScore 39.75, instruction count 55, allocated bytes for code 217 (MethodHash=bada016b) for method System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u002B\u003C\u003Ec__DisplayClass44_0:\u003CFindOrCreateTypeMappingFragment\u003Eb__1(System.Data.Entity.ModelConfiguration.Utilities.EdmPropertyPath):bool:this (FullOpts)\n\u002B; Total bytes of code 164, prolog size 13, PerfScore 32.00, instruction count 43, allocated bytes for code 164 (MethodHash=bada016b) for method System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u002B\u003C\u003Ec__DisplayClass44_0:\u003CFindOrCreateTypeMappingFragment\u003Eb__1(System.Data.Entity.ModelConfiguration.Utilities.EdmPropertyPath):bool:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":217,"DiffBytes":164},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[short]:Aggregate[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[short,double]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[double]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[double]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[double]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[double]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[double]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V69 tmp59        [V69,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 8.75\n-G_M55799_IG25:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M55799_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M55799_IG26\n\u002B       je       SHORT G_M55799_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M55799_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M55799_IG26:\n\u002BG_M55799_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M55799_IG27:\n\u002BG_M55799_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M55799_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M55799_IG28:\n\u002BG_M55799_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M55799_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M55799_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M55799_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M55799_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M55799_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M55799_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M55799_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M55799_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M55799_IG31\n\u002B       je       SHORT G_M55799_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M55799_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M55799_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M55799_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M55799_IG32\n\u002B       je       SHORT G_M55799_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M55799_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M55799_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M55799_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M55799_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateAggregateToCollectionResultCursor[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[double],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[double]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M55799_IG33:\n\u002BG_M55799_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M55799_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M55799_IG34:\n\u002BG_M55799_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M55799_IG35:\n\u002BG_M55799_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M55799_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M55799_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M55799_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M55799_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M55799_IG37\n\u002B       je       SHORT G_M55799_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M55799_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M55799_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M55799_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M55799_IG38\n\u002B       je       SHORT G_M55799_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M55799_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M55799_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M55799_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M55799_IG39:\n\u002BG_M55799_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M55799_IG40:\n\u002BG_M55799_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M55799_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M55799_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M55799_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M55799_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M55799_IG42\n\u002B       je       SHORT G_M55799_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M55799_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M55799_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M55799_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M55799_IG43\n\u002B       je       SHORT G_M55799_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M55799_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M55799_IG43:\n\u002BG_M55799_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M55799_IG44:\n\u002BG_M55799_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=2f6c2608) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:Aggregate[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=2f6c2608) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:Aggregate[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.LicensedItemService:ListAutoPagingAsync(Stripe.V2.Billing.LicensedItemListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.LicensedItem]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.Billing.LicensedItemService:ListAutoPagingAsync(Stripe.V2.Billing.LicensedItemListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.LicensedItem]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.LicensedItemService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.LicensedItemListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.LicensedItemListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.LicensedItem]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.LicensedItem]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.LicensedItem]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.LicensedItem]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M49919_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M49919_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/billing/licensed_items\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M49919_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M49919_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.LicensedItem]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M49919_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M49919_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M49919_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.LicensedItem]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M49919_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M49919_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=3f2d3d00) for method Stripe.V2.Billing.LicensedItemService:ListAutoPagingAsync(Stripe.V2.Billing.LicensedItemListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.LicensedItem]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=3f2d3d00) for method Stripe.V2.Billing.LicensedItemService:ListAutoPagingAsync(Stripe.V2.Billing.LicensedItemListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.LicensedItem]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation:ValidateFunctionAggregate(System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression]):System.Data.Entity.Core.Common.CommandTrees.Internal.DbExpressionList (FullOpts)","Category":"improvement","Description":"381 -\u003E 329 bytes (-52)","ExtraInfo":null,"Diff":"@@ -1,133 \u002B1,114 @@\n ; Assembly listing for method System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation:ValidateFunctionAggregate(System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression]):System.Data.Entity.Core.Common.CommandTrees.Internal.DbExpressionList (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 8 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 arg0         [V00,T00] (  6,  6   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmFunction\u003E\n ;  V01 arg1         [V01,T03] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression]\u003E\n ;  V02 loc0         [V02,T04] (  4,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation\u002B\u003C\u003Ec__DisplayClass15_0\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V04 tmp1         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation\u002B\u003C\u003Ec__DisplayClass15_0\u003E\n-;  V05 tmp2         [V05,T08] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentException\u003E\n\u002B;  V05 tmp2         [V05,T07] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentException\u003E\n ;  V06 tmp3         [V06,T01] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u00602[System.Data.Entity.Core.Common.CommandTrees.DbExpression,int]\u003E\n ;  V07 tmp4         [V07,T05] (  2,  4   )     int  -\u003E  r13         \u0022impAppendStmt\u0022\n-;  V08 tmp5         [V08,T02] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V09 tmp6         [V09    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V10 tmp7         [V10,T07] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n-;  V11 tmp8         [V11,T06] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V12 tmp9         [V12,T09] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V08 tmp5         [V08,T02] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V09 tmp6         [V09    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V10 tmp7         [V10,T06] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n\u002B;* V11 tmp8         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V12 tmp9         [V12,T08] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 16\n \n G_M11850_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     rbx\n        sub      rsp, 16\n        lea      rbp, [rsp\u002B0x30]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x28], rax\n        mov      rbx, rdi\n        mov      r15, rsi\n \t\t\t\t\t\t;; size=29 bbWeight=1 PerfScore 7.50\n G_M11850_IG02:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation\u002B\u003C\u003Ec__DisplayClass15_0\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation:CheckFunction(System.Data.Entity.Core.Metadata.Edm.EdmFunction)\n        call     [rax]System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation:CheckFunction(System.Data.Entity.Core.Metadata.Edm.EdmFunction)\n        test     byte  ptr [rbx\u002B0x7C], 1\n-       je       G_M11850_IG08\n-       mov      r13, gword ptr [rbx\u002B0x48]\n-       test     r13, r13\n-       je       G_M11850_IG07\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M11850_IG04\n-\t\t\t\t\t\t;; size=86 bbWeight=1 PerfScore 16.25\n-G_M11850_IG03:\n-       lea      rsi, [rbp-0x28]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M11850_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M11850_IG04:\n\u002B       je       G_M11850_IG05\n\u002B       mov      rsi, gword ptr [rbx\u002B0x48]\n\u002B       test     rsi, rsi\n\u002B       je       G_M11850_IG04\n        lea      rdx, [rbp-0x28]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.FunctionParameter](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter],byref):System.Data.Entity.Core.Metadata.Edm.FunctionParameter\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M11850_IG05:\n        test     rax, rax\n-       je       G_M11850_IG08\n\u002B       je       G_M11850_IG05\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation:GetExpectedParameters(System.Data.Entity.Core.Metadata.Edm.EdmFunction):System.Data.Entity.Core.Metadata.Edm.FunctionParameter[]\n        call     [rax]System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation:GetExpectedParameters(System.Data.Entity.Core.Metadata.Edm.EdmFunction):System.Data.Entity.Core.Metadata.Edm.FunctionParameter[]\n        mov      rsi, rax\n        lea      rdi, bword ptr [r14\u002B0x08]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, 0xD1FFAB1E      ; System.Action\u00602[System.Data.Entity.Core.Common.CommandTrees.DbExpression,int]\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r13d, dword ptr [rdi\u002B0x08]\n        lea      rdi, bword ptr [rbx\u002B0x10]\n        mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation\u002B\u003C\u003Ec__DisplayClass15_0:\u003CValidateFunctionAggregate\u003Eb__0(System.Data.Entity.Core.Common.CommandTrees.DbExpression,int):this\n        mov      qword ptr [rbx\u002B0x18], rdi\n        mov      rdi, r15\n        mov      rcx, rbx\n        mov      edx, r13d\n        mov      rsi, 0xD1FFAB1E      ; \u0027argument\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation:CreateExpressionList(System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression],System.String,int,System.Action\u00602[System.Data.Entity.Core.Common.CommandTrees.DbExpression,int]):System.Data.Entity.Core.Common.CommandTrees.Internal.DbExpressionList\n        call     [rax]System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation:CreateExpressionList(System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression],System.String,int,System.Action\u00602[System.Data.Entity.Core.Common.CommandTrees.DbExpression,int]):System.Data.Entity.Core.Common.CommandTrees.Internal.DbExpressionList\n        nop      \n-\t\t\t\t\t\t;; size=120 bbWeight=1 PerfScore 19.50\n-G_M11850_IG06:\n\u002B\t\t\t\t\t\t;; size=202 bbWeight=1 PerfScore 34.75\n\u002BG_M11850_IG03:\n        add      rsp, 16\n        pop      rbx\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n-G_M11850_IG07:\n\u002BG_M11850_IG04:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M11850_IG08:\n\u002BG_M11850_IG05:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Resources.Strings:get_Cqt_Aggregate_InvalidFunction():System.String\n        call     [rax]System.Data.Entity.Resources.Strings:get_Cqt_Aggregate_InvalidFunction():System.String\n        mov      rsi, rax\n        mov      rdi, rbx\n        mov      rdx, 0xD1FFAB1E      ; \u0027function\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentException:.ctor(System.String,System.String):this\n        call     [rax]System.ArgumentException:.ctor(System.String,System.String):this\n        mov      rdi, rbx\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=67 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 381, prolog size 23, PerfScore 54.00, instruction count 88, allocated bytes for code 381 (MethodHash=c45fd1b5) for method System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation:ValidateFunctionAggregate(System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression]):System.Data.Entity.Core.Common.CommandTrees.Internal.DbExpressionList (FullOpts)\n\u002B; Total bytes of code 329, prolog size 23, PerfScore 46.00, instruction count 75, allocated bytes for code 329 (MethodHash=c45fd1b5) for method System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation:ValidateFunctionAggregate(System.Data.Entity.Core.Metadata.Edm.EdmFunction,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.CommandTrees.DbExpression]):System.Data.Entity.Core.Common.CommandTrees.Internal.DbExpressionList (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":329},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[short]:Aggregate[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[short,int]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[int]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[int]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[int]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[int]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[int]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V69 tmp59        [V69,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 8.75\n-G_M40177_IG25:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M40177_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M40177_IG26\n\u002B       je       SHORT G_M40177_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M40177_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M40177_IG26:\n\u002BG_M40177_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M40177_IG27:\n\u002BG_M40177_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M40177_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M40177_IG28:\n\u002BG_M40177_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M40177_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M40177_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M40177_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M40177_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M40177_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M40177_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M40177_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M40177_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M40177_IG31\n\u002B       je       SHORT G_M40177_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M40177_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M40177_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M40177_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M40177_IG32\n\u002B       je       SHORT G_M40177_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M40177_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M40177_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M40177_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M40177_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateAggregateToCollectionResultCursor[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[int],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[int]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M40177_IG33:\n\u002BG_M40177_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M40177_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M40177_IG34:\n\u002BG_M40177_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M40177_IG35:\n\u002BG_M40177_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M40177_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M40177_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M40177_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M40177_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M40177_IG37\n\u002B       je       SHORT G_M40177_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M40177_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M40177_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M40177_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M40177_IG38\n\u002B       je       SHORT G_M40177_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M40177_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M40177_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M40177_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M40177_IG39:\n\u002BG_M40177_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M40177_IG40:\n\u002BG_M40177_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M40177_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M40177_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M40177_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M40177_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M40177_IG42\n\u002B       je       SHORT G_M40177_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M40177_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M40177_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M40177_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M40177_IG43\n\u002B       je       SHORT G_M40177_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M40177_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M40177_IG43:\n\u002BG_M40177_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M40177_IG44:\n\u002BG_M40177_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=389f630e) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:Aggregate[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=389f630e) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:Aggregate[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.MeteredItemService:ListAutoPagingAsync(Stripe.V2.Billing.MeteredItemListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.MeteredItem]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.Billing.MeteredItemService:ListAutoPagingAsync(Stripe.V2.Billing.MeteredItemListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.MeteredItem]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.MeteredItemService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.MeteredItemListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.MeteredItemListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.MeteredItem]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.MeteredItem]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.MeteredItem]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.MeteredItem]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M55914_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M55914_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/billing/metered_items\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M55914_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M55914_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.MeteredItem]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M55914_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M55914_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M55914_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.MeteredItem]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M55914_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M55914_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=bfc32595) for method Stripe.V2.Billing.MeteredItemService:ListAutoPagingAsync(Stripe.V2.Billing.MeteredItemListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.MeteredItem]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=bfc32595) for method Stripe.V2.Billing.MeteredItemService:ListAutoPagingAsync(Stripe.V2.Billing.MeteredItemListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.MeteredItem]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Mapping.ViewGeneration.Validation.ForeignConstraint:CheckIfConstraintMappedToForeignKeyAssociation(System.Data.Entity.Core.Mapping.ViewGeneration.QueryRewriting.QueryRewriter,System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]):bool:this (FullOpts)","Category":"improvement","Description":"1,629 -\u003E 1,577 bytes (-52)","ExtraInfo":null,"Diff":"@@ -8,61 \u002B8,61 @@\n ; 0 inlinees with PGO data; 32 single block inlinees; 7 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T27] (  4, 10   )     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Validation.ForeignConstraint\u003E\n-;  V01 arg1         [V01,T35] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.QueryRewriting.QueryRewriter\u003E\n-;  V02 arg2         [V02,T36] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n-;  V03 loc0         [V03,T48] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.ViewgenContext\u003E\n\u002B;  V00 this         [V00,T26] (  4, 10   )     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Validation.ForeignConstraint\u003E\n\u002B;  V01 arg1         [V01,T34] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.QueryRewriting.QueryRewriter\u003E\n\u002B;  V02 arg2         [V02,T35] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n\u002B;  V03 loc0         [V03,T47] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.ViewgenContext\u003E\n ;  V04 loc1         [V04,T13] (  9, 34   )     ref  -\u003E  r13         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]]\u003E\n ;  V05 loc2         [V05,T14] (  9, 34   )     ref  -\u003E  r12         class-hnd exact single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]]\u003E\n ;  V06 loc3         [V06    ] (  6, 20   )  struct (24) [rbp-0x40]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Collections.Generic.HashSet\u00601\u002BEnumerator[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n ;  V07 loc4         [V07,T15] (  4, 24   )     ref  -\u003E  r15         class-hnd \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\u003E\n-;  V08 loc5         [V08,T19] (  5, 20   )     ref  -\u003E  rax         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n-;  V09 loc6         [V09,T20] (  5, 20   )     ref  -\u003E  rax         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n-;  V10 loc7         [V10,T21] (  6, 19   )     ref  -\u003E  [rbp-0x58]  must-init class-hnd EH-live single-def \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationType]\u003E\n-;  V11 loc8         [V11,T26] (  2, 16   )     ref  -\u003E  rbx         class-hnd \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationType\u003E\n\u002B;  V08 loc5         [V08,T18] (  5, 20   )     ref  -\u003E  rax         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n\u002B;  V09 loc6         [V09,T19] (  5, 20   )     ref  -\u003E  rax         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n\u002B;  V10 loc7         [V10,T20] (  6, 19   )     ref  -\u003E  [rbp-0x58]  must-init class-hnd EH-live single-def \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationType]\u003E\n\u002B;  V11 loc8         [V11,T24] (  2, 16   )     ref  -\u003E  rbx         class-hnd \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationType\u003E\n ;  V12 loc9         [V12,T03] (  6,192   )     ref  -\u003E  r15         class-hnd exact \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Validation.ForeignConstraint\u002B\u003C\u003Ec__DisplayClass18_0\u003E\n-;  V13 loc10        [V13,T11] (  3, 48   )     ref  -\u003E  rbx         class-hnd \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]]\u003E\n-;  V14 loc11        [V14,T24] (  3, 16   )     ref  -\u003E  r14         class-hnd \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]]\u003E\n\u002B;  V13 loc10        [V13,T10] (  3, 48   )     ref  -\u003E  rbx         class-hnd \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]]\u003E\n\u002B;  V14 loc11        [V14,T23] (  3, 16   )     ref  -\u003E  r14         class-hnd \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]]\u003E\n ;  V15 loc12        [V15,T07] (  6, 74   )     ref  -\u003E  [rbp-0x60]  do-not-enreg[Z] must-init class-hnd EH-live \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]]\u003E\n ;  V16 loc13        [V16,T04] (  2,160   )     ref  -\u003E  r14         class-hnd \u003CSystem.Data.Entity.Core.Common.Utils.Set\u00601[int]\u003E\n ;  V17 loc14        [V17,T02] (  6,450   )     ref  -\u003E  [rbp-0x68]  do-not-enreg[Z] class-hnd EH-live \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]]\u003E\n-;  V18 loc15        [V18,T49] (  2,  2   )   ubyte  -\u003E  [rbp-0x44]  do-not-enreg[Z] must-init EH-live\n\u002B;  V18 loc15        [V18,T48] (  2,  2   )   ubyte  -\u003E  [rbp-0x44]  do-not-enreg[Z] must-init EH-live\n ;# V19 OutArgs      [V19    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V20 tmp1         [V20,T32] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]]\u003E\n-;  V21 tmp2         [V21,T33] (  3,  6   )     ref  -\u003E  [rbp-0x70]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]]\u003E\n-;  V22 tmp3         [V22,T39] (  2,  4   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSet,bool]\u003E\n-;  V23 tmp4         [V23,T40] (  2,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSet]\u003E\n\u002B;  V20 tmp1         [V20,T31] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]]\u003E\n\u002B;  V21 tmp2         [V21,T32] (  3,  6   )     ref  -\u003E  [rbp-0x70]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]]\u003E\n\u002B;  V22 tmp3         [V22,T38] (  2,  4   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSet,bool]\u003E\n\u002B;  V23 tmp4         [V23,T39] (  2,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSet]\u003E\n ;* V24 tmp5         [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V25 tmp6         [V25,T37] (  4,  4   )     ref  -\u003E  rdx        \n-;  V26 tmp7         [V26,T41] (  2,  4   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSet,System.Data.Entity.Core.Metadata.Edm.AssociationType]\u003E\n-;  V27 tmp8         [V27,T42] (  2,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSet]\u003E\n\u002B;  V25 tmp6         [V25,T36] (  4,  4   )     ref  -\u003E  rdx        \n\u002B;  V26 tmp7         [V26,T40] (  2,  4   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationSet,System.Data.Entity.Core.Metadata.Edm.AssociationType]\u003E\n\u002B;  V27 tmp8         [V27,T41] (  2,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSet]\u003E\n ;* V28 tmp9         [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V29 tmp10        [V29,T38] (  4,  4   )     ref  -\u003E  rdx        \n\u002B;  V29 tmp10        [V29,T37] (  4,  4   )     ref  -\u003E  rdx        \n ;* V30 tmp11        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Validation.ForeignConstraint\u002B\u003C\u003Ec__DisplayClass18_0\u003E\n ;  V31 tmp12        [V31,T08] (  4, 64   )     ref  -\u003E  rbx         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty],bool]\u003E\n... diff truncated; middle omitted ...\n        test     eax, eax\n        je       G_M58286_IG13\n-\t\t\t\t\t\t;; size=195 bbWeight=8 PerfScore 194.00\n-G_M58286_IG17:\n\u002B\t\t\t\t\t\t;; size=98 bbWeight=8 PerfScore 108.00\n\u002BG_M58286_IG15:\n        mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:Count[System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]]):int\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:Count[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):int\n@@ -363,12 \u002B346,12 @@ G_M58286_IG17:\n        call     [r11]System.Collections.Generic.IEnumerable\u00601[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator\u00601[System.__Canon]:this\n        mov      gword ptr [rbp-0x60], rax\n \t\t\t\t\t\t;; size=53 bbWeight=4 PerfScore 38.00\n-G_M58286_IG18:\n\u002BG_M58286_IG16:\n        mov      rdi, gword ptr [rbp-0x60]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():bool:this\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n-       je       G_M58286_IG24\n\u002B       je       G_M58286_IG22\n        mov      rdi, gword ptr [rbp-0x60]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEnumerator\u00601[System.__Canon]:get_Current():System.__Canon:this\n        call     [r11]System.Collections.Generic.IEnumerator\u00601[System.__Canon]:get_Current():System.__Canon:this\n@@ -387,14 \u002B370,14 @@ G_M58286_IG18:\n        call     [r11]System.Collections.Generic.IEnumerable\u00601[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator\u00601[System.__Canon]:this\n        mov      gword ptr [rbp-0x68], rax\n \t\t\t\t\t\t;; size=104 bbWeight=32 PerfScore 824.00\n-G_M58286_IG19:\n\u002BG_M58286_IG17:\n        mov      rdi, gword ptr [rbp-0x68]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():bool:this\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n-       je       SHORT G_M58286_IG22\n\u002B       je       SHORT G_M58286_IG20\n \t\t\t\t\t\t;; size=21 bbWeight=256 PerfScore 1408.00\n-G_M58286_IG20:\n\u002BG_M58286_IG18:\n        mov      rdi, gword ptr [rbp-0x68]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEnumerator\u00601[System.__Canon]:get_Current():System.__Canon:this\n        call     [r11]System.Collections.Generic.IEnumerator\u00601[System.__Canon]:get_Current():System.__Canon:this\n@@ -409,46 \u002B392,46 @@ G_M58286_IG20:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:SequenceEqual[int](System.Collections.Generic.IEnumerable\u00601[int],System.Collections.Generic.IEnumerable\u00601[int],System.Collections.Generic.IEqualityComparer\u00601[int]):bool\n        call     [rax]System.Linq.Enumerable:SequenceEqual[int](System.Collections.Generic.IEnumerable\u00601[int],System.Collections.Generic.IEnumerable\u00601[int],System.Collections.Generic.IEqualityComparer\u00601[int]):bool\n        test     eax, eax\n-       je       SHORT G_M58286_IG19\n\u002B       je       SHORT G_M58286_IG17\n \t\t\t\t\t\t;; size=64 bbWeight=128 PerfScore 2176.00\n-G_M58286_IG21:\n\u002BG_M58286_IG19:\n        mov      dword ptr [rbp-0x44], 1\n-       jmp      SHORT G_M58286_IG23\n\u002B       jmp      SHORT G_M58286_IG21\n \t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.00\n-G_M58286_IG22:\n\u002BG_M58286_IG20:\n        mov      rdi, gword ptr [rbp-0x68]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n-       jmp      G_M58286_IG18\n\u002B       jmp      G_M58286_IG16\n \t\t\t\t\t\t;; size=22 bbWeight=32 PerfScore 200.00\n-G_M58286_IG23:\n-       call     G_M58286_IG34\n-       jmp      SHORT G_M58286_IG25\n\u002BG_M58286_IG21:\n\u002B       call     G_M58286_IG32\n\u002B       jmp      SHORT G_M58286_IG23\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 3.00\n-G_M58286_IG24:\n\u002BG_M58286_IG22:\n        mov      rdi, gword ptr [rbp-0x60]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        jmp      G_M58286_IG13\n \t\t\t\t\t\t;; size=22 bbWeight=4 PerfScore 25.00\n-G_M58286_IG25:\n-       call     G_M58286_IG38\n-       jmp      SHORT G_M58286_IG27\n\u002BG_M58286_IG23:\n\u002B       call     G_M58286_IG36\n\u002B       jmp      SHORT G_M58286_IG25\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 3.00\n-G_M58286_IG26:\n\u002BG_M58286_IG24:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M58286_IG27:\n-       call     G_M58286_IG42\n\u002BG_M58286_IG25:\n\u002B       call     G_M58286_IG40\n        nop      \n \t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 1.25\n-G_M58286_IG28:\n\u002BG_M58286_IG26:\n        mov      eax, dword ptr [rbp-0x44]\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 1.00\n-G_M58286_IG29:\n\u002BG_M58286_IG27:\n        add      rsp, 72\n        pop      rbx\n        pop      r12\n@@ -458,15 \u002B441,15 @@ G_M58286_IG29:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M58286_IG30:\n\u002BG_M58286_IG28:\n        mov      rdi, gword ptr [rbp-0x58]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 4.25\n-G_M58286_IG31:\n\u002BG_M58286_IG29:\n        xor      eax, eax\n \t\t\t\t\t\t;; size=2 bbWeight=1 PerfScore 0.25\n-G_M58286_IG32:\n\u002BG_M58286_IG30:\n        add      rsp, 72\n        pop      rbx\n        pop      r12\n@@ -476,63 \u002B459,63 @@ G_M58286_IG32:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M58286_IG33:\n\u002BG_M58286_IG31:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List\u00601[System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M58286_IG03\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M58286_IG34:\n\u002BG_M58286_IG32:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 1.00\n-G_M58286_IG35:\n\u002BG_M58286_IG33:\n        cmp      gword ptr [rbp-0x68], 0\n-       je       SHORT G_M58286_IG36\n\u002B       je       SHORT G_M58286_IG34\n        mov      rdi, gword ptr [rbp-0x68]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=1 PerfScore 6.25\n-G_M58286_IG36:\n\u002BG_M58286_IG34:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M58286_IG37:\n\u002BG_M58286_IG35:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M58286_IG38:\n\u002BG_M58286_IG36:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 1.00\n-G_M58286_IG39:\n\u002BG_M58286_IG37:\n        cmp      gword ptr [rbp-0x60], 0\n-       je       SHORT G_M58286_IG40\n\u002B       je       SHORT G_M58286_IG38\n        mov      rdi, gword ptr [rbp-0x60]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=1 PerfScore 6.25\n-G_M58286_IG40:\n\u002BG_M58286_IG38:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M58286_IG41:\n\u002BG_M58286_IG39:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M58286_IG42:\n\u002BG_M58286_IG40:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 1.00\n-G_M58286_IG43:\n\u002BG_M58286_IG41:\n        cmp      gword ptr [rbp-0x58], 0\n-       je       SHORT G_M58286_IG44\n\u002B       je       SHORT G_M58286_IG42\n        mov      rdi, gword ptr [rbp-0x58]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=1 PerfScore 6.25\n-G_M58286_IG44:\n\u002BG_M58286_IG42:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M58286_IG45:\n\u002BG_M58286_IG43:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n \n-; Total bytes of code 1629, prolog size 46, PerfScore 5659.83, instruction count 360, allocated bytes for code 1629 (MethodHash=e8441c51) for method System.Data.Entity.Core.Mapping.ViewGeneration.Validation.ForeignConstraint:CheckIfConstraintMappedToForeignKeyAssociation(System.Data.Entity.Core.Mapping.ViewGeneration.QueryRewriting.QueryRewriter,System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]):bool:this (FullOpts)\n\u002B; Total bytes of code 1577, prolog size 46, PerfScore 5595.83, instruction count 347, allocated bytes for code 1577 (MethodHash=e8441c51) for method System.Data.Entity.Core.Mapping.ViewGeneration.Validation.ForeignConstraint:CheckIfConstraintMappedToForeignKeyAssociation(System.Data.Entity.Core.Mapping.ViewGeneration.QueryRewriting.QueryRewriter,System.Data.Entity.Core.Common.Utils.Set\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]):bool:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1629,"DiffBytes":1577},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[short]:Aggregate[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[short,long]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[long]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[long]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[long]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[long]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[long]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V69 tmp59        [V69,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 8.75\n-G_M7880_IG25:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M7880_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M7880_IG26\n\u002B       je       SHORT G_M7880_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M7880_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M7880_IG26:\n\u002BG_M7880_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M7880_IG27:\n\u002BG_M7880_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M7880_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M7880_IG28:\n\u002BG_M7880_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M7880_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M7880_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M7880_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M7880_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M7880_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M7880_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M7880_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M7880_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M7880_IG31\n\u002B       je       SHORT G_M7880_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M7880_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M7880_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M7880_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M7880_IG32\n\u002B       je       SHORT G_M7880_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M7880_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M7880_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M7880_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M7880_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateAggregateToCollectionResultCursor[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[long],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[long]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M7880_IG33:\n\u002BG_M7880_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M7880_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M7880_IG34:\n\u002BG_M7880_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M7880_IG35:\n\u002BG_M7880_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M7880_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M7880_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M7880_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M7880_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M7880_IG37\n\u002B       je       SHORT G_M7880_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M7880_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M7880_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M7880_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M7880_IG38\n\u002B       je       SHORT G_M7880_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M7880_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M7880_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M7880_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M7880_IG39:\n\u002BG_M7880_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M7880_IG40:\n\u002BG_M7880_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M7880_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M7880_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M7880_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M7880_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M7880_IG42\n\u002B       je       SHORT G_M7880_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M7880_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M7880_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M7880_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M7880_IG43\n\u002B       je       SHORT G_M7880_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M7880_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M7880_IG43:\n\u002BG_M7880_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M7880_IG44:\n\u002BG_M7880_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=0794e137) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:Aggregate[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=0794e137) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:Aggregate[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.OneTimeItemService:ListAutoPagingAsync(Stripe.V2.Billing.OneTimeItemListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.OneTimeItem]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.Billing.OneTimeItemService:ListAutoPagingAsync(Stripe.V2.Billing.OneTimeItemListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.OneTimeItem]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.OneTimeItemService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.OneTimeItemListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.OneTimeItemListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.OneTimeItem]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.OneTimeItem]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.OneTimeItem]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.OneTimeItem]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M8241_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M8241_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/billing/one_time_items\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M8241_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M8241_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.OneTimeItem]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M8241_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M8241_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M8241_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.OneTimeItem]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M8241_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M8241_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=f1c4dfce) for method Stripe.V2.Billing.OneTimeItemService:ListAutoPagingAsync(Stripe.V2.Billing.OneTimeItemListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.OneTimeItem]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=f1c4dfce) for method Stripe.V2.Billing.OneTimeItemService:ListAutoPagingAsync(Stripe.V2.Billing.OneTimeItemListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.OneTimeItem]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Mapping.ViewGeneration.Validation.RewritingValidator:CheckConstraintsOnNonNullableMembers(System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper):this (FullOpts)","Category":"improvement","Description":"821 -\u003E 769 bytes (-52)","ExtraInfo":null,"Diff":"@@ -8,49 \u002B8,49 @@\n ; 0 inlinees with PGO data; 16 single block inlinees; 7 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T09] (  7, 10   )     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Validation.RewritingValidator\u003E\n-;  V01 arg1         [V01,T10] (  6, 10   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper\u003E\n-;  V02 loc0         [V02,T08] (  6, 13   )     ref  -\u003E  [rbp-0x38]  class-hnd EH-live spill-single-def \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath]\u003E\n\u002B;  V00 this         [V00,T08] (  7, 10   )     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Validation.RewritingValidator\u003E\n\u002B;  V01 arg1         [V01,T09] (  6, 10   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper\u003E\n\u002B;  V02 loc0         [V02,T07] (  6, 13   )     ref  -\u003E  [rbp-0x38]  class-hnd EH-live spill-single-def \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath]\u003E\n ;  V03 loc1         [V03,T01] (  6, 18   )     ref  -\u003E  r14         class-hnd \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath\u003E\n-;  V04 loc2         [V04,T23] (  2,  8   )   ubyte  -\u003E  r13        \n-;  V05 loc3         [V05,T25] (  3,  6   )     ref  -\u003E  registers   class-hnd \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.QueryRewriting.FragmentQuery\u003E\n\u002B;  V04 loc2         [V04,T22] (  2,  8   )   ubyte  -\u003E  r13        \n\u002B;  V05 loc3         [V05,T24] (  3,  6   )     ref  -\u003E  registers   class-hnd \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.QueryRewriting.FragmentQuery\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberDomainMap\u003E\n-;  V08 tmp2         [V08,T18] (  2,  8   )     ref  -\u003E  r13         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.ErrorLog\u003E\n-;  V09 tmp3         [V09,T19] (  2,  8   )     ref  -\u003E  r12         class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V10 tmp4         [V10,T20] (  2,  8   )     ref  -\u003E  r14         class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V08 tmp2         [V08,T17] (  2,  8   )     ref  -\u003E  r13         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.ErrorLog\u003E\n\u002B;  V09 tmp3         [V09,T18] (  2,  8   )     ref  -\u003E  r12         class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V10 tmp4         [V10,T19] (  2,  8   )     ref  -\u003E  r14         class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n ;  V11 tmp5         [V11,T02] (  4, 16   )     ref  -\u003E  r12         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.ErrorLog\u002BRecord\u003E\n ;* V12 tmp6         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.ViewgenContext\u003E\n-;  V13 tmp7         [V13,T17] (  3,  8   )   ubyte  -\u003E  rax         \u0022Inline return value spill temp\u0022\n\u002B;  V13 tmp7         [V13,T16] (  3,  8   )   ubyte  -\u003E  rax         \u0022Inline return value spill temp\u0022\n ;* V14 tmp8         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n-;  V15 tmp9         [V15,T26] (  3,  6   )     ref  -\u003E  rdi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmMember\u003E\n-;  V16 tmp10        [V16,T21] (  2,  8   )     ref  -\u003E  rax         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n\u002B;  V15 tmp9         [V15,T25] (  3,  6   )     ref  -\u003E  rdi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmMember\u003E\n\u002B;  V16 tmp10        [V16,T20] (  2,  8   )     ref  -\u003E  rax         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n ;* V17 tmp11        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n-;  V19 tmp13        [V19,T05] (  4, 16   )     int  -\u003E  rcx         \u0022Inlining Arg\u0022\n\u002B;  V19 tmp13        [V19,T04] (  4, 16   )     int  -\u003E  rcx         \u0022Inlining Arg\u0022\n ;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.ViewgenContext\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.ViewgenContext\u003E\n-;  V22 tmp16        [V22,T03] (  4, 16   )     ref  -\u003E  r12         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n-;  V23 tmp17        [V23    ] (  3,  6   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V22 tmp16        [V22,T10] (  3, 12   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n\u002B;  V23 tmp17        [V23    ] (  2,  4   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V24 tmp18        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V25 tmp19        [V25,T14] (  5, 10   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\u003E\n-;  V26 tmp20        [V26,T15] (  4,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n-;  V27 tmp21        [V27,T27] (  3,  6   )     ref  -\u003E  rdi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellQuery\u003E\n-;  V28 tmp22        [V28,T24] (  2,  8   )     int  -\u003E  rdi         \u0022Inlining Arg\u0022\n\u002B;  V25 tmp19        [V25,T14] (  4,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\u003E\n\u002B;* V26 tmp20        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n\u002B;  V27 tmp21        [V27,T26] (  3,  6   )     ref  -\u003E  rdi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.CellQuery\u003E\n\u002B;  V28 tmp22        [V28,T23] (  2,  8   )     int  -\u003E  rdi         \u0022Inlining Arg\u0022\n ;* V29 tmp23        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\u003E\n ;* V30 tmp24        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.MemberPath\u003E\n-;  V31 tmp25        [V31,T04] (  4, 16   )     ref  -\u003E  [rbp-0x40]  class-hnd exact spill-single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n-;  V32 tmp26        [V32,T22] (  2,  8   )     ref  -\u003E  r14         class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V31 tmp25        [V31,T03] (  4, 16   )     ref  -\u003E  [rbp-0x40]  class-hnd exact spill-single-def \u0022NewArr temp\u0022 \u003CSystem.Object[]\u003E\n\u002B;  V32 tmp26        [V32,T21] (  2,  8   )     ref  -\u003E  r14         class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V33 tmp27        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n ;  V34 tmp28        [V34,T00] (  7, 28   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.ErrorLog\u002BRecord]\u003E\n-;  V35 tmp29        [V35,T28] (  3,  6   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.ErrorLog\u002BRecord[]\u003E\n-;  V36 tmp30        [V36,T16] (  4,  8   )     int  -\u003E  r14         \u0022Inline stloc first use temp\u0022\n-;  V37 tmp31        [V37,T29] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V38 tmp32        [V38,T06] (  2, 16   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n\u002B;  V35 tmp29        [V35,T27] (  3,  6   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.ErrorLog\u002BRecord[]\u003E\n\u002B;  V36 tmp30        [V36,T15] (  4,  8   )     int  -\u003E  r14         \u0022Inline stloc first use temp\u0022\n\u002B;  V37 tmp31        [V37,T28] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V38 tmp32        [V38,T05] (  2, 16   )     ref  -\u003E  rsi         \u0022argument with side effect\u0022\n ;  V39 tmp33        [V39,T11] (  3, 12   )     ref  -\u003E  rdi         \u0022arr expr\u0022\n ;  V40 tmp34        [V40,T12] (  3, 12   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V41 tmp35        [V41,T13] (  3, 12   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n-;  V42 cse0         [V42,T07] (  5, 14   )     int  -\u003E  rdi         \u0022CSE #02: moderate\u0022\n\u002B;  V42 cse0         [V42,T06] (  5, 14   )     int  -\u003E  rdi         \u0022CSE #02: aggressive\u0022\n ;\n ; Lcl frame size = 24\n \n@@ -86,7 \u002B86,7 @@ G_M40483_IG03:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():bool:this\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n-       je       G_M40483_IG21\n\u002B       je       G_M40483_IG19\n \t\t\t\t\t\t;; size=28 bbWeight=8 PerfScore 46.00\n G_M40483_IG04:\n        mov      rdi, gword ptr [rbp-0x38]\n@@ -115,10 \u002B115,10 @@ G_M40483_IG05:\n        mov      rax, gword ptr [r14\u002B0x10]\n        lea      ecx, [rdi-0x01]\n        cmp      ecx, edi\n-       jae      G_M40483_IG17\n\u002B       jae      G_M40483_IG15\n        mov      rdi, gword ptr [rax\u002B0x08]\n        cmp      ecx, dword ptr [rdi\u002B0x08]\n-       jae      G_M40483_IG20\n\u002B       jae      G_M40483_IG18\n        mov      eax, ecx\n        mov      rdi, gword ptr [rdi\u002B8*rax\u002B0x10]\n        jmp      SHORT G_M40483_IG07\n@@ -160,43 \u002B160,26 @@ G_M40483_IG10:\n        je       G_M40483_IG03\n        mov      rax, gword ptr [rbp-0x38]\n        mov      r13, gword ptr [rbx\u002B0x28]\n-       mov      r12, gword ptr [r15\u002B0x28]\n-       test     r12, r12\n-       je       G_M40483_IG18\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M40483_IG11\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M40483_IG12\n-\t\t\t\t\t\t;; size=134 bbWeight=2 PerfScore 85.00\n-G_M40483_IG11:\n\u002B       mov      rsi, gword ptr [r15\u002B0x28]\n\u002B       test     rsi, rsi\n\u002B       je       G_M40483_IG16\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell],byref):System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\n-       mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=2 PerfScore 8.50\n-G_M40483_IG12:\n\u002B       mov      rcx, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n\u002B       call     [rcx]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M40483_IG19\n\u002B       je       G_M40483_IG17\n        mov      edi, dword ptr [r15\u002B0x38]\n        cmp      byte  ptr [rax], al\n        test     edi, edi\n-       jne      SHORT G_M40483_IG13\n\u002B       jne      SHORT G_M40483_IG11\n        mov      rdi, gword ptr [rax\u002B0x08]\n-       jmp      SHORT G_M40483_IG14\n-\t\t\t\t\t\t;; size=26 bbWeight=2 PerfScore 22.50\n-G_M40483_IG13:\n\u002B       jmp      SHORT G_M40483_IG12\n\u002B\t\t\t\t\t\t;; size=137 bbWeight=2 PerfScore 86.00\n\u002BG_M40483_IG11:\n        mov      rdi, gword ptr [rax\u002B0x10]\n \t\t\t\t\t\t;; size=4 bbWeight=2 PerfScore 4.00\n-G_M40483_IG14:\n\u002BG_M40483_IG12:\n        mov      rdi, gword ptr [rdi\u002B0x28]\n        mov      rdi, gword ptr [rdi\u002B0x08]\n        mov      rax, qword ptr [rdi]\n@@ -239,14 \u002B222,14 @@ G_M40483_IG14:\n        mov      r14d, dword ptr [rdi\u002B0x10]\n        cmp      dword ptr [rax\u002B0x08], r14d\n \t\t\t\t\t\t;; size=194 bbWeight=2 PerfScore 89.50\n-G_M40483_IG15:\n-       ja       SHORT G_M40483_IG16\n\u002BG_M40483_IG13:\n\u002B       ja       SHORT G_M40483_IG14\n        mov      rsi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        jmp      G_M40483_IG03\n \t\t\t\t\t\t;; size=22 bbWeight=2 PerfScore 13.00\n-G_M40483_IG16:\n\u002BG_M40483_IG14:\n        lea      esi, [r14\u002B0x01]\n        mov      dword ptr [rdi\u002B0x10], esi\n        mov      esi, r14d\n@@ -256,33 \u002B239,33 @@ G_M40483_IG16:\n        call     [rax]CORINFO_HELP_ARRADDR_ST\n        jmp      G_M40483_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=2 PerfScore 15.00\n-G_M40483_IG17:\n\u002BG_M40483_IG15:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M40483_IG18:\n\u002BG_M40483_IG16:\n        mov      edi, 17\n        mov      rcx, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rcx]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M40483_IG19:\n\u002BG_M40483_IG17:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M40483_IG20:\n\u002BG_M40483_IG18:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n-G_M40483_IG21:\n\u002BG_M40483_IG19:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        nop      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.50\n-G_M40483_IG22:\n\u002BG_M40483_IG20:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -292,23 \u002B275,23 @@ G_M40483_IG22:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M40483_IG23:\n\u002BG_M40483_IG21:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M40483_IG24:\n\u002BG_M40483_IG22:\n        cmp      gword ptr [rbp-0x38], 0\n-       je       SHORT G_M40483_IG25\n\u002B       je       SHORT G_M40483_IG23\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M40483_IG25:\n\u002BG_M40483_IG23:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M40483_IG26:\n\u002BG_M40483_IG24:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 821, prolog size 31, PerfScore 445.50, instruction count 203, allocated bytes for code 821 (MethodHash=a46261dc) for method System.Data.Entity.Core.Mapping.ViewGeneration.Validation.RewritingValidator:CheckConstraintsOnNonNullableMembers(System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper):this (FullOpts)\n\u002B; Total bytes of code 769, prolog size 31, PerfScore 415.50, instruction count 190, allocated bytes for code 769 (MethodHash=a46261dc) for method System.Data.Entity.Core.Mapping.ViewGeneration.Validation.RewritingValidator:CheckConstraintsOnNonNullableMembers(System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":821,"DiffBytes":769},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[short]:Aggregate[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)","Category":"improvement","Description":"1,424 -\u003E 1,343 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[short,short]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[short]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[short]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -36,18 \u002B36,18 @@\n ;* V25 tmp15        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp18        [V28,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp19        [V29,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp20        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp21        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp22        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp18        [V28,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp19        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp20        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp21        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp22        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp24        [V34,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp26        [V36,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp26        [V36,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp28        [V38,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V39 tmp29        [V39,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V38 tmp28        [V38,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V39 tmp29        [V39,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp30        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp31        [V41,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -58,11 \u002B58,11 @@\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[short]\u003E\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V51 tmp41        [V51,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V52 tmp42        [V52,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V53 tmp43        [V53,T27] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[short]\u003E\n-;  V54 tmp44        [V54,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V50 tmp40        [V50,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V51 tmp41        [V51,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V52 tmp42        [V52,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V53 tmp43        [V53,T26] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[short]\u003E\n\u002B;  V54 tmp44        [V54,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V55 tmp45        [V55    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V56 tmp46        [V56,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V57 tmp47        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -71,14 \u002B71,14 @@\n ;* V60 tmp50        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V62 tmp52        [V62,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V63 tmp53        [V63,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V63 tmp53        [V63,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V67 tmp57        [V67    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V69 tmp59        [V69,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 8.75\n-G_M42192_IG25:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M42192_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M42192_IG26\n\u002B       je       SHORT G_M42192_IG23\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -331,10 \u002B311,10 @@ G_M42192_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.62\n-G_M42192_IG26:\n\u002BG_M42192_IG23:\n        mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M42192_IG27:\n\u002BG_M42192_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -344,7 \u002B324,7 @@ G_M42192_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M42192_IG28:\n\u002BG_M42192_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -360,9 \u002B340,9 @@ G_M42192_IG28:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=74 bbWeight=0.50 PerfScore 8.12\n-G_M42192_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 8.12\n\u002BG_M42192_IG26:\n        mov      r12, gword ptr [r15\u002B0x28]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -370,21 \u002B350,21 @@ G_M42192_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M42192_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M42192_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M42192_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M42192_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M42192_IG31\n\u002B       je       SHORT G_M42192_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -393,13 \u002B373,13 @@ G_M42192_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M42192_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M42192_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M42192_IG32\n\u002B       je       SHORT G_M42192_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -408,8 \u002B388,8 @@ G_M42192_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M42192_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M42192_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -418,7 \u002B398,7 @@ G_M42192_IG32:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateAggregateToCollectionResultCursor[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[short],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[short]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M42192_IG33:\n\u002BG_M42192_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -428,22 \u002B408,22 @@ G_M42192_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M42192_IG34:\n\u002BG_M42192_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M42192_IG35:\n\u002BG_M42192_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M42192_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M42192_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M42192_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M42192_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M42192_IG37\n\u002B       je       SHORT G_M42192_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -452,12 \u002B432,12 @@ G_M42192_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M42192_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M42192_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M42192_IG38\n\u002B       je       SHORT G_M42192_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -466,24 \u002B446,24 @@ G_M42192_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M42192_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M42192_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M42192_IG39:\n\u002BG_M42192_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M42192_IG40:\n\u002BG_M42192_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M42192_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M42192_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M42192_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M42192_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M42192_IG42\n\u002B       je       SHORT G_M42192_IG39\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -493,11 \u002B473,11 @@ G_M42192_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M42192_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M42192_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x10]\n        test     r12, r12\n-       je       SHORT G_M42192_IG43\n\u002B       je       SHORT G_M42192_IG40\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -507,13 \u002B487,13 @@ G_M42192_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=50 bbWeight=0 PerfScore 0.00\n-G_M42192_IG43:\n\u002BG_M42192_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M42192_IG44:\n\u002BG_M42192_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1424, prolog size 65, PerfScore 163.27, instruction count 344, allocated bytes for code 1424 (MethodHash=5e8c5b2f) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:Aggregate[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)\n\u002B; Total bytes of code 1343, prolog size 65, PerfScore 153.90, instruction count 330, allocated bytes for code 1343 (MethodHash=5e8c5b2f) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:Aggregate[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1424,"DiffBytes":1343},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.PricingPlanService:ListAutoPagingAsync(Stripe.V2.Billing.PricingPlanListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.PricingPlan]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.Billing.PricingPlanService:ListAutoPagingAsync(Stripe.V2.Billing.PricingPlanListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.PricingPlan]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.PricingPlanService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.PricingPlanListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.PricingPlanListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.PricingPlan]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.PricingPlan]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.PricingPlan]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.PricingPlan]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M22926_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M22926_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/billing/pricing_plans\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M22926_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M22926_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.PricingPlan]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M22926_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M22926_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M22926_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.PricingPlan]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M22926_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M22926_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=0c99a671) for method Stripe.V2.Billing.PricingPlanService:ListAutoPagingAsync(Stripe.V2.Billing.PricingPlanListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.PricingPlan]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=0c99a671) for method Stripe.V2.Billing.PricingPlanService:ListAutoPagingAsync(Stripe.V2.Billing.PricingPlanListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.PricingPlan]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Metadata.Edm.AssociationSet:get_SourceEnd():System.Data.Entity.Core.Metadata.Edm.AssociationEndMember:this (FullOpts)","Category":"improvement","Description":"387 -\u003E 335 bytes (-52)","ExtraInfo":null,"Diff":"@@ -1,151 \u002B1,132 @@\n ; Assembly listing for method System.Data.Entity.Core.Metadata.Edm.AssociationSet:get_SourceEnd():System.Data.Entity.Core.Metadata.Edm.AssociationEndMember:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 9 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T01] (  4,  3.50)     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationSet\u003E\n ;  V01 loc0         [V01,T04] (  4,  3.50)     ref  -\u003E  r15         class-hnd exact single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationSet\u002B\u003C\u003Ec__DisplayClass13_0\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V03 tmp1         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationSet\u002B\u003C\u003Ec__DisplayClass13_0\u003E\n ;  V04 tmp2         [V04,T02] (  4,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationEndMember,bool]\u003E\n-;  V05 tmp3         [V05,T09] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationEndMember]\u003E\n-;  V06 tmp4         [V06,T00] (  4,  7   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n-;  V07 tmp5         [V07    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V08 tmp6         [V08,T08] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationSetEnd\u003E\n-;  V09 tmp7         [V09,T05] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n\u002B;  V05 tmp3         [V05,T07] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationEndMember]\u003E\n\u002B;  V06 tmp4         [V06,T00] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n\u002B;  V07 tmp5         [V07    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V08 tmp6         [V08,T08] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationSetEnd\u003E\n\u002B;* V09 tmp7         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n ;  V10 tmp8         [V10    ] (  1,  0.50)   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V11 tmp9         [V11,T07] (  3,  2.25)     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n-;  V12 tmp10        [V12,T06] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V13 tmp11        [V13,T10] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V11 tmp9         [V11,T06] (  3,  2.25)     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n\u002B;  V12 tmp10        [V12,T05] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V13 tmp11        [V13,T09] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;  V14 rat0         [V14,T03] (  5,  3.75)     ref  -\u003E  rdi         \u0022replacement local\u0022\n-;  V15 rat1         [V15,T11] (  3,  1.25)    long  -\u003E  rcx         \u0022CSE for expectedClsNode\u0022\n\u002B;  V15 rat1         [V15,T10] (  3,  1.25)    long  -\u003E  rcx         \u0022CSE for expectedClsNode\u0022\n ;\n ; Lcl frame size = 24\n \n G_M6369_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     rbx\n        sub      rsp, 24\n        lea      rbp, [rsp\u002B0x30]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x20], rax\n        mov      qword ptr [rbp-0x28], rax\n        mov      rbx, rdi\n \t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 7.25\n G_M6369_IG02:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Metadata.Edm.AssociationSet\u002B\u003C\u003Ec__DisplayClass13_0\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n-       mov      r14, gword ptr [rbx\u002B0x50]\n-       test     r14, r14\n-       je       G_M6369_IG13\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M6369_IG04\n-\t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 9.75\n-G_M6369_IG03:\n-       lea      rsi, [rbp-0x20]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M6369_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M6369_IG04:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x50]\n\u002B       test     rsi, rsi\n\u002B       je       G_M6369_IG10\n        lea      rdx, [rbp-0x20]\n-       mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd],byref):System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M6369_IG05:\n        lea      rdi, bword ptr [r15\u002B0x08]\n        mov      rsi, rax\n        call     CORINFO_HELP_ASSIGN_REF\n        cmp      gword ptr [r15\u002B0x08], 0\n-       je       G_M6369_IG11\n-\t\t\t\t\t\t;; size=23 bbWeight=1 PerfScore 4.75\n-G_M6369_IG06:\n\u002B       je       G_M6369_IG08\n\u002B\t\t\t\t\t\t;; size=80 bbWeight=1 PerfScore 13.50\n\u002BG_M6369_IG03:\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationEndMember,bool]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      rsi, gword ptr [rbx\u002B0x30]\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Metadata.Edm.RelationshipType\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS\n        call     [rax]CORINFO_HELP_CHKCASTCLASS\n        mov      rdi, rax\n        test     rdi, rdi\n-       je       SHORT G_M6369_IG09\n\u002B       je       SHORT G_M6369_IG06\n \t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 4.25\n-G_M6369_IG07:\n\u002BG_M6369_IG04:\n        mov      rcx, 0xD1FFAB1E      ; System.Data.Entity.Core.Metadata.Edm.AssociationType\n        cmp      qword ptr [rdi], rcx\n-       je       SHORT G_M6369_IG09\n\u002B       je       SHORT G_M6369_IG06\n \t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M6369_IG08:\n\u002BG_M6369_IG05:\n        mov      rsi, rax\n        mov      rdi, rcx\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        mov      rdi, rax\n \t\t\t\t\t\t;; size=21 bbWeight=0.12 PerfScore 0.50\n-G_M6369_IG09:\n\u002BG_M6369_IG06:\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x58]\n        call     [rax\u002B0x30]System.Data.Entity.Core.Metadata.Edm.EntityTypeBase:get_KeyMembers():System.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]:this\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:OfType[System.Data.Entity.Core.Metadata.Edm.AssociationEndMember](System.Collections.IEnumerable):System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationEndMember]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:OfType[System.__Canon](System.Collections.IEnumerable):System.Collections.Generic.IEnumerable\u00601[System.__Canon]\n        call     [rax]System.Linq.Enumerable:OfType[System.__Canon](System.Collections.IEnumerable):System.Collections.Generic.IEnumerable\u00601[System.__Canon]\n        mov      rbx, rax\n        lea      rdi, bword ptr [r14\u002B0x10]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rcx, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.AssociationSet\u002B\u003C\u003Ec__DisplayClass13_0:\u003Cget_SourceEnd\u003Eb__0(System.Data.Entity.Core.Metadata.Edm.AssociationEndMember):bool:this\n        mov      qword ptr [r14\u002B0x18], rcx\n        lea      rcx, [rbp-0x28]\n        mov      rsi, rbx\n        mov      rdx, r14\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetSingle[System.Data.Entity.Core.Metadata.Edm.AssociationEndMember](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationEndMember],System.Func\u00602[System.Data.Entity.Core.Metadata.Edm.AssociationEndMember,bool],byref):System.Data.Entity.Core.Metadata.Edm.AssociationEndMember\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetSingle[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Func\u00602[System.__Canon,bool],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetSingle[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Func\u00602[System.__Canon,bool],byref):System.__Canon\n        nop      \n \t\t\t\t\t\t;; size=97 bbWeight=0.50 PerfScore 9.38\n-G_M6369_IG10:\n\u002BG_M6369_IG07:\n        add      rsp, 24\n        pop      rbx\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 1.62\n-G_M6369_IG11:\n\u002BG_M6369_IG08:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M6369_IG12:\n\u002BG_M6369_IG09:\n        add      rsp, 24\n        pop      rbx\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 1.62\n-G_M6369_IG13:\n\u002BG_M6369_IG10:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 387, prolog size 25, PerfScore 47.06, instruction count 93, allocated bytes for code 387 (MethodHash=f523e71e) for method System.Data.Entity.Core.Metadata.Edm.AssociationSet:get_SourceEnd():System.Data.Entity.Core.Metadata.Edm.AssociationEndMember:this (FullOpts)\n\u002B; Total bytes of code 335, prolog size 25, PerfScore 39.06, instruction count 80, allocated bytes for code 335 (MethodHash=f523e71e) for method System.Data.Entity.Core.Metadata.Edm.AssociationSet:get_SourceEnd():System.Data.Entity.Core.Metadata.Edm.AssociationEndMember:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":387,"DiffBytes":335},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase:Aggregate[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)","Category":"improvement","Description":"1,454 -\u003E 1,373 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,System.Nullable\u00601[int]]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Nullable\u00601[int]]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.NoPipelineInputSerializer\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -37,18 \u002B37,18 @@\n ;* V26 tmp16        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V28 tmp18        [V28    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V29 tmp19        [V29,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V30 tmp20        [V30,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V31 tmp21        [V31    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V32 tmp22        [V32,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V33 tmp23        [V33,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp19        [V29,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V30 tmp20        [V30,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V31 tmp21        [V31    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V32 tmp22        [V32,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V34 tmp24        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V35 tmp25        [V35,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V37 tmp27        [V37,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V37 tmp27        [V37,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V38 tmp28        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V39 tmp29        [V39,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V40 tmp30        [V40,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V39 tmp29        [V39,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V40 tmp30        [V40,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V41 tmp31        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V42 tmp32        [V42,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V43 tmp33        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -59,11 \u002B59,11 @@\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V50 tmp40        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V51 tmp41        [V51,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V52 tmp42        [V52,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V53 tmp43        [V53,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V54 tmp44        [V54,T27] (  2,  1   )     ref  -\u003E  r12         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n-;  V55 tmp45        [V55,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoDatabaseSettings\u003E\n\u002B;  V51 tmp41        [V51,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V52 tmp42        [V52,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V53 tmp43        [V53,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V54 tmp44        [V54,T26] (  2,  1   )     ref  -\u003E  r12         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V55 tmp45        [V55,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoDatabaseSettings\u003E\n ;* V56 tmp46        [V56    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V57 tmp47        [V57,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V58 tmp48        [V58    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -72,14 \u002B72,14 @@\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V62 tmp52        [V62    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V63 tmp53        [V63,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V67 tmp57        [V67,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V13.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V67 tmp57        [V67,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V13.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V20._name (fldOffset=0x0)\u0022 P-DEP\n ;* V69 tmp59        [V69    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V20._value (fldOffset=0x8)\u0022 P-DEP\n... diff truncated; middle omitted ...\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M46985_IG26\n\u002B       je       SHORT G_M46985_IG23\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -336,10 \u002B316,10 @@ G_M46985_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M46985_IG26:\n\u002BG_M46985_IG23:\n        mov      rax, r12\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M46985_IG27:\n\u002BG_M46985_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -349,7 \u002B329,7 @@ G_M46985_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M46985_IG28:\n\u002BG_M46985_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -366,9 \u002B346,9 @@ G_M46985_IG28:\n        xor      r9, r9\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoDatabase:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoDatabase:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=78 bbWeight=0.50 PerfScore 8.62\n-G_M46985_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=75 bbWeight=0.50 PerfScore 8.62\n\u002BG_M46985_IG26:\n        mov      r12, gword ptr [r15\u002B0x20]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -376,21 \u002B356,21 @@ G_M46985_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M46985_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M46985_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M46985_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M46985_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M46985_IG31\n\u002B       je       SHORT G_M46985_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -399,13 \u002B379,13 @@ G_M46985_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M46985_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M46985_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M46985_IG32\n\u002B       je       SHORT G_M46985_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -414,8 \u002B394,8 @@ G_M46985_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M46985_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M46985_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -424,7 \u002B404,7 @@ G_M46985_IG32:\n        call     [rax]MongoDB.Driver.MongoDatabase:CreateAggregateToCollectionResultCursor[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M46985_IG33:\n\u002BG_M46985_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -434,22 \u002B414,22 @@ G_M46985_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M46985_IG34:\n\u002BG_M46985_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M46985_IG35:\n\u002BG_M46985_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M46985_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M46985_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M46985_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M46985_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M46985_IG37\n\u002B       je       SHORT G_M46985_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -458,12 \u002B438,12 @@ G_M46985_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M46985_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M46985_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M46985_IG38\n\u002B       je       SHORT G_M46985_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -472,24 \u002B452,24 @@ G_M46985_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M46985_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M46985_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M46985_IG39:\n\u002BG_M46985_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M46985_IG40:\n\u002BG_M46985_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M46985_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M46985_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M46985_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M46985_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x08]\n        test     r12, r12\n-       je       SHORT G_M46985_IG42\n\u002B       je       SHORT G_M46985_IG39\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -499,11 \u002B479,11 @@ G_M46985_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M46985_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M46985_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M46985_IG43\n\u002B       je       SHORT G_M46985_IG40\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -513,13 \u002B493,13 @@ G_M46985_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M46985_IG43:\n\u002BG_M46985_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M46985_IG44:\n\u002BG_M46985_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1454, prolog size 65, PerfScore 166.77, instruction count 349, allocated bytes for code 1454 (MethodHash=99904876) for method MongoDB.Driver.MongoDatabase:Aggregate[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n\u002B; Total bytes of code 1373, prolog size 65, PerfScore 157.40, instruction count 335, allocated bytes for code 1373 (MethodHash=99904876) for method MongoDB.Driver.MongoDatabase:Aggregate[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1454,"DiffBytes":1373},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.PricingPlanSubscriptionService:ListAutoPagingAsync(Stripe.V2.Billing.PricingPlanSubscriptionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.PricingPlanSubscription]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.Billing.PricingPlanSubscriptionService:ListAutoPagingAsync(Stripe.V2.Billing.PricingPlanSubscriptionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.PricingPlanSubscription]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.PricingPlanSubscriptionService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.PricingPlanSubscriptionListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.PricingPlanSubscriptionListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.PricingPlanSubscription]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.PricingPlanSubscription]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.PricingPlanSubscription]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.PricingPlanSubscription]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M9293_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M9293_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/billing/pricing_plan_subscriptions\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M9293_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M9293_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.PricingPlanSubscription]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M9293_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M9293_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M9293_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.PricingPlanSubscription]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M9293_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M9293_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=76a4dbb2) for method Stripe.V2.Billing.PricingPlanSubscriptionService:ListAutoPagingAsync(Stripe.V2.Billing.PricingPlanSubscriptionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.PricingPlanSubscription]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=76a4dbb2) for method Stripe.V2.Billing.PricingPlanSubscriptionService:ListAutoPagingAsync(Stripe.V2.Billing.PricingPlanSubscriptionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.PricingPlanSubscription]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Metadata.Edm.AssociationSet:get_SourceSet():System.Data.Entity.Core.Metadata.Edm.EntitySet:this (FullOpts)","Category":"improvement","Description":"144 -\u003E 92 bytes (-52)","ExtraInfo":null,"Diff":"@@ -1,85 \u002B1,63 @@\n ; Assembly listing for method System.Data.Entity.Core.Metadata.Edm.AssociationSet:get_SourceSet():System.Data.Entity.Core.Metadata.Edm.EntitySet:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 4 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T01] (  3,  3   )     ref  -\u003E  rdi         this class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationSet\u003E\n ;* V01 loc0         [V01    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationSetEnd\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V03 tmp1         [V03,T00] (  4,  7   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n-;  V04 tmp2         [V04    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x10]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V05 tmp3         [V05,T03] (  4,  2.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationSetEnd\u003E\n-;  V06 tmp4         [V06,T02] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n\u002B;  V03 tmp1         [V03,T00] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n\u002B;  V04 tmp2         [V04    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x08]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V05 tmp3         [V05,T02] (  3,  2.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationSetEnd\u003E\n\u002B;* V06 tmp4         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\u003E\n ;\n-; Lcl frame size = 8\n\u002B; Lcl frame size = 16\n \n G_M6355_IG01:\n        push     rbp\n-       push     rbx\n-       push     rax\n\u002B       sub      rsp, 16\n        lea      rbp, [rsp\u002B0x10]\n        xor      eax, eax\n-       mov      qword ptr [rbp-0x10], rax\n-\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.75\n\u002B       mov      qword ptr [rbp-0x08], rax\n\u002B\t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 3.00\n G_M6355_IG02:\n-       mov      rbx, gword ptr [rdi\u002B0x50]\n-       test     rbx, rbx\n-       je       SHORT G_M6355_IG10\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M6355_IG04\n-\t\t\t\t\t\t;; size=39 bbWeight=1 PerfScore 8.25\n-G_M6355_IG03:\n-       lea      rsi, [rbp-0x10]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M6355_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M6355_IG04:\n-       lea      rdx, [rbp-0x10]\n-       mov      rsi, rbx\n\u002B       mov      rsi, gword ptr [rdi\u002B0x50]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M6355_IG07\n\u002B       lea      rdx, [rbp-0x08]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd],byref):System.Data.Entity.Core.Metadata.Edm.AssociationSetEnd\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M6355_IG05:\n        test     rax, rax\n-       je       SHORT G_M6355_IG08\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M6355_IG06:\n\u002B       je       SHORT G_M6355_IG05\n\u002B\t\t\t\t\t\t;; size=40 bbWeight=1 PerfScore 8.50\n\u002BG_M6355_IG03:\n        mov      rax, gword ptr [rax\u002B0x20]\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 1.00\n-G_M6355_IG07:\n-       add      rsp, 8\n-       pop      rbx\n\u002BG_M6355_IG04:\n\u002B       add      rsp, 16\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M6355_IG08:\n\u002B\t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 0.88\n\u002BG_M6355_IG05:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M6355_IG09:\n-       add      rsp, 8\n-       pop      rbx\n\u002BG_M6355_IG06:\n\u002B       add      rsp, 16\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M6355_IG10:\n\u002B\t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 0.88\n\u002BG_M6355_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 144, prolog size 14, PerfScore 24.62, instruction count 42, allocated bytes for code 144 (MethodHash=755fe72c) for method System.Data.Entity.Core.Metadata.Edm.AssociationSet:get_SourceSet():System.Data.Entity.Core.Metadata.Edm.EntitySet:this (FullOpts)\n\u002B; Total bytes of code 92, prolog size 16, PerfScore 14.38, instruction count 26, allocated bytes for code 92 (MethodHash=755fe72c) for method System.Data.Entity.Core.Metadata.Edm.AssociationSet:get_SourceSet():System.Data.Entity.Core.Metadata.Edm.EntitySet:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":144,"DiffBytes":92},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase:Aggregate[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)","Category":"improvement","Description":"1,454 -\u003E 1,373 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,System.Numerics.Vector\u00601[float]]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.NoPipelineInputSerializer\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -37,18 \u002B37,18 @@\n ;* V26 tmp16        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V28 tmp18        [V28    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V29 tmp19        [V29,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V30 tmp20        [V30,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V31 tmp21        [V31    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V32 tmp22        [V32,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V33 tmp23        [V33,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp19        [V29,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V30 tmp20        [V30,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V31 tmp21        [V31    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V32 tmp22        [V32,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V34 tmp24        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V35 tmp25        [V35,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V37 tmp27        [V37,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V37 tmp27        [V37,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V38 tmp28        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V39 tmp29        [V39,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V40 tmp30        [V40,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V39 tmp29        [V39,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V40 tmp30        [V40,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V41 tmp31        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V42 tmp32        [V42,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V43 tmp33        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -59,11 \u002B59,11 @@\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V50 tmp40        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V51 tmp41        [V51,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V52 tmp42        [V52,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V53 tmp43        [V53,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V54 tmp44        [V54,T27] (  2,  1   )     ref  -\u003E  r12         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V55 tmp45        [V55,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoDatabaseSettings\u003E\n\u002B;  V51 tmp41        [V51,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V52 tmp42        [V52,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V53 tmp43        [V53,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V54 tmp44        [V54,T26] (  2,  1   )     ref  -\u003E  r12         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V55 tmp45        [V55,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoDatabaseSettings\u003E\n ;* V56 tmp46        [V56    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V57 tmp47        [V57,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V58 tmp48        [V58    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -72,14 \u002B72,14 @@\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V62 tmp52        [V62    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V63 tmp53        [V63,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V67 tmp57        [V67,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V13.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V67 tmp57        [V67,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V13.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V20._name (fldOffset=0x0)\u0022 P-DEP\n... diff truncated; middle omitted ...\n        test     r14, r14\n-       je       SHORT G_M50356_IG26\n\u002B       je       SHORT G_M50356_IG23\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -336,10 \u002B316,10 @@ G_M50356_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M50356_IG26:\n\u002BG_M50356_IG23:\n        mov      rax, r12\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M50356_IG27:\n\u002BG_M50356_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -349,7 \u002B329,7 @@ G_M50356_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M50356_IG28:\n\u002BG_M50356_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -366,9 \u002B346,9 @@ G_M50356_IG28:\n        xor      r9, r9\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoDatabase:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoDatabase:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=78 bbWeight=0.50 PerfScore 8.62\n-G_M50356_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=75 bbWeight=0.50 PerfScore 8.62\n\u002BG_M50356_IG26:\n        mov      r12, gword ptr [r15\u002B0x20]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -376,21 \u002B356,21 @@ G_M50356_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M50356_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M50356_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M50356_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M50356_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M50356_IG31\n\u002B       je       SHORT G_M50356_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -399,13 \u002B379,13 @@ G_M50356_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M50356_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M50356_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M50356_IG32\n\u002B       je       SHORT G_M50356_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -414,8 \u002B394,8 @@ G_M50356_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M50356_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M50356_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -424,7 \u002B404,7 @@ G_M50356_IG32:\n        call     [rax]MongoDB.Driver.MongoDatabase:CreateAggregateToCollectionResultCursor[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M50356_IG33:\n\u002BG_M50356_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -434,22 \u002B414,22 @@ G_M50356_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M50356_IG34:\n\u002BG_M50356_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M50356_IG35:\n\u002BG_M50356_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M50356_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M50356_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M50356_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M50356_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M50356_IG37\n\u002B       je       SHORT G_M50356_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -458,12 \u002B438,12 @@ G_M50356_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M50356_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M50356_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M50356_IG38\n\u002B       je       SHORT G_M50356_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -472,24 \u002B452,24 @@ G_M50356_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M50356_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M50356_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M50356_IG39:\n\u002BG_M50356_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M50356_IG40:\n\u002BG_M50356_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M50356_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M50356_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M50356_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M50356_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x08]\n        test     r12, r12\n-       je       SHORT G_M50356_IG42\n\u002B       je       SHORT G_M50356_IG39\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -499,11 \u002B479,11 @@ G_M50356_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M50356_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M50356_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M50356_IG43\n\u002B       je       SHORT G_M50356_IG40\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -513,13 \u002B493,13 @@ G_M50356_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M50356_IG43:\n\u002BG_M50356_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M50356_IG44:\n\u002BG_M50356_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1454, prolog size 65, PerfScore 166.77, instruction count 349, allocated bytes for code 1454 (MethodHash=c7f73b4b) for method MongoDB.Driver.MongoDatabase:Aggregate[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n\u002B; Total bytes of code 1373, prolog size 65, PerfScore 157.40, instruction count 335, allocated bytes for code 1373 (MethodHash=c7f73b4b) for method MongoDB.Driver.MongoDatabase:Aggregate[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1454,"DiffBytes":1373},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.ProfileService:ListAutoPagingAsync(Stripe.V2.Billing.ProfileListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.Profile]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.Billing.ProfileService:ListAutoPagingAsync(Stripe.V2.Billing.ProfileListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.Profile]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.ProfileService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.ProfileListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.ProfileListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.Profile]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.Profile]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.Profile]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.Profile]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M22846_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M22846_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/billing/profiles\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M22846_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M22846_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.Profile]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M22846_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M22846_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M22846_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.Profile]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M22846_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M22846_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=fa9ba6c1) for method Stripe.V2.Billing.ProfileService:ListAutoPagingAsync(Stripe.V2.Billing.ProfileListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.Profile]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=fa9ba6c1) for method Stripe.V2.Billing.ProfileService:ListAutoPagingAsync(Stripe.V2.Billing.ProfileListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.Profile]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Metadata.Edm.EdmItemCollection:GenerateFunctionDefinition(System.Data.Entity.Core.Metadata.Edm.EdmFunction):System.Data.Entity.Core.Common.CommandTrees.DbLambda:this (FullOpts)","Category":"improvement","Description":"464 -\u003E 412 bytes (-52)","ExtraInfo":null,"Diff":"@@ -14,25 \u002B14,25 @@\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V04 tmp1         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.TypeUsage\u003E\n-;  V06 tmp3         [V06,T14] (  2,  0   )     ref  -\u003E  r14         class-hnd exact single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n-;  V07 tmp4         [V07,T15] (  2,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n-;  V08 tmp5         [V08,T09] (  3,  0   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n-;  V09 tmp6         [V09,T10] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n-;  V10 tmp7         [V10,T01] (  4,  7   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V11 tmp8         [V11    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V12 tmp9         [V12,T08] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n-;  V13 tmp10        [V13,T07] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V06 tmp3         [V06,T13] (  2,  0   )     ref  -\u003E  r14         class-hnd exact single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n\u002B;  V07 tmp4         [V07,T14] (  2,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n\u002B;  V08 tmp5         [V08,T08] (  3,  0   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V09 tmp6         [V09,T09] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp7         [V10,T01] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V11 tmp8         [V11    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V12 tmp9         [V12,T07] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n\u002B;* V13 tmp10        [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n ;* V14 tmp11        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.TypeUsage\u003E\n ;* V15 tmp12        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n ;  V16 tmp13        [V16,T02] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V17 tmp14        [V17,T04] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;  V18 tmp15        [V18,T05] (  2,  4   )     ref  -\u003E  r14         single-def \u0022argument with side effect\u0022\n-;  V19 tmp16        [V19,T11] (  3,  0   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V20 tmp17        [V20,T12] (  3,  0   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V21 tmp18        [V21,T13] (  3,  0   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n-;  V22 tmp19        [V22,T16] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n-;  V23 tmp20        [V23,T17] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V24 tmp21        [V24,T18] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V19 tmp16        [V19,T10] (  3,  0   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V20 tmp17        [V20,T11] (  3,  0   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V21 tmp18        [V21,T12] (  3,  0   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n\u002B;  V22 tmp19        [V22,T15] (  2,  0   )     ref  -\u003E  rdx         single-def \u0022argument with side effect\u0022\n\u002B;  V23 tmp20        [V23,T16] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V24 tmp21        [V24,T17] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 16\n \n@@ -55,39 \u002B55,20 @@ G_M33809_IG02:\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.Data.Entity.Core.Metadata.Edm.EdmFunction:get_HasUserDefinedBody():bool:this\n        test     eax, eax\n-       je       G_M33809_IG07\n\u002B       je       G_M33809_IG04\n        mov      rdi, gword ptr [rbx\u002B0x60]\n        mov      rsi, gword ptr [rbx\u002B0x50]\n        mov      rdx, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Mapping.ViewGeneration.Utils.ExternalCalls:CompileFunctionDefinition(System.String,System.Collections.Generic.IList\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter],System.Data.Entity.Core.Metadata.Edm.EdmItemCollection):System.Data.Entity.Core.Common.CommandTrees.DbLambda\n        call     [rax]System.Data.Entity.Core.Mapping.ViewGeneration.Utils.ExternalCalls:CompileFunctionDefinition(System.String,System.Collections.Generic.IList\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter],System.Data.Entity.Core.Metadata.Edm.EdmItemCollection):System.Data.Entity.Core.Common.CommandTrees.DbLambda\n        mov      r15, rax\n-       mov      r14, gword ptr [rbx\u002B0x48]\n-       test     r14, r14\n-       je       G_M33809_IG08\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M33809_IG04\n-\t\t\t\t\t\t;; size=94 bbWeight=1 PerfScore 22.75\n-G_M33809_IG03:\n-       lea      rsi, [rbp-0x28]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M33809_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M33809_IG04:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x48]\n\u002B       test     rsi, rsi\n\u002B       je       G_M33809_IG05\n        lea      rdx, [rbp-0x28]\n-       mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.FunctionParameter](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter],byref):System.Data.Entity.Core.Metadata.Edm.FunctionParameter\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M33809_IG05:\n        mov      r14, gword ptr [rax\u002B0x28]\n        mov      rdi, gword ptr [r15\u002B0x10]\n        mov      rax, qword ptr [rdi]\n@@ -99,10 \u002B80,10 @@ G_M33809_IG05:\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.TypeSemantics:CompareTypes(System.Data.Entity.Core.Metadata.Edm.TypeUsage,System.Data.Entity.Core.Metadata.Edm.TypeUsage,bool):bool\n        call     [rax]System.Data.Entity.Core.Metadata.Edm.TypeSemantics:CompareTypes(System.Data.Entity.Core.Metadata.Edm.TypeUsage,System.Data.Entity.Core.Metadata.Edm.TypeUsage,bool):bool\n        test     eax, eax\n-       je       SHORT G_M33809_IG09\n\u002B       je       SHORT G_M33809_IG06\n        mov      rax, r15\n-\t\t\t\t\t\t;; size=48 bbWeight=1 PerfScore 16.50\n-G_M33809_IG06:\n\u002B\t\t\t\t\t\t;; size=138 bbWeight=1 PerfScore 38.25\n\u002BG_M33809_IG03:\n        add      rsp, 16\n        pop      rbx\n        pop      r13\n@@ -111,7 \u002B92,7 @@ G_M33809_IG06:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n-G_M33809_IG07:\n\u002BG_M33809_IG04:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -130,13 \u002B111,13 @@ G_M33809_IG07:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=73 bbWeight=0 PerfScore 0.00\n-G_M33809_IG08:\n\u002BG_M33809_IG05:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M33809_IG09:\n\u002BG_M33809_IG06:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.EdmFunction:get_ReturnParameter():System.Data.Entity.Core.Metadata.Edm.FunctionParameter:this\n        call     [rax]System.Data.Entity.Core.Metadata.Edm.EdmFunction:get_ReturnParameter():System.Data.Entity.Core.Metadata.Edm.FunctionParameter:this\n@@ -175,5 \u002B156,5 @@ G_M33809_IG09:\n        int3     \n \t\t\t\t\t\t;; size=141 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 464, prolog size 23, PerfScore 57.50, instruction count 120, allocated bytes for code 464 (MethodHash=3aa77bee) for method System.Data.Entity.Core.Metadata.Edm.EdmItemCollection:GenerateFunctionDefinition(System.Data.Entity.Core.Metadata.Edm.EdmFunction):System.Data.Entity.Core.Common.CommandTrees.DbLambda:this (FullOpts)\n\u002B; Total bytes of code 412, prolog size 23, PerfScore 49.50, instruction count 107, allocated bytes for code 412 (MethodHash=3aa77bee) for method System.Data.Entity.Core.Metadata.Edm.EdmItemCollection:GenerateFunctionDefinition(System.Data.Entity.Core.Metadata.Edm.EdmFunction):System.Data.Entity.Core.Common.CommandTrees.DbLambda:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":464,"DiffBytes":412},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase:Aggregate[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)","Category":"improvement","Description":"1,454 -\u003E 1,373 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,byte]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[byte]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[byte]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.NoPipelineInputSerializer\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -37,18 \u002B37,18 @@\n ;* V26 tmp16        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V28 tmp18        [V28    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V29 tmp19        [V29,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V30 tmp20        [V30,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V31 tmp21        [V31    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V32 tmp22        [V32,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V33 tmp23        [V33,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp19        [V29,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V30 tmp20        [V30,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V31 tmp21        [V31    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V32 tmp22        [V32,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V34 tmp24        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V35 tmp25        [V35,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V37 tmp27        [V37,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V37 tmp27        [V37,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V38 tmp28        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V39 tmp29        [V39,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V40 tmp30        [V40,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V39 tmp29        [V39,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V40 tmp30        [V40,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V41 tmp31        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V42 tmp32        [V42,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V43 tmp33        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -59,11 \u002B59,11 @@\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[byte]\u003E\n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V50 tmp40        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V51 tmp41        [V51,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V52 tmp42        [V52,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V53 tmp43        [V53,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V54 tmp44        [V54,T27] (  2,  1   )     ref  -\u003E  r12         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[byte]\u003E\n-;  V55 tmp45        [V55,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoDatabaseSettings\u003E\n\u002B;  V51 tmp41        [V51,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V52 tmp42        [V52,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V53 tmp43        [V53,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V54 tmp44        [V54,T26] (  2,  1   )     ref  -\u003E  r12         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[byte]\u003E\n\u002B;  V55 tmp45        [V55,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoDatabaseSettings\u003E\n ;* V56 tmp46        [V56    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V57 tmp47        [V57,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V58 tmp48        [V58    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -72,14 \u002B72,14 @@\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V62 tmp52        [V62    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V63 tmp53        [V63,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V67 tmp57        [V67,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V13.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V67 tmp57        [V67,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V13.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V20._name (fldOffset=0x0)\u0022 P-DEP\n ;* V69 tmp59        [V69    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V20._value (fldOffset=0x8)\u0022 P-DEP\n-;  V70 tmp60        [V70,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V21._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 8.75\n-G_M27837_IG25:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M27837_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M27837_IG26\n\u002B       je       SHORT G_M27837_IG23\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -336,10 \u002B316,10 @@ G_M27837_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M27837_IG26:\n\u002BG_M27837_IG23:\n        mov      rax, r12\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M27837_IG27:\n\u002BG_M27837_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -349,7 \u002B329,7 @@ G_M27837_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M27837_IG28:\n\u002BG_M27837_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -366,9 \u002B346,9 @@ G_M27837_IG28:\n        xor      r9, r9\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoDatabase:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoDatabase:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=78 bbWeight=0.50 PerfScore 8.62\n-G_M27837_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=75 bbWeight=0.50 PerfScore 8.62\n\u002BG_M27837_IG26:\n        mov      r12, gword ptr [r15\u002B0x20]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -376,21 \u002B356,21 @@ G_M27837_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M27837_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M27837_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M27837_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M27837_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M27837_IG31\n\u002B       je       SHORT G_M27837_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -399,13 \u002B379,13 @@ G_M27837_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M27837_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M27837_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M27837_IG32\n\u002B       je       SHORT G_M27837_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -414,8 \u002B394,8 @@ G_M27837_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M27837_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M27837_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -424,7 \u002B404,7 @@ G_M27837_IG32:\n        call     [rax]MongoDB.Driver.MongoDatabase:CreateAggregateToCollectionResultCursor[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[byte],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[byte]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M27837_IG33:\n\u002BG_M27837_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -434,22 \u002B414,22 @@ G_M27837_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M27837_IG34:\n\u002BG_M27837_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M27837_IG35:\n\u002BG_M27837_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M27837_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M27837_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M27837_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M27837_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M27837_IG37\n\u002B       je       SHORT G_M27837_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -458,12 \u002B438,12 @@ G_M27837_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M27837_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M27837_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M27837_IG38\n\u002B       je       SHORT G_M27837_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -472,24 \u002B452,24 @@ G_M27837_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M27837_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M27837_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M27837_IG39:\n\u002BG_M27837_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M27837_IG40:\n\u002BG_M27837_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M27837_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M27837_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M27837_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M27837_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x08]\n        test     r12, r12\n-       je       SHORT G_M27837_IG42\n\u002B       je       SHORT G_M27837_IG39\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -499,11 \u002B479,11 @@ G_M27837_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M27837_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M27837_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M27837_IG43\n\u002B       je       SHORT G_M27837_IG40\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -513,13 \u002B493,13 @@ G_M27837_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M27837_IG43:\n\u002BG_M27837_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M27837_IG44:\n\u002BG_M27837_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1454, prolog size 65, PerfScore 166.77, instruction count 349, allocated bytes for code 1454 (MethodHash=0c829342) for method MongoDB.Driver.MongoDatabase:Aggregate[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)\n\u002B; Total bytes of code 1373, prolog size 65, PerfScore 157.40, instruction count 335, allocated bytes for code 1373 (MethodHash=0c829342) for method MongoDB.Driver.MongoDatabase:Aggregate[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1454,"DiffBytes":1373},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.RateCardService:ListAutoPagingAsync(Stripe.V2.Billing.RateCardListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.RateCard]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.Billing.RateCardService:ListAutoPagingAsync(Stripe.V2.Billing.RateCardListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.RateCard]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.RateCardService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.RateCardListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.RateCardListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.RateCard]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.RateCard]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.RateCard]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.RateCard]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M12227_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M12227_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/billing/rate_cards\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M12227_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M12227_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.RateCard]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M12227_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M12227_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M12227_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.RateCard]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M12227_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M12227_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=c78ad03c) for method Stripe.V2.Billing.RateCardService:ListAutoPagingAsync(Stripe.V2.Billing.RateCardListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.RateCard]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=c78ad03c) for method Stripe.V2.Billing.RateCardService:ListAutoPagingAsync(Stripe.V2.Billing.RateCardListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.RateCard]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Metadata.Edm.EdmXmlSchemaWriter:WriteFunctionElementHeader(System.Data.Entity.Core.Metadata.Edm.EdmFunction):this (FullOpts)","Category":"improvement","Description":"1,081 -\u003E 1,029 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,7 \u002B10,7 @@\n ;\n ;  V00 this         [V00,T01] ( 12, 11   )     ref  -\u003E  r15         this class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmXmlSchemaWriter\u003E\n ;  V01 arg1         [V01,T00] ( 19, 16   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmFunction\u003E\n-;  V02 loc0         [V02,T36] (  2,  2   )     int  -\u003E  r13         ld-addr-op single-def\n\u002B;  V02 loc0         [V02,T35] (  2,  2   )     int  -\u003E  r13         ld-addr-op single-def\n ;  V03 loc1         [V03,T27] (  4,  2   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmType\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T02] (  6, 12   )     ref  -\u003E  r14         class-hnd single-def \u0022non-inline candidate call\u0022 \u003CSystem.Xml.XmlWriter\u003E\n@@ -25,28 \u002B25,28 @@\n ;  V14 tmp10        [V14,T13] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n ;  V15 tmp11        [V15,T10] (  6,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Xml.XmlWriter\u003E\n ;* V16 tmp12        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Xml.XmlWriter\u003E\n-;  V17 tmp13        [V17,T16] (  2,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V18 tmp14        [V18,T29] (  2,  2   )     ref  -\u003E  r13         class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n\u002B;  V17 tmp13        [V17,T15] (  2,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V18 tmp14        [V18,T28] (  2,  2   )     ref  -\u003E  r13         class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n ;* V19 tmp15        [V19    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V20 tmp16        [V20,T30] (  2,  2   )     ref  -\u003E  r13         class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n\u002B;  V20 tmp16        [V20,T29] (  2,  2   )     ref  -\u003E  r13         class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n ;* V21 tmp17        [V21    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V22 tmp18        [V22,T31] (  2,  2   )     ref  -\u003E  r13         class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n\u002B;  V22 tmp18        [V22,T30] (  2,  2   )     ref  -\u003E  r13         class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n ;* V23 tmp19        [V23    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V24 tmp20        [V24,T32] (  2,  2   )     ref  -\u003E  r13         class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n\u002B;  V24 tmp20        [V24,T31] (  2,  2   )     ref  -\u003E  r13         class-hnd exact \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n ;* V25 tmp21        [V25    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V26 tmp22        [V26,T17] (  2,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V27 tmp23        [V27,T18] (  2,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V26 tmp22        [V26,T16] (  2,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V27 tmp23        [V27,T17] (  2,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V28 tmp24        [V28,T14] (  5,  5   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V29 tmp25        [V29,T40] (  2,  1   )   ubyte  -\u003E  rax         \u0022Inline return value spill temp\u0022\n-;  V30 tmp26        [V30,T33] (  2,  2   )   byref  -\u003E  rdi         single-def \u0022impAppendStmt\u0022\n-;  V31 tmp27        [V31,T34] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V32 tmp28        [V32,T15] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V33 tmp29        [V33    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V29 tmp25        [V29,T39] (  2,  1   )   ubyte  -\u003E  rax         \u0022Inline return value spill temp\u0022\n\u002B;  V30 tmp26        [V30,T32] (  2,  2   )   byref  -\u003E  rdi         single-def \u0022impAppendStmt\u0022\n\u002B;  V31 tmp27        [V31,T33] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V32 tmp28        [V32,T18] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V33 tmp29        [V33    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V34 tmp30        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V35 tmp31        [V35,T37] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n-;  V36 tmp32        [V36,T28] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V35 tmp31        [V35,T38] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n\u002B;* V36 tmp32        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n ;* V37 tmp33        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n-;  V38 tmp34        [V38,T35] (  2,  2   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V38 tmp34        [V38,T34] (  2,  2   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V39 tmp35        [V39,T12] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V40 tmp36        [V40,T19] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V41 cse0         [V41,T20] (  3,  3   )    long  -\u003E  r12         \u0022CSE #02: moderate\u0022\n@@ -56,8 \u002B56,8 @@\n ;  V45 cse4         [V45,T24] (  3,  3   )    long  -\u003E  r12         \u0022CSE #13: moderate\u0022\n ;  V46 cse5         [V46,T25] (  3,  3   )    long  -\u003E  r12         \u0022CSE #15: moderate\u0022\n ;  V47 cse6         [V47,T26] (  3,  3   )    long  -\u003E  r12         \u0022CSE #17: moderate\u0022\n-;  V48 cse7         [V48,T38] (  3,  1.50)    long  -\u003E  r12         \u0022CSE #22: conservative\u0022\n-;  V49 cse8         [V49,T39] (  3,  1.50)    long  -\u003E  r14         \u0022CSE #25: conservative\u0022\n\u002B;  V48 cse7         [V48,T36] (  3,  1.50)    long  -\u003E  r12         \u0022CSE #22: conservative\u0022\n\u002B;  V49 cse8         [V49,T37] (  3,  1.50)    long  -\u003E  r14         \u0022CSE #25: conservative\u0022\n ;\n ; Lcl frame size = 8\n \n@@ -272,7 \u002B272,7 @@ G_M21350_IG06:\n \t\t\t\t\t\t;; size=61 bbWeight=0.50 PerfScore 11.38\n G_M21350_IG07:\n        cmp      gword ptr [rbx\u002B0x48], 0\n-       je       G_M21350_IG11\n\u002B       je       G_M21350_IG09\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.00\n G_M21350_IG08:\n        mov      rsi, gword ptr [rbx\u002B0x48]\n@@ -280,33 \u002B280,16 @@ G_M21350_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:Any[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):bool\n        call     [rax]System.Linq.Enumerable:Any[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):bool\n        test     eax, eax\n\u002B       je       G_M21350_IG09\n\u002B       mov      rsi, gword ptr [rbx\u002B0x48]\n\u002B       test     rsi, rsi\n        je       G_M21350_IG11\n-       mov      rbx, gword ptr [rbx\u002B0x48]\n-       test     rbx, rbx\n-       je       G_M21350_IG13\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M21350_IG09\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M21350_IG10\n-\t\t\t\t\t\t;; size=96 bbWeight=0.50 PerfScore 12.38\n-G_M21350_IG09:\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.FunctionParameter](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter],byref):System.Data.Entity.Core.Metadata.Edm.FunctionParameter\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M21350_IG10:\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M21350_IG14\n\u002B       je       G_M21350_IG12\n        mov      rdi, gword ptr [rax\u002B0x28]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x48]\n@@ -317,7 \u002B300,7 @@ G_M21350_IG10:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x28]System.Data.Entity.Core.Metadata.Edm.MetadataItem:get_BuiltInTypeKind():int:this\n        cmp      eax, 26\n-       jne      SHORT G_M21350_IG11\n\u002B       jne      SHORT G_M21350_IG09\n        mov      r15, gword ptr [r15\u002B0x08]\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.EdmXmlSchemaWriter:GetTypeName(System.Data.Entity.Core.Metadata.Edm.EdmType):System.String\n@@ -337,11 \u002B320,11 @@ G_M21350_IG10:\n        call     [rax\u002B0x20]System.Xml.XmlWriter:WriteString(System.String):this\n        mov      rdi, r15\n        call     [r14\u002B0x28]System.Xml.XmlWriter:WriteEndAttribute():this\n-\t\t\t\t\t\t;; size=118 bbWeight=0.50 PerfScore 22.12\n-G_M21350_IG11:\n\u002B\t\t\t\t\t\t;; size=191 bbWeight=0.50 PerfScore 29.12\n\u002BG_M21350_IG09:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M21350_IG12:\n\u002BG_M21350_IG10:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n@@ -351,17 \u002B334,17 @@ G_M21350_IG12:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M21350_IG13:\n\u002BG_M21350_IG11:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M21350_IG14:\n\u002BG_M21350_IG12:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1081, prolog size 22, PerfScore 270.00, instruction count 273, allocated bytes for code 1081 (MethodHash=c8aeac99) for method System.Data.Entity.Core.Metadata.Edm.EdmXmlSchemaWriter:WriteFunctionElementHeader(System.Data.Entity.Core.Metadata.Edm.EdmFunction):this (FullOpts)\n\u002B; Total bytes of code 1029, prolog size 22, PerfScore 262.50, instruction count 260, allocated bytes for code 1029 (MethodHash=c8aeac99) for method System.Data.Entity.Core.Metadata.Edm.EdmXmlSchemaWriter:WriteFunctionElementHeader(System.Data.Entity.Core.Metadata.Edm.EdmFunction):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1081,"DiffBytes":1029},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase:Aggregate[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)","Category":"improvement","Description":"1,454 -\u003E 1,373 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,double]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[double]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[double]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.NoPipelineInputSerializer\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -37,18 \u002B37,18 @@\n ;* V26 tmp16        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V28 tmp18        [V28    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V29 tmp19        [V29,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V30 tmp20        [V30,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V31 tmp21        [V31    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V32 tmp22        [V32,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V33 tmp23        [V33,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp19        [V29,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V30 tmp20        [V30,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V31 tmp21        [V31    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V32 tmp22        [V32,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V34 tmp24        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V35 tmp25        [V35,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V37 tmp27        [V37,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V37 tmp27        [V37,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V38 tmp28        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V39 tmp29        [V39,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V40 tmp30        [V40,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V39 tmp29        [V39,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V40 tmp30        [V40,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V41 tmp31        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V42 tmp32        [V42,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V43 tmp33        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -59,11 \u002B59,11 @@\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[double]\u003E\n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V50 tmp40        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V51 tmp41        [V51,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V52 tmp42        [V52,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V53 tmp43        [V53,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V54 tmp44        [V54,T27] (  2,  1   )     ref  -\u003E  r12         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[double]\u003E\n-;  V55 tmp45        [V55,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoDatabaseSettings\u003E\n\u002B;  V51 tmp41        [V51,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V52 tmp42        [V52,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V53 tmp43        [V53,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V54 tmp44        [V54,T26] (  2,  1   )     ref  -\u003E  r12         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[double]\u003E\n\u002B;  V55 tmp45        [V55,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoDatabaseSettings\u003E\n ;* V56 tmp46        [V56    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V57 tmp47        [V57,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V58 tmp48        [V58    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -72,14 \u002B72,14 @@\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V62 tmp52        [V62    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V63 tmp53        [V63,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V67 tmp57        [V67,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V13.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V67 tmp57        [V67,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V13.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V20._name (fldOffset=0x0)\u0022 P-DEP\n ;* V69 tmp59        [V69    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V20._value (fldOffset=0x8)\u0022 P-DEP\n-;  V70 tmp60        [V70,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V21._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 8.75\n-G_M18146_IG25:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M18146_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M18146_IG26\n\u002B       je       SHORT G_M18146_IG23\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -336,10 \u002B316,10 @@ G_M18146_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M18146_IG26:\n\u002BG_M18146_IG23:\n        mov      rax, r12\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M18146_IG27:\n\u002BG_M18146_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -349,7 \u002B329,7 @@ G_M18146_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M18146_IG28:\n\u002BG_M18146_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -366,9 \u002B346,9 @@ G_M18146_IG28:\n        xor      r9, r9\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoDatabase:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoDatabase:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=78 bbWeight=0.50 PerfScore 8.62\n-G_M18146_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=75 bbWeight=0.50 PerfScore 8.62\n\u002BG_M18146_IG26:\n        mov      r12, gword ptr [r15\u002B0x20]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -376,21 \u002B356,21 @@ G_M18146_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M18146_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M18146_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M18146_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M18146_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M18146_IG31\n\u002B       je       SHORT G_M18146_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -399,13 \u002B379,13 @@ G_M18146_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M18146_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M18146_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M18146_IG32\n\u002B       je       SHORT G_M18146_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -414,8 \u002B394,8 @@ G_M18146_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M18146_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M18146_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -424,7 \u002B404,7 @@ G_M18146_IG32:\n        call     [rax]MongoDB.Driver.MongoDatabase:CreateAggregateToCollectionResultCursor[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[double],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[double]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M18146_IG33:\n\u002BG_M18146_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -434,22 \u002B414,22 @@ G_M18146_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M18146_IG34:\n\u002BG_M18146_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M18146_IG35:\n\u002BG_M18146_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M18146_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M18146_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M18146_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M18146_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M18146_IG37\n\u002B       je       SHORT G_M18146_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -458,12 \u002B438,12 @@ G_M18146_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M18146_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M18146_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M18146_IG38\n\u002B       je       SHORT G_M18146_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -472,24 \u002B452,24 @@ G_M18146_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M18146_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M18146_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M18146_IG39:\n\u002BG_M18146_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M18146_IG40:\n\u002BG_M18146_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M18146_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M18146_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M18146_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M18146_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x08]\n        test     r12, r12\n-       je       SHORT G_M18146_IG42\n\u002B       je       SHORT G_M18146_IG39\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -499,11 \u002B479,11 @@ G_M18146_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M18146_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M18146_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M18146_IG43\n\u002B       je       SHORT G_M18146_IG40\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -513,13 \u002B493,13 @@ G_M18146_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M18146_IG43:\n\u002BG_M18146_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M18146_IG44:\n\u002BG_M18146_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1454, prolog size 65, PerfScore 166.77, instruction count 349, allocated bytes for code 1454 (MethodHash=4d61b91d) for method MongoDB.Driver.MongoDatabase:Aggregate[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)\n\u002B; Total bytes of code 1373, prolog size 65, PerfScore 157.40, instruction count 335, allocated bytes for code 1373 (MethodHash=4d61b91d) for method MongoDB.Driver.MongoDatabase:Aggregate[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1454,"DiffBytes":1373},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.RateCardSubscriptionService:ListAutoPagingAsync(Stripe.V2.Billing.RateCardSubscriptionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.RateCardSubscription]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.Billing.RateCardSubscriptionService:ListAutoPagingAsync(Stripe.V2.Billing.RateCardSubscriptionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.RateCardSubscription]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.RateCardSubscriptionService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.RateCardSubscriptionListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.RateCardSubscriptionListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.RateCardSubscription]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.RateCardSubscription]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.RateCardSubscription]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.RateCardSubscription]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M64032_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M64032_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/billing/rate_card_subscriptions\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M64032_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M64032_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.RateCardSubscription]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M64032_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M64032_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M64032_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.RateCardSubscription]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M64032_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M64032_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=4ae305df) for method Stripe.V2.Billing.RateCardSubscriptionService:ListAutoPagingAsync(Stripe.V2.Billing.RateCardSubscriptionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.RateCardSubscription]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=4ae305df) for method Stripe.V2.Billing.RateCardSubscriptionService:ListAutoPagingAsync(Stripe.V2.Billing.RateCardSubscriptionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.RateCardSubscription]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Objects.ELinq.CompiledELinqQueryState\u002BCreateDonateableExpressionVisitor:Replace(System.Linq.Expressions.LambdaExpression,System.Data.Entity.Core.Objects.ObjectContext,System.Object[]):System.Linq.Expressions.Expression (FullOpts)","Category":"improvement","Description":"626 -\u003E 574 bytes (-52)","ExtraInfo":null,"Diff":"@@ -21,24 \u002B21,24 @@\n ;* V10 tmp7         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V11 tmp8         [V11,T16] (  4,  3.50)     ref  -\u003E  rcx        \n ;  V12 tmp9         [V12,T02] (  4,  8   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Linq.Expressions.ParameterExpression,System.Object]\u003E\n-;  V13 tmp10        [V13,T04] (  3,  6   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Objects.ELinq.CompiledELinqQueryState\u002BCreateDonateableExpressionVisitor\u003E\n\u002B;  V13 tmp10        [V13,T03] (  3,  6   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Objects.ELinq.CompiledELinqQueryState\u002BCreateDonateableExpressionVisitor\u003E\n ;  V14 tmp11        [V14,T05] (  5,  5   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Collections.Generic.KeyValuePair\u00602[System.Linq.Expressions.ParameterExpression,System.Object],System.Object]\u003E\n ;  V15 tmp12        [V15,T06] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Collections.Generic.KeyValuePair\u00602[System.Linq.Expressions.ParameterExpression,System.Object],System.Linq.Expressions.ParameterExpression]\u003E\n ;  V16 tmp13        [V16,T00] (  6, 12   )     ref  -\u003E  [rbp-0x40]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.EntityUtil\u002B\u003CZip\u003Ed__4\u00602[System.Linq.Expressions.ParameterExpression,System.Object]\u003E\n ;  V17 tmp14        [V17,T11] (  2,  4   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.__Canon]\u003E\n-;  V18 tmp15        [V18,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Objects.ELinq.CompiledELinqQueryState\u002BCreateDonateableExpressionVisitor\u002B\u003C\u003Ec\u003E\n-;  V19 tmp16        [V19,T21] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Objects.ELinq.CompiledELinqQueryState\u002BCreateDonateableExpressionVisitor\u002B\u003C\u003Ec\u003E\n\u002B;  V18 tmp15        [V18,T18] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Objects.ELinq.CompiledELinqQueryState\u002BCreateDonateableExpressionVisitor\u002B\u003C\u003Ec\u003E\n\u002B;  V19 tmp16        [V19,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Objects.ELinq.CompiledELinqQueryState\u002BCreateDonateableExpressionVisitor\u002B\u003C\u003Ec\u003E\n ;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Collections.Generic.KeyValuePair\u00602[System.Linq.Expressions.ParameterExpression,System.Object]]\u003E\n ;* V21 tmp18        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[System.Collections.Generic.KeyValuePair\u00602[System.Linq.Expressions.ParameterExpression,System.Object],System.Linq.Expressions.ParameterExpression]\u003E\n ;* V22 tmp19        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[System.Collections.Generic.KeyValuePair\u00602[System.Linq.Expressions.ParameterExpression,System.Object],System.Object]\u003E\n-;  V23 tmp20        [V23,T03] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n-;  V24 tmp21        [V24    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V23 tmp20        [V23,T04] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V24 tmp21        [V24    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V25 tmp22        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V26 tmp23        [V26,T19] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n-;  V27 tmp24        [V27,T17] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V26 tmp23        [V26,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n\u002B;* V27 tmp24        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;* V28 tmp25        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n ;  V29 tmp26        [V29,T12] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V30 cse0         [V30,T18] (  3,  3   )    long  -\u003E  r13         \u0022CSE #05: moderate\u0022\n\u002B;  V30 cse0         [V30,T17] (  3,  3   )    long  -\u003E  r13         \u0022CSE #05: moderate\u0022\n ;  V31 rat0         [V31,T13] (  2,  4   )    long  -\u003E  rax         \u0022TLS field access\u0022\n ;  V32 rat1         [V32,T14] (  2,  4   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n@@ -140,37 \u002B140,18 @@ G_M48522_IG06:\n        mov      r14, rax\n        mov      rdi, rbx\n        call     [r13\u002B0x30]System.Linq.Expressions.LambdaExpression:GetOrMakeParameters():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]:this\n-       mov      r13, rax\n-       test     r13, r13\n-       je       G_M48522_IG11\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.ParameterExpression]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M48522_IG08\n-\t\t\t\t\t\t;; size=83 bbWeight=1 PerfScore 14.25\n-G_M48522_IG07:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M48522_IG09\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M48522_IG08:\n\u002B       je       G_M48522_IG08\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Linq.Expressions.ParameterExpression](System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.ParameterExpression],byref):System.Linq.Expressions.ParameterExpression\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M48522_IG09:\n\u002B       mov      rsi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       SHORT G_M48522_IG12\n\u002B       je       SHORT G_M48522_IG09\n        cmp      byte  ptr [r14], r14b\n        mov      rdi, r14\n-       mov      rsi, rax\n        mov      rdx, r15\n        mov      ecx, 2\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary\u00602[System.__Canon,System.__Canon]:TryInsert(System.__Canon,System.__Canon,byte):bool:this\n@@ -186,8 \u002B167,8 @@ G_M48522_IG09:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Expressions.EntityExpressionVisitor:Visit(System.Linq.Expressions.Expression):System.Linq.Expressions.Expression:this\n        call     [rax]System.Linq.Expressions.EntityExpressionVisitor:Visit(System.Linq.Expressions.Expression):System.Linq.Expressions.Expression:this\n        nop      \n-\t\t\t\t\t\t;; size=85 bbWeight=1 PerfScore 17.25\n-G_M48522_IG10:\n\u002B\t\t\t\t\t\t;; size=164 bbWeight=1 PerfScore 30.50\n\u002BG_M48522_IG07:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -197,17 \u002B178,17 @@ G_M48522_IG10:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M48522_IG11:\n\u002BG_M48522_IG08:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M48522_IG12:\n\u002BG_M48522_IG09:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 626, prolog size 25, PerfScore 95.00, instruction count 140, allocated bytes for code 626 (MethodHash=1eea4275) for method System.Data.Entity.Core.Objects.ELinq.CompiledELinqQueryState\u002BCreateDonateableExpressionVisitor:Replace(System.Linq.Expressions.LambdaExpression,System.Data.Entity.Core.Objects.ObjectContext,System.Object[]):System.Linq.Expressions.Expression (FullOpts)\n\u002B; Total bytes of code 574, prolog size 25, PerfScore 87.00, instruction count 127, allocated bytes for code 574 (MethodHash=1eea4275) for method System.Data.Entity.Core.Objects.ELinq.CompiledELinqQueryState\u002BCreateDonateableExpressionVisitor:Replace(System.Linq.Expressions.LambdaExpression,System.Data.Entity.Core.Objects.ObjectContext,System.Object[]):System.Linq.Expressions.Expression (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":626,"DiffBytes":574},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase:Aggregate[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)","Category":"improvement","Description":"1,454 -\u003E 1,373 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,int]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[int]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[int]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.NoPipelineInputSerializer\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -37,18 \u002B37,18 @@\n ;* V26 tmp16        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V28 tmp18        [V28    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V29 tmp19        [V29,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V30 tmp20        [V30,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V31 tmp21        [V31    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V32 tmp22        [V32,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V33 tmp23        [V33,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp19        [V29,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V30 tmp20        [V30,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V31 tmp21        [V31    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V32 tmp22        [V32,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V34 tmp24        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V35 tmp25        [V35,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V37 tmp27        [V37,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V37 tmp27        [V37,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V38 tmp28        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V39 tmp29        [V39,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V40 tmp30        [V40,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V39 tmp29        [V39,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V40 tmp30        [V40,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V41 tmp31        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V42 tmp32        [V42,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V43 tmp33        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -59,11 \u002B59,11 @@\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[int]\u003E\n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V50 tmp40        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V51 tmp41        [V51,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V52 tmp42        [V52,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V53 tmp43        [V53,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V54 tmp44        [V54,T27] (  2,  1   )     ref  -\u003E  r12         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[int]\u003E\n-;  V55 tmp45        [V55,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoDatabaseSettings\u003E\n\u002B;  V51 tmp41        [V51,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V52 tmp42        [V52,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V53 tmp43        [V53,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V54 tmp44        [V54,T26] (  2,  1   )     ref  -\u003E  r12         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[int]\u003E\n\u002B;  V55 tmp45        [V55,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoDatabaseSettings\u003E\n ;* V56 tmp46        [V56    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V57 tmp47        [V57,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V58 tmp48        [V58    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -72,14 \u002B72,14 @@\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V62 tmp52        [V62    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V63 tmp53        [V63,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V67 tmp57        [V67,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V13.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V67 tmp57        [V67,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V13.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V20._name (fldOffset=0x0)\u0022 P-DEP\n ;* V69 tmp59        [V69    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V20._value (fldOffset=0x8)\u0022 P-DEP\n-;  V70 tmp60        [V70,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V21._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 8.75\n-G_M8036_IG25:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M8036_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M8036_IG26\n\u002B       je       SHORT G_M8036_IG23\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -336,10 \u002B316,10 @@ G_M8036_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M8036_IG26:\n\u002BG_M8036_IG23:\n        mov      rax, r12\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M8036_IG27:\n\u002BG_M8036_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -349,7 \u002B329,7 @@ G_M8036_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M8036_IG28:\n\u002BG_M8036_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -366,9 \u002B346,9 @@ G_M8036_IG28:\n        xor      r9, r9\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoDatabase:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoDatabase:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=78 bbWeight=0.50 PerfScore 8.62\n-G_M8036_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=75 bbWeight=0.50 PerfScore 8.62\n\u002BG_M8036_IG26:\n        mov      r12, gword ptr [r15\u002B0x20]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -376,21 \u002B356,21 @@ G_M8036_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M8036_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M8036_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M8036_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M8036_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M8036_IG31\n\u002B       je       SHORT G_M8036_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -399,13 \u002B379,13 @@ G_M8036_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M8036_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M8036_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M8036_IG32\n\u002B       je       SHORT G_M8036_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -414,8 \u002B394,8 @@ G_M8036_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M8036_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M8036_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -424,7 \u002B404,7 @@ G_M8036_IG32:\n        call     [rax]MongoDB.Driver.MongoDatabase:CreateAggregateToCollectionResultCursor[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[int],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[int]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M8036_IG33:\n\u002BG_M8036_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -434,22 \u002B414,22 @@ G_M8036_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M8036_IG34:\n\u002BG_M8036_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M8036_IG35:\n\u002BG_M8036_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M8036_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M8036_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M8036_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M8036_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M8036_IG37\n\u002B       je       SHORT G_M8036_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -458,12 \u002B438,12 @@ G_M8036_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M8036_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M8036_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M8036_IG38\n\u002B       je       SHORT G_M8036_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -472,24 \u002B452,24 @@ G_M8036_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M8036_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M8036_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M8036_IG39:\n\u002BG_M8036_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M8036_IG40:\n\u002BG_M8036_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M8036_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M8036_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M8036_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M8036_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x08]\n        test     r12, r12\n-       je       SHORT G_M8036_IG42\n\u002B       je       SHORT G_M8036_IG39\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -499,11 \u002B479,11 @@ G_M8036_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M8036_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M8036_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M8036_IG43\n\u002B       je       SHORT G_M8036_IG40\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -513,13 \u002B493,13 @@ G_M8036_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M8036_IG43:\n\u002BG_M8036_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M8036_IG44:\n\u002BG_M8036_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1454, prolog size 65, PerfScore 166.77, instruction count 349, allocated bytes for code 1454 (MethodHash=4ad7e09b) for method MongoDB.Driver.MongoDatabase:Aggregate[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)\n\u002B; Total bytes of code 1373, prolog size 65, PerfScore 157.40, instruction count 335, allocated bytes for code 1373 (MethodHash=4ad7e09b) for method MongoDB.Driver.MongoDatabase:Aggregate[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1454,"DiffBytes":1373},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Commerce.ProductCatalog.ImportService:ListAutoPagingAsync(Stripe.V2.Commerce.ProductCatalog.ImportListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Commerce.ProductCatalogImport]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.Commerce.ProductCatalog.ImportService:ListAutoPagingAsync(Stripe.V2.Commerce.ProductCatalog.ImportListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Commerce.ProductCatalogImport]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Commerce.ProductCatalog.ImportService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Commerce.ProductCatalog.ImportListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Commerce.ProductCatalog.ImportListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Commerce.ProductCatalogImport]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Commerce.ProductCatalogImport]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Commerce.ProductCatalogImport]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Commerce.ProductCatalogImport]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M25414_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M25414_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/commerce/product_catalog/imports\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M25414_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M25414_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Commerce.ProductCatalogImport]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M25414_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M25414_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M25414_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Commerce.ProductCatalogImport]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M25414_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M25414_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=49189cb9) for method Stripe.V2.Commerce.ProductCatalog.ImportService:ListAutoPagingAsync(Stripe.V2.Commerce.ProductCatalog.ImportListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Commerce.ProductCatalogImport]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=49189cb9) for method Stripe.V2.Commerce.ProductCatalog.ImportService:ListAutoPagingAsync(Stripe.V2.Commerce.ProductCatalog.ImportListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Commerce.ProductCatalogImport]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Infrastructure.DependencyResolution.DbConfigurationFinder:TryFindConfigurationType(System.Reflection.Assembly,System.Type,System.Collections.Generic.IEnumerable\u00601[System.Type]):System.Type:this (FullOpts)","Category":"improvement","Description":"1,010 -\u003E 958 bytes (-52)","ExtraInfo":null,"Diff":"@@ -12,39 \u002B12,39 @@\n ;  V01 arg1         [V01,T03] (  3,  2.50)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Reflection.Assembly\u003E\n ;  V02 arg2         [V02,T00] (  4,  3.50)     ref  -\u003E  rdx         class-hnd single-def \u003CSystem.Type\u003E\n ;  V03 arg3         [V03,T04] (  3,  2.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Type]\u003E\n-;  V04 loc0         [V04,T09] (  5,  2   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[System.Type]\u003E\n\u002B;  V04 loc0         [V04,T18] (  4,  1.50)     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[System.Type]\u003E\n ;* V05 loc1         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Type\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V07 tmp1         [V07,T10] (  4,  2   )     ref  -\u003E  r15        \n-;  V08 tmp2         [V08,T15] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Type,bool]\u003E\n\u002B;  V07 tmp1         [V07,T09] (  4,  2   )     ref  -\u003E  r15        \n\u002B;  V08 tmp2         [V08,T13] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Type,bool]\u003E\n ;* V09 tmp3         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V10 tmp4         [V10,T11] (  4,  2   )     ref  -\u003E  rdx        \n-;  V11 tmp5         [V11,T24] (  2,  0   )     ref  -\u003E  rbx         class-hnd single-def \u0022non-inline candidate call\u0022 \u003CSystem.Reflection.Assembly\u003E\n-;  V12 tmp6         [V12,T22] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp4         [V10,T10] (  4,  2   )     ref  -\u003E  rdx        \n\u002B;  V11 tmp5         [V11,T23] (  2,  0   )     ref  -\u003E  rbx         class-hnd single-def \u0022non-inline candidate call\u0022 \u003CSystem.Reflection.Assembly\u003E\n\u002B;  V12 tmp6         [V12,T21] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;  V13 tmp7         [V13,T01] (  5,  5   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Type,bool]\u003E\n-;  V14 tmp8         [V14,T16] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.DbConfigurationTypeAttribute,System.Type]\u003E\n-;  V15 tmp9         [V15,T17] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.DbConfigurationTypeAttribute]\u003E\n\u002B;  V14 tmp8         [V14,T14] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.DbConfigurationTypeAttribute,System.Type]\u003E\n\u002B;  V15 tmp9         [V15,T15] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.DbConfigurationTypeAttribute]\u003E\n ;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V17 tmp11        [V17,T12] (  4,  2   )     ref  -\u003E  rdx        \n-;  V18 tmp12        [V18,T25] (  2,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n-;  V19 tmp13        [V19,T23] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V17 tmp11        [V17,T11] (  4,  2   )     ref  -\u003E  rdx        \n\u002B;  V18 tmp12        [V18,T24] (  2,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022non-inline candidate call\u0022 \u003CSystem.String\u003E\n\u002B;  V19 tmp13        [V19,T22] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;  V20 tmp14        [V20,T02] (  5,  5   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.DbConfigurationTypeAttribute,System.Type]\u003E\n ;  V21 tmp15        [V21,T06] (  3,  3   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Infrastructure.DependencyResolution.DbConfigurationFinder\u002B\u003C\u003Ec\u003E\n ;  V22 tmp16        [V22,T05] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.__Canon]\u003E\n ;  V23 tmp17        [V23    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;  V24 tmp18        [V24,T08] (  7,  2.50)     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Type\u003E\n-;  V25 tmp19        [V25,T13] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Type]\u003E\n\u002B;  V25 tmp19        [V25,T12] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Type]\u003E\n ;  V26 tmp20        [V26,T07] (  3,  3   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Infrastructure.DependencyResolution.DbConfigurationFinder\u002B\u003C\u003Ec\u003E\n-;  V27 tmp21        [V27    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V28 tmp22        [V28,T20] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Type\u003E\n-;  V29 tmp23        [V29,T14] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Type]\u003E\n-;  V30 tmp24        [V30,T18] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V31 tmp25        [V31,T19] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V32 tmp26        [V32,T26] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V33 tmp27        [V33,T27] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V34 tmp28        [V34,T28] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V35 tmp29        [V35,T29] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;* V36 cse0         [V36,T21] (  0,  0   )   byref  -\u003E  zero-ref    multi-def \u0022CSE #02: aggressive\u0022\n\u002B;  V27 tmp21        [V27    ] (  1,  0.50)   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V28 tmp22        [V28,T19] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Type\u003E\n\u002B;* V29 tmp23        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Type]\u003E\n\u002B;  V30 tmp24        [V30,T16] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V31 tmp25        [V31,T17] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V32 tmp26        [V32,T25] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V33 tmp27        [V33,T26] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V34 tmp28        [V34,T27] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V35 tmp29        [V35,T28] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;* V36 cse0         [V36,T20] (  0,  0   )   byref  -\u003E  zero-ref    multi-def \u0022CSE #02: aggressive\u0022\n ;\n ; Lcl frame size = 16\n \n@@ -79,7 \u002B79,7 @@ G_M26455_IG03:\n        mov      r14, rax\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M26455_IG17\n\u002B       je       G_M26455_IG15\n \t\t\t\t\t\t;; size=77 bbWeight=0.50 PerfScore 5.62\n G_M26455_IG04:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Data.Entity.Infrastructure.DependencyResolution.DbConfigurationFinder\u002B\u003C\u003Ec:\u003C\u003E9__1_1\n@@ -92,7 \u002B92,7 @@ G_M26455_IG04:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Data.Entity.Infrastructure.DependencyResolution.DbConfigurationFinder\u002B\u003C\u003Ec:\u003C\u003E9\n        mov      rsi, gword ptr [rdi]\n        test     rsi, rsi\n-       je       G_M26455_IG18\n\u002B       je       G_M26455_IG16\n        lea      rdi, bword ptr [r13\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, 0xD1FFAB1E      ; code for System.Data.Entity.Infrastructure.DependencyResolution.DbConfigurationFinder\u002B\u003C\u003Ec:\u003CTryFindConfigurationType\u003Eb__1_1(System.Data.Entity.DbConfigurationTypeAttribute):System.Type:this\n@@ -109,7 \u002B109,7 @@ G_M26455_IG05:\n        call     [rax]System.Linq.Enumerable:Select[System.__Canon,System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Func\u00602[System.__Canon,System.__Canon]):System.Collections.Generic.IEnumerable\u00601[System.__Canon]\n        mov      r14, rax\n        test     r14, r14\n-       je       G_M26455_IG19\n\u002B       je       G_M26455_IG17\n        mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Type]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n@@ -134,7 \u002B134,7 @@ G_M26455_IG06:\n \t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n G_M26455_IG07:\n        test     r13, r13\n-       jne      G_M26455_IG15\n\u002B       jne      G_M26455_IG13\n \t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 0.62\n G_M26455_IG08:\n        test     r15, r15\n@@ -147,7 \u002B147,7 @@ G_M26455_IG08:\n G_M26455_IG09:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M26455_IG21\n\u002B       je       G_M26455_IG19\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n G_M26455_IG10:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Data.Entity.Infrastructure.DependencyResolution.DbConfigurationFinder\u002B\u003C\u003Ec:\u003C\u003E9__1_0\n@@ -160,7 \u002B160,7 @@ G_M26455_IG10:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Data.Entity.Infrastructure.DependencyResolution.DbConfigurationFinder\u002B\u003C\u003Ec:\u003C\u003E9\n        mov      rsi, gword ptr [rdi]\n        test     rsi, rsi\n-       je       G_M26455_IG18\n\u002B       je       G_M26455_IG16\n        lea      rdi, bword ptr [r13\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, 0xD1FFAB1E      ; code for System.Data.Entity.Infrastructure.DependencyResolution.DbConfigurationFinder\u002B\u003C\u003Ec:\u003CTryFindConfigurationType\u003Eb__1_0(System.Type):bool:this\n@@ -179,32 \u002B179,33 @@ G_M26455_IG11:\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:ToList[System.Type](System.Collections.Generic.IEnumerable\u00601[System.Type]):System.Collections.Generic.List\u00601[System.Type]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:ToList[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.Collections.Generic.List\u00601[System.__Canon]\n        call     [rax]System.Linq.Enumerable:ToList[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.Collections.Generic.List\u00601[System.__Canon]\n-       mov      rbx, rax\n-       cmp      dword ptr [rbx\u002B0x10], 1\n-       jg       G_M26455_IG22\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Type]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M26455_IG12\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M26455_IG13\n-\t\t\t\t\t\t;; size=112 bbWeight=0.50 PerfScore 12.75\n-G_M26455_IG12:\n\u002B       cmp      dword ptr [rax\u002B0x10], 1\n\u002B       jg       G_M26455_IG20\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, rbx\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Type](System.Collections.Generic.IEnumerable\u00601[System.Type],byref):System.Type\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M26455_IG13:\n        nop      \n-\t\t\t\t\t\t;; size=1 bbWeight=0.50 PerfScore 0.12\n\u002B\t\t\t\t\t\t;; size=90 bbWeight=0.50 PerfScore 7.50\n\u002BG_M26455_IG12:\n\u002B       add      rsp, 16\n\u002B       pop      rbx\n\u002B       pop      r13\n\u002B       pop      r14\n\u002B       pop      r15\n\u002B       pop      rbp\n\u002B       ret      \n\u002B\t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 1.88\n\u002BG_M26455_IG13:\n\u002B       mov      rsi, r13\n\u002B       mov      rdi, 0xD1FFAB1E      ; \u0027System.Data.Entity.DbConfiguration\u0027\n\u002B       mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:IsAssignableFrom(System.Type):bool:this\n\u002B       call     [rax]System.RuntimeType:IsAssignableFrom(System.Type):bool:this\n\u002B       test     eax, eax\n\u002B       je       SHORT G_M26455_IG18\n\u002B       mov      rax, r13\n\u002B\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.62\n G_M26455_IG14:\n        add      rsp, 16\n        pop      rbx\n@@ -215,41 \u002B216,23 @@ G_M26455_IG14:\n        ret      \n \t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 1.88\n G_M26455_IG15:\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; \u0027System.Data.Entity.DbConfiguration\u0027\n-       mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:IsAssignableFrom(System.Type):bool:this\n-       call     [rax]System.RuntimeType:IsAssignableFrom(System.Type):bool:this\n-       test     eax, eax\n-       je       SHORT G_M26455_IG20\n-       mov      rax, r13\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.62\n-G_M26455_IG16:\n-       add      rsp, 16\n-       pop      rbx\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       ret      \n-\t\t\t\t\t\t;; size=13 bbWeight=0.50 PerfScore 1.88\n-G_M26455_IG17:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Infrastructure.DependencyResolution.DbConfigurationFinder\u002B\u003C\u003Ec\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M26455_IG04\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M26455_IG18:\n\u002BG_M26455_IG16:\n        mov      rax, 0xD1FFAB1E      ; code for System.Delegate:ThrowNullThisInDelegateToInstance()\n        call     [rax]System.Delegate:ThrowNullThisInDelegateToInstance()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M26455_IG19:\n\u002BG_M26455_IG17:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M26455_IG20:\n\u002BG_M26455_IG18:\n        mov      rdi, r13\n        mov      rax, qword ptr [r13]\n        mov      rax, qword ptr [rax\u002B0x40]\n@@ -273,14 \u002B256,14 @@ G_M26455_IG20:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=102 bbWeight=0 PerfScore 0.00\n-G_M26455_IG21:\n\u002BG_M26455_IG19:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Infrastructure.DependencyResolution.DbConfigurationFinder\u002B\u003C\u003Ec\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M26455_IG10\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M26455_IG22:\n-       mov      rsi, rbx\n\u002BG_M26455_IG20:\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:First[System.Type](System.Collections.Generic.IEnumerable\u00601[System.Type]):System.Type\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:First[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.__Canon\n        call     [rax]System.Linq.Enumerable:First[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.__Canon\n@@ -307,5 \u002B290,5 @@ G_M26455_IG22:\n        int3     \n \t\t\t\t\t\t;; size=128 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1010, prolog size 27, PerfScore 66.88, instruction count 214, allocated bytes for code 1010 (MethodHash=581198a8) for method System.Data.Entity.Infrastructure.DependencyResolution.DbConfigurationFinder:TryFindConfigurationType(System.Reflection.Assembly,System.Type,System.Collections.Generic.IEnumerable\u00601[System.Type]):System.Type:this (FullOpts)\n\u002B; Total bytes of code 958, prolog size 27, PerfScore 59.38, instruction count 201, allocated bytes for code 958 (MethodHash=581198a8) for method System.Data.Entity.Infrastructure.DependencyResolution.DbConfigurationFinder:TryFindConfigurationType(System.Reflection.Assembly,System.Type,System.Collections.Generic.IEnumerable\u00601[System.Type]):System.Type:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1010,"DiffBytes":958},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase:Aggregate[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)","Category":"improvement","Description":"1,454 -\u003E 1,373 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,long]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[long]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[long]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.NoPipelineInputSerializer\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -37,18 \u002B37,18 @@\n ;* V26 tmp16        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V28 tmp18        [V28    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V29 tmp19        [V29,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V30 tmp20        [V30,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V31 tmp21        [V31    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V32 tmp22        [V32,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V33 tmp23        [V33,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp19        [V29,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V30 tmp20        [V30,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V31 tmp21        [V31    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V32 tmp22        [V32,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V34 tmp24        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V35 tmp25        [V35,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V37 tmp27        [V37,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V37 tmp27        [V37,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V38 tmp28        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V39 tmp29        [V39,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V40 tmp30        [V40,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V39 tmp29        [V39,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V40 tmp30        [V40,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V41 tmp31        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V42 tmp32        [V42,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V43 tmp33        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -59,11 \u002B59,11 @@\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[long]\u003E\n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V50 tmp40        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V51 tmp41        [V51,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V52 tmp42        [V52,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V53 tmp43        [V53,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V54 tmp44        [V54,T27] (  2,  1   )     ref  -\u003E  r12         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[long]\u003E\n-;  V55 tmp45        [V55,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoDatabaseSettings\u003E\n\u002B;  V51 tmp41        [V51,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V52 tmp42        [V52,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V53 tmp43        [V53,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V54 tmp44        [V54,T26] (  2,  1   )     ref  -\u003E  r12         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[long]\u003E\n\u002B;  V55 tmp45        [V55,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoDatabaseSettings\u003E\n ;* V56 tmp46        [V56    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V57 tmp47        [V57,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V58 tmp48        [V58    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -72,14 \u002B72,14 @@\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V62 tmp52        [V62    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V63 tmp53        [V63,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V67 tmp57        [V67,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V13.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V67 tmp57        [V67,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V13.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V20._name (fldOffset=0x0)\u0022 P-DEP\n ;* V69 tmp59        [V69    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V20._value (fldOffset=0x8)\u0022 P-DEP\n-;  V70 tmp60        [V70,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V21._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 8.75\n-G_M27837_IG25:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M27837_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M27837_IG26\n\u002B       je       SHORT G_M27837_IG23\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -336,10 \u002B316,10 @@ G_M27837_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M27837_IG26:\n\u002BG_M27837_IG23:\n        mov      rax, r12\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M27837_IG27:\n\u002BG_M27837_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -349,7 \u002B329,7 @@ G_M27837_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M27837_IG28:\n\u002BG_M27837_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -366,9 \u002B346,9 @@ G_M27837_IG28:\n        xor      r9, r9\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoDatabase:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoDatabase:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=78 bbWeight=0.50 PerfScore 8.62\n-G_M27837_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=75 bbWeight=0.50 PerfScore 8.62\n\u002BG_M27837_IG26:\n        mov      r12, gword ptr [r15\u002B0x20]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -376,21 \u002B356,21 @@ G_M27837_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M27837_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M27837_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M27837_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M27837_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M27837_IG31\n\u002B       je       SHORT G_M27837_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -399,13 \u002B379,13 @@ G_M27837_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M27837_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M27837_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M27837_IG32\n\u002B       je       SHORT G_M27837_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -414,8 \u002B394,8 @@ G_M27837_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M27837_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M27837_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -424,7 \u002B404,7 @@ G_M27837_IG32:\n        call     [rax]MongoDB.Driver.MongoDatabase:CreateAggregateToCollectionResultCursor[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[long],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[long]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M27837_IG33:\n\u002BG_M27837_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -434,22 \u002B414,22 @@ G_M27837_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M27837_IG34:\n\u002BG_M27837_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M27837_IG35:\n\u002BG_M27837_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M27837_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M27837_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M27837_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M27837_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M27837_IG37\n\u002B       je       SHORT G_M27837_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -458,12 \u002B438,12 @@ G_M27837_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M27837_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M27837_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M27837_IG38\n\u002B       je       SHORT G_M27837_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -472,24 \u002B452,24 @@ G_M27837_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M27837_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M27837_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M27837_IG39:\n\u002BG_M27837_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M27837_IG40:\n\u002BG_M27837_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M27837_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M27837_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M27837_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M27837_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x08]\n        test     r12, r12\n-       je       SHORT G_M27837_IG42\n\u002B       je       SHORT G_M27837_IG39\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -499,11 \u002B479,11 @@ G_M27837_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M27837_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M27837_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M27837_IG43\n\u002B       je       SHORT G_M27837_IG40\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -513,13 \u002B493,13 @@ G_M27837_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M27837_IG43:\n\u002BG_M27837_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M27837_IG44:\n\u002BG_M27837_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1454, prolog size 65, PerfScore 166.77, instruction count 349, allocated bytes for code 1454 (MethodHash=760d9342) for method MongoDB.Driver.MongoDatabase:Aggregate[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)\n\u002B; Total bytes of code 1373, prolog size 65, PerfScore 157.40, instruction count 335, allocated bytes for code 1373 (MethodHash=760d9342) for method MongoDB.Driver.MongoDatabase:Aggregate[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1454,"DiffBytes":1373},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Core.AccountService:ListAutoPagingAsync(Stripe.V2.Core.AccountListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.Account]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.Core.AccountService:ListAutoPagingAsync(Stripe.V2.Core.AccountListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.Account]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Core.AccountService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Core.AccountListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Core.AccountListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.Account]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.Account]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.Account]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.Account]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M11684_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M11684_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/core/accounts\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M11684_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M11684_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.Account]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M11684_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M11684_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M11684_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.Account]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M11684_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M11684_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=6e8dd25b) for method Stripe.V2.Core.AccountService:ListAutoPagingAsync(Stripe.V2.Core.AccountListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.Account]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=6e8dd25b) for method Stripe.V2.Core.AccountService:ListAutoPagingAsync(Stripe.V2.Core.AccountListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.Account]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Migrations.History.HistoryRepository:GetPendingMigrations(System.Collections.Generic.IEnumerable\u00601[System.String]):System.Collections.Generic.IEnumerable\u00601[System.String]:this (FullOpts)","Category":"improvement","Description":"1,734 -\u003E 1,682 bytes (-52)","ExtraInfo":null,"Diff":"@@ -11,20 \u002B11,20 @@\n ;  V00 this         [V00,T00] ( 15,  9   )     ref  -\u003E  [rbp-0x50]  this class-hnd EH-live single-def \u003CSystem.Data.Entity.Migrations.History.HistoryRepository\u003E\n ;  V01 arg1         [V01,T02] (  9,  5.50)     ref  -\u003E  rbx         class-hnd \u003CSystem.Collections.Generic.IEnumerable\u00601[System.String]\u003E\n ;  V02 loc0         [V02,T18] (  6,  2.50)     ref  -\u003E  [rbp-0x58]  do-not-enreg[M] class-hnd EH-live \u003CSystem.Data.Common.DbConnection\u003E\n-;  V03 loc1         [V03,T51] (  3,  0   )     ref  -\u003E  [rbp-0x60]  class-hnd EH-live single-def \u003CSystem.Data.Entity.Migrations.History.HistoryContext\u003E\n-;  V04 loc2         [V04,T19] (  5,  2.50)     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[System.String]\u003E\n-;  V05 loc3         [V05,T37] (  3,  1.50)     ref  -\u003E  r12         class-hnd \u003CSystem.Collections.Generic.IEnumerable\u00601[System.String]\u003E\n\u002B;  V03 loc1         [V03,T50] (  3,  0   )     ref  -\u003E  [rbp-0x60]  class-hnd EH-live single-def \u003CSystem.Data.Entity.Migrations.History.HistoryContext\u003E\n\u002B;  V04 loc2         [V04,T20] (  4,  2   )     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[System.String]\u003E\n\u002B;  V05 loc3         [V05,T36] (  3,  1.50)     ref  -\u003E  r12         class-hnd \u003CSystem.Collections.Generic.IEnumerable\u00601[System.String]\u003E\n ;* V06 loc4         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CSystem.String\u003E\n ;* V07 loc5         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CSystem.String\u003E\n-;  V08 loc6         [V08,T52] (  2,  0   )     ref  -\u003E  [rbp-0x68]  class-hnd exact EH-live single-def \u003CSystem.Transactions.TransactionScope\u003E\n-;  V09 loc7         [V09,T38] (  3,  1.50)     ref  -\u003E  r12         class-hnd single-def \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n-;  V10 loc8         [V10,T44] (  2,  1   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[System.String]\u003E\n\u002B;  V08 loc6         [V08,T51] (  2,  0   )     ref  -\u003E  [rbp-0x68]  class-hnd exact EH-live single-def \u003CSystem.Transactions.TransactionScope\u003E\n\u002B;  V09 loc7         [V09,T37] (  3,  1.50)     ref  -\u003E  r12         class-hnd single-def \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n\u002B;  V10 loc8         [V10,T43] (  2,  1   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[System.String]\u003E\n ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V12 tmp1         [V12,T07] (  4,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Transactions.TransactionScope\u003E\n-;  V13 tmp2         [V13,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Linq.IQueryable\u00601[System.Data.Entity.Migrations.History.HistoryRow]\u003E\n\u002B;  V13 tmp2         [V13,T22] (  2,  2   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Linq.IQueryable\u00601[System.Data.Entity.Migrations.History.HistoryRow]\u003E\n ;* V14 tmp3         [V14    ] (  0,  0   )  struct ( 8) zero-ref    multireg-ret single-def \u0022spilled call-like call argument\u0022 \u003CSystem.RuntimeMethodHandle\u003E\n ;  V15 tmp4         [V15,T12] (  3,  3   )     ref  -\u003E  [rbp-0x70]  class-hnd exact spill-single-def \u0022NewArr temp\u0022 \u003CSystem.Linq.Expressions.ParameterExpression[]\u003E\n-;  V16 tmp5         [V16,T24] (  2,  2   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022impSpillLclRefs\u0022 \u003CSystem.Linq.Expressions.MemberExpression\u003E\n\u002B;  V16 tmp5         [V16,T23] (  2,  2   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022impSpillLclRefs\u0022 \u003CSystem.Linq.Expressions.MemberExpression\u003E\n ;  V17 tmp6         [V17,T08] (  4,  4   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.String,System.String]\u003E\n ;  V18 tmp7         [V18,T03] (  6,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n ;  V19 tmp8         [V19,T04] (  6,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CSystem.String\u003E\n@@ -38,46 \u002B38,46 @@\n ;  V27 tmp16        [V27,T09] (  7,  3.50)     ref  -\u003E  r15         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Migrations.History.HistoryContext\u003E\n ;* V28 tmp17        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Common.DbTransaction\u003E\n ;  V29 tmp18        [V29,T13] (  3,  3   )     ref  -\u003E  r12         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Type\u003E\n-;  V30 tmp19        [V30,T43] (  3,  1.50)   ubyte  -\u003E  [rbp-0x2C]  spill-single-def \u0022Inline stloc first use temp\u0022\n\u002B;  V30 tmp19        [V30,T42] (  3,  1.50)   ubyte  -\u003E  [rbp-0x2C]  spill-single-def \u0022Inline stloc first use temp\u0022\n ;* V31 tmp20        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u00601[System.Func\u00602[System.Data.Entity.Migrations.History.HistoryRow,System.String]]\u003E\n-;  V32 tmp21        [V32,T39] (  3,  1.50)     ref  -\u003E  r12         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n\u002B;  V32 tmp21        [V32,T38] (  3,  1.50)     ref  -\u003E  r12         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;  V33 tmp22        [V33    ] (  3,  3   )     ref  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n ;  V34 tmp23        [V34,T01] (  8,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Linq.Enumerable\u002B\u003CExceptIterator\u003Ed__88\u00601[System.String]\u003E\n-;  V35 tmp24        [V35    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V36 tmp25        [V36,T05] (  9,  4.50)     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n-;  V37 tmp26        [V37,T21] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n\u002B;  V35 tmp24        [V35    ] (  1,  0.50)   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V36 tmp25        [V36,T05] (  8,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n\u002B;* V37 tmp26        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n ;  V38 tmp27        [V38    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;  V39 tmp28        [V39,T06] (  8,  4   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n-;  V40 tmp29        [V40,T22] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n-;  V41 tmp30        [V41,T46] (  2,  1   )   ubyte  -\u003E  rax         \u0022Inline return value spill temp\u0022\n-;  V42 tmp31        [V42,T25] (  2,  2   )   byref  -\u003E  rdi         single-def \u0022impAppendStmt\u0022\n\u002B;  V40 tmp29        [V40,T21] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n\u002B;  V41 tmp30        [V41,T45] (  2,  1   )   ubyte  -\u003E  rax         \u0022Inline return value spill temp\u0022\n\u002B;  V42 tmp31        [V42,T24] (  2,  2   )   byref  -\u003E  rdi         single-def \u0022impAppendStmt\u0022\n ;  V43 tmp32        [V43,T10] (  6,  3   )     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n-;  V44 tmp33        [V44,T40] (  3,  1.50)     ref  -\u003E  rax         class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Resources.EntityRes\u003E\n\u002B;  V44 tmp33        [V44,T39] (  3,  1.50)     ref  -\u003E  rax         class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Resources.EntityRes\u003E\n ;* V45 tmp34        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Resources.ResourceManager\u003E\n-;  V46 tmp35        [V46,T47] (  2,  1   )   ubyte  -\u003E  rax         \u0022Inline return value spill temp\u0022\n-;  V47 tmp36        [V47,T26] (  2,  2   )   byref  -\u003E  rdi         single-def \u0022impAppendStmt\u0022\n\u002B;  V46 tmp35        [V46,T46] (  2,  1   )   ubyte  -\u003E  rax         \u0022Inline return value spill temp\u0022\n\u002B;  V47 tmp36        [V47,T25] (  2,  2   )   byref  -\u003E  rdi         single-def \u0022impAppendStmt\u0022\n ;  V48 tmp37        [V48,T11] (  6,  3   )     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n-;  V49 tmp38        [V49,T41] (  3,  1.50)     ref  -\u003E  rax         class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Resources.EntityRes\u003E\n\u002B;  V49 tmp38        [V49,T40] (  3,  1.50)     ref  -\u003E  rax         class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Resources.EntityRes\u003E\n ;* V50 tmp39        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Resources.ResourceManager\u003E\n-;  V51 tmp40        [V51,T48] (  2,  1   )   ubyte  -\u003E  rax         \u0022Inline return value spill temp\u0022\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=71 bbWeight=0.50 PerfScore 10.12\n-G_M29068_IG21:\n\u002BG_M29068_IG19:\n        xor      rsi, rsi\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M29068_IG22:\n\u002BG_M29068_IG20:\n        cmp      r13, rsi\n-       je       SHORT G_M29068_IG23\n\u002B       je       SHORT G_M29068_IG21\n        test     r13, r13\n-       je       G_M29068_IG27\n\u002B       je       G_M29068_IG25\n        test     rsi, rsi\n-       je       G_M29068_IG27\n\u002B       je       G_M29068_IG25\n        mov      edx, dword ptr [r13\u002B0x08]\n        cmp      edx, dword ptr [rsi\u002B0x08]\n-       jne      G_M29068_IG27\n\u002B       jne      G_M29068_IG25\n        lea      rdi, bword ptr [r13\u002B0x0C]\n        mov      edx, dword ptr [r13\u002B0x08]\n        add      edx, edx\n@@ -421,11 \u002B404,11 @@ G_M29068_IG22:\n        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:SequenceEqual(byref,byref,nuint):bool\n        call     [rax]System.SpanHelpers:SequenceEqual(byref,byref,nuint):bool\n        test     eax, eax\n-       je       G_M29068_IG27\n\u002B       je       G_M29068_IG25\n \t\t\t\t\t\t;; size=70 bbWeight=0.50 PerfScore 8.12\n-G_M29068_IG23:\n\u002BG_M29068_IG21:\n        test     rbx, rbx\n-       je       G_M29068_IG27\n\u002B       je       G_M29068_IG25\n        mov      rdi, rbx\n        mov      esi, 16\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Substring(int):System.String:this\n@@ -434,7 \u002B417,7 @@ G_M29068_IG23:\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Resources.EntityRes:GetLoader():System.Data.Entity.Resources.EntityRes\n        call     [rax]System.Data.Entity.Resources.EntityRes:GetLoader():System.Data.Entity.Resources.EntityRes\n        test     rax, rax\n-       je       SHORT G_M29068_IG24\n\u002B       je       SHORT G_M29068_IG22\n        mov      rdi, gword ptr [rax\u002B0x08]\n        mov      rsi, 0xD1FFAB1E      ; \u0027InitialCreate\u0027\n        xor      rdx, rdx\n@@ -442,21 \u002B425,21 @@ G_M29068_IG23:\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x28]System.Resources.ResourceManager:GetString(System.String,System.Globalization.CultureInfo):System.String:this\n        mov      rsi, rax\n-       jmp      SHORT G_M29068_IG25\n\u002B       jmp      SHORT G_M29068_IG23\n \t\t\t\t\t\t;; size=80 bbWeight=0.50 PerfScore 10.75\n-G_M29068_IG24:\n\u002BG_M29068_IG22:\n        xor      rsi, rsi\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M29068_IG25:\n\u002BG_M29068_IG23:\n        cmp      rbx, rsi\n-       je       SHORT G_M29068_IG26\n\u002B       je       SHORT G_M29068_IG24\n        test     rbx, rbx\n-       je       SHORT G_M29068_IG27\n\u002B       je       SHORT G_M29068_IG25\n        test     rsi, rsi\n-       je       SHORT G_M29068_IG27\n\u002B       je       SHORT G_M29068_IG25\n        mov      edx, dword ptr [rbx\u002B0x08]\n        cmp      edx, dword ptr [rsi\u002B0x08]\n-       jne      SHORT G_M29068_IG27\n\u002B       jne      SHORT G_M29068_IG25\n        lea      rdi, bword ptr [rbx\u002B0x0C]\n        mov      edx, dword ptr [rbx\u002B0x08]\n        add      edx, edx\n@@ -464,9 \u002B447,9 @@ G_M29068_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:SequenceEqual(byref,byref,nuint):bool\n        call     [rax]System.SpanHelpers:SequenceEqual(byref,byref,nuint):bool\n        test     eax, eax\n-       je       SHORT G_M29068_IG27\n\u002B       je       SHORT G_M29068_IG25\n \t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 8.12\n-G_M29068_IG26:\n\u002BG_M29068_IG24:\n        mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:Skip[System.String](System.Collections.Generic.IEnumerable\u00601[System.String],int):System.Collections.Generic.IEnumerable\u00601[System.String]\n        mov      edx, 1\n@@ -474,39 \u002B457,52 @@ G_M29068_IG26:\n        call     [rax]System.Linq.Enumerable:Skip[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],int):System.Collections.Generic.IEnumerable\u00601[System.__Canon]\n        mov      r12, rax\n \t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.12\n-G_M29068_IG27:\n\u002BG_M29068_IG25:\n        mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:ToList[System.String](System.Collections.Generic.IEnumerable\u00601[System.String]):System.Collections.Generic.List\u00601[System.String]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:ToList[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.Collections.Generic.List\u00601[System.__Canon]\n        call     [rax]System.Linq.Enumerable:ToList[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.Collections.Generic.List\u00601[System.__Canon]\n        mov      rbx, rax\n-       jmp      SHORT G_M29068_IG30\n\u002B       jmp      SHORT G_M29068_IG28\n \t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 3.00\n-G_M29068_IG28:\n\u002BG_M29068_IG26:\n        mov      edi, 4\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M29068_IG29:\n\u002BG_M29068_IG27:\n        mov      edi, 14\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M29068_IG30:\n\u002BG_M29068_IG28:\n        mov      rdi, r15\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        nop      \n \t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 1.88\n-G_M29068_IG31:\n\u002BG_M29068_IG29:\n        mov      rdi, gword ptr [rbp-0x50]\n        mov      rsi, gword ptr [rbp-0x58]\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Internal.RepositoryBase:DisposeConnection(System.Data.Common.DbConnection):this\n        call     [rax]System.Data.Entity.Internal.RepositoryBase:DisposeConnection(System.Data.Common.DbConnection):this\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=23 bbWeight=0.50 PerfScore 2.75\n\u002BG_M29068_IG30:\n\u002B       add      rsp, 88\n\u002B       pop      rbx\n\u002B       pop      r12\n\u002B       pop      r13\n\u002B       pop      r14\n\u002B       pop      r15\n\u002B       pop      rbp\n\u002B       ret      \n\u002B\t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n\u002BG_M29068_IG31:\n\u002B       mov      rax, rbx\n\u002B\t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n G_M29068_IG32:\n        add      rsp, 88\n        pop      rbx\n@@ -518,62 \u002B514,49 @@ G_M29068_IG32:\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n G_M29068_IG33:\n-       mov      rax, rbx\n-\t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M29068_IG34:\n-       add      rsp, 88\n-       pop      rbx\n-       pop      r12\n-       pop      r13\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       ret      \n-\t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M29068_IG35:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M29068_IG36:\n\u002BG_M29068_IG34:\n        mov      rdi, gword ptr [rbp-0x68]\n        mov      rax, 0xD1FFAB1E      ; code for System.Transactions.TransactionScope:Dispose():this\n        call     [rax]System.Transactions.TransactionScope:Dispose():this\n        nop      \n \t\t\t\t\t\t;; size=17 bbWeight=0 PerfScore 0.00\n-G_M29068_IG37:\n\u002BG_M29068_IG35:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M29068_IG38:\n\u002BG_M29068_IG36:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M29068_IG39:\n\u002BG_M29068_IG37:\n        cmp      gword ptr [rbp-0x60], 0\n-       je       SHORT G_M29068_IG40\n\u002B       je       SHORT G_M29068_IG38\n        mov      rdi, gword ptr [rbp-0x60]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M29068_IG40:\n\u002BG_M29068_IG38:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M29068_IG41:\n\u002BG_M29068_IG39:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M29068_IG42:\n\u002BG_M29068_IG40:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M29068_IG43:\n\u002BG_M29068_IG41:\n        mov      rdi, gword ptr [rbp-0x50]\n        mov      rsi, gword ptr [rbp-0x58]\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Internal.RepositoryBase:DisposeConnection(System.Data.Common.DbConnection):this\n        call     [rax]System.Data.Entity.Internal.RepositoryBase:DisposeConnection(System.Data.Common.DbConnection):this\n        nop      \n \t\t\t\t\t\t;; size=21 bbWeight=0 PerfScore 0.00\n-G_M29068_IG44:\n\u002BG_M29068_IG42:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1734, prolog size 45, PerfScore 188.08, instruction count 404, allocated bytes for code 1734 (MethodHash=3fca8e73) for method System.Data.Entity.Migrations.History.HistoryRepository:GetPendingMigrations(System.Collections.Generic.IEnumerable\u00601[System.String]):System.Collections.Generic.IEnumerable\u00601[System.String]:this (FullOpts)\n\u002B; Total bytes of code 1682, prolog size 45, PerfScore 180.58, instruction count 391, allocated bytes for code 1682 (MethodHash=3fca8e73) for method System.Data.Entity.Migrations.History.HistoryRepository:GetPendingMigrations(System.Collections.Generic.IEnumerable\u00601[System.String]):System.Collections.Generic.IEnumerable\u00601[System.String]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1734,"DiffBytes":1682},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase:Aggregate[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)","Category":"improvement","Description":"1,454 -\u003E 1,373 bytes (-81)","ExtraInfo":null,"Diff":"@@ -13,11 \u002B13,11 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,short]\u003E\n ;  V03 arg3         [V03,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T21] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n\u002B;  V05 loc0         [V05,T20] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n-;  V07 loc2         [V07,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T24] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V09 loc4         [V09,T25] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[short]\u003E\n\u002B;  V07 loc2         [V07,T21] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T23] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V09 loc4         [V09,T24] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[short]\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.NoPipelineInputSerializer\u003E\n ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -37,18 \u002B37,18 @@\n ;* V26 tmp16        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V27 tmp17        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V28 tmp18        [V28    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V29 tmp19        [V29,T19] (  3,  2   )     int  -\u003E  rdi        \n-;  V30 tmp20        [V30,T05] (  4,  7   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V31 tmp21        [V31    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V32 tmp22        [V32,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V33 tmp23        [V33,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp19        [V29,T18] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V30 tmp20        [V30,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V31 tmp21        [V31    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V32 tmp22        [V32,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V33 tmp23        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V34 tmp24        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V35 tmp25        [V35,T10] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V37 tmp27        [V37,T23] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V37 tmp27        [V37,T22] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V38 tmp28        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V39 tmp29        [V39,T17] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V40 tmp30        [V40,T15] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V39 tmp29        [V39,T16] (  8,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V40 tmp30        [V40,T14] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V41 tmp31        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V42 tmp32        [V42,T06] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V43 tmp33        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -59,11 \u002B59,11 @@\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[short]\u003E\n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V50 tmp40        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V51 tmp41        [V51,T26] (  2,  1   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V52 tmp42        [V52,T18] (  8,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V53 tmp43        [V53,T16] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n-;  V54 tmp44        [V54,T27] (  2,  1   )     ref  -\u003E  r12         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[short]\u003E\n-;  V55 tmp45        [V55,T20] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoDatabaseSettings\u003E\n\u002B;  V51 tmp41        [V51,T25] (  2,  1   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V52 tmp42        [V52,T17] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V53 tmp43        [V53,T15] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V54 tmp44        [V54,T26] (  2,  1   )     ref  -\u003E  r12         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[short]\u003E\n\u002B;  V55 tmp45        [V55,T19] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoDatabaseSettings\u003E\n ;* V56 tmp46        [V56    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V57 tmp47        [V57,T08] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V58 tmp48        [V58    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -72,14 \u002B72,14 @@\n ;* V61 tmp51        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V62 tmp52        [V62    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V63 tmp53        [V63,T12] (  3,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V64 tmp54        [V64,T29] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V65 tmp55        [V65,T30] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V66 tmp56        [V66,T31] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V67 tmp57        [V67,T32] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V13.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V64 tmp54        [V64,T28] (  2,  1   )   ubyte  -\u003E  [rbp-0x6C]  spill-single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V65 tmp55        [V65,T29] (  2,  1   )    long  -\u003E  rbx         single-def \u0022field V12.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V66 tmp56        [V66,T30] (  2,  1   )   ubyte  -\u003E  rdx         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V67 tmp57        [V67,T31] (  2,  1   )    long  -\u003E  rcx         single-def \u0022field V13.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V68 tmp58        [V68    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V20._name (fldOffset=0x0)\u0022 P-DEP\n ;* V69 tmp59        [V69    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V20._value (fldOffset=0x8)\u0022 P-DEP\n-;  V70 tmp60        [V70,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V21._name (fldOffset=0x0)\u0022 P-INDEP\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 8.75\n-G_M58277_IG25:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M58277_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M58277_IG26\n\u002B       je       SHORT G_M58277_IG23\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -336,10 \u002B316,10 @@ G_M58277_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.62\n-G_M58277_IG26:\n\u002BG_M58277_IG23:\n        mov      rax, r12\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M58277_IG27:\n\u002BG_M58277_IG24:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -349,7 \u002B329,7 @@ G_M58277_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M58277_IG28:\n\u002BG_M58277_IG25:\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -366,9 \u002B346,9 @@ G_M58277_IG28:\n        xor      r9, r9\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoDatabase:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [r10]MongoDB.Driver.MongoDatabase:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x88], rax\n-\t\t\t\t\t\t;; size=78 bbWeight=0.50 PerfScore 8.62\n-G_M58277_IG29:\n\u002B       mov      gword ptr [rbp-0x80], rax\n\u002B\t\t\t\t\t\t;; size=75 bbWeight=0.50 PerfScore 8.62\n\u002BG_M58277_IG26:\n        mov      r12, gword ptr [r15\u002B0x20]\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -376,21 \u002B356,21 @@ G_M58277_IG29:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, r12\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdx, r14\n        mov      rcx, gword ptr [rbp-0x78]\n        mov      r8d, 1\n        call     rax\n        nop      \n-\t\t\t\t\t\t;; size=65 bbWeight=0.50 PerfScore 6.00\n-G_M58277_IG30:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M58277_IG32\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 6.00\n\u002BG_M58277_IG27:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M58277_IG29\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M58277_IG31\n\u002B       je       SHORT G_M58277_IG28\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -399,13 \u002B379,13 @@ G_M58277_IG30:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.75\n-G_M58277_IG31:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 8.75\n\u002BG_M58277_IG28:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      rdi, gword ptr [rsi\u002B0x10]\n        mov      r12, rdi\n        test     r12, r12\n-       je       SHORT G_M58277_IG32\n\u002B       je       SHORT G_M58277_IG29\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -414,8 \u002B394,8 @@ G_M58277_IG31:\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 7.75\n-G_M58277_IG32:\n\u002B\t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 7.75\n\u002BG_M58277_IG29:\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, r13\n@@ -424,7 \u002B404,7 @@ G_M58277_IG32:\n        call     [rax]MongoDB.Driver.MongoDatabase:CreateAggregateToCollectionResultCursor[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[short],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[short]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M58277_IG33:\n\u002BG_M58277_IG30:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -434,22 \u002B414,22 @@ G_M58277_IG33:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M58277_IG34:\n\u002BG_M58277_IG31:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M58277_IG35:\n\u002BG_M58277_IG32:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M58277_IG36:\n-       cmp      gword ptr [rbp-0x88], 0\n-       je       SHORT G_M58277_IG38\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002BG_M58277_IG33:\n\u002B       cmp      gword ptr [rbp-0x80], 0\n\u002B       je       SHORT G_M58277_IG35\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r15, gword ptr [rsi\u002B0x08]\n        test     r15, r15\n-       je       SHORT G_M58277_IG37\n\u002B       je       SHORT G_M58277_IG34\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -458,12 \u002B438,12 @@ G_M58277_IG36:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M58277_IG37:\n-       mov      rsi, gword ptr [rbp-0x88]\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n\u002BG_M58277_IG34:\n\u002B       mov      rsi, gword ptr [rbp-0x80]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M58277_IG38\n\u002B       je       SHORT G_M58277_IG35\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -472,24 \u002B452,24 @@ G_M58277_IG37:\n        mov      rdi, r14\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M58277_IG38:\n\u002B\t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n\u002BG_M58277_IG35:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M58277_IG39:\n\u002BG_M58277_IG36:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M58277_IG40:\n\u002BG_M58277_IG37:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M58277_IG41:\n-       cmp      gword ptr [rbp-0x98], 0\n-       je       SHORT G_M58277_IG43\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M58277_IG38:\n\u002B       cmp      gword ptr [rbp-0x90], 0\n\u002B       je       SHORT G_M58277_IG40\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r12, gword ptr [rsi\u002B0x08]\n        test     r12, r12\n-       je       SHORT G_M58277_IG42\n\u002B       je       SHORT G_M58277_IG39\n        mov      rdi, r12\n        mov      esi, 1\n        mov      rax, qword ptr [r12]\n@@ -499,11 \u002B479,11 @@ G_M58277_IG41:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M58277_IG42:\n-       mov      rsi, gword ptr [rbp-0x98]\n\u002BG_M58277_IG39:\n\u002B       mov      rsi, gword ptr [rbp-0x90]\n        mov      r14, gword ptr [rsi\u002B0x10]\n        test     r14, r14\n-       je       SHORT G_M58277_IG43\n\u002B       je       SHORT G_M58277_IG40\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -513,13 \u002B493,13 @@ G_M58277_IG42:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M58277_IG43:\n\u002BG_M58277_IG40:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M58277_IG44:\n\u002BG_M58277_IG41:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1454, prolog size 65, PerfScore 166.77, instruction count 349, allocated bytes for code 1454 (MethodHash=5ccf1c5a) for method MongoDB.Driver.MongoDatabase:Aggregate[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)\n\u002B; Total bytes of code 1373, prolog size 65, PerfScore 157.40, instruction count 335, allocated bytes for code 1373 (MethodHash=5ccf1c5a) for method MongoDB.Driver.MongoDatabase:Aggregate[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1454,"DiffBytes":1373},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Core.ApprovalRequestService:ListAutoPagingAsync(Stripe.V2.Core.ApprovalRequestListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.ApprovalRequest]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.Core.ApprovalRequestService:ListAutoPagingAsync(Stripe.V2.Core.ApprovalRequestListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.ApprovalRequest]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Core.ApprovalRequestService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Core.ApprovalRequestListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Core.ApprovalRequestListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.ApprovalRequest]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.ApprovalRequest]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.ApprovalRequest]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.ApprovalRequest]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M56499_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M56499_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/core/approval_requests\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M56499_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M56499_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.ApprovalRequest]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M56499_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M56499_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M56499_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.ApprovalRequest]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M56499_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M56499_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=c362234c) for method Stripe.V2.Core.ApprovalRequestService:ListAutoPagingAsync(Stripe.V2.Core.ApprovalRequestListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.ApprovalRequest]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=c362234c) for method Stripe.V2.Core.ApprovalRequestService:ListAutoPagingAsync(Stripe.V2.Core.ApprovalRequestListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.ApprovalRequest]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.ModelConfiguration.Configuration.ConventionTypeConfiguration:Property(System.Data.Entity.ModelConfiguration.Utilities.PropertyPath):System.Data.Entity.ModelConfiguration.Configuration.ConventionPrimitivePropertyConfiguration:this (FullOpts)","Category":"improvement","Description":"479 -\u003E 427 bytes (-52)","ExtraInfo":null,"Diff":"@@ -9,8 \u002B9,8 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  6,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Configuration.ConventionTypeConfiguration\u003E\n-;  V01 arg1         [V01,T01] (  8,  5.50)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Utilities.PropertyPath\u003E\n-;  V02 loc0         [V02,T06] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.Data.Entity.ModelConfiguration.Configuration.ConventionTypeConfiguration\u002B\u003C\u003Ec__DisplayClass18_0\u003E\n\u002B;  V01 arg1         [V01,T01] (  7,  5   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Utilities.PropertyPath\u003E\n\u002B;  V02 loc0         [V02,T04] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.Data.Entity.ModelConfiguration.Configuration.ConventionTypeConfiguration\u002B\u003C\u003Ec__DisplayClass18_0\u003E\n ;* V03 loc1         [V03    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u003CSystem.Nullable\u00601[int]\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V05 tmp1         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.ConventionTypeConfiguration\u002B\u003C\u003Ec__DisplayClass18_0\u003E\n@@ -18,25 \u002B18,25 @@\n ;* V07 tmp3         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V08 tmp4         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V09 tmp5         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V10 tmp6         [V10,T10] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.__Canon\u003E\n\u002B;  V10 tmp6         [V10,T09] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.__Canon\u003E\n ;* V11 tmp7         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V12 tmp8         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V13 tmp9         [V13,T08] (  4,  2.50)     ref  -\u003E  rax        \n\u002B;  V13 tmp9         [V13,T07] (  4,  2.50)     ref  -\u003E  rax        \n ;  V14 tmp10        [V14,T00] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00601[System.Data.Entity.ModelConfiguration.Configuration.Properties.Primitive.PrimitivePropertyConfiguration]\u003E\n ;  V15 tmp11        [V15,T03] (  3,  6   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.ConventionPrimitivePropertyConfiguration\u003E\n ;* V16 tmp12        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V17 tmp13        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V18 tmp14        [V18,T11] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.__Canon\u003E\n-;  V19 tmp15        [V19,T12] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n-;  V20 tmp16        [V20    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V18 tmp14        [V18,T10] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.__Canon\u003E\n\u002B;  V19 tmp15        [V19,T11] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V20 tmp16        [V20    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V21 tmp17        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V22 tmp18        [V22,T04] (  4,  3   )     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Reflection.PropertyInfo\u003E\n-;  V23 tmp19        [V23,T05] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Reflection.PropertyInfo]\u003E\n\u002B;  V22 tmp18        [V22,T05] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Reflection.PropertyInfo\u003E\n\u002B;* V23 tmp19        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Reflection.PropertyInfo]\u003E\n ;* V24 tmp20        [V24    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022field V03.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V25 tmp21        [V25    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V03.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V26 tmp22        [V26,T13] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V27 cse0         [V27,T09] (  4,  2   )     ref  -\u003E  rax         \u0022CSE #01: moderate\u0022\n-;  V28 rat0         [V28,T07] (  3,  3   )     ref  -\u003E  rax         \u0022delegate invoke call\u0022\n\u002B;  V26 tmp22        [V26,T12] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V27 cse0         [V27,T08] (  4,  2   )     ref  -\u003E  rax         \u0022CSE #01: moderate\u0022\n\u002B;  V28 rat0         [V28,T06] (  3,  3   )     ref  -\u003E  rax         \u0022delegate invoke call\u0022\n ;\n ; Lcl frame size = 16\n \n@@ -62,43 \u002B62,24 @@ G_M41549_IG02:\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.ModelConfiguration.Configuration.ConventionTypeConfiguration:ValidateConfiguration(uint):this\n        call     [rax]System.Data.Entity.ModelConfiguration.Configuration.ConventionTypeConfiguration:ValidateConfiguration(uint):this\n        test     rbx, rbx\n-       je       G_M41549_IG11\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Reflection.PropertyInfo]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M41549_IG04\n-\t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 11.50\n-G_M41549_IG03:\n-       lea      rsi, [rbp-0x28]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       mov      r13, rax\n-       jmp      SHORT G_M41549_IG05\n-\t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 5.00\n-G_M41549_IG04:\n\u002B       je       G_M41549_IG08\n        lea      rdx, [rbp-0x28]\n        mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.Reflection.PropertyInfo](System.Collections.Generic.IEnumerable\u00601[System.Reflection.PropertyInfo],byref):System.Reflection.PropertyInfo\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        mov      r13, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M41549_IG05:\n        cmp      byte  ptr [rbp-0x28], 0\n-       je       G_M41549_IG12\n\u002B       je       G_M41549_IG09\n        mov      rdi, r13\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Utilities.PropertyInfoExtensions:IsValidEdmScalarProperty(System.Reflection.PropertyInfo):bool\n        call     [rax]System.Data.Entity.Utilities.PropertyInfoExtensions:IsValidEdmScalarProperty(System.Reflection.PropertyInfo):bool\n        test     eax, eax\n-       je       G_M41549_IG13\n\u002B       je       G_M41549_IG10\n        cmp      gword ptr [r15\u002B0x10], 0\n-       je       SHORT G_M41549_IG07\n-\t\t\t\t\t\t;; size=40 bbWeight=1 PerfScore 9.75\n-G_M41549_IG06:\n\u002B       je       SHORT G_M41549_IG04\n\u002B\t\t\t\t\t\t;; size=119 bbWeight=1 PerfScore 20.75\n\u002BG_M41549_IG03:\n        mov      rax, gword ptr [r15\u002B0x10]\n        mov      rdi, gword ptr [rax\u002B0x10]\n        call     [rax\u002B0x18]System.Func\u00601[System.__Canon]:Invoke():System.__Canon:this\n@@ -108,12 \u002B89,12 @@ G_M41549_IG06:\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.ModelConfiguration.Configuration.Types.StructuralTypeConfiguration:Property(System.Data.Entity.ModelConfiguration.Utilities.PropertyPath,System.Nullable\u00601[int]):System.Data.Entity.ModelConfiguration.Configuration.Properties.Primitive.PrimitivePropertyConfiguration:this\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.Data.Entity.ModelConfiguration.Configuration.Types.StructuralTypeConfiguration:Property(System.Data.Entity.ModelConfiguration.Utilities.PropertyPath,System.Nullable\u00601[int]):System.Data.Entity.ModelConfiguration.Configuration.Properties.Primitive.PrimitivePropertyConfiguration:this\n-       jmp      SHORT G_M41549_IG09\n\u002B       jmp      SHORT G_M41549_IG06\n \t\t\t\t\t\t;; size=35 bbWeight=0.50 PerfScore 7.50\n-G_M41549_IG07:\n\u002BG_M41549_IG04:\n        mov      rax, gword ptr [r15\u002B0x20]\n        test     rax, rax\n-       je       SHORT G_M41549_IG08\n\u002B       je       SHORT G_M41549_IG05\n        mov      rdi, gword ptr [rax\u002B0x10]\n        call     [rax\u002B0x18]System.Func\u00601[System.__Canon]:Invoke():System.__Canon:this\n        mov      rdi, rax\n@@ -122,12 \u002B103,12 @@ G_M41549_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.ModelConfiguration.Configuration.Types.StructuralTypeConfiguration:Property(System.Data.Entity.ModelConfiguration.Utilities.PropertyPath,System.Nullable\u00601[int]):System.Data.Entity.ModelConfiguration.Configuration.Properties.Primitive.PrimitivePropertyConfiguration:this\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.Data.Entity.ModelConfiguration.Configuration.Types.StructuralTypeConfiguration:Property(System.Data.Entity.ModelConfiguration.Utilities.PropertyPath,System.Nullable\u00601[int]):System.Data.Entity.ModelConfiguration.Configuration.Properties.Primitive.PrimitivePropertyConfiguration:this\n-       jmp      SHORT G_M41549_IG09\n\u002B       jmp      SHORT G_M41549_IG06\n \t\t\t\t\t\t;; size=40 bbWeight=0.50 PerfScore 8.12\n-G_M41549_IG08:\n\u002BG_M41549_IG05:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M41549_IG09:\n\u002BG_M41549_IG06:\n        lea      rdi, bword ptr [r14\u002B0x08]\n        mov      rsi, rax\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -149,7 \u002B130,7 @@ G_M41549_IG09:\n        call     [rax]System.Data.Entity.ModelConfiguration.Configuration.ConventionPrimitivePropertyConfiguration:.ctor(System.Reflection.PropertyInfo,System.Func\u00601[System.Data.Entity.ModelConfiguration.Configuration.Properties.Primitive.PrimitivePropertyConfiguration]):this\n        mov      rax, r15\n \t\t\t\t\t\t;; size=98 bbWeight=1 PerfScore 12.00\n-G_M41549_IG10:\n\u002BG_M41549_IG07:\n        add      rsp, 16\n        pop      rbx\n        pop      r13\n@@ -158,18 \u002B139,18 @@ G_M41549_IG10:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n-G_M41549_IG11:\n\u002BG_M41549_IG08:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M41549_IG12:\n\u002BG_M41549_IG09:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M41549_IG13:\n\u002BG_M41549_IG10:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -185,5 \u002B166,5 @@ G_M41549_IG13:\n        int3     \n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 479, prolog size 23, PerfScore 67.50, instruction count 118, allocated bytes for code 479 (MethodHash=e48c5db2) for method System.Data.Entity.ModelConfiguration.Configuration.ConventionTypeConfiguration:Property(System.Data.Entity.ModelConfiguration.Utilities.PropertyPath):System.Data.Entity.ModelConfiguration.Configuration.ConventionPrimitivePropertyConfiguration:this (FullOpts)\n\u002B; Total bytes of code 427, prolog size 23, PerfScore 59.75, instruction count 105, allocated bytes for code 427 (MethodHash=e48c5db2) for method System.Data.Entity.ModelConfiguration.Configuration.ConventionTypeConfiguration:Property(System.Data.Entity.ModelConfiguration.Utilities.PropertyPath):System.Data.Entity.ModelConfiguration.Configuration.ConventionPrimitivePropertyConfiguration:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":479,"DiffBytes":427},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollectionAsync[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.Nullable\u00601[int],MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M13137_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M13137_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M13137_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]:Render(MongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M13137_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M13137_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M13137_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M13137_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M13137_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M13137_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M13137_IG07:\n        test     rax, rax\n-       je       SHORT G_M13137_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M13137_IG08:\n\u002B       je       SHORT G_M13137_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M13137_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M13137_IG10\n\u002B       jmp      SHORT G_M13137_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M13137_IG09:\n\u002BG_M13137_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M13137_IG10:\n\u002BG_M13137_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M13137_IG14\n\u002B       je       SHORT G_M13137_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M13137_IG11:\n\u002BG_M13137_IG08:\n        test     rax, rax\n-       je       SHORT G_M13137_IG15\n\u002B       je       SHORT G_M13137_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M13137_IG12:\n\u002BG_M13137_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M13137_IG15\n\u002B       jne      SHORT G_M13137_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M13137_IG13:\n\u002BG_M13137_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M13137_IG15\n\u002B       je       SHORT G_M13137_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M13137_IG14:\n\u002BG_M13137_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M13137_IG22\n\u002B       jmp      SHORT G_M13137_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M13137_IG15:\n\u002BG_M13137_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M13137_IG20\n\u002B       je       SHORT G_M13137_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M13137_IG16:\n\u002BG_M13137_IG13:\n        test     rax, rax\n-       je       SHORT G_M13137_IG18\n\u002B       je       SHORT G_M13137_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M13137_IG17:\n\u002BG_M13137_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M13137_IG19\n\u002B       je       SHORT G_M13137_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M13137_IG18:\n\u002BG_M13137_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M13137_IG21\n\u002B       jmp      SHORT G_M13137_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M13137_IG19:\n\u002BG_M13137_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M13137_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M13137_IG21\n\u002B       jmp      SHORT G_M13137_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M13137_IG20:\n\u002BG_M13137_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M13137_IG21:\n\u002BG_M13137_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M13137_IG22:\n\u002BG_M13137_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M13137_IG27\n\u002B       je       G_M13137_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M13137_IG27\n\u002B       je       G_M13137_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M13137_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.Nullable\u00601[int],System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M13137_IG24\n\u002B       jne      SHORT G_M13137_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M13137_IG23:\n\u002BG_M13137_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M13137_IG24:\n\u002BG_M13137_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M13137_IG25:\n-       add      rsp, 232\n\u002BG_M13137_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M13137_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M13137_IG26:\n\u002BG_M13137_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M13137_IG27:\n\u002BG_M13137_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M13137_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=250accae) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollectionAsync[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=250accae) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollectionAsync[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Core.EventDestinationService:ListAutoPagingAsync(Stripe.V2.Core.EventDestinationListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.EventDestination]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.Core.EventDestinationService:ListAutoPagingAsync(Stripe.V2.Core.EventDestinationListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.EventDestination]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Core.EventDestinationService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Core.EventDestinationListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Core.EventDestinationListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.EventDestination]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.EventDestination]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.EventDestination]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.EventDestination]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M23381_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M23381_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/core/event_destinations\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M23381_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M23381_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.EventDestination]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M23381_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M23381_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M23381_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.EventDestination]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M23381_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M23381_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=fafda4aa) for method Stripe.V2.Core.EventDestinationService:ListAutoPagingAsync(Stripe.V2.Core.EventDestinationListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.EventDestination]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=fafda4aa) for method Stripe.V2.Core.EventDestinationService:ListAutoPagingAsync(Stripe.V2.Core.EventDestinationListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.EventDestination]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration:Configure(System.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping,System.Collections.Generic.ICollection\u00601[System.Data.Entity.Core.Metadata.Edm.EntitySet],System.Data.Entity.Core.Common.DbProviderManifest,System.Data.Entity.Core.Metadata.Edm.EntityType,byref,bool,int,int,System.Collections.Generic.IDictionary\u00602[System.String,System.Object]):this (FullOpts)","Category":"improvement","Description":"5,367 -\u003E 5,315 bytes (-52)","ExtraInfo":null,"Diff":"@@ -14,25 \u002B14,25 @@\n ;  V03 arg3         [V03,T69] (  4,  4   )     ref  -\u003E  [rbp-0xB0]  class-hnd single-def \u003CSystem.Data.Entity.Core.Common.DbProviderManifest\u003E\n ;  V04 arg4         [V04,T17] ( 19, 19   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n ;  V05 arg5         [V05,T30] (  7, 10   )   byref  -\u003E  r13         single-def\n-;  V06 arg6         [V06,T100] (  3,  2   )   ubyte  -\u003E  [rbp\u002B0x10]  single-def\n\u002B;  V06 arg6         [V06,T99] (  3,  2   )   ubyte  -\u003E  [rbp\u002B0x10]  single-def\n ;  V07 arg7         [V07,T94] (  4,  2.50)     int  -\u003E  [rbp\u002B0x18]  single-def\n-;  V08 arg8         [V08,T121] (  2,  1   )     int  -\u003E  [rbp\u002B0x20]  single-def\n-;  V09 arg9         [V09,T125] (  1,  1   )     ref  -\u003E  [rbp\u002B0x28]  class-hnd single-def \u003CSystem.Collections.Generic.IDictionary\u00602[System.String,System.Object]\u003E\n\u002B;  V08 arg8         [V08,T120] (  2,  1   )     int  -\u003E  [rbp\u002B0x20]  single-def\n\u002B;  V09 arg9         [V09,T124] (  1,  1   )     ref  -\u003E  [rbp\u002B0x28]  class-hnd single-def \u003CSystem.Collections.Generic.IDictionary\u00602[System.String,System.Object]\u003E\n ;  V10 loc0         [V10,T83] (  6,  4.50)     ref  -\u003E  [rbp-0xB8]  class-hnd exact spill-single-def \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u002B\u003C\u003Ec__DisplayClass34_0\u003E\n-;  V11 loc1         [V11,T110] (  2,  2   )   ubyte  -\u003E  [rbp-0x2C]  spill-single-def\n\u002B;  V11 loc1         [V11,T109] (  2,  2   )   ubyte  -\u003E  [rbp-0x2C]  spill-single-def\n ;  V12 loc2         [V12,T02] ( 20, 40.50)     ref  -\u003E  [rbp-0xC0]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Mapping.MappingFragment\u003E\n ;  V13 loc3         [V13,T05] ( 20, 28   )     ref  -\u003E  [rbp-0xC8]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n ;  V14 loc4         [V14    ] (  3,  2.50)   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op\n ;  V15 loc5         [V15,T27] ( 16, 14   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n ;* V16 loc6         [V16    ] (  0,  0   )   ubyte  -\u003E  zero-ref   \n-;  V17 loc7         [V17,T10] ( 18, 27.50)     ref  -\u003E  [rbp-0xD8]  class-hnd spill-single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.ColumnMappingBuilder]\u003E\n\u002B;  V17 loc7         [V17,T10] ( 17, 27   )     ref  -\u003E  [rbp-0xD8]  class-hnd spill-single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.ColumnMappingBuilder]\u003E\n ;  V18 loc8         [V18    ] (  7, 13   )  struct (24) [rbp-0x50]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Collections.Generic.HashSet\u00601\u002BEnumerator[System.Data.Entity.ModelConfiguration.Utilities.EdmPropertyPath]\u003E\n ;  V19 loc9         [V19,T33] (  4, 12   )     ref  -\u003E  [rbp-0xE0]  class-hnd exact spill-single-def \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u002B\u003C\u003Ec__DisplayClass34_1\u003E\n ;  V20 loc10        [V20,T35] (  3, 12   )     ref  -\u003E  rax         class-hnd \u003CSystem.Data.Entity.Core.Mapping.ColumnMappingBuilder\u003E\n ;  V21 loc11        [V21    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x58]  do-not-enreg[X] must-init addr-exposed ld-addr-op\n-;  V22 loc12        [V22,T116] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n-;  V23 loc13        [V23,T120] (  3,  1   )     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.AssociationSetMapping\u003E\n-;  V24 loc14        [V24,T128] (  5,  0   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationType\u003E\n\u002B;  V22 loc12        [V22,T115] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n\u002B;  V23 loc13        [V23,T118] (  3,  1   )     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.AssociationSetMapping\u003E\n\u002B;  V24 loc14        [V24,T127] (  5,  0   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationType\u003E\n ;  V25 loc15        [V25,T12] ( 12, 24.50)     ref  -\u003E  [rbp-0xE8]  class-hnd exact spill-single-def \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u002B\u003C\u003Ec__DisplayClass34_2\u003E\n ;* V26 loc16        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Data.Entity.Core.Mapping.ColumnMappingBuilder\u003E\n ;  V27 loc17        [V27,T52] (  4,  8.50)     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.MappingFragment\u003E\n@@ -46,7 \u002B46,7 @@\n ;* V35 loc25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.MappingFragment,bool]\u003E\n ;  V36 OutArgs      [V36    ] (  1,  1   )  struct (16) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V37 tmp1         [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u002B\u003C\u003Ec__DisplayClass34_0\u003E\n-;  V38 tmp2         [V38,T101] (  3,  2   )     int  -\u003E  r10        \n\u002B;  V38 tmp2         [V38,T100] (  3,  2   )     int  -\u003E  r10        \n ;  V39 tmp3         [V39,T70] (  3,  6   )     ref  -\u003E  [rbp-0x100]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Data.Entity.ModelConfiguration.Utilities.EdmPropertyPath]\u003E\n ;* V40 tmp4         [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u002B\u003C\u003Ec__DisplayClass34_1\u003E\n ;  V41 tmp5         [V41,T04] (  4, 32   )     ref  -\u003E  [rbp-0x108]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ColumnMappingBuilder,bool]\u003E\n@@ -60,17 \u002B60,17 @@\n ;* V49 tmp13        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Object\u003E\n ;  V50 tmp14        [V50,T18] (  5, 20   )     ref  -\u003E  [rbp-0x120]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.MappingFragment,bool]\u003E\n ;* V51 tmp15        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Object\u003E\n-;  V52 tmp16        [V52,T102] (  2,  2   )     ref  -\u003E  rcx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.EntityTypeMapping,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.MappingFragment]]\u003E\n\u002B;  V52 tmp16        [V52,T101] (  2,  2   )     ref  -\u003E  rcx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.EntityTypeMapping,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.MappingFragment]]\u003E\n ;  V53 tmp17        [V53,T86] (  4,  4   )     ref  -\u003E  [rbp-0x128]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IList\u00601[System.Data.Entity.Core.Mapping.EntityTypeMapping]\u003E\n ;* V54 tmp18        [V54    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V55 tmp19        [V55    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V56 tmp20        [V56,T96] (  4,  2   )     ref  -\u003E  [rbp-0x130] \n-;  V57 tmp21        [V57,T103] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.MappingFragment,System.Data.Entity.Core.Metadata.Edm.EntityType]\u003E\n\u002B;  V57 tmp21        [V57,T102] (  2,  2   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.MappingFragment,System.Data.Entity.Core.Metadata.Edm.EntityType]\u003E\n ;  V58 tmp22        [V58,T92] (  3,  3   )     ref  -\u003E  [rbp-0x138]  class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\u003E\n ;* V59 tmp23        [V59    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V60 tmp24        [V60    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V61 tmp25        [V61,T97] (  4,  2   )     ref  -\u003E  rdx        \n-;  V62 tmp26        [V62,T104] (  2,  2   )     ref  -\u003E  rcx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.EntityContainerMapping,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.AssociationSetMapping]]\u003E\n\u002B;  V62 tmp26        [V62,T103] (  2,  2   )     ref  -\u003E  rcx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.EntityContainerMapping,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.AssociationSetMapping]]\u003E\n ;  V63 tmp27        [V63,T87] (  4,  4   )     ref  -\u003E  [rbp-0x140]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.EntityContainerMapping]\u003E\n ;* V64 tmp28        [V64    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V65 tmp29        [V65,T98] (  4,  2   )     ref  -\u003E  [rbp-0x148] \n@@ -92,24 \u002B92,24 @@\n ;* V81 tmp45        [V81    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V82 tmp46        [V82    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.__Canon[]\u003E\n ;* V83 tmp47        [V83    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n... diff truncated; middle omitted ...\n        call     [rax]System.Data.Entity.ModelConfiguration.Edm.EdmPropertyExtensions:Clone(System.Data.Entity.Core.Metadata.Edm.EdmProperty):System.Data.Entity.Core.Metadata.Edm.EdmProperty\n        mov      rdx, rax\n \t\t\t\t\t\t;; size=22 bbWeight=2 PerfScore 9.00\n-G_M21797_IG78:\n\u002BG_M21797_IG77:\n        mov      rdi, gword ptr [rbp-0x198]\n        mov      gword ptr [rbp-0x1C0], rdx\n        mov      rsi, rdx\n@@ -1283,13 \u002B1269,13 @@ G_M21797_IG78:\n        mov      rcx, qword ptr [rcx\u002B0x50]\n        call     [rcx\u002B0x08]System.Data.Entity.Core.Metadata.Edm.EdmMember:get_IsPrimaryKeyColumn():bool:this\n        test     eax, eax\n-       je       SHORT G_M21797_IG80\n\u002B       je       SHORT G_M21797_IG79\n \t\t\t\t\t\t;; size=63 bbWeight=2 PerfScore 32.50\n-G_M21797_IG79:\n\u002BG_M21797_IG78:\n        mov      rdx, gword ptr [rbp-0x1B0]\n-       jmp      SHORT G_M21797_IG81\n\u002B       jmp      SHORT G_M21797_IG80\n \t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 3.00\n-G_M21797_IG80:\n\u002BG_M21797_IG79:\n        mov      rdi, gword ptr [rbp-0x1A0]\n        mov      rsi, gword ptr [rbp-0x190]\n        mov      rdx, gword ptr [rbp-0x198]\n@@ -1299,7 \u002B1285,7 @@ G_M21797_IG80:\n        call     [rax]System.Data.Entity.ModelConfiguration.Configuration.Mapping.ForeignKeyPrimitiveOperations:CopyAllForeignKeyConstraintsForColumn(System.Data.Entity.Core.Metadata.Edm.EdmModel,System.Data.Entity.Core.Metadata.Edm.EntityType,System.Data.Entity.Core.Metadata.Edm.EntityType,System.Data.Entity.Core.Metadata.Edm.EdmProperty,System.Data.Entity.Core.Metadata.Edm.EdmProperty)\n        mov      rdx, gword ptr [rbp-0x1B0]\n \t\t\t\t\t\t;; size=54 bbWeight=2 PerfScore 18.50\n-G_M21797_IG81:\n\u002BG_M21797_IG80:\n        mov      rax, gword ptr [rbp-0x220]\n        lea      rdi, bword ptr [rax\u002B0x08]\n        mov      rsi, rdx\n@@ -1307,14 \u002B1293,14 @@ G_M21797_IG81:\n        mov      rax, gword ptr [rbp-0x220]\n        mov      rdi, gword ptr [rax\u002B0x18]\n        test     rdi, rdi\n-       je       SHORT G_M21797_IG82\n\u002B       je       SHORT G_M21797_IG81\n        lea      rdi, bword ptr [rdi\u002B0x20]\n        mov      gword ptr [rbp-0x220], rax\n        mov      rsi, gword ptr [rax\u002B0x08]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rax, gword ptr [rbp-0x220]\n \t\t\t\t\t\t;; size=62 bbWeight=2 PerfScore 25.00\n-G_M21797_IG82:\n\u002BG_M21797_IG81:\n        mov      gword ptr [rbp-0x220], rax\n        mov      rdi, rax\n        mov      rsi, rbx\n@@ -1325,7 \u002B1311,7 @@ G_M21797_IG82:\n        call     [r8]System.Data.Entity.ModelConfiguration.Edm.ColumnMappingBuilderExtensions:SyncNullabilityCSSpace(System.Data.Entity.Core.Mapping.ColumnMappingBuilder,System.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EntitySet],System.Data.Entity.Core.Metadata.Edm.EntityType)\n        mov      r9, gword ptr [rbp-0x220]\n \t\t\t\t\t\t;; size=50 bbWeight=2 PerfScore 16.00\n-G_M21797_IG83:\n\u002BG_M21797_IG82:\n        mov      r10, gword ptr [rbp-0xC0]\n        mov      r11, gword ptr [r10\u002B0x18]\n        mov      gword ptr [rbp-0x1C8], r11\n@@ -1338,15 \u002B1324,15 @@ G_M21797_IG83:\n        mov      r12, 0xD1FFAB1E      ; code for System.Array:IndexOf[System.__Canon](System.__Canon[],System.__Canon,int,int):int\n        call     [r12]System.Array:IndexOf[System.__Canon](System.__Canon[],System.__Canon,int,int):int\n        test     eax, eax\n-       jl       SHORT G_M21797_IG85\n\u002B       jl       SHORT G_M21797_IG84\n \t\t\t\t\t\t;; size=66 bbWeight=4 PerfScore 57.00\n-G_M21797_IG84:\n\u002BG_M21797_IG83:\n        mov      rdi, gword ptr [rbp-0x1C8]\n        mov      esi, eax\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:RemoveAt(int):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:RemoveAt(int):this\n \t\t\t\t\t\t;; size=21 bbWeight=2 PerfScore 9.00\n-G_M21797_IG85:\n\u002BG_M21797_IG84:\n        mov      r12, gword ptr [rbp-0x220]\n        mov      rsi, gword ptr [r12\u002B0x10]\n        mov      rdi, gword ptr [rbp-0xC0]\n@@ -1364,33 \u002B1350,33 @@ G_M21797_IG85:\n        mov      rsi, r8\n        mov      rax, gword ptr [rbp-0xC8]\n        mov      ecx, dword ptr [rbp-0x5C]\n-       jne      G_M21797_IG96\n\u002B       jne      G_M21797_IG95\n \t\t\t\t\t\t;; size=95 bbWeight=4 PerfScore 85.00\n-G_M21797_IG86:\n\u002BG_M21797_IG85:\n        mov      r8d, dword ptr [rbp-0x98]\n        mov      r12, gword ptr [rbp-0xA8]\n \t\t\t\t\t\t;; size=14 bbWeight=2 PerfScore 4.00\n-G_M21797_IG87:\n\u002BG_M21797_IG86:\n        cmp      r8d, dword ptr [rsi\u002B0x10]\n        jae      G_M21797_IG35\n        mov      gword ptr [rbp-0x218], rsi\n        mov      rdi, gword ptr [rsi\u002B0x08]\n        cmp      r8d, dword ptr [rdi\u002B0x08]\n-       jae      G_M21797_IG97\n\u002B       jae      G_M21797_IG96\n        mov      r9d, r8d\n        mov      rdi, gword ptr [rdi\u002B8*r9\u002B0x10]\n        mov      gword ptr [rbp-0x220], rdi\n        inc      r8d\n        mov      dword ptr [rbp-0x98], r8d\n        test     ecx, ecx\n-       jne      G_M21797_IG72\n\u002B       jne      G_M21797_IG71\n \t\t\t\t\t\t;; size=64 bbWeight=4 PerfScore 59.00\n-G_M21797_IG88:\n\u002BG_M21797_IG87:\n        mov      gword ptr [rbp-0xA8], r12\n        mov      r9, gword ptr [rbp-0x220]\n-       jmp      G_M21797_IG83\n\u002B       jmp      G_M21797_IG82\n \t\t\t\t\t\t;; size=19 bbWeight=2 PerfScore 8.00\n-G_M21797_IG89:\n\u002BG_M21797_IG88:\n        mov      rdi, r15\n        mov      rax, qword ptr [r15]\n        mov      rax, qword ptr [rax\u002B0x48]\n@@ -1409,30 \u002B1395,30 @@ G_M21797_IG89:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=64 bbWeight=0 PerfScore 0.00\n-G_M21797_IG90:\n\u002BG_M21797_IG89:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M21797_IG91:\n\u002BG_M21797_IG90:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M21797_IG92:\n\u002BG_M21797_IG91:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M21797_IG24\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M21797_IG93:\n\u002BG_M21797_IG92:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[System.Data.Entity.Core.Mapping.AssociationSetMapping]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M21797_IG30\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M21797_IG94:\n\u002BG_M21797_IG93:\n        mov      rdi, gword ptr [rax\u002B0x38]\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.AssociationSet:get_ElementType():System.Data.Entity.Core.Metadata.Edm.AssociationType:this\n        cmp      dword ptr [rdi], edi\n@@ -1475,20 \u002B1461,20 @@ G_M21797_IG94:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=160 bbWeight=0 PerfScore 0.00\n-G_M21797_IG95:\n\u002BG_M21797_IG94:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M21797_IG96:\n\u002BG_M21797_IG95:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M21797_IG97:\n\u002BG_M21797_IG96:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 5367, prolog size 87, PerfScore 1800.65, instruction count 1062, allocated bytes for code 5367 (MethodHash=0b26aada) for method System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration:Configure(System.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping,System.Collections.Generic.ICollection\u00601[System.Data.Entity.Core.Metadata.Edm.EntitySet],System.Data.Entity.Core.Common.DbProviderManifest,System.Data.Entity.Core.Metadata.Edm.EntityType,byref,bool,int,int,System.Collections.Generic.IDictionary\u00602[System.String,System.Object]):this (FullOpts)\n\u002B; Total bytes of code 5315, prolog size 87, PerfScore 1792.90, instruction count 1050, allocated bytes for code 5315 (MethodHash=0b26aada) for method System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration:Configure(System.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping,System.Collections.Generic.ICollection\u00601[System.Data.Entity.Core.Metadata.Edm.EntitySet],System.Data.Entity.Core.Common.DbProviderManifest,System.Data.Entity.Core.Metadata.Edm.EntityType,byref,bool,int,int,System.Collections.Generic.IDictionary\u00602[System.String,System.Object]):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":5367,"DiffBytes":5315},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollectionAsync[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.Numerics.Vector\u00601[float]]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.Nullable\u00601[int],MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M16561_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M16561_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M16561_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.Numerics.Vector\u00601[float]]:Render(MongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M16561_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M16561_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M16561_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M16561_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M16561_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M16561_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M16561_IG07:\n        test     rax, rax\n-       je       SHORT G_M16561_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M16561_IG08:\n\u002B       je       SHORT G_M16561_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M16561_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M16561_IG10\n\u002B       jmp      SHORT G_M16561_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M16561_IG09:\n\u002BG_M16561_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M16561_IG10:\n\u002BG_M16561_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M16561_IG14\n\u002B       je       SHORT G_M16561_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M16561_IG11:\n\u002BG_M16561_IG08:\n        test     rax, rax\n-       je       SHORT G_M16561_IG15\n\u002B       je       SHORT G_M16561_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M16561_IG12:\n\u002BG_M16561_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M16561_IG15\n\u002B       jne      SHORT G_M16561_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M16561_IG13:\n\u002BG_M16561_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M16561_IG15\n\u002B       je       SHORT G_M16561_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M16561_IG14:\n\u002BG_M16561_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M16561_IG22\n\u002B       jmp      SHORT G_M16561_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M16561_IG15:\n\u002BG_M16561_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M16561_IG20\n\u002B       je       SHORT G_M16561_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M16561_IG16:\n\u002BG_M16561_IG13:\n        test     rax, rax\n-       je       SHORT G_M16561_IG18\n\u002B       je       SHORT G_M16561_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M16561_IG17:\n\u002BG_M16561_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M16561_IG19\n\u002B       je       SHORT G_M16561_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M16561_IG18:\n\u002BG_M16561_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M16561_IG21\n\u002B       jmp      SHORT G_M16561_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M16561_IG19:\n\u002BG_M16561_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M16561_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M16561_IG21\n\u002B       jmp      SHORT G_M16561_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M16561_IG20:\n\u002BG_M16561_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M16561_IG21:\n\u002BG_M16561_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M16561_IG22:\n\u002BG_M16561_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M16561_IG27\n\u002B       je       G_M16561_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M16561_IG27\n\u002B       je       G_M16561_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M16561_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.Nullable\u00601[int],System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M16561_IG24\n\u002B       jne      SHORT G_M16561_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M16561_IG23:\n\u002BG_M16561_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M16561_IG24:\n\u002BG_M16561_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M16561_IG25:\n-       add      rsp, 232\n\u002BG_M16561_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M16561_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M16561_IG26:\n\u002BG_M16561_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M16561_IG27:\n\u002BG_M16561_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M16561_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=0f0bbf4e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollectionAsync[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=0f0bbf4e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollectionAsync[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Core.EventService:ListAutoPagingAsync(Stripe.V2.Core.EventListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.Event]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.Core.EventService:ListAutoPagingAsync(Stripe.V2.Core.EventListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.Event]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Core.EventService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Core.EventListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Core.EventListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.Event]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.Event]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.Event]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.Event]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M23401_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M23401_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/core/events\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M23401_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M23401_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.Event]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M23401_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M23401_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M23401_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.Event]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M23401_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M23401_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=f8e4a496) for method Stripe.V2.Core.EventService:ListAutoPagingAsync(Stripe.V2.Core.EventListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.Event]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=f8e4a496) for method Stripe.V2.Core.EventService:ListAutoPagingAsync(Stripe.V2.Core.EventListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.Event]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingService:ConfigureAssociationSetMappingForeignKeys(System.Data.Entity.Core.Metadata.Edm.EntitySet):this (FullOpts)","Category":"improvement","Description":"1,404 -\u003E 1,352 bytes (-52)","ExtraInfo":null,"Diff":"@@ -8,10 \u002B8,10 @@\n ; 0 inlinees with PGO data; 36 single block inlinees; 15 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T32] (  4,  5   )     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingService\u003E\n-;  V01 arg1         [V01,T41] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySet\u003E\n\u002B;  V00 this         [V00,T30] (  4,  5   )     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingService\u003E\n\u002B;  V01 arg1         [V01,T40] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySet\u003E\n ;  V02 loc0         [V02,T16] (  8, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingService\u002B\u003C\u003Ec__DisplayClass7_0\u003E\n-;  V03 loc1         [V03,T12] (  6, 13   )     ref  -\u003E  [rbp-0x48]  class-hnd EH-live single-def \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Data.Entity.Core.Mapping.AssociationSetMapping]\u003E\n\u002B;  V03 loc1         [V03,T11] (  6, 13   )     ref  -\u003E  [rbp-0x48]  class-hnd EH-live single-def \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Data.Entity.Core.Mapping.AssociationSetMapping]\u003E\n ;* V04 loc2         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.AssociationSetMapping,bool]\u003E\n ;  V05 loc3         [V05,T02] ( 10, 26   )     ref  -\u003E  r15         class-hnd \u003CSystem.Data.Entity.Core.Mapping.AssociationSetMapping\u003E\n ;  V06 loc4         [V06    ] (  1,  4   )     ref  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationEndMember\u003E\n@@ -19,21 \u002B19,21 @@\n ;* V08 loc6         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Data.Entity.Core.Mapping.EndPropertyMapping\u003E\n ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V10 tmp1         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingService\u002B\u003C\u003Ec__DisplayClass7_0\u003E\n-;  V11 tmp2         [V11,T44] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.EntityContainerMapping,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.AssociationSetMapping]]\u003E\n-;  V12 tmp3         [V12,T33] (  4,  7   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.EntityContainerMapping]\u003E\n\u002B;  V11 tmp2         [V11,T43] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.EntityContainerMapping,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.AssociationSetMapping]]\u003E\n\u002B;  V12 tmp3         [V12,T31] (  4,  7   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.EntityContainerMapping]\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V14 tmp5         [V14,T52] (  4,  3   )     ref  -\u003E  r13        \n-;  V15 tmp6         [V15,T45] (  2,  4   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.AssociationSetMapping,bool]\u003E\n-;  V16 tmp7         [V16,T43] (  3,  4   )     ref  -\u003E  r12         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.AssociationSetMapping]\u003E\n\u002B;  V14 tmp5         [V14,T51] (  4,  3   )     ref  -\u003E  r13        \n\u002B;  V15 tmp6         [V15,T44] (  2,  4   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.AssociationSetMapping,bool]\u003E\n\u002B;  V16 tmp7         [V16,T42] (  3,  4   )     ref  -\u003E  r12         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.AssociationSetMapping]\u003E\n ;* V17 tmp8         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V18 tmp9         [V18,T51] (  4,  3.50)     ref  -\u003E  rdx        \n-;  V19 tmp10        [V19,T07] (  2, 16   )     ref  -\u003E  r13         class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationEndMember\u003E\n-;  V20 tmp11        [V20,T24] (  2,  8   )     ref  -\u003E  r13         class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationEndMember\u003E\n-;  V21 tmp12        [V21,T34] (  3,  6   )     ref  -\u003E  r13        \n-;  V22 tmp13        [V22,T25] (  2,  8   )     ref  -\u003E  r12         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySet\u003E\n-;  V23 tmp14        [V23,T13] (  3, 12   )     ref  -\u003E  r15         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n-;  V24 tmp15        [V24,T26] (  2,  8   )     ref  -\u003E  [rbp-0x50]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n-;  V25 tmp16        [V25,T27] (  2,  8   )     ref  -\u003E  rdx         class-hnd \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ScalarPropertyMapping,System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n\u002B;  V18 tmp9         [V18,T50] (  4,  3.50)     ref  -\u003E  rdx        \n\u002B;  V19 tmp10        [V19,T06] (  2, 16   )     ref  -\u003E  r13         class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationEndMember\u003E\n\u002B;  V20 tmp11        [V20,T22] (  2,  8   )     ref  -\u003E  r13         class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationEndMember\u003E\n\u002B;  V21 tmp12        [V21,T32] (  3,  6   )     ref  -\u003E  r13        \n\u002B;  V22 tmp13        [V22,T23] (  2,  8   )     ref  -\u003E  r12         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntitySet\u003E\n\u002B;  V23 tmp14        [V23,T12] (  3, 12   )     ref  -\u003E  r15         class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n\u002B;  V24 tmp15        [V24,T24] (  2,  8   )     ref  -\u003E  [rbp-0x50]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n\u002B;  V25 tmp16        [V25,T25] (  2,  8   )     ref  -\u003E  rdx         class-hnd \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ScalarPropertyMapping,System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n ;* V26 tmp17        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impSpillLclRefs\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.ScalarPropertyMapping]\u003E\n ;* V27 tmp18        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V28 tmp19        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -42,55 \u002B42,55 @@\n ;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;  V32 tmp23        [V32,T21] (  4,  8   )     ref  -\u003E  rdx        \n ;  V33 tmp24        [V33,T03] (  5, 20   )     ref  -\u003E  r13         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ScalarPropertyMapping,System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n-;  V34 tmp25        [V34,T38] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.AssociationSetMapping,bool]\u003E\n-;  V35 tmp26        [V35,T39] (  5,  5   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.EntityContainerMapping,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.AssociationSetMapping]]\u003E\n\u002B;  V34 tmp25        [V34,T37] (  5,  5   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.AssociationSetMapping,bool]\u003E\n\u002B;  V35 tmp26        [V35,T38] (  5,  5   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.EntityContainerMapping,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.AssociationSetMapping]]\u003E\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping\u003E\n-;  V37 tmp28        [V37,T54] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingService\u002B\u003C\u003Ec\u003E\n\u002B;  V37 tmp28        [V37,T53] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingService\u002B\u003C\u003Ec\u003E\n ;* V38 tmp29        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.EntityContainerMapping]\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.EntityContainerMapping,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.AssociationSetMapping]]\u003E\n... diff truncated; middle omitted ...\n        cmp      qword ptr [rdi], rcx\n-       je       SHORT G_M60690_IG28\n\u002B       je       SHORT G_M60690_IG26\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 3.25\n-G_M60690_IG27:\n\u002BG_M60690_IG25:\n        mov      rsi, rax\n        mov      rdi, rcx\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        mov      rdi, rax\n \t\t\t\t\t\t;; size=21 bbWeight=0.50 PerfScore 2.00\n-G_M60690_IG28:\n\u002BG_M60690_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.AssociationType:get_TargetEnd():System.Data.Entity.Core.Metadata.Edm.AssociationEndMember:this\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.Data.Entity.Core.Metadata.Edm.AssociationType:get_TargetEnd():System.Data.Entity.Core.Metadata.Edm.AssociationEndMember:this\n@@ -349,49 \u002B332,49 @@ G_M60690_IG28:\n        cmp      rax, gword ptr [r14\u002B0x08]\n        jne      G_M60690_IG12\n \t\t\t\t\t\t;; size=51 bbWeight=2 PerfScore 33.50\n-G_M60690_IG29:\n\u002BG_M60690_IG27:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Mapping.AssociationSetMapping:get_SourceEndMapping():System.Data.Entity.Core.Mapping.EndPropertyMapping:this\n        call     [rax]System.Data.Entity.Core.Mapping.AssociationSetMapping:get_SourceEndMapping():System.Data.Entity.Core.Mapping.EndPropertyMapping:this\n        mov      rdi, gword ptr [rax\u002B0x20]\n        cmp      rdi, gword ptr [rbp-0x38]\n-       jne      SHORT G_M60690_IG30\n\u002B       jne      SHORT G_M60690_IG28\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Mapping.AssociationSetMapping:get_TargetEndMapping():System.Data.Entity.Core.Mapping.EndPropertyMapping:this\n        call     [rax]System.Data.Entity.Core.Mapping.AssociationSetMapping:get_TargetEndMapping():System.Data.Entity.Core.Mapping.EndPropertyMapping:this\n        mov      r13, rax\n-       jmp      SHORT G_M60690_IG31\n\u002B       jmp      SHORT G_M60690_IG29\n \t\t\t\t\t\t;; size=45 bbWeight=2 PerfScore 26.50\n-G_M60690_IG30:\n\u002BG_M60690_IG28:\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Mapping.AssociationSetMapping:get_SourceEndMapping():System.Data.Entity.Core.Mapping.EndPropertyMapping:this\n        call     [rax]System.Data.Entity.Core.Mapping.AssociationSetMapping:get_SourceEndMapping():System.Data.Entity.Core.Mapping.EndPropertyMapping:this\n        mov      r13, rax\n \t\t\t\t\t\t;; size=18 bbWeight=2 PerfScore 7.50\n-G_M60690_IG31:\n\u002BG_M60690_IG29:\n        mov      r12, gword ptr [r14\u002B0x08]\n        mov      rdi, gword ptr [r15\u002B0x40]\n        test     rdi, rdi\n-       je       SHORT G_M60690_IG32\n\u002B       je       SHORT G_M60690_IG30\n        mov      rdi, gword ptr [rdi\u002B0x20]\n        mov      rax, rdi\n        test     rax, rax\n-       je       SHORT G_M60690_IG32\n\u002B       je       SHORT G_M60690_IG30\n        mov      rax, rdi\n        mov      rax, gword ptr [rax\u002B0x20]\n        test     rax, rax\n-       je       SHORT G_M60690_IG32\n\u002B       je       SHORT G_M60690_IG30\n        mov      rdi, gword ptr [rdi\u002B0x20]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x38]System.Data.Entity.Core.Metadata.Edm.EntitySet:get_ElementType():System.Data.Entity.Core.Metadata.Edm.EntityType:this\n        mov      r15, rax\n-       jmp      SHORT G_M60690_IG33\n\u002B       jmp      SHORT G_M60690_IG31\n \t\t\t\t\t\t;; size=56 bbWeight=2 PerfScore 47.00\n-G_M60690_IG32:\n\u002BG_M60690_IG30:\n        xor      r15, r15\n \t\t\t\t\t\t;; size=3 bbWeight=2 PerfScore 0.50\n-G_M60690_IG33:\n\u002BG_M60690_IG31:\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.RelationshipEndMember:GetEntityType():System.Data.Entity.Core.Metadata.Edm.EntityType:this\n        cmp      dword ptr [rdi], edi\n@@ -402,13 \u002B385,13 @@ G_M60690_IG33:\n        mov      gword ptr [rbp-0x58], rax\n        mov      rsi, gword ptr [r13\u002B0x28]\n        test     rsi, rsi\n-       je       G_M60690_IG36\n\u002B       je       G_M60690_IG34\n        lea      rdi, bword ptr [rax\u002B0x08]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, 0xD1FFAB1E      ; data for System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingService\u002B\u003C\u003Ec:\u003C\u003E9__7_2\n        mov      rdx, gword ptr [rdi]\n        test     rdx, rdx\n-       jne      SHORT G_M60690_IG34\n\u002B       jne      SHORT G_M60690_IG32\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[System.Data.Entity.Core.Mapping.ScalarPropertyMapping,System.Data.Entity.Core.Metadata.Edm.EdmProperty]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n@@ -423,7 \u002B406,7 @@ G_M60690_IG33:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdx, r13\n \t\t\t\t\t\t;; size=156 bbWeight=2 PerfScore 52.00\n-G_M60690_IG34:\n\u002BG_M60690_IG32:\n        mov      rsi, gword ptr [rbp-0x58]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:Select[System.Data.Entity.Core.Mapping.ScalarPropertyMapping,System.Data.Entity.Core.Metadata.Edm.EdmProperty](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ScalarPropertyMapping],System.Func\u00602[System.Data.Entity.Core.Mapping.ScalarPropertyMapping,System.Data.Entity.Core.Metadata.Edm.EdmProperty]):System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:Select[System.__Canon,System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Func\u00602[System.__Canon,System.__Canon]):System.Collections.Generic.IEnumerable\u00601[System.__Canon]\n@@ -437,25 \u002B420,25 @@ G_M60690_IG34:\n        call     [rax]System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingService:MarkColumnsAsNonNullableIfNoTableSharing(System.Data.Entity.Core.Metadata.Edm.EntitySet,System.Data.Entity.Core.Metadata.Edm.EntityType,System.Data.Entity.Core.Metadata.Edm.EntityType,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]):this\n        jmp      G_M60690_IG12\n \t\t\t\t\t\t;; size=59 bbWeight=2 PerfScore 23.50\n-G_M60690_IG35:\n\u002BG_M60690_IG33:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M60690_IG36:\n\u002BG_M60690_IG34:\n        mov      edi, 20\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M60690_IG37:\n\u002BG_M60690_IG35:\n        mov      rdi, gword ptr [rbp-0x48]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        nop      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.50\n-G_M60690_IG38:\n\u002BG_M60690_IG36:\n        add      rsp, 56\n        pop      rbx\n        pop      r12\n@@ -465,35 \u002B448,35 @@ G_M60690_IG38:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M60690_IG39:\n\u002BG_M60690_IG37:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M60690_IG40:\n\u002BG_M60690_IG38:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[System.Data.Entity.Core.Mapping.AssociationSetMapping]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M60690_IG08\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M60690_IG41:\n\u002BG_M60690_IG39:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M60690_IG42:\n\u002BG_M60690_IG40:\n        cmp      gword ptr [rbp-0x48], 0\n-       je       SHORT G_M60690_IG43\n\u002B       je       SHORT G_M60690_IG41\n        mov      rdi, gword ptr [rbp-0x48]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M60690_IG43:\n\u002BG_M60690_IG41:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M60690_IG44:\n\u002BG_M60690_IG42:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1404, prolog size 41, PerfScore 548.71, instruction count 312, allocated bytes for code 1404 (MethodHash=221f12ed) for method System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingService:ConfigureAssociationSetMappingForeignKeys(System.Data.Entity.Core.Metadata.Edm.EntitySet):this (FullOpts)\n\u002B; Total bytes of code 1352, prolog size 41, PerfScore 518.71, instruction count 299, allocated bytes for code 1352 (MethodHash=221f12ed) for method System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingService:ConfigureAssociationSetMappingForeignKeys(System.Data.Entity.Core.Metadata.Edm.EntitySet):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1404,"DiffBytes":1352},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollectionAsync[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"951 -\u003E 888 bytes (-63)","ExtraInfo":null,"Diff":"@@ -10,18 \u002B10,18 @@\n ;\n ;  V00 this         [V00,T03] (  5,  5   )     ref  -\u003E  r14         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]\u003E\n ;  V01 TypeCtx      [V01,T02] (  7,  5.40)    long  -\u003E  r15         single-def\n-;  V02 arg1         [V02,T06] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V02 arg1         [V02,T05] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V03 arg2         [V03,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.__Canon]\u003E\n ;  V04 arg3         [V04,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T22] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V06 loc0         [V06,T21] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n-;  V08 loc2         [V08,T23] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n-;  V09 loc3         [V09,T21] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V08 loc2         [V08,T22] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n\u002B;  V09 loc3         [V09,T20] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V12 tmp2         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V13 tmp3         [V13,T29] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V13 tmp3         [V13,T28] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V14 tmp4         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V15 tmp5         [V15    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V16 tmp6         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n@@ -39,26 \u002B39,26 @@\n ;* V28 tmp18        [V28    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V29 tmp19        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V30 tmp20        [V30    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V31 tmp21        [V31,T20] (  3,  2   )     int  -\u003E  registers  \n-;  V32 tmp22        [V32,T05] (  4,  7   )     ref  -\u003E  [rbp-0xD8]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V33 tmp23        [V33    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V34 tmp24        [V34,T18] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V35 tmp25        [V35,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V31 tmp21        [V31,T19] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V32 tmp22        [V32,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V33 tmp23        [V33    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V34 tmp24        [V34,T18] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V37 tmp27        [V37,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V38 tmp28        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V39 tmp29        [V39,T26] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V39 tmp29        [V39,T25] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V40 tmp30        [V40    ] ( 11, 10.50)  struct (88) [rbp-0xD0]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.Nullable\u00601[int],MongoDB.Bson.BsonDocument]\u003E\n ;* V41 tmp31        [V41    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V42 tmp32        [V42,T13] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V43 tmp33        [V43,T17] (  4,  3.50)     ref  -\u003E  rax        \n-;  V44 tmp34        [V44,T14] (  2,  2   )     ref  -\u003E  [rbp-0xE0]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp35        [V45,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V15.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp36        [V46,T25] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V15.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp34        [V44,T14] (  2,  2   )     ref  -\u003E  [rbp-0xD8]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp35        [V45,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V15.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp36        [V46,T24] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V15.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V22._name (fldOffset=0x0)\u0022 P-DEP\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V22._value (fldOffset=0x8)\u0022 P-DEP\n-;  V49 tmp39        [V49,T27] (  2,  1   )     ref  -\u003E  rax         \u0022field V23._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V50 tmp40        [V50,T28] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V23._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V49 tmp39        [V49,T26] (  2,  1   )     ref  -\u003E  rax         \u0022field V23._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V50 tmp40        [V50,T27] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V23._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V51 tmp41        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V41.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;  V52 tmp42        [V52,T15] (  2,  4   )    long  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V53 tmp43        [V53,T16] (  2,  4   )    long  -\u003E  rsi         \u0022argument with side effect\u0022\n@@ -67,7 \u002B67,7 @@\n ;  V56 rat2         [V56,T12] (  3,  4   )    long  -\u003E  rsi         \u0022runtime lookup\u0022\n ;  V57 rat3         [V57,T08] (  3,  5.60)    long  -\u003E  rsi         \u0022fgMakeTemp is creating a new local variable\u0022\n ;\n-; Lcl frame size = 248\n\u002B; Lcl frame size = 232\n \n G_M45777_IG01:\n        push     rbp\n@@ -76,14 \u002B76,14 @@ G_M45777_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 248\n-       lea      rbp, [rsp\u002B0x120]\n\u002B       sub      rsp, 232\n\u002B       lea      rbp, [rsp\u002B0x110]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0xD0], zmm8\n        vmovdqu32 zmmword ptr [rbp-0x90], zmm8\n        vmovdqu  ymmword ptr [rbp-0x50], ymm8\n        mov      qword ptr [rbp-0x30], rsi\n-       mov      gword ptr [rbp-0xE0], r9\n\u002B       mov      gword ptr [rbp-0xD8], r9\n        mov      r14, rdi\n        mov      r15, rsi\n        mov      r12, rdx\n@@ -99,7 \u002B99,7 @@ G_M45777_IG02:\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M45777_IG29\n\u002B       je       G_M45777_IG26\n \t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 9.25\n G_M45777_IG03:\n        mov      rsi, r13\n@@ -149,90 \u002B149,70 @@ G_M45777_IG05:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.__Canon]:Render(MongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0xD8], rax\n-       test     rax, rax\n-       je       G_M45777_IG30\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M45777_IG07\n-\t\t\t\t\t\t;; size=181 bbWeight=1 PerfScore 43.25\n-G_M45777_IG06:\n-       lea      rsi, [rbp-0x78]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M45777_IG08\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M45777_IG07:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M45777_IG27\n        lea      rdx, [rbp-0x78]\n-       mov      rsi, gword ptr [rbp-0xD8]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M45777_IG08:\n        test     rax, rax\n-       je       SHORT G_M45777_IG10\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M45777_IG09:\n\u002B       je       SHORT G_M45777_IG07\n\u002B\t\t\t\t\t\t;; size=175 bbWeight=1 PerfScore 42.50\n\u002BG_M45777_IG06:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M45777_IG11\n\u002B       jmp      SHORT G_M45777_IG08\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M45777_IG10:\n\u002BG_M45777_IG07:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M45777_IG11:\n\u002BG_M45777_IG08:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M45777_IG15\n\u002B       je       SHORT G_M45777_IG12\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M45777_IG12:\n\u002BG_M45777_IG09:\n        test     rax, rax\n-       je       SHORT G_M45777_IG16\n\u002B       je       SHORT G_M45777_IG13\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M45777_IG13:\n\u002BG_M45777_IG10:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M45777_IG16\n\u002B       jne      SHORT G_M45777_IG13\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M45777_IG14:\n\u002BG_M45777_IG11:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M45777_IG16\n\u002B       je       SHORT G_M45777_IG13\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M45777_IG15:\n\u002BG_M45777_IG12:\n        mov      ecx, 1\n-       jmp      SHORT G_M45777_IG23\n\u002B       jmp      SHORT G_M45777_IG20\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M45777_IG16:\n\u002BG_M45777_IG13:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M45777_IG21\n\u002B       je       SHORT G_M45777_IG18\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M45777_IG17:\n\u002BG_M45777_IG14:\n        test     rax, rax\n-       je       SHORT G_M45777_IG19\n\u002B       je       SHORT G_M45777_IG16\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M45777_IG18:\n\u002BG_M45777_IG15:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M45777_IG20\n\u002B       je       SHORT G_M45777_IG17\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M45777_IG19:\n\u002BG_M45777_IG16:\n        xor      ecx, ecx\n-       jmp      SHORT G_M45777_IG22\n\u002B       jmp      SHORT G_M45777_IG19\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M45777_IG20:\n\u002BG_M45777_IG17:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -240,30 \u002B220,30 @@ G_M45777_IG20:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M45777_IG22\n\u002B       jmp      SHORT G_M45777_IG19\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M45777_IG21:\n\u002BG_M45777_IG18:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M45777_IG22:\n\u002BG_M45777_IG19:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M45777_IG23:\n\u002BG_M45777_IG20:\n        mov      dword ptr [rbp-0x6C], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M45777_IG31\n\u002B       je       G_M45777_IG28\n        cmp      dword ptr [rbp-0x6C], 0\n-       je       G_M45777_IG31\n\u002B       je       G_M45777_IG28\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rsi, qword ptr [rdi\u002B0x20]\n        test     rsi, rsi\n-       je       G_M45777_IG28\n\u002B       je       G_M45777_IG25\n \t\t\t\t\t\t;; size=55 bbWeight=1 PerfScore 14.75\n-G_M45777_IG24:\n\u002BG_M45777_IG21:\n        mov      rdi, r14\n        mov      rdx, r13\n        mov      rcx, rbx\n@@ -278,7 \u002B258,7 @@ G_M45777_IG24:\n        mov      gword ptr [rbp-0xC0], rax\n        mov      byte  ptr [rbp-0xA0], sil\n        mov      qword ptr [rbp-0x98], rdi\n-       mov      rbx, gword ptr [rbp-0xE0]\n\u002B       mov      rbx, gword ptr [rbp-0xD8]\n        mov      gword ptr [rbp-0x90], rbx\n        mov      dword ptr [rbp-0xB0], -1\n        lea      rsi, [rbp-0xD0]\n@@ -287,19 \u002B267,19 @@ G_M45777_IG24:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.Nullable\u00601[int],System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA8]\n        test     rax, rax\n-       jne      SHORT G_M45777_IG26\n\u002B       jne      SHORT G_M45777_IG23\n \t\t\t\t\t\t;; size=139 bbWeight=1 PerfScore 23.50\n-G_M45777_IG25:\n\u002BG_M45777_IG22:\n        lea      rdi, [rbp-0xA8]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M45777_IG26:\n\u002BG_M45777_IG23:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M45777_IG27:\n-       add      rsp, 248\n\u002BG_M45777_IG24:\n\u002B       add      rsp, 232\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -308,15 \u002B288,15 @@ G_M45777_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M45777_IG28:\n\u002BG_M45777_IG25:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M45777_IG24\n\u002B       jmp      G_M45777_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M45777_IG29:\n\u002BG_M45777_IG26:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -324,13 \u002B304,13 @@ G_M45777_IG29:\n        mov      rdi, rax\n        jmp      G_M45777_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M45777_IG30:\n\u002BG_M45777_IG27:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M45777_IG31:\n\u002BG_M45777_IG28:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -343,5 \u002B323,5 @@ G_M45777_IG31:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 951, prolog size 59, PerfScore 144.30, instruction count 211, allocated bytes for code 951 (MethodHash=b2204d2e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollectionAsync[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 888, prolog size 59, PerfScore 134.92, instruction count 197, allocated bytes for code 888 (MethodHash=b2204d2e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollectionAsync[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":951,"DiffBytes":888},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Core.FeeBatchService:ListAutoPagingAsync(Stripe.V2.Core.FeeBatchListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.FeeBatch]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.Core.FeeBatchService:ListAutoPagingAsync(Stripe.V2.Core.FeeBatchListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.FeeBatch]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Core.FeeBatchService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Core.FeeBatchListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Core.FeeBatchListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.FeeBatch]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.FeeBatch]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.FeeBatch]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.FeeBatch]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M49727_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M49727_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/core/fee_batches\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M49727_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M49727_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.FeeBatch]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M49727_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M49727_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M49727_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.FeeBatch]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M49727_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M49727_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=4dea3dc0) for method Stripe.V2.Core.FeeBatchService:ListAutoPagingAsync(Stripe.V2.Core.FeeBatchListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.FeeBatch]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=4dea3dc0) for method Stripe.V2.Core.FeeBatchService:ListAutoPagingAsync(Stripe.V2.Core.FeeBatchListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.FeeBatch]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration:\u003CUpdateTableNameForSubTypes\u003Eb__62_2(System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration):System.Data.Entity.Utilities.DatabaseName:this (FullOpts)","Category":"improvement","Description":"185 -\u003E 133 bytes (-52)","ExtraInfo":null,"Diff":"@@ -1,99 \u002B1,82 @@\n ; Assembly listing for method System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration:\u003CUpdateTableNameForSubTypes\u003Eb__62_2(System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration):System.Data.Entity.Utilities.DatabaseName:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 4 single block inlinees; 3 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T00] (  4,  3.50)     ref  -\u003E  rdi         this class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration\u003E\n ;  V01 arg1         [V01,T01] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u003E\n ;* V02 loc0         [V02    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Data.Entity.Utilities.DatabaseName\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V04 tmp1         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Data.Entity.Utilities.DatabaseName\u003E\n-;  V05 tmp2         [V05,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Utilities.DatabaseName\u003E\n-;  V06 tmp3         [V06,T02] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\u003E\n-;  V07 tmp4         [V07    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V05 tmp2         [V05,T02] (  4,  3   )     ref  -\u003E  r15         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Utilities.DatabaseName\u003E\n\u002B;  V06 tmp3         [V06,T03] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\u003E\n\u002B;  V07 tmp4         [V07    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V08 tmp5         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V09 tmp6         [V09,T05] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u003E\n-;  V10 tmp7         [V10,T04] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\u003E\n\u002B;  V09 tmp6         [V09,T04] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u003E\n\u002B;* V10 tmp7         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\u003E\n ;* V11 tmp8         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u003E\n ;\n ; Lcl frame size = 16\n \n G_M52331_IG01:\n        push     rbp\n        push     r15\n        push     rbx\n        sub      rsp, 16\n        lea      rbp, [rsp\u002B0x20]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x18], rax\n        mov      rbx, rsi\n \t\t\t\t\t\t;; size=22 bbWeight=1 PerfScore 5.25\n G_M52331_IG02:\n        cmp      byte  ptr [rdi\u002B0x70], 0\n-       je       SHORT G_M52331_IG06\n\u002B       je       SHORT G_M52331_IG04\n \t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 3.00\n G_M52331_IG03:\n-       mov      r15, gword ptr [rdi\u002B0x40]\n-       test     r15, r15\n-       je       SHORT G_M52331_IG09\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M52331_IG04\n-       lea      rsi, [rbp-0x18]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M52331_IG05\n-\t\t\t\t\t\t;; size=58 bbWeight=0.50 PerfScore 9.00\n-G_M52331_IG04:\n\u002B       mov      rsi, gword ptr [rdi\u002B0x40]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M52331_IG07\n        lea      rdx, [rbp-0x18]\n-       mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration],byref):System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M52331_IG05:\n        cmp      byte  ptr [rbp-0x18], 0\n-       je       SHORT G_M52331_IG10\n\u002B       je       SHORT G_M52331_IG08\n        mov      r15, gword ptr [rax\u002B0x08]\n-       jmp      SHORT G_M52331_IG07\n-\t\t\t\t\t\t;; size=12 bbWeight=0.50 PerfScore 3.00\n-G_M52331_IG06:\n\u002B       jmp      SHORT G_M52331_IG05\n\u002B\t\t\t\t\t\t;; size=47 bbWeight=0.50 PerfScore 6.62\n\u002BG_M52331_IG04:\n        xor      r15, r15\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M52331_IG07:\n\u002BG_M52331_IG05:\n        lea      rdi, bword ptr [rbx\u002B0x08]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rax, r15\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 2.00\n-G_M52331_IG08:\n\u002BG_M52331_IG06:\n        add      rsp, 16\n        pop      rbx\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 2.75\n-G_M52331_IG09:\n\u002BG_M52331_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M52331_IG10:\n\u002BG_M52331_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 185, prolog size 19, PerfScore 27.25, instruction count 51, allocated bytes for code 185 (MethodHash=48523394) for method System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration:\u003CUpdateTableNameForSubTypes\u003Eb__62_2(System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration):System.Data.Entity.Utilities.DatabaseName:this (FullOpts)\n\u002B; Total bytes of code 133, prolog size 19, PerfScore 19.75, instruction count 38, allocated bytes for code 133 (MethodHash=48523394) for method System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration:\u003CUpdateTableNameForSubTypes\u003Eb__62_2(System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration):System.Data.Entity.Utilities.DatabaseName:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":185,"DiffBytes":133},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollectionAsync[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],byte]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.Nullable\u00601[int],MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M53969_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M53969_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M53969_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],byte]:Render(MongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]):MongoDB.Driver.RenderedPipelineDefinition\u00601[byte]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M53969_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M53969_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M53969_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M53969_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M53969_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M53969_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M53969_IG07:\n        test     rax, rax\n-       je       SHORT G_M53969_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M53969_IG08:\n\u002B       je       SHORT G_M53969_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M53969_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M53969_IG10\n\u002B       jmp      SHORT G_M53969_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M53969_IG09:\n\u002BG_M53969_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M53969_IG10:\n\u002BG_M53969_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M53969_IG14\n\u002B       je       SHORT G_M53969_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M53969_IG11:\n\u002BG_M53969_IG08:\n        test     rax, rax\n-       je       SHORT G_M53969_IG15\n\u002B       je       SHORT G_M53969_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M53969_IG12:\n\u002BG_M53969_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M53969_IG15\n\u002B       jne      SHORT G_M53969_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M53969_IG13:\n\u002BG_M53969_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M53969_IG15\n\u002B       je       SHORT G_M53969_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M53969_IG14:\n\u002BG_M53969_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M53969_IG22\n\u002B       jmp      SHORT G_M53969_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M53969_IG15:\n\u002BG_M53969_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M53969_IG20\n\u002B       je       SHORT G_M53969_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M53969_IG16:\n\u002BG_M53969_IG13:\n        test     rax, rax\n-       je       SHORT G_M53969_IG18\n\u002B       je       SHORT G_M53969_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M53969_IG17:\n\u002BG_M53969_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M53969_IG19\n\u002B       je       SHORT G_M53969_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M53969_IG18:\n\u002BG_M53969_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M53969_IG21\n\u002B       jmp      SHORT G_M53969_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M53969_IG19:\n\u002BG_M53969_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M53969_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M53969_IG21\n\u002B       jmp      SHORT G_M53969_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M53969_IG20:\n\u002BG_M53969_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M53969_IG21:\n\u002BG_M53969_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M53969_IG22:\n\u002BG_M53969_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M53969_IG27\n\u002B       je       G_M53969_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M53969_IG27\n\u002B       je       G_M53969_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M53969_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.Nullable\u00601[int],System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M53969_IG24\n\u002B       jne      SHORT G_M53969_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M53969_IG23:\n\u002BG_M53969_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M53969_IG24:\n\u002BG_M53969_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M53969_IG25:\n-       add      rsp, 232\n\u002BG_M53969_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M53969_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M53969_IG26:\n\u002BG_M53969_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M53969_IG27:\n\u002BG_M53969_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M53969_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=65a92d2e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollectionAsync[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=65a92d2e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollectionAsync[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Core.FeeEntryService:ListAutoPagingAsync(Stripe.V2.Core.FeeEntryListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.FeeEntry]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.Core.FeeEntryService:ListAutoPagingAsync(Stripe.V2.Core.FeeEntryListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.FeeEntry]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Core.FeeEntryService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Core.FeeEntryListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Core.FeeEntryListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.FeeEntry]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.FeeEntry]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.FeeEntry]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.FeeEntry]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M26999_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M26999_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/core/fee_entries\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M26999_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M26999_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.FeeEntry]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M26999_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M26999_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M26999_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.FeeEntry]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M26999_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M26999_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=e0239688) for method Stripe.V2.Core.FeeEntryService:ListAutoPagingAsync(Stripe.V2.Core.FeeEntryListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.FeeEntry]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=e0239688) for method Stripe.V2.Core.FeeEntryService:ListAutoPagingAsync(Stripe.V2.Core.FeeEntryListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.FeeEntry]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration:GetTableName():System.Data.Entity.Utilities.DatabaseName:this (FullOpts)","Category":"improvement","Description":"158 -\u003E 106 bytes (-52)","ExtraInfo":null,"Diff":"@@ -1,89 \u002B1,69 @@\n ; Assembly listing for method System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration:GetTableName():System.Data.Entity.Utilities.DatabaseName:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 3 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T00] (  4,  3.50)     ref  -\u003E  rdi         this class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration\u003E\n ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V02 tmp1         [V02,T01] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\u003E\n-;  V03 tmp2         [V03    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x10]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V02 tmp1         [V02,T01] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\u003E\n\u002B;  V03 tmp2         [V03    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x08]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V04 tmp3         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V05 tmp4         [V05,T03] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u003E\n-;  V06 tmp5         [V06,T02] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\u003E\n\u002B;  V05 tmp4         [V05,T02] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u003E\n\u002B;* V06 tmp5         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\u003E\n ;* V07 tmp6         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u003E\n ;\n-; Lcl frame size = 8\n\u002B; Lcl frame size = 16\n \n G_M17979_IG01:\n        push     rbp\n-       push     rbx\n-       push     rax\n\u002B       sub      rsp, 16\n        lea      rbp, [rsp\u002B0x10]\n-\t\t\t\t\t\t;; size=8 bbWeight=1 PerfScore 3.50\n\u002B\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 1.75\n G_M17979_IG02:\n        cmp      byte  ptr [rdi\u002B0x70], 0\n-       je       SHORT G_M17979_IG07\n\u002B       je       SHORT G_M17979_IG05\n \t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 3.00\n G_M17979_IG03:\n-       mov      rbx, gword ptr [rdi\u002B0x40]\n-       test     rbx, rbx\n-       je       SHORT G_M17979_IG09\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M17979_IG04\n-       lea      rsi, [rbp-0x10]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M17979_IG05\n-\t\t\t\t\t\t;; size=58 bbWeight=0.50 PerfScore 9.00\n-G_M17979_IG04:\n-       lea      rdx, [rbp-0x10]\n-       mov      rsi, rbx\n\u002B       mov      rsi, gword ptr [rdi\u002B0x40]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M17979_IG07\n\u002B       lea      rdx, [rbp-0x08]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration],byref):System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M17979_IG05:\n-       cmp      byte  ptr [rbp-0x10], 0\n-       je       SHORT G_M17979_IG10\n\u002B       cmp      byte  ptr [rbp-0x08], 0\n\u002B       je       SHORT G_M17979_IG08\n        mov      rax, gword ptr [rax\u002B0x08]\n-\t\t\t\t\t\t;; size=10 bbWeight=0.50 PerfScore 2.00\n-G_M17979_IG06:\n-       add      rsp, 8\n-       pop      rbx\n\u002B\t\t\t\t\t\t;; size=45 bbWeight=0.50 PerfScore 5.62\n\u002BG_M17979_IG04:\n\u002B       add      rsp, 16\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M17979_IG07:\n\u002B\t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 0.88\n\u002BG_M17979_IG05:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M17979_IG08:\n-       add      rsp, 8\n-       pop      rbx\n\u002BG_M17979_IG06:\n\u002B       add      rsp, 16\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M17979_IG09:\n\u002B\t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 0.88\n\u002BG_M17979_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M17979_IG10:\n\u002BG_M17979_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 158, prolog size 8, PerfScore 22.00, instruction count 45, allocated bytes for code 158 (MethodHash=3bdfb9c4) for method System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration:GetTableName():System.Data.Entity.Utilities.DatabaseName:this (FullOpts)\n\u002B; Total bytes of code 106, prolog size 10, PerfScore 12.25, instruction count 29, allocated bytes for code 106 (MethodHash=3bdfb9c4) for method System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration:GetTableName():System.Data.Entity.Utilities.DatabaseName:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":158,"DiffBytes":106},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollectionAsync[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],double]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.Nullable\u00601[int],MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M13617_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M13617_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M13617_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],double]:Render(MongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]):MongoDB.Driver.RenderedPipelineDefinition\u00601[double]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M13617_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M13617_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M13617_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M13617_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M13617_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M13617_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M13617_IG07:\n        test     rax, rax\n-       je       SHORT G_M13617_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M13617_IG08:\n\u002B       je       SHORT G_M13617_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M13617_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M13617_IG10\n\u002B       jmp      SHORT G_M13617_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M13617_IG09:\n\u002BG_M13617_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M13617_IG10:\n\u002BG_M13617_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M13617_IG14\n\u002B       je       SHORT G_M13617_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M13617_IG11:\n\u002BG_M13617_IG08:\n        test     rax, rax\n-       je       SHORT G_M13617_IG15\n\u002B       je       SHORT G_M13617_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M13617_IG12:\n\u002BG_M13617_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M13617_IG15\n\u002B       jne      SHORT G_M13617_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M13617_IG13:\n\u002BG_M13617_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M13617_IG15\n\u002B       je       SHORT G_M13617_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M13617_IG14:\n\u002BG_M13617_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M13617_IG22\n\u002B       jmp      SHORT G_M13617_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M13617_IG15:\n\u002BG_M13617_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M13617_IG20\n\u002B       je       SHORT G_M13617_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M13617_IG16:\n\u002BG_M13617_IG13:\n        test     rax, rax\n-       je       SHORT G_M13617_IG18\n\u002B       je       SHORT G_M13617_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M13617_IG17:\n\u002BG_M13617_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M13617_IG19\n\u002B       je       SHORT G_M13617_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M13617_IG18:\n\u002BG_M13617_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M13617_IG21\n\u002B       jmp      SHORT G_M13617_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M13617_IG19:\n\u002BG_M13617_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M13617_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M13617_IG21\n\u002B       jmp      SHORT G_M13617_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M13617_IG20:\n\u002BG_M13617_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M13617_IG21:\n\u002BG_M13617_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M13617_IG22:\n\u002BG_M13617_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M13617_IG27\n\u002B       je       G_M13617_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M13617_IG27\n\u002B       je       G_M13617_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M13617_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.Nullable\u00601[int],System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M13617_IG24\n\u002B       jne      SHORT G_M13617_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M13617_IG23:\n\u002BG_M13617_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M13617_IG24:\n\u002BG_M13617_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M13617_IG25:\n-       add      rsp, 232\n\u002BG_M13617_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M13617_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M13617_IG26:\n\u002BG_M13617_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M13617_IG27:\n\u002BG_M13617_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M13617_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=6ea8cace) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollectionAsync[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=6ea8cace) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollectionAsync[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Core.Health.AlertService:ListAutoPagingAsync(Stripe.V2.Core.Health.AlertListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.Health.Alert]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.Core.Health.AlertService:ListAutoPagingAsync(Stripe.V2.Core.Health.AlertListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.Health.Alert]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Core.Health.AlertService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Core.Health.AlertListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Core.Health.AlertListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.Health.Alert]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.Health.Alert]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.Health.Alert]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.Health.Alert]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M34873_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M34873_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/core/health/alerts\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M34873_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M34873_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.Health.Alert]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M34873_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M34873_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M34873_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.Health.Alert]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M34873_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M34873_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=43bd77c6) for method Stripe.V2.Core.Health.AlertService:ListAutoPagingAsync(Stripe.V2.Core.Health.AlertListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.Health.Alert]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=43bd77c6) for method Stripe.V2.Core.Health.AlertService:ListAutoPagingAsync(Stripe.V2.Core.Health.AlertListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.Health.Alert]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration:ToTable(System.String,System.String):this (FullOpts)","Category":"improvement","Description":"499 -\u003E 447 bytes (-52)","ExtraInfo":null,"Diff":"@@ -9,28 \u002B9,28 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T00] (  7,  6.50)     ref  -\u003E  rbx         this class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration\u003E\n-;  V01 arg1         [V01,T04] (  5,  4   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.String\u003E\n-;  V02 arg2         [V02,T03] (  6,  4.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V01 arg1         [V01,T03] (  5,  4   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V02 arg2         [V02,T02] (  6,  4.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.String\u003E\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V04 tmp1         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V06 tmp3         [V06,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Utilities.DatabaseName\u003E\n\u002B;  V06 tmp3         [V06,T05] (  4,  4   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Utilities.DatabaseName\u003E\n ;* V07 tmp4         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V08 tmp5         [V08,T10] (  3,  2   )     ref  -\u003E  r13        \n-;  V09 tmp6         [V09,T06] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Utilities.DatabaseName\u003E\n\u002B;  V08 tmp5         [V08,T09] (  3,  2   )     ref  -\u003E  r12        \n\u002B;  V09 tmp6         [V09,T06] (  4,  4   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Utilities.DatabaseName\u003E\n ;  V10 tmp7         [V10,T07] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u003E\n ;  V11 tmp8         [V11,T01] (  7,  7   )     ref  -\u003E  r12         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\u003E\n-;  V12 tmp9         [V12,T12] (  3,  1.50)     ref  -\u003E  rdi         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration[]\u003E\n-;  V13 tmp10        [V13,T09] (  4,  2   )     int  -\u003E  rax         single-def \u0022Inline stloc first use temp\u0022\n-;  V14 tmp11        [V14,T02] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\u003E\n-;  V15 tmp12        [V15    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V12 tmp9         [V12,T11] (  3,  1.50)     ref  -\u003E  rdi         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration[]\u003E\n\u002B;  V13 tmp10        [V13,T08] (  4,  2   )     int  -\u003E  rax         single-def \u0022Inline stloc first use temp\u0022\n\u002B;  V14 tmp11        [V14,T04] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\u003E\n\u002B;  V15 tmp12        [V15    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V16 tmp13        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V17 tmp14        [V17,T11] (  3,  2   )     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u003E\n-;  V18 tmp15        [V18,T08] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\u003E\n\u002B;  V17 tmp14        [V17,T10] (  2,  2   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u003E\n\u002B;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\u003E\n ;* V19 tmp16        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V20 tmp17        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V21 tmp18        [V21,T13] (  3,  1.50)     ref  -\u003E  rsi        \n-;  V22 tmp19        [V22,T14] (  2,  1   )   ubyte  -\u003E  rdi         \u0022Inline return value spill temp\u0022\n\u002B;  V21 tmp18        [V21,T12] (  3,  1.50)     ref  -\u003E  rsi        \n\u002B;  V22 tmp19        [V22,T13] (  2,  1   )   ubyte  -\u003E  rdi         \u0022Inline return value spill temp\u0022\n ;* V23 tmp20        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V24 tmp21        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V25 tmp22        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -96,87 \u002B96,67 @@ G_M60781_IG04:\n        call     [rax]CORINFO_HELP_ARRADDR_ST\n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.62\n G_M60781_IG05:\n-       mov      r13, gword ptr [rbx\u002B0x40]\n-       test     r13, r13\n-       je       G_M60781_IG15\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M60781_IG07\n-\t\t\t\t\t\t;; size=43 bbWeight=1 PerfScore 8.25\n-G_M60781_IG06:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       mov      r12, rax\n-       jmp      SHORT G_M60781_IG08\n-\t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 5.00\n-G_M60781_IG07:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x40]\n\u002B       test     rsi, rsi\n\u002B       je       G_M60781_IG12\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration],byref):System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      r12, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M60781_IG08:\n\u002B       mov      r13, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M60781_IG16\n\u002B       je       G_M60781_IG13\n        mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.String:IsNullOrWhiteSpace(System.String):bool\n        call     [rax]System.String:IsNullOrWhiteSpace(System.String):bool\n        test     eax, eax\n-       je       SHORT G_M60781_IG10\n-\t\t\t\t\t\t;; size=29 bbWeight=1 PerfScore 6.75\n-G_M60781_IG09:\n\u002B       je       SHORT G_M60781_IG07\n\u002B\t\t\t\t\t\t;; size=71 bbWeight=1 PerfScore 14.25\n\u002BG_M60781_IG06:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Utilities.DatabaseName\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       lea      rdi, bword ptr [r13\u002B0x08]\n\u002B       mov      r12, rax\n\u002B       lea      rdi, bword ptr [r12\u002B0x08]\n        mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        xor      rdi, rdi\n-       mov      gword ptr [r13\u002B0x10], rdi\n-       jmp      SHORT G_M60781_IG13\n-\t\t\t\t\t\t;; size=38 bbWeight=0.50 PerfScore 3.25\n-G_M60781_IG10:\n\u002B       mov      gword ptr [r12\u002B0x10], rdi\n\u002B       jmp      SHORT G_M60781_IG10\n\u002B\t\t\t\t\t\t;; size=40 bbWeight=0.50 PerfScore 3.25\n\u002BG_M60781_IG07:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Utilities.DatabaseName\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r13, rax\n-       lea      rdi, bword ptr [r13\u002B0x08]\n\u002B       mov      r12, rax\n\u002B       lea      rdi, bword ptr [r12\u002B0x08]\n        mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        test     r15, r15\n-       je       SHORT G_M60781_IG11\n\u002B       je       SHORT G_M60781_IG08\n        cmp      dword ptr [r15\u002B0x08], 0\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       jne      SHORT G_M60781_IG11\n\u002B       jne      SHORT G_M60781_IG08\n        mov      rsi, r15\n-       jmp      SHORT G_M60781_IG12\n-\t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 5.38\n-G_M60781_IG11:\n\u002B       jmp      SHORT G_M60781_IG09\n\u002B\t\t\t\t\t\t;; size=58 bbWeight=0.50 PerfScore 5.38\n\u002BG_M60781_IG08:\n        xor      rsi, rsi\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M60781_IG12:\n-       lea      rdi, bword ptr [r13\u002B0x10]\n\u002BG_M60781_IG09:\n\u002B       lea      rdi, bword ptr [r12\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 0.75\n-G_M60781_IG13:\n-       lea      rdi, bword ptr [r12\u002B0x08]\n-       mov      rsi, r13\n\u002B\t\t\t\t\t\t;; size=10 bbWeight=0.50 PerfScore 0.75\n\u002BG_M60781_IG10:\n\u002B       lea      rdi, bword ptr [r13\u002B0x08]\n\u002B       mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration:UpdateTableNameForSubTypes():this\n        call     [rax]System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration:UpdateTableNameForSubTypes():this\n        nop      \n-\t\t\t\t\t\t;; size=29 bbWeight=1 PerfScore 5.50\n-G_M60781_IG14:\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 5.50\n\u002BG_M60781_IG11:\n        add      rsp, 8\n        pop      rbx\n        pop      r12\n@@ -186,17 \u002B166,17 @@ G_M60781_IG14:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M60781_IG15:\n\u002BG_M60781_IG12:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M60781_IG16:\n\u002BG_M60781_IG13:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 499, prolog size 22, PerfScore 76.50, instruction count 125, allocated bytes for code 499 (MethodHash=e42d1292) for method System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration:ToTable(System.String,System.String):this (FullOpts)\n\u002B; Total bytes of code 447, prolog size 22, PerfScore 68.50, instruction count 111, allocated bytes for code 447 (MethodHash=e42d1292) for method System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration:ToTable(System.String,System.String):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":499,"DiffBytes":447},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollectionAsync[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],int]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.Nullable\u00601[int],MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M39665_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M39665_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M39665_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],int]:Render(MongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]):MongoDB.Driver.RenderedPipelineDefinition\u00601[int]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M39665_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M39665_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M39665_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M39665_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M39665_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M39665_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M39665_IG07:\n        test     rax, rax\n-       je       SHORT G_M39665_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M39665_IG08:\n\u002B       je       SHORT G_M39665_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M39665_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M39665_IG10\n\u002B       jmp      SHORT G_M39665_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M39665_IG09:\n\u002BG_M39665_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M39665_IG10:\n\u002BG_M39665_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M39665_IG14\n\u002B       je       SHORT G_M39665_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M39665_IG11:\n\u002BG_M39665_IG08:\n        test     rax, rax\n-       je       SHORT G_M39665_IG15\n\u002B       je       SHORT G_M39665_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M39665_IG12:\n\u002BG_M39665_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M39665_IG15\n\u002B       jne      SHORT G_M39665_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M39665_IG13:\n\u002BG_M39665_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M39665_IG15\n\u002B       je       SHORT G_M39665_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M39665_IG14:\n\u002BG_M39665_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M39665_IG22\n\u002B       jmp      SHORT G_M39665_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M39665_IG15:\n\u002BG_M39665_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M39665_IG20\n\u002B       je       SHORT G_M39665_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M39665_IG16:\n\u002BG_M39665_IG13:\n        test     rax, rax\n-       je       SHORT G_M39665_IG18\n\u002B       je       SHORT G_M39665_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M39665_IG17:\n\u002BG_M39665_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M39665_IG19\n\u002B       je       SHORT G_M39665_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M39665_IG18:\n\u002BG_M39665_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M39665_IG21\n\u002B       jmp      SHORT G_M39665_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M39665_IG19:\n\u002BG_M39665_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M39665_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M39665_IG21\n\u002B       jmp      SHORT G_M39665_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M39665_IG20:\n\u002BG_M39665_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M39665_IG21:\n\u002BG_M39665_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M39665_IG22:\n\u002BG_M39665_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M39665_IG27\n\u002B       je       G_M39665_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M39665_IG27\n\u002B       je       G_M39665_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M39665_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.Nullable\u00601[int],System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M39665_IG24\n\u002B       jne      SHORT G_M39665_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M39665_IG23:\n\u002BG_M39665_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M39665_IG24:\n\u002BG_M39665_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M39665_IG25:\n-       add      rsp, 232\n\u002BG_M39665_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M39665_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M39665_IG26:\n\u002BG_M39665_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M39665_IG27:\n\u002BG_M39665_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M39665_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=5447650e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollectionAsync[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=5447650e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollectionAsync[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Core.Vault.GbBankAccountService:ListAutoPagingAsync(Stripe.V2.Core.Vault.GbBankAccountListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.Vault.GbBankAccount]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.Core.Vault.GbBankAccountService:ListAutoPagingAsync(Stripe.V2.Core.Vault.GbBankAccountListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.Vault.GbBankAccount]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Core.Vault.GbBankAccountService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Core.Vault.GbBankAccountListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Core.Vault.GbBankAccountListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.Vault.GbBankAccount]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.Vault.GbBankAccount]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.Vault.GbBankAccount]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.Vault.GbBankAccount]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M12723_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M12723_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/core/vault/gb_bank_accounts\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M12723_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M12723_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.Vault.GbBankAccount]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M12723_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M12723_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M12723_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.Vault.GbBankAccount]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M12723_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M12723_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=f5bace4c) for method Stripe.V2.Core.Vault.GbBankAccountService:ListAutoPagingAsync(Stripe.V2.Core.Vault.GbBankAccountListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.Vault.GbBankAccount]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=f5bace4c) for method Stripe.V2.Core.Vault.GbBankAccountService:ListAutoPagingAsync(Stripe.V2.Core.Vault.GbBankAccountListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.Vault.GbBankAccount]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration:get_SchemaName():System.String:this (FullOpts)","Category":"improvement","Description":"162 -\u003E 110 bytes (-52)","ExtraInfo":null,"Diff":"@@ -1,91 \u002B1,71 @@\n ; Assembly listing for method System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration:get_SchemaName():System.String:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 5 single block inlinees; 3 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T00] (  4,  3.50)     ref  -\u003E  rdi         this class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration\u003E\n ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V02 tmp1         [V02,T04] (  2,  1   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Utilities.DatabaseName\u003E\n-;  V03 tmp2         [V03,T01] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\u003E\n-;  V04 tmp3         [V04    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x10]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V02 tmp1         [V02,T02] (  2,  1   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Utilities.DatabaseName\u003E\n\u002B;  V03 tmp2         [V03,T01] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\u003E\n\u002B;  V04 tmp3         [V04    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x08]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V05 tmp4         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V06 tmp5         [V06,T03] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u003E\n-;  V07 tmp6         [V07,T02] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\u003E\n\u002B;  V06 tmp5         [V06,T03] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u003E\n\u002B;* V07 tmp6         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\u003E\n ;* V08 tmp7         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u003E\n ;\n-; Lcl frame size = 8\n\u002B; Lcl frame size = 16\n \n G_M54239_IG01:\n        push     rbp\n-       push     rbx\n-       push     rax\n\u002B       sub      rsp, 16\n        lea      rbp, [rsp\u002B0x10]\n-\t\t\t\t\t\t;; size=8 bbWeight=1 PerfScore 3.50\n\u002B\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 1.75\n G_M54239_IG02:\n        cmp      byte  ptr [rdi\u002B0x70], 0\n-       je       SHORT G_M54239_IG07\n\u002B       je       SHORT G_M54239_IG05\n \t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 3.00\n G_M54239_IG03:\n-       mov      rbx, gword ptr [rdi\u002B0x40]\n-       test     rbx, rbx\n-       je       SHORT G_M54239_IG09\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M54239_IG04\n-       lea      rsi, [rbp-0x10]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M54239_IG05\n-\t\t\t\t\t\t;; size=58 bbWeight=0.50 PerfScore 9.00\n-G_M54239_IG04:\n-       lea      rdx, [rbp-0x10]\n-       mov      rsi, rbx\n\u002B       mov      rsi, gword ptr [rdi\u002B0x40]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M54239_IG07\n\u002B       lea      rdx, [rbp-0x08]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration],byref):System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M54239_IG05:\n-       cmp      byte  ptr [rbp-0x10], 0\n-       je       SHORT G_M54239_IG10\n\u002B       cmp      byte  ptr [rbp-0x08], 0\n\u002B       je       SHORT G_M54239_IG08\n        mov      rax, gword ptr [rax\u002B0x08]\n        mov      rax, gword ptr [rax\u002B0x10]\n-\t\t\t\t\t\t;; size=14 bbWeight=0.50 PerfScore 3.00\n-G_M54239_IG06:\n-       add      rsp, 8\n-       pop      rbx\n\u002B\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 6.62\n\u002BG_M54239_IG04:\n\u002B       add      rsp, 16\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M54239_IG07:\n\u002B\t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 0.88\n\u002BG_M54239_IG05:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M54239_IG08:\n-       add      rsp, 8\n-       pop      rbx\n\u002BG_M54239_IG06:\n\u002B       add      rsp, 16\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M54239_IG09:\n\u002B\t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 0.88\n\u002BG_M54239_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M54239_IG10:\n\u002BG_M54239_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 162, prolog size 8, PerfScore 23.00, instruction count 46, allocated bytes for code 162 (MethodHash=29382c20) for method System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration:get_SchemaName():System.String:this (FullOpts)\n\u002B; Total bytes of code 110, prolog size 10, PerfScore 13.25, instruction count 30, allocated bytes for code 110 (MethodHash=29382c20) for method System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration:get_SchemaName():System.String:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":162,"DiffBytes":110},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollectionAsync[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],long]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.Nullable\u00601[int],MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M4305_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M4305_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M4305_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],long]:Render(MongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]):MongoDB.Driver.RenderedPipelineDefinition\u00601[long]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M4305_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M4305_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M4305_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M4305_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M4305_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M4305_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M4305_IG07:\n        test     rax, rax\n-       je       SHORT G_M4305_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M4305_IG08:\n\u002B       je       SHORT G_M4305_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M4305_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M4305_IG10\n\u002B       jmp      SHORT G_M4305_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M4305_IG09:\n\u002BG_M4305_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M4305_IG10:\n\u002BG_M4305_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M4305_IG14\n\u002B       je       SHORT G_M4305_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M4305_IG11:\n\u002BG_M4305_IG08:\n        test     rax, rax\n-       je       SHORT G_M4305_IG15\n\u002B       je       SHORT G_M4305_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M4305_IG12:\n\u002BG_M4305_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M4305_IG15\n\u002B       jne      SHORT G_M4305_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M4305_IG13:\n\u002BG_M4305_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M4305_IG15\n\u002B       je       SHORT G_M4305_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M4305_IG14:\n\u002BG_M4305_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M4305_IG22\n\u002B       jmp      SHORT G_M4305_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M4305_IG15:\n\u002BG_M4305_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M4305_IG20\n\u002B       je       SHORT G_M4305_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M4305_IG16:\n\u002BG_M4305_IG13:\n        test     rax, rax\n-       je       SHORT G_M4305_IG18\n\u002B       je       SHORT G_M4305_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M4305_IG17:\n\u002BG_M4305_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M4305_IG19\n\u002B       je       SHORT G_M4305_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M4305_IG18:\n\u002BG_M4305_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M4305_IG21\n\u002B       jmp      SHORT G_M4305_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M4305_IG19:\n\u002BG_M4305_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M4305_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M4305_IG21\n\u002B       jmp      SHORT G_M4305_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M4305_IG20:\n\u002BG_M4305_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M4305_IG21:\n\u002BG_M4305_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M4305_IG22:\n\u002BG_M4305_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M4305_IG27\n\u002B       je       G_M4305_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M4305_IG27\n\u002B       je       G_M4305_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M4305_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.Nullable\u00601[int],System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M4305_IG24\n\u002B       jne      SHORT G_M4305_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M4305_IG23:\n\u002BG_M4305_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M4305_IG24:\n\u002BG_M4305_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M4305_IG25:\n-       add      rsp, 232\n\u002BG_M4305_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M4305_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M4305_IG26:\n\u002BG_M4305_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M4305_IG27:\n\u002BG_M4305_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M4305_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=4690ef2e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollectionAsync[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=4690ef2e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollectionAsync[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Core.Vault.UsBankAccountService:ListAutoPagingAsync(Stripe.V2.Core.Vault.UsBankAccountListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.Vault.UsBankAccount]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.Core.Vault.UsBankAccountService:ListAutoPagingAsync(Stripe.V2.Core.Vault.UsBankAccountListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.Vault.UsBankAccount]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Core.Vault.UsBankAccountService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Core.Vault.UsBankAccountListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Core.Vault.UsBankAccountListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.Vault.UsBankAccount]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.Vault.UsBankAccount]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.Vault.UsBankAccount]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.Vault.UsBankAccount]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M3472_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M3472_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/core/vault/us_bank_accounts\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M3472_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M3472_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.Vault.UsBankAccount]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M3472_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M3472_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M3472_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.Vault.UsBankAccount]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M3472_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M3472_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=f057f26f) for method Stripe.V2.Core.Vault.UsBankAccountService:ListAutoPagingAsync(Stripe.V2.Core.Vault.UsBankAccountListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.Vault.UsBankAccount]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=f057f26f) for method Stripe.V2.Core.Vault.UsBankAccountService:ListAutoPagingAsync(Stripe.V2.Core.Vault.UsBankAccountListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.Vault.UsBankAccount]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration:get_TableName():System.String:this (FullOpts)","Category":"improvement","Description":"162 -\u003E 110 bytes (-52)","ExtraInfo":null,"Diff":"@@ -1,91 \u002B1,71 @@\n ; Assembly listing for method System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration:get_TableName():System.String:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 5 single block inlinees; 3 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T00] (  4,  3.50)     ref  -\u003E  rdi         this class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration\u003E\n ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V02 tmp1         [V02,T04] (  2,  1   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Utilities.DatabaseName\u003E\n-;  V03 tmp2         [V03,T01] (  4,  4   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\u003E\n-;  V04 tmp3         [V04    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x10]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V02 tmp1         [V02,T02] (  2,  1   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Utilities.DatabaseName\u003E\n\u002B;  V03 tmp2         [V03,T01] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\u003E\n\u002B;  V04 tmp3         [V04    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x08]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V05 tmp4         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V06 tmp5         [V06,T03] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u003E\n-;  V07 tmp6         [V07,T02] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\u003E\n\u002B;  V06 tmp5         [V06,T03] (  2,  1   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u003E\n\u002B;* V07 tmp6         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\u003E\n ;* V08 tmp7         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\u003E\n ;\n-; Lcl frame size = 8\n\u002B; Lcl frame size = 16\n \n G_M62864_IG01:\n        push     rbp\n-       push     rbx\n-       push     rax\n\u002B       sub      rsp, 16\n        lea      rbp, [rsp\u002B0x10]\n-\t\t\t\t\t\t;; size=8 bbWeight=1 PerfScore 3.50\n\u002B\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 1.75\n G_M62864_IG02:\n        cmp      byte  ptr [rdi\u002B0x70], 0\n-       je       SHORT G_M62864_IG07\n\u002B       je       SHORT G_M62864_IG05\n \t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 3.00\n G_M62864_IG03:\n-       mov      rbx, gword ptr [rdi\u002B0x40]\n-       test     rbx, rbx\n-       je       SHORT G_M62864_IG09\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M62864_IG04\n-       lea      rsi, [rbp-0x10]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M62864_IG05\n-\t\t\t\t\t\t;; size=58 bbWeight=0.50 PerfScore 9.00\n-G_M62864_IG04:\n-       lea      rdx, [rbp-0x10]\n-       mov      rsi, rbx\n\u002B       mov      rsi, gword ptr [rdi\u002B0x40]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M62864_IG07\n\u002B       lea      rdx, [rbp-0x08]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration],byref):System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingConfiguration\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M62864_IG05:\n-       cmp      byte  ptr [rbp-0x10], 0\n-       je       SHORT G_M62864_IG10\n\u002B       cmp      byte  ptr [rbp-0x08], 0\n\u002B       je       SHORT G_M62864_IG08\n        mov      rax, gword ptr [rax\u002B0x08]\n        mov      rax, gword ptr [rax\u002B0x08]\n-\t\t\t\t\t\t;; size=14 bbWeight=0.50 PerfScore 3.00\n-G_M62864_IG06:\n-       add      rsp, 8\n-       pop      rbx\n\u002B\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 6.62\n\u002BG_M62864_IG04:\n\u002B       add      rsp, 16\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M62864_IG07:\n\u002B\t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 0.88\n\u002BG_M62864_IG05:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M62864_IG08:\n-       add      rsp, 8\n-       pop      rbx\n\u002BG_M62864_IG06:\n\u002B       add      rsp, 16\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M62864_IG09:\n\u002B\t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 0.88\n\u002BG_M62864_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M62864_IG10:\n\u002BG_M62864_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 162, prolog size 8, PerfScore 23.00, instruction count 46, allocated bytes for code 162 (MethodHash=e4ad0a6f) for method System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration:get_TableName():System.String:this (FullOpts)\n\u002B; Total bytes of code 110, prolog size 10, PerfScore 13.25, instruction count 30, allocated bytes for code 110 (MethodHash=e4ad0a6f) for method System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration:get_TableName():System.String:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":162,"DiffBytes":110},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollectionAsync[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],short]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.Nullable\u00601[int],MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M30769_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M30769_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M30769_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],short]:Render(MongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]):MongoDB.Driver.RenderedPipelineDefinition\u00601[short]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M30769_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M30769_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M30769_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M30769_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M30769_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M30769_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M30769_IG07:\n        test     rax, rax\n-       je       SHORT G_M30769_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M30769_IG08:\n\u002B       je       SHORT G_M30769_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M30769_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M30769_IG10\n\u002B       jmp      SHORT G_M30769_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M30769_IG09:\n\u002BG_M30769_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M30769_IG10:\n\u002BG_M30769_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M30769_IG14\n\u002B       je       SHORT G_M30769_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M30769_IG11:\n\u002BG_M30769_IG08:\n        test     rax, rax\n-       je       SHORT G_M30769_IG15\n\u002B       je       SHORT G_M30769_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M30769_IG12:\n\u002BG_M30769_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M30769_IG15\n\u002B       jne      SHORT G_M30769_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M30769_IG13:\n\u002BG_M30769_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M30769_IG15\n\u002B       je       SHORT G_M30769_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M30769_IG14:\n\u002BG_M30769_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M30769_IG22\n\u002B       jmp      SHORT G_M30769_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M30769_IG15:\n\u002BG_M30769_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M30769_IG20\n\u002B       je       SHORT G_M30769_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M30769_IG16:\n\u002BG_M30769_IG13:\n        test     rax, rax\n-       je       SHORT G_M30769_IG18\n\u002B       je       SHORT G_M30769_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M30769_IG17:\n\u002BG_M30769_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M30769_IG19\n\u002B       je       SHORT G_M30769_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M30769_IG18:\n\u002BG_M30769_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M30769_IG21\n\u002B       jmp      SHORT G_M30769_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M30769_IG19:\n\u002BG_M30769_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M30769_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M30769_IG21\n\u002B       jmp      SHORT G_M30769_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M30769_IG20:\n\u002BG_M30769_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M30769_IG21:\n\u002BG_M30769_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M30769_IG22:\n\u002BG_M30769_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M30769_IG27\n\u002B       je       G_M30769_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M30769_IG27\n\u002B       je       G_M30769_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M30769_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.Nullable\u00601[int],System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M30769_IG24\n\u002B       jne      SHORT G_M30769_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M30769_IG23:\n\u002BG_M30769_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M30769_IG24:\n\u002BG_M30769_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M30769_IG25:\n-       add      rsp, 232\n\u002BG_M30769_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M30769_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M30769_IG26:\n\u002BG_M30769_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M30769_IG27:\n\u002BG_M30769_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M30769_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=ee5287ce) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollectionAsync[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=ee5287ce) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollectionAsync[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Extend.WorkflowRunService:ListAutoPagingAsync(Stripe.V2.Extend.WorkflowRunListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Extend.WorkflowRun]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.Extend.WorkflowRunService:ListAutoPagingAsync(Stripe.V2.Extend.WorkflowRunListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Extend.WorkflowRun]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Extend.WorkflowRunService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Extend.WorkflowRunListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Extend.WorkflowRunListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Extend.WorkflowRun]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Extend.WorkflowRun]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Extend.WorkflowRun]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Extend.WorkflowRun]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M47490_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M47490_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/extend/workflow_runs\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M47490_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M47490_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Extend.WorkflowRun]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M47490_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M47490_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M47490_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Extend.WorkflowRun]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M47490_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M47490_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=4882467d) for method Stripe.V2.Extend.WorkflowRunService:ListAutoPagingAsync(Stripe.V2.Extend.WorkflowRunListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Extend.WorkflowRun]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=4882467d) for method Stripe.V2.Extend.WorkflowRunService:ListAutoPagingAsync(Stripe.V2.Extend.WorkflowRunListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Extend.WorkflowRun]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.ModelConfiguration.Edm.ColumnMappingBuilderExtensions:SyncNullabilityCSSpace(System.Data.Entity.Core.Mapping.ColumnMappingBuilder,System.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EntitySet],System.Data.Entity.Core.Metadata.Edm.EntityType) (FullOpts)","Category":"improvement","Description":"767 -\u003E 715 bytes (-52)","ExtraInfo":null,"Diff":"@@ -8,45 \u002B8,45 @@\n ; 0 inlinees with PGO data; 9 single block inlinees; 7 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T17] (  4,  3.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ColumnMappingBuilder\u003E\n-;  V01 arg1         [V01,T19] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping\u003E\n-;  V02 arg2         [V02,T20] (  3,  2.50)     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EntitySet]\u003E\n-;  V03 arg3         [V03,T12] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n\u002B;  V00 arg0         [V00,T16] (  4,  3.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ColumnMappingBuilder\u003E\n\u002B;  V01 arg1         [V01,T18] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping\u003E\n\u002B;  V02 arg2         [V02,T19] (  3,  2.50)     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EntitySet]\u003E\n\u002B;  V03 arg3         [V03,T11] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n ;  V04 loc0         [V04,T07] (  8, 23.50)     ref  -\u003E  r12         class-hnd exact single-def \u003CSystem.Data.Entity.ModelConfiguration.Edm.ColumnMappingBuilderExtensions\u002B\u003C\u003Ec__DisplayClass0_0\u003E\n-;  V05 loc1         [V05,T22] (  4,  3.50)     ref  -\u003E  [rbp-0x48]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmProperty\u003E\n-;  V06 loc2         [V06,T18] (  3,  5.50)     ref  -\u003E  [rbp-0x50]  class-hnd \u003CSystem.Data.Entity.Core.Mapping.EntitySetMapping\u003E\n\u002B;  V05 loc1         [V05,T21] (  4,  3.50)     ref  -\u003E  [rbp-0x48]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmProperty\u003E\n\u002B;  V06 loc2         [V06,T17] (  3,  5.50)     ref  -\u003E  [rbp-0x50]  class-hnd \u003CSystem.Data.Entity.Core.Mapping.EntitySetMapping\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V08 tmp1         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Edm.ColumnMappingBuilderExtensions\u002B\u003C\u003Ec__DisplayClass0_0\u003E\n ;  V09 tmp2         [V09,T00] (  4, 32   )     ref  -\u003E  [rbp-0x58]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.EntityTypeMapping,bool]\u003E\n ;* V10 tmp3         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.EntityTypeMapping]\u003E\n ;* V11 tmp4         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmProperty\u003E\n-;  V12 tmp5         [V12,T15] (  4,  7   )     ref  -\u003E  [rbp-0x60]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IList\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n\u002B;  V12 tmp5         [V12,T14] (  4,  7   )     ref  -\u003E  [rbp-0x60]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.IList\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n ;  V13 tmp6         [V13    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V14 tmp7         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V15 tmp8         [V15,T25] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmProperty\u003E\n-;  V16 tmp9         [V16,T23] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n-;  V17 tmp10        [V17,T03] (  3, 24   )     ref  -\u003E  r13         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.EntityTypeMapping]\u003E\n-;  V18 tmp11        [V18,T04] (  3, 24   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.EntityTypeMapping]\u003E\n\u002B;  V15 tmp8         [V15,T24] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmProperty\u003E\n\u002B;  V16 tmp9         [V16,T22] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n\u002B;  V17 tmp10        [V17,T02] (  3, 24   )     ref  -\u003E  r13         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.EntityTypeMapping]\u003E\n\u002B;  V18 tmp11        [V18,T03] (  3, 24   )     ref  -\u003E  rsi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.EntityTypeMapping]\u003E\n ;  V19 tmp12        [V19    ] (  2,  8   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V20 tmp13        [V20,T10] (  3, 12   )     ref  -\u003E  rax        \n\u002B;  V20 tmp13        [V20,T09] (  3, 12   )     ref  -\u003E  rax        \n ;* V21 tmp14        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.EntityTypeMapping\u003E\n-;  V22 tmp15        [V22,T02] (  4, 28   )     ref  -\u003E  r13         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\u003E\n-;  V23 tmp16        [V23    ] (  3,  8   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V22 tmp15        [V22,T04] (  3, 24   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\u003E\n\u002B;  V23 tmp16        [V23    ] (  2,  8   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V24 tmp17        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V25 tmp18        [V25,T13] (  3,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.MappingFragment\u003E\n-;  V26 tmp19        [V26,T09] (  4, 12   )     ref  -\u003E  rax         class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\u003E\n\u002B;  V25 tmp18        [V25,T12] (  2,  8   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.MappingFragment\u003E\n\u002B;* V26 tmp19        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\u003E\n ;* V27 tmp20        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.MappingFragment\u003E\n-;  V28 tmp21        [V28,T16] (  3,  6   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n-;  V29 tmp22        [V29,T21] (  3,  4.50)     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n\u002B;  V28 tmp21        [V28,T15] (  3,  6   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n\u002B;  V29 tmp22        [V29,T20] (  3,  4.50)     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n ;  V30 tmp23        [V30,T05] (  3, 24   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V31 tmp24        [V31,T06] (  3, 24   )     ref  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V32 tmp25        [V32,T08] (  3, 18   )     ref  -\u003E  rax         \u0022argument with side effect\u0022\n-;  V33 tmp26        [V33,T27] (  2,  2   )     int  -\u003E  rsi         \u0022argument with side effect\u0022\n-;  V34 tmp27        [V34,T26] (  2,  2   )     ref  -\u003E  rbx         single-def \u0022argument with side effect\u0022\n-;  V35 rat0         [V35,T14] (  5,  7.50)     ref  -\u003E  rsi         \u0022replacement local\u0022\n-;  V36 rat1         [V36,T24] (  3,  2.50)    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n\u002B;  V33 tmp26        [V33,T26] (  2,  2   )     int  -\u003E  rsi         \u0022argument with side effect\u0022\n\u002B;  V34 tmp27        [V34,T25] (  2,  2   )     ref  -\u003E  rbx         single-def \u0022argument with side effect\u0022\n\u002B;  V35 rat0         [V35,T13] (  5,  7.50)     ref  -\u003E  rsi         \u0022replacement local\u0022\n\u002B;  V36 rat1         [V36,T23] (  3,  2.50)    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n ;  V37 rat2         [V37,T01] (  5, 30   )     ref  -\u003E  rsi         \u0022replacement local\u0022\n-;  V38 rat3         [V38,T11] (  3, 10   )    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n\u002B;  V38 rat3         [V38,T10] (  3, 10   )    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n ;\n ; Lcl frame size = 56\n \n@@ -75,7 \u002B75,7 @@ G_M55591_IG02:\n        mov      rax, gword ptr [r15\u002B0x10]\n        mov      gword ptr [rbp-0x60], rax\n        test     rax, rax\n-       je       G_M55591_IG21\n\u002B       je       G_M55591_IG19\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n@@ -100,7 \u002B100,7 @@ G_M55591_IG04:\n \t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n G_M55591_IG05:\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M55591_IG22\n\u002B       je       G_M55591_IG20\n        mov      gword ptr [rbp-0x48], rax\n        xor      rcx, rcx\n        mov      gword ptr [rbp-0x50], rcx\n@@ -131,7 \u002B131,7 @@ G_M55591_IG08:\n        lea      rdi, bword ptr [r12\u002B0x08]\n        call     CORINFO_HELP_ASSIGN_REF\n        cmp      gword ptr [r12\u002B0x08], 0\n-       je       G_M55591_IG17\n\u002B       je       G_M55591_IG15\n \t\t\t\t\t\t;; size=22 bbWeight=1 PerfScore 4.50\n G_M55591_IG09:\n        mov      rsi, gword ptr [r12\u002B0x08]\n@@ -141,7 \u002B141,7 @@ G_M55591_IG09:\n        call     [rax]System.Data.Entity.ModelConfiguration.Edm.ColumnMappingBuilderExtensions:GetEntitySetMapping(System.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping,System.Data.Entity.Core.Metadata.Edm.EntityType,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EntitySet]):System.Data.Entity.Core.Mapping.EntitySetMapping\n        mov      r14, rax\n        mov      gword ptr [rbp-0x50], r14\n-       jmp      G_M55591_IG17\n\u002B       jmp      G_M55591_IG15\n \t\t\t\t\t\t;; size=35 bbWeight=0.50 PerfScore 4.50\n G_M55591_IG10:\n        mov      rdi, 0xD1FFAB1E      ; System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.EntityTypeMapping]\n@@ -150,7 \u002B150,7 @@ G_M55591_IG10:\n        mov      r14, gword ptr [rbp-0x50]\n        mov      rsi, gword ptr [r14\u002B0x40]\n        test     rsi, rsi\n-       je       G_M55591_IG23\n\u002B       je       G_M55591_IG21\n        lea      rdi, bword ptr [r13\u002B0x08]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[System.Data.Entity.Core.Mapping.EntityTypeMapping,bool]\n@@ -168,74 \u002B168,57 @@ G_M55591_IG10:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirst[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Func\u00602[System.__Canon,bool],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirst[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Func\u00602[System.__Canon,bool],byref):System.__Canon\n        cmp      byte  ptr [rbp-0x38], 0\n-       je       G_M55591_IG24\n\u002B       je       G_M55591_IG22\n        mov      rdi, rax\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax]System.Data.Entity.Core.Mapping.TypeMapping:get_MappingFragments():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.MappingFragment]:this\n-       mov      r13, rax\n-       test     r13, r13\n-       je       G_M55591_IG21\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M55591_IG12\n-\t\t\t\t\t\t;; size=186 bbWeight=4 PerfScore 134.00\n-G_M55591_IG11:\n-       lea      rsi, [rbp-0x40]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M55591_IG13\n-\t\t\t\t\t\t;; size=19 bbWeight=2 PerfScore 19.50\n-G_M55591_IG12:\n\u002B       je       G_M55591_IG19\n        lea      rdx, [rbp-0x40]\n-       mov      rsi, r13\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Mapping.MappingFragment](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.MappingFragment],byref):System.Data.Entity.Core.Mapping.MappingFragment\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=2 PerfScore 8.50\n-G_M55591_IG13:\n        cmp      byte  ptr [rbp-0x40], 0\n-       je       G_M55591_IG22\n\u002B\t\t\t\t\t\t;; size=186 bbWeight=4 PerfScore 134.00\n\u002BG_M55591_IG11:\n\u002B       je       G_M55591_IG20\n        mov      rdi, gword ptr [rax\u002B0x20]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x38]System.Data.Entity.Core.Metadata.Edm.EntitySet:get_ElementType():System.Data.Entity.Core.Metadata.Edm.EntityType:this\n        cmp      rax, rbx\n-       je       SHORT G_M55591_IG19\n\u002B       je       SHORT G_M55591_IG17\n        mov      rdi, gword ptr [r12\u002B0x08]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x50]\n        call     [rax\u002B0x10]System.Data.Entity.Core.Metadata.Edm.EdmType:get_BaseType():System.Data.Entity.Core.Metadata.Edm.EdmType:this\n        mov      rsi, rax\n        test     rsi, rsi\n-       je       SHORT G_M55591_IG16\n-\t\t\t\t\t\t;; size=52 bbWeight=4 PerfScore 91.00\n-G_M55591_IG14:\n\u002B       je       SHORT G_M55591_IG14\n\u002B\t\t\t\t\t\t;; size=48 bbWeight=4 PerfScore 87.00\n\u002BG_M55591_IG12:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Metadata.Edm.EntityType\n        cmp      qword ptr [rsi], rdi\n-       je       SHORT G_M55591_IG16\n\u002B       je       SHORT G_M55591_IG14\n \t\t\t\t\t\t;; size=15 bbWeight=2 PerfScore 6.50\n-G_M55591_IG15:\n\u002BG_M55591_IG13:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        mov      rsi, rax\n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 3.75\n-G_M55591_IG16:\n\u002BG_M55591_IG14:\n        lea      rdi, bword ptr [r12\u002B0x08]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      gword ptr [rbp-0x50], r14\n \t\t\t\t\t\t;; size=14 bbWeight=4 PerfScore 10.00\n-G_M55591_IG17:\n\u002BG_M55591_IG15:\n        cmp      gword ptr [r12\u002B0x08], 0\n        jne      G_M55591_IG10\n \t\t\t\t\t\t;; size=12 bbWeight=8 PerfScore 24.00\n-G_M55591_IG18:\n\u002BG_M55591_IG16:\n        mov      rbx, gword ptr [r15\u002B0x08]\n        mov      rdi, gword ptr [rbp-0x48]\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.EdmProperty:get_Nullable():bool:this\n@@ -246,10 \u002B229,10 @@ G_M55591_IG18:\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.Data.Entity.Core.Metadata.Edm.EdmProperty:set_Nullable(bool):this\n \t\t\t\t\t\t;; size=39 bbWeight=0.50 PerfScore 6.00\n-G_M55591_IG19:\n\u002BG_M55591_IG17:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M55591_IG20:\n\u002BG_M55591_IG18:\n        add      rsp, 56\n        pop      rbx\n        pop      r12\n@@ -259,28 \u002B242,28 @@ G_M55591_IG20:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M55591_IG21:\n\u002BG_M55591_IG19:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M55591_IG22:\n\u002BG_M55591_IG20:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M55591_IG23:\n\u002BG_M55591_IG21:\n        mov      edi, 20\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M55591_IG24:\n\u002BG_M55591_IG22:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoMatchException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoMatchException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 767, prolog size 35, PerfScore 368.02, instruction count 183, allocated bytes for code 767 (MethodHash=96e526d8) for method System.Data.Entity.ModelConfiguration.Edm.ColumnMappingBuilderExtensions:SyncNullabilityCSSpace(System.Data.Entity.Core.Mapping.ColumnMappingBuilder,System.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EntitySet],System.Data.Entity.Core.Metadata.Edm.EntityType) (FullOpts)\n\u002B; Total bytes of code 715, prolog size 35, PerfScore 336.02, instruction count 170, allocated bytes for code 715 (MethodHash=96e526d8) for method System.Data.Entity.ModelConfiguration.Edm.ColumnMappingBuilderExtensions:SyncNullabilityCSSpace(System.Data.Entity.Core.Mapping.ColumnMappingBuilder,System.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping,System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EntitySet],System.Data.Entity.Core.Metadata.Edm.EntityType) (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":767,"DiffBytes":715},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:Aggregate[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)","Category":"improvement","Description":"1,813 -\u003E 1,750 bytes (-63)","ExtraInfo":null,"Diff":"@@ -14,16 \u002B14,16 @@\n ;  V03 arg2         [V03,T04] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.__Canon]\u003E\n ;  V04 arg3         [V04,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T39] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V06 loc0         [V06,T38] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n-;  V08 loc2         [V08,T40] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V09 loc3         [V09,T46] (  3,  1.50)     ref  -\u003E  [rbp-0x80]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V10 loc4         [V10,T47] (  3,  1.50)     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.__Canon]\u003E\n\u002B;  V08 loc2         [V08,T39] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V09 loc3         [V09,T45] (  3,  1.50)     ref  -\u003E  [rbp-0x80]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V10 loc4         [V10,T46] (  3,  1.50)     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.__Canon]\u003E\n ;  V11 OutArgs      [V11    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V12 tmp1         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V13 tmp2         [V13    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V14 tmp3         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V15 tmp4         [V15,T29] (  4,  2.20)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n\u002B;  V15 tmp4         [V15,T28] (  4,  2.20)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n ;* V16 tmp5         [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V17 tmp6         [V17    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V18 tmp7         [V18    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -43,22 \u002B43,22 @@\n ;* V32 tmp21        [V32    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V33 tmp22        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V34 tmp23        [V34    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V35 tmp24        [V35,T33] (  3,  2   )     int  -\u003E  rdi        \n-;  V36 tmp25        [V36,T06] (  4,  7   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V37 tmp26        [V37    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V38 tmp27        [V38,T17] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V39 tmp28        [V39,T18] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V35 tmp24        [V35,T32] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V36 tmp25        [V36,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V37 tmp26        [V37    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V38 tmp27        [V38,T17] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V39 tmp28        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V40 tmp29        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V41 tmp30        [V41,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V42 tmp31        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V43 tmp32        [V43,T45] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V43 tmp32        [V43,T44] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V44 tmp33        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V45 tmp34        [V45,T31] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V46 tmp35        [V46,T19] (  3,  3   )     ref  -\u003E  [rbp-0x98]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V45 tmp34        [V45,T30] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V46 tmp35        [V46,T18] (  3,  3   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V47 tmp36        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V48 tmp37        [V48,T08] ( 10,  5   )     ref  -\u003E  [rbp-0xA0]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;  V48 tmp37        [V48,T08] ( 10,  5   )     ref  -\u003E  [rbp-0x98]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V49 tmp38        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp39        [V50,T09] ( 10,  5   )     ref  -\u003E  [rbp-0xA8]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;  V50 tmp39        [V50,T09] ( 10,  5   )     ref  -\u003E  [rbp-0xA0]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V51 tmp40        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V52 tmp41        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V53 tmp42        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -67,14 \u002B67,14 @@\n ;* V56 tmp45        [V56    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.__Canon]\u003E\n ;* V57 tmp46        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V58 tmp47        [V58    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V59 tmp48        [V59,T48] (  2,  1   )     ref  -\u003E  [rbp-0xB0]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V60 tmp49        [V60,T30] (  4,  2.20)    long  -\u003E  [rbp-0x78]  \u0022Inlining Arg\u0022\n\u002B;  V59 tmp48        [V59,T47] (  2,  1   )     ref  -\u003E  [rbp-0xA8]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V60 tmp49        [V60,T29] (  4,  2.20)    long  -\u003E  [rbp-0x78]  \u0022Inlining Arg\u0022\n ;* V61 tmp50        [V61    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V62 tmp51        [V62,T32] (  8,  2   )     ref  -\u003E  [rbp-0xB8]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V63 tmp52        [V63,T20] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V62 tmp51        [V62,T31] (  8,  2   )     ref  -\u003E  [rbp-0xB0]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V63 tmp52        [V63,T19] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V64 tmp53        [V64    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V65 tmp54        [V65,T49] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.__Canon]\u003E\n-;  V66 tmp55        [V66,T38] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V65 tmp54        [V65,T48] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.__Canon]\u003E\n\u002B;  V66 tmp55        [V66,T37] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V67 tmp56        [V67    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V68 tmp57        [V68,T10] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V69 tmp58        [V69    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -82,36 \u002B82,36 @@\n ;* V71 tmp60        [V71    ] (  0,  0   )     ref  -\u003E  zero-ref   \n... diff truncated; middle omitted ...\n\u002B       mov      rdi, gword ptr [rsi\u002B0x10]\n\u002B       mov      rax, rdi\n\u002B       test     rax, rax\n\u002B       je       SHORT G_M37828_IG38\n        mov      rdi, rax\n        mov      esi, 1\n        mov      gword ptr [rbp-0xA0], rax\n@@ -473,35 \u002B469,19 @@ G_M37828_IG39:\n        call     [rcx\u002B0x28]System.Threading.CancellationTokenSource:Dispose(bool):this\n        mov      rdi, gword ptr [rbp-0xA0]\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n-       call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=77 bbWeight=0.50 PerfScore 9.62\n-G_M37828_IG40:\n-       mov      rsi, gword ptr [rbp-0x90]\n-       mov      rdi, gword ptr [rsi\u002B0x10]\n-       mov      rax, rdi\n-       test     rax, rax\n-       je       SHORT G_M37828_IG41\n-       mov      rdi, rax\n-       mov      esi, 1\n-       mov      gword ptr [rbp-0xA8], rax\n-       mov      rcx, qword ptr [rax]\n-       mov      rcx, qword ptr [rcx\u002B0x40]\n-       call     [rcx\u002B0x28]System.Threading.CancellationTokenSource:Dispose(bool):this\n-       mov      rdi, gword ptr [rbp-0xA8]\n-       mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.62\n-G_M37828_IG41:\n\u002BG_M37828_IG38:\n        mov      rdi, qword ptr [r14\u002B0x18]\n        cmp      qword ptr [rdi\u002B0x08], 56\n-       jle      SHORT G_M37828_IG45\n\u002B       jle      SHORT G_M37828_IG42\n \t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 2.50\n-G_M37828_IG42:\n\u002BG_M37828_IG39:\n        mov      rsi, qword ptr [rdi\u002B0x38]\n        test     rsi, rsi\n-       je       SHORT G_M37828_IG45\n\u002B       je       SHORT G_M37828_IG42\n \t\t\t\t\t\t;; size=9 bbWeight=0.40 PerfScore 1.30\n-G_M37828_IG43:\n\u002BG_M37828_IG40:\n        mov      rdi, r15\n        mov      rdx, r13\n        mov      rcx, r12\n@@ -510,8 \u002B490,8 @@ G_M37828_IG43:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateAggregateToCollectionResultCursor[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M37828_IG44:\n-       add      rsp, 216\n\u002BG_M37828_IG41:\n\u002B       add      rsp, 200\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -520,15 \u002B500,15 @@ G_M37828_IG44:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M37828_IG45:\n\u002BG_M37828_IG42:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      SHORT G_M37828_IG43\n\u002B       jmp      SHORT G_M37828_IG40\n \t\t\t\t\t\t;; size=30 bbWeight=0.18 PerfScore 1.08\n-G_M37828_IG46:\n\u002BG_M37828_IG43:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -536,53 \u002B516,53 @@ G_M37828_IG46:\n        mov      rdi, rax\n        jmp      G_M37828_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M37828_IG47:\n\u002BG_M37828_IG44:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M37828_IG37\n\u002B       jmp      G_M37828_IG34\n \t\t\t\t\t\t;; size=33 bbWeight=0.18 PerfScore 1.08\n-G_M37828_IG48:\n\u002BG_M37828_IG45:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M37828_IG24\n\u002B       jmp      G_M37828_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.10 PerfScore 0.60\n-G_M37828_IG49:\n\u002BG_M37828_IG46:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M37828_IG25\n\u002B       jmp      G_M37828_IG22\n \t\t\t\t\t\t;; size=33 bbWeight=0.10 PerfScore 0.60\n-G_M37828_IG50:\n\u002BG_M37828_IG47:\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      qword ptr [rbp-0x78], rax\n-       jmp      G_M37828_IG27\n\u002B       jmp      G_M37828_IG24\n \t\t\t\t\t\t;; size=31 bbWeight=0.10 PerfScore 0.65\n-G_M37828_IG51:\n\u002BG_M37828_IG48:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M37828_IG52:\n\u002BG_M37828_IG49:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M37828_IG53:\n-       cmp      gword ptr [rbp-0x90], 0\n-       je       SHORT G_M37828_IG55\n-       mov      rsi, gword ptr [rbp-0x90]\n\u002BG_M37828_IG50:\n\u002B       cmp      gword ptr [rbp-0x88], 0\n\u002B       je       SHORT G_M37828_IG52\n\u002B       mov      rsi, gword ptr [rbp-0x88]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M37828_IG54\n\u002B       je       SHORT G_M37828_IG51\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -592,11 \u002B572,11 @@ G_M37828_IG53:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M37828_IG54:\n-       mov      rsi, gword ptr [rbp-0x90]\n\u002BG_M37828_IG51:\n\u002B       mov      rsi, gword ptr [rbp-0x88]\n        mov      r15, gword ptr [rsi\u002B0x10]\n        test     r15, r15\n-       je       SHORT G_M37828_IG55\n\u002B       je       SHORT G_M37828_IG52\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -606,23 \u002B586,23 @@ G_M37828_IG54:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M37828_IG55:\n\u002BG_M37828_IG52:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M37828_IG56:\n\u002BG_M37828_IG53:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M37828_IG57:\n\u002BG_M37828_IG54:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M37828_IG58:\n-       cmp      gword ptr [rbp-0xB8], 0\n-       je       SHORT G_M37828_IG60\n-       mov      rsi, gword ptr [rbp-0xB8]\n\u002BG_M37828_IG55:\n\u002B       cmp      gword ptr [rbp-0xB0], 0\n\u002B       je       SHORT G_M37828_IG57\n\u002B       mov      rsi, gword ptr [rbp-0xB0]\n        mov      r13, gword ptr [rsi\u002B0x08]\n        test     r13, r13\n-       je       SHORT G_M37828_IG59\n\u002B       je       SHORT G_M37828_IG56\n        mov      rdi, r13\n        mov      esi, 1\n        mov      rax, qword ptr [r13]\n@@ -632,11 \u002B612,11 @@ G_M37828_IG58:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M37828_IG59:\n-       mov      rsi, gword ptr [rbp-0xB8]\n\u002BG_M37828_IG56:\n\u002B       mov      rsi, gword ptr [rbp-0xB0]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M37828_IG60\n\u002B       je       SHORT G_M37828_IG57\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -646,13 \u002B626,13 @@ G_M37828_IG59:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M37828_IG60:\n\u002BG_M37828_IG57:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M37828_IG61:\n\u002BG_M37828_IG58:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1813, prolog size 66, PerfScore 196.21, instruction count 418, allocated bytes for code 1813 (MethodHash=98db6c3b) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:Aggregate[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)\n\u002B; Total bytes of code 1750, prolog size 66, PerfScore 186.83, instruction count 404, allocated bytes for code 1750 (MethodHash=98db6c3b) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:Aggregate[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1813,"DiffBytes":1750},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Extend.WorkflowService:ListAutoPagingAsync(Stripe.V2.Extend.WorkflowListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Extend.Workflow]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.Extend.WorkflowService:ListAutoPagingAsync(Stripe.V2.Extend.WorkflowListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Extend.Workflow]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Extend.WorkflowService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Extend.WorkflowListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Extend.WorkflowListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Extend.Workflow]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Extend.Workflow]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Extend.Workflow]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Extend.Workflow]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M4043_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M4043_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/extend/workflows\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M4043_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M4043_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Extend.Workflow]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M4043_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M4043_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M4043_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Extend.Workflow]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M4043_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M4043_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=d730f034) for method Stripe.V2.Extend.WorkflowService:ListAutoPagingAsync(Stripe.V2.Extend.WorkflowListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Extend.Workflow]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=d730f034) for method Stripe.V2.Extend.WorkflowService:ListAutoPagingAsync(Stripe.V2.Extend.WorkflowListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Extend.Workflow]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.ModelConfiguration.Edm.Services.AssociationTypeMappingGenerator:GenerateIndependentAssociationType(System.Data.Entity.Core.Metadata.Edm.AssociationType,System.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping):this (FullOpts)","Category":"improvement","Description":"1,024 -\u003E 972 bytes (-52)","ExtraInfo":null,"Diff":"@@ -14,7 \u002B14,7 @@\n ;  V03 loc0         [V03    ] (  5,  4.50)     ref  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationEndMember\u003E\n ;  V04 loc1         [V04    ] (  6,  5.50)     ref  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationEndMember\u003E\n ;  V05 loc2         [V05,T11] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.EntityTypeMapping\u003E\n-;  V06 loc3         [V06,T24] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n\u002B;  V06 loc3         [V06,T23] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n ;  V07 loc4         [V07,T12] (  4,  7   )     ref  -\u003E  [rbp-0x48]  class-hnd spill-single-def \u003CSystem.Data.Entity.Core.Mapping.AssociationSetMapping\u003E\n ;  V08 loc5         [V08,T05] (  6, 13   )     ref  -\u003E  [rbp-0x50]  class-hnd EH-live spill-single-def \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n ;  V09 loc6         [V09,T07] (  3, 12   )     ref  -\u003E  rbx         class-hnd \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmProperty\u003E\n@@ -26,11 \u002B26,11 @@\n ;  V15 tmp5         [V15,T01] (  4, 32   )     ref  -\u003E  r15         class-hnd \u0022impSpillLclRefs\u0022 \u003CSystem.Data.Entity.Core.Mapping.EndPropertyMapping\u003E\n ;  V16 tmp6         [V16,T02] (  4, 24   )     ref  -\u003E  r12         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ScalarPropertyMapping\u003E\n ;* V17 tmp7         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022non-inline candidate call\u0022 \u003CSystem.Type\u003E\n-;  V18 tmp8         [V18,T13] (  4,  7   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\u003E\n-;  V19 tmp9         [V19    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V18 tmp8         [V18,T13] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\u003E\n\u002B;  V19 tmp9         [V19    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V20 tmp10        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V21 tmp11        [V21,T25] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.MappingFragment\u003E\n-;  V22 tmp12        [V22,T23] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\u003E\n\u002B;  V21 tmp11        [V21,T24] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.MappingFragment\u003E\n\u002B;* V22 tmp12        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\u003E\n ;* V23 tmp13        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.MappingFragment\u003E\n ;* V24 tmp14        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EntityType\u003E\n ;  V25 tmp15        [V25,T04] (  2, 16   )     ref  -\u003E  r14         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ColumnMappingBuilder\u003E\n@@ -46,8 \u002B46,8 @@\n ;  V35 tmp25        [V35,T21] (  2,  4   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n ;  V36 tmp26        [V36,T15] (  3,  6   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n ;  V37 tmp27        [V37,T22] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V38 tmp28        [V38,T26] (  2,  0   )     ref  -\u003E  r15         single-def \u0022argument with side effect\u0022\n-;  V39 tmp29        [V39,T27] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V38 tmp28        [V38,T25] (  2,  0   )     ref  -\u003E  r15         single-def \u0022argument with side effect\u0022\n\u002B;  V39 tmp29        [V39,T26] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 104\n \n@@ -82,7 \u002B82,7 @@ G_M29662_IG03:\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.ModelConfiguration.Edm.AssociationTypeExtensions:IsPrincipalConfigured(System.Data.Entity.Core.Metadata.Edm.AssociationType):bool\n        call     [rax]System.Data.Entity.ModelConfiguration.Edm.AssociationTypeExtensions:IsPrincipalConfigured(System.Data.Entity.Core.Metadata.Edm.AssociationType):bool\n        test     eax, eax\n-       je       G_M29662_IG15\n\u002B       je       G_M29662_IG12\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.AssociationType:get_SourceEnd():System.Data.Entity.Core.Metadata.Edm.AssociationEndMember:this\n        cmp      dword ptr [rdi], edi\n@@ -107,34 \u002B107,15 @@ G_M29662_IG04:\n        mov      rax, qword ptr [r13]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax]System.Data.Entity.Core.Mapping.TypeMapping:get_MappingFragments():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.MappingFragment]:this\n-       mov      r12, rax\n-       test     r12, r12\n-       je       G_M29662_IG16\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M29662_IG06\n-\t\t\t\t\t\t;; size=94 bbWeight=1 PerfScore 24.00\n-G_M29662_IG05:\n-       lea      rsi, [rbp-0x40]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M29662_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M29662_IG06:\n\u002B       je       G_M29662_IG13\n        lea      rdx, [rbp-0x40]\n-       mov      rsi, r12\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Mapping.MappingFragment](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.MappingFragment],byref):System.Data.Entity.Core.Mapping.MappingFragment\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M29662_IG07:\n        cmp      byte  ptr [rbp-0x40], 0\n-       je       G_M29662_IG17\n\u002B       je       G_M29662_IG14\n        mov      rdi, gword ptr [rax\u002B0x20]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x48]\n@@ -163,6 \u002B144,8 @@ G_M29662_IG07:\n        cmp      dword ptr [rdi], edi\n        call     [rcx]System.Data.Entity.Core.Mapping.AssociationSetMapping:get_SourceEndMapping():System.Data.Entity.Core.Mapping.EndPropertyMapping:this\n        mov      gword ptr [rbp-0x68], rax\n\u002B\t\t\t\t\t\t;; size=216 bbWeight=1 PerfScore 63.00\n\u002BG_M29662_IG05:\n        mov      rdi, rbx\n        mov      rcx, qword ptr [rbx]\n        mov      rcx, qword ptr [rcx\u002B0x48]\n@@ -181,8 \u002B164,6 @@ G_M29662_IG07:\n        mov      rdi, r14\n        mov      rsi, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.ModelConfiguration.Edm.Services.AssociationTypeMappingGenerator:GenerateIndependentForeignKeyConstraint(System.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping,System.Data.Entity.Core.Metadata.Edm.EntityType,System.Data.Entity.Core.Metadata.Edm.EntityType,System.Data.Entity.Core.Metadata.Edm.EntityType,System.Data.Entity.Core.Mapping.AssociationSetMapping,System.Data.Entity.Core.Mapping.EndPropertyMapping,System.String,System.Data.Entity.Core.Metadata.Edm.AssociationEndMember,bool):this\n-\t\t\t\t\t\t;; size=198 bbWeight=1 PerfScore 57.50\n-G_M29662_IG08:\n        call     [rax]System.Data.Entity.ModelConfiguration.Edm.Services.AssociationTypeMappingGenerator:GenerateIndependentForeignKeyConstraint(System.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping,System.Data.Entity.Core.Metadata.Edm.EntityType,System.Data.Entity.Core.Metadata.Edm.EntityType,System.Data.Entity.Core.Metadata.Edm.EntityType,System.Data.Entity.Core.Mapping.AssociationSetMapping,System.Data.Entity.Core.Mapping.EndPropertyMapping,System.String,System.Data.Entity.Core.Metadata.Edm.AssociationEndMember,bool):this\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.RelationshipEndMember:GetEntityType():System.Data.Entity.Core.Metadata.Edm.EntityType:this\n@@ -199,15 \u002B180,15 @@ G_M29662_IG08:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEnumerable\u00601[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator\u00601[System.__Canon]:this\n        call     [r11]System.Collections.Generic.IEnumerable\u00601[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator\u00601[System.__Canon]:this\n        mov      gword ptr [rbp-0x50], rax\n-\t\t\t\t\t\t;; size=68 bbWeight=1 PerfScore 24.50\n-G_M29662_IG09:\n\u002B\t\t\t\t\t\t;; size=140 bbWeight=1 PerfScore 42.00\n\u002BG_M29662_IG06:\n        mov      rdi, rax\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():bool:this\n        call     [r11]System.Collections.IEnumerator:MoveNext():bool:this\n        test     eax, eax\n-       je       G_M29662_IG13\n\u002B       je       G_M29662_IG10\n \t\t\t\t\t\t;; size=24 bbWeight=8 PerfScore 38.00\n-G_M29662_IG10:\n\u002BG_M29662_IG07:\n        mov      rdi, gword ptr [rbp-0x50]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEnumerator\u00601[System.__Canon]:get_Current():System.__Canon:this\n        call     [r11]System.Collections.Generic.IEnumerator\u00601[System.__Canon]:get_Current():System.__Canon:this\n@@ -245,16 \u002B226,16 @@ G_M29662_IG10:\n        mov      rax, gword ptr [rdi\u002B0x08]\n        mov      ebx, dword ptr [rdi\u002B0x10]\n        cmp      dword ptr [rax\u002B0x08], ebx\n-       ja       SHORT G_M29662_IG12\n\u002B       ja       SHORT G_M29662_IG09\n \t\t\t\t\t\t;; size=172 bbWeight=4 PerfScore 165.00\n-G_M29662_IG11:\n\u002BG_M29662_IG08:\n        mov      rsi, r12\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:AddWithResize(System.__Canon):this\n        mov      rax, gword ptr [rbp-0x50]\n-       jmp      G_M29662_IG09\n\u002B       jmp      G_M29662_IG06\n \t\t\t\t\t\t;; size=24 bbWeight=2 PerfScore 13.00\n-G_M29662_IG12:\n\u002BG_M29662_IG09:\n        lea      esi, [rbx\u002B0x01]\n        mov      dword ptr [rdi\u002B0x10], esi\n        mov      esi, ebx\n@@ -263,15 \u002B244,15 @@ G_M29662_IG12:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST\n        call     [rax]CORINFO_HELP_ARRADDR_ST\n        mov      rax, gword ptr [rbp-0x50]\n-       jmp      G_M29662_IG09\n\u002B       jmp      G_M29662_IG06\n \t\t\t\t\t\t;; size=35 bbWeight=2 PerfScore 17.00\n-G_M29662_IG13:\n\u002BG_M29662_IG10:\n        mov      rdi, gword ptr [rbp-0x50]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n        nop      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.50\n-G_M29662_IG14:\n\u002BG_M29662_IG11:\n        add      rsp, 104\n        pop      rbx\n        pop      r12\n@@ -281,7 \u002B262,7 @@ G_M29662_IG14:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M29662_IG15:\n\u002BG_M29662_IG12:\n        mov      rdi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Core.Metadata.Edm.AssociationType:get_SourceEnd():System.Data.Entity.Core.Metadata.Edm.AssociationEndMember:this\n        cmp      dword ptr [rdi], edi\n@@ -312,34 \u002B293,34 @@ G_M29662_IG15:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=126 bbWeight=0 PerfScore 0.00\n-G_M29662_IG16:\n\u002BG_M29662_IG13:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M29662_IG17:\n\u002BG_M29662_IG14:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M29662_IG18:\n\u002BG_M29662_IG15:\n        sub      rsp, 40\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M29662_IG19:\n\u002BG_M29662_IG16:\n        cmp      gword ptr [rbp-0x50], 0\n-       je       SHORT G_M29662_IG20\n\u002B       je       SHORT G_M29662_IG17\n        mov      rdi, gword ptr [rbp-0x50]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M29662_IG20:\n\u002BG_M29662_IG17:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M29662_IG21:\n\u002BG_M29662_IG18:\n        add      rsp, 40\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1024, prolog size 47, PerfScore 378.46, instruction count 247, allocated bytes for code 1024 (MethodHash=233d8c21) for method System.Data.Entity.ModelConfiguration.Edm.Services.AssociationTypeMappingGenerator:GenerateIndependentAssociationType(System.Data.Entity.Core.Metadata.Edm.AssociationType,System.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping):this (FullOpts)\n\u002B; Total bytes of code 972, prolog size 47, PerfScore 370.46, instruction count 234, allocated bytes for code 972 (MethodHash=233d8c21) for method System.Data.Entity.ModelConfiguration.Edm.Services.AssociationTypeMappingGenerator:GenerateIndependentAssociationType(System.Data.Entity.Core.Metadata.Edm.AssociationType,System.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1024,"DiffBytes":972},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollectionAsync[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.Numerics.Vector\u00601[float],MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M36913_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M36913_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M36913_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]]:Render(MongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M36913_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M36913_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M36913_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M36913_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M36913_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M36913_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M36913_IG07:\n        test     rax, rax\n-       je       SHORT G_M36913_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M36913_IG08:\n\u002B       je       SHORT G_M36913_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M36913_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M36913_IG10\n\u002B       jmp      SHORT G_M36913_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M36913_IG09:\n\u002BG_M36913_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M36913_IG10:\n\u002BG_M36913_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M36913_IG14\n\u002B       je       SHORT G_M36913_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M36913_IG11:\n\u002BG_M36913_IG08:\n        test     rax, rax\n-       je       SHORT G_M36913_IG15\n\u002B       je       SHORT G_M36913_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M36913_IG12:\n\u002BG_M36913_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M36913_IG15\n\u002B       jne      SHORT G_M36913_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M36913_IG13:\n\u002BG_M36913_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M36913_IG15\n\u002B       je       SHORT G_M36913_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M36913_IG14:\n\u002BG_M36913_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M36913_IG22\n\u002B       jmp      SHORT G_M36913_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M36913_IG15:\n\u002BG_M36913_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M36913_IG20\n\u002B       je       SHORT G_M36913_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M36913_IG16:\n\u002BG_M36913_IG13:\n        test     rax, rax\n-       je       SHORT G_M36913_IG18\n\u002B       je       SHORT G_M36913_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M36913_IG17:\n\u002BG_M36913_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M36913_IG19\n\u002B       je       SHORT G_M36913_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M36913_IG18:\n\u002BG_M36913_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M36913_IG21\n\u002B       jmp      SHORT G_M36913_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M36913_IG19:\n\u002BG_M36913_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M36913_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M36913_IG21\n\u002B       jmp      SHORT G_M36913_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M36913_IG20:\n\u002BG_M36913_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M36913_IG21:\n\u002BG_M36913_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M36913_IG22:\n\u002BG_M36913_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M36913_IG27\n\u002B       je       G_M36913_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M36913_IG27\n\u002B       je       G_M36913_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M36913_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.Numerics.Vector\u00601[float],System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M36913_IG24\n\u002B       jne      SHORT G_M36913_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M36913_IG23:\n\u002BG_M36913_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M36913_IG24:\n\u002BG_M36913_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M36913_IG25:\n-       add      rsp, 232\n\u002BG_M36913_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M36913_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M36913_IG26:\n\u002BG_M36913_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M36913_IG27:\n\u002BG_M36913_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M36913_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=dcf06fce) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollectionAsync[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=dcf06fce) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollectionAsync[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Iam.ActivityLogService:ListAutoPagingAsync(Stripe.V2.Iam.ActivityLogListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Iam.ActivityLog]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.Iam.ActivityLogService:ListAutoPagingAsync(Stripe.V2.Iam.ActivityLogListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Iam.ActivityLog]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Iam.ActivityLogService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Iam.ActivityLogListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Iam.ActivityLogListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Iam.ActivityLog]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Iam.ActivityLog]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Iam.ActivityLog]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Iam.ActivityLog]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M1330_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M1330_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/iam/activity_logs\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M1330_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M1330_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Iam.ActivityLog]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M1330_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M1330_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M1330_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Iam.ActivityLog]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M1330_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M1330_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=8123facd) for method Stripe.V2.Iam.ActivityLogService:ListAutoPagingAsync(Stripe.V2.Iam.ActivityLogListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Iam.ActivityLog]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=8123facd) for method Stripe.V2.Iam.ActivityLogService:ListAutoPagingAsync(Stripe.V2.Iam.ActivityLogListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Iam.ActivityLog]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.ModelConfiguration.Edm.Services.StructuralTypeMappingGenerator\u002B\u003C\u003Ec__DisplayClass5_1:\u003CGetEntityTypeMappingInHierarchy\u003Eb__1(System.Data.Entity.Core.Metadata.Edm.EdmProperty):bool:this (FullOpts)","Category":"improvement","Description":"327 -\u003E 275 bytes (-52)","ExtraInfo":null,"Diff":"@@ -1,129 \u002B1,110 @@\n ; Assembly listing for method System.Data.Entity.ModelConfiguration.Edm.Services.StructuralTypeMappingGenerator\u002B\u003C\u003Ec__DisplayClass5_1:\u003CGetEntityTypeMappingInHierarchy\u003Eb__1(System.Data.Entity.Core.Metadata.Edm.EdmProperty):bool:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 2 single block inlinees; 3 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T03] (  3,  3   )     ref  -\u003E  rdi         this class-hnd single-def \u003CSystem.Data.Entity.ModelConfiguration.Edm.Services.StructuralTypeMappingGenerator\u002B\u003C\u003Ec__DisplayClass5_1\u003E\n ;  V01 arg1         [V01,T04] (  3,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmProperty\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V03 tmp1         [V03,T05] (  2,  4   )     ref  -\u003E  rdx         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ColumnMappingBuilder,System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n ;  V04 tmp2         [V04,T06] (  2,  4   )     ref  -\u003E  r15         class-hnd single-def \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Core.Mapping.ColumnMappingBuilder]\u003E\n ;* V05 tmp3         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V06 tmp4         [V06,T08] (  4,  3.50)     ref  -\u003E  rdx        \n ;  V07 tmp5         [V07,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Data.Entity.Core.Mapping.ColumnMappingBuilder,System.Data.Entity.Core.Metadata.Edm.EdmProperty]\u003E\n-;  V08 tmp6         [V08,T00] (  4,  7   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\u003E\n-;  V09 tmp7         [V09    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V08 tmp6         [V08,T00] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\u003E\n\u002B;  V09 tmp7         [V09    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V10 tmp8         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V11 tmp9         [V11,T10] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.MappingFragment\u003E\n-;  V12 tmp10        [V12,T09] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\u003E\n\u002B;  V11 tmp9         [V11,T09] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.MappingFragment\u003E\n\u002B;* V12 tmp10        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\u003E\n ;* V13 tmp11        [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.MappingFragment\u003E\n-;  V14 tmp12        [V14,T11] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Edm.Services.StructuralTypeMappingGenerator\u002B\u003C\u003Ec\u003E\n\u002B;  V14 tmp12        [V14,T10] (  2,  2   )     ref  -\u003E  rsi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.ModelConfiguration.Edm.Services.StructuralTypeMappingGenerator\u002B\u003C\u003Ec\u003E\n ;  V15 tmp13        [V15,T01] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V16 tmp14        [V16,T07] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 8\n \n G_M49730_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x20]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x20], rax\n        mov      rbx, rsi\n \t\t\t\t\t\t;; size=21 bbWeight=1 PerfScore 7.00\n G_M49730_IG02:\n        mov      rdi, gword ptr [rdi\u002B0x08]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax]System.Data.Entity.Core.Mapping.TypeMapping:get_MappingFragments():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.MappingFragment]:this\n-       mov      r15, rax\n-       test     r15, r15\n-       je       G_M49730_IG09\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M49730_IG04\n-\t\t\t\t\t\t;; size=55 bbWeight=1 PerfScore 15.50\n-G_M49730_IG03:\n-       lea      rsi, [rbp-0x20]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M49730_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M49730_IG04:\n\u002B       je       G_M49730_IG06\n        lea      rdx, [rbp-0x20]\n-       mov      rsi, r15\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Mapping.MappingFragment](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.MappingFragment],byref):System.Data.Entity.Core.Mapping.MappingFragment\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M49730_IG05:\n        cmp      byte  ptr [rbp-0x20], 0\n-       je       G_M49730_IG10\n\u002B       je       G_M49730_IG07\n        mov      r15, gword ptr [rax\u002B0x18]\n        mov      rdi, 0xD1FFAB1E      ; data for System.Data.Entity.ModelConfiguration.Edm.Services.StructuralTypeMappingGenerator\u002B\u003C\u003Ec:\u003C\u003E9__5_2\n        mov      rdx, gword ptr [rdi]\n        test     rdx, rdx\n-       jne      SHORT G_M49730_IG07\n-\t\t\t\t\t\t;; size=32 bbWeight=1 PerfScore 7.50\n-G_M49730_IG06:\n\u002B       jne      SHORT G_M49730_IG04\n\u002B\t\t\t\t\t\t;; size=83 bbWeight=1 PerfScore 22.00\n\u002BG_M49730_IG03:\n        mov      rdi, 0xD1FFAB1E      ; System.Func\u00602[System.Data.Entity.Core.Mapping.ColumnMappingBuilder,System.Data.Entity.Core.Metadata.Edm.EdmProperty]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      rdi, 0xD1FFAB1E      ; const ptr\n        mov      rsi, gword ptr [rdi]\n        lea      rdi, bword ptr [r14\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, 0xD1FFAB1E      ; code for System.Data.Entity.ModelConfiguration.Edm.Services.StructuralTypeMappingGenerator\u002B\u003C\u003Ec:\u003CGetEntityTypeMappingInHierarchy\u003Eb__5_2(System.Data.Entity.Core.Mapping.ColumnMappingBuilder):System.Data.Entity.Core.Metadata.Edm.EdmProperty:this\n        mov      qword ptr [r14\u002B0x18], rdi\n        mov      rdi, 0xD1FFAB1E      ; data for System.Data.Entity.ModelConfiguration.Edm.Services.StructuralTypeMappingGenerator\u002B\u003C\u003Ec:\u003C\u003E9__5_2\n        mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdx, r14\n \t\t\t\t\t\t;; size=75 bbWeight=0.50 PerfScore 4.12\n-G_M49730_IG07:\n\u002BG_M49730_IG04:\n        mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:Select[System.Data.Entity.Core.Mapping.ColumnMappingBuilder,System.Data.Entity.Core.Metadata.Edm.EdmProperty](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ColumnMappingBuilder],System.Func\u00602[System.Data.Entity.Core.Mapping.ColumnMappingBuilder,System.Data.Entity.Core.Metadata.Edm.EdmProperty]):System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:Select[System.__Canon,System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Func\u00602[System.__Canon,System.__Canon]):System.Collections.Generic.IEnumerable\u00601[System.__Canon]\n        call     [rax]System.Linq.Enumerable:Select[System.__Canon,System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.Func\u00602[System.__Canon,System.__Canon]):System.Collections.Generic.IEnumerable\u00601[System.__Canon]\n        mov      rsi, rax\n        mov      rdx, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:Contains[System.Data.Entity.Core.Metadata.Edm.EdmProperty](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EdmProperty],System.Data.Entity.Core.Metadata.Edm.EdmProperty):bool\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:Contains[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.__Canon):bool\n        call     [rax]System.Linq.Enumerable:Contains[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],System.__Canon):bool\n        nop      \n \t\t\t\t\t\t;; size=54 bbWeight=1 PerfScore 8.00\n-G_M49730_IG08:\n\u002BG_M49730_IG05:\n        add      rsp, 8\n        pop      rbx\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M49730_IG09:\n\u002BG_M49730_IG06:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M49730_IG10:\n\u002BG_M49730_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 327, prolog size 18, PerfScore 52.38, instruction count 76, allocated bytes for code 327 (MethodHash=48fc3dbd) for method System.Data.Entity.ModelConfiguration.Edm.Services.StructuralTypeMappingGenerator\u002B\u003C\u003Ec__DisplayClass5_1:\u003CGetEntityTypeMappingInHierarchy\u003Eb__1(System.Data.Entity.Core.Metadata.Edm.EdmProperty):bool:this (FullOpts)\n\u002B; Total bytes of code 275, prolog size 18, PerfScore 44.38, instruction count 63, allocated bytes for code 275 (MethodHash=48fc3dbd) for method System.Data.Entity.ModelConfiguration.Edm.Services.StructuralTypeMappingGenerator\u002B\u003C\u003Ec__DisplayClass5_1:\u003CGetEntityTypeMappingInHierarchy\u003Eb__1(System.Data.Entity.Core.Metadata.Edm.EdmProperty):bool:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":327,"DiffBytes":275},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollectionAsync[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.Numerics.Vector\u00601[float]]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.Numerics.Vector\u00601[float],MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M7889_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M7889_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M7889_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.Numerics.Vector\u00601[float]]:Render(MongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M7889_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M7889_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M7889_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M7889_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M7889_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M7889_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M7889_IG07:\n        test     rax, rax\n-       je       SHORT G_M7889_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M7889_IG08:\n\u002B       je       SHORT G_M7889_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M7889_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M7889_IG10\n\u002B       jmp      SHORT G_M7889_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M7889_IG09:\n\u002BG_M7889_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M7889_IG10:\n\u002BG_M7889_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M7889_IG14\n\u002B       je       SHORT G_M7889_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M7889_IG11:\n\u002BG_M7889_IG08:\n        test     rax, rax\n-       je       SHORT G_M7889_IG15\n\u002B       je       SHORT G_M7889_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M7889_IG12:\n\u002BG_M7889_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M7889_IG15\n\u002B       jne      SHORT G_M7889_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M7889_IG13:\n\u002BG_M7889_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M7889_IG15\n\u002B       je       SHORT G_M7889_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M7889_IG14:\n\u002BG_M7889_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M7889_IG22\n\u002B       jmp      SHORT G_M7889_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M7889_IG15:\n\u002BG_M7889_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M7889_IG20\n\u002B       je       SHORT G_M7889_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M7889_IG16:\n\u002BG_M7889_IG13:\n        test     rax, rax\n-       je       SHORT G_M7889_IG18\n\u002B       je       SHORT G_M7889_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M7889_IG17:\n\u002BG_M7889_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M7889_IG19\n\u002B       je       SHORT G_M7889_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M7889_IG18:\n\u002BG_M7889_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M7889_IG21\n\u002B       jmp      SHORT G_M7889_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M7889_IG19:\n\u002BG_M7889_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M7889_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M7889_IG21\n\u002B       jmp      SHORT G_M7889_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M7889_IG20:\n\u002BG_M7889_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M7889_IG21:\n\u002BG_M7889_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M7889_IG22:\n\u002BG_M7889_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M7889_IG27\n\u002B       je       G_M7889_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M7889_IG27\n\u002B       je       G_M7889_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M7889_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.Numerics.Vector\u00601[float],System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M7889_IG24\n\u002B       jne      SHORT G_M7889_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M7889_IG23:\n\u002BG_M7889_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M7889_IG24:\n\u002BG_M7889_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M7889_IG25:\n-       add      rsp, 232\n\u002BG_M7889_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M7889_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M7889_IG26:\n\u002BG_M7889_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M7889_IG27:\n\u002BG_M7889_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M7889_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=f889e12e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollectionAsync[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=f889e12e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollectionAsync[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Iam.ApiKeyService:ListAutoPagingAsync(Stripe.V2.Iam.ApiKeyListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Iam.ApiKey]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.Iam.ApiKeyService:ListAutoPagingAsync(Stripe.V2.Iam.ApiKeyListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Iam.ApiKey]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Iam.ApiKeyService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Iam.ApiKeyListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Iam.ApiKeyListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Iam.ApiKey]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Iam.ApiKey]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Iam.ApiKey]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Iam.ApiKey]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M36692_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M36692_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/iam/api_keys\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M36692_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M36692_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Iam.ApiKey]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M36692_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M36692_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M36692_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Iam.ApiKey]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M36692_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M36692_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=7a5b70ab) for method Stripe.V2.Iam.ApiKeyService:ListAutoPagingAsync(Stripe.V2.Iam.ApiKeyListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Iam.ApiKey]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=7a5b70ab) for method Stripe.V2.Iam.ApiKeyService:ListAutoPagingAsync(Stripe.V2.Iam.ApiKeyListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Iam.ApiKey]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Mapping.StorageMappingItemCollection\u002B\u003C\u003Ec:\u003CFindInterestingFunctionMappingMembers\u003Eb__42_0(System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding):System.Data.Entity.Core.Metadata.Edm.EdmMember:this (FullOpts)","Category":"improvement","Description":"143 -\u003E 92 bytes (-51)","ExtraInfo":null,"Diff":"@@ -1,79 \u002B1,58 @@\n ; Assembly listing for method System.Data.Entity.Core.Mapping.StorageMappingItemCollection\u002B\u003C\u003Ec:\u003CFindInterestingFunctionMappingMembers\u003Eb__42_0(System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding):System.Data.Entity.Core.Metadata.Edm.EdmMember:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 2 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;* V00 this         [V00    ] (  0,  0   )     ref  -\u003E  zero-ref    this class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.StorageMappingItemCollection\u002B\u003C\u003Ec\u003E\n ;  V01 arg1         [V01,T01] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding\u003E\n ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V03 tmp1         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.ModificationFunctionMemberPath\u003E\n-;  V04 tmp2         [V04,T00] (  4,  7   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n-;  V05 tmp3         [V05    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x10]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V04 tmp2         [V04,T00] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n\u002B;  V05 tmp3         [V05    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x08]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V06 tmp4         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V07 tmp5         [V07,T03] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmMember\u003E\n-;  V08 tmp6         [V08,T02] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n\u002B;  V07 tmp5         [V07,T02] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmMember\u003E\n\u002B;* V08 tmp6         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n ;\n-; Lcl frame size = 8\n\u002B; Lcl frame size = 16\n \n G_M40672_IG01:\n        push     rbp\n-       push     rbx\n-       push     rax\n\u002B       sub      rsp, 16\n        lea      rbp, [rsp\u002B0x10]\n-\t\t\t\t\t\t;; size=8 bbWeight=1 PerfScore 3.50\n\u002B\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 1.75\n G_M40672_IG02:\n-       mov      rsi, gword ptr [rsi\u002B0x20]\n-       mov      rbx, gword ptr [rsi\u002B0x18]\n-       test     rbx, rbx\n-       je       SHORT G_M40672_IG07\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n\u002B       mov      rdx, gword ptr [rsi\u002B0x20]\n\u002B       mov      rsi, gword ptr [rdx\u002B0x18]\n\u002B       test     rsi, rsi\n        je       SHORT G_M40672_IG04\n-\t\t\t\t\t\t;; size=43 bbWeight=1 PerfScore 10.25\n-G_M40672_IG03:\n-       lea      rsi, [rbp-0x10]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M40672_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M40672_IG04:\n-       lea      rdx, [rbp-0x10]\n-       mov      rsi, rbx\n\u002B       lea      rdx, [rbp-0x08]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.Data.Entity.Core.Metadata.Edm.EdmMember](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember],byref):System.Data.Entity.Core.Metadata.Edm.EdmMember\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M40672_IG05:\n-       cmp      byte  ptr [rbp-0x10], 0\n-       je       SHORT G_M40672_IG08\n-\t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 2.00\n-G_M40672_IG06:\n-       add      rsp, 8\n-       pop      rbx\n\u002B       cmp      byte  ptr [rbp-0x08], 0\n\u002B       je       SHORT G_M40672_IG05\n\u002B\t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 11.25\n\u002BG_M40672_IG03:\n\u002B       add      rsp, 16\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.25\n-G_M40672_IG07:\n\u002B\t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 1.75\n\u002BG_M40672_IG04:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M40672_IG08:\n\u002BG_M40672_IG05:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 143, prolog size 8, PerfScore 25.00, instruction count 38, allocated bytes for code 143 (MethodHash=c0de611f) for method System.Data.Entity.Core.Mapping.StorageMappingItemCollection\u002B\u003C\u003Ec:\u003CFindInterestingFunctionMappingMembers\u003Eb__42_0(System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding):System.Data.Entity.Core.Metadata.Edm.EdmMember:this (FullOpts)\n\u002B; Total bytes of code 92, prolog size 10, PerfScore 14.75, instruction count 23, allocated bytes for code 92 (MethodHash=c0de611f) for method System.Data.Entity.Core.Mapping.StorageMappingItemCollection\u002B\u003C\u003Ec:\u003CFindInterestingFunctionMappingMembers\u003Eb__42_0(System.Data.Entity.Core.Mapping.ModificationFunctionParameterBinding):System.Data.Entity.Core.Metadata.Edm.EdmMember:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":143,"DiffBytes":92},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollectionAsync[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"951 -\u003E 888 bytes (-63)","ExtraInfo":null,"Diff":"@@ -10,18 \u002B10,18 @@\n ;\n ;  V00 this         [V00,T03] (  5,  5   )     ref  -\u003E  r14         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V01 TypeCtx      [V01,T02] (  7,  5.40)    long  -\u003E  r15         single-def\n-;  V02 arg1         [V02,T06] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V02 arg1         [V02,T05] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V03 arg2         [V03,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.__Canon]\u003E\n ;  V04 arg3         [V04,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T22] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V06 loc0         [V06,T21] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n-;  V08 loc2         [V08,T23] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n-;  V09 loc3         [V09,T21] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V08 loc2         [V08,T22] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n\u002B;  V09 loc3         [V09,T20] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V12 tmp2         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V13 tmp3         [V13,T29] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V13 tmp3         [V13,T28] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V14 tmp4         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V15 tmp5         [V15    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V16 tmp6         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n@@ -39,26 \u002B39,26 @@\n ;* V28 tmp18        [V28    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V29 tmp19        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V30 tmp20        [V30    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V31 tmp21        [V31,T20] (  3,  2   )     int  -\u003E  registers  \n-;  V32 tmp22        [V32,T05] (  4,  7   )     ref  -\u003E  [rbp-0xD8]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V33 tmp23        [V33    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V34 tmp24        [V34,T18] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V35 tmp25        [V35,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V31 tmp21        [V31,T19] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V32 tmp22        [V32,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V33 tmp23        [V33    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V34 tmp24        [V34,T18] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V37 tmp27        [V37,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V38 tmp28        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V39 tmp29        [V39,T26] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V39 tmp29        [V39,T25] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V40 tmp30        [V40    ] ( 11, 10.50)  struct (88) [rbp-0xD0]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.Numerics.Vector\u00601[float],MongoDB.Bson.BsonDocument]\u003E\n ;* V41 tmp31        [V41    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V42 tmp32        [V42,T13] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V43 tmp33        [V43,T17] (  4,  3.50)     ref  -\u003E  rax        \n-;  V44 tmp34        [V44,T14] (  2,  2   )     ref  -\u003E  [rbp-0xE0]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp35        [V45,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V15.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp36        [V46,T25] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V15.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp34        [V44,T14] (  2,  2   )     ref  -\u003E  [rbp-0xD8]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp35        [V45,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V15.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp36        [V46,T24] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V15.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V22._name (fldOffset=0x0)\u0022 P-DEP\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V22._value (fldOffset=0x8)\u0022 P-DEP\n-;  V49 tmp39        [V49,T27] (  2,  1   )     ref  -\u003E  rax         \u0022field V23._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V50 tmp40        [V50,T28] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V23._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V49 tmp39        [V49,T26] (  2,  1   )     ref  -\u003E  rax         \u0022field V23._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V50 tmp40        [V50,T27] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V23._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V51 tmp41        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V41.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;  V52 tmp42        [V52,T15] (  2,  4   )    long  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V53 tmp43        [V53,T16] (  2,  4   )    long  -\u003E  rsi         \u0022argument with side effect\u0022\n@@ -67,7 \u002B67,7 @@\n ;  V56 rat2         [V56,T12] (  3,  4   )    long  -\u003E  rsi         \u0022runtime lookup\u0022\n ;  V57 rat3         [V57,T08] (  3,  5.60)    long  -\u003E  rsi         \u0022fgMakeTemp is creating a new local variable\u0022\n ;\n-; Lcl frame size = 248\n\u002B; Lcl frame size = 232\n \n G_M20785_IG01:\n        push     rbp\n@@ -76,14 \u002B76,14 @@ G_M20785_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 248\n-       lea      rbp, [rsp\u002B0x120]\n\u002B       sub      rsp, 232\n\u002B       lea      rbp, [rsp\u002B0x110]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0xD0], zmm8\n        vmovdqu32 zmmword ptr [rbp-0x90], zmm8\n        vmovdqu  ymmword ptr [rbp-0x50], ymm8\n        mov      qword ptr [rbp-0x30], rsi\n-       mov      gword ptr [rbp-0xE0], r9\n\u002B       mov      gword ptr [rbp-0xD8], r9\n        mov      r14, rdi\n        mov      r15, rsi\n        mov      r12, rdx\n@@ -99,7 \u002B99,7 @@ G_M20785_IG02:\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M20785_IG29\n\u002B       je       G_M20785_IG26\n \t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 9.25\n G_M20785_IG03:\n        mov      rsi, r13\n@@ -149,90 \u002B149,70 @@ G_M20785_IG05:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.__Canon]:Render(MongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0xD8], rax\n-       test     rax, rax\n-       je       G_M20785_IG30\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n... diff truncated; middle omitted ...\n-       test     rax, rax\n-       je       SHORT G_M20785_IG07\n-\t\t\t\t\t\t;; size=181 bbWeight=1 PerfScore 43.25\n-G_M20785_IG06:\n-       lea      rsi, [rbp-0x78]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M20785_IG08\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M20785_IG07:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M20785_IG27\n        lea      rdx, [rbp-0x78]\n-       mov      rsi, gword ptr [rbp-0xD8]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M20785_IG08:\n        test     rax, rax\n-       je       SHORT G_M20785_IG10\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M20785_IG09:\n\u002B       je       SHORT G_M20785_IG07\n\u002B\t\t\t\t\t\t;; size=175 bbWeight=1 PerfScore 42.50\n\u002BG_M20785_IG06:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M20785_IG11\n\u002B       jmp      SHORT G_M20785_IG08\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M20785_IG10:\n\u002BG_M20785_IG07:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M20785_IG11:\n\u002BG_M20785_IG08:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M20785_IG15\n\u002B       je       SHORT G_M20785_IG12\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M20785_IG12:\n\u002BG_M20785_IG09:\n        test     rax, rax\n-       je       SHORT G_M20785_IG16\n\u002B       je       SHORT G_M20785_IG13\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M20785_IG13:\n\u002BG_M20785_IG10:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M20785_IG16\n\u002B       jne      SHORT G_M20785_IG13\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M20785_IG14:\n\u002BG_M20785_IG11:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M20785_IG16\n\u002B       je       SHORT G_M20785_IG13\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M20785_IG15:\n\u002BG_M20785_IG12:\n        mov      ecx, 1\n-       jmp      SHORT G_M20785_IG23\n\u002B       jmp      SHORT G_M20785_IG20\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M20785_IG16:\n\u002BG_M20785_IG13:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M20785_IG21\n\u002B       je       SHORT G_M20785_IG18\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M20785_IG17:\n\u002BG_M20785_IG14:\n        test     rax, rax\n-       je       SHORT G_M20785_IG19\n\u002B       je       SHORT G_M20785_IG16\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M20785_IG18:\n\u002BG_M20785_IG15:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M20785_IG20\n\u002B       je       SHORT G_M20785_IG17\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M20785_IG19:\n\u002BG_M20785_IG16:\n        xor      ecx, ecx\n-       jmp      SHORT G_M20785_IG22\n\u002B       jmp      SHORT G_M20785_IG19\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M20785_IG20:\n\u002BG_M20785_IG17:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -240,30 \u002B220,30 @@ G_M20785_IG20:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M20785_IG22\n\u002B       jmp      SHORT G_M20785_IG19\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M20785_IG21:\n\u002BG_M20785_IG18:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M20785_IG22:\n\u002BG_M20785_IG19:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M20785_IG23:\n\u002BG_M20785_IG20:\n        mov      dword ptr [rbp-0x6C], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M20785_IG31\n\u002B       je       G_M20785_IG28\n        cmp      dword ptr [rbp-0x6C], 0\n-       je       G_M20785_IG31\n\u002B       je       G_M20785_IG28\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rsi, qword ptr [rdi\u002B0x20]\n        test     rsi, rsi\n-       je       G_M20785_IG28\n\u002B       je       G_M20785_IG25\n \t\t\t\t\t\t;; size=55 bbWeight=1 PerfScore 14.75\n-G_M20785_IG24:\n\u002BG_M20785_IG21:\n        mov      rdi, r14\n        mov      rdx, r13\n        mov      rcx, rbx\n@@ -278,7 \u002B258,7 @@ G_M20785_IG24:\n        mov      gword ptr [rbp-0xC0], rax\n        mov      byte  ptr [rbp-0xA0], sil\n        mov      qword ptr [rbp-0x98], rdi\n-       mov      rbx, gword ptr [rbp-0xE0]\n\u002B       mov      rbx, gword ptr [rbp-0xD8]\n        mov      gword ptr [rbp-0x90], rbx\n        mov      dword ptr [rbp-0xB0], -1\n        lea      rsi, [rbp-0xD0]\n@@ -287,19 \u002B267,19 @@ G_M20785_IG24:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.Numerics.Vector\u00601[float],System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA8]\n        test     rax, rax\n-       jne      SHORT G_M20785_IG26\n\u002B       jne      SHORT G_M20785_IG23\n \t\t\t\t\t\t;; size=139 bbWeight=1 PerfScore 23.50\n-G_M20785_IG25:\n\u002BG_M20785_IG22:\n        lea      rdi, [rbp-0xA8]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M20785_IG26:\n\u002BG_M20785_IG23:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M20785_IG27:\n-       add      rsp, 248\n\u002BG_M20785_IG24:\n\u002B       add      rsp, 232\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -308,15 \u002B288,15 @@ G_M20785_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M20785_IG28:\n\u002BG_M20785_IG25:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M20785_IG24\n\u002B       jmp      G_M20785_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M20785_IG29:\n\u002BG_M20785_IG26:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -324,13 \u002B304,13 @@ G_M20785_IG29:\n        mov      rdi, rax\n        jmp      G_M20785_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M20785_IG30:\n\u002BG_M20785_IG27:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M20785_IG31:\n\u002BG_M20785_IG28:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -343,5 \u002B323,5 @@ G_M20785_IG31:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 951, prolog size 59, PerfScore 144.30, instruction count 211, allocated bytes for code 951 (MethodHash=ca22aece) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollectionAsync[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 888, prolog size 59, PerfScore 134.92, instruction count 197, allocated bytes for code 888 (MethodHash=ca22aece) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollectionAsync[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":951,"DiffBytes":888},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.MoneyManagement.AdjustmentService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.AdjustmentListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.Adjustment]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.MoneyManagement.AdjustmentService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.AdjustmentListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.Adjustment]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.MoneyManagement.AdjustmentService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.MoneyManagement.AdjustmentListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.MoneyManagement.AdjustmentListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.Adjustment]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.Adjustment]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.Adjustment]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.Adjustment]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M34706_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M34706_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/money_management/adjustments\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M34706_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M34706_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.Adjustment]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M34706_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M34706_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M34706_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.Adjustment]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M34706_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M34706_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=9682786d) for method Stripe.V2.MoneyManagement.AdjustmentService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.AdjustmentListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.Adjustment]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=9682786d) for method Stripe.V2.MoneyManagement.AdjustmentService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.AdjustmentListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.Adjustment]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper:get_OnlyInputCell():System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell:this (FullOpts)","Category":"improvement","Description":"139 -\u003E 88 bytes (-51)","ExtraInfo":null,"Diff":"@@ -1,76 \u002B1,55 @@\n ; Assembly listing for method System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper:get_OnlyInputCell():System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T01] (  3,  3   )     ref  -\u003E  rdi         this class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper\u003E\n ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V02 tmp1         [V02,T00] (  4,  7   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n-;  V03 tmp2         [V03    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x10]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V02 tmp1         [V02,T00] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.HashSet\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n\u002B;  V03 tmp2         [V03    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x08]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V04 tmp3         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V05 tmp4         [V05,T03] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\u003E\n-;  V06 tmp5         [V06,T02] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n\u002B;  V05 tmp4         [V05,T02] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\u003E\n\u002B;* V06 tmp5         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\u003E\n ;\n-; Lcl frame size = 8\n\u002B; Lcl frame size = 16\n \n G_M7266_IG01:\n        push     rbp\n-       push     rbx\n-       push     rax\n\u002B       sub      rsp, 16\n        lea      rbp, [rsp\u002B0x10]\n-\t\t\t\t\t\t;; size=8 bbWeight=1 PerfScore 3.50\n\u002B\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 1.75\n G_M7266_IG02:\n-       mov      rbx, gword ptr [rdi\u002B0x28]\n-       test     rbx, rbx\n-       je       SHORT G_M7266_IG07\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n\u002B       mov      rsi, gword ptr [rdi\u002B0x28]\n\u002B       test     rsi, rsi\n        je       SHORT G_M7266_IG04\n-\t\t\t\t\t\t;; size=39 bbWeight=1 PerfScore 8.25\n-G_M7266_IG03:\n-       lea      rsi, [rbp-0x10]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M7266_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M7266_IG04:\n-       lea      rdx, [rbp-0x10]\n-       mov      rsi, rbx\n\u002B       lea      rdx, [rbp-0x08]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell],byref):System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M7266_IG05:\n-       cmp      byte  ptr [rbp-0x10], 0\n-       je       SHORT G_M7266_IG08\n-\t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 2.00\n-G_M7266_IG06:\n-       add      rsp, 8\n-       pop      rbx\n\u002B       cmp      byte  ptr [rbp-0x08], 0\n\u002B       je       SHORT G_M7266_IG05\n\u002B\t\t\t\t\t\t;; size=41 bbWeight=1 PerfScore 9.25\n\u002BG_M7266_IG03:\n\u002B       add      rsp, 16\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.25\n-G_M7266_IG07:\n\u002B\t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 1.75\n\u002BG_M7266_IG04:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M7266_IG08:\n\u002BG_M7266_IG05:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 139, prolog size 8, PerfScore 23.00, instruction count 37, allocated bytes for code 139 (MethodHash=1992e39d) for method System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper:get_OnlyInputCell():System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell:this (FullOpts)\n\u002B; Total bytes of code 88, prolog size 10, PerfScore 12.75, instruction count 22, allocated bytes for code 88 (MethodHash=1992e39d) for method System.Data.Entity.Core.Mapping.ViewGeneration.Structures.LeftCellWrapper:get_OnlyInputCell():System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Cell:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":139,"DiffBytes":88},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollectionAsync[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],byte]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.Numerics.Vector\u00601[float],MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M54961_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M54961_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M54961_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],byte]:Render(MongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]):MongoDB.Driver.RenderedPipelineDefinition\u00601[byte]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M54961_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M54961_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M54961_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M54961_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M54961_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M54961_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M54961_IG07:\n        test     rax, rax\n-       je       SHORT G_M54961_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M54961_IG08:\n\u002B       je       SHORT G_M54961_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M54961_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M54961_IG10\n\u002B       jmp      SHORT G_M54961_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M54961_IG09:\n\u002BG_M54961_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M54961_IG10:\n\u002BG_M54961_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M54961_IG14\n\u002B       je       SHORT G_M54961_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M54961_IG11:\n\u002BG_M54961_IG08:\n        test     rax, rax\n-       je       SHORT G_M54961_IG15\n\u002B       je       SHORT G_M54961_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M54961_IG12:\n\u002BG_M54961_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M54961_IG15\n\u002B       jne      SHORT G_M54961_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M54961_IG13:\n\u002BG_M54961_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M54961_IG15\n\u002B       je       SHORT G_M54961_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M54961_IG14:\n\u002BG_M54961_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M54961_IG22\n\u002B       jmp      SHORT G_M54961_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M54961_IG15:\n\u002BG_M54961_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M54961_IG20\n\u002B       je       SHORT G_M54961_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M54961_IG16:\n\u002BG_M54961_IG13:\n        test     rax, rax\n-       je       SHORT G_M54961_IG18\n\u002B       je       SHORT G_M54961_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M54961_IG17:\n\u002BG_M54961_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M54961_IG19\n\u002B       je       SHORT G_M54961_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M54961_IG18:\n\u002BG_M54961_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M54961_IG21\n\u002B       jmp      SHORT G_M54961_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M54961_IG19:\n\u002BG_M54961_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M54961_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M54961_IG21\n\u002B       jmp      SHORT G_M54961_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M54961_IG20:\n\u002BG_M54961_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M54961_IG21:\n\u002BG_M54961_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M54961_IG22:\n\u002BG_M54961_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M54961_IG27\n\u002B       je       G_M54961_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M54961_IG27\n\u002B       je       G_M54961_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M54961_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.Numerics.Vector\u00601[float],System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M54961_IG24\n\u002B       jne      SHORT G_M54961_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M54961_IG23:\n\u002BG_M54961_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M54961_IG24:\n\u002BG_M54961_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M54961_IG25:\n-       add      rsp, 232\n\u002BG_M54961_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M54961_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M54961_IG26:\n\u002BG_M54961_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M54961_IG27:\n\u002BG_M54961_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M54961_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=08ea294e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollectionAsync[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=08ea294e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollectionAsync[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.MoneyManagement.CurrencyConversionService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.CurrencyConversionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.CurrencyConversion]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.MoneyManagement.CurrencyConversionService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.CurrencyConversionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.CurrencyConversion]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.MoneyManagement.CurrencyConversionService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.MoneyManagement.CurrencyConversionListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.MoneyManagement.CurrencyConversionListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.CurrencyConversion]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.CurrencyConversion]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.CurrencyConversion]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.CurrencyConversion]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M56226_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M56226_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/money_management/currency_conversions\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M56226_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M56226_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.CurrencyConversion]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M56226_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M56226_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M56226_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.CurrencyConversion]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M56226_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M56226_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=3f7e245d) for method Stripe.V2.MoneyManagement.CurrencyConversionService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.CurrencyConversionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.CurrencyConversion]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=3f7e245d) for method Stripe.V2.MoneyManagement.CurrencyConversionService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.CurrencyConversionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.CurrencyConversion]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Metadata.Edm.AssociationType:get_SourceEnd():System.Data.Entity.Core.Metadata.Edm.AssociationEndMember:this (FullOpts)","Category":"improvement","Description":"153 -\u003E 102 bytes (-51)","ExtraInfo":null,"Diff":"@@ -1,86 \u002B1,65 @@\n ; Assembly listing for method System.Data.Entity.Core.Metadata.Edm.AssociationType:get_SourceEnd():System.Data.Entity.Core.Metadata.Edm.AssociationEndMember:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T01] (  4,  4   )     ref  -\u003E  rdi         this class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationType\u003E\n\u002B;  V00 this         [V00,T00] (  4,  4   )     ref  -\u003E  rdi         this class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationType\u003E\n ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V02 tmp1         [V02    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022ISINST eval op1\u0022\n-;  V03 tmp2         [V03,T03] (  3,  2.75)     ref  -\u003E  rax         class-hnd \u0022spilling qmarkNull\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationEndMember\u003E\n-;  V04 tmp3         [V04,T00] (  4,  7   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n-;  V05 tmp4         [V05    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x10]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V06 tmp5         [V06,T04] (  5,  2.38)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmMember\u003E\n-;  V07 tmp6         [V07,T02] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n\u002B;  V03 tmp2         [V03,T02] (  3,  2.75)     ref  -\u003E  rax         class-hnd \u0022spilling qmarkNull\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.AssociationEndMember\u003E\n\u002B;  V04 tmp3         [V04,T01] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n\u002B;  V05 tmp4         [V05    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x08]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V06 tmp5         [V06,T03] (  4,  2.38)     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmMember\u003E\n\u002B;* V07 tmp6         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\u003E\n ;\n-; Lcl frame size = 8\n\u002B; Lcl frame size = 16\n \n G_M29563_IG01:\n        push     rbp\n-       push     rbx\n-       push     rax\n\u002B       sub      rsp, 16\n        lea      rbp, [rsp\u002B0x10]\n-\t\t\t\t\t\t;; size=8 bbWeight=1 PerfScore 3.50\n\u002B\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 1.75\n G_M29563_IG02:\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x58]\n        call     [rax\u002B0x30]System.Data.Entity.Core.Metadata.Edm.EntityTypeBase:get_KeyMembers():System.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]:this\n-       mov      rbx, rax\n-       test     rbx, rbx\n-       je       SHORT G_M29563_IG10\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n-       je       SHORT G_M29563_IG04\n-\t\t\t\t\t\t;; size=48 bbWeight=1 PerfScore 13.50\n-G_M29563_IG03:\n-       lea      rsi, [rbp-0x10]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M29563_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M29563_IG04:\n-       lea      rdx, [rbp-0x10]\n-       mov      rsi, rbx\n\u002B       je       SHORT G_M29563_IG07\n\u002B       lea      rdx, [rbp-0x08]\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.EdmMember](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.EdmMember],byref):System.Data.Entity.Core.Metadata.Edm.EdmMember\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M29563_IG05:\n        test     rax, rax\n-       je       SHORT G_M29563_IG08\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M29563_IG06:\n\u002B       je       SHORT G_M29563_IG05\n\u002B\t\t\t\t\t\t;; size=49 bbWeight=1 PerfScore 13.75\n\u002BG_M29563_IG03:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Core.Metadata.Edm.AssociationEndMember\n        cmp      qword ptr [rax], rdi\n-       jne      SHORT G_M29563_IG08\n\u002B       jne      SHORT G_M29563_IG05\n \t\t\t\t\t\t;; size=15 bbWeight=0.25 PerfScore 0.81\n-G_M29563_IG07:\n-       jmp      SHORT G_M29563_IG09\n\u002BG_M29563_IG04:\n\u002B       jmp      SHORT G_M29563_IG06\n \t\t\t\t\t\t;; size=2 bbWeight=0.12 PerfScore 0.25\n-G_M29563_IG08:\n\u002BG_M29563_IG05:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.25 PerfScore 0.06\n-G_M29563_IG09:\n-       add      rsp, 8\n-       pop      rbx\n\u002BG_M29563_IG06:\n\u002B       add      rsp, 16\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.25\n-G_M29563_IG10:\n\u002B\t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 1.75\n\u002BG_M29563_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 153, prolog size 8, PerfScore 28.62, instruction count 42, allocated bytes for code 153 (MethodHash=22b98c84) for method System.Data.Entity.Core.Metadata.Edm.AssociationType:get_SourceEnd():System.Data.Entity.Core.Metadata.Edm.AssociationEndMember:this (FullOpts)\n\u002B; Total bytes of code 102, prolog size 10, PerfScore 18.38, instruction count 27, allocated bytes for code 102 (MethodHash=22b98c84) for method System.Data.Entity.Core.Metadata.Edm.AssociationType:get_SourceEnd():System.Data.Entity.Core.Metadata.Edm.AssociationEndMember:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":153,"DiffBytes":102},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollectionAsync[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],double]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.Numerics.Vector\u00601[float],MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M17841_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M17841_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M17841_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],double]:Render(MongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]):MongoDB.Driver.RenderedPipelineDefinition\u00601[double]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M17841_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M17841_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M17841_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M17841_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M17841_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M17841_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M17841_IG07:\n        test     rax, rax\n-       je       SHORT G_M17841_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M17841_IG08:\n\u002B       je       SHORT G_M17841_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M17841_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M17841_IG10\n\u002B       jmp      SHORT G_M17841_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M17841_IG09:\n\u002BG_M17841_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M17841_IG10:\n\u002BG_M17841_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M17841_IG14\n\u002B       je       SHORT G_M17841_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M17841_IG11:\n\u002BG_M17841_IG08:\n        test     rax, rax\n-       je       SHORT G_M17841_IG15\n\u002B       je       SHORT G_M17841_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M17841_IG12:\n\u002BG_M17841_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M17841_IG15\n\u002B       jne      SHORT G_M17841_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M17841_IG13:\n\u002BG_M17841_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M17841_IG15\n\u002B       je       SHORT G_M17841_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M17841_IG14:\n\u002BG_M17841_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M17841_IG22\n\u002B       jmp      SHORT G_M17841_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M17841_IG15:\n\u002BG_M17841_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M17841_IG20\n\u002B       je       SHORT G_M17841_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M17841_IG16:\n\u002BG_M17841_IG13:\n        test     rax, rax\n-       je       SHORT G_M17841_IG18\n\u002B       je       SHORT G_M17841_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M17841_IG17:\n\u002BG_M17841_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M17841_IG19\n\u002B       je       SHORT G_M17841_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M17841_IG18:\n\u002BG_M17841_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M17841_IG21\n\u002B       jmp      SHORT G_M17841_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M17841_IG19:\n\u002BG_M17841_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M17841_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M17841_IG21\n\u002B       jmp      SHORT G_M17841_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M17841_IG20:\n\u002BG_M17841_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M17841_IG21:\n\u002BG_M17841_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M17841_IG22:\n\u002BG_M17841_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M17841_IG27\n\u002B       je       G_M17841_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M17841_IG27\n\u002B       je       G_M17841_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M17841_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.Numerics.Vector\u00601[float],System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M17841_IG24\n\u002B       jne      SHORT G_M17841_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M17841_IG23:\n\u002BG_M17841_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M17841_IG24:\n\u002BG_M17841_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M17841_IG25:\n-       add      rsp, 232\n\u002BG_M17841_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M17841_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M17841_IG26:\n\u002BG_M17841_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M17841_IG27:\n\u002BG_M17841_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M17841_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=5536ba4e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollectionAsync[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=5536ba4e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollectionAsync[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.MoneyManagement.DebitDisputeService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.DebitDisputeListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.DebitDispute]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.MoneyManagement.DebitDisputeService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.DebitDisputeListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.DebitDispute]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.MoneyManagement.DebitDisputeService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.MoneyManagement.DebitDisputeListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.MoneyManagement.DebitDisputeListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.DebitDispute]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.DebitDispute]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.DebitDispute]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.DebitDispute]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M52137_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M52137_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/money_management/debit_disputes\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M52137_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M52137_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.DebitDispute]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M52137_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M52137_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M52137_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.DebitDispute]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M52137_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M52137_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=518b3456) for method Stripe.V2.MoneyManagement.DebitDisputeService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.DebitDisputeListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.DebitDispute]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=518b3456) for method Stripe.V2.MoneyManagement.DebitDisputeService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.DebitDisputeListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.DebitDispute]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Core.Metadata.Edm.EdmFunction:get_ReturnParameter():System.Data.Entity.Core.Metadata.Edm.FunctionParameter:this (FullOpts)","Category":"improvement","Description":"121 -\u003E 70 bytes (-51)","ExtraInfo":null,"Diff":"@@ -1,69 \u002B1,48 @@\n ; Assembly listing for method System.Data.Entity.Core.Metadata.Edm.EdmFunction:get_ReturnParameter():System.Data.Entity.Core.Metadata.Edm.FunctionParameter:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T01] (  3,  3   )     ref  -\u003E  rdi         this class-hnd single-def \u003CSystem.Data.Entity.Core.Metadata.Edm.EdmFunction\u003E\n ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V02 tmp1         [V02,T00] (  4,  7   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n-;  V03 tmp2         [V03    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x10]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V04 tmp3         [V04,T03] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n-;  V05 tmp4         [V05,T02] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V02 tmp1         [V02,T00] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.ReadOnlyMetadataCollection\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n\u002B;  V03 tmp2         [V03    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x08]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V04 tmp3         [V04,T02] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Metadata.Edm.FunctionParameter\u003E\n\u002B;* V05 tmp4         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\u003E\n ;\n-; Lcl frame size = 8\n\u002B; Lcl frame size = 16\n \n G_M45192_IG01:\n        push     rbp\n-       push     rbx\n-       push     rax\n\u002B       sub      rsp, 16\n        lea      rbp, [rsp\u002B0x10]\n-\t\t\t\t\t\t;; size=8 bbWeight=1 PerfScore 3.50\n\u002B\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 1.75\n G_M45192_IG02:\n-       mov      rbx, gword ptr [rdi\u002B0x48]\n-       test     rbx, rbx\n-       je       SHORT G_M45192_IG07\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n\u002B       mov      rsi, gword ptr [rdi\u002B0x48]\n\u002B       test     rsi, rsi\n        je       SHORT G_M45192_IG04\n-\t\t\t\t\t\t;; size=39 bbWeight=1 PerfScore 8.25\n-G_M45192_IG03:\n-       lea      rsi, [rbp-0x10]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M45192_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M45192_IG04:\n-       lea      rdx, [rbp-0x10]\n-       mov      rsi, rbx\n\u002B       lea      rdx, [rbp-0x08]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Metadata.Edm.FunctionParameter](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Metadata.Edm.FunctionParameter],byref):System.Data.Entity.Core.Metadata.Edm.FunctionParameter\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M45192_IG05:\n        nop      \n-\t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M45192_IG06:\n-       add      rsp, 8\n-       pop      rbx\n\u002B\t\t\t\t\t\t;; size=36 bbWeight=1 PerfScore 7.50\n\u002BG_M45192_IG03:\n\u002B       add      rsp, 16\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.25\n-G_M45192_IG07:\n\u002B\t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 1.75\n\u002BG_M45192_IG04:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 121, prolog size 8, PerfScore 21.25, instruction count 33, allocated bytes for code 121 (MethodHash=f4d94f77) for method System.Data.Entity.Core.Metadata.Edm.EdmFunction:get_ReturnParameter():System.Data.Entity.Core.Metadata.Edm.FunctionParameter:this (FullOpts)\n\u002B; Total bytes of code 70, prolog size 10, PerfScore 11.00, instruction count 18, allocated bytes for code 70 (MethodHash=f4d94f77) for method System.Data.Entity.Core.Metadata.Edm.EdmFunction:get_ReturnParameter():System.Data.Entity.Core.Metadata.Edm.FunctionParameter:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":121,"DiffBytes":70},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollectionAsync[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],int]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.Numerics.Vector\u00601[float],MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M36881_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M36881_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M36881_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],int]:Render(MongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]):MongoDB.Driver.RenderedPipelineDefinition\u00601[int]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M36881_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M36881_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M36881_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M36881_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M36881_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M36881_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M36881_IG07:\n        test     rax, rax\n-       je       SHORT G_M36881_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M36881_IG08:\n\u002B       je       SHORT G_M36881_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M36881_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M36881_IG10\n\u002B       jmp      SHORT G_M36881_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M36881_IG09:\n\u002BG_M36881_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M36881_IG10:\n\u002BG_M36881_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M36881_IG14\n\u002B       je       SHORT G_M36881_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M36881_IG11:\n\u002BG_M36881_IG08:\n        test     rax, rax\n-       je       SHORT G_M36881_IG15\n\u002B       je       SHORT G_M36881_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M36881_IG12:\n\u002BG_M36881_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M36881_IG15\n\u002B       jne      SHORT G_M36881_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M36881_IG13:\n\u002BG_M36881_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M36881_IG15\n\u002B       je       SHORT G_M36881_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M36881_IG14:\n\u002BG_M36881_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M36881_IG22\n\u002B       jmp      SHORT G_M36881_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M36881_IG15:\n\u002BG_M36881_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M36881_IG20\n\u002B       je       SHORT G_M36881_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M36881_IG16:\n\u002BG_M36881_IG13:\n        test     rax, rax\n-       je       SHORT G_M36881_IG18\n\u002B       je       SHORT G_M36881_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M36881_IG17:\n\u002BG_M36881_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M36881_IG19\n\u002B       je       SHORT G_M36881_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M36881_IG18:\n\u002BG_M36881_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M36881_IG21\n\u002B       jmp      SHORT G_M36881_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M36881_IG19:\n\u002BG_M36881_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M36881_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M36881_IG21\n\u002B       jmp      SHORT G_M36881_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M36881_IG20:\n\u002BG_M36881_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M36881_IG21:\n\u002BG_M36881_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M36881_IG22:\n\u002BG_M36881_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M36881_IG27\n\u002B       je       G_M36881_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M36881_IG27\n\u002B       je       G_M36881_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M36881_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.Numerics.Vector\u00601[float],System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M36881_IG24\n\u002B       jne      SHORT G_M36881_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M36881_IG23:\n\u002BG_M36881_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M36881_IG24:\n\u002BG_M36881_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M36881_IG25:\n-       add      rsp, 232\n\u002BG_M36881_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M36881_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M36881_IG26:\n\u002BG_M36881_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M36881_IG27:\n\u002BG_M36881_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M36881_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=be986fee) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollectionAsync[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=be986fee) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollectionAsync[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.MoneyManagement.FinancialAccountService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.FinancialAccountListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.FinancialAccount]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.MoneyManagement.FinancialAccountService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.FinancialAccountListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.FinancialAccount]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.MoneyManagement.FinancialAccountService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.MoneyManagement.FinancialAccountListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.MoneyManagement.FinancialAccountListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.FinancialAccount]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.FinancialAccount]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.FinancialAccount]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.FinancialAccount]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M33077_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M33077_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/money_management/financial_accounts\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M33077_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M33077_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.FinancialAccount]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M33077_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M33077_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M33077_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.FinancialAccount]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M33077_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M33077_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=dc627eca) for method Stripe.V2.MoneyManagement.FinancialAccountService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.FinancialAccountListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.FinancialAccount]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=dc627eca) for method Stripe.V2.MoneyManagement.FinancialAccountService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.FinancialAccountListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.FinancialAccount]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.ModelConfiguration.Edm.StorageEntityTypeMappingExtensions:GetPrimaryTable(System.Data.Entity.Core.Mapping.EntityTypeMapping):System.Data.Entity.Core.Metadata.Edm.EntityType (FullOpts)","Category":"improvement","Description":"162 -\u003E 111 bytes (-51)","ExtraInfo":null,"Diff":"@@ -1,86 \u002B1,65 @@\n ; Assembly listing for method System.Data.Entity.ModelConfiguration.Edm.StorageEntityTypeMappingExtensions:GetPrimaryTable(System.Data.Entity.Core.Mapping.EntityTypeMapping):System.Data.Entity.Core.Metadata.Edm.EntityType (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 2 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T01] (  4,  4   )     ref  -\u003E  rdi         class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.EntityTypeMapping\u003E\n\u002B;  V00 arg0         [V00,T00] (  4,  4   )     ref  -\u003E  rdi         class-hnd single-def \u003CSystem.Data.Entity.Core.Mapping.EntityTypeMapping\u003E\n ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V02 tmp1         [V02,T00] (  4,  7   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\u003E\n-;  V03 tmp2         [V03    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x10]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V02 tmp1         [V02,T01] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\u003E\n\u002B;  V03 tmp2         [V03    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x08]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V04 tmp3         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V05 tmp4         [V05,T04] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.MappingFragment\u003E\n-;  V06 tmp5         [V06,T03] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\u003E\n\u002B;  V05 tmp4         [V05,T03] (  2,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Data.Entity.Core.Mapping.MappingFragment\u003E\n\u002B;* V06 tmp5         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\u003E\n ;* V07 tmp6         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Core.Mapping.MappingFragment\u003E\n ;  V08 tmp7         [V08,T02] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;\n-; Lcl frame size = 8\n\u002B; Lcl frame size = 16\n \n G_M3551_IG01:\n        push     rbp\n-       push     rbx\n-       push     rax\n\u002B       sub      rsp, 16\n        lea      rbp, [rsp\u002B0x10]\n-\t\t\t\t\t\t;; size=8 bbWeight=1 PerfScore 3.50\n\u002B\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 1.75\n G_M3551_IG02:\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax]System.Data.Entity.Core.Mapping.TypeMapping:get_MappingFragments():System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Data.Entity.Core.Mapping.MappingFragment]:this\n-       mov      rbx, rax\n-       test     rbx, rbx\n-       je       SHORT G_M3551_IG07\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Data.Entity.Core.Mapping.MappingFragment]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n        je       SHORT G_M3551_IG04\n-\t\t\t\t\t\t;; size=47 bbWeight=1 PerfScore 13.50\n-G_M3551_IG03:\n-       lea      rsi, [rbp-0x10]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M3551_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M3551_IG04:\n-       lea      rdx, [rbp-0x10]\n-       mov      rsi, rbx\n\u002B       lea      rdx, [rbp-0x08]\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Data.Entity.Core.Mapping.MappingFragment](System.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Core.Mapping.MappingFragment],byref):System.Data.Entity.Core.Mapping.MappingFragment\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M3551_IG05:\n-       cmp      byte  ptr [rbp-0x10], 0\n-       je       SHORT G_M3551_IG08\n\u002B       cmp      byte  ptr [rbp-0x08], 0\n\u002B       je       SHORT G_M3551_IG05\n        mov      rdi, gword ptr [rax\u002B0x20]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x38]System.Data.Entity.Core.Metadata.Edm.EntitySet:get_ElementType():System.Data.Entity.Core.Metadata.Edm.EntityType:this\n        nop      \n-\t\t\t\t\t\t;; size=21 bbWeight=1 PerfScore 11.25\n-G_M3551_IG06:\n-       add      rsp, 8\n-       pop      rbx\n\u002B\t\t\t\t\t\t;; size=64 bbWeight=1 PerfScore 23.75\n\u002BG_M3551_IG03:\n\u002B       add      rsp, 16\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.25\n-G_M3551_IG07:\n\u002B\t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 1.75\n\u002BG_M3551_IG04:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M3551_IG08:\n\u002BG_M3551_IG05:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 162, prolog size 8, PerfScore 37.50, instruction count 45, allocated bytes for code 162 (MethodHash=e0bff220) for method System.Data.Entity.ModelConfiguration.Edm.StorageEntityTypeMappingExtensions:GetPrimaryTable(System.Data.Entity.Core.Mapping.EntityTypeMapping):System.Data.Entity.Core.Metadata.Edm.EntityType (FullOpts)\n\u002B; Total bytes of code 111, prolog size 10, PerfScore 27.25, instruction count 30, allocated bytes for code 111 (MethodHash=e0bff220) for method System.Data.Entity.ModelConfiguration.Edm.StorageEntityTypeMappingExtensions:GetPrimaryTable(System.Data.Entity.Core.Mapping.EntityTypeMapping):System.Data.Entity.Core.Metadata.Edm.EntityType (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":162,"DiffBytes":111},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollectionAsync[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],long]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.Numerics.Vector\u00601[float],MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M14513_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M14513_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M14513_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],long]:Render(MongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]):MongoDB.Driver.RenderedPipelineDefinition\u00601[long]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M14513_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M14513_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M14513_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M14513_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M14513_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M14513_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M14513_IG07:\n        test     rax, rax\n-       je       SHORT G_M14513_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M14513_IG08:\n\u002B       je       SHORT G_M14513_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M14513_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M14513_IG10\n\u002B       jmp      SHORT G_M14513_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M14513_IG09:\n\u002BG_M14513_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M14513_IG10:\n\u002BG_M14513_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M14513_IG14\n\u002B       je       SHORT G_M14513_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M14513_IG11:\n\u002BG_M14513_IG08:\n        test     rax, rax\n-       je       SHORT G_M14513_IG15\n\u002B       je       SHORT G_M14513_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M14513_IG12:\n\u002BG_M14513_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M14513_IG15\n\u002B       jne      SHORT G_M14513_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M14513_IG13:\n\u002BG_M14513_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M14513_IG15\n\u002B       je       SHORT G_M14513_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M14513_IG14:\n\u002BG_M14513_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M14513_IG22\n\u002B       jmp      SHORT G_M14513_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M14513_IG15:\n\u002BG_M14513_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M14513_IG20\n\u002B       je       SHORT G_M14513_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M14513_IG16:\n\u002BG_M14513_IG13:\n        test     rax, rax\n-       je       SHORT G_M14513_IG18\n\u002B       je       SHORT G_M14513_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M14513_IG17:\n\u002BG_M14513_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M14513_IG19\n\u002B       je       SHORT G_M14513_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M14513_IG18:\n\u002BG_M14513_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M14513_IG21\n\u002B       jmp      SHORT G_M14513_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M14513_IG19:\n\u002BG_M14513_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M14513_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M14513_IG21\n\u002B       jmp      SHORT G_M14513_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M14513_IG20:\n\u002BG_M14513_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M14513_IG21:\n\u002BG_M14513_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M14513_IG22:\n\u002BG_M14513_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M14513_IG27\n\u002B       je       G_M14513_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M14513_IG27\n\u002B       je       G_M14513_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M14513_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.Numerics.Vector\u00601[float],System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M14513_IG24\n\u002B       jne      SHORT G_M14513_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M14513_IG23:\n\u002BG_M14513_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M14513_IG24:\n\u002BG_M14513_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M14513_IG25:\n-       add      rsp, 232\n\u002BG_M14513_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M14513_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M14513_IG26:\n\u002BG_M14513_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M14513_IG27:\n\u002BG_M14513_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M14513_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=cf10c74e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollectionAsync[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=cf10c74e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollectionAsync[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.MoneyManagement.FinancialAddressService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.FinancialAddressListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.FinancialAddress]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.MoneyManagement.FinancialAddressService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.FinancialAddressListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.FinancialAddress]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.MoneyManagement.FinancialAddressService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.MoneyManagement.FinancialAddressListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.MoneyManagement.FinancialAddressListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.FinancialAddress]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.FinancialAddress]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.FinancialAddress]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.FinancialAddress]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M32962_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M32962_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/money_management/financial_addresses\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M32962_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M32962_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.FinancialAddress]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M32962_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M32962_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M32962_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.FinancialAddress]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M32962_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M32962_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=c6687f3d) for method Stripe.V2.MoneyManagement.FinancialAddressService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.FinancialAddressListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.FinancialAddress]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=c6687f3d) for method Stripe.V2.MoneyManagement.FinancialAddressService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.FinancialAddressListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.FinancialAddress]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"EntityFramework.dasm","Method":"System.Data.Entity.Migrations.DbMigrator:Scaffold(System.String,System.String,bool):System.Data.Entity.Migrations.Design.ScaffoldedMigration:this (FullOpts)","Category":"improvement","Description":"1,353 -\u003E 1,303 bytes (-50)","ExtraInfo":null,"Diff":"@@ -14,21 \u002B14,21 @@\n ;  V03 arg3         [V03,T10] (  3,  3   )   ubyte  -\u003E  r13         single-def\n ;  V04 loc0         [V04,T02] ( 10,  8.50)     ref  -\u003E  r12         class-hnd exact single-def \u003CSystem.Data.Entity.Migrations.DbMigrator\u002B\u003C\u003Ec__DisplayClass40_0\u003E\n ;  V05 loc1         [V05,T08] (  7,  5.50)     ref  -\u003E  [rbp-0x50]  class-hnd \u003CSystem.String\u003E\n-;  V06 loc2         [V06,T18] (  4,  3.50)   ubyte  -\u003E  [rbp-0x2C] \n-;  V07 loc3         [V07,T17] (  6,  3.50)     ref  -\u003E  [rbp-0x58]  class-hnd spill-single-def \u003CSystem.Collections.Generic.List\u00601[System.String]\u003E\n\u002B;  V06 loc2         [V06,T17] (  4,  3.50)   ubyte  -\u003E  [rbp-0x2C] \n\u002B;  V07 loc3         [V07,T18] (  5,  3   )     ref  -\u003E  [rbp-0x58]  class-hnd spill-single-def \u003CSystem.Collections.Generic.List\u00601[System.String]\u003E\n ;  V08 loc4         [V08    ] (  3,  2   )     ref  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003CSystem.String\u003E\n ;  V09 loc5         [V09    ] (  3,  2   )     ref  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003CSystem.String\u003E\n ;* V10 loc6         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Collections.Generic.IEnumerable\u00601[System.Data.Entity.Migrations.Model.MigrationOperation]\u003E\n-;  V11 loc7         [V11,T23] (  3,  2.50)     ref  -\u003E  [rbp-0x60]  class-hnd exact spill-single-def \u003CSystem.Data.Entity.Migrations.Edm.ModelCompressor\u003E\n\u002B;  V11 loc7         [V11,T22] (  3,  2.50)     ref  -\u003E  [rbp-0x60]  class-hnd exact spill-single-def \u003CSystem.Data.Entity.Migrations.Edm.ModelCompressor\u003E\n ;* V12 loc8         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CSystem.String\u003E\n-;  V13 loc9         [V13,T40] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Migrations.Model.MigrationOperation]\u003E\n\u002B;  V13 loc9         [V13,T39] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[System.Data.Entity.Migrations.Model.MigrationOperation]\u003E\n ;  V14 OutArgs      [V14    ] (  1,  1   )  struct ( 8) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V15 tmp1         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Migrations.DbMigrator\u002B\u003C\u003Ec__DisplayClass40_0\u003E\n ;  V16 tmp2         [V16,T04] (  4,  8   )     ref  -\u003E  [rbp-0x68]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V17 tmp3         [V17,T13] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Xml.Linq.XDocument\u003E\n ;* V18 tmp4         [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V19 tmp5         [V19,T11] (  6,  4.50)     ref  -\u003E  rsi        \n-;  V20 tmp6         [V20,T25] (  3,  2   )     ref  -\u003E  r13        \n\u002B;  V20 tmp6         [V20,T24] (  3,  2   )     ref  -\u003E  r13        \n ;* V21 tmp7         [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.Data.Entity.Migrations.Edm.ModelCompressor\u003E\n ;  V22 tmp8         [V22,T06] (  3,  6   )     ref  -\u003E  [rbp-0x70]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Migrations.Design.MigrationCodeGenerator\u003E\n ;  V23 tmp9         [V23,T14] (  2,  4   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CSystem.Xml.Linq.XDocument\u003E\n@@ -38,38 \u002B38,38 @@\n ;* V27 tmp13        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V28 tmp14        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V29 tmp15        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V30 tmp16        [V30,T26] (  3,  2   )     ref  -\u003E  r12        \n\u002B;  V30 tmp16        [V30,T25] (  3,  2   )     ref  -\u003E  r12        \n ;  V31 tmp17        [V31,T01] (  7, 14   )     ref  -\u003E  r15         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Data.Entity.Migrations.Design.ScaffoldedMigration\u003E\n ;* V32 tmp18        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Data.Entity.Migrations.Infrastructure.EdmModelDiffer\u003E\n ;* V33 tmp19        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Xml.Linq.XDocument\u003E\n ;* V34 tmp20        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Xml.Linq.XDocument\u003E\n ;* V35 tmp21        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Lazy\u00601[System.Data.Entity.Migrations.Infrastructure.ModificationCommandTreeGenerator]\u003E\n-;  V36 tmp22        [V36,T28] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Xml.Linq.XDocument\u003E\n-;  V37 tmp23        [V37    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V36 tmp22        [V36,T27] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Xml.Linq.XDocument\u003E\n\u002B;  V37 tmp23        [V37    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V38 tmp24        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V39 tmp25        [V39,T22] (  5,  2.50)     ref  -\u003E  [rbp-0x80]  class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n-;  V40 tmp26        [V40,T24] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n\u002B;  V39 tmp25        [V39,T23] (  4,  2   )     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n\u002B;* V40 tmp26        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.String]\u003E\n ;* V41 tmp27        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V42 tmp28        [V42,T37] (  3,  1.50)     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Xml.Linq.XDocument\u003E\n\u002B;  V42 tmp28        [V42,T36] (  3,  1.50)     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Xml.Linq.XDocument\u003E\n ;  V43 tmp29        [V43,T12] (  4,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Lazy\u00601[System.Xml.Linq.XDocument]\u003E\n ;* V44 tmp30        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Migrations.DbMigrationsConfiguration\u003E\n-;  V45 tmp31        [V45,T27] (  3,  2   )     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Xml.Linq.XDocument\u003E\n\u002B;  V45 tmp31        [V45,T26] (  3,  2   )     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Xml.Linq.XDocument\u003E\n ;  V46 tmp32        [V46,T05] (  4,  6   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Lazy\u00601[System.Xml.Linq.XDocument]\u003E\n-;  V47 tmp33        [V47,T29] (  2,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n-;  V48 tmp34        [V48,T38] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n-;  V49 tmp35        [V49,T39] (  3,  1.50)     ref  -\u003E  rax         class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Resources.EntityRes\u003E\n\u002B;  V47 tmp33        [V47,T28] (  2,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V48 tmp34        [V48,T37] (  3,  1.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.String\u003E\n\u002B;  V49 tmp35        [V49,T38] (  3,  1.50)     ref  -\u003E  rax         class-hnd exact single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Data.Entity.Resources.EntityRes\u003E\n ;* V50 tmp36        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Resources.ResourceManager\u003E\n ;* V51 tmp37        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Data.Entity.Migrations.DbMigrationsConfiguration\u003E\n ;  V52 tmp38        [V52,T07] (  3,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V53 tmp39        [V53,T15] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V54 tmp40        [V54,T30] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V54 tmp40        [V54,T29] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V55 tmp41        [V55,T19] (  3,  3   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V56 tmp42        [V56,T31] (  2,  2   )     ref  -\u003E   r8         single-def \u0022argument with side effect\u0022\n-;  V57 tmp43        [V57,T32] (  2,  2   )     ref  -\u003E  [rbp-0x90]  spill-single-def \u0022argument with side effect\u0022\n-;  V58 tmp44        [V58,T33] (  2,  2   )     ref  -\u003E  [rbp-0x98]  spill-single-def \u0022argument with side effect\u0022\n-;  V59 tmp45        [V59,T34] (  2,  2   )     ref  -\u003E  [rbp-0xA0]  spill-single-def \u0022argument with side effect\u0022\n-;  V60 tmp46        [V60,T35] (  2,  2   )     ref  -\u003E  r13         single-def \u0022argument with side effect\u0022\n-;  V61 tmp47        [V61,T36] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V56 tmp42        [V56,T30] (  2,  2   )     ref  -\u003E   r8         single-def \u0022argument with side effect\u0022\n... diff truncated; middle omitted ...\n        test     rsi, rsi\n-       jne      SHORT G_M43431_IG11\n\u002B       jne      SHORT G_M43431_IG09\n \t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.25\n-G_M43431_IG09:\n\u002BG_M43431_IG07:\n        mov      rdi, gword ptr [rbx\u002B0x30]\n        lea      rsi, [rbp-0x38]\n        lea      rdx, [rbp-0x40]\n@@ -215,35 \u002B199,35 @@ G_M43431_IG09:\n        call     [rax\u002B0x20]System.Data.Entity.Migrations.History.HistoryRepository:GetLastModel(byref,byref,System.String):System.Xml.Linq.XDocument:this\n        mov      rsi, rax\n        test     rsi, rsi\n-       jne      SHORT G_M43431_IG11\n\u002B       jne      SHORT G_M43431_IG09\n        mov      rdi, gword ptr [rbx\u002B0x10]\n        cmp      gword ptr [rdi\u002B0x08], 0\n-       jne      SHORT G_M43431_IG10\n\u002B       jne      SHORT G_M43431_IG08\n        mov      rsi, gword ptr [rdi\u002B0x18]\n-       jmp      SHORT G_M43431_IG11\n\u002B       jmp      SHORT G_M43431_IG09\n \t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 10.38\n-G_M43431_IG10:\n\u002BG_M43431_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Lazy\u00601[System.__Canon]:CreateValue():System.__Canon:this\n        call     [rax]System.Lazy\u00601[System.__Canon]:CreateValue():System.__Canon:this\n        mov      rsi, rax\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 1.75\n-G_M43431_IG11:\n\u002BG_M43431_IG09:\n        lea      rdi, bword ptr [r12\u002B0x08]\n        call     CORINFO_HELP_ASSIGN_REF\n        test     r13b, r13b\n-       je       SHORT G_M43431_IG14\n\u002B       je       SHORT G_M43431_IG12\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 2.75\n-G_M43431_IG12:\n\u002BG_M43431_IG10:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       G_M43431_IG31\n\u002B       je       G_M43431_IG29\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.62\n-G_M43431_IG13:\n\u002BG_M43431_IG11:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Array\u002BEmptyArray\u00601[System.Data.Entity.Migrations.Model.MigrationOperation]:Value\n        mov      r13, gword ptr [rdi]\n-       jmp      G_M43431_IG15\n\u002B       jmp      G_M43431_IG13\n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M43431_IG14:\n\u002BG_M43431_IG12:\n        mov      r13, gword ptr [rbx\u002B0x48]\n        mov      rax, gword ptr [r12\u002B0x08]\n        mov      gword ptr [rbp-0x90], rax\n@@ -271,11 \u002B255,11 @@ G_M43431_IG14:\n        call     [rax]System.Linq.Enumerable:ToList[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon]):System.Collections.Generic.List\u00601[System.__Canon]\n        mov      r13, rax\n \t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 14.75\n-G_M43431_IG15:\n\u002BG_M43431_IG13:\n        cmp      dword ptr [rbp-0x2C], 0\n-       jne      SHORT G_M43431_IG17\n\u002B       jne      SHORT G_M43431_IG15\n \t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 2.00\n-G_M43431_IG16:\n\u002BG_M43431_IG14:\n        mov      rdi, gword ptr [rbx\u002B0x38]\n        mov      rsi, r15\n        mov      rcx, qword ptr [rdi]\n@@ -287,7 \u002B271,7 @@ G_M43431_IG16:\n        call     [rax]System.Data.Entity.Migrations.Infrastructure.MigrationAssembly:CreateMigrationId(System.String):System.String\n        mov      gword ptr [rbp-0x50], rax\n \t\t\t\t\t\t;; size=39 bbWeight=0.50 PerfScore 7.00\n-G_M43431_IG17:\n\u002BG_M43431_IG15:\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Migrations.Edm.ModelCompressor\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x60], rax\n@@ -298,44 \u002B282,44 @@ G_M43431_IG17:\n        mov      gword ptr [rbp-0x78], rdx\n        mov      rdi, gword ptr [rbx\u002B0x10]\n        cmp      gword ptr [rdi\u002B0x08], 0\n-       jne      SHORT G_M43431_IG19\n\u002B       jne      SHORT G_M43431_IG17\n \t\t\t\t\t\t;; size=51 bbWeight=1 PerfScore 15.25\n-G_M43431_IG18:\n\u002BG_M43431_IG16:\n        mov      rsi, gword ptr [rdi\u002B0x18]\n-       jmp      SHORT G_M43431_IG20\n\u002B       jmp      SHORT G_M43431_IG18\n \t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 2.00\n-G_M43431_IG19:\n\u002BG_M43431_IG17:\n        mov      rsi, 0xD1FFAB1E      ; code for System.Lazy\u00601[System.__Canon]:CreateValue():System.__Canon:this\n        call     [rsi]System.Lazy\u00601[System.__Canon]:CreateValue():System.__Canon:this\n        mov      rsi, rax\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 1.75\n-G_M43431_IG20:\n\u002BG_M43431_IG18:\n        mov      rdx, gword ptr [rbp-0x78]\n        cmp      rdx, rsi\n-       je       SHORT G_M43431_IG24\n\u002B       je       SHORT G_M43431_IG22\n \t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 2.25\n-G_M43431_IG21:\n\u002BG_M43431_IG19:\n        mov      rax, gword ptr [r12\u002B0x08]\n        cmp      rax, gword ptr [rbx\u002B0x20]\n-       je       SHORT G_M43431_IG24\n\u002B       je       SHORT G_M43431_IG22\n        mov      rax, gword ptr [rbp-0x38]\n        mov      gword ptr [rbp-0x88], rax\n        mov      rcx, 0xD1FFAB1E      ; code for System.Data.Entity.Resources.EntityRes:GetLoader():System.Data.Entity.Resources.EntityRes\n        call     [rcx]System.Data.Entity.Resources.EntityRes:GetLoader():System.Data.Entity.Resources.EntityRes\n        test     rax, rax\n-       je       SHORT G_M43431_IG22\n\u002B       je       SHORT G_M43431_IG20\n        mov      rdi, gword ptr [rax\u002B0x08]\n        mov      rsi, 0xD1FFAB1E      ; \u0027AutomaticMigration\u0027\n        xor      rdx, rdx\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x28]System.Resources.ResourceManager:GetString(System.String,System.Globalization.CultureInfo):System.String:this\n-       jmp      SHORT G_M43431_IG23\n\u002B       jmp      SHORT G_M43431_IG21\n \t\t\t\t\t\t;; size=67 bbWeight=0.50 PerfScore 11.50\n-G_M43431_IG22:\n\u002BG_M43431_IG20:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M43431_IG23:\n\u002BG_M43431_IG21:\n        mov      rdi, gword ptr [rbp-0x88]\n        mov      rsi, rax\n        mov      edx, 4\n@@ -343,13 \u002B327,13 @@ G_M43431_IG23:\n        cmp      dword ptr [rdi], edi\n        call     [rax]System.String:EndsWith(System.String,int):bool:this\n        test     eax, eax\n-       jne      SHORT G_M43431_IG25\n\u002B       jne      SHORT G_M43431_IG23\n \t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 4.00\n-G_M43431_IG24:\n\u002BG_M43431_IG22:\n        xor      r12, r12\n-       jmp      SHORT G_M43431_IG26\n\u002B       jmp      SHORT G_M43431_IG24\n \t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 1.12\n-G_M43431_IG25:\n\u002BG_M43431_IG23:\n        mov      rsi, gword ptr [r12\u002B0x08]\n        mov      rdi, gword ptr [rbp-0x60]\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Migrations.Edm.ModelCompressor:Compress(System.Xml.Linq.XDocument):byte[]:this\n@@ -359,7 \u002B343,7 @@ G_M43431_IG25:\n        call     [rax]System.Convert:ToBase64String(byte[]):System.String\n        mov      r12, rax\n \t\t\t\t\t\t;; size=39 bbWeight=0.50 PerfScore 5.00\n-G_M43431_IG26:\n\u002BG_M43431_IG24:\n        mov      rsi, gword ptr [rbx\u002B0x20]\n        mov      rdi, gword ptr [rbp-0x60]\n        mov      rax, 0xD1FFAB1E      ; code for System.Data.Entity.Migrations.Edm.ModelCompressor:Compress(System.Xml.Linq.XDocument):byte[]:this\n@@ -404,7 \u002B388,7 @@ G_M43431_IG26:\n        call     [r11]System.Collections.Generic.IDictionary\u00602[System.__Canon,System.__Canon]:Add(System.__Canon,System.__Canon):this\n        mov      rax, r15\n \t\t\t\t\t\t;; size=204 bbWeight=1 PerfScore 49.25\n-G_M43431_IG27:\n\u002BG_M43431_IG25:\n        add      rsp, 136\n        pop      rbx\n        pop      r12\n@@ -414,18 \u002B398,18 @@ G_M43431_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M43431_IG28:\n\u002BG_M43431_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M43431_IG29:\n\u002BG_M43431_IG27:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M43431_IG30:\n\u002BG_M43431_IG28:\n        mov      rsi, gword ptr [rbp-0x58]\n        mov      rdi, 0xD1FFAB1E      ; System.Data.Entity.Utilities.IEnumerableExtensions:Join[System.String](System.Collections.Generic.IEnumerable\u00601[System.String],System.Func\u00602[System.String,System.String],System.String):System.String\n        xor      rdx, rdx\n@@ -439,12 \u002B423,12 @@ G_M43431_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=62 bbWeight=0 PerfScore 0.00\n-G_M43431_IG31:\n\u002BG_M43431_IG29:\n        mov      rdi, 0xD1FFAB1E      ; System.Array\u002BEmptyArray\u00601[System.Data.Entity.Migrations.Model.MigrationOperation]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M43431_IG13\n\u002B       jmp      G_M43431_IG11\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1353, prolog size 41, PerfScore 214.08, instruction count 307, allocated bytes for code 1353 (MethodHash=a5aa5658) for method System.Data.Entity.Migrations.DbMigrator:Scaffold(System.String,System.String,bool):System.Data.Entity.Migrations.Design.ScaffoldedMigration:this (FullOpts)\n\u002B; Total bytes of code 1303, prolog size 41, PerfScore 206.33, instruction count 295, allocated bytes for code 1303 (MethodHash=a5aa5658) for method System.Data.Entity.Migrations.DbMigrator:Scaffold(System.String,System.String,bool):System.Data.Entity.Migrations.Design.ScaffoldedMigration:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1353,"DiffBytes":1303},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollectionAsync[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],short]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.Numerics.Vector\u00601[float],MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M38641_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M38641_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M38641_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],short]:Render(MongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]):MongoDB.Driver.RenderedPipelineDefinition\u00601[short]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M38641_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M38641_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M38641_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M38641_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M38641_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M38641_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M38641_IG07:\n        test     rax, rax\n-       je       SHORT G_M38641_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M38641_IG08:\n\u002B       je       SHORT G_M38641_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M38641_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M38641_IG10\n\u002B       jmp      SHORT G_M38641_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M38641_IG09:\n\u002BG_M38641_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M38641_IG10:\n\u002BG_M38641_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M38641_IG14\n\u002B       je       SHORT G_M38641_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M38641_IG11:\n\u002BG_M38641_IG08:\n        test     rax, rax\n-       je       SHORT G_M38641_IG15\n\u002B       je       SHORT G_M38641_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M38641_IG12:\n\u002BG_M38641_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M38641_IG15\n\u002B       jne      SHORT G_M38641_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M38641_IG13:\n\u002BG_M38641_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M38641_IG15\n\u002B       je       SHORT G_M38641_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M38641_IG14:\n\u002BG_M38641_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M38641_IG22\n\u002B       jmp      SHORT G_M38641_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M38641_IG15:\n\u002BG_M38641_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M38641_IG20\n\u002B       je       SHORT G_M38641_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M38641_IG16:\n\u002BG_M38641_IG13:\n        test     rax, rax\n-       je       SHORT G_M38641_IG18\n\u002B       je       SHORT G_M38641_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M38641_IG17:\n\u002BG_M38641_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M38641_IG19\n\u002B       je       SHORT G_M38641_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M38641_IG18:\n\u002BG_M38641_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M38641_IG21\n\u002B       jmp      SHORT G_M38641_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M38641_IG19:\n\u002BG_M38641_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M38641_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M38641_IG21\n\u002B       jmp      SHORT G_M38641_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M38641_IG20:\n\u002BG_M38641_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M38641_IG21:\n\u002BG_M38641_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M38641_IG22:\n\u002BG_M38641_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M38641_IG27\n\u002B       je       G_M38641_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M38641_IG27\n\u002B       je       G_M38641_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M38641_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.Numerics.Vector\u00601[float],System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M38641_IG24\n\u002B       jne      SHORT G_M38641_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M38641_IG23:\n\u002BG_M38641_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M38641_IG24:\n\u002BG_M38641_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M38641_IG25:\n-       add      rsp, 232\n\u002BG_M38641_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M38641_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M38641_IG26:\n\u002BG_M38641_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M38641_IG27:\n\u002BG_M38641_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M38641_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=324f690e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollectionAsync[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=324f690e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollectionAsync[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.MoneyManagement.InboundTransferService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.InboundTransferListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.InboundTransfer]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.MoneyManagement.InboundTransferService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.InboundTransferListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.InboundTransfer]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.MoneyManagement.InboundTransferService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.MoneyManagement.InboundTransferListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.MoneyManagement.InboundTransferListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.InboundTransfer]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.InboundTransfer]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.InboundTransfer]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.InboundTransfer]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M56643_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M56643_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/money_management/inbound_transfers\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M56643_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M56643_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.InboundTransfer]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M56643_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M56643_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M56643_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.InboundTransfer]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M56643_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M56643_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=7e3122bc) for method Stripe.V2.MoneyManagement.InboundTransferService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.InboundTransferListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.InboundTransfer]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=7e3122bc) for method Stripe.V2.MoneyManagement.InboundTransferService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.InboundTransferListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.InboundTransfer]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:Aggregate[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)","Category":"improvement","Description":"1,813 -\u003E 1,750 bytes (-63)","ExtraInfo":null,"Diff":"@@ -14,16 \u002B14,16 @@\n ;  V03 arg2         [V03,T04] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.__Canon]\u003E\n ;  V04 arg3         [V04,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T39] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V06 loc0         [V06,T38] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n-;  V08 loc2         [V08,T40] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V09 loc3         [V09,T46] (  3,  1.50)     ref  -\u003E  [rbp-0x80]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V10 loc4         [V10,T47] (  3,  1.50)     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.__Canon]\u003E\n\u002B;  V08 loc2         [V08,T39] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V09 loc3         [V09,T45] (  3,  1.50)     ref  -\u003E  [rbp-0x80]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V10 loc4         [V10,T46] (  3,  1.50)     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.__Canon]\u003E\n ;  V11 OutArgs      [V11    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V12 tmp1         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V13 tmp2         [V13    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V14 tmp3         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V15 tmp4         [V15,T29] (  4,  2.20)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n\u002B;  V15 tmp4         [V15,T28] (  4,  2.20)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n ;* V16 tmp5         [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V17 tmp6         [V17    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V18 tmp7         [V18    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -43,22 \u002B43,22 @@\n ;* V32 tmp21        [V32    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V33 tmp22        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V34 tmp23        [V34    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V35 tmp24        [V35,T33] (  3,  2   )     int  -\u003E  rdi        \n-;  V36 tmp25        [V36,T06] (  4,  7   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V37 tmp26        [V37    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V38 tmp27        [V38,T17] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V39 tmp28        [V39,T18] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V35 tmp24        [V35,T32] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V36 tmp25        [V36,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V37 tmp26        [V37    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V38 tmp27        [V38,T17] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V39 tmp28        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V40 tmp29        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V41 tmp30        [V41,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V42 tmp31        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V43 tmp32        [V43,T45] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V43 tmp32        [V43,T44] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V44 tmp33        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V45 tmp34        [V45,T31] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V46 tmp35        [V46,T19] (  3,  3   )     ref  -\u003E  [rbp-0x98]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V45 tmp34        [V45,T30] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V46 tmp35        [V46,T18] (  3,  3   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V47 tmp36        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V48 tmp37        [V48,T08] ( 10,  5   )     ref  -\u003E  [rbp-0xA0]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;  V48 tmp37        [V48,T08] ( 10,  5   )     ref  -\u003E  [rbp-0x98]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V49 tmp38        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp39        [V50,T09] ( 10,  5   )     ref  -\u003E  [rbp-0xA8]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;  V50 tmp39        [V50,T09] ( 10,  5   )     ref  -\u003E  [rbp-0xA0]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V51 tmp40        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V52 tmp41        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V53 tmp42        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -67,14 \u002B67,14 @@\n ;* V56 tmp45        [V56    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.__Canon]\u003E\n ;* V57 tmp46        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V58 tmp47        [V58    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V59 tmp48        [V59,T48] (  2,  1   )     ref  -\u003E  [rbp-0xB0]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V60 tmp49        [V60,T30] (  4,  2.20)    long  -\u003E  [rbp-0x78]  \u0022Inlining Arg\u0022\n\u002B;  V59 tmp48        [V59,T47] (  2,  1   )     ref  -\u003E  [rbp-0xA8]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V60 tmp49        [V60,T29] (  4,  2.20)    long  -\u003E  [rbp-0x78]  \u0022Inlining Arg\u0022\n ;* V61 tmp50        [V61    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V62 tmp51        [V62,T32] (  8,  2   )     ref  -\u003E  [rbp-0xB8]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V63 tmp52        [V63,T20] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V62 tmp51        [V62,T31] (  8,  2   )     ref  -\u003E  [rbp-0xB0]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V63 tmp52        [V63,T19] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V64 tmp53        [V64    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V65 tmp54        [V65,T49] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.__Canon]\u003E\n-;  V66 tmp55        [V66,T38] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V65 tmp54        [V65,T48] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.__Canon]\u003E\n\u002B;  V66 tmp55        [V66,T37] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V67 tmp56        [V67    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V68 tmp57        [V68,T10] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V69 tmp58        [V69    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -82,36 \u002B82,36 @@\n... diff truncated; middle omitted ...\n\u002B\t\t\t\t\t\t;; size=77 bbWeight=0.50 PerfScore 9.62\n\u002BG_M164_IG37:\n\u002B       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rdi, gword ptr [rsi\u002B0x10]\n\u002B       mov      rax, rdi\n\u002B       test     rax, rax\n\u002B       je       SHORT G_M164_IG38\n        mov      rdi, rax\n        mov      esi, 1\n        mov      gword ptr [rbp-0xA0], rax\n@@ -473,35 \u002B469,19 @@ G_M164_IG39:\n        call     [rcx\u002B0x28]System.Threading.CancellationTokenSource:Dispose(bool):this\n        mov      rdi, gword ptr [rbp-0xA0]\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n-       call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=77 bbWeight=0.50 PerfScore 9.62\n-G_M164_IG40:\n-       mov      rsi, gword ptr [rbp-0x90]\n-       mov      rdi, gword ptr [rsi\u002B0x10]\n-       mov      rax, rdi\n-       test     rax, rax\n-       je       SHORT G_M164_IG41\n-       mov      rdi, rax\n-       mov      esi, 1\n-       mov      gword ptr [rbp-0xA8], rax\n-       mov      rcx, qword ptr [rax]\n-       mov      rcx, qword ptr [rcx\u002B0x40]\n-       call     [rcx\u002B0x28]System.Threading.CancellationTokenSource:Dispose(bool):this\n-       mov      rdi, gword ptr [rbp-0xA8]\n-       mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.62\n-G_M164_IG41:\n\u002BG_M164_IG38:\n        mov      rdi, qword ptr [r14\u002B0x18]\n        cmp      qword ptr [rdi\u002B0x08], 56\n-       jle      SHORT G_M164_IG45\n\u002B       jle      SHORT G_M164_IG42\n \t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 2.50\n-G_M164_IG42:\n\u002BG_M164_IG39:\n        mov      rsi, qword ptr [rdi\u002B0x38]\n        test     rsi, rsi\n-       je       SHORT G_M164_IG45\n\u002B       je       SHORT G_M164_IG42\n \t\t\t\t\t\t;; size=9 bbWeight=0.40 PerfScore 1.30\n-G_M164_IG43:\n\u002BG_M164_IG40:\n        mov      rdi, r15\n        mov      rdx, r13\n        mov      rcx, r12\n@@ -510,8 \u002B490,8 @@ G_M164_IG43:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateAggregateToCollectionResultCursor[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M164_IG44:\n-       add      rsp, 216\n\u002BG_M164_IG41:\n\u002B       add      rsp, 200\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -520,15 \u002B500,15 @@ G_M164_IG44:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M164_IG45:\n\u002BG_M164_IG42:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      SHORT G_M164_IG43\n\u002B       jmp      SHORT G_M164_IG40\n \t\t\t\t\t\t;; size=30 bbWeight=0.18 PerfScore 1.08\n-G_M164_IG46:\n\u002BG_M164_IG43:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -536,53 \u002B516,53 @@ G_M164_IG46:\n        mov      rdi, rax\n        jmp      G_M164_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M164_IG47:\n\u002BG_M164_IG44:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M164_IG37\n\u002B       jmp      G_M164_IG34\n \t\t\t\t\t\t;; size=33 bbWeight=0.18 PerfScore 1.08\n-G_M164_IG48:\n\u002BG_M164_IG45:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M164_IG24\n\u002B       jmp      G_M164_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.10 PerfScore 0.60\n-G_M164_IG49:\n\u002BG_M164_IG46:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M164_IG25\n\u002B       jmp      G_M164_IG22\n \t\t\t\t\t\t;; size=33 bbWeight=0.10 PerfScore 0.60\n-G_M164_IG50:\n\u002BG_M164_IG47:\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      qword ptr [rbp-0x78], rax\n-       jmp      G_M164_IG27\n\u002B       jmp      G_M164_IG24\n \t\t\t\t\t\t;; size=31 bbWeight=0.10 PerfScore 0.65\n-G_M164_IG51:\n\u002BG_M164_IG48:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M164_IG52:\n\u002BG_M164_IG49:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M164_IG53:\n-       cmp      gword ptr [rbp-0x90], 0\n-       je       SHORT G_M164_IG55\n-       mov      rsi, gword ptr [rbp-0x90]\n\u002BG_M164_IG50:\n\u002B       cmp      gword ptr [rbp-0x88], 0\n\u002B       je       SHORT G_M164_IG52\n\u002B       mov      rsi, gword ptr [rbp-0x88]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M164_IG54\n\u002B       je       SHORT G_M164_IG51\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -592,11 \u002B572,11 @@ G_M164_IG53:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M164_IG54:\n-       mov      rsi, gword ptr [rbp-0x90]\n\u002BG_M164_IG51:\n\u002B       mov      rsi, gword ptr [rbp-0x88]\n        mov      r15, gword ptr [rsi\u002B0x10]\n        test     r15, r15\n-       je       SHORT G_M164_IG55\n\u002B       je       SHORT G_M164_IG52\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -606,23 \u002B586,23 @@ G_M164_IG54:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M164_IG55:\n\u002BG_M164_IG52:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M164_IG56:\n\u002BG_M164_IG53:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M164_IG57:\n\u002BG_M164_IG54:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M164_IG58:\n-       cmp      gword ptr [rbp-0xB8], 0\n-       je       SHORT G_M164_IG60\n-       mov      rsi, gword ptr [rbp-0xB8]\n\u002BG_M164_IG55:\n\u002B       cmp      gword ptr [rbp-0xB0], 0\n\u002B       je       SHORT G_M164_IG57\n\u002B       mov      rsi, gword ptr [rbp-0xB0]\n        mov      r13, gword ptr [rsi\u002B0x08]\n        test     r13, r13\n-       je       SHORT G_M164_IG59\n\u002B       je       SHORT G_M164_IG56\n        mov      rdi, r13\n        mov      esi, 1\n        mov      rax, qword ptr [r13]\n@@ -632,11 \u002B612,11 @@ G_M164_IG58:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M164_IG59:\n-       mov      rsi, gword ptr [rbp-0xB8]\n\u002BG_M164_IG56:\n\u002B       mov      rsi, gword ptr [rbp-0xB0]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M164_IG60\n\u002B       je       SHORT G_M164_IG57\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -646,13 \u002B626,13 @@ G_M164_IG59:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M164_IG60:\n\u002BG_M164_IG57:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M164_IG61:\n\u002BG_M164_IG58:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1813, prolog size 66, PerfScore 196.21, instruction count 418, allocated bytes for code 1813 (MethodHash=2792ff5b) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:Aggregate[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)\n\u002B; Total bytes of code 1750, prolog size 66, PerfScore 186.83, instruction count 404, allocated bytes for code 1750 (MethodHash=2792ff5b) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:Aggregate[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1813,"DiffBytes":1750},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.MoneyManagement.OutboundPaymentService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.OutboundPaymentListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.OutboundPayment]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.MoneyManagement.OutboundPaymentService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.OutboundPaymentListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.OutboundPayment]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.MoneyManagement.OutboundPaymentService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.MoneyManagement.OutboundPaymentListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.MoneyManagement.OutboundPaymentListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.OutboundPayment]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.OutboundPayment]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.OutboundPayment]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.OutboundPayment]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M62299_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M62299_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/money_management/outbound_payments\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M62299_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M62299_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.OutboundPayment]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M62299_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M62299_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M62299_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.OutboundPayment]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M62299_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M62299_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=f7150ca4) for method Stripe.V2.MoneyManagement.OutboundPaymentService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.OutboundPaymentListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.OutboundPayment]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=f7150ca4) for method Stripe.V2.MoneyManagement.OutboundPaymentService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.OutboundPaymentListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.OutboundPayment]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollectionAsync[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"1,094 -\u003E 1,031 bytes (-63)","ExtraInfo":null,"Diff":"@@ -10,18 \u002B10,18 @@\n ;\n ;  V00 this         [V00,T03] (  5,  5   )     ref  -\u003E  r14         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]\u003E\n ;  V01 TypeCtx      [V01,T01] (  9,  6.60)    long  -\u003E  r15         single-def\n-;  V02 arg1         [V02,T06] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V02 arg1         [V02,T05] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V03 arg2         [V03,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Nullable\u00601[int]]\u003E\n ;  V04 arg3         [V04,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T30] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n\u002B;  V06 loc0         [V06,T29] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n-;  V08 loc2         [V08,T31] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n-;  V09 loc3         [V09,T29] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V08 loc2         [V08,T30] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n\u002B;  V09 loc3         [V09,T28] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V12 tmp2         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V13 tmp3         [V13,T37] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V13 tmp3         [V13,T36] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V14 tmp4         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;  V15 tmp5         [V15,T13] (  4,  4.40)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n ;* V16 tmp6         [V16    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -40,15 \u002B40,15 @@\n ;* V29 tmp19        [V29    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V30 tmp20        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V31 tmp21        [V31    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V32 tmp22        [V32,T28] (  3,  2   )     int  -\u003E  registers  \n-;  V33 tmp23        [V33,T05] (  4,  7   )     ref  -\u003E  [rbp-0xD8]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V34 tmp24        [V34    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V35 tmp25        [V35,T26] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V36 tmp26        [V36,T27] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V32 tmp22        [V32,T27] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V33 tmp23        [V33,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V34 tmp24        [V34    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V35 tmp25        [V35,T26] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V38 tmp28        [V38,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V39 tmp29        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V40 tmp30        [V40,T34] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V40 tmp30        [V40,T33] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V41 tmp31        [V41    ] ( 11, 10.50)  struct (88) [rbp-0xD0]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.__Canon,System.__Canon]\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V43 tmp33        [V43    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n@@ -57,13 \u002B57,13 @@\n ;* V46 tmp36        [V46    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;  V47 tmp37        [V47,T20] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V48 tmp38        [V48,T25] (  4,  3.50)     ref  -\u003E  rax        \n-;  V49 tmp39        [V49,T21] (  2,  2   )     ref  -\u003E  [rbp-0xE0]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V50 tmp40        [V50,T32] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V51 tmp41        [V51,T33] (  2,  2   )    long  -\u003E  rax         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V49 tmp39        [V49,T21] (  2,  2   )     ref  -\u003E  [rbp-0xD8]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V50 tmp40        [V50,T31] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V51 tmp41        [V51,T32] (  2,  2   )    long  -\u003E  rax         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V52 tmp42        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V23._name (fldOffset=0x0)\u0022 P-DEP\n ;* V53 tmp43        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V23._value (fldOffset=0x8)\u0022 P-DEP\n-;  V54 tmp44        [V54,T35] (  2,  1   )     ref  -\u003E  rax         \u0022field V24._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V55 tmp45        [V55,T36] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V24._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V54 tmp44        [V54,T34] (  2,  1   )     ref  -\u003E  rax         \u0022field V24._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V55 tmp45        [V55,T35] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V24._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V56 tmp46        [V56    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V44.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;  V57 tmp47        [V57,T22] (  2,  4   )    long  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V58 tmp48        [V58,T23] (  2,  4   )    long  -\u003E  rsi         \u0022argument with side effect\u0022\n@@ -79,7 \u002B79,7 @@\n ;  V68 rat7         [V68,T19] (  3,  4   )    long  -\u003E  rdi         \u0022runtime lookup\u0022\n ;  V69 rat8         [V69,T11] (  3,  5.60)    long  -\u003E  rax         \u0022fgMakeTemp is creating a new local variable\u0022\n ;\n-; Lcl frame size = 248\n\u002B; Lcl frame size = 232\n \n G_M5073_IG01:\n        push     rbp\n@@ -88,14 \u002B88,14 @@ G_M5073_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 248\n-       lea      rbp, [rsp\u002B0x120]\n\u002B       sub      rsp, 232\n\u002B       lea      rbp, [rsp\u002B0x110]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0xD0], zmm8\n        vmovdqu32 zmmword ptr [rbp-0x90], zmm8\n        vmovdqu  ymmword ptr [rbp-0x50], ymm8\n        mov      qword ptr [rbp-0x30], rsi\n-       mov      gword ptr [rbp-0xE0], r9\n\u002B       mov      gword ptr [rbp-0xD8], r9\n        mov      r14, rdi\n        mov      r15, rsi\n        mov      r12, rdx\n@@ -111,7 \u002B111,7 @@ G_M5073_IG02:\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M5073_IG37\n\u002B       je       G_M5073_IG34\n \t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 9.25\n G_M5073_IG03:\n        mov      rsi, r13\n@@ -161,90 \u002B161,70 @@ G_M5073_IG05:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Nullable\u00601[int]]:Render(MongoDB.Driver.RenderArgs\u00601[System.__Canon]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0xD8], rax\n-       test     rax, rax\n-       je       G_M5073_IG38\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n... diff truncated; middle omitted ...\n-       je       SHORT G_M5073_IG16\n\u002B       je       SHORT G_M5073_IG13\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M5073_IG13:\n\u002BG_M5073_IG10:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M5073_IG16\n\u002B       jne      SHORT G_M5073_IG13\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M5073_IG14:\n\u002BG_M5073_IG11:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M5073_IG16\n\u002B       je       SHORT G_M5073_IG13\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M5073_IG15:\n\u002BG_M5073_IG12:\n        mov      ecx, 1\n-       jmp      SHORT G_M5073_IG23\n\u002B       jmp      SHORT G_M5073_IG20\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M5073_IG16:\n\u002BG_M5073_IG13:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M5073_IG21\n\u002B       je       SHORT G_M5073_IG18\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M5073_IG17:\n\u002BG_M5073_IG14:\n        test     rax, rax\n-       je       SHORT G_M5073_IG19\n\u002B       je       SHORT G_M5073_IG16\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M5073_IG18:\n\u002BG_M5073_IG15:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M5073_IG20\n\u002B       je       SHORT G_M5073_IG17\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M5073_IG19:\n\u002BG_M5073_IG16:\n        xor      ecx, ecx\n-       jmp      SHORT G_M5073_IG22\n\u002B       jmp      SHORT G_M5073_IG19\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M5073_IG20:\n\u002BG_M5073_IG17:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -252,30 \u002B232,30 @@ G_M5073_IG20:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M5073_IG22\n\u002B       jmp      SHORT G_M5073_IG19\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M5073_IG21:\n\u002BG_M5073_IG18:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M5073_IG22:\n\u002BG_M5073_IG19:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M5073_IG23:\n\u002BG_M5073_IG20:\n        mov      dword ptr [rbp-0x6C], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M5073_IG39\n\u002B       je       G_M5073_IG36\n        cmp      dword ptr [rbp-0x6C], 0\n-       je       G_M5073_IG39\n\u002B       je       G_M5073_IG36\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rsi, qword ptr [rdi\u002B0x20]\n        test     rsi, rsi\n-       je       G_M5073_IG33\n\u002B       je       G_M5073_IG30\n \t\t\t\t\t\t;; size=55 bbWeight=1 PerfScore 14.75\n-G_M5073_IG24:\n\u002BG_M5073_IG21:\n        mov      rdi, r14\n        mov      rdx, r13\n        mov      rcx, rbx\n@@ -285,9 \u002B265,9 @@ G_M5073_IG24:\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x28]\n        test     rdi, rdi\n-       je       G_M5073_IG34\n\u002B       je       G_M5073_IG31\n \t\t\t\t\t\t;; size=41 bbWeight=1 PerfScore 9.50\n-G_M5073_IG25:\n\u002BG_M5073_IG22:\n        movzx    rsi, byte  ptr [rbx\u002B0x60]\n        mov      rax, qword ptr [rbx\u002B0x68]\n        xor      ecx, ecx\n@@ -297,45 \u002B277,45 @@ G_M5073_IG25:\n        mov      gword ptr [rbp-0xC0], r13\n        mov      byte  ptr [rbp-0xA0], sil\n        mov      qword ptr [rbp-0x98], rax\n-       mov      rbx, gword ptr [rbp-0xE0]\n\u002B       mov      rbx, gword ptr [rbp-0xD8]\n        mov      gword ptr [rbp-0x90], rbx\n        mov      dword ptr [rbp-0xB0], -1\n        mov      rsi, qword ptr [rdi\u002B0x18]\n        mov      rax, qword ptr [rsi\u002B0x10]\n        test     rax, rax\n-       je       G_M5073_IG35\n\u002B       je       G_M5073_IG32\n \t\t\t\t\t\t;; size=94 bbWeight=1 PerfScore 18.50\n-G_M5073_IG26:\n\u002BG_M5073_IG23:\n        mov      rdi, rax\n \t\t\t\t\t\t;; size=3 bbWeight=0.80 PerfScore 0.20\n-G_M5073_IG27:\n\u002BG_M5073_IG24:\n        mov      rsi, qword ptr [rdi\u002B0x18]\n        mov      rax, qword ptr [rsi\u002B0x10]\n        test     rax, rax\n-       je       G_M5073_IG36\n\u002B       je       G_M5073_IG33\n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.25\n-G_M5073_IG28:\n\u002BG_M5073_IG25:\n        mov      rdi, rax\n \t\t\t\t\t\t;; size=3 bbWeight=0.80 PerfScore 0.20\n-G_M5073_IG29:\n\u002BG_M5073_IG26:\n        lea      rsi, [rbp-0xD0]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.__Canon,System.__Canon]](byref)\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.__Canon,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA8]\n        test     rax, rax\n-       jne      SHORT G_M5073_IG31\n\u002B       jne      SHORT G_M5073_IG28\n \t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 6.00\n-G_M5073_IG30:\n\u002BG_M5073_IG27:\n        lea      rdi, [rbp-0xA8]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M5073_IG31:\n\u002BG_M5073_IG28:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M5073_IG32:\n-       add      rsp, 248\n\u002BG_M5073_IG29:\n\u002B       add      rsp, 232\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -344,37 \u002B324,37 @@ G_M5073_IG32:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M5073_IG33:\n\u002BG_M5073_IG30:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M5073_IG24\n\u002B       jmp      G_M5073_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M5073_IG34:\n\u002BG_M5073_IG31:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M5073_IG25\n\u002B       jmp      G_M5073_IG22\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M5073_IG35:\n\u002BG_M5073_IG32:\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M5073_IG27\n\u002B       jmp      G_M5073_IG24\n \t\t\t\t\t\t;; size=30 bbWeight=0.20 PerfScore 1.15\n-G_M5073_IG36:\n\u002BG_M5073_IG33:\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M5073_IG29\n\u002B       jmp      G_M5073_IG26\n \t\t\t\t\t\t;; size=30 bbWeight=0.20 PerfScore 1.15\n-G_M5073_IG37:\n\u002BG_M5073_IG34:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -382,13 \u002B362,13 @@ G_M5073_IG37:\n        mov      rdi, rax\n        jmp      G_M5073_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M5073_IG38:\n\u002BG_M5073_IG35:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M5073_IG39:\n\u002BG_M5073_IG36:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -401,5 \u002B381,5 @@ G_M5073_IG39:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1094, prolog size 59, PerfScore 163.95, instruction count 241, allocated bytes for code 1094 (MethodHash=9cbdec2e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollectionAsync[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 1031, prolog size 59, PerfScore 154.57, instruction count 227, allocated bytes for code 1031 (MethodHash=9cbdec2e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollectionAsync[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1094,"DiffBytes":1031},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.MoneyManagement.OutboundSetupIntentService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.OutboundSetupIntentListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.OutboundSetupIntent]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.MoneyManagement.OutboundSetupIntentService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.OutboundSetupIntentListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.OutboundSetupIntent]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.MoneyManagement.OutboundSetupIntentService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.MoneyManagement.OutboundSetupIntentListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.MoneyManagement.OutboundSetupIntentListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.OutboundSetupIntent]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.OutboundSetupIntent]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.OutboundSetupIntent]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.OutboundSetupIntent]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M10794_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M10794_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/money_management/outbound_setup_intents\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M10794_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M10794_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.OutboundSetupIntent]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M10794_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M10794_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M10794_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.OutboundSetupIntent]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M10794_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M10794_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=2e9dd5d5) for method Stripe.V2.MoneyManagement.OutboundSetupIntentService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.OutboundSetupIntentListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.OutboundSetupIntent]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=2e9dd5d5) for method Stripe.V2.MoneyManagement.OutboundSetupIntentService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.OutboundSetupIntentListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.OutboundSetupIntent]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollectionAsync[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"1,094 -\u003E 1,031 bytes (-63)","ExtraInfo":null,"Diff":"@@ -10,18 \u002B10,18 @@\n ;\n ;  V00 this         [V00,T03] (  5,  5   )     ref  -\u003E  r14         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]\u003E\n ;  V01 TypeCtx      [V01,T01] (  9,  6.60)    long  -\u003E  r15         single-def\n-;  V02 arg1         [V02,T06] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V02 arg1         [V02,T05] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V03 arg2         [V03,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Numerics.Vector\u00601[float]]\u003E\n ;  V04 arg3         [V04,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T30] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n\u002B;  V06 loc0         [V06,T29] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V08 loc2         [V08,T31] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n-;  V09 loc3         [V09,T29] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V08 loc2         [V08,T30] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n\u002B;  V09 loc3         [V09,T28] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V12 tmp2         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V13 tmp3         [V13,T37] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V13 tmp3         [V13,T36] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V14 tmp4         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;  V15 tmp5         [V15,T13] (  4,  4.40)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n ;* V16 tmp6         [V16    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -40,15 \u002B40,15 @@\n ;* V29 tmp19        [V29    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V30 tmp20        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V31 tmp21        [V31    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V32 tmp22        [V32,T28] (  3,  2   )     int  -\u003E  registers  \n-;  V33 tmp23        [V33,T05] (  4,  7   )     ref  -\u003E  [rbp-0xD8]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V34 tmp24        [V34    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V35 tmp25        [V35,T26] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V36 tmp26        [V36,T27] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V32 tmp22        [V32,T27] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V33 tmp23        [V33,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V34 tmp24        [V34    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V35 tmp25        [V35,T26] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V38 tmp28        [V38,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V39 tmp29        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V40 tmp30        [V40,T34] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V40 tmp30        [V40,T33] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V41 tmp31        [V41    ] ( 11, 10.50)  struct (88) [rbp-0xD0]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.__Canon,System.__Canon]\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V43 tmp33        [V43    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n@@ -57,13 \u002B57,13 @@\n ;* V46 tmp36        [V46    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;  V47 tmp37        [V47,T20] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V48 tmp38        [V48,T25] (  4,  3.50)     ref  -\u003E  rax        \n-;  V49 tmp39        [V49,T21] (  2,  2   )     ref  -\u003E  [rbp-0xE0]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V50 tmp40        [V50,T32] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V51 tmp41        [V51,T33] (  2,  2   )    long  -\u003E  rax         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V49 tmp39        [V49,T21] (  2,  2   )     ref  -\u003E  [rbp-0xD8]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V50 tmp40        [V50,T31] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V51 tmp41        [V51,T32] (  2,  2   )    long  -\u003E  rax         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V52 tmp42        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V23._name (fldOffset=0x0)\u0022 P-DEP\n ;* V53 tmp43        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V23._value (fldOffset=0x8)\u0022 P-DEP\n-;  V54 tmp44        [V54,T35] (  2,  1   )     ref  -\u003E  rax         \u0022field V24._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V55 tmp45        [V55,T36] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V24._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V54 tmp44        [V54,T34] (  2,  1   )     ref  -\u003E  rax         \u0022field V24._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V55 tmp45        [V55,T35] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V24._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V56 tmp46        [V56    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V44.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;  V57 tmp47        [V57,T22] (  2,  4   )    long  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V58 tmp48        [V58,T23] (  2,  4   )    long  -\u003E  rsi         \u0022argument with side effect\u0022\n@@ -79,7 \u002B79,7 @@\n ;  V68 rat7         [V68,T19] (  3,  4   )    long  -\u003E  rdi         \u0022runtime lookup\u0022\n ;  V69 rat8         [V69,T11] (  3,  5.60)    long  -\u003E  rax         \u0022fgMakeTemp is creating a new local variable\u0022\n ;\n-; Lcl frame size = 248\n\u002B; Lcl frame size = 232\n \n G_M53041_IG01:\n        push     rbp\n@@ -88,14 \u002B88,14 @@ G_M53041_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 248\n-       lea      rbp, [rsp\u002B0x120]\n\u002B       sub      rsp, 232\n\u002B       lea      rbp, [rsp\u002B0x110]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0xD0], zmm8\n        vmovdqu32 zmmword ptr [rbp-0x90], zmm8\n        vmovdqu  ymmword ptr [rbp-0x50], ymm8\n        mov      qword ptr [rbp-0x30], rsi\n-       mov      gword ptr [rbp-0xE0], r9\n\u002B       mov      gword ptr [rbp-0xD8], r9\n        mov      r14, rdi\n        mov      r15, rsi\n        mov      r12, rdx\n@@ -111,7 \u002B111,7 @@ G_M53041_IG02:\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M53041_IG37\n\u002B       je       G_M53041_IG34\n \t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 9.25\n G_M53041_IG03:\n        mov      rsi, r13\n@@ -161,90 \u002B161,70 @@ G_M53041_IG05:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Numerics.Vector\u00601[float]]:Render(MongoDB.Driver.RenderArgs\u00601[System.__Canon]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0xD8], rax\n-       test     rax, rax\n-       je       G_M53041_IG38\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n... diff truncated; middle omitted ...\n\u002BG_M53041_IG10:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M53041_IG16\n\u002B       jne      SHORT G_M53041_IG13\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M53041_IG14:\n\u002BG_M53041_IG11:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M53041_IG16\n\u002B       je       SHORT G_M53041_IG13\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M53041_IG15:\n\u002BG_M53041_IG12:\n        mov      ecx, 1\n-       jmp      SHORT G_M53041_IG23\n\u002B       jmp      SHORT G_M53041_IG20\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M53041_IG16:\n\u002BG_M53041_IG13:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M53041_IG21\n\u002B       je       SHORT G_M53041_IG18\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M53041_IG17:\n\u002BG_M53041_IG14:\n        test     rax, rax\n-       je       SHORT G_M53041_IG19\n\u002B       je       SHORT G_M53041_IG16\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M53041_IG18:\n\u002BG_M53041_IG15:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M53041_IG20\n\u002B       je       SHORT G_M53041_IG17\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M53041_IG19:\n\u002BG_M53041_IG16:\n        xor      ecx, ecx\n-       jmp      SHORT G_M53041_IG22\n\u002B       jmp      SHORT G_M53041_IG19\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M53041_IG20:\n\u002BG_M53041_IG17:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -252,30 \u002B232,30 @@ G_M53041_IG20:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M53041_IG22\n\u002B       jmp      SHORT G_M53041_IG19\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M53041_IG21:\n\u002BG_M53041_IG18:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M53041_IG22:\n\u002BG_M53041_IG19:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M53041_IG23:\n\u002BG_M53041_IG20:\n        mov      dword ptr [rbp-0x6C], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M53041_IG39\n\u002B       je       G_M53041_IG36\n        cmp      dword ptr [rbp-0x6C], 0\n-       je       G_M53041_IG39\n\u002B       je       G_M53041_IG36\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rsi, qword ptr [rdi\u002B0x20]\n        test     rsi, rsi\n-       je       G_M53041_IG33\n\u002B       je       G_M53041_IG30\n \t\t\t\t\t\t;; size=55 bbWeight=1 PerfScore 14.75\n-G_M53041_IG24:\n\u002BG_M53041_IG21:\n        mov      rdi, r14\n        mov      rdx, r13\n        mov      rcx, rbx\n@@ -285,9 \u002B265,9 @@ G_M53041_IG24:\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x28]\n        test     rdi, rdi\n-       je       G_M53041_IG34\n\u002B       je       G_M53041_IG31\n \t\t\t\t\t\t;; size=41 bbWeight=1 PerfScore 9.50\n-G_M53041_IG25:\n\u002BG_M53041_IG22:\n        movzx    rsi, byte  ptr [rbx\u002B0x60]\n        mov      rax, qword ptr [rbx\u002B0x68]\n        xor      ecx, ecx\n@@ -297,45 \u002B277,45 @@ G_M53041_IG25:\n        mov      gword ptr [rbp-0xC0], r13\n        mov      byte  ptr [rbp-0xA0], sil\n        mov      qword ptr [rbp-0x98], rax\n-       mov      rbx, gword ptr [rbp-0xE0]\n\u002B       mov      rbx, gword ptr [rbp-0xD8]\n        mov      gword ptr [rbp-0x90], rbx\n        mov      dword ptr [rbp-0xB0], -1\n        mov      rsi, qword ptr [rdi\u002B0x18]\n        mov      rax, qword ptr [rsi\u002B0x10]\n        test     rax, rax\n-       je       G_M53041_IG35\n\u002B       je       G_M53041_IG32\n \t\t\t\t\t\t;; size=94 bbWeight=1 PerfScore 18.50\n-G_M53041_IG26:\n\u002BG_M53041_IG23:\n        mov      rdi, rax\n \t\t\t\t\t\t;; size=3 bbWeight=0.80 PerfScore 0.20\n-G_M53041_IG27:\n\u002BG_M53041_IG24:\n        mov      rsi, qword ptr [rdi\u002B0x18]\n        mov      rax, qword ptr [rsi\u002B0x10]\n        test     rax, rax\n-       je       G_M53041_IG36\n\u002B       je       G_M53041_IG33\n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.25\n-G_M53041_IG28:\n\u002BG_M53041_IG25:\n        mov      rdi, rax\n \t\t\t\t\t\t;; size=3 bbWeight=0.80 PerfScore 0.20\n-G_M53041_IG29:\n\u002BG_M53041_IG26:\n        lea      rsi, [rbp-0xD0]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.__Canon,System.__Canon]](byref)\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.__Canon,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA8]\n        test     rax, rax\n-       jne      SHORT G_M53041_IG31\n\u002B       jne      SHORT G_M53041_IG28\n \t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 6.00\n-G_M53041_IG30:\n\u002BG_M53041_IG27:\n        lea      rdi, [rbp-0xA8]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M53041_IG31:\n\u002BG_M53041_IG28:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M53041_IG32:\n-       add      rsp, 248\n\u002BG_M53041_IG29:\n\u002B       add      rsp, 232\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -344,37 \u002B324,37 @@ G_M53041_IG32:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M53041_IG33:\n\u002BG_M53041_IG30:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M53041_IG24\n\u002B       jmp      G_M53041_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M53041_IG34:\n\u002BG_M53041_IG31:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M53041_IG25\n\u002B       jmp      G_M53041_IG22\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M53041_IG35:\n\u002BG_M53041_IG32:\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M53041_IG27\n\u002B       jmp      G_M53041_IG24\n \t\t\t\t\t\t;; size=30 bbWeight=0.20 PerfScore 1.15\n-G_M53041_IG36:\n\u002BG_M53041_IG33:\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M53041_IG29\n\u002B       jmp      G_M53041_IG26\n \t\t\t\t\t\t;; size=30 bbWeight=0.20 PerfScore 1.15\n-G_M53041_IG37:\n\u002BG_M53041_IG34:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -382,13 \u002B362,13 @@ G_M53041_IG37:\n        mov      rdi, rax\n        jmp      G_M53041_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M53041_IG38:\n\u002BG_M53041_IG35:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M53041_IG39:\n\u002BG_M53041_IG36:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -401,5 \u002B381,5 @@ G_M53041_IG39:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1094, prolog size 59, PerfScore 163.95, instruction count 241, allocated bytes for code 1094 (MethodHash=d69730ce) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollectionAsync[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 1031, prolog size 59, PerfScore 154.57, instruction count 227, allocated bytes for code 1031 (MethodHash=d69730ce) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollectionAsync[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1094,"DiffBytes":1031},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.MoneyManagement.OutboundTransferService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.OutboundTransferListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.OutboundTransfer]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.MoneyManagement.OutboundTransferService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.OutboundTransferListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.OutboundTransfer]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.MoneyManagement.OutboundTransferService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.MoneyManagement.OutboundTransferListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.MoneyManagement.OutboundTransferListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.OutboundTransfer]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.OutboundTransfer]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.OutboundTransfer]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.OutboundTransfer]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M2602_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M2602_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/money_management/outbound_transfers\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M2602_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M2602_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.OutboundTransfer]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M2602_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M2602_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M2602_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.OutboundTransfer]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M2602_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M2602_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=c554f5d5) for method Stripe.V2.MoneyManagement.OutboundTransferService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.OutboundTransferListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.OutboundTransfer]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=c554f5d5) for method Stripe.V2.MoneyManagement.OutboundTransferService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.OutboundTransferListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.OutboundTransfer]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollectionAsync[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"1,094 -\u003E 1,031 bytes (-63)","ExtraInfo":null,"Diff":"@@ -10,18 \u002B10,18 @@\n ;\n ;  V00 this         [V00,T03] (  5,  5   )     ref  -\u003E  r14         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]\u003E\n ;  V01 TypeCtx      [V01,T01] (  9,  6.60)    long  -\u003E  r15         single-def\n-;  V02 arg1         [V02,T06] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V02 arg1         [V02,T05] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V03 arg2         [V03,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.__Canon]\u003E\n ;  V04 arg3         [V04,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T30] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n\u002B;  V06 loc0         [V06,T29] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n-;  V08 loc2         [V08,T31] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n-;  V09 loc3         [V09,T29] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V08 loc2         [V08,T30] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n\u002B;  V09 loc3         [V09,T28] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V12 tmp2         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V13 tmp3         [V13,T37] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V13 tmp3         [V13,T36] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V14 tmp4         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;  V15 tmp5         [V15,T13] (  4,  4.40)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n ;* V16 tmp6         [V16    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -40,15 \u002B40,15 @@\n ;* V29 tmp19        [V29    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V30 tmp20        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V31 tmp21        [V31    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V32 tmp22        [V32,T28] (  3,  2   )     int  -\u003E  registers  \n-;  V33 tmp23        [V33,T05] (  4,  7   )     ref  -\u003E  [rbp-0xD8]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V34 tmp24        [V34    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V35 tmp25        [V35,T26] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V36 tmp26        [V36,T27] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V32 tmp22        [V32,T27] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V33 tmp23        [V33,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V34 tmp24        [V34    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V35 tmp25        [V35,T26] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V38 tmp28        [V38,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V39 tmp29        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V40 tmp30        [V40,T34] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V40 tmp30        [V40,T33] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V41 tmp31        [V41    ] ( 11, 10.50)  struct (88) [rbp-0xD0]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.__Canon,System.__Canon]\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V43 tmp33        [V43    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n@@ -57,13 \u002B57,13 @@\n ;* V46 tmp36        [V46    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;  V47 tmp37        [V47,T20] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V48 tmp38        [V48,T25] (  4,  3.50)     ref  -\u003E  rax        \n-;  V49 tmp39        [V49,T21] (  2,  2   )     ref  -\u003E  [rbp-0xE0]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V50 tmp40        [V50,T32] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V51 tmp41        [V51,T33] (  2,  2   )    long  -\u003E  rax         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V49 tmp39        [V49,T21] (  2,  2   )     ref  -\u003E  [rbp-0xD8]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V50 tmp40        [V50,T31] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V51 tmp41        [V51,T32] (  2,  2   )    long  -\u003E  rax         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V52 tmp42        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V23._name (fldOffset=0x0)\u0022 P-DEP\n ;* V53 tmp43        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V23._value (fldOffset=0x8)\u0022 P-DEP\n-;  V54 tmp44        [V54,T35] (  2,  1   )     ref  -\u003E  rax         \u0022field V24._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V55 tmp45        [V55,T36] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V24._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V54 tmp44        [V54,T34] (  2,  1   )     ref  -\u003E  rax         \u0022field V24._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V55 tmp45        [V55,T35] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V24._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V56 tmp46        [V56    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V44.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;  V57 tmp47        [V57,T22] (  2,  4   )    long  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V58 tmp48        [V58,T23] (  2,  4   )    long  -\u003E  rsi         \u0022argument with side effect\u0022\n@@ -79,7 \u002B79,7 @@\n ;  V68 rat7         [V68,T19] (  3,  4   )    long  -\u003E  rdi         \u0022runtime lookup\u0022\n ;  V69 rat8         [V69,T11] (  3,  5.60)    long  -\u003E  rax         \u0022fgMakeTemp is creating a new local variable\u0022\n ;\n-; Lcl frame size = 248\n\u002B; Lcl frame size = 232\n \n G_M55377_IG01:\n        push     rbp\n@@ -88,14 \u002B88,14 @@ G_M55377_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 248\n-       lea      rbp, [rsp\u002B0x120]\n\u002B       sub      rsp, 232\n\u002B       lea      rbp, [rsp\u002B0x110]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0xD0], zmm8\n        vmovdqu32 zmmword ptr [rbp-0x90], zmm8\n        vmovdqu  ymmword ptr [rbp-0x50], ymm8\n        mov      qword ptr [rbp-0x30], rsi\n-       mov      gword ptr [rbp-0xE0], r9\n\u002B       mov      gword ptr [rbp-0xD8], r9\n        mov      r14, rdi\n        mov      r15, rsi\n        mov      r12, rdx\n@@ -111,7 \u002B111,7 @@ G_M55377_IG02:\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M55377_IG37\n\u002B       je       G_M55377_IG34\n \t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 9.25\n G_M55377_IG03:\n        mov      rsi, r13\n@@ -161,90 \u002B161,70 @@ G_M55377_IG05:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.__Canon]:Render(MongoDB.Driver.RenderArgs\u00601[System.__Canon]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0xD8], rax\n-       test     rax, rax\n-       je       G_M55377_IG38\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M55377_IG13:\n\u002BG_M55377_IG10:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M55377_IG16\n\u002B       jne      SHORT G_M55377_IG13\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M55377_IG14:\n\u002BG_M55377_IG11:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M55377_IG16\n\u002B       je       SHORT G_M55377_IG13\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M55377_IG15:\n\u002BG_M55377_IG12:\n        mov      ecx, 1\n-       jmp      SHORT G_M55377_IG23\n\u002B       jmp      SHORT G_M55377_IG20\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M55377_IG16:\n\u002BG_M55377_IG13:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M55377_IG21\n\u002B       je       SHORT G_M55377_IG18\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M55377_IG17:\n\u002BG_M55377_IG14:\n        test     rax, rax\n-       je       SHORT G_M55377_IG19\n\u002B       je       SHORT G_M55377_IG16\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M55377_IG18:\n\u002BG_M55377_IG15:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M55377_IG20\n\u002B       je       SHORT G_M55377_IG17\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M55377_IG19:\n\u002BG_M55377_IG16:\n        xor      ecx, ecx\n-       jmp      SHORT G_M55377_IG22\n\u002B       jmp      SHORT G_M55377_IG19\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M55377_IG20:\n\u002BG_M55377_IG17:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -252,30 \u002B232,30 @@ G_M55377_IG20:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M55377_IG22\n\u002B       jmp      SHORT G_M55377_IG19\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M55377_IG21:\n\u002BG_M55377_IG18:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M55377_IG22:\n\u002BG_M55377_IG19:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M55377_IG23:\n\u002BG_M55377_IG20:\n        mov      dword ptr [rbp-0x6C], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M55377_IG39\n\u002B       je       G_M55377_IG36\n        cmp      dword ptr [rbp-0x6C], 0\n-       je       G_M55377_IG39\n\u002B       je       G_M55377_IG36\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rsi, qword ptr [rdi\u002B0x20]\n        test     rsi, rsi\n-       je       G_M55377_IG33\n\u002B       je       G_M55377_IG30\n \t\t\t\t\t\t;; size=55 bbWeight=1 PerfScore 14.75\n-G_M55377_IG24:\n\u002BG_M55377_IG21:\n        mov      rdi, r14\n        mov      rdx, r13\n        mov      rcx, rbx\n@@ -285,9 \u002B265,9 @@ G_M55377_IG24:\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x28]\n        test     rdi, rdi\n-       je       G_M55377_IG34\n\u002B       je       G_M55377_IG31\n \t\t\t\t\t\t;; size=41 bbWeight=1 PerfScore 9.50\n-G_M55377_IG25:\n\u002BG_M55377_IG22:\n        movzx    rsi, byte  ptr [rbx\u002B0x60]\n        mov      rax, qword ptr [rbx\u002B0x68]\n        xor      ecx, ecx\n@@ -297,45 \u002B277,45 @@ G_M55377_IG25:\n        mov      gword ptr [rbp-0xC0], r13\n        mov      byte  ptr [rbp-0xA0], sil\n        mov      qword ptr [rbp-0x98], rax\n-       mov      rbx, gword ptr [rbp-0xE0]\n\u002B       mov      rbx, gword ptr [rbp-0xD8]\n        mov      gword ptr [rbp-0x90], rbx\n        mov      dword ptr [rbp-0xB0], -1\n        mov      rsi, qword ptr [rdi\u002B0x18]\n        mov      rax, qword ptr [rsi\u002B0x10]\n        test     rax, rax\n-       je       G_M55377_IG35\n\u002B       je       G_M55377_IG32\n \t\t\t\t\t\t;; size=94 bbWeight=1 PerfScore 18.50\n-G_M55377_IG26:\n\u002BG_M55377_IG23:\n        mov      rdi, rax\n \t\t\t\t\t\t;; size=3 bbWeight=0.80 PerfScore 0.20\n-G_M55377_IG27:\n\u002BG_M55377_IG24:\n        mov      rsi, qword ptr [rdi\u002B0x18]\n        mov      rax, qword ptr [rsi\u002B0x10]\n        test     rax, rax\n-       je       G_M55377_IG36\n\u002B       je       G_M55377_IG33\n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.25\n-G_M55377_IG28:\n\u002BG_M55377_IG25:\n        mov      rdi, rax\n \t\t\t\t\t\t;; size=3 bbWeight=0.80 PerfScore 0.20\n-G_M55377_IG29:\n\u002BG_M55377_IG26:\n        lea      rsi, [rbp-0xD0]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.__Canon,System.__Canon]](byref)\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.__Canon,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA8]\n        test     rax, rax\n-       jne      SHORT G_M55377_IG31\n\u002B       jne      SHORT G_M55377_IG28\n \t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 6.00\n-G_M55377_IG30:\n\u002BG_M55377_IG27:\n        lea      rdi, [rbp-0xA8]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M55377_IG31:\n\u002BG_M55377_IG28:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M55377_IG32:\n-       add      rsp, 248\n\u002BG_M55377_IG29:\n\u002B       add      rsp, 232\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -344,37 \u002B324,37 @@ G_M55377_IG32:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M55377_IG33:\n\u002BG_M55377_IG30:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M55377_IG24\n\u002B       jmp      G_M55377_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M55377_IG34:\n\u002BG_M55377_IG31:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M55377_IG25\n\u002B       jmp      G_M55377_IG22\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M55377_IG35:\n\u002BG_M55377_IG32:\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M55377_IG27\n\u002B       jmp      G_M55377_IG24\n \t\t\t\t\t\t;; size=30 bbWeight=0.20 PerfScore 1.15\n-G_M55377_IG36:\n\u002BG_M55377_IG33:\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M55377_IG29\n\u002B       jmp      G_M55377_IG26\n \t\t\t\t\t\t;; size=30 bbWeight=0.20 PerfScore 1.15\n-G_M55377_IG37:\n\u002BG_M55377_IG34:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -382,13 \u002B362,13 @@ G_M55377_IG37:\n        mov      rdi, rax\n        jmp      G_M55377_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M55377_IG38:\n\u002BG_M55377_IG35:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M55377_IG39:\n\u002BG_M55377_IG36:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -401,5 \u002B381,5 @@ G_M55377_IG39:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1094, prolog size 59, PerfScore 163.95, instruction count 241, allocated bytes for code 1094 (MethodHash=f05f27ae) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollectionAsync[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 1031, prolog size 59, PerfScore 154.57, instruction count 227, allocated bytes for code 1031 (MethodHash=f05f27ae) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollectionAsync[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1094,"DiffBytes":1031},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.MoneyManagement.PayoutIntentService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.PayoutIntentListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.PayoutIntent]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.MoneyManagement.PayoutIntentService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.PayoutIntentListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.PayoutIntent]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.MoneyManagement.PayoutIntentService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.MoneyManagement.PayoutIntentListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.MoneyManagement.PayoutIntentListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.PayoutIntent]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.PayoutIntent]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.PayoutIntent]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.PayoutIntent]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M31927_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M31927_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/money_management/payout_intents\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M31927_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M31927_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.PayoutIntent]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M31927_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M31927_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M31927_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.PayoutIntent]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M31927_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M31927_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=c1518348) for method Stripe.V2.MoneyManagement.PayoutIntentService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.PayoutIntentListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.PayoutIntent]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=c1518348) for method Stripe.V2.MoneyManagement.PayoutIntentService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.PayoutIntentListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.PayoutIntent]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollectionAsync[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"1,094 -\u003E 1,031 bytes (-63)","ExtraInfo":null,"Diff":"@@ -10,18 \u002B10,18 @@\n ;\n ;  V00 this         [V00,T03] (  5,  5   )     ref  -\u003E  r14         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]\u003E\n ;  V01 TypeCtx      [V01,T01] (  9,  6.60)    long  -\u003E  r15         single-def\n-;  V02 arg1         [V02,T06] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V02 arg1         [V02,T05] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V03 arg2         [V03,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.__Canon,byte]\u003E\n ;  V04 arg3         [V04,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T30] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n\u002B;  V06 loc0         [V06,T29] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n-;  V08 loc2         [V08,T31] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n-;  V09 loc3         [V09,T29] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V08 loc2         [V08,T30] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n\u002B;  V09 loc3         [V09,T28] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V12 tmp2         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V13 tmp3         [V13,T37] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V13 tmp3         [V13,T36] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V14 tmp4         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;  V15 tmp5         [V15,T13] (  4,  4.40)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n ;* V16 tmp6         [V16    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -40,15 \u002B40,15 @@\n ;* V29 tmp19        [V29    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V30 tmp20        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V31 tmp21        [V31    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V32 tmp22        [V32,T28] (  3,  2   )     int  -\u003E  registers  \n-;  V33 tmp23        [V33,T05] (  4,  7   )     ref  -\u003E  [rbp-0xD8]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V34 tmp24        [V34    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V35 tmp25        [V35,T26] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V36 tmp26        [V36,T27] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V32 tmp22        [V32,T27] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V33 tmp23        [V33,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V34 tmp24        [V34    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V35 tmp25        [V35,T26] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V38 tmp28        [V38,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V39 tmp29        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V40 tmp30        [V40,T34] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V40 tmp30        [V40,T33] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V41 tmp31        [V41    ] ( 11, 10.50)  struct (88) [rbp-0xD0]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.__Canon,System.__Canon]\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V43 tmp33        [V43    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n@@ -57,13 \u002B57,13 @@\n ;* V46 tmp36        [V46    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;  V47 tmp37        [V47,T20] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V48 tmp38        [V48,T25] (  4,  3.50)     ref  -\u003E  rax        \n-;  V49 tmp39        [V49,T21] (  2,  2   )     ref  -\u003E  [rbp-0xE0]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V50 tmp40        [V50,T32] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V51 tmp41        [V51,T33] (  2,  2   )    long  -\u003E  rax         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V49 tmp39        [V49,T21] (  2,  2   )     ref  -\u003E  [rbp-0xD8]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V50 tmp40        [V50,T31] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V51 tmp41        [V51,T32] (  2,  2   )    long  -\u003E  rax         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V52 tmp42        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V23._name (fldOffset=0x0)\u0022 P-DEP\n ;* V53 tmp43        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V23._value (fldOffset=0x8)\u0022 P-DEP\n-;  V54 tmp44        [V54,T35] (  2,  1   )     ref  -\u003E  rax         \u0022field V24._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V55 tmp45        [V55,T36] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V24._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V54 tmp44        [V54,T34] (  2,  1   )     ref  -\u003E  rax         \u0022field V24._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V55 tmp45        [V55,T35] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V24._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V56 tmp46        [V56    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V44.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;  V57 tmp47        [V57,T22] (  2,  4   )    long  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V58 tmp48        [V58,T23] (  2,  4   )    long  -\u003E  rsi         \u0022argument with side effect\u0022\n@@ -79,7 \u002B79,7 @@\n ;  V68 rat7         [V68,T19] (  3,  4   )    long  -\u003E  rdi         \u0022runtime lookup\u0022\n ;  V69 rat8         [V69,T11] (  3,  5.60)    long  -\u003E  rax         \u0022fgMakeTemp is creating a new local variable\u0022\n ;\n-; Lcl frame size = 248\n\u002B; Lcl frame size = 232\n \n G_M22993_IG01:\n        push     rbp\n@@ -88,14 \u002B88,14 @@ G_M22993_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 248\n-       lea      rbp, [rsp\u002B0x120]\n\u002B       sub      rsp, 232\n\u002B       lea      rbp, [rsp\u002B0x110]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0xD0], zmm8\n        vmovdqu32 zmmword ptr [rbp-0x90], zmm8\n        vmovdqu  ymmword ptr [rbp-0x50], ymm8\n        mov      qword ptr [rbp-0x30], rsi\n-       mov      gword ptr [rbp-0xE0], r9\n\u002B       mov      gword ptr [rbp-0xD8], r9\n        mov      r14, rdi\n        mov      r15, rsi\n        mov      r12, rdx\n@@ -111,7 \u002B111,7 @@ G_M22993_IG02:\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M22993_IG37\n\u002B       je       G_M22993_IG34\n \t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 9.25\n G_M22993_IG03:\n        mov      rsi, r13\n@@ -161,90 \u002B161,70 @@ G_M22993_IG05:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,byte]:Render(MongoDB.Driver.RenderArgs\u00601[System.__Canon]):MongoDB.Driver.RenderedPipelineDefinition\u00601[byte]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0xD8], rax\n-       test     rax, rax\n-       je       G_M22993_IG38\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n... diff truncated; middle omitted ...\n\u002B       je       SHORT G_M22993_IG13\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M22993_IG13:\n\u002BG_M22993_IG10:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M22993_IG16\n\u002B       jne      SHORT G_M22993_IG13\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M22993_IG14:\n\u002BG_M22993_IG11:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M22993_IG16\n\u002B       je       SHORT G_M22993_IG13\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M22993_IG15:\n\u002BG_M22993_IG12:\n        mov      ecx, 1\n-       jmp      SHORT G_M22993_IG23\n\u002B       jmp      SHORT G_M22993_IG20\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M22993_IG16:\n\u002BG_M22993_IG13:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M22993_IG21\n\u002B       je       SHORT G_M22993_IG18\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M22993_IG17:\n\u002BG_M22993_IG14:\n        test     rax, rax\n-       je       SHORT G_M22993_IG19\n\u002B       je       SHORT G_M22993_IG16\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M22993_IG18:\n\u002BG_M22993_IG15:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M22993_IG20\n\u002B       je       SHORT G_M22993_IG17\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M22993_IG19:\n\u002BG_M22993_IG16:\n        xor      ecx, ecx\n-       jmp      SHORT G_M22993_IG22\n\u002B       jmp      SHORT G_M22993_IG19\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M22993_IG20:\n\u002BG_M22993_IG17:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -252,30 \u002B232,30 @@ G_M22993_IG20:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M22993_IG22\n\u002B       jmp      SHORT G_M22993_IG19\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M22993_IG21:\n\u002BG_M22993_IG18:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M22993_IG22:\n\u002BG_M22993_IG19:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M22993_IG23:\n\u002BG_M22993_IG20:\n        mov      dword ptr [rbp-0x6C], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M22993_IG39\n\u002B       je       G_M22993_IG36\n        cmp      dword ptr [rbp-0x6C], 0\n-       je       G_M22993_IG39\n\u002B       je       G_M22993_IG36\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rsi, qword ptr [rdi\u002B0x20]\n        test     rsi, rsi\n-       je       G_M22993_IG33\n\u002B       je       G_M22993_IG30\n \t\t\t\t\t\t;; size=55 bbWeight=1 PerfScore 14.75\n-G_M22993_IG24:\n\u002BG_M22993_IG21:\n        mov      rdi, r14\n        mov      rdx, r13\n        mov      rcx, rbx\n@@ -285,9 \u002B265,9 @@ G_M22993_IG24:\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x28]\n        test     rdi, rdi\n-       je       G_M22993_IG34\n\u002B       je       G_M22993_IG31\n \t\t\t\t\t\t;; size=41 bbWeight=1 PerfScore 9.50\n-G_M22993_IG25:\n\u002BG_M22993_IG22:\n        movzx    rsi, byte  ptr [rbx\u002B0x60]\n        mov      rax, qword ptr [rbx\u002B0x68]\n        xor      ecx, ecx\n@@ -297,45 \u002B277,45 @@ G_M22993_IG25:\n        mov      gword ptr [rbp-0xC0], r13\n        mov      byte  ptr [rbp-0xA0], sil\n        mov      qword ptr [rbp-0x98], rax\n-       mov      rbx, gword ptr [rbp-0xE0]\n\u002B       mov      rbx, gword ptr [rbp-0xD8]\n        mov      gword ptr [rbp-0x90], rbx\n        mov      dword ptr [rbp-0xB0], -1\n        mov      rsi, qword ptr [rdi\u002B0x18]\n        mov      rax, qword ptr [rsi\u002B0x10]\n        test     rax, rax\n-       je       G_M22993_IG35\n\u002B       je       G_M22993_IG32\n \t\t\t\t\t\t;; size=94 bbWeight=1 PerfScore 18.50\n-G_M22993_IG26:\n\u002BG_M22993_IG23:\n        mov      rdi, rax\n \t\t\t\t\t\t;; size=3 bbWeight=0.80 PerfScore 0.20\n-G_M22993_IG27:\n\u002BG_M22993_IG24:\n        mov      rsi, qword ptr [rdi\u002B0x18]\n        mov      rax, qword ptr [rsi\u002B0x10]\n        test     rax, rax\n-       je       G_M22993_IG36\n\u002B       je       G_M22993_IG33\n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.25\n-G_M22993_IG28:\n\u002BG_M22993_IG25:\n        mov      rdi, rax\n \t\t\t\t\t\t;; size=3 bbWeight=0.80 PerfScore 0.20\n-G_M22993_IG29:\n\u002BG_M22993_IG26:\n        lea      rsi, [rbp-0xD0]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.__Canon,System.__Canon]](byref)\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.__Canon,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA8]\n        test     rax, rax\n-       jne      SHORT G_M22993_IG31\n\u002B       jne      SHORT G_M22993_IG28\n \t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 6.00\n-G_M22993_IG30:\n\u002BG_M22993_IG27:\n        lea      rdi, [rbp-0xA8]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M22993_IG31:\n\u002BG_M22993_IG28:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M22993_IG32:\n-       add      rsp, 248\n\u002BG_M22993_IG29:\n\u002B       add      rsp, 232\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -344,37 \u002B324,37 @@ G_M22993_IG32:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M22993_IG33:\n\u002BG_M22993_IG30:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M22993_IG24\n\u002B       jmp      G_M22993_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M22993_IG34:\n\u002BG_M22993_IG31:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M22993_IG25\n\u002B       jmp      G_M22993_IG22\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M22993_IG35:\n\u002BG_M22993_IG32:\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M22993_IG27\n\u002B       jmp      G_M22993_IG24\n \t\t\t\t\t\t;; size=30 bbWeight=0.20 PerfScore 1.15\n-G_M22993_IG36:\n\u002BG_M22993_IG33:\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M22993_IG29\n\u002B       jmp      G_M22993_IG26\n \t\t\t\t\t\t;; size=30 bbWeight=0.20 PerfScore 1.15\n-G_M22993_IG37:\n\u002BG_M22993_IG34:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -382,13 \u002B362,13 @@ G_M22993_IG37:\n        mov      rdi, rax\n        jmp      G_M22993_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M22993_IG38:\n\u002BG_M22993_IG35:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M22993_IG39:\n\u002BG_M22993_IG36:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -401,5 \u002B381,5 @@ G_M22993_IG39:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1094, prolog size 59, PerfScore 163.95, instruction count 241, allocated bytes for code 1094 (MethodHash=3ee9a62e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollectionAsync[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 1031, prolog size 59, PerfScore 154.57, instruction count 227, allocated bytes for code 1031 (MethodHash=3ee9a62e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollectionAsync[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1094,"DiffBytes":1031},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.MoneyManagement.PayoutMethodService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.PayoutMethodListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.PayoutMethod]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.MoneyManagement.PayoutMethodService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.PayoutMethodListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.PayoutMethod]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.MoneyManagement.PayoutMethodService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.MoneyManagement.PayoutMethodListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.MoneyManagement.PayoutMethodListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.PayoutMethod]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.PayoutMethod]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.PayoutMethod]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.PayoutMethod]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M64068_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M64068_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/money_management/payout_methods\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M64068_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M64068_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.PayoutMethod]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M64068_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M64068_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M64068_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.PayoutMethod]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M64068_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M64068_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=f43105bb) for method Stripe.V2.MoneyManagement.PayoutMethodService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.PayoutMethodListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.PayoutMethod]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=f43105bb) for method Stripe.V2.MoneyManagement.PayoutMethodService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.PayoutMethodListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.PayoutMethod]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollectionAsync[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"1,094 -\u003E 1,031 bytes (-63)","ExtraInfo":null,"Diff":"@@ -10,18 \u002B10,18 @@\n ;\n ;  V00 this         [V00,T03] (  5,  5   )     ref  -\u003E  r14         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]\u003E\n ;  V01 TypeCtx      [V01,T01] (  9,  6.60)    long  -\u003E  r15         single-def\n-;  V02 arg1         [V02,T06] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V02 arg1         [V02,T05] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V03 arg2         [V03,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.__Canon,double]\u003E\n ;  V04 arg3         [V04,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T30] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n\u002B;  V06 loc0         [V06,T29] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n-;  V08 loc2         [V08,T31] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n-;  V09 loc3         [V09,T29] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V08 loc2         [V08,T30] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n\u002B;  V09 loc3         [V09,T28] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V12 tmp2         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V13 tmp3         [V13,T37] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V13 tmp3         [V13,T36] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V14 tmp4         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;  V15 tmp5         [V15,T13] (  4,  4.40)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n ;* V16 tmp6         [V16    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -40,15 \u002B40,15 @@\n ;* V29 tmp19        [V29    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V30 tmp20        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V31 tmp21        [V31    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V32 tmp22        [V32,T28] (  3,  2   )     int  -\u003E  registers  \n-;  V33 tmp23        [V33,T05] (  4,  7   )     ref  -\u003E  [rbp-0xD8]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V34 tmp24        [V34    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V35 tmp25        [V35,T26] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V36 tmp26        [V36,T27] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V32 tmp22        [V32,T27] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V33 tmp23        [V33,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V34 tmp24        [V34    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V35 tmp25        [V35,T26] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V38 tmp28        [V38,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V39 tmp29        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V40 tmp30        [V40,T34] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V40 tmp30        [V40,T33] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V41 tmp31        [V41    ] ( 11, 10.50)  struct (88) [rbp-0xD0]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.__Canon,System.__Canon]\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V43 tmp33        [V43    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n@@ -57,13 \u002B57,13 @@\n ;* V46 tmp36        [V46    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;  V47 tmp37        [V47,T20] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V48 tmp38        [V48,T25] (  4,  3.50)     ref  -\u003E  rax        \n-;  V49 tmp39        [V49,T21] (  2,  2   )     ref  -\u003E  [rbp-0xE0]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V50 tmp40        [V50,T32] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V51 tmp41        [V51,T33] (  2,  2   )    long  -\u003E  rax         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V49 tmp39        [V49,T21] (  2,  2   )     ref  -\u003E  [rbp-0xD8]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V50 tmp40        [V50,T31] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V51 tmp41        [V51,T32] (  2,  2   )    long  -\u003E  rax         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V52 tmp42        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V23._name (fldOffset=0x0)\u0022 P-DEP\n ;* V53 tmp43        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V23._value (fldOffset=0x8)\u0022 P-DEP\n-;  V54 tmp44        [V54,T35] (  2,  1   )     ref  -\u003E  rax         \u0022field V24._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V55 tmp45        [V55,T36] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V24._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V54 tmp44        [V54,T34] (  2,  1   )     ref  -\u003E  rax         \u0022field V24._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V55 tmp45        [V55,T35] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V24._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V56 tmp46        [V56    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V44.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;  V57 tmp47        [V57,T22] (  2,  4   )    long  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V58 tmp48        [V58,T23] (  2,  4   )    long  -\u003E  rsi         \u0022argument with side effect\u0022\n@@ -79,7 \u002B79,7 @@\n ;  V68 rat7         [V68,T19] (  3,  4   )    long  -\u003E  rdi         \u0022runtime lookup\u0022\n ;  V69 rat8         [V69,T11] (  3,  5.60)    long  -\u003E  rax         \u0022fgMakeTemp is creating a new local variable\u0022\n ;\n-; Lcl frame size = 248\n\u002B; Lcl frame size = 232\n \n G_M32433_IG01:\n        push     rbp\n@@ -88,14 \u002B88,14 @@ G_M32433_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 248\n-       lea      rbp, [rsp\u002B0x120]\n\u002B       sub      rsp, 232\n\u002B       lea      rbp, [rsp\u002B0x110]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0xD0], zmm8\n        vmovdqu32 zmmword ptr [rbp-0x90], zmm8\n        vmovdqu  ymmword ptr [rbp-0x50], ymm8\n        mov      qword ptr [rbp-0x30], rsi\n-       mov      gword ptr [rbp-0xE0], r9\n\u002B       mov      gword ptr [rbp-0xD8], r9\n        mov      r14, rdi\n        mov      r15, rsi\n        mov      r12, rdx\n@@ -111,7 \u002B111,7 @@ G_M32433_IG02:\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M32433_IG37\n\u002B       je       G_M32433_IG34\n \t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 9.25\n G_M32433_IG03:\n        mov      rsi, r13\n@@ -161,90 \u002B161,70 @@ G_M32433_IG05:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,double]:Render(MongoDB.Driver.RenderArgs\u00601[System.__Canon]):MongoDB.Driver.RenderedPipelineDefinition\u00601[double]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0xD8], rax\n-       test     rax, rax\n-       je       G_M32433_IG38\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n... diff truncated; middle omitted ...\n\u002B       je       SHORT G_M32433_IG13\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M32433_IG13:\n\u002BG_M32433_IG10:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M32433_IG16\n\u002B       jne      SHORT G_M32433_IG13\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M32433_IG14:\n\u002BG_M32433_IG11:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M32433_IG16\n\u002B       je       SHORT G_M32433_IG13\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M32433_IG15:\n\u002BG_M32433_IG12:\n        mov      ecx, 1\n-       jmp      SHORT G_M32433_IG23\n\u002B       jmp      SHORT G_M32433_IG20\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M32433_IG16:\n\u002BG_M32433_IG13:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M32433_IG21\n\u002B       je       SHORT G_M32433_IG18\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M32433_IG17:\n\u002BG_M32433_IG14:\n        test     rax, rax\n-       je       SHORT G_M32433_IG19\n\u002B       je       SHORT G_M32433_IG16\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M32433_IG18:\n\u002BG_M32433_IG15:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M32433_IG20\n\u002B       je       SHORT G_M32433_IG17\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M32433_IG19:\n\u002BG_M32433_IG16:\n        xor      ecx, ecx\n-       jmp      SHORT G_M32433_IG22\n\u002B       jmp      SHORT G_M32433_IG19\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M32433_IG20:\n\u002BG_M32433_IG17:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -252,30 \u002B232,30 @@ G_M32433_IG20:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M32433_IG22\n\u002B       jmp      SHORT G_M32433_IG19\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M32433_IG21:\n\u002BG_M32433_IG18:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M32433_IG22:\n\u002BG_M32433_IG19:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M32433_IG23:\n\u002BG_M32433_IG20:\n        mov      dword ptr [rbp-0x6C], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M32433_IG39\n\u002B       je       G_M32433_IG36\n        cmp      dword ptr [rbp-0x6C], 0\n-       je       G_M32433_IG39\n\u002B       je       G_M32433_IG36\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rsi, qword ptr [rdi\u002B0x20]\n        test     rsi, rsi\n-       je       G_M32433_IG33\n\u002B       je       G_M32433_IG30\n \t\t\t\t\t\t;; size=55 bbWeight=1 PerfScore 14.75\n-G_M32433_IG24:\n\u002BG_M32433_IG21:\n        mov      rdi, r14\n        mov      rdx, r13\n        mov      rcx, rbx\n@@ -285,9 \u002B265,9 @@ G_M32433_IG24:\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x28]\n        test     rdi, rdi\n-       je       G_M32433_IG34\n\u002B       je       G_M32433_IG31\n \t\t\t\t\t\t;; size=41 bbWeight=1 PerfScore 9.50\n-G_M32433_IG25:\n\u002BG_M32433_IG22:\n        movzx    rsi, byte  ptr [rbx\u002B0x60]\n        mov      rax, qword ptr [rbx\u002B0x68]\n        xor      ecx, ecx\n@@ -297,45 \u002B277,45 @@ G_M32433_IG25:\n        mov      gword ptr [rbp-0xC0], r13\n        mov      byte  ptr [rbp-0xA0], sil\n        mov      qword ptr [rbp-0x98], rax\n-       mov      rbx, gword ptr [rbp-0xE0]\n\u002B       mov      rbx, gword ptr [rbp-0xD8]\n        mov      gword ptr [rbp-0x90], rbx\n        mov      dword ptr [rbp-0xB0], -1\n        mov      rsi, qword ptr [rdi\u002B0x18]\n        mov      rax, qword ptr [rsi\u002B0x10]\n        test     rax, rax\n-       je       G_M32433_IG35\n\u002B       je       G_M32433_IG32\n \t\t\t\t\t\t;; size=94 bbWeight=1 PerfScore 18.50\n-G_M32433_IG26:\n\u002BG_M32433_IG23:\n        mov      rdi, rax\n \t\t\t\t\t\t;; size=3 bbWeight=0.80 PerfScore 0.20\n-G_M32433_IG27:\n\u002BG_M32433_IG24:\n        mov      rsi, qword ptr [rdi\u002B0x18]\n        mov      rax, qword ptr [rsi\u002B0x10]\n        test     rax, rax\n-       je       G_M32433_IG36\n\u002B       je       G_M32433_IG33\n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.25\n-G_M32433_IG28:\n\u002BG_M32433_IG25:\n        mov      rdi, rax\n \t\t\t\t\t\t;; size=3 bbWeight=0.80 PerfScore 0.20\n-G_M32433_IG29:\n\u002BG_M32433_IG26:\n        lea      rsi, [rbp-0xD0]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.__Canon,System.__Canon]](byref)\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.__Canon,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA8]\n        test     rax, rax\n-       jne      SHORT G_M32433_IG31\n\u002B       jne      SHORT G_M32433_IG28\n \t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 6.00\n-G_M32433_IG30:\n\u002BG_M32433_IG27:\n        lea      rdi, [rbp-0xA8]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M32433_IG31:\n\u002BG_M32433_IG28:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M32433_IG32:\n-       add      rsp, 248\n\u002BG_M32433_IG29:\n\u002B       add      rsp, 232\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -344,37 \u002B324,37 @@ G_M32433_IG32:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M32433_IG33:\n\u002BG_M32433_IG30:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M32433_IG24\n\u002B       jmp      G_M32433_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M32433_IG34:\n\u002BG_M32433_IG31:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M32433_IG25\n\u002B       jmp      G_M32433_IG22\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M32433_IG35:\n\u002BG_M32433_IG32:\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M32433_IG27\n\u002B       jmp      G_M32433_IG24\n \t\t\t\t\t\t;; size=30 bbWeight=0.20 PerfScore 1.15\n-G_M32433_IG36:\n\u002BG_M32433_IG33:\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M32433_IG29\n\u002B       jmp      G_M32433_IG26\n \t\t\t\t\t\t;; size=30 bbWeight=0.20 PerfScore 1.15\n-G_M32433_IG37:\n\u002BG_M32433_IG34:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -382,13 \u002B362,13 @@ G_M32433_IG37:\n        mov      rdi, rax\n        jmp      G_M32433_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M32433_IG38:\n\u002BG_M32433_IG35:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M32433_IG39:\n\u002BG_M32433_IG36:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -401,5 \u002B381,5 @@ G_M32433_IG39:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1094, prolog size 59, PerfScore 163.95, instruction count 241, allocated bytes for code 1094 (MethodHash=cca7814e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollectionAsync[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 1031, prolog size 59, PerfScore 154.57, instruction count 227, allocated bytes for code 1031 (MethodHash=cca7814e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollectionAsync[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1094,"DiffBytes":1031},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.MoneyManagement.ReceivedCreditService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.ReceivedCreditListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.ReceivedCredit]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.MoneyManagement.ReceivedCreditService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.ReceivedCreditListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.ReceivedCredit]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.MoneyManagement.ReceivedCreditService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.MoneyManagement.ReceivedCreditListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.MoneyManagement.ReceivedCreditListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.ReceivedCredit]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.ReceivedCredit]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.ReceivedCredit]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.ReceivedCredit]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M59295_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M59295_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/money_management/received_credits\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M59295_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M59295_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.ReceivedCredit]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M59295_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M59295_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M59295_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.ReceivedCredit]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M59295_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M59295_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=ce241860) for method Stripe.V2.MoneyManagement.ReceivedCreditService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.ReceivedCreditListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.ReceivedCredit]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=ce241860) for method Stripe.V2.MoneyManagement.ReceivedCreditService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.ReceivedCreditListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.ReceivedCredit]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollectionAsync[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"1,094 -\u003E 1,031 bytes (-63)","ExtraInfo":null,"Diff":"@@ -10,18 \u002B10,18 @@\n ;\n ;  V00 this         [V00,T03] (  5,  5   )     ref  -\u003E  r14         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]\u003E\n ;  V01 TypeCtx      [V01,T01] (  9,  6.60)    long  -\u003E  r15         single-def\n-;  V02 arg1         [V02,T06] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V02 arg1         [V02,T05] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V03 arg2         [V03,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.__Canon,int]\u003E\n ;  V04 arg3         [V04,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T30] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n\u002B;  V06 loc0         [V06,T29] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n-;  V08 loc2         [V08,T31] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n-;  V09 loc3         [V09,T29] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V08 loc2         [V08,T30] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n\u002B;  V09 loc3         [V09,T28] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V12 tmp2         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V13 tmp3         [V13,T37] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V13 tmp3         [V13,T36] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V14 tmp4         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;  V15 tmp5         [V15,T13] (  4,  4.40)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n ;* V16 tmp6         [V16    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -40,15 \u002B40,15 @@\n ;* V29 tmp19        [V29    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V30 tmp20        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V31 tmp21        [V31    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V32 tmp22        [V32,T28] (  3,  2   )     int  -\u003E  registers  \n-;  V33 tmp23        [V33,T05] (  4,  7   )     ref  -\u003E  [rbp-0xD8]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V34 tmp24        [V34    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V35 tmp25        [V35,T26] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V36 tmp26        [V36,T27] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V32 tmp22        [V32,T27] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V33 tmp23        [V33,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V34 tmp24        [V34    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V35 tmp25        [V35,T26] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V38 tmp28        [V38,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V39 tmp29        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V40 tmp30        [V40,T34] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V40 tmp30        [V40,T33] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V41 tmp31        [V41    ] ( 11, 10.50)  struct (88) [rbp-0xD0]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.__Canon,System.__Canon]\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V43 tmp33        [V43    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n@@ -57,13 \u002B57,13 @@\n ;* V46 tmp36        [V46    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;  V47 tmp37        [V47,T20] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V48 tmp38        [V48,T25] (  4,  3.50)     ref  -\u003E  rax        \n-;  V49 tmp39        [V49,T21] (  2,  2   )     ref  -\u003E  [rbp-0xE0]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V50 tmp40        [V50,T32] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V51 tmp41        [V51,T33] (  2,  2   )    long  -\u003E  rax         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V49 tmp39        [V49,T21] (  2,  2   )     ref  -\u003E  [rbp-0xD8]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V50 tmp40        [V50,T31] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V51 tmp41        [V51,T32] (  2,  2   )    long  -\u003E  rax         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V52 tmp42        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V23._name (fldOffset=0x0)\u0022 P-DEP\n ;* V53 tmp43        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V23._value (fldOffset=0x8)\u0022 P-DEP\n-;  V54 tmp44        [V54,T35] (  2,  1   )     ref  -\u003E  rax         \u0022field V24._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V55 tmp45        [V55,T36] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V24._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V54 tmp44        [V54,T34] (  2,  1   )     ref  -\u003E  rax         \u0022field V24._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V55 tmp45        [V55,T35] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V24._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V56 tmp46        [V56    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V44.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;  V57 tmp47        [V57,T22] (  2,  4   )    long  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V58 tmp48        [V58,T23] (  2,  4   )    long  -\u003E  rsi         \u0022argument with side effect\u0022\n@@ -79,7 \u002B79,7 @@\n ;  V68 rat7         [V68,T19] (  3,  4   )    long  -\u003E  rdi         \u0022runtime lookup\u0022\n ;  V69 rat8         [V69,T11] (  3,  5.60)    long  -\u003E  rax         \u0022fgMakeTemp is creating a new local variable\u0022\n ;\n-; Lcl frame size = 248\n\u002B; Lcl frame size = 232\n \n G_M64561_IG01:\n        push     rbp\n@@ -88,14 \u002B88,14 @@ G_M64561_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 248\n-       lea      rbp, [rsp\u002B0x120]\n\u002B       sub      rsp, 232\n\u002B       lea      rbp, [rsp\u002B0x110]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0xD0], zmm8\n        vmovdqu32 zmmword ptr [rbp-0x90], zmm8\n        vmovdqu  ymmword ptr [rbp-0x50], ymm8\n        mov      qword ptr [rbp-0x30], rsi\n-       mov      gword ptr [rbp-0xE0], r9\n\u002B       mov      gword ptr [rbp-0xD8], r9\n        mov      r14, rdi\n        mov      r15, rsi\n        mov      r12, rdx\n@@ -111,7 \u002B111,7 @@ G_M64561_IG02:\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M64561_IG37\n\u002B       je       G_M64561_IG34\n \t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 9.25\n G_M64561_IG03:\n        mov      rsi, r13\n@@ -161,90 \u002B161,70 @@ G_M64561_IG05:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,int]:Render(MongoDB.Driver.RenderArgs\u00601[System.__Canon]):MongoDB.Driver.RenderedPipelineDefinition\u00601[int]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0xD8], rax\n-       test     rax, rax\n-       je       G_M64561_IG38\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n... diff truncated; middle omitted ...\n\u002B       je       SHORT G_M64561_IG13\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M64561_IG13:\n\u002BG_M64561_IG10:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M64561_IG16\n\u002B       jne      SHORT G_M64561_IG13\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M64561_IG14:\n\u002BG_M64561_IG11:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M64561_IG16\n\u002B       je       SHORT G_M64561_IG13\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M64561_IG15:\n\u002BG_M64561_IG12:\n        mov      ecx, 1\n-       jmp      SHORT G_M64561_IG23\n\u002B       jmp      SHORT G_M64561_IG20\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M64561_IG16:\n\u002BG_M64561_IG13:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M64561_IG21\n\u002B       je       SHORT G_M64561_IG18\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M64561_IG17:\n\u002BG_M64561_IG14:\n        test     rax, rax\n-       je       SHORT G_M64561_IG19\n\u002B       je       SHORT G_M64561_IG16\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M64561_IG18:\n\u002BG_M64561_IG15:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M64561_IG20\n\u002B       je       SHORT G_M64561_IG17\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M64561_IG19:\n\u002BG_M64561_IG16:\n        xor      ecx, ecx\n-       jmp      SHORT G_M64561_IG22\n\u002B       jmp      SHORT G_M64561_IG19\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M64561_IG20:\n\u002BG_M64561_IG17:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -252,30 \u002B232,30 @@ G_M64561_IG20:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M64561_IG22\n\u002B       jmp      SHORT G_M64561_IG19\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M64561_IG21:\n\u002BG_M64561_IG18:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M64561_IG22:\n\u002BG_M64561_IG19:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M64561_IG23:\n\u002BG_M64561_IG20:\n        mov      dword ptr [rbp-0x6C], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M64561_IG39\n\u002B       je       G_M64561_IG36\n        cmp      dword ptr [rbp-0x6C], 0\n-       je       G_M64561_IG39\n\u002B       je       G_M64561_IG36\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rsi, qword ptr [rdi\u002B0x20]\n        test     rsi, rsi\n-       je       G_M64561_IG33\n\u002B       je       G_M64561_IG30\n \t\t\t\t\t\t;; size=55 bbWeight=1 PerfScore 14.75\n-G_M64561_IG24:\n\u002BG_M64561_IG21:\n        mov      rdi, r14\n        mov      rdx, r13\n        mov      rcx, rbx\n@@ -285,9 \u002B265,9 @@ G_M64561_IG24:\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x28]\n        test     rdi, rdi\n-       je       G_M64561_IG34\n\u002B       je       G_M64561_IG31\n \t\t\t\t\t\t;; size=41 bbWeight=1 PerfScore 9.50\n-G_M64561_IG25:\n\u002BG_M64561_IG22:\n        movzx    rsi, byte  ptr [rbx\u002B0x60]\n        mov      rax, qword ptr [rbx\u002B0x68]\n        xor      ecx, ecx\n@@ -297,45 \u002B277,45 @@ G_M64561_IG25:\n        mov      gword ptr [rbp-0xC0], r13\n        mov      byte  ptr [rbp-0xA0], sil\n        mov      qword ptr [rbp-0x98], rax\n-       mov      rbx, gword ptr [rbp-0xE0]\n\u002B       mov      rbx, gword ptr [rbp-0xD8]\n        mov      gword ptr [rbp-0x90], rbx\n        mov      dword ptr [rbp-0xB0], -1\n        mov      rsi, qword ptr [rdi\u002B0x18]\n        mov      rax, qword ptr [rsi\u002B0x10]\n        test     rax, rax\n-       je       G_M64561_IG35\n\u002B       je       G_M64561_IG32\n \t\t\t\t\t\t;; size=94 bbWeight=1 PerfScore 18.50\n-G_M64561_IG26:\n\u002BG_M64561_IG23:\n        mov      rdi, rax\n \t\t\t\t\t\t;; size=3 bbWeight=0.80 PerfScore 0.20\n-G_M64561_IG27:\n\u002BG_M64561_IG24:\n        mov      rsi, qword ptr [rdi\u002B0x18]\n        mov      rax, qword ptr [rsi\u002B0x10]\n        test     rax, rax\n-       je       G_M64561_IG36\n\u002B       je       G_M64561_IG33\n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.25\n-G_M64561_IG28:\n\u002BG_M64561_IG25:\n        mov      rdi, rax\n \t\t\t\t\t\t;; size=3 bbWeight=0.80 PerfScore 0.20\n-G_M64561_IG29:\n\u002BG_M64561_IG26:\n        lea      rsi, [rbp-0xD0]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.__Canon,System.__Canon]](byref)\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.__Canon,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA8]\n        test     rax, rax\n-       jne      SHORT G_M64561_IG31\n\u002B       jne      SHORT G_M64561_IG28\n \t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 6.00\n-G_M64561_IG30:\n\u002BG_M64561_IG27:\n        lea      rdi, [rbp-0xA8]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M64561_IG31:\n\u002BG_M64561_IG28:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M64561_IG32:\n-       add      rsp, 248\n\u002BG_M64561_IG29:\n\u002B       add      rsp, 232\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -344,37 \u002B324,37 @@ G_M64561_IG32:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M64561_IG33:\n\u002BG_M64561_IG30:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M64561_IG24\n\u002B       jmp      G_M64561_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M64561_IG34:\n\u002BG_M64561_IG31:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M64561_IG25\n\u002B       jmp      G_M64561_IG22\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M64561_IG35:\n\u002BG_M64561_IG32:\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M64561_IG27\n\u002B       jmp      G_M64561_IG24\n \t\t\t\t\t\t;; size=30 bbWeight=0.20 PerfScore 1.15\n-G_M64561_IG36:\n\u002BG_M64561_IG33:\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M64561_IG29\n\u002B       jmp      G_M64561_IG26\n \t\t\t\t\t\t;; size=30 bbWeight=0.20 PerfScore 1.15\n-G_M64561_IG37:\n\u002BG_M64561_IG34:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -382,13 \u002B362,13 @@ G_M64561_IG37:\n        mov      rdi, rax\n        jmp      G_M64561_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M64561_IG38:\n\u002BG_M64561_IG35:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M64561_IG39:\n\u002BG_M64561_IG36:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -401,5 \u002B381,5 @@ G_M64561_IG39:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1094, prolog size 59, PerfScore 163.95, instruction count 241, allocated bytes for code 1094 (MethodHash=c9ac03ce) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollectionAsync[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 1031, prolog size 59, PerfScore 154.57, instruction count 227, allocated bytes for code 1031 (MethodHash=c9ac03ce) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollectionAsync[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1094,"DiffBytes":1031},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.MoneyManagement.ReceivedDebitMandateService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.ReceivedDebitMandateListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.ReceivedDebitMandate]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.MoneyManagement.ReceivedDebitMandateService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.ReceivedDebitMandateListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.ReceivedDebitMandate]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.MoneyManagement.ReceivedDebitMandateService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.MoneyManagement.ReceivedDebitMandateListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.MoneyManagement.ReceivedDebitMandateListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.ReceivedDebitMandate]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.ReceivedDebitMandate]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.ReceivedDebitMandate]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.ReceivedDebitMandate]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M15290_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M15290_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/money_management/received_debit_mandates\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M15290_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M15290_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.ReceivedDebitMandate]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M15290_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M15290_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M15290_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.ReceivedDebitMandate]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M15290_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M15290_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=5b23c445) for method Stripe.V2.MoneyManagement.ReceivedDebitMandateService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.ReceivedDebitMandateListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.ReceivedDebitMandate]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=5b23c445) for method Stripe.V2.MoneyManagement.ReceivedDebitMandateService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.ReceivedDebitMandateListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.ReceivedDebitMandate]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollectionAsync[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"1,094 -\u003E 1,031 bytes (-63)","ExtraInfo":null,"Diff":"@@ -10,18 \u002B10,18 @@\n ;\n ;  V00 this         [V00,T03] (  5,  5   )     ref  -\u003E  r14         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]\u003E\n ;  V01 TypeCtx      [V01,T01] (  9,  6.60)    long  -\u003E  r15         single-def\n-;  V02 arg1         [V02,T06] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V02 arg1         [V02,T05] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V03 arg2         [V03,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.__Canon,long]\u003E\n ;  V04 arg3         [V04,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T30] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n\u002B;  V06 loc0         [V06,T29] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n-;  V08 loc2         [V08,T31] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n-;  V09 loc3         [V09,T29] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V08 loc2         [V08,T30] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n\u002B;  V09 loc3         [V09,T28] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V12 tmp2         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V13 tmp3         [V13,T37] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V13 tmp3         [V13,T36] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V14 tmp4         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;  V15 tmp5         [V15,T13] (  4,  4.40)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n ;* V16 tmp6         [V16    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -40,15 \u002B40,15 @@\n ;* V29 tmp19        [V29    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V30 tmp20        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V31 tmp21        [V31    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V32 tmp22        [V32,T28] (  3,  2   )     int  -\u003E  registers  \n-;  V33 tmp23        [V33,T05] (  4,  7   )     ref  -\u003E  [rbp-0xD8]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V34 tmp24        [V34    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V35 tmp25        [V35,T26] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V36 tmp26        [V36,T27] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V32 tmp22        [V32,T27] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V33 tmp23        [V33,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V34 tmp24        [V34    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V35 tmp25        [V35,T26] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V38 tmp28        [V38,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V39 tmp29        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V40 tmp30        [V40,T34] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V40 tmp30        [V40,T33] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V41 tmp31        [V41    ] ( 11, 10.50)  struct (88) [rbp-0xD0]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.__Canon,System.__Canon]\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V43 tmp33        [V43    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n@@ -57,13 \u002B57,13 @@\n ;* V46 tmp36        [V46    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;  V47 tmp37        [V47,T20] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V48 tmp38        [V48,T25] (  4,  3.50)     ref  -\u003E  rax        \n-;  V49 tmp39        [V49,T21] (  2,  2   )     ref  -\u003E  [rbp-0xE0]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V50 tmp40        [V50,T32] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V51 tmp41        [V51,T33] (  2,  2   )    long  -\u003E  rax         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V49 tmp39        [V49,T21] (  2,  2   )     ref  -\u003E  [rbp-0xD8]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V50 tmp40        [V50,T31] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V51 tmp41        [V51,T32] (  2,  2   )    long  -\u003E  rax         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V52 tmp42        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V23._name (fldOffset=0x0)\u0022 P-DEP\n ;* V53 tmp43        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V23._value (fldOffset=0x8)\u0022 P-DEP\n-;  V54 tmp44        [V54,T35] (  2,  1   )     ref  -\u003E  rax         \u0022field V24._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V55 tmp45        [V55,T36] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V24._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V54 tmp44        [V54,T34] (  2,  1   )     ref  -\u003E  rax         \u0022field V24._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V55 tmp45        [V55,T35] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V24._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V56 tmp46        [V56    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V44.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;  V57 tmp47        [V57,T22] (  2,  4   )    long  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V58 tmp48        [V58,T23] (  2,  4   )    long  -\u003E  rsi         \u0022argument with side effect\u0022\n@@ -79,7 \u002B79,7 @@\n ;  V68 rat7         [V68,T19] (  3,  4   )    long  -\u003E  rdi         \u0022runtime lookup\u0022\n ;  V69 rat8         [V69,T11] (  3,  5.60)    long  -\u003E  rax         \u0022fgMakeTemp is creating a new local variable\u0022\n ;\n-; Lcl frame size = 248\n\u002B; Lcl frame size = 232\n \n G_M56273_IG01:\n        push     rbp\n@@ -88,14 \u002B88,14 @@ G_M56273_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 248\n-       lea      rbp, [rsp\u002B0x120]\n\u002B       sub      rsp, 232\n\u002B       lea      rbp, [rsp\u002B0x110]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0xD0], zmm8\n        vmovdqu32 zmmword ptr [rbp-0x90], zmm8\n        vmovdqu  ymmword ptr [rbp-0x50], ymm8\n        mov      qword ptr [rbp-0x30], rsi\n-       mov      gword ptr [rbp-0xE0], r9\n\u002B       mov      gword ptr [rbp-0xD8], r9\n        mov      r14, rdi\n        mov      r15, rsi\n        mov      r12, rdx\n@@ -111,7 \u002B111,7 @@ G_M56273_IG02:\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M56273_IG37\n\u002B       je       G_M56273_IG34\n \t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 9.25\n G_M56273_IG03:\n        mov      rsi, r13\n@@ -161,90 \u002B161,70 @@ G_M56273_IG05:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,long]:Render(MongoDB.Driver.RenderArgs\u00601[System.__Canon]):MongoDB.Driver.RenderedPipelineDefinition\u00601[long]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0xD8], rax\n-       test     rax, rax\n-       je       G_M56273_IG38\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n... diff truncated; middle omitted ...\n\u002B       je       SHORT G_M56273_IG13\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M56273_IG13:\n\u002BG_M56273_IG10:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M56273_IG16\n\u002B       jne      SHORT G_M56273_IG13\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M56273_IG14:\n\u002BG_M56273_IG11:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M56273_IG16\n\u002B       je       SHORT G_M56273_IG13\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M56273_IG15:\n\u002BG_M56273_IG12:\n        mov      ecx, 1\n-       jmp      SHORT G_M56273_IG23\n\u002B       jmp      SHORT G_M56273_IG20\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M56273_IG16:\n\u002BG_M56273_IG13:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M56273_IG21\n\u002B       je       SHORT G_M56273_IG18\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M56273_IG17:\n\u002BG_M56273_IG14:\n        test     rax, rax\n-       je       SHORT G_M56273_IG19\n\u002B       je       SHORT G_M56273_IG16\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M56273_IG18:\n\u002BG_M56273_IG15:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M56273_IG20\n\u002B       je       SHORT G_M56273_IG17\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M56273_IG19:\n\u002BG_M56273_IG16:\n        xor      ecx, ecx\n-       jmp      SHORT G_M56273_IG22\n\u002B       jmp      SHORT G_M56273_IG19\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M56273_IG20:\n\u002BG_M56273_IG17:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -252,30 \u002B232,30 @@ G_M56273_IG20:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M56273_IG22\n\u002B       jmp      SHORT G_M56273_IG19\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M56273_IG21:\n\u002BG_M56273_IG18:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M56273_IG22:\n\u002BG_M56273_IG19:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M56273_IG23:\n\u002BG_M56273_IG20:\n        mov      dword ptr [rbp-0x6C], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M56273_IG39\n\u002B       je       G_M56273_IG36\n        cmp      dword ptr [rbp-0x6C], 0\n-       je       G_M56273_IG39\n\u002B       je       G_M56273_IG36\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rsi, qword ptr [rdi\u002B0x20]\n        test     rsi, rsi\n-       je       G_M56273_IG33\n\u002B       je       G_M56273_IG30\n \t\t\t\t\t\t;; size=55 bbWeight=1 PerfScore 14.75\n-G_M56273_IG24:\n\u002BG_M56273_IG21:\n        mov      rdi, r14\n        mov      rdx, r13\n        mov      rcx, rbx\n@@ -285,9 \u002B265,9 @@ G_M56273_IG24:\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x28]\n        test     rdi, rdi\n-       je       G_M56273_IG34\n\u002B       je       G_M56273_IG31\n \t\t\t\t\t\t;; size=41 bbWeight=1 PerfScore 9.50\n-G_M56273_IG25:\n\u002BG_M56273_IG22:\n        movzx    rsi, byte  ptr [rbx\u002B0x60]\n        mov      rax, qword ptr [rbx\u002B0x68]\n        xor      ecx, ecx\n@@ -297,45 \u002B277,45 @@ G_M56273_IG25:\n        mov      gword ptr [rbp-0xC0], r13\n        mov      byte  ptr [rbp-0xA0], sil\n        mov      qword ptr [rbp-0x98], rax\n-       mov      rbx, gword ptr [rbp-0xE0]\n\u002B       mov      rbx, gword ptr [rbp-0xD8]\n        mov      gword ptr [rbp-0x90], rbx\n        mov      dword ptr [rbp-0xB0], -1\n        mov      rsi, qword ptr [rdi\u002B0x18]\n        mov      rax, qword ptr [rsi\u002B0x10]\n        test     rax, rax\n-       je       G_M56273_IG35\n\u002B       je       G_M56273_IG32\n \t\t\t\t\t\t;; size=94 bbWeight=1 PerfScore 18.50\n-G_M56273_IG26:\n\u002BG_M56273_IG23:\n        mov      rdi, rax\n \t\t\t\t\t\t;; size=3 bbWeight=0.80 PerfScore 0.20\n-G_M56273_IG27:\n\u002BG_M56273_IG24:\n        mov      rsi, qword ptr [rdi\u002B0x18]\n        mov      rax, qword ptr [rsi\u002B0x10]\n        test     rax, rax\n-       je       G_M56273_IG36\n\u002B       je       G_M56273_IG33\n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.25\n-G_M56273_IG28:\n\u002BG_M56273_IG25:\n        mov      rdi, rax\n \t\t\t\t\t\t;; size=3 bbWeight=0.80 PerfScore 0.20\n-G_M56273_IG29:\n\u002BG_M56273_IG26:\n        lea      rsi, [rbp-0xD0]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.__Canon,System.__Canon]](byref)\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.__Canon,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA8]\n        test     rax, rax\n-       jne      SHORT G_M56273_IG31\n\u002B       jne      SHORT G_M56273_IG28\n \t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 6.00\n-G_M56273_IG30:\n\u002BG_M56273_IG27:\n        lea      rdi, [rbp-0xA8]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M56273_IG31:\n\u002BG_M56273_IG28:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M56273_IG32:\n-       add      rsp, 248\n\u002BG_M56273_IG29:\n\u002B       add      rsp, 232\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -344,37 \u002B324,37 @@ G_M56273_IG32:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M56273_IG33:\n\u002BG_M56273_IG30:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M56273_IG24\n\u002B       jmp      G_M56273_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M56273_IG34:\n\u002BG_M56273_IG31:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M56273_IG25\n\u002B       jmp      G_M56273_IG22\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M56273_IG35:\n\u002BG_M56273_IG32:\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M56273_IG27\n\u002B       jmp      G_M56273_IG24\n \t\t\t\t\t\t;; size=30 bbWeight=0.20 PerfScore 1.15\n-G_M56273_IG36:\n\u002BG_M56273_IG33:\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M56273_IG29\n\u002B       jmp      G_M56273_IG26\n \t\t\t\t\t\t;; size=30 bbWeight=0.20 PerfScore 1.15\n-G_M56273_IG37:\n\u002BG_M56273_IG34:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -382,13 \u002B362,13 @@ G_M56273_IG37:\n        mov      rdi, rax\n        jmp      G_M56273_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M56273_IG38:\n\u002BG_M56273_IG35:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M56273_IG39:\n\u002BG_M56273_IG36:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -401,5 \u002B381,5 @@ G_M56273_IG39:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1094, prolog size 59, PerfScore 163.95, instruction count 241, allocated bytes for code 1094 (MethodHash=e6dc242e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollectionAsync[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 1031, prolog size 59, PerfScore 154.57, instruction count 227, allocated bytes for code 1031 (MethodHash=e6dc242e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollectionAsync[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1094,"DiffBytes":1031},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.MoneyManagement.ReceivedDebitService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.ReceivedDebitListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.ReceivedDebit]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.MoneyManagement.ReceivedDebitService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.ReceivedDebitListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.ReceivedDebit]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.MoneyManagement.ReceivedDebitService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.MoneyManagement.ReceivedDebitListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.MoneyManagement.ReceivedDebitListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.ReceivedDebit]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.ReceivedDebit]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.ReceivedDebit]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.ReceivedDebit]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M64748_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M64748_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/money_management/received_debits\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M64748_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M64748_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.ReceivedDebit]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M64748_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M64748_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M64748_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.ReceivedDebit]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M64748_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M64748_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=66f50313) for method Stripe.V2.MoneyManagement.ReceivedDebitService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.ReceivedDebitListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.ReceivedDebit]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=66f50313) for method Stripe.V2.MoneyManagement.ReceivedDebitService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.ReceivedDebitListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.ReceivedDebit]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollectionAsync[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"1,094 -\u003E 1,031 bytes (-63)","ExtraInfo":null,"Diff":"@@ -10,18 \u002B10,18 @@\n ;\n ;  V00 this         [V00,T03] (  5,  5   )     ref  -\u003E  r14         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]\u003E\n ;  V01 TypeCtx      [V01,T01] (  9,  6.60)    long  -\u003E  r15         single-def\n-;  V02 arg1         [V02,T06] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V02 arg1         [V02,T05] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V03 arg2         [V03,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.__Canon,short]\u003E\n ;  V04 arg3         [V04,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T30] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n\u002B;  V06 loc0         [V06,T29] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n-;  V08 loc2         [V08,T31] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n-;  V09 loc3         [V09,T29] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V08 loc2         [V08,T30] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n\u002B;  V09 loc3         [V09,T28] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V12 tmp2         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V13 tmp3         [V13,T37] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V13 tmp3         [V13,T36] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V14 tmp4         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;  V15 tmp5         [V15,T13] (  4,  4.40)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n ;* V16 tmp6         [V16    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -40,15 \u002B40,15 @@\n ;* V29 tmp19        [V29    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V30 tmp20        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V31 tmp21        [V31    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V32 tmp22        [V32,T28] (  3,  2   )     int  -\u003E  registers  \n-;  V33 tmp23        [V33,T05] (  4,  7   )     ref  -\u003E  [rbp-0xD8]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V34 tmp24        [V34    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V35 tmp25        [V35,T26] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V36 tmp26        [V36,T27] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V32 tmp22        [V32,T27] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V33 tmp23        [V33,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V34 tmp24        [V34    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V35 tmp25        [V35,T26] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V38 tmp28        [V38,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V39 tmp29        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V40 tmp30        [V40,T34] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V40 tmp30        [V40,T33] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V41 tmp31        [V41    ] ( 11, 10.50)  struct (88) [rbp-0xD0]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.__Canon,System.__Canon]\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V43 tmp33        [V43    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n@@ -57,13 \u002B57,13 @@\n ;* V46 tmp36        [V46    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;  V47 tmp37        [V47,T20] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V48 tmp38        [V48,T25] (  4,  3.50)     ref  -\u003E  rax        \n-;  V49 tmp39        [V49,T21] (  2,  2   )     ref  -\u003E  [rbp-0xE0]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V50 tmp40        [V50,T32] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V51 tmp41        [V51,T33] (  2,  2   )    long  -\u003E  rax         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V49 tmp39        [V49,T21] (  2,  2   )     ref  -\u003E  [rbp-0xD8]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V50 tmp40        [V50,T31] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V16.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V51 tmp41        [V51,T32] (  2,  2   )    long  -\u003E  rax         single-def \u0022field V16.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V52 tmp42        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V23._name (fldOffset=0x0)\u0022 P-DEP\n ;* V53 tmp43        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V23._value (fldOffset=0x8)\u0022 P-DEP\n-;  V54 tmp44        [V54,T35] (  2,  1   )     ref  -\u003E  rax         \u0022field V24._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V55 tmp45        [V55,T36] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V24._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V54 tmp44        [V54,T34] (  2,  1   )     ref  -\u003E  rax         \u0022field V24._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V55 tmp45        [V55,T35] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V24._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V56 tmp46        [V56    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V44.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;  V57 tmp47        [V57,T22] (  2,  4   )    long  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V58 tmp48        [V58,T23] (  2,  4   )    long  -\u003E  rsi         \u0022argument with side effect\u0022\n@@ -79,7 \u002B79,7 @@\n ;  V68 rat7         [V68,T19] (  3,  4   )    long  -\u003E  rdi         \u0022runtime lookup\u0022\n ;  V69 rat8         [V69,T11] (  3,  5.60)    long  -\u003E  rax         \u0022fgMakeTemp is creating a new local variable\u0022\n ;\n-; Lcl frame size = 248\n\u002B; Lcl frame size = 232\n \n G_M60529_IG01:\n        push     rbp\n@@ -88,14 \u002B88,14 @@ G_M60529_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 248\n-       lea      rbp, [rsp\u002B0x120]\n\u002B       sub      rsp, 232\n\u002B       lea      rbp, [rsp\u002B0x110]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0xD0], zmm8\n        vmovdqu32 zmmword ptr [rbp-0x90], zmm8\n        vmovdqu  ymmword ptr [rbp-0x50], ymm8\n        mov      qword ptr [rbp-0x30], rsi\n-       mov      gword ptr [rbp-0xE0], r9\n\u002B       mov      gword ptr [rbp-0xD8], r9\n        mov      r14, rdi\n        mov      r15, rsi\n        mov      r12, rdx\n@@ -111,7 \u002B111,7 @@ G_M60529_IG02:\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M60529_IG37\n\u002B       je       G_M60529_IG34\n \t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 9.25\n G_M60529_IG03:\n        mov      rsi, r13\n@@ -161,90 \u002B161,70 @@ G_M60529_IG05:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,short]:Render(MongoDB.Driver.RenderArgs\u00601[System.__Canon]):MongoDB.Driver.RenderedPipelineDefinition\u00601[short]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0xD8], rax\n-       test     rax, rax\n-       je       G_M60529_IG38\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n... diff truncated; middle omitted ...\n\u002B       je       SHORT G_M60529_IG13\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M60529_IG13:\n\u002BG_M60529_IG10:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M60529_IG16\n\u002B       jne      SHORT G_M60529_IG13\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M60529_IG14:\n\u002BG_M60529_IG11:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M60529_IG16\n\u002B       je       SHORT G_M60529_IG13\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M60529_IG15:\n\u002BG_M60529_IG12:\n        mov      ecx, 1\n-       jmp      SHORT G_M60529_IG23\n\u002B       jmp      SHORT G_M60529_IG20\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M60529_IG16:\n\u002BG_M60529_IG13:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M60529_IG21\n\u002B       je       SHORT G_M60529_IG18\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M60529_IG17:\n\u002BG_M60529_IG14:\n        test     rax, rax\n-       je       SHORT G_M60529_IG19\n\u002B       je       SHORT G_M60529_IG16\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M60529_IG18:\n\u002BG_M60529_IG15:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M60529_IG20\n\u002B       je       SHORT G_M60529_IG17\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M60529_IG19:\n\u002BG_M60529_IG16:\n        xor      ecx, ecx\n-       jmp      SHORT G_M60529_IG22\n\u002B       jmp      SHORT G_M60529_IG19\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M60529_IG20:\n\u002BG_M60529_IG17:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -252,30 \u002B232,30 @@ G_M60529_IG20:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M60529_IG22\n\u002B       jmp      SHORT G_M60529_IG19\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M60529_IG21:\n\u002BG_M60529_IG18:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M60529_IG22:\n\u002BG_M60529_IG19:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M60529_IG23:\n\u002BG_M60529_IG20:\n        mov      dword ptr [rbp-0x6C], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M60529_IG39\n\u002B       je       G_M60529_IG36\n        cmp      dword ptr [rbp-0x6C], 0\n-       je       G_M60529_IG39\n\u002B       je       G_M60529_IG36\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rsi, qword ptr [rdi\u002B0x20]\n        test     rsi, rsi\n-       je       G_M60529_IG33\n\u002B       je       G_M60529_IG30\n \t\t\t\t\t\t;; size=55 bbWeight=1 PerfScore 14.75\n-G_M60529_IG24:\n\u002BG_M60529_IG21:\n        mov      rdi, r14\n        mov      rdx, r13\n        mov      rcx, rbx\n@@ -285,9 \u002B265,9 @@ G_M60529_IG24:\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x28]\n        test     rdi, rdi\n-       je       G_M60529_IG34\n\u002B       je       G_M60529_IG31\n \t\t\t\t\t\t;; size=41 bbWeight=1 PerfScore 9.50\n-G_M60529_IG25:\n\u002BG_M60529_IG22:\n        movzx    rsi, byte  ptr [rbx\u002B0x60]\n        mov      rax, qword ptr [rbx\u002B0x68]\n        xor      ecx, ecx\n@@ -297,45 \u002B277,45 @@ G_M60529_IG25:\n        mov      gword ptr [rbp-0xC0], r13\n        mov      byte  ptr [rbp-0xA0], sil\n        mov      qword ptr [rbp-0x98], rax\n-       mov      rbx, gword ptr [rbp-0xE0]\n\u002B       mov      rbx, gword ptr [rbp-0xD8]\n        mov      gword ptr [rbp-0x90], rbx\n        mov      dword ptr [rbp-0xB0], -1\n        mov      rsi, qword ptr [rdi\u002B0x18]\n        mov      rax, qword ptr [rsi\u002B0x10]\n        test     rax, rax\n-       je       G_M60529_IG35\n\u002B       je       G_M60529_IG32\n \t\t\t\t\t\t;; size=94 bbWeight=1 PerfScore 18.50\n-G_M60529_IG26:\n\u002BG_M60529_IG23:\n        mov      rdi, rax\n \t\t\t\t\t\t;; size=3 bbWeight=0.80 PerfScore 0.20\n-G_M60529_IG27:\n\u002BG_M60529_IG24:\n        mov      rsi, qword ptr [rdi\u002B0x18]\n        mov      rax, qword ptr [rsi\u002B0x10]\n        test     rax, rax\n-       je       G_M60529_IG36\n\u002B       je       G_M60529_IG33\n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.25\n-G_M60529_IG28:\n\u002BG_M60529_IG25:\n        mov      rdi, rax\n \t\t\t\t\t\t;; size=3 bbWeight=0.80 PerfScore 0.20\n-G_M60529_IG29:\n\u002BG_M60529_IG26:\n        lea      rsi, [rbp-0xD0]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.__Canon,System.__Canon]](byref)\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.__Canon,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA8]\n        test     rax, rax\n-       jne      SHORT G_M60529_IG31\n\u002B       jne      SHORT G_M60529_IG28\n \t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 6.00\n-G_M60529_IG30:\n\u002BG_M60529_IG27:\n        lea      rdi, [rbp-0xA8]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M60529_IG31:\n\u002BG_M60529_IG28:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M60529_IG32:\n-       add      rsp, 248\n\u002BG_M60529_IG29:\n\u002B       add      rsp, 232\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -344,37 \u002B324,37 @@ G_M60529_IG32:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M60529_IG33:\n\u002BG_M60529_IG30:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M60529_IG24\n\u002B       jmp      G_M60529_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M60529_IG34:\n\u002BG_M60529_IG31:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M60529_IG25\n\u002B       jmp      G_M60529_IG22\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M60529_IG35:\n\u002BG_M60529_IG32:\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M60529_IG27\n\u002B       jmp      G_M60529_IG24\n \t\t\t\t\t\t;; size=30 bbWeight=0.20 PerfScore 1.15\n-G_M60529_IG36:\n\u002BG_M60529_IG33:\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M60529_IG29\n\u002B       jmp      G_M60529_IG26\n \t\t\t\t\t\t;; size=30 bbWeight=0.20 PerfScore 1.15\n-G_M60529_IG37:\n\u002BG_M60529_IG34:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -382,13 \u002B362,13 @@ G_M60529_IG37:\n        mov      rdi, rax\n        jmp      G_M60529_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M60529_IG38:\n\u002BG_M60529_IG35:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M60529_IG39:\n\u002BG_M60529_IG36:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -401,5 \u002B381,5 @@ G_M60529_IG39:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1094, prolog size 59, PerfScore 163.95, instruction count 241, allocated bytes for code 1094 (MethodHash=9eef138e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollectionAsync[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 1031, prolog size 59, PerfScore 154.57, instruction count 227, allocated bytes for code 1031 (MethodHash=9eef138e) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:AggregateToCollectionAsync[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1094,"DiffBytes":1031},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.MoneyManagement.TransactionEntryService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.TransactionEntryListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.TransactionEntry]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.MoneyManagement.TransactionEntryService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.TransactionEntryListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.TransactionEntry]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.MoneyManagement.TransactionEntryService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.MoneyManagement.TransactionEntryListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.MoneyManagement.TransactionEntryListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.TransactionEntry]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.TransactionEntry]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.TransactionEntry]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.TransactionEntry]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M12173_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M12173_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/money_management/transaction_entries\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M12173_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M12173_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.TransactionEntry]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M12173_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M12173_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M12173_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.TransactionEntry]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M12173_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M12173_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=b990d072) for method Stripe.V2.MoneyManagement.TransactionEntryService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.TransactionEntryListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.TransactionEntry]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=b990d072) for method Stripe.V2.MoneyManagement.TransactionEntryService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.TransactionEntryListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.TransactionEntry]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:Aggregate[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)","Category":"improvement","Description":"1,813 -\u003E 1,750 bytes (-63)","ExtraInfo":null,"Diff":"@@ -14,16 \u002B14,16 @@\n ;  V03 arg2         [V03,T04] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.__Canon]\u003E\n ;  V04 arg3         [V04,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T39] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n\u002B;  V06 loc0         [V06,T38] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n-;  V08 loc2         [V08,T40] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V09 loc3         [V09,T46] (  3,  1.50)     ref  -\u003E  [rbp-0x80]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V10 loc4         [V10,T47] (  3,  1.50)     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.__Canon]\u003E\n\u002B;  V08 loc2         [V08,T39] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V09 loc3         [V09,T45] (  3,  1.50)     ref  -\u003E  [rbp-0x80]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V10 loc4         [V10,T46] (  3,  1.50)     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.__Canon]\u003E\n ;  V11 OutArgs      [V11    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V12 tmp1         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V13 tmp2         [V13    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V14 tmp3         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V15 tmp4         [V15,T29] (  4,  2.20)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n\u002B;  V15 tmp4         [V15,T28] (  4,  2.20)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n ;* V16 tmp5         [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V17 tmp6         [V17    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V18 tmp7         [V18    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n@@ -44,22 \u002B44,22 @@\n ;* V33 tmp22        [V33    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V34 tmp23        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V35 tmp24        [V35    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V36 tmp25        [V36,T33] (  3,  2   )     int  -\u003E  rdi        \n-;  V37 tmp26        [V37,T06] (  4,  7   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V38 tmp27        [V38    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V39 tmp28        [V39,T17] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V40 tmp29        [V40,T18] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V36 tmp25        [V36,T32] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V37 tmp26        [V37,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V38 tmp27        [V38    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V39 tmp28        [V39,T17] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V40 tmp29        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V41 tmp30        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V42 tmp31        [V42,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V43 tmp32        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V44 tmp33        [V44,T45] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V44 tmp33        [V44,T44] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V45 tmp34        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V46 tmp35        [V46,T31] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V47 tmp36        [V47,T19] (  3,  3   )     ref  -\u003E  [rbp-0x98]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V46 tmp35        [V46,T30] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V47 tmp36        [V47,T18] (  3,  3   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V48 tmp37        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V49 tmp38        [V49,T08] ( 10,  5   )     ref  -\u003E  [rbp-0xA0]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;  V49 tmp38        [V49,T08] ( 10,  5   )     ref  -\u003E  [rbp-0x98]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V50 tmp39        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V51 tmp40        [V51,T09] ( 10,  5   )     ref  -\u003E  [rbp-0xA8]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;  V51 tmp40        [V51,T09] ( 10,  5   )     ref  -\u003E  [rbp-0xA0]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V52 tmp41        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V53 tmp42        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V54 tmp43        [V54    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -68,14 \u002B68,14 @@\n ;* V57 tmp46        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.__Canon]\u003E\n ;* V58 tmp47        [V58    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V59 tmp48        [V59    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V60 tmp49        [V60,T48] (  2,  1   )     ref  -\u003E  [rbp-0xB0]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V61 tmp50        [V61,T30] (  4,  2.20)    long  -\u003E  [rbp-0x78]  \u0022Inlining Arg\u0022\n\u002B;  V60 tmp49        [V60,T47] (  2,  1   )     ref  -\u003E  [rbp-0xA8]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V61 tmp50        [V61,T29] (  4,  2.20)    long  -\u003E  [rbp-0x78]  \u0022Inlining Arg\u0022\n ;* V62 tmp51        [V62    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V63 tmp52        [V63,T32] (  8,  2   )     ref  -\u003E  [rbp-0xB8]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V64 tmp53        [V64,T20] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V63 tmp52        [V63,T31] (  8,  2   )     ref  -\u003E  [rbp-0xB0]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V64 tmp53        [V64,T19] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V65 tmp54        [V65    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V66 tmp55        [V66,T49] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.__Canon]\u003E\n-;  V67 tmp56        [V67,T38] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V66 tmp55        [V66,T48] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.__Canon]\u003E\n\u002B;  V67 tmp56        [V67,T37] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V68 tmp57        [V68    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V69 tmp58        [V69,T10] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V70 tmp59        [V70    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -83,36 \u002B83,36 @@\n ;* V72 tmp61        [V72    ] (  0,  0   )     ref  -\u003E  zero-ref   \n... diff truncated; middle omitted ...\n\u002B\t\t\t\t\t\t;; size=77 bbWeight=0.50 PerfScore 9.62\n\u002BG_M3524_IG37:\n\u002B       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rdi, gword ptr [rsi\u002B0x10]\n\u002B       mov      rax, rdi\n\u002B       test     rax, rax\n\u002B       je       SHORT G_M3524_IG38\n        mov      rdi, rax\n        mov      esi, 1\n        mov      gword ptr [rbp-0xA0], rax\n@@ -474,35 \u002B470,19 @@ G_M3524_IG39:\n        call     [rcx\u002B0x28]System.Threading.CancellationTokenSource:Dispose(bool):this\n        mov      rdi, gword ptr [rbp-0xA0]\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n-       call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=77 bbWeight=0.50 PerfScore 9.62\n-G_M3524_IG40:\n-       mov      rsi, gword ptr [rbp-0x90]\n-       mov      rdi, gword ptr [rsi\u002B0x10]\n-       mov      rax, rdi\n-       test     rax, rax\n-       je       SHORT G_M3524_IG41\n-       mov      rdi, rax\n-       mov      esi, 1\n-       mov      gword ptr [rbp-0xA8], rax\n-       mov      rcx, qword ptr [rax]\n-       mov      rcx, qword ptr [rcx\u002B0x40]\n-       call     [rcx\u002B0x28]System.Threading.CancellationTokenSource:Dispose(bool):this\n-       mov      rdi, gword ptr [rbp-0xA8]\n-       mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.62\n-G_M3524_IG41:\n\u002BG_M3524_IG38:\n        mov      rdi, qword ptr [r14\u002B0x18]\n        cmp      qword ptr [rdi\u002B0x08], 64\n-       jle      SHORT G_M3524_IG45\n\u002B       jle      SHORT G_M3524_IG42\n \t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 2.50\n-G_M3524_IG42:\n\u002BG_M3524_IG39:\n        mov      rsi, qword ptr [rdi\u002B0x40]\n        test     rsi, rsi\n-       je       SHORT G_M3524_IG45\n\u002B       je       SHORT G_M3524_IG42\n \t\t\t\t\t\t;; size=9 bbWeight=0.40 PerfScore 1.30\n-G_M3524_IG43:\n\u002BG_M3524_IG40:\n        mov      rdi, r15\n        mov      rdx, r13\n        mov      rcx, r12\n@@ -511,8 \u002B491,8 @@ G_M3524_IG43:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateAggregateToCollectionResultCursor[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M3524_IG44:\n-       add      rsp, 216\n\u002BG_M3524_IG41:\n\u002B       add      rsp, 200\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -521,15 \u002B501,15 @@ G_M3524_IG44:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M3524_IG45:\n\u002BG_M3524_IG42:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      SHORT G_M3524_IG43\n\u002B       jmp      SHORT G_M3524_IG40\n \t\t\t\t\t\t;; size=30 bbWeight=0.18 PerfScore 1.08\n-G_M3524_IG46:\n\u002BG_M3524_IG43:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -537,53 \u002B517,53 @@ G_M3524_IG46:\n        mov      rdi, rax\n        jmp      G_M3524_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M3524_IG47:\n\u002BG_M3524_IG44:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M3524_IG37\n\u002B       jmp      G_M3524_IG34\n \t\t\t\t\t\t;; size=33 bbWeight=0.18 PerfScore 1.08\n-G_M3524_IG48:\n\u002BG_M3524_IG45:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M3524_IG24\n\u002B       jmp      G_M3524_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.10 PerfScore 0.60\n-G_M3524_IG49:\n\u002BG_M3524_IG46:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M3524_IG25\n\u002B       jmp      G_M3524_IG22\n \t\t\t\t\t\t;; size=33 bbWeight=0.10 PerfScore 0.60\n-G_M3524_IG50:\n\u002BG_M3524_IG47:\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      qword ptr [rbp-0x78], rax\n-       jmp      G_M3524_IG27\n\u002B       jmp      G_M3524_IG24\n \t\t\t\t\t\t;; size=31 bbWeight=0.10 PerfScore 0.65\n-G_M3524_IG51:\n\u002BG_M3524_IG48:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M3524_IG52:\n\u002BG_M3524_IG49:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M3524_IG53:\n-       cmp      gword ptr [rbp-0x90], 0\n-       je       SHORT G_M3524_IG55\n-       mov      rsi, gword ptr [rbp-0x90]\n\u002BG_M3524_IG50:\n\u002B       cmp      gword ptr [rbp-0x88], 0\n\u002B       je       SHORT G_M3524_IG52\n\u002B       mov      rsi, gword ptr [rbp-0x88]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M3524_IG54\n\u002B       je       SHORT G_M3524_IG51\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -593,11 \u002B573,11 @@ G_M3524_IG53:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M3524_IG54:\n-       mov      rsi, gword ptr [rbp-0x90]\n\u002BG_M3524_IG51:\n\u002B       mov      rsi, gword ptr [rbp-0x88]\n        mov      r15, gword ptr [rsi\u002B0x10]\n        test     r15, r15\n-       je       SHORT G_M3524_IG55\n\u002B       je       SHORT G_M3524_IG52\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -607,23 \u002B587,23 @@ G_M3524_IG54:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M3524_IG55:\n\u002BG_M3524_IG52:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M3524_IG56:\n\u002BG_M3524_IG53:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M3524_IG57:\n\u002BG_M3524_IG54:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M3524_IG58:\n-       cmp      gword ptr [rbp-0xB8], 0\n-       je       SHORT G_M3524_IG60\n-       mov      rsi, gword ptr [rbp-0xB8]\n\u002BG_M3524_IG55:\n\u002B       cmp      gword ptr [rbp-0xB0], 0\n\u002B       je       SHORT G_M3524_IG57\n\u002B       mov      rsi, gword ptr [rbp-0xB0]\n        mov      r13, gword ptr [rsi\u002B0x08]\n        test     r13, r13\n-       je       SHORT G_M3524_IG59\n\u002B       je       SHORT G_M3524_IG56\n        mov      rdi, r13\n        mov      esi, 1\n        mov      rax, qword ptr [r13]\n@@ -633,11 \u002B613,11 @@ G_M3524_IG58:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M3524_IG59:\n-       mov      rsi, gword ptr [rbp-0xB8]\n\u002BG_M3524_IG56:\n\u002B       mov      rsi, gword ptr [rbp-0xB0]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M3524_IG60\n\u002B       je       SHORT G_M3524_IG57\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -647,13 \u002B627,13 @@ G_M3524_IG59:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M3524_IG60:\n\u002BG_M3524_IG57:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M3524_IG61:\n\u002BG_M3524_IG58:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1813, prolog size 66, PerfScore 196.21, instruction count 418, allocated bytes for code 1813 (MethodHash=e43df23b) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:Aggregate[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)\n\u002B; Total bytes of code 1750, prolog size 66, PerfScore 186.83, instruction count 404, allocated bytes for code 1750 (MethodHash=e43df23b) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:Aggregate[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1813,"DiffBytes":1750},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.MoneyManagement.TransactionService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.TransactionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.Transaction]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.MoneyManagement.TransactionService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.TransactionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.Transaction]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.MoneyManagement.TransactionService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.MoneyManagement.TransactionListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.MoneyManagement.TransactionListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.Transaction]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.Transaction]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.Transaction]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.Transaction]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M9913_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M9913_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/money_management/transactions\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M9913_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M9913_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.Transaction]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M9913_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M9913_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M9913_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.Transaction]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M9913_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M9913_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=ee3ed946) for method Stripe.V2.MoneyManagement.TransactionService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.TransactionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.Transaction]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=ee3ed946) for method Stripe.V2.MoneyManagement.TransactionService:ListAutoPagingAsync(Stripe.V2.MoneyManagement.TransactionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.Transaction]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollectionAsync[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[byte]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[byte,System.Nullable\u00601[int]]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[byte,MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M28369_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M28369_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M28369_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[byte,System.Nullable\u00601[int]]:Render(MongoDB.Driver.RenderArgs\u00601[byte]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M28369_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M28369_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M28369_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M28369_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M28369_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M28369_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M28369_IG07:\n        test     rax, rax\n-       je       SHORT G_M28369_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M28369_IG08:\n\u002B       je       SHORT G_M28369_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M28369_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M28369_IG10\n\u002B       jmp      SHORT G_M28369_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M28369_IG09:\n\u002BG_M28369_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M28369_IG10:\n\u002BG_M28369_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M28369_IG14\n\u002B       je       SHORT G_M28369_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M28369_IG11:\n\u002BG_M28369_IG08:\n        test     rax, rax\n-       je       SHORT G_M28369_IG15\n\u002B       je       SHORT G_M28369_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M28369_IG12:\n\u002BG_M28369_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M28369_IG15\n\u002B       jne      SHORT G_M28369_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M28369_IG13:\n\u002BG_M28369_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M28369_IG15\n\u002B       je       SHORT G_M28369_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M28369_IG14:\n\u002BG_M28369_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M28369_IG22\n\u002B       jmp      SHORT G_M28369_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M28369_IG15:\n\u002BG_M28369_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M28369_IG20\n\u002B       je       SHORT G_M28369_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M28369_IG16:\n\u002BG_M28369_IG13:\n        test     rax, rax\n-       je       SHORT G_M28369_IG18\n\u002B       je       SHORT G_M28369_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M28369_IG17:\n\u002BG_M28369_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M28369_IG19\n\u002B       je       SHORT G_M28369_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M28369_IG18:\n\u002BG_M28369_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M28369_IG21\n\u002B       jmp      SHORT G_M28369_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M28369_IG19:\n\u002BG_M28369_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M28369_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M28369_IG21\n\u002B       jmp      SHORT G_M28369_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M28369_IG20:\n\u002BG_M28369_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M28369_IG21:\n\u002BG_M28369_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M28369_IG22:\n\u002BG_M28369_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M28369_IG27\n\u002B       je       G_M28369_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M28369_IG27\n\u002B       je       G_M28369_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M28369_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[byte,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M28369_IG24\n\u002B       jne      SHORT G_M28369_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M28369_IG23:\n\u002BG_M28369_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M28369_IG24:\n\u002BG_M28369_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M28369_IG25:\n-       add      rsp, 232\n\u002BG_M28369_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M28369_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M28369_IG26:\n\u002BG_M28369_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M28369_IG27:\n\u002BG_M28369_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M28369_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=e969912e) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollectionAsync[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=e969912e) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollectionAsync[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.OrchestratedCommerce.AgreementService:ListAutoPagingAsync(Stripe.V2.OrchestratedCommerce.AgreementListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.OrchestratedCommerce.Agreement]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.OrchestratedCommerce.AgreementService:ListAutoPagingAsync(Stripe.V2.OrchestratedCommerce.AgreementListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.OrchestratedCommerce.Agreement]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.OrchestratedCommerce.AgreementService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.OrchestratedCommerce.AgreementListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.OrchestratedCommerce.AgreementListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.OrchestratedCommerce.Agreement]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.OrchestratedCommerce.Agreement]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.OrchestratedCommerce.Agreement]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.OrchestratedCommerce.Agreement]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M43703_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M43703_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/orchestrated_commerce/agreements\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M43703_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M43703_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.OrchestratedCommerce.Agreement]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M43703_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M43703_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M43703_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.OrchestratedCommerce.Agreement]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M43703_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M43703_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=d89e5548) for method Stripe.V2.OrchestratedCommerce.AgreementService:ListAutoPagingAsync(Stripe.V2.OrchestratedCommerce.AgreementListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.OrchestratedCommerce.Agreement]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=d89e5548) for method Stripe.V2.OrchestratedCommerce.AgreementService:ListAutoPagingAsync(Stripe.V2.OrchestratedCommerce.AgreementListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.OrchestratedCommerce.Agreement]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollectionAsync[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[byte]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[byte,System.Numerics.Vector\u00601[float]]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[byte,MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M11441_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M11441_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M11441_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[byte,System.Numerics.Vector\u00601[float]]:Render(MongoDB.Driver.RenderArgs\u00601[byte]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M11441_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M11441_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M11441_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M11441_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M11441_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M11441_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M11441_IG07:\n        test     rax, rax\n-       je       SHORT G_M11441_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M11441_IG08:\n\u002B       je       SHORT G_M11441_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M11441_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M11441_IG10\n\u002B       jmp      SHORT G_M11441_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M11441_IG09:\n\u002BG_M11441_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M11441_IG10:\n\u002BG_M11441_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M11441_IG14\n\u002B       je       SHORT G_M11441_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M11441_IG11:\n\u002BG_M11441_IG08:\n        test     rax, rax\n-       je       SHORT G_M11441_IG15\n\u002B       je       SHORT G_M11441_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M11441_IG12:\n\u002BG_M11441_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M11441_IG15\n\u002B       jne      SHORT G_M11441_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M11441_IG13:\n\u002BG_M11441_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M11441_IG15\n\u002B       je       SHORT G_M11441_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M11441_IG14:\n\u002BG_M11441_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M11441_IG22\n\u002B       jmp      SHORT G_M11441_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M11441_IG15:\n\u002BG_M11441_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M11441_IG20\n\u002B       je       SHORT G_M11441_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M11441_IG16:\n\u002BG_M11441_IG13:\n        test     rax, rax\n-       je       SHORT G_M11441_IG18\n\u002B       je       SHORT G_M11441_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M11441_IG17:\n\u002BG_M11441_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M11441_IG19\n\u002B       je       SHORT G_M11441_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M11441_IG18:\n\u002BG_M11441_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M11441_IG21\n\u002B       jmp      SHORT G_M11441_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M11441_IG19:\n\u002BG_M11441_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M11441_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M11441_IG21\n\u002B       jmp      SHORT G_M11441_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M11441_IG20:\n\u002BG_M11441_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M11441_IG21:\n\u002BG_M11441_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M11441_IG22:\n\u002BG_M11441_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M11441_IG27\n\u002B       je       G_M11441_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M11441_IG27\n\u002B       je       G_M11441_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M11441_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[byte,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M11441_IG24\n\u002B       jne      SHORT G_M11441_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M11441_IG23:\n\u002BG_M11441_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M11441_IG24:\n\u002BG_M11441_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M11441_IG25:\n-       add      rsp, 232\n\u002BG_M11441_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M11441_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M11441_IG26:\n\u002BG_M11441_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M11441_IG27:\n\u002BG_M11441_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M11441_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=1f36d34e) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollectionAsync[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=1f36d34e) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollectionAsync[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Payments.OffSessionPaymentService:ListAutoPagingAsync(Stripe.V2.Payments.OffSessionPaymentListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Payments.OffSessionPayment]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.Payments.OffSessionPaymentService:ListAutoPagingAsync(Stripe.V2.Payments.OffSessionPaymentListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Payments.OffSessionPayment]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Payments.OffSessionPaymentService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Payments.OffSessionPaymentListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Payments.OffSessionPaymentListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Payments.OffSessionPayment]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Payments.OffSessionPayment]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Payments.OffSessionPayment]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Payments.OffSessionPayment]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M63484_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M63484_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/payments/off_session_payments\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M63484_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M63484_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Payments.OffSessionPayment]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M63484_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M63484_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M63484_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Payments.OffSessionPayment]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M63484_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M63484_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=54620803) for method Stripe.V2.Payments.OffSessionPaymentService:ListAutoPagingAsync(Stripe.V2.Payments.OffSessionPaymentListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Payments.OffSessionPayment]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=54620803) for method Stripe.V2.Payments.OffSessionPaymentService:ListAutoPagingAsync(Stripe.V2.Payments.OffSessionPaymentListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Payments.OffSessionPayment]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollectionAsync[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"951 -\u003E 888 bytes (-63)","ExtraInfo":null,"Diff":"@@ -10,18 \u002B10,18 @@\n ;\n ;  V00 this         [V00,T03] (  5,  5   )     ref  -\u003E  r14         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[byte]\u003E\n ;  V01 TypeCtx      [V01,T02] (  7,  5.40)    long  -\u003E  r15         single-def\n-;  V02 arg1         [V02,T06] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V02 arg1         [V02,T05] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V03 arg2         [V03,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[byte,System.__Canon]\u003E\n ;  V04 arg3         [V04,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T22] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n\u002B;  V06 loc0         [V06,T21] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n-;  V08 loc2         [V08,T23] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n-;  V09 loc3         [V09,T21] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V08 loc2         [V08,T22] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n\u002B;  V09 loc3         [V09,T20] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V12 tmp2         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V13 tmp3         [V13,T29] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V13 tmp3         [V13,T28] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V14 tmp4         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V15 tmp5         [V15    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V16 tmp6         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n@@ -39,26 \u002B39,26 @@\n ;* V28 tmp18        [V28    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V29 tmp19        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V30 tmp20        [V30    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V31 tmp21        [V31,T20] (  3,  2   )     int  -\u003E  registers  \n-;  V32 tmp22        [V32,T05] (  4,  7   )     ref  -\u003E  [rbp-0xD8]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V33 tmp23        [V33    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V34 tmp24        [V34,T18] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V35 tmp25        [V35,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V31 tmp21        [V31,T19] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V32 tmp22        [V32,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V33 tmp23        [V33    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V34 tmp24        [V34,T18] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V37 tmp27        [V37,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V38 tmp28        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V39 tmp29        [V39,T26] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V39 tmp29        [V39,T25] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V40 tmp30        [V40    ] ( 11, 10.50)  struct (88) [rbp-0xD0]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[byte,MongoDB.Bson.BsonDocument]\u003E\n ;* V41 tmp31        [V41    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V42 tmp32        [V42,T13] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V43 tmp33        [V43,T17] (  4,  3.50)     ref  -\u003E  rax        \n-;  V44 tmp34        [V44,T14] (  2,  2   )     ref  -\u003E  [rbp-0xE0]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp35        [V45,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V15.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp36        [V46,T25] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V15.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp34        [V44,T14] (  2,  2   )     ref  -\u003E  [rbp-0xD8]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp35        [V45,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V15.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp36        [V46,T24] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V15.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V22._name (fldOffset=0x0)\u0022 P-DEP\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V22._value (fldOffset=0x8)\u0022 P-DEP\n-;  V49 tmp39        [V49,T27] (  2,  1   )     ref  -\u003E  rax         \u0022field V23._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V50 tmp40        [V50,T28] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V23._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V49 tmp39        [V49,T26] (  2,  1   )     ref  -\u003E  rax         \u0022field V23._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V50 tmp40        [V50,T27] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V23._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V51 tmp41        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V41.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;  V52 tmp42        [V52,T15] (  2,  4   )    long  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V53 tmp43        [V53,T16] (  2,  4   )    long  -\u003E  rsi         \u0022argument with side effect\u0022\n@@ -67,7 \u002B67,7 @@\n ;  V56 rat2         [V56,T12] (  3,  4   )    long  -\u003E  rsi         \u0022runtime lookup\u0022\n ;  V57 rat3         [V57,T08] (  3,  5.60)    long  -\u003E  rsi         \u0022fgMakeTemp is creating a new local variable\u0022\n ;\n-; Lcl frame size = 248\n\u002B; Lcl frame size = 232\n \n G_M22481_IG01:\n        push     rbp\n@@ -76,14 \u002B76,14 @@ G_M22481_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 248\n-       lea      rbp, [rsp\u002B0x120]\n\u002B       sub      rsp, 232\n\u002B       lea      rbp, [rsp\u002B0x110]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0xD0], zmm8\n        vmovdqu32 zmmword ptr [rbp-0x90], zmm8\n        vmovdqu  ymmword ptr [rbp-0x50], ymm8\n        mov      qword ptr [rbp-0x30], rsi\n-       mov      gword ptr [rbp-0xE0], r9\n\u002B       mov      gword ptr [rbp-0xD8], r9\n        mov      r14, rdi\n        mov      r15, rsi\n        mov      r12, rdx\n@@ -99,7 \u002B99,7 @@ G_M22481_IG02:\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M22481_IG29\n\u002B       je       G_M22481_IG26\n \t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 9.25\n G_M22481_IG03:\n        mov      rsi, r13\n@@ -149,90 \u002B149,70 @@ G_M22481_IG05:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[byte,System.__Canon]:Render(MongoDB.Driver.RenderArgs\u00601[byte]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0xD8], rax\n-       test     rax, rax\n-       je       G_M22481_IG30\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M22481_IG07\n-\t\t\t\t\t\t;; size=181 bbWeight=1 PerfScore 43.25\n-G_M22481_IG06:\n-       lea      rsi, [rbp-0x78]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M22481_IG08\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M22481_IG07:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M22481_IG27\n        lea      rdx, [rbp-0x78]\n-       mov      rsi, gword ptr [rbp-0xD8]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M22481_IG08:\n        test     rax, rax\n-       je       SHORT G_M22481_IG10\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M22481_IG09:\n\u002B       je       SHORT G_M22481_IG07\n\u002B\t\t\t\t\t\t;; size=175 bbWeight=1 PerfScore 42.50\n\u002BG_M22481_IG06:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M22481_IG11\n\u002B       jmp      SHORT G_M22481_IG08\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M22481_IG10:\n\u002BG_M22481_IG07:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M22481_IG11:\n\u002BG_M22481_IG08:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M22481_IG15\n\u002B       je       SHORT G_M22481_IG12\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M22481_IG12:\n\u002BG_M22481_IG09:\n        test     rax, rax\n-       je       SHORT G_M22481_IG16\n\u002B       je       SHORT G_M22481_IG13\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M22481_IG13:\n\u002BG_M22481_IG10:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M22481_IG16\n\u002B       jne      SHORT G_M22481_IG13\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M22481_IG14:\n\u002BG_M22481_IG11:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M22481_IG16\n\u002B       je       SHORT G_M22481_IG13\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M22481_IG15:\n\u002BG_M22481_IG12:\n        mov      ecx, 1\n-       jmp      SHORT G_M22481_IG23\n\u002B       jmp      SHORT G_M22481_IG20\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M22481_IG16:\n\u002BG_M22481_IG13:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M22481_IG21\n\u002B       je       SHORT G_M22481_IG18\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M22481_IG17:\n\u002BG_M22481_IG14:\n        test     rax, rax\n-       je       SHORT G_M22481_IG19\n\u002B       je       SHORT G_M22481_IG16\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M22481_IG18:\n\u002BG_M22481_IG15:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M22481_IG20\n\u002B       je       SHORT G_M22481_IG17\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M22481_IG19:\n\u002BG_M22481_IG16:\n        xor      ecx, ecx\n-       jmp      SHORT G_M22481_IG22\n\u002B       jmp      SHORT G_M22481_IG19\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M22481_IG20:\n\u002BG_M22481_IG17:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -240,30 \u002B220,30 @@ G_M22481_IG20:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M22481_IG22\n\u002B       jmp      SHORT G_M22481_IG19\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M22481_IG21:\n\u002BG_M22481_IG18:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M22481_IG22:\n\u002BG_M22481_IG19:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M22481_IG23:\n\u002BG_M22481_IG20:\n        mov      dword ptr [rbp-0x6C], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M22481_IG31\n\u002B       je       G_M22481_IG28\n        cmp      dword ptr [rbp-0x6C], 0\n-       je       G_M22481_IG31\n\u002B       je       G_M22481_IG28\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rsi, qword ptr [rdi\u002B0x20]\n        test     rsi, rsi\n-       je       G_M22481_IG28\n\u002B       je       G_M22481_IG25\n \t\t\t\t\t\t;; size=55 bbWeight=1 PerfScore 14.75\n-G_M22481_IG24:\n\u002BG_M22481_IG21:\n        mov      rdi, r14\n        mov      rdx, r13\n        mov      rcx, rbx\n@@ -278,7 \u002B258,7 @@ G_M22481_IG24:\n        mov      gword ptr [rbp-0xC0], rax\n        mov      byte  ptr [rbp-0xA0], sil\n        mov      qword ptr [rbp-0x98], rdi\n-       mov      rbx, gword ptr [rbp-0xE0]\n\u002B       mov      rbx, gword ptr [rbp-0xD8]\n        mov      gword ptr [rbp-0x90], rbx\n        mov      dword ptr [rbp-0xB0], -1\n        lea      rsi, [rbp-0xD0]\n@@ -287,19 \u002B267,19 @@ G_M22481_IG24:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[byte,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA8]\n        test     rax, rax\n-       jne      SHORT G_M22481_IG26\n\u002B       jne      SHORT G_M22481_IG23\n \t\t\t\t\t\t;; size=139 bbWeight=1 PerfScore 23.50\n-G_M22481_IG25:\n\u002BG_M22481_IG22:\n        lea      rdi, [rbp-0xA8]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M22481_IG26:\n\u002BG_M22481_IG23:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M22481_IG27:\n-       add      rsp, 248\n\u002BG_M22481_IG24:\n\u002B       add      rsp, 232\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -308,15 \u002B288,15 @@ G_M22481_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M22481_IG28:\n\u002BG_M22481_IG25:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M22481_IG24\n\u002B       jmp      G_M22481_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M22481_IG29:\n\u002BG_M22481_IG26:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -324,13 \u002B304,13 @@ G_M22481_IG29:\n        mov      rdi, rax\n        jmp      G_M22481_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M22481_IG30:\n\u002BG_M22481_IG27:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M22481_IG31:\n\u002BG_M22481_IG28:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -343,5 \u002B323,5 @@ G_M22481_IG31:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 951, prolog size 59, PerfScore 144.30, instruction count 211, allocated bytes for code 951 (MethodHash=f91ea82e) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollectionAsync[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 888, prolog size 59, PerfScore 134.92, instruction count 197, allocated bytes for code 888 (MethodHash=f91ea82e) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollectionAsync[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":951,"DiffBytes":888},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Payments.SettlementAllocationIntentService:ListAutoPagingAsync(Stripe.V2.Payments.SettlementAllocationIntentListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Payments.SettlementAllocationIntent]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.Payments.SettlementAllocationIntentService:ListAutoPagingAsync(Stripe.V2.Payments.SettlementAllocationIntentListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Payments.SettlementAllocationIntent]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Payments.SettlementAllocationIntentService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Payments.SettlementAllocationIntentListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Payments.SettlementAllocationIntentListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Payments.SettlementAllocationIntent]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Payments.SettlementAllocationIntent]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Payments.SettlementAllocationIntent]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Payments.SettlementAllocationIntent]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M14374_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M14374_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/payments/settlement_allocation_intents\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M14374_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M14374_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Payments.SettlementAllocationIntent]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M14374_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M14374_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M14374_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Payments.SettlementAllocationIntent]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M14374_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M14374_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=a9f6c7d9) for method Stripe.V2.Payments.SettlementAllocationIntentService:ListAutoPagingAsync(Stripe.V2.Payments.SettlementAllocationIntentListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Payments.SettlementAllocationIntent]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=a9f6c7d9) for method Stripe.V2.Payments.SettlementAllocationIntentService:ListAutoPagingAsync(Stripe.V2.Payments.SettlementAllocationIntentListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Payments.SettlementAllocationIntent]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollectionAsync[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[byte]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[byte,byte]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[byte,MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M27473_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M27473_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M27473_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[byte,byte]:Render(MongoDB.Driver.RenderArgs\u00601[byte]):MongoDB.Driver.RenderedPipelineDefinition\u00601[byte]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M27473_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M27473_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M27473_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M27473_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M27473_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M27473_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M27473_IG07:\n        test     rax, rax\n-       je       SHORT G_M27473_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M27473_IG08:\n\u002B       je       SHORT G_M27473_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M27473_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M27473_IG10\n\u002B       jmp      SHORT G_M27473_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M27473_IG09:\n\u002BG_M27473_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M27473_IG10:\n\u002BG_M27473_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M27473_IG14\n\u002B       je       SHORT G_M27473_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M27473_IG11:\n\u002BG_M27473_IG08:\n        test     rax, rax\n-       je       SHORT G_M27473_IG15\n\u002B       je       SHORT G_M27473_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M27473_IG12:\n\u002BG_M27473_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M27473_IG15\n\u002B       jne      SHORT G_M27473_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M27473_IG13:\n\u002BG_M27473_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M27473_IG15\n\u002B       je       SHORT G_M27473_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M27473_IG14:\n\u002BG_M27473_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M27473_IG22\n\u002B       jmp      SHORT G_M27473_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M27473_IG15:\n\u002BG_M27473_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M27473_IG20\n\u002B       je       SHORT G_M27473_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M27473_IG16:\n\u002BG_M27473_IG13:\n        test     rax, rax\n-       je       SHORT G_M27473_IG18\n\u002B       je       SHORT G_M27473_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M27473_IG17:\n\u002BG_M27473_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M27473_IG19\n\u002B       je       SHORT G_M27473_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M27473_IG18:\n\u002BG_M27473_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M27473_IG21\n\u002B       jmp      SHORT G_M27473_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M27473_IG19:\n\u002BG_M27473_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M27473_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M27473_IG21\n\u002B       jmp      SHORT G_M27473_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M27473_IG20:\n\u002BG_M27473_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M27473_IG21:\n\u002BG_M27473_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M27473_IG22:\n\u002BG_M27473_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M27473_IG27\n\u002B       je       G_M27473_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M27473_IG27\n\u002B       je       G_M27473_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M27473_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[byte,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M27473_IG24\n\u002B       jne      SHORT G_M27473_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M27473_IG23:\n\u002BG_M27473_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M27473_IG24:\n\u002BG_M27473_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M27473_IG25:\n-       add      rsp, 232\n\u002BG_M27473_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M27473_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M27473_IG26:\n\u002BG_M27473_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M27473_IG27:\n\u002BG_M27473_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M27473_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=5e5694ae) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollectionAsync[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=5e5694ae) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollectionAsync[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Risk.InquiryService:ListAutoPagingAsync(Stripe.V2.Risk.InquiryListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Risk.Inquiry]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.Risk.InquiryService:ListAutoPagingAsync(Stripe.V2.Risk.InquiryListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Risk.Inquiry]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Risk.InquiryService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Risk.InquiryListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Risk.InquiryListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Risk.Inquiry]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Risk.Inquiry]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Risk.Inquiry]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Risk.Inquiry]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M64220_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M64220_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/risk/inquiries\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M64220_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M64220_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Risk.Inquiry]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M64220_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M64220_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M64220_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Risk.Inquiry]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M64220_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M64220_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=29c70523) for method Stripe.V2.Risk.InquiryService:ListAutoPagingAsync(Stripe.V2.Risk.InquiryListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Risk.Inquiry]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=29c70523) for method Stripe.V2.Risk.InquiryService:ListAutoPagingAsync(Stripe.V2.Risk.InquiryListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Risk.Inquiry]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollectionAsync[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[byte]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[byte,double]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[byte,MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M26161_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M26161_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M26161_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[byte,double]:Render(MongoDB.Driver.RenderArgs\u00601[byte]):MongoDB.Driver.RenderedPipelineDefinition\u00601[double]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M26161_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M26161_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M26161_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M26161_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M26161_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M26161_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M26161_IG07:\n        test     rax, rax\n-       je       SHORT G_M26161_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M26161_IG08:\n\u002B       je       SHORT G_M26161_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M26161_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M26161_IG10\n\u002B       jmp      SHORT G_M26161_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M26161_IG09:\n\u002BG_M26161_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M26161_IG10:\n\u002BG_M26161_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M26161_IG14\n\u002B       je       SHORT G_M26161_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M26161_IG11:\n\u002BG_M26161_IG08:\n        test     rax, rax\n-       je       SHORT G_M26161_IG15\n\u002B       je       SHORT G_M26161_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M26161_IG12:\n\u002BG_M26161_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M26161_IG15\n\u002B       jne      SHORT G_M26161_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M26161_IG13:\n\u002BG_M26161_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M26161_IG15\n\u002B       je       SHORT G_M26161_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M26161_IG14:\n\u002BG_M26161_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M26161_IG22\n\u002B       jmp      SHORT G_M26161_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M26161_IG15:\n\u002BG_M26161_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M26161_IG20\n\u002B       je       SHORT G_M26161_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M26161_IG16:\n\u002BG_M26161_IG13:\n        test     rax, rax\n-       je       SHORT G_M26161_IG18\n\u002B       je       SHORT G_M26161_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M26161_IG17:\n\u002BG_M26161_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M26161_IG19\n\u002B       je       SHORT G_M26161_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M26161_IG18:\n\u002BG_M26161_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M26161_IG21\n\u002B       jmp      SHORT G_M26161_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M26161_IG19:\n\u002BG_M26161_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M26161_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M26161_IG21\n\u002B       jmp      SHORT G_M26161_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M26161_IG20:\n\u002BG_M26161_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M26161_IG21:\n\u002BG_M26161_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M26161_IG22:\n\u002BG_M26161_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M26161_IG27\n\u002B       je       G_M26161_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M26161_IG27\n\u002B       je       G_M26161_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M26161_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[byte,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M26161_IG24\n\u002B       jne      SHORT G_M26161_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M26161_IG23:\n\u002BG_M26161_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M26161_IG24:\n\u002BG_M26161_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M26161_IG25:\n-       add      rsp, 232\n\u002BG_M26161_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M26161_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M26161_IG26:\n\u002BG_M26161_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M26161_IG27:\n\u002BG_M26161_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M26161_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=d58199ce) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollectionAsync[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=d58199ce) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollectionAsync[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Signals.AccountSignalService:ListAutoPagingAsync(Stripe.V2.Signals.AccountSignalListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Signals.AccountSignal]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.Signals.AccountSignalService:ListAutoPagingAsync(Stripe.V2.Signals.AccountSignalListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Signals.AccountSignal]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Signals.AccountSignalService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Signals.AccountSignalListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Signals.AccountSignalListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Signals.AccountSignal]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Signals.AccountSignal]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Signals.AccountSignal]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Signals.AccountSignal]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M1900_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M1900_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/signals/account_signals\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M1900_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M1900_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Signals.AccountSignal]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M1900_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M1900_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M1900_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Signals.AccountSignal]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M1900_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M1900_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=528bf893) for method Stripe.V2.Signals.AccountSignalService:ListAutoPagingAsync(Stripe.V2.Signals.AccountSignalListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Signals.AccountSignal]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=528bf893) for method Stripe.V2.Signals.AccountSignalService:ListAutoPagingAsync(Stripe.V2.Signals.AccountSignalListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Signals.AccountSignal]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollectionAsync[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[byte]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[byte,int]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[byte,MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M60593_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M60593_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M60593_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[byte,int]:Render(MongoDB.Driver.RenderArgs\u00601[byte]):MongoDB.Driver.RenderedPipelineDefinition\u00601[int]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M60593_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M60593_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M60593_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M60593_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M60593_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M60593_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M60593_IG07:\n        test     rax, rax\n-       je       SHORT G_M60593_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M60593_IG08:\n\u002B       je       SHORT G_M60593_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M60593_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M60593_IG10\n\u002B       jmp      SHORT G_M60593_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M60593_IG09:\n\u002BG_M60593_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M60593_IG10:\n\u002BG_M60593_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M60593_IG14\n\u002B       je       SHORT G_M60593_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M60593_IG11:\n\u002BG_M60593_IG08:\n        test     rax, rax\n-       je       SHORT G_M60593_IG15\n\u002B       je       SHORT G_M60593_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M60593_IG12:\n\u002BG_M60593_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M60593_IG15\n\u002B       jne      SHORT G_M60593_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M60593_IG13:\n\u002BG_M60593_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M60593_IG15\n\u002B       je       SHORT G_M60593_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M60593_IG14:\n\u002BG_M60593_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M60593_IG22\n\u002B       jmp      SHORT G_M60593_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M60593_IG15:\n\u002BG_M60593_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M60593_IG20\n\u002B       je       SHORT G_M60593_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M60593_IG16:\n\u002BG_M60593_IG13:\n        test     rax, rax\n-       je       SHORT G_M60593_IG18\n\u002B       je       SHORT G_M60593_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M60593_IG17:\n\u002BG_M60593_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M60593_IG19\n\u002B       je       SHORT G_M60593_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M60593_IG18:\n\u002BG_M60593_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M60593_IG21\n\u002B       jmp      SHORT G_M60593_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M60593_IG19:\n\u002BG_M60593_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M60593_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M60593_IG21\n\u002B       jmp      SHORT G_M60593_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M60593_IG20:\n\u002BG_M60593_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M60593_IG21:\n\u002BG_M60593_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M60593_IG22:\n\u002BG_M60593_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M60593_IG27\n\u002B       je       G_M60593_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M60593_IG27\n\u002B       je       G_M60593_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M60593_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[byte,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M60593_IG24\n\u002B       jne      SHORT G_M60593_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M60593_IG23:\n\u002BG_M60593_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M60593_IG24:\n\u002BG_M60593_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M60593_IG25:\n-       add      rsp, 232\n\u002BG_M60593_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M60593_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M60593_IG26:\n\u002BG_M60593_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M60593_IG27:\n\u002BG_M60593_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M60593_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=769b134e) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollectionAsync[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=769b134e) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollectionAsync[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Tax.ManualRuleService:ListAutoPagingAsync(Stripe.V2.Tax.ManualRuleListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Tax.ManualRule]:this (FullOpts)","Category":"improvement","Description":"381 -\u003E 337 bytes (-44)","ExtraInfo":null,"Diff":"@@ -1,138 \u002B1,130 @@\n ; Assembly listing for method Stripe.V2.Tax.ManualRuleService:ListAutoPagingAsync(Stripe.V2.Tax.ManualRuleListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Tax.ManualRule]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Tax.ManualRuleService\u003E\n-;  V01 arg1         [V01,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Tax.ManualRuleListOptions\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T04] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Tax.ManualRuleListOptions\u003E\n\u002B;  V02 arg2         [V02,T03] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V05 tmp1         [V05,T07] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Tax.ManualRule]\u003E\n ;* V06 tmp2         [V06    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V08 tmp4         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Tax.ManualRule]\u003E\n ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Tax.ManualRule]\u003E\n-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp9         [V13,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp11        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 cse0         [V16,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n-;  V17 rat0         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp6         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Tax.ManualRule]\u003E\n\u002B;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp8         [V12,T05] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp9         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp10        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 cse0         [V15,T06] (  4,  3   )     ref  -\u003E  r12         \u0022CSE #01: aggressive\u0022\n\u002B;  V16 rat0         [V16,T08] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T09] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M12967_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rsi\n-       mov      r14, rdx\n\u002B       mov      r14, rsi\n\u002B       mov      r15, rdx\n        mov      r13, rcx\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M12967_IG02:\n        mov      r12, 0xD1FFAB1E      ; \u0027/v2/tax/manual_rules\u0027\n        mov      rdi, r12\n        mov      rsi, 0xD1FFAB1E      ; \u0027/v2\u0027\n        xor      edx, edx\n        mov      rax, 0xD1FFAB1E      ; code for System.String:StartsWith(System.String,int):bool:this\n        call     [rax]System.String:StartsWith(System.String,int):bool:this\n        test     eax, eax\n        je       G_M12967_IG04\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 5.50\n G_M12967_IG03:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Tax.ManualRule]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        mov      gword ptr [rbx\u002B0x28], r12\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M12967_IG05\n-\t\t\t\t\t\t;; size=132 bbWeight=0.50 PerfScore 11.62\n\u002B       jmp      SHORT G_M12967_IG05\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=0.50 PerfScore 11.62\n G_M12967_IG04:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Tax.ManualRule]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       mov      gword ptr [rbx\u002B0x28], r12\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       mov      gword ptr [r14\u002B0x28], r12\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=155 bbWeight=0.50 PerfScore 12.62\n\u002B       mov      rbx, r14\n\u002B\t\t\t\t\t\t;; size=117 bbWeight=0.50 PerfScore 9.12\n G_M12967_IG05:\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M12967_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 381, prolog size 19, PerfScore 42.00, instruction count 89, allocated bytes for code 381 (MethodHash=17cecd58) for method Stripe.V2.Tax.ManualRuleService:ListAutoPagingAsync(Stripe.V2.Tax.ManualRuleListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Tax.ManualRule]:this (FullOpts)\n\u002B; Total bytes of code 337, prolog size 16, PerfScore 39.25, instruction count 82, allocated bytes for code 337 (MethodHash=17cecd58) for method Stripe.V2.Tax.ManualRuleService:ListAutoPagingAsync(Stripe.V2.Tax.ManualRuleListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Tax.ManualRule]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":381,"DiffBytes":337},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollectionAsync[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[byte]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[byte,long]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[byte,MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M52817_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M52817_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M52817_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[byte,long]:Render(MongoDB.Driver.RenderArgs\u00601[byte]):MongoDB.Driver.RenderedPipelineDefinition\u00601[long]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M52817_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M52817_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M52817_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M52817_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M52817_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M52817_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M52817_IG07:\n        test     rax, rax\n-       je       SHORT G_M52817_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M52817_IG08:\n\u002B       je       SHORT G_M52817_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M52817_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M52817_IG10\n\u002B       jmp      SHORT G_M52817_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M52817_IG09:\n\u002BG_M52817_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M52817_IG10:\n\u002BG_M52817_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M52817_IG14\n\u002B       je       SHORT G_M52817_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M52817_IG11:\n\u002BG_M52817_IG08:\n        test     rax, rax\n-       je       SHORT G_M52817_IG15\n\u002B       je       SHORT G_M52817_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M52817_IG12:\n\u002BG_M52817_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M52817_IG15\n\u002B       jne      SHORT G_M52817_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M52817_IG13:\n\u002BG_M52817_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M52817_IG15\n\u002B       je       SHORT G_M52817_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M52817_IG14:\n\u002BG_M52817_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M52817_IG22\n\u002B       jmp      SHORT G_M52817_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M52817_IG15:\n\u002BG_M52817_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M52817_IG20\n\u002B       je       SHORT G_M52817_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M52817_IG16:\n\u002BG_M52817_IG13:\n        test     rax, rax\n-       je       SHORT G_M52817_IG18\n\u002B       je       SHORT G_M52817_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M52817_IG17:\n\u002BG_M52817_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M52817_IG19\n\u002B       je       SHORT G_M52817_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M52817_IG18:\n\u002BG_M52817_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M52817_IG21\n\u002B       jmp      SHORT G_M52817_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M52817_IG19:\n\u002BG_M52817_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M52817_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M52817_IG21\n\u002B       jmp      SHORT G_M52817_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M52817_IG20:\n\u002BG_M52817_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M52817_IG21:\n\u002BG_M52817_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M52817_IG22:\n\u002BG_M52817_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M52817_IG27\n\u002B       je       G_M52817_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M52817_IG27\n\u002B       je       G_M52817_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M52817_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[byte,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M52817_IG24\n\u002B       jne      SHORT G_M52817_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M52817_IG23:\n\u002BG_M52817_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M52817_IG24:\n\u002BG_M52817_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M52817_IG25:\n-       add      rsp, 232\n\u002BG_M52817_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M52817_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M52817_IG26:\n\u002BG_M52817_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M52817_IG27:\n\u002BG_M52817_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M52817_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=3bcb31ae) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollectionAsync[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=3bcb31ae) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollectionAsync[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.BillSettings.VersionService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.BillSettings.VersionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.BillSettingVersion]:this (FullOpts)","Category":"improvement","Description":"429 -\u003E 388 bytes (-41)","ExtraInfo":null,"Diff":"@@ -1,148 \u002B1,140 @@\n ; Assembly listing for method Stripe.V2.Billing.BillSettings.VersionService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.BillSettings.VersionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.BillSettingVersion]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 12 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T03] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.BillSettings.VersionService\u003E\n-;  V01 arg1         [V01,T06] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.BillSettings.VersionListOptions\u003E\n-;  V03 arg3         [V03,T05] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T05] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V02 arg2         [V02,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.BillSettings.VersionListOptions\u003E\n\u002B;  V03 arg3         [V03,T04] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V06 tmp1         [V06,T09] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.BillSettingVersion]\u003E\n\u002B;  V06 tmp1         [V06,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.BillSettingVersion]\u003E\n ;  V07 tmp2         [V07,T02] (  4,  6   )     ref  -\u003E  r12         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V08 tmp3         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.BillSettingVersion]\u003E\n ;* V09 tmp4         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp5         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.BillSettingVersion]\u003E\n-;  V11 tmp6         [V11,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp7         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp8         [V13,T07] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp9         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp10        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 tmp11        [V16,T08] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V17 rat0         [V17,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp5         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.BillSettingVersion]\u003E\n\u002B;* V11 tmp6         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp7         [V12,T07] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp8         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp9         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 tmp10        [V15,T08] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V16 rat0         [V16,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M18208_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rdx\n-       mov      r14, rcx\n\u002B       mov      r14, rdx\n\u002B       mov      r15, rcx\n        mov      r13, r8\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M18208_IG02:\n        mov      rdi, rsi\n        mov      rax, 0xD1FFAB1E      ; code for System.Net.WebUtility:UrlEncode(System.String):System.String\n        call     [rax]System.Net.WebUtility:UrlEncode(System.String):System.String\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; \u0027/v2/billing/bill_settings/\u0027\n        mov      rdx, 0xD1FFAB1E      ; \u0027/versions\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Concat(System.String,System.String,System.String):System.String\n        call     [rax]System.String:Concat(System.String,System.String,System.String):System.String\n        mov      r12, rax\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for Stripe.ApiModeUtils:GetApiMode(System.String):int\n        call     [rax]Stripe.ApiModeUtils:GetApiMode(System.String):int\n        cmp      eax, 1\n        je       G_M18208_IG04\n \t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 12.50\n G_M18208_IG03:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.BillSettingVersion]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       lea      rdi, bword ptr [rbx\u002B0x28]\n\u002B       lea      rdi, bword ptr [r14\u002B0x28]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M18208_IG05\n-\t\t\t\t\t\t;; size=168 bbWeight=0.50 PerfScore 14.00\n\u002B\t\t\t\t\t\t;; size=127 bbWeight=0.50 PerfScore 10.38\n G_M18208_IG04:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.BillSettingVersion]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        lea      rdi, bword ptr [rbx\u002B0x28]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=135 bbWeight=0.50 PerfScore 11.00\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=138 bbWeight=0.50 PerfScore 11.12\n G_M18208_IG05:\n-       mov      rax, rbx\n\u002B       mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M18208_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 429, prolog size 19, PerfScore 49.75, instruction count 99, allocated bytes for code 429 (MethodHash=08d1b8df) for method Stripe.V2.Billing.BillSettings.VersionService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.BillSettings.VersionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.BillSettingVersion]:this (FullOpts)\n\u002B; Total bytes of code 388, prolog size 16, PerfScore 47.00, instruction count 92, allocated bytes for code 388 (MethodHash=08d1b8df) for method Stripe.V2.Billing.BillSettings.VersionService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.BillSettings.VersionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.BillSettingVersion]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":429,"DiffBytes":388},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollectionAsync[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[byte]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[byte,short]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[byte,MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M29041_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M29041_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M29041_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[byte,short]:Render(MongoDB.Driver.RenderArgs\u00601[byte]):MongoDB.Driver.RenderedPipelineDefinition\u00601[short]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M29041_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M29041_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M29041_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M29041_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M29041_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M29041_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M29041_IG07:\n        test     rax, rax\n-       je       SHORT G_M29041_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M29041_IG08:\n\u002B       je       SHORT G_M29041_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M29041_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M29041_IG10\n\u002B       jmp      SHORT G_M29041_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M29041_IG09:\n\u002BG_M29041_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M29041_IG10:\n\u002BG_M29041_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M29041_IG14\n\u002B       je       SHORT G_M29041_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M29041_IG11:\n\u002BG_M29041_IG08:\n        test     rax, rax\n-       je       SHORT G_M29041_IG15\n\u002B       je       SHORT G_M29041_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M29041_IG12:\n\u002BG_M29041_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M29041_IG15\n\u002B       jne      SHORT G_M29041_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M29041_IG13:\n\u002BG_M29041_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M29041_IG15\n\u002B       je       SHORT G_M29041_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M29041_IG14:\n\u002BG_M29041_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M29041_IG22\n\u002B       jmp      SHORT G_M29041_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M29041_IG15:\n\u002BG_M29041_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M29041_IG20\n\u002B       je       SHORT G_M29041_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M29041_IG16:\n\u002BG_M29041_IG13:\n        test     rax, rax\n-       je       SHORT G_M29041_IG18\n\u002B       je       SHORT G_M29041_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M29041_IG17:\n\u002BG_M29041_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M29041_IG19\n\u002B       je       SHORT G_M29041_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M29041_IG18:\n\u002BG_M29041_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M29041_IG21\n\u002B       jmp      SHORT G_M29041_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M29041_IG19:\n\u002BG_M29041_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M29041_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M29041_IG21\n\u002B       jmp      SHORT G_M29041_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M29041_IG20:\n\u002BG_M29041_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M29041_IG21:\n\u002BG_M29041_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M29041_IG22:\n\u002BG_M29041_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M29041_IG27\n\u002B       je       G_M29041_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M29041_IG27\n\u002B       je       G_M29041_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M29041_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[byte,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M29041_IG24\n\u002B       jne      SHORT G_M29041_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M29041_IG23:\n\u002BG_M29041_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M29041_IG24:\n\u002BG_M29041_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M29041_IG25:\n-       add      rsp, 232\n\u002BG_M29041_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M29041_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M29041_IG26:\n\u002BG_M29041_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M29041_IG27:\n\u002BG_M29041_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M29041_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=89178e8e) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollectionAsync[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=89178e8e) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollectionAsync[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.Cadences.SpendModifierRuleService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.Cadences.SpendModifierRuleListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.CadenceSpendModifier]:this (FullOpts)","Category":"improvement","Description":"429 -\u003E 388 bytes (-41)","ExtraInfo":null,"Diff":"@@ -1,148 \u002B1,140 @@\n ; Assembly listing for method Stripe.V2.Billing.Cadences.SpendModifierRuleService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.Cadences.SpendModifierRuleListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.CadenceSpendModifier]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 12 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T03] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.Cadences.SpendModifierRuleService\u003E\n-;  V01 arg1         [V01,T06] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.Cadences.SpendModifierRuleListOptions\u003E\n-;  V03 arg3         [V03,T05] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T05] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V02 arg2         [V02,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.Cadences.SpendModifierRuleListOptions\u003E\n\u002B;  V03 arg3         [V03,T04] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V06 tmp1         [V06,T09] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.CadenceSpendModifier]\u003E\n\u002B;  V06 tmp1         [V06,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.CadenceSpendModifier]\u003E\n ;  V07 tmp2         [V07,T02] (  4,  6   )     ref  -\u003E  r12         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V08 tmp3         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.CadenceSpendModifier]\u003E\n ;* V09 tmp4         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp5         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.CadenceSpendModifier]\u003E\n-;  V11 tmp6         [V11,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp7         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp8         [V13,T07] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp9         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp10        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 tmp11        [V16,T08] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V17 rat0         [V17,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp5         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.CadenceSpendModifier]\u003E\n\u002B;* V11 tmp6         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp7         [V12,T07] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp8         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp9         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 tmp10        [V15,T08] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V16 rat0         [V16,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M37943_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rdx\n-       mov      r14, rcx\n\u002B       mov      r14, rdx\n\u002B       mov      r15, rcx\n        mov      r13, r8\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M37943_IG02:\n        mov      rdi, rsi\n        mov      rax, 0xD1FFAB1E      ; code for System.Net.WebUtility:UrlEncode(System.String):System.String\n        call     [rax]System.Net.WebUtility:UrlEncode(System.String):System.String\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; \u0027/v2/billing/cadences/\u0027\n        mov      rdx, 0xD1FFAB1E      ; \u0027/spend_modifier_rules\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Concat(System.String,System.String,System.String):System.String\n        call     [rax]System.String:Concat(System.String,System.String,System.String):System.String\n        mov      r12, rax\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for Stripe.ApiModeUtils:GetApiMode(System.String):int\n        call     [rax]Stripe.ApiModeUtils:GetApiMode(System.String):int\n        cmp      eax, 1\n        je       G_M37943_IG04\n \t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 12.50\n G_M37943_IG03:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.CadenceSpendModifier]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       lea      rdi, bword ptr [rbx\u002B0x28]\n\u002B       lea      rdi, bword ptr [r14\u002B0x28]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M37943_IG05\n-\t\t\t\t\t\t;; size=168 bbWeight=0.50 PerfScore 14.00\n\u002B\t\t\t\t\t\t;; size=127 bbWeight=0.50 PerfScore 10.38\n G_M37943_IG04:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.CadenceSpendModifier]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        lea      rdi, bword ptr [rbx\u002B0x28]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=135 bbWeight=0.50 PerfScore 11.00\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=138 bbWeight=0.50 PerfScore 11.12\n G_M37943_IG05:\n-       mov      rax, rbx\n\u002B       mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M37943_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 429, prolog size 19, PerfScore 49.75, instruction count 99, allocated bytes for code 429 (MethodHash=e0426bc8) for method Stripe.V2.Billing.Cadences.SpendModifierRuleService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.Cadences.SpendModifierRuleListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.CadenceSpendModifier]:this (FullOpts)\n\u002B; Total bytes of code 388, prolog size 16, PerfScore 47.00, instruction count 92, allocated bytes for code 388 (MethodHash=e0426bc8) for method Stripe.V2.Billing.Cadences.SpendModifierRuleService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.Cadences.SpendModifierRuleListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.CadenceSpendModifier]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":429,"DiffBytes":388},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[byte]:Aggregate[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)","Category":"improvement","Description":"1,813 -\u003E 1,750 bytes (-63)","ExtraInfo":null,"Diff":"@@ -14,16 \u002B14,16 @@\n ;  V03 arg2         [V03,T04] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[byte,System.__Canon]\u003E\n ;  V04 arg3         [V04,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T39] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n\u002B;  V06 loc0         [V06,T38] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n-;  V08 loc2         [V08,T40] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V09 loc3         [V09,T46] (  3,  1.50)     ref  -\u003E  [rbp-0x80]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V10 loc4         [V10,T47] (  3,  1.50)     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.__Canon]\u003E\n\u002B;  V08 loc2         [V08,T39] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V09 loc3         [V09,T45] (  3,  1.50)     ref  -\u003E  [rbp-0x80]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V10 loc4         [V10,T46] (  3,  1.50)     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.__Canon]\u003E\n ;  V11 OutArgs      [V11    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V12 tmp1         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V13 tmp2         [V13    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V14 tmp3         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V15 tmp4         [V15,T29] (  4,  2.20)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n\u002B;  V15 tmp4         [V15,T28] (  4,  2.20)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n ;* V16 tmp5         [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V17 tmp6         [V17    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V18 tmp7         [V18    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -43,22 \u002B43,22 @@\n ;* V32 tmp21        [V32    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V33 tmp22        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V34 tmp23        [V34    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V35 tmp24        [V35,T33] (  3,  2   )     int  -\u003E  rdi        \n-;  V36 tmp25        [V36,T06] (  4,  7   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V37 tmp26        [V37    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V38 tmp27        [V38,T17] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V39 tmp28        [V39,T18] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V35 tmp24        [V35,T32] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V36 tmp25        [V36,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V37 tmp26        [V37    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V38 tmp27        [V38,T17] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V39 tmp28        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V40 tmp29        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V41 tmp30        [V41,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V42 tmp31        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V43 tmp32        [V43,T45] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V43 tmp32        [V43,T44] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V44 tmp33        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V45 tmp34        [V45,T31] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V46 tmp35        [V46,T19] (  3,  3   )     ref  -\u003E  [rbp-0x98]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V45 tmp34        [V45,T30] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V46 tmp35        [V46,T18] (  3,  3   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V47 tmp36        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V48 tmp37        [V48,T08] ( 10,  5   )     ref  -\u003E  [rbp-0xA0]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;  V48 tmp37        [V48,T08] ( 10,  5   )     ref  -\u003E  [rbp-0x98]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V49 tmp38        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp39        [V50,T09] ( 10,  5   )     ref  -\u003E  [rbp-0xA8]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;  V50 tmp39        [V50,T09] ( 10,  5   )     ref  -\u003E  [rbp-0xA0]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V51 tmp40        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V52 tmp41        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V53 tmp42        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -67,14 \u002B67,14 @@\n ;* V56 tmp45        [V56    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.__Canon]\u003E\n ;* V57 tmp46        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V58 tmp47        [V58    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V59 tmp48        [V59,T48] (  2,  1   )     ref  -\u003E  [rbp-0xB0]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V60 tmp49        [V60,T30] (  4,  2.20)    long  -\u003E  [rbp-0x78]  \u0022Inlining Arg\u0022\n\u002B;  V59 tmp48        [V59,T47] (  2,  1   )     ref  -\u003E  [rbp-0xA8]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V60 tmp49        [V60,T29] (  4,  2.20)    long  -\u003E  [rbp-0x78]  \u0022Inlining Arg\u0022\n ;* V61 tmp50        [V61    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V62 tmp51        [V62,T32] (  8,  2   )     ref  -\u003E  [rbp-0xB8]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V63 tmp52        [V63,T20] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V62 tmp51        [V62,T31] (  8,  2   )     ref  -\u003E  [rbp-0xB0]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V63 tmp52        [V63,T19] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V64 tmp53        [V64    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V65 tmp54        [V65,T49] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.__Canon]\u003E\n-;  V66 tmp55        [V66,T38] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V65 tmp54        [V65,T48] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.__Canon]\u003E\n\u002B;  V66 tmp55        [V66,T37] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V67 tmp56        [V67    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V68 tmp57        [V68,T10] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V69 tmp58        [V69    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -82,36 \u002B82,36 @@\n ;* V71 tmp60        [V71    ] (  0,  0   )     ref  -\u003E  zero-ref   \n... diff truncated; middle omitted ...\n\u002BG_M63812_IG37:\n\u002B       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rdi, gword ptr [rsi\u002B0x10]\n\u002B       mov      rax, rdi\n\u002B       test     rax, rax\n\u002B       je       SHORT G_M63812_IG38\n        mov      rdi, rax\n        mov      esi, 1\n        mov      gword ptr [rbp-0xA0], rax\n@@ -473,35 \u002B469,19 @@ G_M63812_IG39:\n        call     [rcx\u002B0x28]System.Threading.CancellationTokenSource:Dispose(bool):this\n        mov      rdi, gword ptr [rbp-0xA0]\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n-       call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=77 bbWeight=0.50 PerfScore 9.62\n-G_M63812_IG40:\n-       mov      rsi, gword ptr [rbp-0x90]\n-       mov      rdi, gword ptr [rsi\u002B0x10]\n-       mov      rax, rdi\n-       test     rax, rax\n-       je       SHORT G_M63812_IG41\n-       mov      rdi, rax\n-       mov      esi, 1\n-       mov      gword ptr [rbp-0xA8], rax\n-       mov      rcx, qword ptr [rax]\n-       mov      rcx, qword ptr [rcx\u002B0x40]\n-       call     [rcx\u002B0x28]System.Threading.CancellationTokenSource:Dispose(bool):this\n-       mov      rdi, gword ptr [rbp-0xA8]\n-       mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.62\n-G_M63812_IG41:\n\u002BG_M63812_IG38:\n        mov      rdi, qword ptr [r14\u002B0x18]\n        cmp      qword ptr [rdi\u002B0x08], 56\n-       jle      SHORT G_M63812_IG45\n\u002B       jle      SHORT G_M63812_IG42\n \t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 2.50\n-G_M63812_IG42:\n\u002BG_M63812_IG39:\n        mov      rsi, qword ptr [rdi\u002B0x38]\n        test     rsi, rsi\n-       je       SHORT G_M63812_IG45\n\u002B       je       SHORT G_M63812_IG42\n \t\t\t\t\t\t;; size=9 bbWeight=0.40 PerfScore 1.30\n-G_M63812_IG43:\n\u002BG_M63812_IG40:\n        mov      rdi, r15\n        mov      rdx, r13\n        mov      rcx, r12\n@@ -510,8 \u002B490,8 @@ G_M63812_IG43:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateAggregateToCollectionResultCursor[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M63812_IG44:\n-       add      rsp, 216\n\u002BG_M63812_IG41:\n\u002B       add      rsp, 200\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -520,15 \u002B500,15 @@ G_M63812_IG44:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M63812_IG45:\n\u002BG_M63812_IG42:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      SHORT G_M63812_IG43\n\u002B       jmp      SHORT G_M63812_IG40\n \t\t\t\t\t\t;; size=30 bbWeight=0.18 PerfScore 1.08\n-G_M63812_IG46:\n\u002BG_M63812_IG43:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -536,53 \u002B516,53 @@ G_M63812_IG46:\n        mov      rdi, rax\n        jmp      G_M63812_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M63812_IG47:\n\u002BG_M63812_IG44:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M63812_IG37\n\u002B       jmp      G_M63812_IG34\n \t\t\t\t\t\t;; size=33 bbWeight=0.18 PerfScore 1.08\n-G_M63812_IG48:\n\u002BG_M63812_IG45:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M63812_IG24\n\u002B       jmp      G_M63812_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.10 PerfScore 0.60\n-G_M63812_IG49:\n\u002BG_M63812_IG46:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M63812_IG25\n\u002B       jmp      G_M63812_IG22\n \t\t\t\t\t\t;; size=33 bbWeight=0.10 PerfScore 0.60\n-G_M63812_IG50:\n\u002BG_M63812_IG47:\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      qword ptr [rbp-0x78], rax\n-       jmp      G_M63812_IG27\n\u002B       jmp      G_M63812_IG24\n \t\t\t\t\t\t;; size=31 bbWeight=0.10 PerfScore 0.65\n-G_M63812_IG51:\n\u002BG_M63812_IG48:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M63812_IG52:\n\u002BG_M63812_IG49:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M63812_IG53:\n-       cmp      gword ptr [rbp-0x90], 0\n-       je       SHORT G_M63812_IG55\n-       mov      rsi, gword ptr [rbp-0x90]\n\u002BG_M63812_IG50:\n\u002B       cmp      gword ptr [rbp-0x88], 0\n\u002B       je       SHORT G_M63812_IG52\n\u002B       mov      rsi, gword ptr [rbp-0x88]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M63812_IG54\n\u002B       je       SHORT G_M63812_IG51\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -592,11 \u002B572,11 @@ G_M63812_IG53:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M63812_IG54:\n-       mov      rsi, gword ptr [rbp-0x90]\n\u002BG_M63812_IG51:\n\u002B       mov      rsi, gword ptr [rbp-0x88]\n        mov      r15, gword ptr [rsi\u002B0x10]\n        test     r15, r15\n-       je       SHORT G_M63812_IG55\n\u002B       je       SHORT G_M63812_IG52\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -606,23 \u002B586,23 @@ G_M63812_IG54:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M63812_IG55:\n\u002BG_M63812_IG52:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M63812_IG56:\n\u002BG_M63812_IG53:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M63812_IG57:\n\u002BG_M63812_IG54:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M63812_IG58:\n-       cmp      gword ptr [rbp-0xB8], 0\n-       je       SHORT G_M63812_IG60\n-       mov      rsi, gword ptr [rbp-0xB8]\n\u002BG_M63812_IG55:\n\u002B       cmp      gword ptr [rbp-0xB0], 0\n\u002B       je       SHORT G_M63812_IG57\n\u002B       mov      rsi, gword ptr [rbp-0xB0]\n        mov      r13, gword ptr [rsi\u002B0x08]\n        test     r13, r13\n-       je       SHORT G_M63812_IG59\n\u002B       je       SHORT G_M63812_IG56\n        mov      rdi, r13\n        mov      esi, 1\n        mov      rax, qword ptr [r13]\n@@ -632,11 \u002B612,11 @@ G_M63812_IG58:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M63812_IG59:\n-       mov      rsi, gword ptr [rbp-0xB8]\n\u002BG_M63812_IG56:\n\u002B       mov      rsi, gword ptr [rbp-0xB0]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M63812_IG60\n\u002B       je       SHORT G_M63812_IG57\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -646,13 \u002B626,13 @@ G_M63812_IG59:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M63812_IG60:\n\u002BG_M63812_IG57:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M63812_IG61:\n\u002BG_M63812_IG58:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1813, prolog size 66, PerfScore 196.21, instruction count 418, allocated bytes for code 1813 (MethodHash=85ba06bb) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:Aggregate[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)\n\u002B; Total bytes of code 1750, prolog size 66, PerfScore 186.83, instruction count 404, allocated bytes for code 1750 (MethodHash=85ba06bb) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:Aggregate[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1813,"DiffBytes":1750},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.CollectionSettings.VersionService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.CollectionSettings.VersionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.CollectionSettingVersion]:this (FullOpts)","Category":"improvement","Description":"429 -\u003E 388 bytes (-41)","ExtraInfo":null,"Diff":"@@ -1,148 \u002B1,140 @@\n ; Assembly listing for method Stripe.V2.Billing.CollectionSettings.VersionService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.CollectionSettings.VersionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.CollectionSettingVersion]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 12 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T03] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.CollectionSettings.VersionService\u003E\n-;  V01 arg1         [V01,T06] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.CollectionSettings.VersionListOptions\u003E\n-;  V03 arg3         [V03,T05] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T05] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V02 arg2         [V02,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.CollectionSettings.VersionListOptions\u003E\n\u002B;  V03 arg3         [V03,T04] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V06 tmp1         [V06,T09] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.CollectionSettingVersion]\u003E\n\u002B;  V06 tmp1         [V06,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.CollectionSettingVersion]\u003E\n ;  V07 tmp2         [V07,T02] (  4,  6   )     ref  -\u003E  r12         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V08 tmp3         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.CollectionSettingVersion]\u003E\n ;* V09 tmp4         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp5         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.CollectionSettingVersion]\u003E\n-;  V11 tmp6         [V11,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp7         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp8         [V13,T07] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp9         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp10        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 tmp11        [V16,T08] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V17 rat0         [V17,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp5         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.CollectionSettingVersion]\u003E\n\u002B;* V11 tmp6         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp7         [V12,T07] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp8         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp9         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 tmp10        [V15,T08] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V16 rat0         [V16,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M59549_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rdx\n-       mov      r14, rcx\n\u002B       mov      r14, rdx\n\u002B       mov      r15, rcx\n        mov      r13, r8\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M59549_IG02:\n        mov      rdi, rsi\n        mov      rax, 0xD1FFAB1E      ; code for System.Net.WebUtility:UrlEncode(System.String):System.String\n        call     [rax]System.Net.WebUtility:UrlEncode(System.String):System.String\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; \u0027/v2/billing/collection_settings/\u0027\n        mov      rdx, 0xD1FFAB1E      ; \u0027/versions\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Concat(System.String,System.String,System.String):System.String\n        call     [rax]System.String:Concat(System.String,System.String,System.String):System.String\n        mov      r12, rax\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for Stripe.ApiModeUtils:GetApiMode(System.String):int\n        call     [rax]Stripe.ApiModeUtils:GetApiMode(System.String):int\n        cmp      eax, 1\n        je       G_M59549_IG04\n \t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 12.50\n G_M59549_IG03:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.CollectionSettingVersion]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       lea      rdi, bword ptr [rbx\u002B0x28]\n\u002B       lea      rdi, bword ptr [r14\u002B0x28]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M59549_IG05\n-\t\t\t\t\t\t;; size=168 bbWeight=0.50 PerfScore 14.00\n\u002B\t\t\t\t\t\t;; size=127 bbWeight=0.50 PerfScore 10.38\n G_M59549_IG04:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.CollectionSettingVersion]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        lea      rdi, bword ptr [rbx\u002B0x28]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=135 bbWeight=0.50 PerfScore 11.00\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=138 bbWeight=0.50 PerfScore 11.12\n G_M59549_IG05:\n-       mov      rax, rbx\n\u002B       mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M59549_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 429, prolog size 19, PerfScore 49.75, instruction count 99, allocated bytes for code 429 (MethodHash=94c81762) for method Stripe.V2.Billing.CollectionSettings.VersionService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.CollectionSettings.VersionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.CollectionSettingVersion]:this (FullOpts)\n\u002B; Total bytes of code 388, prolog size 16, PerfScore 47.00, instruction count 92, allocated bytes for code 388 (MethodHash=94c81762) for method Stripe.V2.Billing.CollectionSettings.VersionService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.CollectionSettings.VersionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.CollectionSettingVersion]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":429,"DiffBytes":388},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollectionAsync[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[double]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[double,System.Nullable\u00601[int]]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[double,MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M31473_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M31473_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M31473_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[double,System.Nullable\u00601[int]]:Render(MongoDB.Driver.RenderArgs\u00601[double]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M31473_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M31473_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M31473_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M31473_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M31473_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M31473_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M31473_IG07:\n        test     rax, rax\n-       je       SHORT G_M31473_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M31473_IG08:\n\u002B       je       SHORT G_M31473_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M31473_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M31473_IG10\n\u002B       jmp      SHORT G_M31473_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M31473_IG09:\n\u002BG_M31473_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M31473_IG10:\n\u002BG_M31473_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M31473_IG14\n\u002B       je       SHORT G_M31473_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M31473_IG11:\n\u002BG_M31473_IG08:\n        test     rax, rax\n-       je       SHORT G_M31473_IG15\n\u002B       je       SHORT G_M31473_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M31473_IG12:\n\u002BG_M31473_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M31473_IG15\n\u002B       jne      SHORT G_M31473_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M31473_IG13:\n\u002BG_M31473_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M31473_IG15\n\u002B       je       SHORT G_M31473_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M31473_IG14:\n\u002BG_M31473_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M31473_IG22\n\u002B       jmp      SHORT G_M31473_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M31473_IG15:\n\u002BG_M31473_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M31473_IG20\n\u002B       je       SHORT G_M31473_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M31473_IG16:\n\u002BG_M31473_IG13:\n        test     rax, rax\n-       je       SHORT G_M31473_IG18\n\u002B       je       SHORT G_M31473_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M31473_IG17:\n\u002BG_M31473_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M31473_IG19\n\u002B       je       SHORT G_M31473_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M31473_IG18:\n\u002BG_M31473_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M31473_IG21\n\u002B       jmp      SHORT G_M31473_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M31473_IG19:\n\u002BG_M31473_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M31473_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M31473_IG21\n\u002B       jmp      SHORT G_M31473_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M31473_IG20:\n\u002BG_M31473_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M31473_IG21:\n\u002BG_M31473_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M31473_IG22:\n\u002BG_M31473_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M31473_IG27\n\u002B       je       G_M31473_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M31473_IG27\n\u002B       je       G_M31473_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M31473_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[double,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M31473_IG24\n\u002B       jne      SHORT G_M31473_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M31473_IG23:\n\u002BG_M31473_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M31473_IG24:\n\u002BG_M31473_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M31473_IG25:\n-       add      rsp, 232\n\u002BG_M31473_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M31473_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M31473_IG26:\n\u002BG_M31473_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M31473_IG27:\n\u002BG_M31473_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M31473_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=488f850e) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollectionAsync[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=488f850e) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollectionAsync[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.Intents.ActionService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.Intents.ActionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.IntentAction]:this (FullOpts)","Category":"improvement","Description":"429 -\u003E 388 bytes (-41)","ExtraInfo":null,"Diff":"@@ -1,148 \u002B1,140 @@\n ; Assembly listing for method Stripe.V2.Billing.Intents.ActionService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.Intents.ActionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.IntentAction]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 12 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T03] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.Intents.ActionService\u003E\n-;  V01 arg1         [V01,T06] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.Intents.ActionListOptions\u003E\n-;  V03 arg3         [V03,T05] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T05] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V02 arg2         [V02,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.Intents.ActionListOptions\u003E\n\u002B;  V03 arg3         [V03,T04] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V06 tmp1         [V06,T09] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.IntentAction]\u003E\n\u002B;  V06 tmp1         [V06,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.IntentAction]\u003E\n ;  V07 tmp2         [V07,T02] (  4,  6   )     ref  -\u003E  r12         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V08 tmp3         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.IntentAction]\u003E\n ;* V09 tmp4         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp5         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.IntentAction]\u003E\n-;  V11 tmp6         [V11,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp7         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp8         [V13,T07] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp9         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp10        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 tmp11        [V16,T08] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V17 rat0         [V17,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp5         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.IntentAction]\u003E\n\u002B;* V11 tmp6         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp7         [V12,T07] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp8         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp9         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 tmp10        [V15,T08] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V16 rat0         [V16,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M29557_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rdx\n-       mov      r14, rcx\n\u002B       mov      r14, rdx\n\u002B       mov      r15, rcx\n        mov      r13, r8\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M29557_IG02:\n        mov      rdi, rsi\n        mov      rax, 0xD1FFAB1E      ; code for System.Net.WebUtility:UrlEncode(System.String):System.String\n        call     [rax]System.Net.WebUtility:UrlEncode(System.String):System.String\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; \u0027/v2/billing/intents/\u0027\n        mov      rdx, 0xD1FFAB1E      ; \u0027/actions\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Concat(System.String,System.String,System.String):System.String\n        call     [rax]System.String:Concat(System.String,System.String,System.String):System.String\n        mov      r12, rax\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for Stripe.ApiModeUtils:GetApiMode(System.String):int\n        call     [rax]Stripe.ApiModeUtils:GetApiMode(System.String):int\n        cmp      eax, 1\n        je       G_M29557_IG04\n \t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 12.50\n G_M29557_IG03:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.IntentAction]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       lea      rdi, bword ptr [rbx\u002B0x28]\n\u002B       lea      rdi, bword ptr [r14\u002B0x28]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M29557_IG05\n-\t\t\t\t\t\t;; size=168 bbWeight=0.50 PerfScore 14.00\n\u002B\t\t\t\t\t\t;; size=127 bbWeight=0.50 PerfScore 10.38\n G_M29557_IG04:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.IntentAction]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        lea      rdi, bword ptr [rbx\u002B0x28]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=135 bbWeight=0.50 PerfScore 11.00\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=138 bbWeight=0.50 PerfScore 11.12\n G_M29557_IG05:\n-       mov      rax, rbx\n\u002B       mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M29557_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 429, prolog size 19, PerfScore 49.75, instruction count 99, allocated bytes for code 429 (MethodHash=8f9a8c8a) for method Stripe.V2.Billing.Intents.ActionService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.Intents.ActionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.IntentAction]:this (FullOpts)\n\u002B; Total bytes of code 388, prolog size 16, PerfScore 47.00, instruction count 92, allocated bytes for code 388 (MethodHash=8f9a8c8a) for method Stripe.V2.Billing.Intents.ActionService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.Intents.ActionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.IntentAction]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":429,"DiffBytes":388},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollectionAsync[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[double]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[double,System.Numerics.Vector\u00601[float]]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[double,MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M15857_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M15857_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M15857_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[double,System.Numerics.Vector\u00601[float]]:Render(MongoDB.Driver.RenderArgs\u00601[double]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M15857_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M15857_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M15857_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M15857_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M15857_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M15857_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M15857_IG07:\n        test     rax, rax\n-       je       SHORT G_M15857_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M15857_IG08:\n\u002B       je       SHORT G_M15857_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M15857_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M15857_IG10\n\u002B       jmp      SHORT G_M15857_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M15857_IG09:\n\u002BG_M15857_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M15857_IG10:\n\u002BG_M15857_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M15857_IG14\n\u002B       je       SHORT G_M15857_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M15857_IG11:\n\u002BG_M15857_IG08:\n        test     rax, rax\n-       je       SHORT G_M15857_IG15\n\u002B       je       SHORT G_M15857_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M15857_IG12:\n\u002BG_M15857_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M15857_IG15\n\u002B       jne      SHORT G_M15857_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M15857_IG13:\n\u002BG_M15857_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M15857_IG15\n\u002B       je       SHORT G_M15857_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M15857_IG14:\n\u002BG_M15857_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M15857_IG22\n\u002B       jmp      SHORT G_M15857_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M15857_IG15:\n\u002BG_M15857_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M15857_IG20\n\u002B       je       SHORT G_M15857_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M15857_IG16:\n\u002BG_M15857_IG13:\n        test     rax, rax\n-       je       SHORT G_M15857_IG18\n\u002B       je       SHORT G_M15857_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M15857_IG17:\n\u002BG_M15857_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M15857_IG19\n\u002B       je       SHORT G_M15857_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M15857_IG18:\n\u002BG_M15857_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M15857_IG21\n\u002B       jmp      SHORT G_M15857_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M15857_IG19:\n\u002BG_M15857_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M15857_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M15857_IG21\n\u002B       jmp      SHORT G_M15857_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M15857_IG20:\n\u002BG_M15857_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M15857_IG21:\n\u002BG_M15857_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M15857_IG22:\n\u002BG_M15857_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M15857_IG27\n\u002B       je       G_M15857_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M15857_IG27\n\u002B       je       G_M15857_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M15857_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[double,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M15857_IG24\n\u002B       jne      SHORT G_M15857_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M15857_IG23:\n\u002BG_M15857_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M15857_IG24:\n\u002BG_M15857_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M15857_IG25:\n-       add      rsp, 232\n\u002BG_M15857_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M15857_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M15857_IG26:\n\u002BG_M15857_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M15857_IG27:\n\u002BG_M15857_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M15857_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=021fc20e) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollectionAsync[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=021fc20e) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollectionAsync[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.LicenseFees.VersionService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.LicenseFees.VersionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.LicenseFeeVersion]:this (FullOpts)","Category":"improvement","Description":"429 -\u003E 388 bytes (-41)","ExtraInfo":null,"Diff":"@@ -1,148 \u002B1,140 @@\n ; Assembly listing for method Stripe.V2.Billing.LicenseFees.VersionService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.LicenseFees.VersionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.LicenseFeeVersion]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 12 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T03] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.LicenseFees.VersionService\u003E\n-;  V01 arg1         [V01,T06] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.LicenseFees.VersionListOptions\u003E\n-;  V03 arg3         [V03,T05] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T05] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V02 arg2         [V02,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.LicenseFees.VersionListOptions\u003E\n\u002B;  V03 arg3         [V03,T04] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V06 tmp1         [V06,T09] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.LicenseFeeVersion]\u003E\n\u002B;  V06 tmp1         [V06,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.LicenseFeeVersion]\u003E\n ;  V07 tmp2         [V07,T02] (  4,  6   )     ref  -\u003E  r12         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V08 tmp3         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.LicenseFeeVersion]\u003E\n ;* V09 tmp4         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp5         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.LicenseFeeVersion]\u003E\n-;  V11 tmp6         [V11,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp7         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp8         [V13,T07] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp9         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp10        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 tmp11        [V16,T08] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V17 rat0         [V17,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp5         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.LicenseFeeVersion]\u003E\n\u002B;* V11 tmp6         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp7         [V12,T07] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp8         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp9         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 tmp10        [V15,T08] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V16 rat0         [V16,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M60864_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rdx\n-       mov      r14, rcx\n\u002B       mov      r14, rdx\n\u002B       mov      r15, rcx\n        mov      r13, r8\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M60864_IG02:\n        mov      rdi, rsi\n        mov      rax, 0xD1FFAB1E      ; code for System.Net.WebUtility:UrlEncode(System.String):System.String\n        call     [rax]System.Net.WebUtility:UrlEncode(System.String):System.String\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; \u0027/v2/billing/license_fees/\u0027\n        mov      rdx, 0xD1FFAB1E      ; \u0027/versions\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Concat(System.String,System.String,System.String):System.String\n        call     [rax]System.String:Concat(System.String,System.String,System.String):System.String\n        mov      r12, rax\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for Stripe.ApiModeUtils:GetApiMode(System.String):int\n        call     [rax]Stripe.ApiModeUtils:GetApiMode(System.String):int\n        cmp      eax, 1\n        je       G_M60864_IG04\n \t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 12.50\n G_M60864_IG03:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.LicenseFeeVersion]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       lea      rdi, bword ptr [rbx\u002B0x28]\n\u002B       lea      rdi, bword ptr [r14\u002B0x28]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M60864_IG05\n-\t\t\t\t\t\t;; size=168 bbWeight=0.50 PerfScore 14.00\n\u002B\t\t\t\t\t\t;; size=127 bbWeight=0.50 PerfScore 10.38\n G_M60864_IG04:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.LicenseFeeVersion]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        lea      rdi, bword ptr [rbx\u002B0x28]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=135 bbWeight=0.50 PerfScore 11.00\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=138 bbWeight=0.50 PerfScore 11.12\n G_M60864_IG05:\n-       mov      rax, rbx\n\u002B       mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M60864_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 429, prolog size 19, PerfScore 49.75, instruction count 99, allocated bytes for code 429 (MethodHash=57eb123f) for method Stripe.V2.Billing.LicenseFees.VersionService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.LicenseFees.VersionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.LicenseFeeVersion]:this (FullOpts)\n\u002B; Total bytes of code 388, prolog size 16, PerfScore 47.00, instruction count 92, allocated bytes for code 388 (MethodHash=57eb123f) for method Stripe.V2.Billing.LicenseFees.VersionService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.LicenseFees.VersionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.LicenseFeeVersion]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":429,"DiffBytes":388},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollectionAsync[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"951 -\u003E 888 bytes (-63)","ExtraInfo":null,"Diff":"@@ -10,18 \u002B10,18 @@\n ;\n ;  V00 this         [V00,T03] (  5,  5   )     ref  -\u003E  r14         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[double]\u003E\n ;  V01 TypeCtx      [V01,T02] (  7,  5.40)    long  -\u003E  r15         single-def\n-;  V02 arg1         [V02,T06] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V02 arg1         [V02,T05] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V03 arg2         [V03,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[double,System.__Canon]\u003E\n ;  V04 arg3         [V04,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T22] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n\u002B;  V06 loc0         [V06,T21] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n-;  V08 loc2         [V08,T23] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n-;  V09 loc3         [V09,T21] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V08 loc2         [V08,T22] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n\u002B;  V09 loc3         [V09,T20] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V12 tmp2         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V13 tmp3         [V13,T29] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V13 tmp3         [V13,T28] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V14 tmp4         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V15 tmp5         [V15    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V16 tmp6         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n@@ -39,26 \u002B39,26 @@\n ;* V28 tmp18        [V28    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V29 tmp19        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V30 tmp20        [V30    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V31 tmp21        [V31,T20] (  3,  2   )     int  -\u003E  registers  \n-;  V32 tmp22        [V32,T05] (  4,  7   )     ref  -\u003E  [rbp-0xD8]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V33 tmp23        [V33    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V34 tmp24        [V34,T18] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V35 tmp25        [V35,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V31 tmp21        [V31,T19] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V32 tmp22        [V32,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V33 tmp23        [V33    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V34 tmp24        [V34,T18] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V37 tmp27        [V37,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V38 tmp28        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V39 tmp29        [V39,T26] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V39 tmp29        [V39,T25] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V40 tmp30        [V40    ] ( 11, 10.50)  struct (88) [rbp-0xD0]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[double,MongoDB.Bson.BsonDocument]\u003E\n ;* V41 tmp31        [V41    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V42 tmp32        [V42,T13] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V43 tmp33        [V43,T17] (  4,  3.50)     ref  -\u003E  rax        \n-;  V44 tmp34        [V44,T14] (  2,  2   )     ref  -\u003E  [rbp-0xE0]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp35        [V45,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V15.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp36        [V46,T25] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V15.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp34        [V44,T14] (  2,  2   )     ref  -\u003E  [rbp-0xD8]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp35        [V45,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V15.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp36        [V46,T24] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V15.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V22._name (fldOffset=0x0)\u0022 P-DEP\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V22._value (fldOffset=0x8)\u0022 P-DEP\n-;  V49 tmp39        [V49,T27] (  2,  1   )     ref  -\u003E  rax         \u0022field V23._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V50 tmp40        [V50,T28] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V23._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V49 tmp39        [V49,T26] (  2,  1   )     ref  -\u003E  rax         \u0022field V23._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V50 tmp40        [V50,T27] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V23._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V51 tmp41        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V41.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;  V52 tmp42        [V52,T15] (  2,  4   )    long  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V53 tmp43        [V53,T16] (  2,  4   )    long  -\u003E  rsi         \u0022argument with side effect\u0022\n@@ -67,7 \u002B67,7 @@\n ;  V56 rat2         [V56,T12] (  3,  4   )    long  -\u003E  rsi         \u0022runtime lookup\u0022\n ;  V57 rat3         [V57,T08] (  3,  5.60)    long  -\u003E  rsi         \u0022fgMakeTemp is creating a new local variable\u0022\n ;\n-; Lcl frame size = 248\n\u002B; Lcl frame size = 232\n \n G_M59121_IG01:\n        push     rbp\n@@ -76,14 \u002B76,14 @@ G_M59121_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 248\n-       lea      rbp, [rsp\u002B0x120]\n\u002B       sub      rsp, 232\n\u002B       lea      rbp, [rsp\u002B0x110]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0xD0], zmm8\n        vmovdqu32 zmmword ptr [rbp-0x90], zmm8\n        vmovdqu  ymmword ptr [rbp-0x50], ymm8\n        mov      qword ptr [rbp-0x30], rsi\n-       mov      gword ptr [rbp-0xE0], r9\n\u002B       mov      gword ptr [rbp-0xD8], r9\n        mov      r14, rdi\n        mov      r15, rsi\n        mov      r12, rdx\n@@ -99,7 \u002B99,7 @@ G_M59121_IG02:\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M59121_IG29\n\u002B       je       G_M59121_IG26\n \t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 9.25\n G_M59121_IG03:\n        mov      rsi, r13\n@@ -149,90 \u002B149,70 @@ G_M59121_IG05:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[double,System.__Canon]:Render(MongoDB.Driver.RenderArgs\u00601[double]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0xD8], rax\n-       test     rax, rax\n-       je       G_M59121_IG30\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M59121_IG07\n-\t\t\t\t\t\t;; size=181 bbWeight=1 PerfScore 43.25\n-G_M59121_IG06:\n-       lea      rsi, [rbp-0x78]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M59121_IG08\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M59121_IG07:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M59121_IG27\n        lea      rdx, [rbp-0x78]\n-       mov      rsi, gword ptr [rbp-0xD8]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M59121_IG08:\n        test     rax, rax\n-       je       SHORT G_M59121_IG10\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M59121_IG09:\n\u002B       je       SHORT G_M59121_IG07\n\u002B\t\t\t\t\t\t;; size=175 bbWeight=1 PerfScore 42.50\n\u002BG_M59121_IG06:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M59121_IG11\n\u002B       jmp      SHORT G_M59121_IG08\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M59121_IG10:\n\u002BG_M59121_IG07:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M59121_IG11:\n\u002BG_M59121_IG08:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M59121_IG15\n\u002B       je       SHORT G_M59121_IG12\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M59121_IG12:\n\u002BG_M59121_IG09:\n        test     rax, rax\n-       je       SHORT G_M59121_IG16\n\u002B       je       SHORT G_M59121_IG13\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M59121_IG13:\n\u002BG_M59121_IG10:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M59121_IG16\n\u002B       jne      SHORT G_M59121_IG13\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M59121_IG14:\n\u002BG_M59121_IG11:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M59121_IG16\n\u002B       je       SHORT G_M59121_IG13\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M59121_IG15:\n\u002BG_M59121_IG12:\n        mov      ecx, 1\n-       jmp      SHORT G_M59121_IG23\n\u002B       jmp      SHORT G_M59121_IG20\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M59121_IG16:\n\u002BG_M59121_IG13:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M59121_IG21\n\u002B       je       SHORT G_M59121_IG18\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M59121_IG17:\n\u002BG_M59121_IG14:\n        test     rax, rax\n-       je       SHORT G_M59121_IG19\n\u002B       je       SHORT G_M59121_IG16\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M59121_IG18:\n\u002BG_M59121_IG15:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M59121_IG20\n\u002B       je       SHORT G_M59121_IG17\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M59121_IG19:\n\u002BG_M59121_IG16:\n        xor      ecx, ecx\n-       jmp      SHORT G_M59121_IG22\n\u002B       jmp      SHORT G_M59121_IG19\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M59121_IG20:\n\u002BG_M59121_IG17:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -240,30 \u002B220,30 @@ G_M59121_IG20:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M59121_IG22\n\u002B       jmp      SHORT G_M59121_IG19\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M59121_IG21:\n\u002BG_M59121_IG18:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M59121_IG22:\n\u002BG_M59121_IG19:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M59121_IG23:\n\u002BG_M59121_IG20:\n        mov      dword ptr [rbp-0x6C], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M59121_IG31\n\u002B       je       G_M59121_IG28\n        cmp      dword ptr [rbp-0x6C], 0\n-       je       G_M59121_IG31\n\u002B       je       G_M59121_IG28\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rsi, qword ptr [rdi\u002B0x20]\n        test     rsi, rsi\n-       je       G_M59121_IG28\n\u002B       je       G_M59121_IG25\n \t\t\t\t\t\t;; size=55 bbWeight=1 PerfScore 14.75\n-G_M59121_IG24:\n\u002BG_M59121_IG21:\n        mov      rdi, r14\n        mov      rdx, r13\n        mov      rcx, rbx\n@@ -278,7 \u002B258,7 @@ G_M59121_IG24:\n        mov      gword ptr [rbp-0xC0], rax\n        mov      byte  ptr [rbp-0xA0], sil\n        mov      qword ptr [rbp-0x98], rdi\n-       mov      rbx, gword ptr [rbp-0xE0]\n\u002B       mov      rbx, gword ptr [rbp-0xD8]\n        mov      gword ptr [rbp-0x90], rbx\n        mov      dword ptr [rbp-0xB0], -1\n        lea      rsi, [rbp-0xD0]\n@@ -287,19 \u002B267,19 @@ G_M59121_IG24:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[double,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA8]\n        test     rax, rax\n-       jne      SHORT G_M59121_IG26\n\u002B       jne      SHORT G_M59121_IG23\n \t\t\t\t\t\t;; size=139 bbWeight=1 PerfScore 23.50\n-G_M59121_IG25:\n\u002BG_M59121_IG22:\n        lea      rdi, [rbp-0xA8]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M59121_IG26:\n\u002BG_M59121_IG23:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M59121_IG27:\n-       add      rsp, 248\n\u002BG_M59121_IG24:\n\u002B       add      rsp, 232\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -308,15 \u002B288,15 @@ G_M59121_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M59121_IG28:\n\u002BG_M59121_IG25:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M59121_IG24\n\u002B       jmp      G_M59121_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M59121_IG29:\n\u002BG_M59121_IG26:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -324,13 \u002B304,13 @@ G_M59121_IG29:\n        mov      rdi, rax\n        jmp      G_M59121_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M59121_IG30:\n\u002BG_M59121_IG27:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M59121_IG31:\n\u002BG_M59121_IG28:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -343,5 \u002B323,5 @@ G_M59121_IG31:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 951, prolog size 59, PerfScore 144.30, instruction count 211, allocated bytes for code 951 (MethodHash=ced9190e) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollectionAsync[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 888, prolog size 59, PerfScore 134.92, instruction count 197, allocated bytes for code 888 (MethodHash=ced9190e) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollectionAsync[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":951,"DiffBytes":888},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.PricingPlans.ComponentService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.PricingPlans.ComponentListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.PricingPlanComponent]:this (FullOpts)","Category":"improvement","Description":"429 -\u003E 388 bytes (-41)","ExtraInfo":null,"Diff":"@@ -1,148 \u002B1,140 @@\n ; Assembly listing for method Stripe.V2.Billing.PricingPlans.ComponentService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.PricingPlans.ComponentListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.PricingPlanComponent]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 12 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T03] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.PricingPlans.ComponentService\u003E\n-;  V01 arg1         [V01,T06] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.PricingPlans.ComponentListOptions\u003E\n-;  V03 arg3         [V03,T05] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T05] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V02 arg2         [V02,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.PricingPlans.ComponentListOptions\u003E\n\u002B;  V03 arg3         [V03,T04] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V06 tmp1         [V06,T09] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.PricingPlanComponent]\u003E\n\u002B;  V06 tmp1         [V06,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.PricingPlanComponent]\u003E\n ;  V07 tmp2         [V07,T02] (  4,  6   )     ref  -\u003E  r12         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V08 tmp3         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.PricingPlanComponent]\u003E\n ;* V09 tmp4         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp5         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.PricingPlanComponent]\u003E\n-;  V11 tmp6         [V11,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp7         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp8         [V13,T07] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp9         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp10        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 tmp11        [V16,T08] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V17 rat0         [V17,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp5         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.PricingPlanComponent]\u003E\n\u002B;* V11 tmp6         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp7         [V12,T07] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp8         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp9         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 tmp10        [V15,T08] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V16 rat0         [V16,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M4339_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rdx\n-       mov      r14, rcx\n\u002B       mov      r14, rdx\n\u002B       mov      r15, rcx\n        mov      r13, r8\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M4339_IG02:\n        mov      rdi, rsi\n        mov      rax, 0xD1FFAB1E      ; code for System.Net.WebUtility:UrlEncode(System.String):System.String\n        call     [rax]System.Net.WebUtility:UrlEncode(System.String):System.String\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; \u0027/v2/billing/pricing_plans/\u0027\n        mov      rdx, 0xD1FFAB1E      ; \u0027/components\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Concat(System.String,System.String,System.String):System.String\n        call     [rax]System.String:Concat(System.String,System.String,System.String):System.String\n        mov      r12, rax\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for Stripe.ApiModeUtils:GetApiMode(System.String):int\n        call     [rax]Stripe.ApiModeUtils:GetApiMode(System.String):int\n        cmp      eax, 1\n        je       G_M4339_IG04\n \t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 12.50\n G_M4339_IG03:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.PricingPlanComponent]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       lea      rdi, bword ptr [rbx\u002B0x28]\n\u002B       lea      rdi, bword ptr [r14\u002B0x28]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M4339_IG05\n-\t\t\t\t\t\t;; size=168 bbWeight=0.50 PerfScore 14.00\n\u002B\t\t\t\t\t\t;; size=127 bbWeight=0.50 PerfScore 10.38\n G_M4339_IG04:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.PricingPlanComponent]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        lea      rdi, bword ptr [rbx\u002B0x28]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=135 bbWeight=0.50 PerfScore 11.00\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=138 bbWeight=0.50 PerfScore 11.12\n G_M4339_IG05:\n-       mov      rax, rbx\n\u002B       mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M4339_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 429, prolog size 19, PerfScore 49.75, instruction count 99, allocated bytes for code 429 (MethodHash=59acef0c) for method Stripe.V2.Billing.PricingPlans.ComponentService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.PricingPlans.ComponentListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.PricingPlanComponent]:this (FullOpts)\n\u002B; Total bytes of code 388, prolog size 16, PerfScore 47.00, instruction count 92, allocated bytes for code 388 (MethodHash=59acef0c) for method Stripe.V2.Billing.PricingPlans.ComponentService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.PricingPlans.ComponentListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.PricingPlanComponent]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":429,"DiffBytes":388},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollectionAsync[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[double]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[double,byte]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[double,MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M53745_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M53745_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M53745_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[double,byte]:Render(MongoDB.Driver.RenderArgs\u00601[double]):MongoDB.Driver.RenderedPipelineDefinition\u00601[byte]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M53745_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M53745_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M53745_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M53745_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M53745_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M53745_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M53745_IG07:\n        test     rax, rax\n-       je       SHORT G_M53745_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M53745_IG08:\n\u002B       je       SHORT G_M53745_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M53745_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M53745_IG10\n\u002B       jmp      SHORT G_M53745_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M53745_IG09:\n\u002BG_M53745_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M53745_IG10:\n\u002BG_M53745_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M53745_IG14\n\u002B       je       SHORT G_M53745_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M53745_IG11:\n\u002BG_M53745_IG08:\n        test     rax, rax\n-       je       SHORT G_M53745_IG15\n\u002B       je       SHORT G_M53745_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M53745_IG12:\n\u002BG_M53745_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M53745_IG15\n\u002B       jne      SHORT G_M53745_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M53745_IG13:\n\u002BG_M53745_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M53745_IG15\n\u002B       je       SHORT G_M53745_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M53745_IG14:\n\u002BG_M53745_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M53745_IG22\n\u002B       jmp      SHORT G_M53745_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M53745_IG15:\n\u002BG_M53745_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M53745_IG20\n\u002B       je       SHORT G_M53745_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M53745_IG16:\n\u002BG_M53745_IG13:\n        test     rax, rax\n-       je       SHORT G_M53745_IG18\n\u002B       je       SHORT G_M53745_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M53745_IG17:\n\u002BG_M53745_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M53745_IG19\n\u002B       je       SHORT G_M53745_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M53745_IG18:\n\u002BG_M53745_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M53745_IG21\n\u002B       jmp      SHORT G_M53745_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M53745_IG19:\n\u002BG_M53745_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M53745_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M53745_IG21\n\u002B       jmp      SHORT G_M53745_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M53745_IG20:\n\u002BG_M53745_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M53745_IG21:\n\u002BG_M53745_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M53745_IG22:\n\u002BG_M53745_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M53745_IG27\n\u002B       je       G_M53745_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M53745_IG27\n\u002B       je       G_M53745_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M53745_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[double,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M53745_IG24\n\u002B       jne      SHORT G_M53745_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M53745_IG23:\n\u002BG_M53745_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M53745_IG24:\n\u002BG_M53745_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M53745_IG25:\n-       add      rsp, 232\n\u002BG_M53745_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M53745_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M53745_IG26:\n\u002BG_M53745_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M53745_IG27:\n\u002BG_M53745_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M53745_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=9bca2e0e) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollectionAsync[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=9bca2e0e) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollectionAsync[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.PricingPlans.VersionService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.PricingPlans.VersionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.PricingPlanVersion]:this (FullOpts)","Category":"improvement","Description":"429 -\u003E 388 bytes (-41)","ExtraInfo":null,"Diff":"@@ -1,148 \u002B1,140 @@\n ; Assembly listing for method Stripe.V2.Billing.PricingPlans.VersionService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.PricingPlans.VersionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.PricingPlanVersion]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 12 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T03] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.PricingPlans.VersionService\u003E\n-;  V01 arg1         [V01,T06] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.PricingPlans.VersionListOptions\u003E\n-;  V03 arg3         [V03,T05] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T05] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V02 arg2         [V02,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.PricingPlans.VersionListOptions\u003E\n\u002B;  V03 arg3         [V03,T04] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V06 tmp1         [V06,T09] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.PricingPlanVersion]\u003E\n\u002B;  V06 tmp1         [V06,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.PricingPlanVersion]\u003E\n ;  V07 tmp2         [V07,T02] (  4,  6   )     ref  -\u003E  r12         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V08 tmp3         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.PricingPlanVersion]\u003E\n ;* V09 tmp4         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp5         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.PricingPlanVersion]\u003E\n-;  V11 tmp6         [V11,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp7         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp8         [V13,T07] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp9         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp10        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 tmp11        [V16,T08] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V17 rat0         [V17,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp5         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.PricingPlanVersion]\u003E\n\u002B;* V11 tmp6         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp7         [V12,T07] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp8         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp9         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 tmp10        [V15,T08] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V16 rat0         [V16,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M42086_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rdx\n-       mov      r14, rcx\n\u002B       mov      r14, rdx\n\u002B       mov      r15, rcx\n        mov      r13, r8\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M42086_IG02:\n        mov      rdi, rsi\n        mov      rax, 0xD1FFAB1E      ; code for System.Net.WebUtility:UrlEncode(System.String):System.String\n        call     [rax]System.Net.WebUtility:UrlEncode(System.String):System.String\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; \u0027/v2/billing/pricing_plans/\u0027\n        mov      rdx, 0xD1FFAB1E      ; \u0027/versions\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Concat(System.String,System.String,System.String):System.String\n        call     [rax]System.String:Concat(System.String,System.String,System.String):System.String\n        mov      r12, rax\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for Stripe.ApiModeUtils:GetApiMode(System.String):int\n        call     [rax]Stripe.ApiModeUtils:GetApiMode(System.String):int\n        cmp      eax, 1\n        je       G_M42086_IG04\n \t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 12.50\n G_M42086_IG03:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.PricingPlanVersion]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       lea      rdi, bword ptr [rbx\u002B0x28]\n\u002B       lea      rdi, bword ptr [r14\u002B0x28]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M42086_IG05\n-\t\t\t\t\t\t;; size=168 bbWeight=0.50 PerfScore 14.00\n\u002B\t\t\t\t\t\t;; size=127 bbWeight=0.50 PerfScore 10.38\n G_M42086_IG04:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.PricingPlanVersion]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        lea      rdi, bword ptr [rbx\u002B0x28]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=135 bbWeight=0.50 PerfScore 11.00\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=138 bbWeight=0.50 PerfScore 11.12\n G_M42086_IG05:\n-       mov      rax, rbx\n\u002B       mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M42086_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 429, prolog size 19, PerfScore 49.75, instruction count 99, allocated bytes for code 429 (MethodHash=41425b99) for method Stripe.V2.Billing.PricingPlans.VersionService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.PricingPlans.VersionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.PricingPlanVersion]:this (FullOpts)\n\u002B; Total bytes of code 388, prolog size 16, PerfScore 47.00, instruction count 92, allocated bytes for code 388 (MethodHash=41425b99) for method Stripe.V2.Billing.PricingPlans.VersionService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.PricingPlans.VersionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.PricingPlanVersion]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":429,"DiffBytes":388},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollectionAsync[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[double]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[double,double]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[double,MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M22225_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M22225_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M22225_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[double,double]:Render(MongoDB.Driver.RenderArgs\u00601[double]):MongoDB.Driver.RenderedPipelineDefinition\u00601[double]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M22225_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M22225_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M22225_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M22225_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M22225_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M22225_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M22225_IG07:\n        test     rax, rax\n-       je       SHORT G_M22225_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M22225_IG08:\n\u002B       je       SHORT G_M22225_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M22225_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M22225_IG10\n\u002B       jmp      SHORT G_M22225_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M22225_IG09:\n\u002BG_M22225_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M22225_IG10:\n\u002BG_M22225_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M22225_IG14\n\u002B       je       SHORT G_M22225_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M22225_IG11:\n\u002BG_M22225_IG08:\n        test     rax, rax\n-       je       SHORT G_M22225_IG15\n\u002B       je       SHORT G_M22225_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M22225_IG12:\n\u002BG_M22225_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M22225_IG15\n\u002B       jne      SHORT G_M22225_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M22225_IG13:\n\u002BG_M22225_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M22225_IG15\n\u002B       je       SHORT G_M22225_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M22225_IG14:\n\u002BG_M22225_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M22225_IG22\n\u002B       jmp      SHORT G_M22225_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M22225_IG15:\n\u002BG_M22225_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M22225_IG20\n\u002B       je       SHORT G_M22225_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M22225_IG16:\n\u002BG_M22225_IG13:\n        test     rax, rax\n-       je       SHORT G_M22225_IG18\n\u002B       je       SHORT G_M22225_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M22225_IG17:\n\u002BG_M22225_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M22225_IG19\n\u002B       je       SHORT G_M22225_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M22225_IG18:\n\u002BG_M22225_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M22225_IG21\n\u002B       jmp      SHORT G_M22225_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M22225_IG19:\n\u002BG_M22225_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M22225_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M22225_IG21\n\u002B       jmp      SHORT G_M22225_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M22225_IG20:\n\u002BG_M22225_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M22225_IG21:\n\u002BG_M22225_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M22225_IG22:\n\u002BG_M22225_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M22225_IG27\n\u002B       je       G_M22225_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M22225_IG27\n\u002B       je       G_M22225_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M22225_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[double,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M22225_IG24\n\u002B       jne      SHORT G_M22225_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M22225_IG23:\n\u002BG_M22225_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M22225_IG24:\n\u002BG_M22225_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M22225_IG25:\n-       add      rsp, 232\n\u002BG_M22225_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M22225_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M22225_IG26:\n\u002BG_M22225_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M22225_IG27:\n\u002BG_M22225_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M22225_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=003ba92e) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollectionAsync[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=003ba92e) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollectionAsync[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.RateCards.CustomPricingUnitOverageRateService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.RateCards.CustomPricingUnitOverageRateListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.RateCardCustomPricingUnitOverageRate]:this (FullOpts)","Category":"improvement","Description":"429 -\u003E 388 bytes (-41)","ExtraInfo":null,"Diff":"@@ -1,148 \u002B1,140 @@\n ; Assembly listing for method Stripe.V2.Billing.RateCards.CustomPricingUnitOverageRateService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.RateCards.CustomPricingUnitOverageRateListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.RateCardCustomPricingUnitOverageRate]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 12 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T03] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.RateCards.CustomPricingUnitOverageRateService\u003E\n-;  V01 arg1         [V01,T06] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.RateCards.CustomPricingUnitOverageRateListOptions\u003E\n-;  V03 arg3         [V03,T05] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T05] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V02 arg2         [V02,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.RateCards.CustomPricingUnitOverageRateListOptions\u003E\n\u002B;  V03 arg3         [V03,T04] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V06 tmp1         [V06,T09] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.RateCardCustomPricingUnitOverageRate]\u003E\n\u002B;  V06 tmp1         [V06,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.RateCardCustomPricingUnitOverageRate]\u003E\n ;  V07 tmp2         [V07,T02] (  4,  6   )     ref  -\u003E  r12         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V08 tmp3         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.RateCardCustomPricingUnitOverageRate]\u003E\n ;* V09 tmp4         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp5         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.RateCardCustomPricingUnitOverageRate]\u003E\n-;  V11 tmp6         [V11,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp7         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp8         [V13,T07] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp9         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp10        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 tmp11        [V16,T08] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V17 rat0         [V17,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp5         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.RateCardCustomPricingUnitOverageRate]\u003E\n\u002B;* V11 tmp6         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp7         [V12,T07] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp8         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp9         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 tmp10        [V15,T08] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V16 rat0         [V16,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M54883_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rdx\n-       mov      r14, rcx\n\u002B       mov      r14, rdx\n\u002B       mov      r15, rcx\n        mov      r13, r8\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M54883_IG02:\n        mov      rdi, rsi\n        mov      rax, 0xD1FFAB1E      ; code for System.Net.WebUtility:UrlEncode(System.String):System.String\n        call     [rax]System.Net.WebUtility:UrlEncode(System.String):System.String\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; \u0027/v2/billing/rate_cards/\u0027\n        mov      rdx, 0xD1FFAB1E      ; \u0027/custom_pricing_unit_overage_rates\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Concat(System.String,System.String,System.String):System.String\n        call     [rax]System.String:Concat(System.String,System.String,System.String):System.String\n        mov      r12, rax\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for Stripe.ApiModeUtils:GetApiMode(System.String):int\n        call     [rax]Stripe.ApiModeUtils:GetApiMode(System.String):int\n        cmp      eax, 1\n        je       G_M54883_IG04\n \t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 12.50\n G_M54883_IG03:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.RateCardCustomPricingUnitOverageRate]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       lea      rdi, bword ptr [rbx\u002B0x28]\n\u002B       lea      rdi, bword ptr [r14\u002B0x28]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M54883_IG05\n-\t\t\t\t\t\t;; size=168 bbWeight=0.50 PerfScore 14.00\n\u002B\t\t\t\t\t\t;; size=127 bbWeight=0.50 PerfScore 10.38\n G_M54883_IG04:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.RateCardCustomPricingUnitOverageRate]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        lea      rdi, bword ptr [rbx\u002B0x28]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=135 bbWeight=0.50 PerfScore 11.00\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=138 bbWeight=0.50 PerfScore 11.12\n G_M54883_IG05:\n-       mov      rax, rbx\n\u002B       mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M54883_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 429, prolog size 19, PerfScore 49.75, instruction count 99, allocated bytes for code 429 (MethodHash=01ca299c) for method Stripe.V2.Billing.RateCards.CustomPricingUnitOverageRateService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.RateCards.CustomPricingUnitOverageRateListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.RateCardCustomPricingUnitOverageRate]:this (FullOpts)\n\u002B; Total bytes of code 388, prolog size 16, PerfScore 47.00, instruction count 92, allocated bytes for code 388 (MethodHash=01ca299c) for method Stripe.V2.Billing.RateCards.CustomPricingUnitOverageRateService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.RateCards.CustomPricingUnitOverageRateListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.RateCardCustomPricingUnitOverageRate]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":429,"DiffBytes":388},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollectionAsync[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[double]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[double,int]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[double,MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M57265_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M57265_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M57265_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[double,int]:Render(MongoDB.Driver.RenderArgs\u00601[double]):MongoDB.Driver.RenderedPipelineDefinition\u00601[int]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M57265_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M57265_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M57265_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M57265_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M57265_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M57265_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M57265_IG07:\n        test     rax, rax\n-       je       SHORT G_M57265_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M57265_IG08:\n\u002B       je       SHORT G_M57265_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M57265_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M57265_IG10\n\u002B       jmp      SHORT G_M57265_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M57265_IG09:\n\u002BG_M57265_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M57265_IG10:\n\u002BG_M57265_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M57265_IG14\n\u002B       je       SHORT G_M57265_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M57265_IG11:\n\u002BG_M57265_IG08:\n        test     rax, rax\n-       je       SHORT G_M57265_IG15\n\u002B       je       SHORT G_M57265_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M57265_IG12:\n\u002BG_M57265_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M57265_IG15\n\u002B       jne      SHORT G_M57265_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M57265_IG13:\n\u002BG_M57265_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M57265_IG15\n\u002B       je       SHORT G_M57265_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M57265_IG14:\n\u002BG_M57265_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M57265_IG22\n\u002B       jmp      SHORT G_M57265_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M57265_IG15:\n\u002BG_M57265_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M57265_IG20\n\u002B       je       SHORT G_M57265_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M57265_IG16:\n\u002BG_M57265_IG13:\n        test     rax, rax\n-       je       SHORT G_M57265_IG18\n\u002B       je       SHORT G_M57265_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M57265_IG17:\n\u002BG_M57265_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M57265_IG19\n\u002B       je       SHORT G_M57265_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M57265_IG18:\n\u002BG_M57265_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M57265_IG21\n\u002B       jmp      SHORT G_M57265_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M57265_IG19:\n\u002BG_M57265_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M57265_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M57265_IG21\n\u002B       jmp      SHORT G_M57265_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M57265_IG20:\n\u002BG_M57265_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M57265_IG21:\n\u002BG_M57265_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M57265_IG22:\n\u002BG_M57265_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M57265_IG27\n\u002B       je       G_M57265_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M57265_IG27\n\u002B       je       G_M57265_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M57265_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[double,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M57265_IG24\n\u002B       jne      SHORT G_M57265_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M57265_IG23:\n\u002BG_M57265_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M57265_IG24:\n\u002BG_M57265_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M57265_IG25:\n-       add      rsp, 232\n\u002BG_M57265_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M57265_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M57265_IG26:\n\u002BG_M57265_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M57265_IG27:\n\u002BG_M57265_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M57265_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=6285204e) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollectionAsync[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=6285204e) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollectionAsync[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.RateCards.RateService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.RateCards.RateListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.RateCardRate]:this (FullOpts)","Category":"improvement","Description":"429 -\u003E 388 bytes (-41)","ExtraInfo":null,"Diff":"@@ -1,148 \u002B1,140 @@\n ; Assembly listing for method Stripe.V2.Billing.RateCards.RateService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.RateCards.RateListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.RateCardRate]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 12 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T03] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.RateCards.RateService\u003E\n-;  V01 arg1         [V01,T06] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.RateCards.RateListOptions\u003E\n-;  V03 arg3         [V03,T05] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T05] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V02 arg2         [V02,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.RateCards.RateListOptions\u003E\n\u002B;  V03 arg3         [V03,T04] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V06 tmp1         [V06,T09] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.RateCardRate]\u003E\n\u002B;  V06 tmp1         [V06,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.RateCardRate]\u003E\n ;  V07 tmp2         [V07,T02] (  4,  6   )     ref  -\u003E  r12         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V08 tmp3         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.RateCardRate]\u003E\n ;* V09 tmp4         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp5         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.RateCardRate]\u003E\n-;  V11 tmp6         [V11,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp7         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp8         [V13,T07] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp9         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp10        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 tmp11        [V16,T08] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V17 rat0         [V17,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp5         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.RateCardRate]\u003E\n\u002B;* V11 tmp6         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp7         [V12,T07] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp8         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp9         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 tmp10        [V15,T08] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V16 rat0         [V16,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M35795_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rdx\n-       mov      r14, rcx\n\u002B       mov      r14, rdx\n\u002B       mov      r15, rcx\n        mov      r13, r8\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M35795_IG02:\n        mov      rdi, rsi\n        mov      rax, 0xD1FFAB1E      ; code for System.Net.WebUtility:UrlEncode(System.String):System.String\n        call     [rax]System.Net.WebUtility:UrlEncode(System.String):System.String\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; \u0027/v2/billing/rate_cards/\u0027\n        mov      rdx, 0xD1FFAB1E      ; \u0027/rates\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Concat(System.String,System.String,System.String):System.String\n        call     [rax]System.String:Concat(System.String,System.String,System.String):System.String\n        mov      r12, rax\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for Stripe.ApiModeUtils:GetApiMode(System.String):int\n        call     [rax]Stripe.ApiModeUtils:GetApiMode(System.String):int\n        cmp      eax, 1\n        je       G_M35795_IG04\n \t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 12.50\n G_M35795_IG03:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.RateCardRate]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       lea      rdi, bword ptr [rbx\u002B0x28]\n\u002B       lea      rdi, bword ptr [r14\u002B0x28]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M35795_IG05\n-\t\t\t\t\t\t;; size=168 bbWeight=0.50 PerfScore 14.00\n\u002B\t\t\t\t\t\t;; size=127 bbWeight=0.50 PerfScore 10.38\n G_M35795_IG04:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.RateCardRate]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        lea      rdi, bword ptr [rbx\u002B0x28]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=135 bbWeight=0.50 PerfScore 11.00\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=138 bbWeight=0.50 PerfScore 11.12\n G_M35795_IG05:\n-       mov      rax, rbx\n\u002B       mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M35795_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 429, prolog size 19, PerfScore 49.75, instruction count 99, allocated bytes for code 429 (MethodHash=3e3b742c) for method Stripe.V2.Billing.RateCards.RateService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.RateCards.RateListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.RateCardRate]:this (FullOpts)\n\u002B; Total bytes of code 388, prolog size 16, PerfScore 47.00, instruction count 92, allocated bytes for code 388 (MethodHash=3e3b742c) for method Stripe.V2.Billing.RateCards.RateService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.RateCards.RateListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.RateCardRate]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":429,"DiffBytes":388},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollectionAsync[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[double]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[double,long]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[double,MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M45041_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M45041_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M45041_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[double,long]:Render(MongoDB.Driver.RenderArgs\u00601[double]):MongoDB.Driver.RenderedPipelineDefinition\u00601[long]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M45041_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M45041_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M45041_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M45041_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M45041_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M45041_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M45041_IG07:\n        test     rax, rax\n-       je       SHORT G_M45041_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M45041_IG08:\n\u002B       je       SHORT G_M45041_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M45041_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M45041_IG10\n\u002B       jmp      SHORT G_M45041_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M45041_IG09:\n\u002BG_M45041_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M45041_IG10:\n\u002BG_M45041_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M45041_IG14\n\u002B       je       SHORT G_M45041_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M45041_IG11:\n\u002BG_M45041_IG08:\n        test     rax, rax\n-       je       SHORT G_M45041_IG15\n\u002B       je       SHORT G_M45041_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M45041_IG12:\n\u002BG_M45041_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M45041_IG15\n\u002B       jne      SHORT G_M45041_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M45041_IG13:\n\u002BG_M45041_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M45041_IG15\n\u002B       je       SHORT G_M45041_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M45041_IG14:\n\u002BG_M45041_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M45041_IG22\n\u002B       jmp      SHORT G_M45041_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M45041_IG15:\n\u002BG_M45041_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M45041_IG20\n\u002B       je       SHORT G_M45041_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M45041_IG16:\n\u002BG_M45041_IG13:\n        test     rax, rax\n-       je       SHORT G_M45041_IG18\n\u002B       je       SHORT G_M45041_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M45041_IG17:\n\u002BG_M45041_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M45041_IG19\n\u002B       je       SHORT G_M45041_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M45041_IG18:\n\u002BG_M45041_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M45041_IG21\n\u002B       jmp      SHORT G_M45041_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M45041_IG19:\n\u002BG_M45041_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M45041_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M45041_IG21\n\u002B       jmp      SHORT G_M45041_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M45041_IG20:\n\u002BG_M45041_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M45041_IG21:\n\u002BG_M45041_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M45041_IG22:\n\u002BG_M45041_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M45041_IG27\n\u002B       je       G_M45041_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M45041_IG27\n\u002B       je       G_M45041_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M45041_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[double,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M45041_IG24\n\u002B       jne      SHORT G_M45041_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M45041_IG23:\n\u002BG_M45041_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M45041_IG24:\n\u002BG_M45041_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M45041_IG25:\n-       add      rsp, 232\n\u002BG_M45041_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M45041_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M45041_IG26:\n\u002BG_M45041_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M45041_IG27:\n\u002BG_M45041_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M45041_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=8f8c500e) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollectionAsync[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=8f8c500e) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollectionAsync[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Billing.RateCards.VersionService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.RateCards.VersionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.RateCardVersion]:this (FullOpts)","Category":"improvement","Description":"429 -\u003E 388 bytes (-41)","ExtraInfo":null,"Diff":"@@ -1,148 \u002B1,140 @@\n ; Assembly listing for method Stripe.V2.Billing.RateCards.VersionService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.RateCards.VersionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.RateCardVersion]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 12 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T03] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Billing.RateCards.VersionService\u003E\n-;  V01 arg1         [V01,T06] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Billing.RateCards.VersionListOptions\u003E\n-;  V03 arg3         [V03,T05] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T05] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V02 arg2         [V02,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Billing.RateCards.VersionListOptions\u003E\n\u002B;  V03 arg3         [V03,T04] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V06 tmp1         [V06,T09] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.RateCardVersion]\u003E\n\u002B;  V06 tmp1         [V06,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.RateCardVersion]\u003E\n ;  V07 tmp2         [V07,T02] (  4,  6   )     ref  -\u003E  r12         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V08 tmp3         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.RateCardVersion]\u003E\n ;* V09 tmp4         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp5         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.RateCardVersion]\u003E\n-;  V11 tmp6         [V11,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp7         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp8         [V13,T07] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp9         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp10        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 tmp11        [V16,T08] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V17 rat0         [V17,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp5         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.RateCardVersion]\u003E\n\u002B;* V11 tmp6         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp7         [V12,T07] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp8         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp9         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 tmp10        [V15,T08] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V16 rat0         [V16,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M27467_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rdx\n-       mov      r14, rcx\n\u002B       mov      r14, rdx\n\u002B       mov      r15, rcx\n        mov      r13, r8\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M27467_IG02:\n        mov      rdi, rsi\n        mov      rax, 0xD1FFAB1E      ; code for System.Net.WebUtility:UrlEncode(System.String):System.String\n        call     [rax]System.Net.WebUtility:UrlEncode(System.String):System.String\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; \u0027/v2/billing/rate_cards/\u0027\n        mov      rdx, 0xD1FFAB1E      ; \u0027/versions\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Concat(System.String,System.String,System.String):System.String\n        call     [rax]System.String:Concat(System.String,System.String,System.String):System.String\n        mov      r12, rax\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for Stripe.ApiModeUtils:GetApiMode(System.String):int\n        call     [rax]Stripe.ApiModeUtils:GetApiMode(System.String):int\n        cmp      eax, 1\n        je       G_M27467_IG04\n \t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 12.50\n G_M27467_IG03:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Billing.RateCardVersion]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       lea      rdi, bword ptr [rbx\u002B0x28]\n\u002B       lea      rdi, bword ptr [r14\u002B0x28]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M27467_IG05\n-\t\t\t\t\t\t;; size=168 bbWeight=0.50 PerfScore 14.00\n\u002B\t\t\t\t\t\t;; size=127 bbWeight=0.50 PerfScore 10.38\n G_M27467_IG04:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Billing.RateCardVersion]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        lea      rdi, bword ptr [rbx\u002B0x28]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=135 bbWeight=0.50 PerfScore 11.00\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=138 bbWeight=0.50 PerfScore 11.12\n G_M27467_IG05:\n-       mov      rax, rbx\n\u002B       mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M27467_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 429, prolog size 19, PerfScore 49.75, instruction count 99, allocated bytes for code 429 (MethodHash=5e1d94b4) for method Stripe.V2.Billing.RateCards.VersionService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.RateCards.VersionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.RateCardVersion]:this (FullOpts)\n\u002B; Total bytes of code 388, prolog size 16, PerfScore 47.00, instruction count 92, allocated bytes for code 388 (MethodHash=5e1d94b4) for method Stripe.V2.Billing.RateCards.VersionService:ListAutoPagingAsync(System.String,Stripe.V2.Billing.RateCards.VersionListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Billing.RateCardVersion]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":429,"DiffBytes":388},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollectionAsync[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[double]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[double,short]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[double,MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M9905_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M9905_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M9905_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[double,short]:Render(MongoDB.Driver.RenderArgs\u00601[double]):MongoDB.Driver.RenderedPipelineDefinition\u00601[short]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M9905_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M9905_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M9905_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M9905_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M9905_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M9905_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M9905_IG07:\n        test     rax, rax\n-       je       SHORT G_M9905_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M9905_IG08:\n\u002B       je       SHORT G_M9905_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M9905_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M9905_IG10\n\u002B       jmp      SHORT G_M9905_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M9905_IG09:\n\u002BG_M9905_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M9905_IG10:\n\u002BG_M9905_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M9905_IG14\n\u002B       je       SHORT G_M9905_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M9905_IG11:\n\u002BG_M9905_IG08:\n        test     rax, rax\n-       je       SHORT G_M9905_IG15\n\u002B       je       SHORT G_M9905_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M9905_IG12:\n\u002BG_M9905_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M9905_IG15\n\u002B       jne      SHORT G_M9905_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M9905_IG13:\n\u002BG_M9905_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M9905_IG15\n\u002B       je       SHORT G_M9905_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M9905_IG14:\n\u002BG_M9905_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M9905_IG22\n\u002B       jmp      SHORT G_M9905_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M9905_IG15:\n\u002BG_M9905_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M9905_IG20\n\u002B       je       SHORT G_M9905_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M9905_IG16:\n\u002BG_M9905_IG13:\n        test     rax, rax\n-       je       SHORT G_M9905_IG18\n\u002B       je       SHORT G_M9905_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M9905_IG17:\n\u002BG_M9905_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M9905_IG19\n\u002B       je       SHORT G_M9905_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M9905_IG18:\n\u002BG_M9905_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M9905_IG21\n\u002B       jmp      SHORT G_M9905_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M9905_IG19:\n\u002BG_M9905_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M9905_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M9905_IG21\n\u002B       jmp      SHORT G_M9905_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M9905_IG20:\n\u002BG_M9905_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M9905_IG21:\n\u002BG_M9905_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M9905_IG22:\n\u002BG_M9905_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M9905_IG27\n\u002B       je       G_M9905_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M9905_IG27\n\u002B       je       G_M9905_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M9905_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[double,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M9905_IG24\n\u002B       jne      SHORT G_M9905_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M9905_IG23:\n\u002BG_M9905_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M9905_IG24:\n\u002BG_M9905_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M9905_IG25:\n-       add      rsp, 232\n\u002BG_M9905_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M9905_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M9905_IG26:\n\u002BG_M9905_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M9905_IG27:\n\u002BG_M9905_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M9905_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=d617d94e) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollectionAsync[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=d617d94e) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollectionAsync[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Core.Accounts.PersonService:ListAutoPagingAsync(System.String,Stripe.V2.Core.Accounts.PersonListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.AccountPerson]:this (FullOpts)","Category":"improvement","Description":"429 -\u003E 388 bytes (-41)","ExtraInfo":null,"Diff":"@@ -1,148 \u002B1,140 @@\n ; Assembly listing for method Stripe.V2.Core.Accounts.PersonService:ListAutoPagingAsync(System.String,Stripe.V2.Core.Accounts.PersonListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.AccountPerson]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 12 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T03] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Core.Accounts.PersonService\u003E\n-;  V01 arg1         [V01,T06] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Core.Accounts.PersonListOptions\u003E\n-;  V03 arg3         [V03,T05] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T05] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V02 arg2         [V02,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Core.Accounts.PersonListOptions\u003E\n\u002B;  V03 arg3         [V03,T04] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V06 tmp1         [V06,T09] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.AccountPerson]\u003E\n\u002B;  V06 tmp1         [V06,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.AccountPerson]\u003E\n ;  V07 tmp2         [V07,T02] (  4,  6   )     ref  -\u003E  r12         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V08 tmp3         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.AccountPerson]\u003E\n ;* V09 tmp4         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp5         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.AccountPerson]\u003E\n-;  V11 tmp6         [V11,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp7         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp8         [V13,T07] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp9         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp10        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 tmp11        [V16,T08] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V17 rat0         [V17,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp5         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.AccountPerson]\u003E\n\u002B;* V11 tmp6         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp7         [V12,T07] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp8         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp9         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 tmp10        [V15,T08] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V16 rat0         [V16,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M58051_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rdx\n-       mov      r14, rcx\n\u002B       mov      r14, rdx\n\u002B       mov      r15, rcx\n        mov      r13, r8\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M58051_IG02:\n        mov      rdi, rsi\n        mov      rax, 0xD1FFAB1E      ; code for System.Net.WebUtility:UrlEncode(System.String):System.String\n        call     [rax]System.Net.WebUtility:UrlEncode(System.String):System.String\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; \u0027/v2/core/accounts/\u0027\n        mov      rdx, 0xD1FFAB1E      ; \u0027/persons\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Concat(System.String,System.String,System.String):System.String\n        call     [rax]System.String:Concat(System.String,System.String,System.String):System.String\n        mov      r12, rax\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for Stripe.ApiModeUtils:GetApiMode(System.String):int\n        call     [rax]Stripe.ApiModeUtils:GetApiMode(System.String):int\n        cmp      eax, 1\n        je       G_M58051_IG04\n \t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 12.50\n G_M58051_IG03:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.AccountPerson]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       lea      rdi, bword ptr [rbx\u002B0x28]\n\u002B       lea      rdi, bword ptr [r14\u002B0x28]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M58051_IG05\n-\t\t\t\t\t\t;; size=168 bbWeight=0.50 PerfScore 14.00\n\u002B\t\t\t\t\t\t;; size=127 bbWeight=0.50 PerfScore 10.38\n G_M58051_IG04:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.AccountPerson]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        lea      rdi, bword ptr [rbx\u002B0x28]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=135 bbWeight=0.50 PerfScore 11.00\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=138 bbWeight=0.50 PerfScore 11.12\n G_M58051_IG05:\n-       mov      rax, rbx\n\u002B       mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M58051_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 429, prolog size 19, PerfScore 49.75, instruction count 99, allocated bytes for code 429 (MethodHash=c3b81d3c) for method Stripe.V2.Core.Accounts.PersonService:ListAutoPagingAsync(System.String,Stripe.V2.Core.Accounts.PersonListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.AccountPerson]:this (FullOpts)\n\u002B; Total bytes of code 388, prolog size 16, PerfScore 47.00, instruction count 92, allocated bytes for code 388 (MethodHash=c3b81d3c) for method Stripe.V2.Core.Accounts.PersonService:ListAutoPagingAsync(System.String,Stripe.V2.Core.Accounts.PersonListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.AccountPerson]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":429,"DiffBytes":388},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[double]:Aggregate[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)","Category":"improvement","Description":"1,813 -\u003E 1,750 bytes (-63)","ExtraInfo":null,"Diff":"@@ -14,16 \u002B14,16 @@\n ;  V03 arg2         [V03,T04] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[double,System.__Canon]\u003E\n ;  V04 arg3         [V04,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T39] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n\u002B;  V06 loc0         [V06,T38] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n-;  V08 loc2         [V08,T40] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V09 loc3         [V09,T46] (  3,  1.50)     ref  -\u003E  [rbp-0x80]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V10 loc4         [V10,T47] (  3,  1.50)     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.__Canon]\u003E\n\u002B;  V08 loc2         [V08,T39] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V09 loc3         [V09,T45] (  3,  1.50)     ref  -\u003E  [rbp-0x80]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V10 loc4         [V10,T46] (  3,  1.50)     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.__Canon]\u003E\n ;  V11 OutArgs      [V11    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V12 tmp1         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V13 tmp2         [V13    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V14 tmp3         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V15 tmp4         [V15,T29] (  4,  2.20)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n\u002B;  V15 tmp4         [V15,T28] (  4,  2.20)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n ;* V16 tmp5         [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V17 tmp6         [V17    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V18 tmp7         [V18    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -43,22 \u002B43,22 @@\n ;* V32 tmp21        [V32    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V33 tmp22        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V34 tmp23        [V34    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V35 tmp24        [V35,T33] (  3,  2   )     int  -\u003E  rdi        \n-;  V36 tmp25        [V36,T06] (  4,  7   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V37 tmp26        [V37    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V38 tmp27        [V38,T17] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V39 tmp28        [V39,T18] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V35 tmp24        [V35,T32] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V36 tmp25        [V36,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V37 tmp26        [V37    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V38 tmp27        [V38,T17] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V39 tmp28        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V40 tmp29        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V41 tmp30        [V41,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V42 tmp31        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V43 tmp32        [V43,T45] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V43 tmp32        [V43,T44] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V44 tmp33        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V45 tmp34        [V45,T31] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V46 tmp35        [V46,T19] (  3,  3   )     ref  -\u003E  [rbp-0x98]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V45 tmp34        [V45,T30] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V46 tmp35        [V46,T18] (  3,  3   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V47 tmp36        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V48 tmp37        [V48,T08] ( 10,  5   )     ref  -\u003E  [rbp-0xA0]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;  V48 tmp37        [V48,T08] ( 10,  5   )     ref  -\u003E  [rbp-0x98]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V49 tmp38        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp39        [V50,T09] ( 10,  5   )     ref  -\u003E  [rbp-0xA8]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;  V50 tmp39        [V50,T09] ( 10,  5   )     ref  -\u003E  [rbp-0xA0]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V51 tmp40        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V52 tmp41        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V53 tmp42        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -67,14 \u002B67,14 @@\n ;* V56 tmp45        [V56    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.__Canon]\u003E\n ;* V57 tmp46        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V58 tmp47        [V58    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V59 tmp48        [V59,T48] (  2,  1   )     ref  -\u003E  [rbp-0xB0]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V60 tmp49        [V60,T30] (  4,  2.20)    long  -\u003E  [rbp-0x78]  \u0022Inlining Arg\u0022\n\u002B;  V59 tmp48        [V59,T47] (  2,  1   )     ref  -\u003E  [rbp-0xA8]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V60 tmp49        [V60,T29] (  4,  2.20)    long  -\u003E  [rbp-0x78]  \u0022Inlining Arg\u0022\n ;* V61 tmp50        [V61    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V62 tmp51        [V62,T32] (  8,  2   )     ref  -\u003E  [rbp-0xB8]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V63 tmp52        [V63,T20] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V62 tmp51        [V62,T31] (  8,  2   )     ref  -\u003E  [rbp-0xB0]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V63 tmp52        [V63,T19] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V64 tmp53        [V64    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V65 tmp54        [V65,T49] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.__Canon]\u003E\n-;  V66 tmp55        [V66,T38] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V65 tmp54        [V65,T48] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.__Canon]\u003E\n\u002B;  V66 tmp55        [V66,T37] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V67 tmp56        [V67    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V68 tmp57        [V68,T10] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V69 tmp58        [V69    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -82,36 \u002B82,36 @@\n ;* V71 tmp60        [V71    ] (  0,  0   )     ref  -\u003E  zero-ref   \n... diff truncated; middle omitted ...\n\u002BG_M34500_IG37:\n\u002B       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rdi, gword ptr [rsi\u002B0x10]\n\u002B       mov      rax, rdi\n\u002B       test     rax, rax\n\u002B       je       SHORT G_M34500_IG38\n        mov      rdi, rax\n        mov      esi, 1\n        mov      gword ptr [rbp-0xA0], rax\n@@ -473,35 \u002B469,19 @@ G_M34500_IG39:\n        call     [rcx\u002B0x28]System.Threading.CancellationTokenSource:Dispose(bool):this\n        mov      rdi, gword ptr [rbp-0xA0]\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n-       call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=77 bbWeight=0.50 PerfScore 9.62\n-G_M34500_IG40:\n-       mov      rsi, gword ptr [rbp-0x90]\n-       mov      rdi, gword ptr [rsi\u002B0x10]\n-       mov      rax, rdi\n-       test     rax, rax\n-       je       SHORT G_M34500_IG41\n-       mov      rdi, rax\n-       mov      esi, 1\n-       mov      gword ptr [rbp-0xA8], rax\n-       mov      rcx, qword ptr [rax]\n-       mov      rcx, qword ptr [rcx\u002B0x40]\n-       call     [rcx\u002B0x28]System.Threading.CancellationTokenSource:Dispose(bool):this\n-       mov      rdi, gword ptr [rbp-0xA8]\n-       mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.62\n-G_M34500_IG41:\n\u002BG_M34500_IG38:\n        mov      rdi, qword ptr [r14\u002B0x18]\n        cmp      qword ptr [rdi\u002B0x08], 56\n-       jle      SHORT G_M34500_IG45\n\u002B       jle      SHORT G_M34500_IG42\n \t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 2.50\n-G_M34500_IG42:\n\u002BG_M34500_IG39:\n        mov      rsi, qword ptr [rdi\u002B0x38]\n        test     rsi, rsi\n-       je       SHORT G_M34500_IG45\n\u002B       je       SHORT G_M34500_IG42\n \t\t\t\t\t\t;; size=9 bbWeight=0.40 PerfScore 1.30\n-G_M34500_IG43:\n\u002BG_M34500_IG40:\n        mov      rdi, r15\n        mov      rdx, r13\n        mov      rcx, r12\n@@ -510,8 \u002B490,8 @@ G_M34500_IG43:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateAggregateToCollectionResultCursor[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M34500_IG44:\n-       add      rsp, 216\n\u002BG_M34500_IG41:\n\u002B       add      rsp, 200\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -520,15 \u002B500,15 @@ G_M34500_IG44:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M34500_IG45:\n\u002BG_M34500_IG42:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      SHORT G_M34500_IG43\n\u002B       jmp      SHORT G_M34500_IG40\n \t\t\t\t\t\t;; size=30 bbWeight=0.18 PerfScore 1.08\n-G_M34500_IG46:\n\u002BG_M34500_IG43:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -536,53 \u002B516,53 @@ G_M34500_IG46:\n        mov      rdi, rax\n        jmp      G_M34500_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M34500_IG47:\n\u002BG_M34500_IG44:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M34500_IG37\n\u002B       jmp      G_M34500_IG34\n \t\t\t\t\t\t;; size=33 bbWeight=0.18 PerfScore 1.08\n-G_M34500_IG48:\n\u002BG_M34500_IG45:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M34500_IG24\n\u002B       jmp      G_M34500_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.10 PerfScore 0.60\n-G_M34500_IG49:\n\u002BG_M34500_IG46:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M34500_IG25\n\u002B       jmp      G_M34500_IG22\n \t\t\t\t\t\t;; size=33 bbWeight=0.10 PerfScore 0.60\n-G_M34500_IG50:\n\u002BG_M34500_IG47:\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      qword ptr [rbp-0x78], rax\n-       jmp      G_M34500_IG27\n\u002B       jmp      G_M34500_IG24\n \t\t\t\t\t\t;; size=31 bbWeight=0.10 PerfScore 0.65\n-G_M34500_IG51:\n\u002BG_M34500_IG48:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M34500_IG52:\n\u002BG_M34500_IG49:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M34500_IG53:\n-       cmp      gword ptr [rbp-0x90], 0\n-       je       SHORT G_M34500_IG55\n-       mov      rsi, gword ptr [rbp-0x90]\n\u002BG_M34500_IG50:\n\u002B       cmp      gword ptr [rbp-0x88], 0\n\u002B       je       SHORT G_M34500_IG52\n\u002B       mov      rsi, gword ptr [rbp-0x88]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M34500_IG54\n\u002B       je       SHORT G_M34500_IG51\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -592,11 \u002B572,11 @@ G_M34500_IG53:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M34500_IG54:\n-       mov      rsi, gword ptr [rbp-0x90]\n\u002BG_M34500_IG51:\n\u002B       mov      rsi, gword ptr [rbp-0x88]\n        mov      r15, gword ptr [rsi\u002B0x10]\n        test     r15, r15\n-       je       SHORT G_M34500_IG55\n\u002B       je       SHORT G_M34500_IG52\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -606,23 \u002B586,23 @@ G_M34500_IG54:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M34500_IG55:\n\u002BG_M34500_IG52:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M34500_IG56:\n\u002BG_M34500_IG53:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M34500_IG57:\n\u002BG_M34500_IG54:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M34500_IG58:\n-       cmp      gword ptr [rbp-0xB8], 0\n-       je       SHORT G_M34500_IG60\n-       mov      rsi, gword ptr [rbp-0xB8]\n\u002BG_M34500_IG55:\n\u002B       cmp      gword ptr [rbp-0xB0], 0\n\u002B       je       SHORT G_M34500_IG57\n\u002B       mov      rsi, gword ptr [rbp-0xB0]\n        mov      r13, gword ptr [rsi\u002B0x08]\n        test     r13, r13\n-       je       SHORT G_M34500_IG59\n\u002B       je       SHORT G_M34500_IG56\n        mov      rdi, r13\n        mov      esi, 1\n        mov      rax, qword ptr [r13]\n@@ -632,11 \u002B612,11 @@ G_M34500_IG58:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M34500_IG59:\n-       mov      rsi, gword ptr [rbp-0xB8]\n\u002BG_M34500_IG56:\n\u002B       mov      rsi, gword ptr [rbp-0xB0]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M34500_IG60\n\u002B       je       SHORT G_M34500_IG57\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -646,13 \u002B626,13 @@ G_M34500_IG59:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M34500_IG60:\n\u002BG_M34500_IG57:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M34500_IG61:\n\u002BG_M34500_IG58:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1813, prolog size 66, PerfScore 196.21, instruction count 418, allocated bytes for code 1813 (MethodHash=593d793b) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:Aggregate[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)\n\u002B; Total bytes of code 1750, prolog size 66, PerfScore 186.83, instruction count 404, allocated bytes for code 1750 (MethodHash=593d793b) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:Aggregate[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1813,"DiffBytes":1750},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Core.Health.Alerts.HistoryService:ListAutoPagingAsync(System.String,Stripe.V2.Core.Health.Alerts.HistoryListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.Health.AlertHistoryEntry]:this (FullOpts)","Category":"improvement","Description":"429 -\u003E 388 bytes (-41)","ExtraInfo":null,"Diff":"@@ -1,148 \u002B1,140 @@\n ; Assembly listing for method Stripe.V2.Core.Health.Alerts.HistoryService:ListAutoPagingAsync(System.String,Stripe.V2.Core.Health.Alerts.HistoryListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.Health.AlertHistoryEntry]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 12 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T03] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Core.Health.Alerts.HistoryService\u003E\n-;  V01 arg1         [V01,T06] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Core.Health.Alerts.HistoryListOptions\u003E\n-;  V03 arg3         [V03,T05] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T05] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V02 arg2         [V02,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Core.Health.Alerts.HistoryListOptions\u003E\n\u002B;  V03 arg3         [V03,T04] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V06 tmp1         [V06,T09] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.Health.AlertHistoryEntry]\u003E\n\u002B;  V06 tmp1         [V06,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.Health.AlertHistoryEntry]\u003E\n ;  V07 tmp2         [V07,T02] (  4,  6   )     ref  -\u003E  r12         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V08 tmp3         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.Health.AlertHistoryEntry]\u003E\n ;* V09 tmp4         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp5         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.Health.AlertHistoryEntry]\u003E\n-;  V11 tmp6         [V11,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp7         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp8         [V13,T07] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp9         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp10        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 tmp11        [V16,T08] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V17 rat0         [V17,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp5         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.Health.AlertHistoryEntry]\u003E\n\u002B;* V11 tmp6         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp7         [V12,T07] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp8         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp9         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 tmp10        [V15,T08] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V16 rat0         [V16,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M61309_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rdx\n-       mov      r14, rcx\n\u002B       mov      r14, rdx\n\u002B       mov      r15, rcx\n        mov      r13, r8\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M61309_IG02:\n        mov      rdi, rsi\n        mov      rax, 0xD1FFAB1E      ; code for System.Net.WebUtility:UrlEncode(System.String):System.String\n        call     [rax]System.Net.WebUtility:UrlEncode(System.String):System.String\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; \u0027/v2/core/health/alerts/\u0027\n        mov      rdx, 0xD1FFAB1E      ; \u0027/history\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Concat(System.String,System.String,System.String):System.String\n        call     [rax]System.String:Concat(System.String,System.String,System.String):System.String\n        mov      r12, rax\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for Stripe.ApiModeUtils:GetApiMode(System.String):int\n        call     [rax]Stripe.ApiModeUtils:GetApiMode(System.String):int\n        cmp      eax, 1\n        je       G_M61309_IG04\n \t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 12.50\n G_M61309_IG03:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Core.Health.AlertHistoryEntry]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       lea      rdi, bword ptr [rbx\u002B0x28]\n\u002B       lea      rdi, bword ptr [r14\u002B0x28]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M61309_IG05\n-\t\t\t\t\t\t;; size=168 bbWeight=0.50 PerfScore 14.00\n\u002B\t\t\t\t\t\t;; size=127 bbWeight=0.50 PerfScore 10.38\n G_M61309_IG04:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Core.Health.AlertHistoryEntry]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        lea      rdi, bword ptr [rbx\u002B0x28]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=135 bbWeight=0.50 PerfScore 11.00\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=138 bbWeight=0.50 PerfScore 11.12\n G_M61309_IG05:\n-       mov      rax, rbx\n\u002B       mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M61309_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 429, prolog size 19, PerfScore 49.75, instruction count 99, allocated bytes for code 429 (MethodHash=2fde1082) for method Stripe.V2.Core.Health.Alerts.HistoryService:ListAutoPagingAsync(System.String,Stripe.V2.Core.Health.Alerts.HistoryListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.Health.AlertHistoryEntry]:this (FullOpts)\n\u002B; Total bytes of code 388, prolog size 16, PerfScore 47.00, instruction count 92, allocated bytes for code 388 (MethodHash=2fde1082) for method Stripe.V2.Core.Health.Alerts.HistoryService:ListAutoPagingAsync(System.String,Stripe.V2.Core.Health.Alerts.HistoryListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Core.Health.AlertHistoryEntry]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":429,"DiffBytes":388},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollectionAsync[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[int]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[int,System.Nullable\u00601[int]]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[int,MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M42161_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M42161_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M42161_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[int,System.Nullable\u00601[int]]:Render(MongoDB.Driver.RenderArgs\u00601[int]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M42161_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M42161_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M42161_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M42161_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M42161_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M42161_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M42161_IG07:\n        test     rax, rax\n-       je       SHORT G_M42161_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M42161_IG08:\n\u002B       je       SHORT G_M42161_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M42161_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M42161_IG10\n\u002B       jmp      SHORT G_M42161_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M42161_IG09:\n\u002BG_M42161_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M42161_IG10:\n\u002BG_M42161_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M42161_IG14\n\u002B       je       SHORT G_M42161_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M42161_IG11:\n\u002BG_M42161_IG08:\n        test     rax, rax\n-       je       SHORT G_M42161_IG15\n\u002B       je       SHORT G_M42161_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M42161_IG12:\n\u002BG_M42161_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M42161_IG15\n\u002B       jne      SHORT G_M42161_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M42161_IG13:\n\u002BG_M42161_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M42161_IG15\n\u002B       je       SHORT G_M42161_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M42161_IG14:\n\u002BG_M42161_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M42161_IG22\n\u002B       jmp      SHORT G_M42161_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M42161_IG15:\n\u002BG_M42161_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M42161_IG20\n\u002B       je       SHORT G_M42161_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M42161_IG16:\n\u002BG_M42161_IG13:\n        test     rax, rax\n-       je       SHORT G_M42161_IG18\n\u002B       je       SHORT G_M42161_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M42161_IG17:\n\u002BG_M42161_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M42161_IG19\n\u002B       je       SHORT G_M42161_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M42161_IG18:\n\u002BG_M42161_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M42161_IG21\n\u002B       jmp      SHORT G_M42161_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M42161_IG19:\n\u002BG_M42161_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M42161_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M42161_IG21\n\u002B       jmp      SHORT G_M42161_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M42161_IG20:\n\u002BG_M42161_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M42161_IG21:\n\u002BG_M42161_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M42161_IG22:\n\u002BG_M42161_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M42161_IG27\n\u002B       je       G_M42161_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M42161_IG27\n\u002B       je       G_M42161_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M42161_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[int,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M42161_IG24\n\u002B       jne      SHORT G_M42161_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M42161_IG23:\n\u002BG_M42161_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M42161_IG24:\n\u002BG_M42161_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M42161_IG25:\n-       add      rsp, 232\n\u002BG_M42161_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M42161_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M42161_IG26:\n\u002BG_M42161_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M42161_IG27:\n\u002BG_M42161_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M42161_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=62cc5b4e) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollectionAsync[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=62cc5b4e) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollectionAsync[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.MoneyManagement.FinancialAccounts.StatementService:ListAutoPagingAsync(System.String,Stripe.V2.MoneyManagement.FinancialAccounts.StatementListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.FinancialAccountStatement]:this (FullOpts)","Category":"improvement","Description":"429 -\u003E 388 bytes (-41)","ExtraInfo":null,"Diff":"@@ -1,148 \u002B1,140 @@\n ; Assembly listing for method Stripe.V2.MoneyManagement.FinancialAccounts.StatementService:ListAutoPagingAsync(System.String,Stripe.V2.MoneyManagement.FinancialAccounts.StatementListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.FinancialAccountStatement]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 12 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T03] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.MoneyManagement.FinancialAccounts.StatementService\u003E\n-;  V01 arg1         [V01,T06] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.MoneyManagement.FinancialAccounts.StatementListOptions\u003E\n-;  V03 arg3         [V03,T05] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T05] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V02 arg2         [V02,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.MoneyManagement.FinancialAccounts.StatementListOptions\u003E\n\u002B;  V03 arg3         [V03,T04] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V06 tmp1         [V06,T09] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.FinancialAccountStatement]\u003E\n\u002B;  V06 tmp1         [V06,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.FinancialAccountStatement]\u003E\n ;  V07 tmp2         [V07,T02] (  4,  6   )     ref  -\u003E  r12         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V08 tmp3         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.FinancialAccountStatement]\u003E\n ;* V09 tmp4         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp5         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.FinancialAccountStatement]\u003E\n-;  V11 tmp6         [V11,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp7         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp8         [V13,T07] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp9         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp10        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 tmp11        [V16,T08] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V17 rat0         [V17,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp5         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.FinancialAccountStatement]\u003E\n\u002B;* V11 tmp6         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp7         [V12,T07] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp8         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp9         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 tmp10        [V15,T08] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V16 rat0         [V16,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M56194_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rdx\n-       mov      r14, rcx\n\u002B       mov      r14, rdx\n\u002B       mov      r15, rcx\n        mov      r13, r8\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M56194_IG02:\n        mov      rdi, rsi\n        mov      rax, 0xD1FFAB1E      ; code for System.Net.WebUtility:UrlEncode(System.String):System.String\n        call     [rax]System.Net.WebUtility:UrlEncode(System.String):System.String\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; \u0027/v2/money_management/financial_accounts/\u0027\n        mov      rdx, 0xD1FFAB1E      ; \u0027/statements\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Concat(System.String,System.String,System.String):System.String\n        call     [rax]System.String:Concat(System.String,System.String,System.String):System.String\n        mov      r12, rax\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for Stripe.ApiModeUtils:GetApiMode(System.String):int\n        call     [rax]Stripe.ApiModeUtils:GetApiMode(System.String):int\n        cmp      eax, 1\n        je       G_M56194_IG04\n \t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 12.50\n G_M56194_IG03:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.MoneyManagement.FinancialAccountStatement]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       lea      rdi, bword ptr [rbx\u002B0x28]\n\u002B       lea      rdi, bword ptr [r14\u002B0x28]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M56194_IG05\n-\t\t\t\t\t\t;; size=168 bbWeight=0.50 PerfScore 14.00\n\u002B\t\t\t\t\t\t;; size=127 bbWeight=0.50 PerfScore 10.38\n G_M56194_IG04:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.MoneyManagement.FinancialAccountStatement]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        lea      rdi, bword ptr [rbx\u002B0x28]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=135 bbWeight=0.50 PerfScore 11.00\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=138 bbWeight=0.50 PerfScore 11.12\n G_M56194_IG05:\n-       mov      rax, rbx\n\u002B       mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M56194_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 429, prolog size 19, PerfScore 49.75, instruction count 99, allocated bytes for code 429 (MethodHash=9f22247d) for method Stripe.V2.MoneyManagement.FinancialAccounts.StatementService:ListAutoPagingAsync(System.String,Stripe.V2.MoneyManagement.FinancialAccounts.StatementListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.FinancialAccountStatement]:this (FullOpts)\n\u002B; Total bytes of code 388, prolog size 16, PerfScore 47.00, instruction count 92, allocated bytes for code 388 (MethodHash=9f22247d) for method Stripe.V2.MoneyManagement.FinancialAccounts.StatementService:ListAutoPagingAsync(System.String,Stripe.V2.MoneyManagement.FinancialAccounts.StatementListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.MoneyManagement.FinancialAccountStatement]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":429,"DiffBytes":388},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollectionAsync[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[int]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[int,System.Numerics.Vector\u00601[float]]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[int,MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M51985_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M51985_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M51985_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[int,System.Numerics.Vector\u00601[float]]:Render(MongoDB.Driver.RenderArgs\u00601[int]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M51985_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M51985_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M51985_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M51985_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M51985_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M51985_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M51985_IG07:\n        test     rax, rax\n-       je       SHORT G_M51985_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M51985_IG08:\n\u002B       je       SHORT G_M51985_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M51985_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M51985_IG10\n\u002B       jmp      SHORT G_M51985_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M51985_IG09:\n\u002BG_M51985_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M51985_IG10:\n\u002BG_M51985_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M51985_IG14\n\u002B       je       SHORT G_M51985_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M51985_IG11:\n\u002BG_M51985_IG08:\n        test     rax, rax\n-       je       SHORT G_M51985_IG15\n\u002B       je       SHORT G_M51985_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M51985_IG12:\n\u002BG_M51985_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M51985_IG15\n\u002B       jne      SHORT G_M51985_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M51985_IG13:\n\u002BG_M51985_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M51985_IG15\n\u002B       je       SHORT G_M51985_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M51985_IG14:\n\u002BG_M51985_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M51985_IG22\n\u002B       jmp      SHORT G_M51985_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M51985_IG15:\n\u002BG_M51985_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M51985_IG20\n\u002B       je       SHORT G_M51985_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M51985_IG16:\n\u002BG_M51985_IG13:\n        test     rax, rax\n-       je       SHORT G_M51985_IG18\n\u002B       je       SHORT G_M51985_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M51985_IG17:\n\u002BG_M51985_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M51985_IG19\n\u002B       je       SHORT G_M51985_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M51985_IG18:\n\u002BG_M51985_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M51985_IG21\n\u002B       jmp      SHORT G_M51985_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M51985_IG19:\n\u002BG_M51985_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M51985_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M51985_IG21\n\u002B       jmp      SHORT G_M51985_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M51985_IG20:\n\u002BG_M51985_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M51985_IG21:\n\u002BG_M51985_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M51985_IG22:\n\u002BG_M51985_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M51985_IG27\n\u002B       je       G_M51985_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M51985_IG27\n\u002B       je       G_M51985_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M51985_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[int,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M51985_IG24\n\u002B       jne      SHORT G_M51985_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M51985_IG23:\n\u002BG_M51985_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M51985_IG24:\n\u002BG_M51985_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M51985_IG25:\n-       add      rsp, 232\n\u002BG_M51985_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M51985_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M51985_IG26:\n\u002BG_M51985_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M51985_IG27:\n\u002BG_M51985_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M51985_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=a33234ee) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollectionAsync[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=a33234ee) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollectionAsync[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"Stripe.net.dasm","Method":"Stripe.V2.Payments.SettlementAllocationIntents.SplitService:ListAutoPagingAsync(System.String,Stripe.V2.Payments.SettlementAllocationIntents.SplitListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Payments.SettlementAllocationIntentSplit]:this (FullOpts)","Category":"improvement","Description":"429 -\u003E 388 bytes (-41)","ExtraInfo":null,"Diff":"@@ -1,148 \u002B1,140 @@\n ; Assembly listing for method Stripe.V2.Payments.SettlementAllocationIntents.SplitService:ListAutoPagingAsync(System.String,Stripe.V2.Payments.SettlementAllocationIntents.SplitListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Payments.SettlementAllocationIntentSplit]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 12 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T03] (  4,  3   )     ref  -\u003E  rbx         this class-hnd single-def \u003CStripe.V2.Payments.SettlementAllocationIntents.SplitService\u003E\n-;  V01 arg1         [V01,T06] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n-;  V02 arg2         [V02,T04] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.V2.Payments.SettlementAllocationIntents.SplitListOptions\u003E\n-;  V03 arg3         [V03,T05] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CStripe.RequestOptions\u003E\n\u002B;  V01 arg1         [V01,T05] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.String\u003E\n\u002B;  V02 arg2         [V02,T06] (  3,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CStripe.V2.Payments.SettlementAllocationIntents.SplitListOptions\u003E\n\u002B;  V03 arg3         [V03,T04] (  4,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CStripe.RequestOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V06 tmp1         [V06,T09] (  3,  2   )     ref  -\u003E  rbx         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Payments.SettlementAllocationIntentSplit]\u003E\n\u002B;  V06 tmp1         [V06,T09] (  3,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Payments.SettlementAllocationIntentSplit]\u003E\n ;  V07 tmp2         [V07,T02] (  4,  6   )     ref  -\u003E  r12         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V08 tmp3         [V08,T00] ( 10, 10   )     ref  -\u003E  [rbp-0x30]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Payments.SettlementAllocationIntentSplit]\u003E\n ;* V09 tmp4         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V10 tmp5         [V10,T01] ( 10, 10   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Payments.SettlementAllocationIntentSplit]\u003E\n-;  V11 tmp6         [V11,T10] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CStripe.ListOptions\u003E\n-;* V12 tmp7         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n-;  V13 tmp8         [V13,T07] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;* V14 tmp9         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;* V15 tmp10        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V12.m_task (fldOffset=0x0)\u0022 P-INDEP\n-;  V16 tmp11        [V16,T08] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V17 rat0         [V17,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V18 rat1         [V18,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n-;  V19 rat2         [V19,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n-;  V20 rat3         [V20,T14] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V10 tmp5         [V10,T01] ( 10, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CStripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Payments.SettlementAllocationIntentSplit]\u003E\n\u002B;* V11 tmp6         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncIteratorMethodBuilder\u003E\n\u002B;  V12 tmp7         [V12,T07] (  3,  2   )     ref  -\u003E  r13         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V13 tmp8         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V09.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;* V14 tmp9         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V11.m_task (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V15 tmp10        [V15,T08] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V16 rat0         [V16,T10] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V17 rat1         [V17,T11] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n\u002B;  V18 rat2         [V18,T12] (  2,  2   )    long  -\u003E  rax         \u0022TLS field access\u0022\n\u002B;  V19 rat3         [V19,T13] (  2,  2   )    long  -\u003E  rax         \u0022TLS access\u0022\n ;\n-; Lcl frame size = 24\n\u002B; Lcl frame size = 8\n \n G_M41158_IG01:\n        push     rbp\n        push     r15\n        push     r14\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 24\n-       lea      rbp, [rsp\u002B0x40]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rdi\n-       mov      r15, rdx\n-       mov      r14, rcx\n\u002B       mov      r14, rdx\n\u002B       mov      r15, rcx\n        mov      r13, r8\n-\t\t\t\t\t\t;; size=31 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 8.50\n G_M41158_IG02:\n        mov      rdi, rsi\n        mov      rax, 0xD1FFAB1E      ; code for System.Net.WebUtility:UrlEncode(System.String):System.String\n        call     [rax]System.Net.WebUtility:UrlEncode(System.String):System.String\n        mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; \u0027/v2/payments/settlement_allocation_intents/\u0027\n        mov      rdx, 0xD1FFAB1E      ; \u0027/splits\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Concat(System.String,System.String,System.String):System.String\n        call     [rax]System.String:Concat(System.String,System.String,System.String):System.String\n        mov      r12, rax\n        mov      rdi, r12\n        mov      rax, 0xD1FFAB1E      ; code for Stripe.ApiModeUtils:GetApiMode(System.String):int\n        call     [rax]Stripe.ApiModeUtils:GetApiMode(System.String):int\n        cmp      eax, 1\n        je       G_M41158_IG04\n \t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 12.50\n G_M41158_IG03:\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; Stripe.ListOptions\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r15, rax\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV1ListRequestAutoPagingAsync\u003Ed__17\u00601[Stripe.V2.Payments.SettlementAllocationIntentSplit]\n        call     CORINFO_HELP_NEWSFAST\n-       mov      gword ptr [rbp-0x38], rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      qword ptr [rax\u002B0x78], rdi\n-       mov      dword ptr [rax\u002B0x68], -2\n\u002B       mov      qword ptr [r14\u002B0x78], rdi\n\u002B       mov      dword ptr [r14\u002B0x68], -2\n        mov      rdi, 0xD1FFAB1E\n-       mov      rcx, 0xD1FFAB1E      ; function address\n-       call     rcx\n\u002B       mov      rax, 0xD1FFAB1E      ; function address\n\u002B       call     rax\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n-       mov      rax, gword ptr [rbp-0x38]\n-       mov      dword ptr [rax\u002B0x6C], edi\n-       lea      rdi, bword ptr [rax\u002B0x18]\n\u002B       mov      dword ptr [r14\u002B0x6C], edi\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rbx, gword ptr [rbp-0x38]\n-       lea      rdi, bword ptr [rbx\u002B0x28]\n\u002B       lea      rdi, bword ptr [r14\u002B0x28]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x38]\n\u002B       xor      rdi, rdi\n\u002B       mov      gword ptr [r14\u002B0x38], rdi\n\u002B       lea      rdi, bword ptr [r14\u002B0x48]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n-       call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [rbx\u002B0xB0]\n\u002B       lea      rdi, bword ptr [r14\u002B0xB0]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n        jmp      G_M41158_IG05\n-\t\t\t\t\t\t;; size=168 bbWeight=0.50 PerfScore 14.00\n\u002B\t\t\t\t\t\t;; size=127 bbWeight=0.50 PerfScore 10.38\n G_M41158_IG04:\n        mov      rdi, 0xD1FFAB1E      ; Stripe.Service\u002B\u003CV2ListRequestAutoPagingAsync\u003Ed__15\u00601[Stripe.V2.Payments.SettlementAllocationIntentSplit]\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x30], rax\n        xor      edi, edi\n        mov      qword ptr [rax\u002B0x70], rdi\n        mov      dword ptr [rax\u002B0x60], -2\n        mov      rdi, 0xD1FFAB1E\n        mov      rcx, 0xD1FFAB1E      ; function address\n        call     rcx\n        add      rax, 16\n        mov      edi, dword ptr [rax\u002B0x10]\n        mov      rax, gword ptr [rbp-0x30]\n        mov      dword ptr [rax\u002B0x64], edi\n        lea      rdi, bword ptr [rax\u002B0x18]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rbx, gword ptr [rbp-0x30]\n        lea      rdi, bword ptr [rbx\u002B0x28]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x38]\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0x48]\n-       mov      rsi, r14\n\u002B       mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [rbx\u002B0xA8]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-\t\t\t\t\t\t;; size=135 bbWeight=0.50 PerfScore 11.00\n\u002B       mov      r14, rbx\n\u002B\t\t\t\t\t\t;; size=138 bbWeight=0.50 PerfScore 11.12\n G_M41158_IG05:\n-       mov      rax, rbx\n\u002B       mov      rax, r14\n \t\t\t\t\t\t;; size=3 bbWeight=1 PerfScore 0.25\n G_M41158_IG06:\n-       add      rsp, 24\n\u002B       add      rsp, 8\n        pop      rbx\n        pop      r12\n        pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n \n-; Total bytes of code 429, prolog size 19, PerfScore 49.75, instruction count 99, allocated bytes for code 429 (MethodHash=ead25f39) for method Stripe.V2.Payments.SettlementAllocationIntents.SplitService:ListAutoPagingAsync(System.String,Stripe.V2.Payments.SettlementAllocationIntents.SplitListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Payments.SettlementAllocationIntentSplit]:this (FullOpts)\n\u002B; Total bytes of code 388, prolog size 16, PerfScore 47.00, instruction count 92, allocated bytes for code 388 (MethodHash=ead25f39) for method Stripe.V2.Payments.SettlementAllocationIntents.SplitService:ListAutoPagingAsync(System.String,Stripe.V2.Payments.SettlementAllocationIntents.SplitListOptions,Stripe.RequestOptions,System.Threading.CancellationToken):System.Collections.Generic.IAsyncEnumerable\u00601[Stripe.V2.Payments.SettlementAllocationIntentSplit]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":429,"DiffBytes":388},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollectionAsync[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"951 -\u003E 888 bytes (-63)","ExtraInfo":null,"Diff":"@@ -10,18 \u002B10,18 @@\n ;\n ;  V00 this         [V00,T03] (  5,  5   )     ref  -\u003E  r14         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[int]\u003E\n ;  V01 TypeCtx      [V01,T02] (  7,  5.40)    long  -\u003E  r15         single-def\n-;  V02 arg1         [V02,T06] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V02 arg1         [V02,T05] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V03 arg2         [V03,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[int,System.__Canon]\u003E\n ;  V04 arg3         [V04,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T22] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n\u002B;  V06 loc0         [V06,T21] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n-;  V08 loc2         [V08,T23] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n-;  V09 loc3         [V09,T21] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V08 loc2         [V08,T22] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n\u002B;  V09 loc3         [V09,T20] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V12 tmp2         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V13 tmp3         [V13,T29] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V13 tmp3         [V13,T28] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V14 tmp4         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V15 tmp5         [V15    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V16 tmp6         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n@@ -39,26 \u002B39,26 @@\n ;* V28 tmp18        [V28    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V29 tmp19        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V30 tmp20        [V30    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V31 tmp21        [V31,T20] (  3,  2   )     int  -\u003E  registers  \n-;  V32 tmp22        [V32,T05] (  4,  7   )     ref  -\u003E  [rbp-0xD8]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V33 tmp23        [V33    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V34 tmp24        [V34,T18] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V35 tmp25        [V35,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V31 tmp21        [V31,T19] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V32 tmp22        [V32,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V33 tmp23        [V33    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V34 tmp24        [V34,T18] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V37 tmp27        [V37,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V38 tmp28        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V39 tmp29        [V39,T26] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V39 tmp29        [V39,T25] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V40 tmp30        [V40    ] ( 11, 10.50)  struct (88) [rbp-0xD0]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[int,MongoDB.Bson.BsonDocument]\u003E\n ;* V41 tmp31        [V41    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V42 tmp32        [V42,T13] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V43 tmp33        [V43,T17] (  4,  3.50)     ref  -\u003E  rax        \n-;  V44 tmp34        [V44,T14] (  2,  2   )     ref  -\u003E  [rbp-0xE0]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp35        [V45,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V15.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp36        [V46,T25] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V15.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp34        [V44,T14] (  2,  2   )     ref  -\u003E  [rbp-0xD8]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp35        [V45,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V15.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp36        [V46,T24] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V15.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V22._name (fldOffset=0x0)\u0022 P-DEP\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V22._value (fldOffset=0x8)\u0022 P-DEP\n-;  V49 tmp39        [V49,T27] (  2,  1   )     ref  -\u003E  rax         \u0022field V23._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V50 tmp40        [V50,T28] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V23._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V49 tmp39        [V49,T26] (  2,  1   )     ref  -\u003E  rax         \u0022field V23._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V50 tmp40        [V50,T27] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V23._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V51 tmp41        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V41.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;  V52 tmp42        [V52,T15] (  2,  4   )    long  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V53 tmp43        [V53,T16] (  2,  4   )    long  -\u003E  rsi         \u0022argument with side effect\u0022\n@@ -67,7 \u002B67,7 @@\n ;  V56 rat2         [V56,T12] (  3,  4   )    long  -\u003E  rsi         \u0022runtime lookup\u0022\n ;  V57 rat3         [V57,T08] (  3,  5.60)    long  -\u003E  rsi         \u0022fgMakeTemp is creating a new local variable\u0022\n ;\n-; Lcl frame size = 248\n\u002B; Lcl frame size = 232\n \n G_M38257_IG01:\n        push     rbp\n@@ -76,14 \u002B76,14 @@ G_M38257_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 248\n-       lea      rbp, [rsp\u002B0x120]\n\u002B       sub      rsp, 232\n\u002B       lea      rbp, [rsp\u002B0x110]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0xD0], zmm8\n        vmovdqu32 zmmword ptr [rbp-0x90], zmm8\n        vmovdqu  ymmword ptr [rbp-0x50], ymm8\n        mov      qword ptr [rbp-0x30], rsi\n-       mov      gword ptr [rbp-0xE0], r9\n\u002B       mov      gword ptr [rbp-0xD8], r9\n        mov      r14, rdi\n        mov      r15, rsi\n        mov      r12, rdx\n@@ -99,7 \u002B99,7 @@ G_M38257_IG02:\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M38257_IG29\n\u002B       je       G_M38257_IG26\n \t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 9.25\n G_M38257_IG03:\n        mov      rsi, r13\n@@ -149,90 \u002B149,70 @@ G_M38257_IG05:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[int,System.__Canon]:Render(MongoDB.Driver.RenderArgs\u00601[int]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0xD8], rax\n-       test     rax, rax\n-       je       G_M38257_IG30\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M38257_IG07\n-\t\t\t\t\t\t;; size=181 bbWeight=1 PerfScore 43.25\n-G_M38257_IG06:\n-       lea      rsi, [rbp-0x78]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M38257_IG08\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M38257_IG07:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M38257_IG27\n        lea      rdx, [rbp-0x78]\n-       mov      rsi, gword ptr [rbp-0xD8]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M38257_IG08:\n        test     rax, rax\n-       je       SHORT G_M38257_IG10\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M38257_IG09:\n\u002B       je       SHORT G_M38257_IG07\n\u002B\t\t\t\t\t\t;; size=175 bbWeight=1 PerfScore 42.50\n\u002BG_M38257_IG06:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M38257_IG11\n\u002B       jmp      SHORT G_M38257_IG08\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M38257_IG10:\n\u002BG_M38257_IG07:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M38257_IG11:\n\u002BG_M38257_IG08:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M38257_IG15\n\u002B       je       SHORT G_M38257_IG12\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M38257_IG12:\n\u002BG_M38257_IG09:\n        test     rax, rax\n-       je       SHORT G_M38257_IG16\n\u002B       je       SHORT G_M38257_IG13\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M38257_IG13:\n\u002BG_M38257_IG10:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M38257_IG16\n\u002B       jne      SHORT G_M38257_IG13\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M38257_IG14:\n\u002BG_M38257_IG11:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M38257_IG16\n\u002B       je       SHORT G_M38257_IG13\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M38257_IG15:\n\u002BG_M38257_IG12:\n        mov      ecx, 1\n-       jmp      SHORT G_M38257_IG23\n\u002B       jmp      SHORT G_M38257_IG20\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M38257_IG16:\n\u002BG_M38257_IG13:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M38257_IG21\n\u002B       je       SHORT G_M38257_IG18\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M38257_IG17:\n\u002BG_M38257_IG14:\n        test     rax, rax\n-       je       SHORT G_M38257_IG19\n\u002B       je       SHORT G_M38257_IG16\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M38257_IG18:\n\u002BG_M38257_IG15:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M38257_IG20\n\u002B       je       SHORT G_M38257_IG17\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M38257_IG19:\n\u002BG_M38257_IG16:\n        xor      ecx, ecx\n-       jmp      SHORT G_M38257_IG22\n\u002B       jmp      SHORT G_M38257_IG19\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M38257_IG20:\n\u002BG_M38257_IG17:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -240,30 \u002B220,30 @@ G_M38257_IG20:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M38257_IG22\n\u002B       jmp      SHORT G_M38257_IG19\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M38257_IG21:\n\u002BG_M38257_IG18:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M38257_IG22:\n\u002BG_M38257_IG19:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M38257_IG23:\n\u002BG_M38257_IG20:\n        mov      dword ptr [rbp-0x6C], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M38257_IG31\n\u002B       je       G_M38257_IG28\n        cmp      dword ptr [rbp-0x6C], 0\n-       je       G_M38257_IG31\n\u002B       je       G_M38257_IG28\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rsi, qword ptr [rdi\u002B0x20]\n        test     rsi, rsi\n-       je       G_M38257_IG28\n\u002B       je       G_M38257_IG25\n \t\t\t\t\t\t;; size=55 bbWeight=1 PerfScore 14.75\n-G_M38257_IG24:\n\u002BG_M38257_IG21:\n        mov      rdi, r14\n        mov      rdx, r13\n        mov      rcx, rbx\n@@ -278,7 \u002B258,7 @@ G_M38257_IG24:\n        mov      gword ptr [rbp-0xC0], rax\n        mov      byte  ptr [rbp-0xA0], sil\n        mov      qword ptr [rbp-0x98], rdi\n-       mov      rbx, gword ptr [rbp-0xE0]\n\u002B       mov      rbx, gword ptr [rbp-0xD8]\n        mov      gword ptr [rbp-0x90], rbx\n        mov      dword ptr [rbp-0xB0], -1\n        lea      rsi, [rbp-0xD0]\n@@ -287,19 \u002B267,19 @@ G_M38257_IG24:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[int,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA8]\n        test     rax, rax\n-       jne      SHORT G_M38257_IG26\n\u002B       jne      SHORT G_M38257_IG23\n \t\t\t\t\t\t;; size=139 bbWeight=1 PerfScore 23.50\n-G_M38257_IG25:\n\u002BG_M38257_IG22:\n        lea      rdi, [rbp-0xA8]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M38257_IG26:\n\u002BG_M38257_IG23:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M38257_IG27:\n-       add      rsp, 248\n\u002BG_M38257_IG24:\n\u002B       add      rsp, 232\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -308,15 \u002B288,15 @@ G_M38257_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M38257_IG28:\n\u002BG_M38257_IG25:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M38257_IG24\n\u002B       jmp      G_M38257_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M38257_IG29:\n\u002BG_M38257_IG26:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -324,13 \u002B304,13 @@ G_M38257_IG29:\n        mov      rdi, rax\n        jmp      G_M38257_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M38257_IG30:\n\u002BG_M38257_IG27:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M38257_IG31:\n\u002BG_M38257_IG28:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -343,5 \u002B323,5 @@ G_M38257_IG31:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 951, prolog size 59, PerfScore 144.30, instruction count 211, allocated bytes for code 951 (MethodHash=41136a8e) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollectionAsync[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 888, prolog size 59, PerfScore 134.92, instruction count 197, allocated bytes for code 888 (MethodHash=41136a8e) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollectionAsync[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":951,"DiffBytes":888},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollectionAsync[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[int]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[int,byte]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[int,MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M40561_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M40561_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M40561_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[int,byte]:Render(MongoDB.Driver.RenderArgs\u00601[int]):MongoDB.Driver.RenderedPipelineDefinition\u00601[byte]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M40561_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M40561_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M40561_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M40561_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M40561_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M40561_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M40561_IG07:\n        test     rax, rax\n-       je       SHORT G_M40561_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M40561_IG08:\n\u002B       je       SHORT G_M40561_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M40561_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M40561_IG10\n\u002B       jmp      SHORT G_M40561_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M40561_IG09:\n\u002BG_M40561_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M40561_IG10:\n\u002BG_M40561_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M40561_IG14\n\u002B       je       SHORT G_M40561_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M40561_IG11:\n\u002BG_M40561_IG08:\n        test     rax, rax\n-       je       SHORT G_M40561_IG15\n\u002B       je       SHORT G_M40561_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M40561_IG12:\n\u002BG_M40561_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M40561_IG15\n\u002B       jne      SHORT G_M40561_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M40561_IG13:\n\u002BG_M40561_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M40561_IG15\n\u002B       je       SHORT G_M40561_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M40561_IG14:\n\u002BG_M40561_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M40561_IG22\n\u002B       jmp      SHORT G_M40561_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M40561_IG15:\n\u002BG_M40561_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M40561_IG20\n\u002B       je       SHORT G_M40561_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M40561_IG16:\n\u002BG_M40561_IG13:\n        test     rax, rax\n-       je       SHORT G_M40561_IG18\n\u002B       je       SHORT G_M40561_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M40561_IG17:\n\u002BG_M40561_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M40561_IG19\n\u002B       je       SHORT G_M40561_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M40561_IG18:\n\u002BG_M40561_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M40561_IG21\n\u002B       jmp      SHORT G_M40561_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M40561_IG19:\n\u002BG_M40561_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M40561_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M40561_IG21\n\u002B       jmp      SHORT G_M40561_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M40561_IG20:\n\u002BG_M40561_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M40561_IG21:\n\u002BG_M40561_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M40561_IG22:\n\u002BG_M40561_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M40561_IG27\n\u002B       je       G_M40561_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M40561_IG27\n\u002B       je       G_M40561_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M40561_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[int,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M40561_IG24\n\u002B       jne      SHORT G_M40561_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M40561_IG23:\n\u002BG_M40561_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M40561_IG24:\n\u002BG_M40561_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M40561_IG25:\n-       add      rsp, 232\n\u002BG_M40561_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M40561_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M40561_IG26:\n\u002BG_M40561_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M40561_IG27:\n\u002BG_M40561_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M40561_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=a005618e) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollectionAsync[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=a005618e) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollectionAsync[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollectionAsync[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[int]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[int,double]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[int,MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M36209_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M36209_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M36209_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[int,double]:Render(MongoDB.Driver.RenderArgs\u00601[int]):MongoDB.Driver.RenderedPipelineDefinition\u00601[double]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M36209_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M36209_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M36209_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M36209_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M36209_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M36209_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M36209_IG07:\n        test     rax, rax\n-       je       SHORT G_M36209_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M36209_IG08:\n\u002B       je       SHORT G_M36209_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M36209_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M36209_IG10\n\u002B       jmp      SHORT G_M36209_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M36209_IG09:\n\u002BG_M36209_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M36209_IG10:\n\u002BG_M36209_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M36209_IG14\n\u002B       je       SHORT G_M36209_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M36209_IG11:\n\u002BG_M36209_IG08:\n        test     rax, rax\n-       je       SHORT G_M36209_IG15\n\u002B       je       SHORT G_M36209_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M36209_IG12:\n\u002BG_M36209_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M36209_IG15\n\u002B       jne      SHORT G_M36209_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M36209_IG13:\n\u002BG_M36209_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M36209_IG15\n\u002B       je       SHORT G_M36209_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M36209_IG14:\n\u002BG_M36209_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M36209_IG22\n\u002B       jmp      SHORT G_M36209_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M36209_IG15:\n\u002BG_M36209_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M36209_IG20\n\u002B       je       SHORT G_M36209_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M36209_IG16:\n\u002BG_M36209_IG13:\n        test     rax, rax\n-       je       SHORT G_M36209_IG18\n\u002B       je       SHORT G_M36209_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M36209_IG17:\n\u002BG_M36209_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M36209_IG19\n\u002B       je       SHORT G_M36209_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M36209_IG18:\n\u002BG_M36209_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M36209_IG21\n\u002B       jmp      SHORT G_M36209_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M36209_IG19:\n\u002BG_M36209_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M36209_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M36209_IG21\n\u002B       jmp      SHORT G_M36209_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M36209_IG20:\n\u002BG_M36209_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M36209_IG21:\n\u002BG_M36209_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M36209_IG22:\n\u002BG_M36209_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M36209_IG27\n\u002B       je       G_M36209_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M36209_IG27\n\u002B       je       G_M36209_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M36209_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[int,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M36209_IG24\n\u002B       jne      SHORT G_M36209_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M36209_IG23:\n\u002BG_M36209_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M36209_IG24:\n\u002BG_M36209_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M36209_IG25:\n-       add      rsp, 232\n\u002BG_M36209_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M36209_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M36209_IG26:\n\u002BG_M36209_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M36209_IG27:\n\u002BG_M36209_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M36209_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=9cdd728e) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollectionAsync[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=9cdd728e) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollectionAsync[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollectionAsync[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[int]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[int,int]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[int,MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M52177_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M52177_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M52177_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[int,int]:Render(MongoDB.Driver.RenderArgs\u00601[int]):MongoDB.Driver.RenderedPipelineDefinition\u00601[int]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M52177_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M52177_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M52177_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M52177_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M52177_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M52177_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M52177_IG07:\n        test     rax, rax\n-       je       SHORT G_M52177_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M52177_IG08:\n\u002B       je       SHORT G_M52177_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M52177_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M52177_IG10\n\u002B       jmp      SHORT G_M52177_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M52177_IG09:\n\u002BG_M52177_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M52177_IG10:\n\u002BG_M52177_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M52177_IG14\n\u002B       je       SHORT G_M52177_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M52177_IG11:\n\u002BG_M52177_IG08:\n        test     rax, rax\n-       je       SHORT G_M52177_IG15\n\u002B       je       SHORT G_M52177_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M52177_IG12:\n\u002BG_M52177_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M52177_IG15\n\u002B       jne      SHORT G_M52177_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M52177_IG13:\n\u002BG_M52177_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M52177_IG15\n\u002B       je       SHORT G_M52177_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M52177_IG14:\n\u002BG_M52177_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M52177_IG22\n\u002B       jmp      SHORT G_M52177_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M52177_IG15:\n\u002BG_M52177_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M52177_IG20\n\u002B       je       SHORT G_M52177_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M52177_IG16:\n\u002BG_M52177_IG13:\n        test     rax, rax\n-       je       SHORT G_M52177_IG18\n\u002B       je       SHORT G_M52177_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M52177_IG17:\n\u002BG_M52177_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M52177_IG19\n\u002B       je       SHORT G_M52177_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M52177_IG18:\n\u002BG_M52177_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M52177_IG21\n\u002B       jmp      SHORT G_M52177_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M52177_IG19:\n\u002BG_M52177_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M52177_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M52177_IG21\n\u002B       jmp      SHORT G_M52177_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M52177_IG20:\n\u002BG_M52177_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M52177_IG21:\n\u002BG_M52177_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M52177_IG22:\n\u002BG_M52177_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M52177_IG27\n\u002B       je       G_M52177_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M52177_IG27\n\u002B       je       G_M52177_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M52177_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[int,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M52177_IG24\n\u002B       jne      SHORT G_M52177_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M52177_IG23:\n\u002BG_M52177_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M52177_IG24:\n\u002BG_M52177_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M52177_IG25:\n-       add      rsp, 232\n\u002BG_M52177_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M52177_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M52177_IG26:\n\u002BG_M52177_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M52177_IG27:\n\u002BG_M52177_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M52177_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=753d342e) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollectionAsync[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=753d342e) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollectionAsync[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollectionAsync[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[int]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[int,long]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[int,MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M24177_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M24177_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M24177_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[int,long]:Render(MongoDB.Driver.RenderArgs\u00601[int]):MongoDB.Driver.RenderedPipelineDefinition\u00601[long]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M24177_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M24177_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M24177_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M24177_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M24177_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M24177_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M24177_IG07:\n        test     rax, rax\n-       je       SHORT G_M24177_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M24177_IG08:\n\u002B       je       SHORT G_M24177_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M24177_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M24177_IG10\n\u002B       jmp      SHORT G_M24177_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M24177_IG09:\n\u002BG_M24177_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M24177_IG10:\n\u002BG_M24177_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M24177_IG14\n\u002B       je       SHORT G_M24177_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M24177_IG11:\n\u002BG_M24177_IG08:\n        test     rax, rax\n-       je       SHORT G_M24177_IG15\n\u002B       je       SHORT G_M24177_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M24177_IG12:\n\u002BG_M24177_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M24177_IG15\n\u002B       jne      SHORT G_M24177_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M24177_IG13:\n\u002BG_M24177_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M24177_IG15\n\u002B       je       SHORT G_M24177_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M24177_IG14:\n\u002BG_M24177_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M24177_IG22\n\u002B       jmp      SHORT G_M24177_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M24177_IG15:\n\u002BG_M24177_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M24177_IG20\n\u002B       je       SHORT G_M24177_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M24177_IG16:\n\u002BG_M24177_IG13:\n        test     rax, rax\n-       je       SHORT G_M24177_IG18\n\u002B       je       SHORT G_M24177_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M24177_IG17:\n\u002BG_M24177_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M24177_IG19\n\u002B       je       SHORT G_M24177_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M24177_IG18:\n\u002BG_M24177_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M24177_IG21\n\u002B       jmp      SHORT G_M24177_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M24177_IG19:\n\u002BG_M24177_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M24177_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M24177_IG21\n\u002B       jmp      SHORT G_M24177_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M24177_IG20:\n\u002BG_M24177_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M24177_IG21:\n\u002BG_M24177_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M24177_IG22:\n\u002BG_M24177_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M24177_IG27\n\u002B       je       G_M24177_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M24177_IG27\n\u002B       je       G_M24177_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M24177_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[int,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M24177_IG24\n\u002B       jne      SHORT G_M24177_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M24177_IG23:\n\u002BG_M24177_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M24177_IG24:\n\u002BG_M24177_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M24177_IG25:\n-       add      rsp, 232\n\u002BG_M24177_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M24177_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M24177_IG26:\n\u002BG_M24177_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M24177_IG27:\n\u002BG_M24177_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M24177_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=9591a18e) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollectionAsync[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=9591a18e) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollectionAsync[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollectionAsync[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[int]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[int,short]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[int,MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M24305_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M24305_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M24305_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[int,short]:Render(MongoDB.Driver.RenderArgs\u00601[int]):MongoDB.Driver.RenderedPipelineDefinition\u00601[short]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M24305_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M24305_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M24305_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M24305_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M24305_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M24305_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M24305_IG07:\n        test     rax, rax\n-       je       SHORT G_M24305_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M24305_IG08:\n\u002B       je       SHORT G_M24305_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M24305_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M24305_IG10\n\u002B       jmp      SHORT G_M24305_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M24305_IG09:\n\u002BG_M24305_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M24305_IG10:\n\u002BG_M24305_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M24305_IG14\n\u002B       je       SHORT G_M24305_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M24305_IG11:\n\u002BG_M24305_IG08:\n        test     rax, rax\n-       je       SHORT G_M24305_IG15\n\u002B       je       SHORT G_M24305_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M24305_IG12:\n\u002BG_M24305_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M24305_IG15\n\u002B       jne      SHORT G_M24305_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M24305_IG13:\n\u002BG_M24305_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M24305_IG15\n\u002B       je       SHORT G_M24305_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M24305_IG14:\n\u002BG_M24305_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M24305_IG22\n\u002B       jmp      SHORT G_M24305_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M24305_IG15:\n\u002BG_M24305_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M24305_IG20\n\u002B       je       SHORT G_M24305_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M24305_IG16:\n\u002BG_M24305_IG13:\n        test     rax, rax\n-       je       SHORT G_M24305_IG18\n\u002B       je       SHORT G_M24305_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M24305_IG17:\n\u002BG_M24305_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M24305_IG19\n\u002B       je       SHORT G_M24305_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M24305_IG18:\n\u002BG_M24305_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M24305_IG21\n\u002B       jmp      SHORT G_M24305_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M24305_IG19:\n\u002BG_M24305_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M24305_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M24305_IG21\n\u002B       jmp      SHORT G_M24305_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M24305_IG20:\n\u002BG_M24305_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M24305_IG21:\n\u002BG_M24305_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M24305_IG22:\n\u002BG_M24305_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M24305_IG27\n\u002B       je       G_M24305_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M24305_IG27\n\u002B       je       G_M24305_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M24305_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[int,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M24305_IG24\n\u002B       jne      SHORT G_M24305_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M24305_IG23:\n\u002BG_M24305_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M24305_IG24:\n\u002BG_M24305_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M24305_IG25:\n-       add      rsp, 232\n\u002BG_M24305_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M24305_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M24305_IG26:\n\u002BG_M24305_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M24305_IG27:\n\u002BG_M24305_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M24305_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=a046a10e) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollectionAsync[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=a046a10e) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollectionAsync[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[int]:Aggregate[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)","Category":"improvement","Description":"1,813 -\u003E 1,750 bytes (-63)","ExtraInfo":null,"Diff":"@@ -14,16 \u002B14,16 @@\n ;  V03 arg2         [V03,T04] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[int,System.__Canon]\u003E\n ;  V04 arg3         [V04,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T39] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n\u002B;  V06 loc0         [V06,T38] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n-;  V08 loc2         [V08,T40] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V09 loc3         [V09,T46] (  3,  1.50)     ref  -\u003E  [rbp-0x80]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V10 loc4         [V10,T47] (  3,  1.50)     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.__Canon]\u003E\n\u002B;  V08 loc2         [V08,T39] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V09 loc3         [V09,T45] (  3,  1.50)     ref  -\u003E  [rbp-0x80]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V10 loc4         [V10,T46] (  3,  1.50)     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.__Canon]\u003E\n ;  V11 OutArgs      [V11    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V12 tmp1         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V13 tmp2         [V13    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V14 tmp3         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V15 tmp4         [V15,T29] (  4,  2.20)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n\u002B;  V15 tmp4         [V15,T28] (  4,  2.20)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n ;* V16 tmp5         [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V17 tmp6         [V17    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V18 tmp7         [V18    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -43,22 \u002B43,22 @@\n ;* V32 tmp21        [V32    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V33 tmp22        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V34 tmp23        [V34    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V35 tmp24        [V35,T33] (  3,  2   )     int  -\u003E  rdi        \n-;  V36 tmp25        [V36,T06] (  4,  7   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V37 tmp26        [V37    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V38 tmp27        [V38,T17] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V39 tmp28        [V39,T18] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V35 tmp24        [V35,T32] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V36 tmp25        [V36,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V37 tmp26        [V37    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V38 tmp27        [V38,T17] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V39 tmp28        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V40 tmp29        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V41 tmp30        [V41,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V42 tmp31        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V43 tmp32        [V43,T45] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V43 tmp32        [V43,T44] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V44 tmp33        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V45 tmp34        [V45,T31] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V46 tmp35        [V46,T19] (  3,  3   )     ref  -\u003E  [rbp-0x98]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V45 tmp34        [V45,T30] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V46 tmp35        [V46,T18] (  3,  3   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V47 tmp36        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V48 tmp37        [V48,T08] ( 10,  5   )     ref  -\u003E  [rbp-0xA0]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;  V48 tmp37        [V48,T08] ( 10,  5   )     ref  -\u003E  [rbp-0x98]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V49 tmp38        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp39        [V50,T09] ( 10,  5   )     ref  -\u003E  [rbp-0xA8]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;  V50 tmp39        [V50,T09] ( 10,  5   )     ref  -\u003E  [rbp-0xA0]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V51 tmp40        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V52 tmp41        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V53 tmp42        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -67,14 \u002B67,14 @@\n ;* V56 tmp45        [V56    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.__Canon]\u003E\n ;* V57 tmp46        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V58 tmp47        [V58    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V59 tmp48        [V59,T48] (  2,  1   )     ref  -\u003E  [rbp-0xB0]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V60 tmp49        [V60,T30] (  4,  2.20)    long  -\u003E  [rbp-0x78]  \u0022Inlining Arg\u0022\n\u002B;  V59 tmp48        [V59,T47] (  2,  1   )     ref  -\u003E  [rbp-0xA8]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V60 tmp49        [V60,T29] (  4,  2.20)    long  -\u003E  [rbp-0x78]  \u0022Inlining Arg\u0022\n ;* V61 tmp50        [V61    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V62 tmp51        [V62,T32] (  8,  2   )     ref  -\u003E  [rbp-0xB8]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V63 tmp52        [V63,T20] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V62 tmp51        [V62,T31] (  8,  2   )     ref  -\u003E  [rbp-0xB0]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V63 tmp52        [V63,T19] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V64 tmp53        [V64    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V65 tmp54        [V65,T49] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.__Canon]\u003E\n-;  V66 tmp55        [V66,T38] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V65 tmp54        [V65,T48] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.__Canon]\u003E\n\u002B;  V66 tmp55        [V66,T37] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V67 tmp56        [V67    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V68 tmp57        [V68,T10] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V69 tmp58        [V69    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -82,36 \u002B82,36 @@\n ;* V71 tmp60        [V71    ] (  0,  0   )     ref  -\u003E  zero-ref   \n... diff truncated; middle omitted ...\n\u002BG_M44452_IG37:\n\u002B       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rdi, gword ptr [rsi\u002B0x10]\n\u002B       mov      rax, rdi\n\u002B       test     rax, rax\n\u002B       je       SHORT G_M44452_IG38\n        mov      rdi, rax\n        mov      esi, 1\n        mov      gword ptr [rbp-0xA0], rax\n@@ -473,35 \u002B469,19 @@ G_M44452_IG39:\n        call     [rcx\u002B0x28]System.Threading.CancellationTokenSource:Dispose(bool):this\n        mov      rdi, gword ptr [rbp-0xA0]\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n-       call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=77 bbWeight=0.50 PerfScore 9.62\n-G_M44452_IG40:\n-       mov      rsi, gword ptr [rbp-0x90]\n-       mov      rdi, gword ptr [rsi\u002B0x10]\n-       mov      rax, rdi\n-       test     rax, rax\n-       je       SHORT G_M44452_IG41\n-       mov      rdi, rax\n-       mov      esi, 1\n-       mov      gword ptr [rbp-0xA8], rax\n-       mov      rcx, qword ptr [rax]\n-       mov      rcx, qword ptr [rcx\u002B0x40]\n-       call     [rcx\u002B0x28]System.Threading.CancellationTokenSource:Dispose(bool):this\n-       mov      rdi, gword ptr [rbp-0xA8]\n-       mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.62\n-G_M44452_IG41:\n\u002BG_M44452_IG38:\n        mov      rdi, qword ptr [r14\u002B0x18]\n        cmp      qword ptr [rdi\u002B0x08], 56\n-       jle      SHORT G_M44452_IG45\n\u002B       jle      SHORT G_M44452_IG42\n \t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 2.50\n-G_M44452_IG42:\n\u002BG_M44452_IG39:\n        mov      rsi, qword ptr [rdi\u002B0x38]\n        test     rsi, rsi\n-       je       SHORT G_M44452_IG45\n\u002B       je       SHORT G_M44452_IG42\n \t\t\t\t\t\t;; size=9 bbWeight=0.40 PerfScore 1.30\n-G_M44452_IG43:\n\u002BG_M44452_IG40:\n        mov      rdi, r15\n        mov      rdx, r13\n        mov      rcx, r12\n@@ -510,8 \u002B490,8 @@ G_M44452_IG43:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateAggregateToCollectionResultCursor[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M44452_IG44:\n-       add      rsp, 216\n\u002BG_M44452_IG41:\n\u002B       add      rsp, 200\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -520,15 \u002B500,15 @@ G_M44452_IG44:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M44452_IG45:\n\u002BG_M44452_IG42:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      SHORT G_M44452_IG43\n\u002B       jmp      SHORT G_M44452_IG40\n \t\t\t\t\t\t;; size=30 bbWeight=0.18 PerfScore 1.08\n-G_M44452_IG46:\n\u002BG_M44452_IG43:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -536,53 \u002B516,53 @@ G_M44452_IG46:\n        mov      rdi, rax\n        jmp      G_M44452_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M44452_IG47:\n\u002BG_M44452_IG44:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M44452_IG37\n\u002B       jmp      G_M44452_IG34\n \t\t\t\t\t\t;; size=33 bbWeight=0.18 PerfScore 1.08\n-G_M44452_IG48:\n\u002BG_M44452_IG45:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M44452_IG24\n\u002B       jmp      G_M44452_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.10 PerfScore 0.60\n-G_M44452_IG49:\n\u002BG_M44452_IG46:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M44452_IG25\n\u002B       jmp      G_M44452_IG22\n \t\t\t\t\t\t;; size=33 bbWeight=0.10 PerfScore 0.60\n-G_M44452_IG50:\n\u002BG_M44452_IG47:\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      qword ptr [rbp-0x78], rax\n-       jmp      G_M44452_IG27\n\u002B       jmp      G_M44452_IG24\n \t\t\t\t\t\t;; size=31 bbWeight=0.10 PerfScore 0.65\n-G_M44452_IG51:\n\u002BG_M44452_IG48:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M44452_IG52:\n\u002BG_M44452_IG49:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M44452_IG53:\n-       cmp      gword ptr [rbp-0x90], 0\n-       je       SHORT G_M44452_IG55\n-       mov      rsi, gword ptr [rbp-0x90]\n\u002BG_M44452_IG50:\n\u002B       cmp      gword ptr [rbp-0x88], 0\n\u002B       je       SHORT G_M44452_IG52\n\u002B       mov      rsi, gword ptr [rbp-0x88]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M44452_IG54\n\u002B       je       SHORT G_M44452_IG51\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -592,11 \u002B572,11 @@ G_M44452_IG53:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M44452_IG54:\n-       mov      rsi, gword ptr [rbp-0x90]\n\u002BG_M44452_IG51:\n\u002B       mov      rsi, gword ptr [rbp-0x88]\n        mov      r15, gword ptr [rsi\u002B0x10]\n        test     r15, r15\n-       je       SHORT G_M44452_IG55\n\u002B       je       SHORT G_M44452_IG52\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -606,23 \u002B586,23 @@ G_M44452_IG54:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M44452_IG55:\n\u002BG_M44452_IG52:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M44452_IG56:\n\u002BG_M44452_IG53:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M44452_IG57:\n\u002BG_M44452_IG54:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M44452_IG58:\n-       cmp      gword ptr [rbp-0xB8], 0\n-       je       SHORT G_M44452_IG60\n-       mov      rsi, gword ptr [rbp-0xB8]\n\u002BG_M44452_IG55:\n\u002B       cmp      gword ptr [rbp-0xB0], 0\n\u002B       je       SHORT G_M44452_IG57\n\u002B       mov      rsi, gword ptr [rbp-0xB0]\n        mov      r13, gword ptr [rsi\u002B0x08]\n        test     r13, r13\n-       je       SHORT G_M44452_IG59\n\u002B       je       SHORT G_M44452_IG56\n        mov      rdi, r13\n        mov      esi, 1\n        mov      rax, qword ptr [r13]\n@@ -632,11 \u002B612,11 @@ G_M44452_IG58:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M44452_IG59:\n-       mov      rsi, gword ptr [rbp-0xB8]\n\u002BG_M44452_IG56:\n\u002B       mov      rsi, gword ptr [rbp-0xB0]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M44452_IG60\n\u002B       je       SHORT G_M44452_IG57\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -646,13 \u002B626,13 @@ G_M44452_IG59:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M44452_IG60:\n\u002BG_M44452_IG57:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M44452_IG61:\n\u002BG_M44452_IG58:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1813, prolog size 66, PerfScore 196.21, instruction count 418, allocated bytes for code 1813 (MethodHash=df47525b) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:Aggregate[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)\n\u002B; Total bytes of code 1750, prolog size 66, PerfScore 186.83, instruction count 404, allocated bytes for code 1750 (MethodHash=df47525b) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:Aggregate[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1813,"DiffBytes":1750},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollectionAsync[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[long]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[long,System.Nullable\u00601[int]]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[long,MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M27345_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M27345_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M27345_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[long,System.Nullable\u00601[int]]:Render(MongoDB.Driver.RenderArgs\u00601[long]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M27345_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M27345_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M27345_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M27345_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M27345_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M27345_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M27345_IG07:\n        test     rax, rax\n-       je       SHORT G_M27345_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M27345_IG08:\n\u002B       je       SHORT G_M27345_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M27345_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M27345_IG10\n\u002B       jmp      SHORT G_M27345_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M27345_IG09:\n\u002BG_M27345_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M27345_IG10:\n\u002BG_M27345_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M27345_IG14\n\u002B       je       SHORT G_M27345_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M27345_IG11:\n\u002BG_M27345_IG08:\n        test     rax, rax\n-       je       SHORT G_M27345_IG15\n\u002B       je       SHORT G_M27345_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M27345_IG12:\n\u002BG_M27345_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M27345_IG15\n\u002B       jne      SHORT G_M27345_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M27345_IG13:\n\u002BG_M27345_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M27345_IG15\n\u002B       je       SHORT G_M27345_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M27345_IG14:\n\u002BG_M27345_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M27345_IG22\n\u002B       jmp      SHORT G_M27345_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M27345_IG15:\n\u002BG_M27345_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M27345_IG20\n\u002B       je       SHORT G_M27345_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M27345_IG16:\n\u002BG_M27345_IG13:\n        test     rax, rax\n-       je       SHORT G_M27345_IG18\n\u002B       je       SHORT G_M27345_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M27345_IG17:\n\u002BG_M27345_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M27345_IG19\n\u002B       je       SHORT G_M27345_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M27345_IG18:\n\u002BG_M27345_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M27345_IG21\n\u002B       jmp      SHORT G_M27345_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M27345_IG19:\n\u002BG_M27345_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M27345_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M27345_IG21\n\u002B       jmp      SHORT G_M27345_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M27345_IG20:\n\u002BG_M27345_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M27345_IG21:\n\u002BG_M27345_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M27345_IG22:\n\u002BG_M27345_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M27345_IG27\n\u002B       je       G_M27345_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M27345_IG27\n\u002B       je       G_M27345_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M27345_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[long,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M27345_IG24\n\u002B       jne      SHORT G_M27345_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M27345_IG23:\n\u002BG_M27345_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M27345_IG24:\n\u002BG_M27345_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M27345_IG25:\n-       add      rsp, 232\n\u002BG_M27345_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M27345_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M27345_IG26:\n\u002BG_M27345_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M27345_IG27:\n\u002BG_M27345_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M27345_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=4682952e) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollectionAsync[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=4682952e) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollectionAsync[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollectionAsync[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[long]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[long,System.Numerics.Vector\u00601[float]]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[long,MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M52657_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M52657_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M52657_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[long,System.Numerics.Vector\u00601[float]]:Render(MongoDB.Driver.RenderArgs\u00601[long]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M52657_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M52657_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M52657_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M52657_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M52657_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M52657_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M52657_IG07:\n        test     rax, rax\n-       je       SHORT G_M52657_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M52657_IG08:\n\u002B       je       SHORT G_M52657_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M52657_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M52657_IG10\n\u002B       jmp      SHORT G_M52657_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M52657_IG09:\n\u002BG_M52657_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M52657_IG10:\n\u002BG_M52657_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M52657_IG14\n\u002B       je       SHORT G_M52657_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M52657_IG11:\n\u002BG_M52657_IG08:\n        test     rax, rax\n-       je       SHORT G_M52657_IG15\n\u002B       je       SHORT G_M52657_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M52657_IG12:\n\u002BG_M52657_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M52657_IG15\n\u002B       jne      SHORT G_M52657_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M52657_IG13:\n\u002BG_M52657_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M52657_IG15\n\u002B       je       SHORT G_M52657_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M52657_IG14:\n\u002BG_M52657_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M52657_IG22\n\u002B       jmp      SHORT G_M52657_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M52657_IG15:\n\u002BG_M52657_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M52657_IG20\n\u002B       je       SHORT G_M52657_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M52657_IG16:\n\u002BG_M52657_IG13:\n        test     rax, rax\n-       je       SHORT G_M52657_IG18\n\u002B       je       SHORT G_M52657_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M52657_IG17:\n\u002BG_M52657_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M52657_IG19\n\u002B       je       SHORT G_M52657_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M52657_IG18:\n\u002BG_M52657_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M52657_IG21\n\u002B       jmp      SHORT G_M52657_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M52657_IG19:\n\u002BG_M52657_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M52657_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M52657_IG21\n\u002B       jmp      SHORT G_M52657_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M52657_IG20:\n\u002BG_M52657_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M52657_IG21:\n\u002BG_M52657_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M52657_IG22:\n\u002BG_M52657_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M52657_IG27\n\u002B       je       G_M52657_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M52657_IG27\n\u002B       je       G_M52657_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M52657_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[long,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M52657_IG24\n\u002B       jne      SHORT G_M52657_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M52657_IG23:\n\u002BG_M52657_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M52657_IG24:\n\u002BG_M52657_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M52657_IG25:\n-       add      rsp, 232\n\u002BG_M52657_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M52657_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M52657_IG26:\n\u002BG_M52657_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M52657_IG27:\n\u002BG_M52657_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M52657_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=5f45324e) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollectionAsync[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=5f45324e) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollectionAsync[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollectionAsync[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"951 -\u003E 888 bytes (-63)","ExtraInfo":null,"Diff":"@@ -10,18 \u002B10,18 @@\n ;\n ;  V00 this         [V00,T03] (  5,  5   )     ref  -\u003E  r14         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[long]\u003E\n ;  V01 TypeCtx      [V01,T02] (  7,  5.40)    long  -\u003E  r15         single-def\n-;  V02 arg1         [V02,T06] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V02 arg1         [V02,T05] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V03 arg2         [V03,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[long,System.__Canon]\u003E\n ;  V04 arg3         [V04,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T22] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n\u002B;  V06 loc0         [V06,T21] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n-;  V08 loc2         [V08,T23] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n-;  V09 loc3         [V09,T21] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V08 loc2         [V08,T22] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n\u002B;  V09 loc3         [V09,T20] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V12 tmp2         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V13 tmp3         [V13,T29] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V13 tmp3         [V13,T28] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V14 tmp4         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V15 tmp5         [V15    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V16 tmp6         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n@@ -39,26 \u002B39,26 @@\n ;* V28 tmp18        [V28    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V29 tmp19        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V30 tmp20        [V30    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V31 tmp21        [V31,T20] (  3,  2   )     int  -\u003E  registers  \n-;  V32 tmp22        [V32,T05] (  4,  7   )     ref  -\u003E  [rbp-0xD8]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V33 tmp23        [V33    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V34 tmp24        [V34,T18] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V35 tmp25        [V35,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V31 tmp21        [V31,T19] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V32 tmp22        [V32,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V33 tmp23        [V33    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V34 tmp24        [V34,T18] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V37 tmp27        [V37,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V38 tmp28        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V39 tmp29        [V39,T26] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V39 tmp29        [V39,T25] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V40 tmp30        [V40    ] ( 11, 10.50)  struct (88) [rbp-0xD0]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[long,MongoDB.Bson.BsonDocument]\u003E\n ;* V41 tmp31        [V41    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V42 tmp32        [V42,T13] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V43 tmp33        [V43,T17] (  4,  3.50)     ref  -\u003E  rax        \n-;  V44 tmp34        [V44,T14] (  2,  2   )     ref  -\u003E  [rbp-0xE0]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp35        [V45,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V15.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp36        [V46,T25] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V15.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp34        [V44,T14] (  2,  2   )     ref  -\u003E  [rbp-0xD8]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp35        [V45,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V15.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp36        [V46,T24] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V15.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V22._name (fldOffset=0x0)\u0022 P-DEP\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V22._value (fldOffset=0x8)\u0022 P-DEP\n-;  V49 tmp39        [V49,T27] (  2,  1   )     ref  -\u003E  rax         \u0022field V23._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V50 tmp40        [V50,T28] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V23._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V49 tmp39        [V49,T26] (  2,  1   )     ref  -\u003E  rax         \u0022field V23._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V50 tmp40        [V50,T27] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V23._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V51 tmp41        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V41.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;  V52 tmp42        [V52,T15] (  2,  4   )    long  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V53 tmp43        [V53,T16] (  2,  4   )    long  -\u003E  rsi         \u0022argument with side effect\u0022\n@@ -67,7 \u002B67,7 @@\n ;  V56 rat2         [V56,T12] (  3,  4   )    long  -\u003E  rsi         \u0022runtime lookup\u0022\n ;  V57 rat3         [V57,T08] (  3,  5.60)    long  -\u003E  rsi         \u0022fgMakeTemp is creating a new local variable\u0022\n ;\n-; Lcl frame size = 248\n\u002B; Lcl frame size = 232\n \n G_M63697_IG01:\n        push     rbp\n@@ -76,14 \u002B76,14 @@ G_M63697_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 248\n-       lea      rbp, [rsp\u002B0x120]\n\u002B       sub      rsp, 232\n\u002B       lea      rbp, [rsp\u002B0x110]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0xD0], zmm8\n        vmovdqu32 zmmword ptr [rbp-0x90], zmm8\n        vmovdqu  ymmword ptr [rbp-0x50], ymm8\n        mov      qword ptr [rbp-0x30], rsi\n-       mov      gword ptr [rbp-0xE0], r9\n\u002B       mov      gword ptr [rbp-0xD8], r9\n        mov      r14, rdi\n        mov      r15, rsi\n        mov      r12, rdx\n@@ -99,7 \u002B99,7 @@ G_M63697_IG02:\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M63697_IG29\n\u002B       je       G_M63697_IG26\n \t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 9.25\n G_M63697_IG03:\n        mov      rsi, r13\n@@ -149,90 \u002B149,70 @@ G_M63697_IG05:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[long,System.__Canon]:Render(MongoDB.Driver.RenderArgs\u00601[long]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0xD8], rax\n-       test     rax, rax\n-       je       G_M63697_IG30\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M63697_IG07\n-\t\t\t\t\t\t;; size=181 bbWeight=1 PerfScore 43.25\n-G_M63697_IG06:\n-       lea      rsi, [rbp-0x78]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M63697_IG08\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M63697_IG07:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M63697_IG27\n        lea      rdx, [rbp-0x78]\n-       mov      rsi, gword ptr [rbp-0xD8]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M63697_IG08:\n        test     rax, rax\n-       je       SHORT G_M63697_IG10\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M63697_IG09:\n\u002B       je       SHORT G_M63697_IG07\n\u002B\t\t\t\t\t\t;; size=175 bbWeight=1 PerfScore 42.50\n\u002BG_M63697_IG06:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M63697_IG11\n\u002B       jmp      SHORT G_M63697_IG08\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M63697_IG10:\n\u002BG_M63697_IG07:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M63697_IG11:\n\u002BG_M63697_IG08:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M63697_IG15\n\u002B       je       SHORT G_M63697_IG12\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M63697_IG12:\n\u002BG_M63697_IG09:\n        test     rax, rax\n-       je       SHORT G_M63697_IG16\n\u002B       je       SHORT G_M63697_IG13\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M63697_IG13:\n\u002BG_M63697_IG10:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M63697_IG16\n\u002B       jne      SHORT G_M63697_IG13\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M63697_IG14:\n\u002BG_M63697_IG11:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M63697_IG16\n\u002B       je       SHORT G_M63697_IG13\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M63697_IG15:\n\u002BG_M63697_IG12:\n        mov      ecx, 1\n-       jmp      SHORT G_M63697_IG23\n\u002B       jmp      SHORT G_M63697_IG20\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M63697_IG16:\n\u002BG_M63697_IG13:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M63697_IG21\n\u002B       je       SHORT G_M63697_IG18\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M63697_IG17:\n\u002BG_M63697_IG14:\n        test     rax, rax\n-       je       SHORT G_M63697_IG19\n\u002B       je       SHORT G_M63697_IG16\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M63697_IG18:\n\u002BG_M63697_IG15:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M63697_IG20\n\u002B       je       SHORT G_M63697_IG17\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M63697_IG19:\n\u002BG_M63697_IG16:\n        xor      ecx, ecx\n-       jmp      SHORT G_M63697_IG22\n\u002B       jmp      SHORT G_M63697_IG19\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M63697_IG20:\n\u002BG_M63697_IG17:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -240,30 \u002B220,30 @@ G_M63697_IG20:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M63697_IG22\n\u002B       jmp      SHORT G_M63697_IG19\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M63697_IG21:\n\u002BG_M63697_IG18:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M63697_IG22:\n\u002BG_M63697_IG19:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M63697_IG23:\n\u002BG_M63697_IG20:\n        mov      dword ptr [rbp-0x6C], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M63697_IG31\n\u002B       je       G_M63697_IG28\n        cmp      dword ptr [rbp-0x6C], 0\n-       je       G_M63697_IG31\n\u002B       je       G_M63697_IG28\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rsi, qword ptr [rdi\u002B0x20]\n        test     rsi, rsi\n-       je       G_M63697_IG28\n\u002B       je       G_M63697_IG25\n \t\t\t\t\t\t;; size=55 bbWeight=1 PerfScore 14.75\n-G_M63697_IG24:\n\u002BG_M63697_IG21:\n        mov      rdi, r14\n        mov      rdx, r13\n        mov      rcx, rbx\n@@ -278,7 \u002B258,7 @@ G_M63697_IG24:\n        mov      gword ptr [rbp-0xC0], rax\n        mov      byte  ptr [rbp-0xA0], sil\n        mov      qword ptr [rbp-0x98], rdi\n-       mov      rbx, gword ptr [rbp-0xE0]\n\u002B       mov      rbx, gword ptr [rbp-0xD8]\n        mov      gword ptr [rbp-0x90], rbx\n        mov      dword ptr [rbp-0xB0], -1\n        lea      rsi, [rbp-0xD0]\n@@ -287,19 \u002B267,19 @@ G_M63697_IG24:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[long,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA8]\n        test     rax, rax\n-       jne      SHORT G_M63697_IG26\n\u002B       jne      SHORT G_M63697_IG23\n \t\t\t\t\t\t;; size=139 bbWeight=1 PerfScore 23.50\n-G_M63697_IG25:\n\u002BG_M63697_IG22:\n        lea      rdi, [rbp-0xA8]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M63697_IG26:\n\u002BG_M63697_IG23:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M63697_IG27:\n-       add      rsp, 248\n\u002BG_M63697_IG24:\n\u002B       add      rsp, 232\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -308,15 \u002B288,15 @@ G_M63697_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M63697_IG28:\n\u002BG_M63697_IG25:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M63697_IG24\n\u002B       jmp      G_M63697_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M63697_IG29:\n\u002BG_M63697_IG26:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -324,13 \u002B304,13 @@ G_M63697_IG29:\n        mov      rdi, rax\n        jmp      G_M63697_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M63697_IG30:\n\u002BG_M63697_IG27:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M63697_IG31:\n\u002BG_M63697_IG28:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -343,5 \u002B323,5 @@ G_M63697_IG31:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 951, prolog size 59, PerfScore 144.30, instruction count 211, allocated bytes for code 951 (MethodHash=e205072e) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollectionAsync[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 888, prolog size 59, PerfScore 134.92, instruction count 197, allocated bytes for code 888 (MethodHash=e205072e) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollectionAsync[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":951,"DiffBytes":888},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollectionAsync[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[long]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[long,byte]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[long,MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M60753_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M60753_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M60753_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[long,byte]:Render(MongoDB.Driver.RenderArgs\u00601[long]):MongoDB.Driver.RenderedPipelineDefinition\u00601[byte]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M60753_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M60753_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M60753_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M60753_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M60753_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M60753_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M60753_IG07:\n        test     rax, rax\n-       je       SHORT G_M60753_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M60753_IG08:\n\u002B       je       SHORT G_M60753_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M60753_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M60753_IG10\n\u002B       jmp      SHORT G_M60753_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M60753_IG09:\n\u002BG_M60753_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M60753_IG10:\n\u002BG_M60753_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M60753_IG14\n\u002B       je       SHORT G_M60753_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M60753_IG11:\n\u002BG_M60753_IG08:\n        test     rax, rax\n-       je       SHORT G_M60753_IG15\n\u002B       je       SHORT G_M60753_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M60753_IG12:\n\u002BG_M60753_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M60753_IG15\n\u002B       jne      SHORT G_M60753_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M60753_IG13:\n\u002BG_M60753_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M60753_IG15\n\u002B       je       SHORT G_M60753_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M60753_IG14:\n\u002BG_M60753_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M60753_IG22\n\u002B       jmp      SHORT G_M60753_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M60753_IG15:\n\u002BG_M60753_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M60753_IG20\n\u002B       je       SHORT G_M60753_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M60753_IG16:\n\u002BG_M60753_IG13:\n        test     rax, rax\n-       je       SHORT G_M60753_IG18\n\u002B       je       SHORT G_M60753_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M60753_IG17:\n\u002BG_M60753_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M60753_IG19\n\u002B       je       SHORT G_M60753_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M60753_IG18:\n\u002BG_M60753_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M60753_IG21\n\u002B       jmp      SHORT G_M60753_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M60753_IG19:\n\u002BG_M60753_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M60753_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M60753_IG21\n\u002B       jmp      SHORT G_M60753_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M60753_IG20:\n\u002BG_M60753_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M60753_IG21:\n\u002BG_M60753_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M60753_IG22:\n\u002BG_M60753_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M60753_IG27\n\u002B       je       G_M60753_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M60753_IG27\n\u002B       je       G_M60753_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M60753_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[long,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M60753_IG24\n\u002B       jne      SHORT G_M60753_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M60753_IG23:\n\u002BG_M60753_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M60753_IG24:\n\u002BG_M60753_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M60753_IG25:\n-       add      rsp, 232\n\u002BG_M60753_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M60753_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M60753_IG26:\n\u002BG_M60753_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M60753_IG27:\n\u002BG_M60753_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M60753_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=1fff12ae) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollectionAsync[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=1fff12ae) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollectionAsync[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollectionAsync[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[long]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[long,double]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[long,MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M16945_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M16945_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M16945_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[long,double]:Render(MongoDB.Driver.RenderArgs\u00601[long]):MongoDB.Driver.RenderedPipelineDefinition\u00601[double]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M16945_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M16945_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M16945_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M16945_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M16945_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M16945_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M16945_IG07:\n        test     rax, rax\n-       je       SHORT G_M16945_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M16945_IG08:\n\u002B       je       SHORT G_M16945_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M16945_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M16945_IG10\n\u002B       jmp      SHORT G_M16945_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M16945_IG09:\n\u002BG_M16945_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M16945_IG10:\n\u002BG_M16945_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M16945_IG14\n\u002B       je       SHORT G_M16945_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M16945_IG11:\n\u002BG_M16945_IG08:\n        test     rax, rax\n-       je       SHORT G_M16945_IG15\n\u002B       je       SHORT G_M16945_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M16945_IG12:\n\u002BG_M16945_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M16945_IG15\n\u002B       jne      SHORT G_M16945_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M16945_IG13:\n\u002BG_M16945_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M16945_IG15\n\u002B       je       SHORT G_M16945_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M16945_IG14:\n\u002BG_M16945_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M16945_IG22\n\u002B       jmp      SHORT G_M16945_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M16945_IG15:\n\u002BG_M16945_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M16945_IG20\n\u002B       je       SHORT G_M16945_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M16945_IG16:\n\u002BG_M16945_IG13:\n        test     rax, rax\n-       je       SHORT G_M16945_IG18\n\u002B       je       SHORT G_M16945_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M16945_IG17:\n\u002BG_M16945_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M16945_IG19\n\u002B       je       SHORT G_M16945_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M16945_IG18:\n\u002BG_M16945_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M16945_IG21\n\u002B       jmp      SHORT G_M16945_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M16945_IG19:\n\u002BG_M16945_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M16945_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M16945_IG21\n\u002B       jmp      SHORT G_M16945_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M16945_IG20:\n\u002BG_M16945_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M16945_IG21:\n\u002BG_M16945_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M16945_IG22:\n\u002BG_M16945_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M16945_IG27\n\u002B       je       G_M16945_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M16945_IG27\n\u002B       je       G_M16945_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M16945_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[long,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M16945_IG24\n\u002B       jne      SHORT G_M16945_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M16945_IG23:\n\u002BG_M16945_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M16945_IG24:\n\u002BG_M16945_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M16945_IG25:\n-       add      rsp, 232\n\u002BG_M16945_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M16945_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M16945_IG26:\n\u002BG_M16945_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M16945_IG27:\n\u002BG_M16945_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M16945_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=042abdce) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollectionAsync[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=042abdce) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollectionAsync[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollectionAsync[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[long]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[long,int]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[long,MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M2481_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M2481_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M2481_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[long,int]:Render(MongoDB.Driver.RenderArgs\u00601[long]):MongoDB.Driver.RenderedPipelineDefinition\u00601[int]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M2481_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M2481_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M2481_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M2481_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M2481_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M2481_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M2481_IG07:\n        test     rax, rax\n-       je       SHORT G_M2481_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M2481_IG08:\n\u002B       je       SHORT G_M2481_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M2481_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M2481_IG10\n\u002B       jmp      SHORT G_M2481_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M2481_IG09:\n\u002BG_M2481_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M2481_IG10:\n\u002BG_M2481_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M2481_IG14\n\u002B       je       SHORT G_M2481_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M2481_IG11:\n\u002BG_M2481_IG08:\n        test     rax, rax\n-       je       SHORT G_M2481_IG15\n\u002B       je       SHORT G_M2481_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M2481_IG12:\n\u002BG_M2481_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M2481_IG15\n\u002B       jne      SHORT G_M2481_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M2481_IG13:\n\u002BG_M2481_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M2481_IG15\n\u002B       je       SHORT G_M2481_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M2481_IG14:\n\u002BG_M2481_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M2481_IG22\n\u002B       jmp      SHORT G_M2481_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M2481_IG15:\n\u002BG_M2481_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M2481_IG20\n\u002B       je       SHORT G_M2481_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M2481_IG16:\n\u002BG_M2481_IG13:\n        test     rax, rax\n-       je       SHORT G_M2481_IG18\n\u002B       je       SHORT G_M2481_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M2481_IG17:\n\u002BG_M2481_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M2481_IG19\n\u002B       je       SHORT G_M2481_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M2481_IG18:\n\u002BG_M2481_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M2481_IG21\n\u002B       jmp      SHORT G_M2481_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M2481_IG19:\n\u002BG_M2481_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M2481_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M2481_IG21\n\u002B       jmp      SHORT G_M2481_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M2481_IG20:\n\u002BG_M2481_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M2481_IG21:\n\u002BG_M2481_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M2481_IG22:\n\u002BG_M2481_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M2481_IG27\n\u002B       je       G_M2481_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M2481_IG27\n\u002B       je       G_M2481_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M2481_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[long,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M2481_IG24\n\u002B       jne      SHORT G_M2481_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M2481_IG23:\n\u002BG_M2481_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M2481_IG24:\n\u002BG_M2481_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M2481_IG25:\n-       add      rsp, 232\n\u002BG_M2481_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M2481_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M2481_IG26:\n\u002BG_M2481_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M2481_IG27:\n\u002BG_M2481_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M2481_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=28bef64e) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollectionAsync[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=28bef64e) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollectionAsync[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollectionAsync[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[long]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[long,long]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[long,MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M20561_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M20561_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M20561_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[long,long]:Render(MongoDB.Driver.RenderArgs\u00601[long]):MongoDB.Driver.RenderedPipelineDefinition\u00601[long]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M20561_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M20561_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M20561_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M20561_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M20561_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M20561_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M20561_IG07:\n        test     rax, rax\n-       je       SHORT G_M20561_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M20561_IG08:\n\u002B       je       SHORT G_M20561_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M20561_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M20561_IG10\n\u002B       jmp      SHORT G_M20561_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M20561_IG09:\n\u002BG_M20561_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M20561_IG10:\n\u002BG_M20561_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M20561_IG14\n\u002B       je       SHORT G_M20561_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M20561_IG11:\n\u002BG_M20561_IG08:\n        test     rax, rax\n-       je       SHORT G_M20561_IG15\n\u002B       je       SHORT G_M20561_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M20561_IG12:\n\u002BG_M20561_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M20561_IG15\n\u002B       jne      SHORT G_M20561_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M20561_IG13:\n\u002BG_M20561_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M20561_IG15\n\u002B       je       SHORT G_M20561_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M20561_IG14:\n\u002BG_M20561_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M20561_IG22\n\u002B       jmp      SHORT G_M20561_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M20561_IG15:\n\u002BG_M20561_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M20561_IG20\n\u002B       je       SHORT G_M20561_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M20561_IG16:\n\u002BG_M20561_IG13:\n        test     rax, rax\n-       je       SHORT G_M20561_IG18\n\u002B       je       SHORT G_M20561_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M20561_IG17:\n\u002BG_M20561_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M20561_IG19\n\u002B       je       SHORT G_M20561_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M20561_IG18:\n\u002BG_M20561_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M20561_IG21\n\u002B       jmp      SHORT G_M20561_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M20561_IG19:\n\u002BG_M20561_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M20561_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M20561_IG21\n\u002B       jmp      SHORT G_M20561_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M20561_IG20:\n\u002BG_M20561_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M20561_IG21:\n\u002BG_M20561_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M20561_IG22:\n\u002BG_M20561_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M20561_IG27\n\u002B       je       G_M20561_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M20561_IG27\n\u002B       je       G_M20561_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M20561_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[long,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M20561_IG24\n\u002B       jne      SHORT G_M20561_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M20561_IG23:\n\u002BG_M20561_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M20561_IG24:\n\u002BG_M20561_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M20561_IG25:\n-       add      rsp, 232\n\u002BG_M20561_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M20561_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M20561_IG26:\n\u002BG_M20561_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M20561_IG27:\n\u002BG_M20561_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M20561_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=fd73afae) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollectionAsync[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=fd73afae) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollectionAsync[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollectionAsync[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[long]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[long,short]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[long,MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M20337_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M20337_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M20337_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[long,short]:Render(MongoDB.Driver.RenderArgs\u00601[long]):MongoDB.Driver.RenderedPipelineDefinition\u00601[short]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M20337_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M20337_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M20337_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M20337_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M20337_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M20337_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M20337_IG07:\n        test     rax, rax\n-       je       SHORT G_M20337_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M20337_IG08:\n\u002B       je       SHORT G_M20337_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M20337_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M20337_IG10\n\u002B       jmp      SHORT G_M20337_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M20337_IG09:\n\u002BG_M20337_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M20337_IG10:\n\u002BG_M20337_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M20337_IG14\n\u002B       je       SHORT G_M20337_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M20337_IG11:\n\u002BG_M20337_IG08:\n        test     rax, rax\n-       je       SHORT G_M20337_IG15\n\u002B       je       SHORT G_M20337_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M20337_IG12:\n\u002BG_M20337_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M20337_IG15\n\u002B       jne      SHORT G_M20337_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M20337_IG13:\n\u002BG_M20337_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M20337_IG15\n\u002B       je       SHORT G_M20337_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M20337_IG14:\n\u002BG_M20337_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M20337_IG22\n\u002B       jmp      SHORT G_M20337_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M20337_IG15:\n\u002BG_M20337_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M20337_IG20\n\u002B       je       SHORT G_M20337_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M20337_IG16:\n\u002BG_M20337_IG13:\n        test     rax, rax\n-       je       SHORT G_M20337_IG18\n\u002B       je       SHORT G_M20337_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M20337_IG17:\n\u002BG_M20337_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M20337_IG19\n\u002B       je       SHORT G_M20337_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M20337_IG18:\n\u002BG_M20337_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M20337_IG21\n\u002B       jmp      SHORT G_M20337_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M20337_IG19:\n\u002BG_M20337_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M20337_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M20337_IG21\n\u002B       jmp      SHORT G_M20337_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M20337_IG20:\n\u002BG_M20337_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M20337_IG21:\n\u002BG_M20337_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M20337_IG22:\n\u002BG_M20337_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M20337_IG27\n\u002B       je       G_M20337_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M20337_IG27\n\u002B       je       G_M20337_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M20337_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[long,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M20337_IG24\n\u002B       jne      SHORT G_M20337_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M20337_IG23:\n\u002BG_M20337_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M20337_IG24:\n\u002BG_M20337_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M20337_IG25:\n-       add      rsp, 232\n\u002BG_M20337_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M20337_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M20337_IG26:\n\u002BG_M20337_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M20337_IG27:\n\u002BG_M20337_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M20337_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=639ab08e) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollectionAsync[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=639ab08e) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollectionAsync[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[long]:Aggregate[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)","Category":"improvement","Description":"1,813 -\u003E 1,750 bytes (-63)","ExtraInfo":null,"Diff":"@@ -14,16 \u002B14,16 @@\n ;  V03 arg2         [V03,T04] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[long,System.__Canon]\u003E\n ;  V04 arg3         [V04,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T39] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n\u002B;  V06 loc0         [V06,T38] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n-;  V08 loc2         [V08,T40] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V09 loc3         [V09,T46] (  3,  1.50)     ref  -\u003E  [rbp-0x80]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V10 loc4         [V10,T47] (  3,  1.50)     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.__Canon]\u003E\n\u002B;  V08 loc2         [V08,T39] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V09 loc3         [V09,T45] (  3,  1.50)     ref  -\u003E  [rbp-0x80]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V10 loc4         [V10,T46] (  3,  1.50)     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.__Canon]\u003E\n ;  V11 OutArgs      [V11    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V12 tmp1         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V13 tmp2         [V13    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V14 tmp3         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V15 tmp4         [V15,T29] (  4,  2.20)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n\u002B;  V15 tmp4         [V15,T28] (  4,  2.20)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n ;* V16 tmp5         [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V17 tmp6         [V17    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V18 tmp7         [V18    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -43,22 \u002B43,22 @@\n ;* V32 tmp21        [V32    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V33 tmp22        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V34 tmp23        [V34    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V35 tmp24        [V35,T33] (  3,  2   )     int  -\u003E  rdi        \n-;  V36 tmp25        [V36,T06] (  4,  7   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V37 tmp26        [V37    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V38 tmp27        [V38,T17] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V39 tmp28        [V39,T18] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V35 tmp24        [V35,T32] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V36 tmp25        [V36,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V37 tmp26        [V37    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V38 tmp27        [V38,T17] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V39 tmp28        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V40 tmp29        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V41 tmp30        [V41,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V42 tmp31        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V43 tmp32        [V43,T45] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V43 tmp32        [V43,T44] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V44 tmp33        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V45 tmp34        [V45,T31] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V46 tmp35        [V46,T19] (  3,  3   )     ref  -\u003E  [rbp-0x98]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V45 tmp34        [V45,T30] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V46 tmp35        [V46,T18] (  3,  3   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V47 tmp36        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V48 tmp37        [V48,T08] ( 10,  5   )     ref  -\u003E  [rbp-0xA0]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;  V48 tmp37        [V48,T08] ( 10,  5   )     ref  -\u003E  [rbp-0x98]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V49 tmp38        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp39        [V50,T09] ( 10,  5   )     ref  -\u003E  [rbp-0xA8]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;  V50 tmp39        [V50,T09] ( 10,  5   )     ref  -\u003E  [rbp-0xA0]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V51 tmp40        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V52 tmp41        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V53 tmp42        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -67,14 \u002B67,14 @@\n ;* V56 tmp45        [V56    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.__Canon]\u003E\n ;* V57 tmp46        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V58 tmp47        [V58    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V59 tmp48        [V59,T48] (  2,  1   )     ref  -\u003E  [rbp-0xB0]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V60 tmp49        [V60,T30] (  4,  2.20)    long  -\u003E  [rbp-0x78]  \u0022Inlining Arg\u0022\n\u002B;  V59 tmp48        [V59,T47] (  2,  1   )     ref  -\u003E  [rbp-0xA8]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V60 tmp49        [V60,T29] (  4,  2.20)    long  -\u003E  [rbp-0x78]  \u0022Inlining Arg\u0022\n ;* V61 tmp50        [V61    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V62 tmp51        [V62,T32] (  8,  2   )     ref  -\u003E  [rbp-0xB8]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V63 tmp52        [V63,T20] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V62 tmp51        [V62,T31] (  8,  2   )     ref  -\u003E  [rbp-0xB0]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V63 tmp52        [V63,T19] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V64 tmp53        [V64    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V65 tmp54        [V65,T49] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.__Canon]\u003E\n-;  V66 tmp55        [V66,T38] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V65 tmp54        [V65,T48] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.__Canon]\u003E\n\u002B;  V66 tmp55        [V66,T37] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V67 tmp56        [V67    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V68 tmp57        [V68,T10] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V69 tmp58        [V69    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -82,36 \u002B82,36 @@\n ;* V71 tmp60        [V71    ] (  0,  0   )     ref  -\u003E  zero-ref   \n... diff truncated; middle omitted ...\n\u002B       call     [rax]System.GC:SuppressFinalize(System.Object)\n\u002B\t\t\t\t\t\t;; size=77 bbWeight=0.50 PerfScore 9.62\n\u002BG_M6468_IG37:\n\u002B       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rdi, gword ptr [rsi\u002B0x10]\n\u002B       mov      rax, rdi\n\u002B       test     rax, rax\n\u002B       je       SHORT G_M6468_IG38\n        mov      rdi, rax\n        mov      esi, 1\n        mov      gword ptr [rbp-0xA0], rax\n@@ -473,35 \u002B469,19 @@ G_M6468_IG39:\n        call     [rcx\u002B0x28]System.Threading.CancellationTokenSource:Dispose(bool):this\n        mov      rdi, gword ptr [rbp-0xA0]\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n-       call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=77 bbWeight=0.50 PerfScore 9.62\n-G_M6468_IG40:\n-       mov      rsi, gword ptr [rbp-0x90]\n-       mov      rdi, gword ptr [rsi\u002B0x10]\n-       mov      rax, rdi\n-       test     rax, rax\n-       je       SHORT G_M6468_IG41\n-       mov      rdi, rax\n-       mov      esi, 1\n-       mov      gword ptr [rbp-0xA8], rax\n-       mov      rcx, qword ptr [rax]\n-       mov      rcx, qword ptr [rcx\u002B0x40]\n-       call     [rcx\u002B0x28]System.Threading.CancellationTokenSource:Dispose(bool):this\n-       mov      rdi, gword ptr [rbp-0xA8]\n-       mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.62\n-G_M6468_IG41:\n\u002BG_M6468_IG38:\n        mov      rdi, qword ptr [r14\u002B0x18]\n        cmp      qword ptr [rdi\u002B0x08], 56\n-       jle      SHORT G_M6468_IG45\n\u002B       jle      SHORT G_M6468_IG42\n \t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 2.50\n-G_M6468_IG42:\n\u002BG_M6468_IG39:\n        mov      rsi, qword ptr [rdi\u002B0x38]\n        test     rsi, rsi\n-       je       SHORT G_M6468_IG45\n\u002B       je       SHORT G_M6468_IG42\n \t\t\t\t\t\t;; size=9 bbWeight=0.40 PerfScore 1.30\n-G_M6468_IG43:\n\u002BG_M6468_IG40:\n        mov      rdi, r15\n        mov      rdx, r13\n        mov      rcx, r12\n@@ -510,8 \u002B490,8 @@ G_M6468_IG43:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateAggregateToCollectionResultCursor[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M6468_IG44:\n-       add      rsp, 216\n\u002BG_M6468_IG41:\n\u002B       add      rsp, 200\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -520,15 \u002B500,15 @@ G_M6468_IG44:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M6468_IG45:\n\u002BG_M6468_IG42:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      SHORT G_M6468_IG43\n\u002B       jmp      SHORT G_M6468_IG40\n \t\t\t\t\t\t;; size=30 bbWeight=0.18 PerfScore 1.08\n-G_M6468_IG46:\n\u002BG_M6468_IG43:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -536,53 \u002B516,53 @@ G_M6468_IG46:\n        mov      rdi, rax\n        jmp      G_M6468_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M6468_IG47:\n\u002BG_M6468_IG44:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M6468_IG37\n\u002B       jmp      G_M6468_IG34\n \t\t\t\t\t\t;; size=33 bbWeight=0.18 PerfScore 1.08\n-G_M6468_IG48:\n\u002BG_M6468_IG45:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M6468_IG24\n\u002B       jmp      G_M6468_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.10 PerfScore 0.60\n-G_M6468_IG49:\n\u002BG_M6468_IG46:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M6468_IG25\n\u002B       jmp      G_M6468_IG22\n \t\t\t\t\t\t;; size=33 bbWeight=0.10 PerfScore 0.60\n-G_M6468_IG50:\n\u002BG_M6468_IG47:\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      qword ptr [rbp-0x78], rax\n-       jmp      G_M6468_IG27\n\u002B       jmp      G_M6468_IG24\n \t\t\t\t\t\t;; size=31 bbWeight=0.10 PerfScore 0.65\n-G_M6468_IG51:\n\u002BG_M6468_IG48:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M6468_IG52:\n\u002BG_M6468_IG49:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M6468_IG53:\n-       cmp      gword ptr [rbp-0x90], 0\n-       je       SHORT G_M6468_IG55\n-       mov      rsi, gword ptr [rbp-0x90]\n\u002BG_M6468_IG50:\n\u002B       cmp      gword ptr [rbp-0x88], 0\n\u002B       je       SHORT G_M6468_IG52\n\u002B       mov      rsi, gword ptr [rbp-0x88]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M6468_IG54\n\u002B       je       SHORT G_M6468_IG51\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -592,11 \u002B572,11 @@ G_M6468_IG53:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M6468_IG54:\n-       mov      rsi, gword ptr [rbp-0x90]\n\u002BG_M6468_IG51:\n\u002B       mov      rsi, gword ptr [rbp-0x88]\n        mov      r15, gword ptr [rsi\u002B0x10]\n        test     r15, r15\n-       je       SHORT G_M6468_IG55\n\u002B       je       SHORT G_M6468_IG52\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -606,23 \u002B586,23 @@ G_M6468_IG54:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M6468_IG55:\n\u002BG_M6468_IG52:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M6468_IG56:\n\u002BG_M6468_IG53:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M6468_IG57:\n\u002BG_M6468_IG54:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M6468_IG58:\n-       cmp      gword ptr [rbp-0xB8], 0\n-       je       SHORT G_M6468_IG60\n-       mov      rsi, gword ptr [rbp-0xB8]\n\u002BG_M6468_IG55:\n\u002B       cmp      gword ptr [rbp-0xB0], 0\n\u002B       je       SHORT G_M6468_IG57\n\u002B       mov      rsi, gword ptr [rbp-0xB0]\n        mov      r13, gword ptr [rsi\u002B0x08]\n        test     r13, r13\n-       je       SHORT G_M6468_IG59\n\u002B       je       SHORT G_M6468_IG56\n        mov      rdi, r13\n        mov      esi, 1\n        mov      rax, qword ptr [r13]\n@@ -632,11 \u002B612,11 @@ G_M6468_IG58:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M6468_IG59:\n-       mov      rsi, gword ptr [rbp-0xB8]\n\u002BG_M6468_IG56:\n\u002B       mov      rsi, gword ptr [rbp-0xB0]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M6468_IG60\n\u002B       je       SHORT G_M6468_IG57\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -646,13 \u002B626,13 @@ G_M6468_IG59:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M6468_IG60:\n\u002BG_M6468_IG57:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M6468_IG61:\n\u002BG_M6468_IG58:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1813, prolog size 66, PerfScore 196.21, instruction count 418, allocated bytes for code 1813 (MethodHash=7db6e6bb) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:Aggregate[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)\n\u002B; Total bytes of code 1750, prolog size 66, PerfScore 186.83, instruction count 404, allocated bytes for code 1750 (MethodHash=7db6e6bb) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:Aggregate[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1813,"DiffBytes":1750},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollectionAsync[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[short]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[short,System.Nullable\u00601[int]]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[short,MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M58865_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M58865_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M58865_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[short,System.Nullable\u00601[int]]:Render(MongoDB.Driver.RenderArgs\u00601[short]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M58865_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M58865_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M58865_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M58865_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M58865_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M58865_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M58865_IG07:\n        test     rax, rax\n-       je       SHORT G_M58865_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M58865_IG08:\n\u002B       je       SHORT G_M58865_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M58865_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M58865_IG10\n\u002B       jmp      SHORT G_M58865_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M58865_IG09:\n\u002BG_M58865_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M58865_IG10:\n\u002BG_M58865_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M58865_IG14\n\u002B       je       SHORT G_M58865_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M58865_IG11:\n\u002BG_M58865_IG08:\n        test     rax, rax\n-       je       SHORT G_M58865_IG15\n\u002B       je       SHORT G_M58865_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M58865_IG12:\n\u002BG_M58865_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M58865_IG15\n\u002B       jne      SHORT G_M58865_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M58865_IG13:\n\u002BG_M58865_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M58865_IG15\n\u002B       je       SHORT G_M58865_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M58865_IG14:\n\u002BG_M58865_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M58865_IG22\n\u002B       jmp      SHORT G_M58865_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M58865_IG15:\n\u002BG_M58865_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M58865_IG20\n\u002B       je       SHORT G_M58865_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M58865_IG16:\n\u002BG_M58865_IG13:\n        test     rax, rax\n-       je       SHORT G_M58865_IG18\n\u002B       je       SHORT G_M58865_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M58865_IG17:\n\u002BG_M58865_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M58865_IG19\n\u002B       je       SHORT G_M58865_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M58865_IG18:\n\u002BG_M58865_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M58865_IG21\n\u002B       jmp      SHORT G_M58865_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M58865_IG19:\n\u002BG_M58865_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M58865_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M58865_IG21\n\u002B       jmp      SHORT G_M58865_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M58865_IG20:\n\u002BG_M58865_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M58865_IG21:\n\u002BG_M58865_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M58865_IG22:\n\u002BG_M58865_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M58865_IG27\n\u002B       je       G_M58865_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M58865_IG27\n\u002B       je       G_M58865_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M58865_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[short,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M58865_IG24\n\u002B       jne      SHORT G_M58865_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M58865_IG23:\n\u002BG_M58865_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M58865_IG24:\n\u002BG_M58865_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M58865_IG25:\n-       add      rsp, 232\n\u002BG_M58865_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M58865_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M58865_IG26:\n\u002BG_M58865_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M58865_IG27:\n\u002BG_M58865_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M58865_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=a1d21a0e) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollectionAsync[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=a1d21a0e) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollectionAsync[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollectionAsync[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[short]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[short,System.Numerics.Vector\u00601[float]]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[short,MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M37809_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M37809_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M37809_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[short,System.Numerics.Vector\u00601[float]]:Render(MongoDB.Driver.RenderArgs\u00601[short]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M37809_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M37809_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M37809_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M37809_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M37809_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M37809_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M37809_IG07:\n        test     rax, rax\n-       je       SHORT G_M37809_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M37809_IG08:\n\u002B       je       SHORT G_M37809_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M37809_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M37809_IG10\n\u002B       jmp      SHORT G_M37809_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M37809_IG09:\n\u002BG_M37809_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M37809_IG10:\n\u002BG_M37809_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M37809_IG14\n\u002B       je       SHORT G_M37809_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M37809_IG11:\n\u002BG_M37809_IG08:\n        test     rax, rax\n-       je       SHORT G_M37809_IG15\n\u002B       je       SHORT G_M37809_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M37809_IG12:\n\u002BG_M37809_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M37809_IG15\n\u002B       jne      SHORT G_M37809_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M37809_IG13:\n\u002BG_M37809_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M37809_IG15\n\u002B       je       SHORT G_M37809_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M37809_IG14:\n\u002BG_M37809_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M37809_IG22\n\u002B       jmp      SHORT G_M37809_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M37809_IG15:\n\u002BG_M37809_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M37809_IG20\n\u002B       je       SHORT G_M37809_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M37809_IG16:\n\u002BG_M37809_IG13:\n        test     rax, rax\n-       je       SHORT G_M37809_IG18\n\u002B       je       SHORT G_M37809_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M37809_IG17:\n\u002BG_M37809_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M37809_IG19\n\u002B       je       SHORT G_M37809_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M37809_IG18:\n\u002BG_M37809_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M37809_IG21\n\u002B       jmp      SHORT G_M37809_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M37809_IG19:\n\u002BG_M37809_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M37809_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M37809_IG21\n\u002B       jmp      SHORT G_M37809_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M37809_IG20:\n\u002BG_M37809_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M37809_IG21:\n\u002BG_M37809_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M37809_IG22:\n\u002BG_M37809_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M37809_IG27\n\u002B       je       G_M37809_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M37809_IG27\n\u002B       je       G_M37809_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M37809_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[short,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M37809_IG24\n\u002B       jne      SHORT G_M37809_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M37809_IG23:\n\u002BG_M37809_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M37809_IG24:\n\u002BG_M37809_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M37809_IG25:\n-       add      rsp, 232\n\u002BG_M37809_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M37809_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M37809_IG26:\n\u002BG_M37809_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M37809_IG27:\n\u002BG_M37809_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M37809_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=81266c4e) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollectionAsync[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=81266c4e) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollectionAsync[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollectionAsync[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"951 -\u003E 888 bytes (-63)","ExtraInfo":null,"Diff":"@@ -10,18 \u002B10,18 @@\n ;\n ;  V00 this         [V00,T03] (  5,  5   )     ref  -\u003E  r14         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[short]\u003E\n ;  V01 TypeCtx      [V01,T02] (  7,  5.40)    long  -\u003E  r15         single-def\n-;  V02 arg1         [V02,T06] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V02 arg1         [V02,T05] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V03 arg2         [V03,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[short,System.__Canon]\u003E\n ;  V04 arg3         [V04,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T22] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n\u002B;  V06 loc0         [V06,T21] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n-;  V08 loc2         [V08,T23] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n-;  V09 loc3         [V09,T21] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V08 loc2         [V08,T22] (  2,  2   )   ubyte  -\u003E  [rbp-0x6C]  ld-addr-op spill-single-def\n\u002B;  V09 loc3         [V09,T20] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V12 tmp2         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V13 tmp3         [V13,T29] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V13 tmp3         [V13,T28] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V14 tmp4         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V15 tmp5         [V15    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V16 tmp6         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n@@ -39,26 \u002B39,26 @@\n ;* V28 tmp18        [V28    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V29 tmp19        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V30 tmp20        [V30    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V31 tmp21        [V31,T20] (  3,  2   )     int  -\u003E  registers  \n-;  V32 tmp22        [V32,T05] (  4,  7   )     ref  -\u003E  [rbp-0xD8]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V33 tmp23        [V33    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V34 tmp24        [V34,T18] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V35 tmp25        [V35,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V31 tmp21        [V31,T19] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V32 tmp22        [V32,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V33 tmp23        [V33    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V34 tmp24        [V34,T18] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V35 tmp25        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V37 tmp27        [V37,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V38 tmp28        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V39 tmp29        [V39,T26] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V39 tmp29        [V39,T25] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V40 tmp30        [V40    ] ( 11, 10.50)  struct (88) [rbp-0xD0]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[short,MongoDB.Bson.BsonDocument]\u003E\n ;* V41 tmp31        [V41    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V42 tmp32        [V42,T13] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V43 tmp33        [V43,T17] (  4,  3.50)     ref  -\u003E  rax        \n-;  V44 tmp34        [V44,T14] (  2,  2   )     ref  -\u003E  [rbp-0xE0]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp35        [V45,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V15.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp36        [V46,T25] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V15.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp34        [V44,T14] (  2,  2   )     ref  -\u003E  [rbp-0xD8]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp35        [V45,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V15.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp36        [V46,T24] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V15.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp37        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V22._name (fldOffset=0x0)\u0022 P-DEP\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V22._value (fldOffset=0x8)\u0022 P-DEP\n-;  V49 tmp39        [V49,T27] (  2,  1   )     ref  -\u003E  rax         \u0022field V23._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V50 tmp40        [V50,T28] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V23._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V49 tmp39        [V49,T26] (  2,  1   )     ref  -\u003E  rax         \u0022field V23._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V50 tmp40        [V50,T27] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V23._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V51 tmp41        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V41.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;  V52 tmp42        [V52,T15] (  2,  4   )    long  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V53 tmp43        [V53,T16] (  2,  4   )    long  -\u003E  rsi         \u0022argument with side effect\u0022\n@@ -67,7 \u002B67,7 @@\n ;  V56 rat2         [V56,T12] (  3,  4   )    long  -\u003E  rsi         \u0022runtime lookup\u0022\n ;  V57 rat3         [V57,T08] (  3,  5.60)    long  -\u003E  rsi         \u0022fgMakeTemp is creating a new local variable\u0022\n ;\n-; Lcl frame size = 248\n\u002B; Lcl frame size = 232\n \n G_M63793_IG01:\n        push     rbp\n@@ -76,14 \u002B76,14 @@ G_M63793_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 248\n-       lea      rbp, [rsp\u002B0x120]\n\u002B       sub      rsp, 232\n\u002B       lea      rbp, [rsp\u002B0x110]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0xD0], zmm8\n        vmovdqu32 zmmword ptr [rbp-0x90], zmm8\n        vmovdqu  ymmword ptr [rbp-0x50], ymm8\n        mov      qword ptr [rbp-0x30], rsi\n-       mov      gword ptr [rbp-0xE0], r9\n\u002B       mov      gword ptr [rbp-0xD8], r9\n        mov      r14, rdi\n        mov      r15, rsi\n        mov      r12, rdx\n@@ -99,7 \u002B99,7 @@ G_M63793_IG02:\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M63793_IG29\n\u002B       je       G_M63793_IG26\n \t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 9.25\n G_M63793_IG03:\n        mov      rsi, r13\n@@ -149,90 \u002B149,70 @@ G_M63793_IG05:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[short,System.__Canon]:Render(MongoDB.Driver.RenderArgs\u00601[short]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0xD8], rax\n-       test     rax, rax\n-       je       G_M63793_IG30\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M63793_IG07\n-\t\t\t\t\t\t;; size=181 bbWeight=1 PerfScore 43.25\n-G_M63793_IG06:\n-       lea      rsi, [rbp-0x78]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M63793_IG08\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M63793_IG07:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M63793_IG27\n        lea      rdx, [rbp-0x78]\n-       mov      rsi, gword ptr [rbp-0xD8]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M63793_IG08:\n        test     rax, rax\n-       je       SHORT G_M63793_IG10\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M63793_IG09:\n\u002B       je       SHORT G_M63793_IG07\n\u002B\t\t\t\t\t\t;; size=175 bbWeight=1 PerfScore 42.50\n\u002BG_M63793_IG06:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M63793_IG11\n\u002B       jmp      SHORT G_M63793_IG08\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M63793_IG10:\n\u002BG_M63793_IG07:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M63793_IG11:\n\u002BG_M63793_IG08:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M63793_IG15\n\u002B       je       SHORT G_M63793_IG12\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M63793_IG12:\n\u002BG_M63793_IG09:\n        test     rax, rax\n-       je       SHORT G_M63793_IG16\n\u002B       je       SHORT G_M63793_IG13\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M63793_IG13:\n\u002BG_M63793_IG10:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M63793_IG16\n\u002B       jne      SHORT G_M63793_IG13\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M63793_IG14:\n\u002BG_M63793_IG11:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M63793_IG16\n\u002B       je       SHORT G_M63793_IG13\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M63793_IG15:\n\u002BG_M63793_IG12:\n        mov      ecx, 1\n-       jmp      SHORT G_M63793_IG23\n\u002B       jmp      SHORT G_M63793_IG20\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M63793_IG16:\n\u002BG_M63793_IG13:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M63793_IG21\n\u002B       je       SHORT G_M63793_IG18\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M63793_IG17:\n\u002BG_M63793_IG14:\n        test     rax, rax\n-       je       SHORT G_M63793_IG19\n\u002B       je       SHORT G_M63793_IG16\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M63793_IG18:\n\u002BG_M63793_IG15:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M63793_IG20\n\u002B       je       SHORT G_M63793_IG17\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M63793_IG19:\n\u002BG_M63793_IG16:\n        xor      ecx, ecx\n-       jmp      SHORT G_M63793_IG22\n\u002B       jmp      SHORT G_M63793_IG19\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M63793_IG20:\n\u002BG_M63793_IG17:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -240,30 \u002B220,30 @@ G_M63793_IG20:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M63793_IG22\n\u002B       jmp      SHORT G_M63793_IG19\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M63793_IG21:\n\u002BG_M63793_IG18:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M63793_IG22:\n\u002BG_M63793_IG19:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M63793_IG23:\n\u002BG_M63793_IG20:\n        mov      dword ptr [rbp-0x6C], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M63793_IG31\n\u002B       je       G_M63793_IG28\n        cmp      dword ptr [rbp-0x6C], 0\n-       je       G_M63793_IG31\n\u002B       je       G_M63793_IG28\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rsi, qword ptr [rdi\u002B0x20]\n        test     rsi, rsi\n-       je       G_M63793_IG28\n\u002B       je       G_M63793_IG25\n \t\t\t\t\t\t;; size=55 bbWeight=1 PerfScore 14.75\n-G_M63793_IG24:\n\u002BG_M63793_IG21:\n        mov      rdi, r14\n        mov      rdx, r13\n        mov      rcx, rbx\n@@ -278,7 \u002B258,7 @@ G_M63793_IG24:\n        mov      gword ptr [rbp-0xC0], rax\n        mov      byte  ptr [rbp-0xA0], sil\n        mov      qword ptr [rbp-0x98], rdi\n-       mov      rbx, gword ptr [rbp-0xE0]\n\u002B       mov      rbx, gword ptr [rbp-0xD8]\n        mov      gword ptr [rbp-0x90], rbx\n        mov      dword ptr [rbp-0xB0], -1\n        lea      rsi, [rbp-0xD0]\n@@ -287,19 \u002B267,19 @@ G_M63793_IG24:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[short,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA8]\n        test     rax, rax\n-       jne      SHORT G_M63793_IG26\n\u002B       jne      SHORT G_M63793_IG23\n \t\t\t\t\t\t;; size=139 bbWeight=1 PerfScore 23.50\n-G_M63793_IG25:\n\u002BG_M63793_IG22:\n        lea      rdi, [rbp-0xA8]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M63793_IG26:\n\u002BG_M63793_IG23:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M63793_IG27:\n-       add      rsp, 248\n\u002BG_M63793_IG24:\n\u002B       add      rsp, 232\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -308,15 \u002B288,15 @@ G_M63793_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M63793_IG28:\n\u002BG_M63793_IG25:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M63793_IG24\n\u002B       jmp      G_M63793_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M63793_IG29:\n\u002BG_M63793_IG26:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -324,13 \u002B304,13 @@ G_M63793_IG29:\n        mov      rdi, rax\n        jmp      G_M63793_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M63793_IG30:\n\u002BG_M63793_IG27:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M63793_IG31:\n\u002BG_M63793_IG28:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -343,5 \u002B323,5 @@ G_M63793_IG31:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 951, prolog size 59, PerfScore 144.30, instruction count 211, allocated bytes for code 951 (MethodHash=bd1306ce) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollectionAsync[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 888, prolog size 59, PerfScore 134.92, instruction count 197, allocated bytes for code 888 (MethodHash=bd1306ce) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollectionAsync[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":951,"DiffBytes":888},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollectionAsync[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[short]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[short,byte]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[short,MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M20401_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M20401_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M20401_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[short,byte]:Render(MongoDB.Driver.RenderArgs\u00601[short]):MongoDB.Driver.RenderedPipelineDefinition\u00601[byte]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M20401_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M20401_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M20401_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M20401_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M20401_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M20401_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M20401_IG07:\n        test     rax, rax\n-       je       SHORT G_M20401_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M20401_IG08:\n\u002B       je       SHORT G_M20401_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M20401_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M20401_IG10\n\u002B       jmp      SHORT G_M20401_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M20401_IG09:\n\u002BG_M20401_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M20401_IG10:\n\u002BG_M20401_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M20401_IG14\n\u002B       je       SHORT G_M20401_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M20401_IG11:\n\u002BG_M20401_IG08:\n        test     rax, rax\n-       je       SHORT G_M20401_IG15\n\u002B       je       SHORT G_M20401_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M20401_IG12:\n\u002BG_M20401_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M20401_IG15\n\u002B       jne      SHORT G_M20401_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M20401_IG13:\n\u002BG_M20401_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M20401_IG15\n\u002B       je       SHORT G_M20401_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M20401_IG14:\n\u002BG_M20401_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M20401_IG22\n\u002B       jmp      SHORT G_M20401_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M20401_IG15:\n\u002BG_M20401_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M20401_IG20\n\u002B       je       SHORT G_M20401_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M20401_IG16:\n\u002BG_M20401_IG13:\n        test     rax, rax\n-       je       SHORT G_M20401_IG18\n\u002B       je       SHORT G_M20401_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M20401_IG17:\n\u002BG_M20401_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M20401_IG19\n\u002B       je       SHORT G_M20401_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M20401_IG18:\n\u002BG_M20401_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M20401_IG21\n\u002B       jmp      SHORT G_M20401_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M20401_IG19:\n\u002BG_M20401_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M20401_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M20401_IG21\n\u002B       jmp      SHORT G_M20401_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M20401_IG20:\n\u002BG_M20401_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M20401_IG21:\n\u002BG_M20401_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M20401_IG22:\n\u002BG_M20401_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M20401_IG27\n\u002B       je       G_M20401_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M20401_IG27\n\u002B       je       G_M20401_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M20401_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[short,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M20401_IG24\n\u002B       jne      SHORT G_M20401_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M20401_IG23:\n\u002BG_M20401_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M20401_IG24:\n\u002BG_M20401_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M20401_IG25:\n-       add      rsp, 232\n\u002BG_M20401_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M20401_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M20401_IG26:\n\u002BG_M20401_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M20401_IG27:\n\u002BG_M20401_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M20401_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=a820b04e) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollectionAsync[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=a820b04e) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollectionAsync[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollectionAsync[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[short]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[short,double]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[short,MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M28977_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M28977_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M28977_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[short,double]:Render(MongoDB.Driver.RenderArgs\u00601[short]):MongoDB.Driver.RenderedPipelineDefinition\u00601[double]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M28977_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M28977_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M28977_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M28977_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M28977_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M28977_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M28977_IG07:\n        test     rax, rax\n-       je       SHORT G_M28977_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M28977_IG08:\n\u002B       je       SHORT G_M28977_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M28977_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M28977_IG10\n\u002B       jmp      SHORT G_M28977_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M28977_IG09:\n\u002BG_M28977_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M28977_IG10:\n\u002BG_M28977_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M28977_IG14\n\u002B       je       SHORT G_M28977_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M28977_IG11:\n\u002BG_M28977_IG08:\n        test     rax, rax\n-       je       SHORT G_M28977_IG15\n\u002B       je       SHORT G_M28977_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M28977_IG12:\n\u002BG_M28977_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M28977_IG15\n\u002B       jne      SHORT G_M28977_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M28977_IG13:\n\u002BG_M28977_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M28977_IG15\n\u002B       je       SHORT G_M28977_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M28977_IG14:\n\u002BG_M28977_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M28977_IG22\n\u002B       jmp      SHORT G_M28977_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M28977_IG15:\n\u002BG_M28977_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M28977_IG20\n\u002B       je       SHORT G_M28977_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M28977_IG16:\n\u002BG_M28977_IG13:\n        test     rax, rax\n-       je       SHORT G_M28977_IG18\n\u002B       je       SHORT G_M28977_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M28977_IG17:\n\u002BG_M28977_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M28977_IG19\n\u002B       je       SHORT G_M28977_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M28977_IG18:\n\u002BG_M28977_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M28977_IG21\n\u002B       jmp      SHORT G_M28977_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M28977_IG19:\n\u002BG_M28977_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M28977_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M28977_IG21\n\u002B       jmp      SHORT G_M28977_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M28977_IG20:\n\u002BG_M28977_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M28977_IG21:\n\u002BG_M28977_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M28977_IG22:\n\u002BG_M28977_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M28977_IG27\n\u002B       je       G_M28977_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M28977_IG27\n\u002B       je       G_M28977_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M28977_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[short,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M28977_IG24\n\u002B       jne      SHORT G_M28977_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M28977_IG23:\n\u002BG_M28977_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M28977_IG24:\n\u002BG_M28977_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M28977_IG25:\n-       add      rsp, 232\n\u002BG_M28977_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M28977_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M28977_IG26:\n\u002BG_M28977_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M28977_IG27:\n\u002BG_M28977_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M28977_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=735b8ece) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollectionAsync[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=735b8ece) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollectionAsync[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollectionAsync[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[short]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[short,int]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[short,MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M41905_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M41905_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M41905_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[short,int]:Render(MongoDB.Driver.RenderArgs\u00601[short]):MongoDB.Driver.RenderedPipelineDefinition\u00601[int]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M41905_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M41905_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M41905_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M41905_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M41905_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M41905_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M41905_IG07:\n        test     rax, rax\n-       je       SHORT G_M41905_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M41905_IG08:\n\u002B       je       SHORT G_M41905_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M41905_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M41905_IG10\n\u002B       jmp      SHORT G_M41905_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M41905_IG09:\n\u002BG_M41905_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M41905_IG10:\n\u002BG_M41905_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M41905_IG14\n\u002B       je       SHORT G_M41905_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M41905_IG11:\n\u002BG_M41905_IG08:\n        test     rax, rax\n-       je       SHORT G_M41905_IG15\n\u002B       je       SHORT G_M41905_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M41905_IG12:\n\u002BG_M41905_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M41905_IG15\n\u002B       jne      SHORT G_M41905_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M41905_IG13:\n\u002BG_M41905_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M41905_IG15\n\u002B       je       SHORT G_M41905_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M41905_IG14:\n\u002BG_M41905_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M41905_IG22\n\u002B       jmp      SHORT G_M41905_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M41905_IG15:\n\u002BG_M41905_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M41905_IG20\n\u002B       je       SHORT G_M41905_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M41905_IG16:\n\u002BG_M41905_IG13:\n        test     rax, rax\n-       je       SHORT G_M41905_IG18\n\u002B       je       SHORT G_M41905_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M41905_IG17:\n\u002BG_M41905_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M41905_IG19\n\u002B       je       SHORT G_M41905_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M41905_IG18:\n\u002BG_M41905_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M41905_IG21\n\u002B       jmp      SHORT G_M41905_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M41905_IG19:\n\u002BG_M41905_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M41905_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M41905_IG21\n\u002B       jmp      SHORT G_M41905_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M41905_IG20:\n\u002BG_M41905_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M41905_IG21:\n\u002BG_M41905_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M41905_IG22:\n\u002BG_M41905_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M41905_IG27\n\u002B       je       G_M41905_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M41905_IG27\n\u002B       je       G_M41905_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M41905_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[short,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M41905_IG24\n\u002B       jne      SHORT G_M41905_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M41905_IG23:\n\u002BG_M41905_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M41905_IG24:\n\u002BG_M41905_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M41905_IG25:\n-       add      rsp, 232\n\u002BG_M41905_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M41905_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M41905_IG26:\n\u002BG_M41905_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M41905_IG27:\n\u002BG_M41905_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M41905_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=3aeb5c4e) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollectionAsync[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=3aeb5c4e) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollectionAsync[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollectionAsync[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[short]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[short,long]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[short,MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M44465_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M44465_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M44465_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[short,long]:Render(MongoDB.Driver.RenderArgs\u00601[short]):MongoDB.Driver.RenderedPipelineDefinition\u00601[long]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M44465_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M44465_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M44465_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M44465_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M44465_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M44465_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M44465_IG07:\n        test     rax, rax\n-       je       SHORT G_M44465_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M44465_IG08:\n\u002B       je       SHORT G_M44465_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M44465_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M44465_IG10\n\u002B       jmp      SHORT G_M44465_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M44465_IG09:\n\u002BG_M44465_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M44465_IG10:\n\u002BG_M44465_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M44465_IG14\n\u002B       je       SHORT G_M44465_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M44465_IG11:\n\u002BG_M44465_IG08:\n        test     rax, rax\n-       je       SHORT G_M44465_IG15\n\u002B       je       SHORT G_M44465_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M44465_IG12:\n\u002BG_M44465_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M44465_IG15\n\u002B       jne      SHORT G_M44465_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M44465_IG13:\n\u002BG_M44465_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M44465_IG15\n\u002B       je       SHORT G_M44465_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M44465_IG14:\n\u002BG_M44465_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M44465_IG22\n\u002B       jmp      SHORT G_M44465_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M44465_IG15:\n\u002BG_M44465_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M44465_IG20\n\u002B       je       SHORT G_M44465_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M44465_IG16:\n\u002BG_M44465_IG13:\n        test     rax, rax\n-       je       SHORT G_M44465_IG18\n\u002B       je       SHORT G_M44465_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M44465_IG17:\n\u002BG_M44465_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M44465_IG19\n\u002B       je       SHORT G_M44465_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M44465_IG18:\n\u002BG_M44465_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M44465_IG21\n\u002B       jmp      SHORT G_M44465_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M44465_IG19:\n\u002BG_M44465_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M44465_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M44465_IG21\n\u002B       jmp      SHORT G_M44465_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M44465_IG20:\n\u002BG_M44465_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M44465_IG21:\n\u002BG_M44465_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M44465_IG22:\n\u002BG_M44465_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M44465_IG27\n\u002B       je       G_M44465_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M44465_IG27\n\u002B       je       G_M44465_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M44465_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[short,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M44465_IG24\n\u002B       jne      SHORT G_M44465_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M44465_IG23:\n\u002BG_M44465_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M44465_IG24:\n\u002BG_M44465_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M44465_IG25:\n-       add      rsp, 232\n\u002BG_M44465_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M44465_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M44465_IG26:\n\u002BG_M44465_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M44465_IG27:\n\u002BG_M44465_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M44465_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=97db524e) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollectionAsync[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=97db524e) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollectionAsync[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollectionAsync[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"849 -\u003E 786 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,16 \u002B9,16 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[short]\u003E\n-;  V01 arg1         [V01,T05] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[short,short]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n@@ -35,29 \u002B35,29 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T13] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T12] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T19] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T18] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;  V36 tmp27        [V36    ] ( 11, 10.50)  struct (88) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[short,MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp28        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V38 tmp29        [V38,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V39 tmp30        [V39,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V40 tmp31        [V40,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp32        [V41,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V41 tmp32        [V41,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V43 tmp34        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V45 tmp36        [V45,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp37        [V46,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp36        [V45,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp38        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V37.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M15633_IG01:\n        push     rbp\n@@ -66,8 \u002B66,8 @@ G_M15633_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -135,90 \u002B135,70 @@ G_M15633_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[short,short]:Render(MongoDB.Driver.RenderArgs\u00601[short]):MongoDB.Driver.RenderedPipelineDefinition\u00601[short]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M15633_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M15633_IG06\n-\t\t\t\t\t\t;; size=180 bbWeight=1 PerfScore 43.25\n-G_M15633_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M15633_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M15633_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M15633_IG23\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M15633_IG07:\n        test     rax, rax\n-       je       SHORT G_M15633_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M15633_IG08:\n\u002B       je       SHORT G_M15633_IG06\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 42.50\n\u002BG_M15633_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M15633_IG10\n\u002B       jmp      SHORT G_M15633_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M15633_IG09:\n\u002BG_M15633_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M15633_IG10:\n\u002BG_M15633_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M15633_IG14\n\u002B       je       SHORT G_M15633_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M15633_IG11:\n\u002BG_M15633_IG08:\n        test     rax, rax\n-       je       SHORT G_M15633_IG15\n\u002B       je       SHORT G_M15633_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M15633_IG12:\n\u002BG_M15633_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M15633_IG15\n\u002B       jne      SHORT G_M15633_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M15633_IG13:\n\u002BG_M15633_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M15633_IG15\n\u002B       je       SHORT G_M15633_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M15633_IG14:\n\u002BG_M15633_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M15633_IG22\n\u002B       jmp      SHORT G_M15633_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M15633_IG15:\n\u002BG_M15633_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M15633_IG20\n\u002B       je       SHORT G_M15633_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M15633_IG16:\n\u002BG_M15633_IG13:\n        test     rax, rax\n-       je       SHORT G_M15633_IG18\n\u002B       je       SHORT G_M15633_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M15633_IG17:\n\u002BG_M15633_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M15633_IG19\n\u002B       je       SHORT G_M15633_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M15633_IG18:\n\u002BG_M15633_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M15633_IG21\n\u002B       jmp      SHORT G_M15633_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M15633_IG19:\n\u002BG_M15633_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -226,24 \u002B206,24 @@ G_M15633_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M15633_IG21\n\u002B       jmp      SHORT G_M15633_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M15633_IG20:\n\u002BG_M15633_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M15633_IG21:\n\u002BG_M15633_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M15633_IG22:\n\u002BG_M15633_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r14\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M15633_IG27\n\u002B       je       G_M15633_IG24\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M15633_IG27\n\u002B       je       G_M15633_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -266,19 \u002B246,19 @@ G_M15633_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[short,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M15633_IG24\n\u002B       jne      SHORT G_M15633_IG21\n \t\t\t\t\t\t;; size=170 bbWeight=1 PerfScore 32.00\n-G_M15633_IG23:\n\u002BG_M15633_IG20:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M15633_IG24:\n\u002BG_M15633_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M15633_IG25:\n-       add      rsp, 232\n\u002BG_M15633_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -287,13 \u002B267,13 @@ G_M15633_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M15633_IG26:\n\u002BG_M15633_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M15633_IG27:\n\u002BG_M15633_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -306,5 \u002B286,5 @@ G_M15633_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 849, prolog size 62, PerfScore 130.90, instruction count 192, allocated bytes for code 849 (MethodHash=c6ddc2ee) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollectionAsync[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 786, prolog size 62, PerfScore 121.52, instruction count 178, allocated bytes for code 786 (MethodHash=c6ddc2ee) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollectionAsync[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":849,"DiffBytes":786},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[short]:Aggregate[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)","Category":"improvement","Description":"1,813 -\u003E 1,750 bytes (-63)","ExtraInfo":null,"Diff":"@@ -14,16 \u002B14,16 @@\n ;  V03 arg2         [V03,T04] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[short,System.__Canon]\u003E\n ;  V04 arg3         [V04,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T39] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n\u002B;  V06 loc0         [V06,T38] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n-;  V08 loc2         [V08,T40] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V09 loc3         [V09,T46] (  3,  1.50)     ref  -\u003E  [rbp-0x80]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V10 loc4         [V10,T47] (  3,  1.50)     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.__Canon]\u003E\n\u002B;  V08 loc2         [V08,T39] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V09 loc3         [V09,T45] (  3,  1.50)     ref  -\u003E  [rbp-0x80]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V10 loc4         [V10,T46] (  3,  1.50)     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.__Canon]\u003E\n ;  V11 OutArgs      [V11    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V12 tmp1         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V13 tmp2         [V13    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V14 tmp3         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V15 tmp4         [V15,T29] (  4,  2.20)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n\u002B;  V15 tmp4         [V15,T28] (  4,  2.20)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n ;* V16 tmp5         [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V17 tmp6         [V17    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V18 tmp7         [V18    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -43,22 \u002B43,22 @@\n ;* V32 tmp21        [V32    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V33 tmp22        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V34 tmp23        [V34    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V35 tmp24        [V35,T33] (  3,  2   )     int  -\u003E  rdi        \n-;  V36 tmp25        [V36,T06] (  4,  7   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V37 tmp26        [V37    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V38 tmp27        [V38,T17] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V39 tmp28        [V39,T18] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V35 tmp24        [V35,T32] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V36 tmp25        [V36,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V37 tmp26        [V37    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V38 tmp27        [V38,T17] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V39 tmp28        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V40 tmp29        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V41 tmp30        [V41,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V42 tmp31        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V43 tmp32        [V43,T45] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V43 tmp32        [V43,T44] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V44 tmp33        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V45 tmp34        [V45,T31] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V46 tmp35        [V46,T19] (  3,  3   )     ref  -\u003E  [rbp-0x98]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V45 tmp34        [V45,T30] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V46 tmp35        [V46,T18] (  3,  3   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V47 tmp36        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V48 tmp37        [V48,T08] ( 10,  5   )     ref  -\u003E  [rbp-0xA0]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;  V48 tmp37        [V48,T08] ( 10,  5   )     ref  -\u003E  [rbp-0x98]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V49 tmp38        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V50 tmp39        [V50,T09] ( 10,  5   )     ref  -\u003E  [rbp-0xA8]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;  V50 tmp39        [V50,T09] ( 10,  5   )     ref  -\u003E  [rbp-0xA0]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V51 tmp40        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V52 tmp41        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V53 tmp42        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -67,14 \u002B67,14 @@\n ;* V56 tmp45        [V56    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.__Canon]\u003E\n ;* V57 tmp46        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V58 tmp47        [V58    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V59 tmp48        [V59,T48] (  2,  1   )     ref  -\u003E  [rbp-0xB0]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V60 tmp49        [V60,T30] (  4,  2.20)    long  -\u003E  [rbp-0x78]  \u0022Inlining Arg\u0022\n\u002B;  V59 tmp48        [V59,T47] (  2,  1   )     ref  -\u003E  [rbp-0xA8]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V60 tmp49        [V60,T29] (  4,  2.20)    long  -\u003E  [rbp-0x78]  \u0022Inlining Arg\u0022\n ;* V61 tmp50        [V61    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V62 tmp51        [V62,T32] (  8,  2   )     ref  -\u003E  [rbp-0xB8]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V63 tmp52        [V63,T20] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V62 tmp51        [V62,T31] (  8,  2   )     ref  -\u003E  [rbp-0xB0]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V63 tmp52        [V63,T19] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V64 tmp53        [V64    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V65 tmp54        [V65,T49] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.__Canon]\u003E\n-;  V66 tmp55        [V66,T38] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n\u002B;  V65 tmp54        [V65,T48] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.__Canon]\u003E\n\u002B;  V66 tmp55        [V66,T37] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoCollectionSettings\u003E\n ;* V67 tmp56        [V67    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V68 tmp57        [V68,T10] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V69 tmp58        [V69    ] (  0,  0   )     ref  -\u003E  zero-ref   \n@@ -82,36 \u002B82,36 @@\n ;* V71 tmp60        [V71    ] (  0,  0   )     ref  -\u003E  zero-ref   \n... diff truncated; middle omitted ...\n\u002BG_M43460_IG37:\n\u002B       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rdi, gword ptr [rsi\u002B0x10]\n\u002B       mov      rax, rdi\n\u002B       test     rax, rax\n\u002B       je       SHORT G_M43460_IG38\n        mov      rdi, rax\n        mov      esi, 1\n        mov      gword ptr [rbp-0xA0], rax\n@@ -473,35 \u002B469,19 @@ G_M43460_IG39:\n        call     [rcx\u002B0x28]System.Threading.CancellationTokenSource:Dispose(bool):this\n        mov      rdi, gword ptr [rbp-0xA0]\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n-       call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=77 bbWeight=0.50 PerfScore 9.62\n-G_M43460_IG40:\n-       mov      rsi, gword ptr [rbp-0x90]\n-       mov      rdi, gword ptr [rsi\u002B0x10]\n-       mov      rax, rdi\n-       test     rax, rax\n-       je       SHORT G_M43460_IG41\n-       mov      rdi, rax\n-       mov      esi, 1\n-       mov      gword ptr [rbp-0xA8], rax\n-       mov      rcx, qword ptr [rax]\n-       mov      rcx, qword ptr [rcx\u002B0x40]\n-       call     [rcx\u002B0x28]System.Threading.CancellationTokenSource:Dispose(bool):this\n-       mov      rdi, gword ptr [rbp-0xA8]\n-       mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.62\n-G_M43460_IG41:\n\u002BG_M43460_IG38:\n        mov      rdi, qword ptr [r14\u002B0x18]\n        cmp      qword ptr [rdi\u002B0x08], 56\n-       jle      SHORT G_M43460_IG45\n\u002B       jle      SHORT G_M43460_IG42\n \t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 2.50\n-G_M43460_IG42:\n\u002BG_M43460_IG39:\n        mov      rsi, qword ptr [rdi\u002B0x38]\n        test     rsi, rsi\n-       je       SHORT G_M43460_IG45\n\u002B       je       SHORT G_M43460_IG42\n \t\t\t\t\t\t;; size=9 bbWeight=0.40 PerfScore 1.30\n-G_M43460_IG43:\n\u002BG_M43460_IG40:\n        mov      rdi, r15\n        mov      rdx, r13\n        mov      rcx, r12\n@@ -510,8 \u002B490,8 @@ G_M43460_IG43:\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateAggregateToCollectionResultCursor[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M43460_IG44:\n-       add      rsp, 216\n\u002BG_M43460_IG41:\n\u002B       add      rsp, 200\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -520,15 \u002B500,15 @@ G_M43460_IG44:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M43460_IG45:\n\u002BG_M43460_IG42:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      SHORT G_M43460_IG43\n\u002B       jmp      SHORT G_M43460_IG40\n \t\t\t\t\t\t;; size=30 bbWeight=0.18 PerfScore 1.08\n-G_M43460_IG46:\n\u002BG_M43460_IG43:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -536,53 \u002B516,53 @@ G_M43460_IG46:\n        mov      rdi, rax\n        jmp      G_M43460_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M43460_IG47:\n\u002BG_M43460_IG44:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M43460_IG37\n\u002B       jmp      G_M43460_IG34\n \t\t\t\t\t\t;; size=33 bbWeight=0.18 PerfScore 1.08\n-G_M43460_IG48:\n\u002BG_M43460_IG45:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M43460_IG24\n\u002B       jmp      G_M43460_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.10 PerfScore 0.60\n-G_M43460_IG49:\n\u002BG_M43460_IG46:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M43460_IG25\n\u002B       jmp      G_M43460_IG22\n \t\t\t\t\t\t;; size=33 bbWeight=0.10 PerfScore 0.60\n-G_M43460_IG50:\n\u002BG_M43460_IG47:\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      qword ptr [rbp-0x78], rax\n-       jmp      G_M43460_IG27\n\u002B       jmp      G_M43460_IG24\n \t\t\t\t\t\t;; size=31 bbWeight=0.10 PerfScore 0.65\n-G_M43460_IG51:\n\u002BG_M43460_IG48:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M43460_IG52:\n\u002BG_M43460_IG49:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M43460_IG53:\n-       cmp      gword ptr [rbp-0x90], 0\n-       je       SHORT G_M43460_IG55\n-       mov      rsi, gword ptr [rbp-0x90]\n\u002BG_M43460_IG50:\n\u002B       cmp      gword ptr [rbp-0x88], 0\n\u002B       je       SHORT G_M43460_IG52\n\u002B       mov      rsi, gword ptr [rbp-0x88]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M43460_IG54\n\u002B       je       SHORT G_M43460_IG51\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -592,11 \u002B572,11 @@ G_M43460_IG53:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M43460_IG54:\n-       mov      rsi, gword ptr [rbp-0x90]\n\u002BG_M43460_IG51:\n\u002B       mov      rsi, gword ptr [rbp-0x88]\n        mov      r15, gword ptr [rsi\u002B0x10]\n        test     r15, r15\n-       je       SHORT G_M43460_IG55\n\u002B       je       SHORT G_M43460_IG52\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -606,23 \u002B586,23 @@ G_M43460_IG54:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M43460_IG55:\n\u002BG_M43460_IG52:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M43460_IG56:\n\u002BG_M43460_IG53:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M43460_IG57:\n\u002BG_M43460_IG54:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M43460_IG58:\n-       cmp      gword ptr [rbp-0xB8], 0\n-       je       SHORT G_M43460_IG60\n-       mov      rsi, gword ptr [rbp-0xB8]\n\u002BG_M43460_IG55:\n\u002B       cmp      gword ptr [rbp-0xB0], 0\n\u002B       je       SHORT G_M43460_IG57\n\u002B       mov      rsi, gword ptr [rbp-0xB0]\n        mov      r13, gword ptr [rsi\u002B0x08]\n        test     r13, r13\n-       je       SHORT G_M43460_IG59\n\u002B       je       SHORT G_M43460_IG56\n        mov      rdi, r13\n        mov      esi, 1\n        mov      rax, qword ptr [r13]\n@@ -632,11 \u002B612,11 @@ G_M43460_IG58:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M43460_IG59:\n-       mov      rsi, gword ptr [rbp-0xB8]\n\u002BG_M43460_IG56:\n\u002B       mov      rsi, gword ptr [rbp-0xB0]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M43460_IG60\n\u002B       je       SHORT G_M43460_IG57\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -646,13 \u002B626,13 @@ G_M43460_IG59:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M43460_IG60:\n\u002BG_M43460_IG57:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M43460_IG61:\n\u002BG_M43460_IG58:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1813, prolog size 66, PerfScore 196.21, instruction count 418, allocated bytes for code 1813 (MethodHash=e5a4563b) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:Aggregate[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)\n\u002B; Total bytes of code 1750, prolog size 66, PerfScore 186.83, instruction count 404, allocated bytes for code 1750 (MethodHash=e5a4563b) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:Aggregate[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1813,"DiffBytes":1750},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase:AggregateToCollectionAsync[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"844 -\u003E 781 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,21 \u002B9,21 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T01] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoDatabase\u003E\n-;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T03] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,System.Nullable\u00601[int]]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V10 tmp1         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.NoPipelineInputSerializer\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n-;  V12 tmp3         [V12,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V12 tmp3         [V12,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V14 tmp5         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n-;  V15 tmp6         [V15,T05] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V15 tmp6         [V15,T04] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;* V16 tmp7         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V17 tmp8         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V18 tmp9         [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -36,29 \u002B36,29 @@\n ;* V25 tmp16        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp18        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp19        [V28,T13] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp20        [V29,T03] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp21        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp22        [V31,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp23        [V32,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp19        [V28,T12] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp20        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp21        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp22        [V31,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp24        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp25        [V34,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp26        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp27        [V36,T19] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp27        [V36,T18] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;  V37 tmp28        [V37    ] ( 12, 11.50)  struct (96) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoDatabase\u002B\u003CExecuteWriteOperationAsync\u003Ed__79\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V38 tmp29        [V38    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V39 tmp30        [V39,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V40 tmp31        [V40,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V41 tmp32        [V41,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V43 tmp34        [V43,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V43 tmp34        [V43,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V46 tmp37        [V46,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V20._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V20._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V48 tmp39        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V38.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M58852_IG01:\n        push     rbp\n@@ -67,8 \u002B67,8 @@ G_M58852_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -139,90 \u002B139,70 @@ G_M58852_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Nullable\u00601[int]]:Render(MongoDB.Driver.RenderArgs\u00601[System.__Canon]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M58852_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M58852_IG06\n-\t\t\t\t\t\t;; size=203 bbWeight=1 PerfScore 45.75\n-G_M58852_IG05:\n-       lea      rsi, [rbp-0x68]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M58852_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M58852_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M58852_IG23\n        lea      rdx, [rbp-0x68]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M58852_IG07:\n        test     rax, rax\n-       je       SHORT G_M58852_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M58852_IG08:\n\u002B       je       SHORT G_M58852_IG06\n\u002B\t\t\t\t\t\t;; size=197 bbWeight=1 PerfScore 45.00\n\u002BG_M58852_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M58852_IG10\n\u002B       jmp      SHORT G_M58852_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M58852_IG09:\n\u002BG_M58852_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M58852_IG10:\n\u002BG_M58852_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M58852_IG14\n\u002B       je       SHORT G_M58852_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M58852_IG11:\n\u002BG_M58852_IG08:\n        test     rax, rax\n-       je       SHORT G_M58852_IG15\n\u002B       je       SHORT G_M58852_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M58852_IG12:\n\u002BG_M58852_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M58852_IG15\n\u002B       jne      SHORT G_M58852_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M58852_IG13:\n\u002BG_M58852_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M58852_IG15\n\u002B       je       SHORT G_M58852_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M58852_IG14:\n\u002BG_M58852_IG11:\n        mov      edi, 1\n-       jmp      SHORT G_M58852_IG21\n\u002B       jmp      SHORT G_M58852_IG18\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M58852_IG15:\n\u002BG_M58852_IG12:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M58852_IG20\n\u002B       je       SHORT G_M58852_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M58852_IG16:\n\u002BG_M58852_IG13:\n        test     rax, rax\n-       je       SHORT G_M58852_IG18\n\u002B       je       SHORT G_M58852_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M58852_IG17:\n\u002BG_M58852_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M58852_IG19\n\u002B       je       SHORT G_M58852_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M58852_IG18:\n\u002BG_M58852_IG15:\n        xor      edi, edi\n-       jmp      SHORT G_M58852_IG21\n\u002B       jmp      SHORT G_M58852_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M58852_IG19:\n\u002BG_M58852_IG16:\n        mov      rdi, 0xD1FFAB1E\n        xor      rdi, qword ptr [rax\u002B0x0C]\n        mov      esi, dword ptr [rax\u002B0x14]\n@@ -230,14 \u002B210,14 @@ G_M58852_IG19:\n        or       rdi, rsi\n        sete     dil\n        movzx    rdi, dil\n-       jmp      SHORT G_M58852_IG21\n\u002B       jmp      SHORT G_M58852_IG18\n \t\t\t\t\t\t;; size=36 bbWeight=0.06 PerfScore 0.47\n-G_M58852_IG20:\n\u002BG_M58852_IG17:\n        mov      edi, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M58852_IG21:\n\u002BG_M58852_IG18:\n        test     edi, edi\n-       je       G_M58852_IG27\n\u002B       je       G_M58852_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -253,7 \u002B233,7 @@ G_M58852_IG21:\n        mov      byte  ptr [rbp-0x90], sil\n        mov      qword ptr [rbp-0x88], rdi\n \t\t\t\t\t\t;; size=82 bbWeight=1 PerfScore 15.50\n-G_M58852_IG22:\n\u002BG_M58852_IG19:\n        mov      gword ptr [rbp-0xB0], rcx\n        mov      gword ptr [rbp-0x80], r12\n        mov      dword ptr [rbp-0xA0], -1\n@@ -263,19 \u002B243,19 @@ G_M58852_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoDatabase\u002B\u003CExecuteWriteOperationAsync\u003Ed__79\u00601[System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0x98]\n        test     rax, rax\n-       jne      SHORT G_M58852_IG24\n\u002B       jne      SHORT G_M58852_IG21\n \t\t\t\t\t\t;; size=62 bbWeight=1 PerfScore 9.25\n-G_M58852_IG23:\n\u002BG_M58852_IG20:\n        lea      rdi, [rbp-0x98]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M58852_IG24:\n\u002BG_M58852_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M58852_IG25:\n-       add      rsp, 232\n\u002BG_M58852_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -284,13 \u002B264,13 @@ G_M58852_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M58852_IG26:\n\u002BG_M58852_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M58852_IG27:\n\u002BG_M58852_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -303,5 \u002B283,5 @@ G_M58852_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 844, prolog size 62, PerfScore 125.90, instruction count 188, allocated bytes for code 844 (MethodHash=b7681a1b) for method MongoDB.Driver.MongoDatabase:AggregateToCollectionAsync[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 781, prolog size 62, PerfScore 116.52, instruction count 174, allocated bytes for code 781 (MethodHash=b7681a1b) for method MongoDB.Driver.MongoDatabase:AggregateToCollectionAsync[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":844,"DiffBytes":781},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase:AggregateToCollectionAsync[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"844 -\u003E 781 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,21 \u002B9,21 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T01] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoDatabase\u003E\n-;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T03] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,System.Numerics.Vector\u00601[float]]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V10 tmp1         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.NoPipelineInputSerializer\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n-;  V12 tmp3         [V12,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V12 tmp3         [V12,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V14 tmp5         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V15 tmp6         [V15,T05] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V15 tmp6         [V15,T04] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V16 tmp7         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V17 tmp8         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V18 tmp9         [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -36,29 \u002B36,29 @@\n ;* V25 tmp16        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp18        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp19        [V28,T13] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp20        [V29,T03] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp21        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp22        [V31,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp23        [V32,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp19        [V28,T12] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp20        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp21        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp22        [V31,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp24        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp25        [V34,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp26        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp27        [V36,T19] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp27        [V36,T18] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;  V37 tmp28        [V37    ] ( 12, 11.50)  struct (96) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoDatabase\u002B\u003CExecuteWriteOperationAsync\u003Ed__79\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V38 tmp29        [V38    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V39 tmp30        [V39,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V40 tmp31        [V40,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V41 tmp32        [V41,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V43 tmp34        [V43,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V43 tmp34        [V43,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V46 tmp37        [V46,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V20._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V20._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V48 tmp39        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V38.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M54180_IG01:\n        push     rbp\n@@ -67,8 \u002B67,8 @@ G_M54180_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -139,90 \u002B139,70 @@ G_M54180_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Numerics.Vector\u00601[float]]:Render(MongoDB.Driver.RenderArgs\u00601[System.__Canon]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M54180_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M54180_IG06\n-\t\t\t\t\t\t;; size=203 bbWeight=1 PerfScore 45.75\n-G_M54180_IG05:\n-       lea      rsi, [rbp-0x68]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M54180_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M54180_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M54180_IG23\n        lea      rdx, [rbp-0x68]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M54180_IG07:\n        test     rax, rax\n-       je       SHORT G_M54180_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M54180_IG08:\n\u002B       je       SHORT G_M54180_IG06\n\u002B\t\t\t\t\t\t;; size=197 bbWeight=1 PerfScore 45.00\n\u002BG_M54180_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M54180_IG10\n\u002B       jmp      SHORT G_M54180_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M54180_IG09:\n\u002BG_M54180_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M54180_IG10:\n\u002BG_M54180_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M54180_IG14\n\u002B       je       SHORT G_M54180_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M54180_IG11:\n\u002BG_M54180_IG08:\n        test     rax, rax\n-       je       SHORT G_M54180_IG15\n\u002B       je       SHORT G_M54180_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M54180_IG12:\n\u002BG_M54180_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M54180_IG15\n\u002B       jne      SHORT G_M54180_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M54180_IG13:\n\u002BG_M54180_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M54180_IG15\n\u002B       je       SHORT G_M54180_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M54180_IG14:\n\u002BG_M54180_IG11:\n        mov      edi, 1\n-       jmp      SHORT G_M54180_IG21\n\u002B       jmp      SHORT G_M54180_IG18\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M54180_IG15:\n\u002BG_M54180_IG12:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M54180_IG20\n\u002B       je       SHORT G_M54180_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M54180_IG16:\n\u002BG_M54180_IG13:\n        test     rax, rax\n-       je       SHORT G_M54180_IG18\n\u002B       je       SHORT G_M54180_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M54180_IG17:\n\u002BG_M54180_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M54180_IG19\n\u002B       je       SHORT G_M54180_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M54180_IG18:\n\u002BG_M54180_IG15:\n        xor      edi, edi\n-       jmp      SHORT G_M54180_IG21\n\u002B       jmp      SHORT G_M54180_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M54180_IG19:\n\u002BG_M54180_IG16:\n        mov      rdi, 0xD1FFAB1E\n        xor      rdi, qword ptr [rax\u002B0x0C]\n        mov      esi, dword ptr [rax\u002B0x14]\n@@ -230,14 \u002B210,14 @@ G_M54180_IG19:\n        or       rdi, rsi\n        sete     dil\n        movzx    rdi, dil\n-       jmp      SHORT G_M54180_IG21\n\u002B       jmp      SHORT G_M54180_IG18\n \t\t\t\t\t\t;; size=36 bbWeight=0.06 PerfScore 0.47\n-G_M54180_IG20:\n\u002BG_M54180_IG17:\n        mov      edi, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M54180_IG21:\n\u002BG_M54180_IG18:\n        test     edi, edi\n-       je       G_M54180_IG27\n\u002B       je       G_M54180_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -253,7 \u002B233,7 @@ G_M54180_IG21:\n        mov      byte  ptr [rbp-0x90], sil\n        mov      qword ptr [rbp-0x88], rdi\n \t\t\t\t\t\t;; size=82 bbWeight=1 PerfScore 15.50\n-G_M54180_IG22:\n\u002BG_M54180_IG19:\n        mov      gword ptr [rbp-0xB0], rcx\n        mov      gword ptr [rbp-0x80], r12\n        mov      dword ptr [rbp-0xA0], -1\n@@ -263,19 \u002B243,19 @@ G_M54180_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoDatabase\u002B\u003CExecuteWriteOperationAsync\u003Ed__79\u00601[System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0x98]\n        test     rax, rax\n-       jne      SHORT G_M54180_IG24\n\u002B       jne      SHORT G_M54180_IG21\n \t\t\t\t\t\t;; size=62 bbWeight=1 PerfScore 9.25\n-G_M54180_IG23:\n\u002BG_M54180_IG20:\n        lea      rdi, [rbp-0x98]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M54180_IG24:\n\u002BG_M54180_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M54180_IG25:\n-       add      rsp, 232\n\u002BG_M54180_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -284,13 \u002B264,13 @@ G_M54180_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M54180_IG26:\n\u002BG_M54180_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M54180_IG27:\n\u002BG_M54180_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -303,5 \u002B283,5 @@ G_M54180_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 844, prolog size 62, PerfScore 125.90, instruction count 188, allocated bytes for code 844 (MethodHash=d9972c5b) for method MongoDB.Driver.MongoDatabase:AggregateToCollectionAsync[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 781, prolog size 62, PerfScore 116.52, instruction count 174, allocated bytes for code 781 (MethodHash=d9972c5b) for method MongoDB.Driver.MongoDatabase:AggregateToCollectionAsync[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":844,"DiffBytes":781},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase:AggregateToCollectionAsync[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"949 -\u003E 886 bytes (-63)","ExtraInfo":null,"Diff":"@@ -10,24 \u002B10,24 @@\n ;\n ;  V00 this         [V00,T02] (  5,  5   )     ref  -\u003E  r14         this class-hnd single-def \u003CMongoDB.Driver.MongoDatabase\u003E\n ;  V01 TypeCtx      [V01,T01] (  7,  5.40)    long  -\u003E  r15         single-def\n-;  V02 arg1         [V02,T05] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V02 arg1         [V02,T04] (  4,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V03 arg2         [V03,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.__Canon]\u003E\n ;  V04 arg3         [V04,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T22] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n\u002B;  V06 loc0         [V06,T21] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n-;  V08 loc2         [V08,T23] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V09 loc3         [V09,T21] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V08 loc2         [V08,T22] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V09 loc3         [V09,T20] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V12 tmp2         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.NoPipelineInputSerializer\u003E\n ;* V13 tmp3         [V13    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V14 tmp4         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V15 tmp5         [V15    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n-;  V16 tmp6         [V16,T29] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V16 tmp6         [V16,T28] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V17 tmp7         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V18 tmp8         [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n-;  V19 tmp9         [V19,T06] (  3,  6   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n\u002B;  V19 tmp9         [V19,T05] (  3,  6   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n ;* V20 tmp10        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V21 tmp11        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V22 tmp12        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -40,26 \u002B40,26 @@\n ;* V29 tmp19        [V29    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V30 tmp20        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V31 tmp21        [V31    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V32 tmp22        [V32,T20] (  3,  2   )     int  -\u003E  rdi        \n-;  V33 tmp23        [V33,T04] (  4,  7   )     ref  -\u003E  [rbp-0xD8]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V34 tmp24        [V34    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V35 tmp25        [V35,T18] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V36 tmp26        [V36,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V32 tmp22        [V32,T19] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V33 tmp23        [V33,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V34 tmp24        [V34    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V35 tmp25        [V35,T18] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V38 tmp28        [V38,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V39 tmp29        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V40 tmp30        [V40,T26] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V40 tmp30        [V40,T25] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;  V41 tmp31        [V41    ] ( 12, 11.50)  struct (96) [rbp-0xD0]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoDatabase\u002B\u003CExecuteWriteOperationAsync\u003Ed__79\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V42 tmp32        [V42    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V43 tmp33        [V43,T13] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V44 tmp34        [V44,T17] (  4,  3.50)     ref  -\u003E  rax        \n-;  V45 tmp35        [V45,T14] (  2,  2   )     ref  -\u003E  [rbp-0xE0]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp36        [V46,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V15.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp37        [V47,T25] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V15.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V45 tmp35        [V45,T14] (  2,  2   )     ref  -\u003E  [rbp-0xD8]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp36        [V46,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V15.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V47 tmp37        [V47,T24] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V15.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V23._name (fldOffset=0x0)\u0022 P-DEP\n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V23._value (fldOffset=0x8)\u0022 P-DEP\n-;  V50 tmp40        [V50,T27] (  2,  1   )     ref  -\u003E  rax         \u0022field V24._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V51 tmp41        [V51,T28] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V24._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V50 tmp40        [V50,T26] (  2,  1   )     ref  -\u003E  rax         \u0022field V24._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V51 tmp41        [V51,T27] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V24._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V52 tmp42        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V42.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;  V53 tmp43        [V53,T15] (  2,  4   )    long  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V54 tmp44        [V54,T16] (  2,  4   )    long  -\u003E  rsi         \u0022argument with side effect\u0022\n@@ -68,7 \u002B68,7 @@\n ;  V57 rat2         [V57,T12] (  3,  4   )    long  -\u003E  rsi         \u0022runtime lookup\u0022\n ;  V58 rat3         [V58,T08] (  3,  5.60)    long  -\u003E  rsi         \u0022fgMakeTemp is creating a new local variable\u0022\n ;\n-; Lcl frame size = 248\n\u002B; Lcl frame size = 232\n \n G_M49131_IG01:\n        push     rbp\n@@ -77,14 \u002B77,14 @@ G_M49131_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 248\n-       lea      rbp, [rsp\u002B0x120]\n\u002B       sub      rsp, 232\n\u002B       lea      rbp, [rsp\u002B0x110]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0xD0], zmm8\n        vmovdqu32 zmmword ptr [rbp-0x90], zmm8\n        vmovdqu  ymmword ptr [rbp-0x50], ymm8\n        mov      qword ptr [rbp-0x30], rsi\n-       mov      gword ptr [rbp-0xE0], r9\n\u002B       mov      gword ptr [rbp-0xD8], r9\n        mov      r14, rdi\n        mov      r15, rsi\n        mov      r12, rdx\n@@ -100,7 \u002B100,7 @@ G_M49131_IG02:\n        mov      rdi, qword ptr [r15\u002B0x18]\n... diff truncated; middle omitted ...\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0xD8], rax\n-       test     rax, rax\n-       je       G_M49131_IG30\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M49131_IG07\n-\t\t\t\t\t\t;; size=204 bbWeight=1 PerfScore 45.75\n-G_M49131_IG06:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M49131_IG08\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M49131_IG07:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M49131_IG27\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0xD8]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M49131_IG08:\n        test     rax, rax\n-       je       SHORT G_M49131_IG10\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M49131_IG09:\n\u002B       je       SHORT G_M49131_IG07\n\u002B\t\t\t\t\t\t;; size=198 bbWeight=1 PerfScore 45.00\n\u002BG_M49131_IG06:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M49131_IG11\n\u002B       jmp      SHORT G_M49131_IG08\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M49131_IG10:\n\u002BG_M49131_IG07:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M49131_IG11:\n\u002BG_M49131_IG08:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M49131_IG15\n\u002B       je       SHORT G_M49131_IG12\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M49131_IG12:\n\u002BG_M49131_IG09:\n        test     rax, rax\n-       je       SHORT G_M49131_IG16\n\u002B       je       SHORT G_M49131_IG13\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M49131_IG13:\n\u002BG_M49131_IG10:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M49131_IG16\n\u002B       jne      SHORT G_M49131_IG13\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M49131_IG14:\n\u002BG_M49131_IG11:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M49131_IG16\n\u002B       je       SHORT G_M49131_IG13\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M49131_IG15:\n\u002BG_M49131_IG12:\n        mov      edi, 1\n-       jmp      SHORT G_M49131_IG22\n\u002B       jmp      SHORT G_M49131_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M49131_IG16:\n\u002BG_M49131_IG13:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M49131_IG21\n\u002B       je       SHORT G_M49131_IG18\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M49131_IG17:\n\u002BG_M49131_IG14:\n        test     rax, rax\n-       je       SHORT G_M49131_IG19\n\u002B       je       SHORT G_M49131_IG16\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M49131_IG18:\n\u002BG_M49131_IG15:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M49131_IG20\n\u002B       je       SHORT G_M49131_IG17\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M49131_IG19:\n\u002BG_M49131_IG16:\n        xor      edi, edi\n-       jmp      SHORT G_M49131_IG22\n\u002B       jmp      SHORT G_M49131_IG19\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M49131_IG20:\n\u002BG_M49131_IG17:\n        mov      rdi, 0xD1FFAB1E\n        xor      rdi, qword ptr [rax\u002B0x0C]\n        mov      esi, dword ptr [rax\u002B0x14]\n@@ -244,20 \u002B224,20 @@ G_M49131_IG20:\n        or       rdi, rsi\n        sete     dil\n        movzx    rdi, dil\n-       jmp      SHORT G_M49131_IG22\n\u002B       jmp      SHORT G_M49131_IG19\n \t\t\t\t\t\t;; size=36 bbWeight=0.06 PerfScore 0.47\n-G_M49131_IG21:\n\u002BG_M49131_IG18:\n        mov      edi, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M49131_IG22:\n\u002BG_M49131_IG19:\n        test     edi, edi\n-       je       G_M49131_IG31\n\u002B       je       G_M49131_IG28\n        mov      rdi, qword ptr [r15\u002B0x18]\n        mov      rsi, qword ptr [rdi\u002B0x20]\n        test     rsi, rsi\n-       je       G_M49131_IG28\n\u002B       je       G_M49131_IG25\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 6.50\n-G_M49131_IG23:\n\u002BG_M49131_IG20:\n        mov      rdi, r14\n        mov      rdx, r13\n        mov      rcx, rbx\n@@ -273,9 \u002B253,9 @@ G_M49131_IG23:\n        mov      byte  ptr [rbp-0x98], sil\n        mov      qword ptr [rbp-0x90], rdi\n \t\t\t\t\t\t;; size=74 bbWeight=1 PerfScore 14.25\n-G_M49131_IG24:\n\u002BG_M49131_IG21:\n        mov      gword ptr [rbp-0xB8], rcx\n-       mov      rbx, gword ptr [rbp-0xE0]\n\u002B       mov      rbx, gword ptr [rbp-0xD8]\n        mov      gword ptr [rbp-0x88], rbx\n        mov      dword ptr [rbp-0xA8], -1\n        lea      rsi, [rbp-0xD0]\n@@ -284,19 \u002B264,19 @@ G_M49131_IG24:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoDatabase\u002B\u003CExecuteWriteOperationAsync\u003Ed__79\u00601[System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xA0]\n        test     rax, rax\n-       jne      SHORT G_M49131_IG26\n\u002B       jne      SHORT G_M49131_IG23\n \t\t\t\t\t\t;; size=72 bbWeight=1 PerfScore 10.25\n-G_M49131_IG25:\n\u002BG_M49131_IG22:\n        lea      rdi, [rbp-0xA0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M49131_IG26:\n\u002BG_M49131_IG23:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M49131_IG27:\n-       add      rsp, 248\n\u002BG_M49131_IG24:\n\u002B       add      rsp, 232\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -305,15 \u002B285,15 @@ G_M49131_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M49131_IG28:\n\u002BG_M49131_IG25:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M49131_IG23\n\u002B       jmp      G_M49131_IG20\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M49131_IG29:\n\u002BG_M49131_IG26:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -321,13 \u002B301,13 @@ G_M49131_IG29:\n        mov      rdi, rax\n        jmp      G_M49131_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M49131_IG30:\n\u002BG_M49131_IG27:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M49131_IG31:\n\u002BG_M49131_IG28:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -340,5 \u002B320,5 @@ G_M49131_IG31:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 949, prolog size 59, PerfScore 139.30, instruction count 207, allocated bytes for code 949 (MethodHash=e3084014) for method MongoDB.Driver.MongoDatabase:AggregateToCollectionAsync[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 886, prolog size 59, PerfScore 129.92, instruction count 193, allocated bytes for code 886 (MethodHash=e3084014) for method MongoDB.Driver.MongoDatabase:AggregateToCollectionAsync[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":949,"DiffBytes":886},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase:AggregateToCollectionAsync[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"844 -\u003E 781 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,21 \u002B9,21 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T01] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoDatabase\u003E\n-;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T03] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,byte]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V10 tmp1         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.NoPipelineInputSerializer\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n-;  V12 tmp3         [V12,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V12 tmp3         [V12,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V14 tmp5         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n-;  V15 tmp6         [V15,T05] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n\u002B;  V15 tmp6         [V15,T04] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n ;* V16 tmp7         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V17 tmp8         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V18 tmp9         [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -36,29 \u002B36,29 @@\n ;* V25 tmp16        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp18        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp19        [V28,T13] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp20        [V29,T03] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp21        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp22        [V31,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp23        [V32,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp19        [V28,T12] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp20        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp21        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp22        [V31,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp24        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp25        [V34,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp26        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp27        [V36,T19] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp27        [V36,T18] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;  V37 tmp28        [V37    ] ( 12, 11.50)  struct (96) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoDatabase\u002B\u003CExecuteWriteOperationAsync\u003Ed__79\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V38 tmp29        [V38    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V39 tmp30        [V39,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V40 tmp31        [V40,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V41 tmp32        [V41,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V43 tmp34        [V43,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V43 tmp34        [V43,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V46 tmp37        [V46,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V20._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V20._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V48 tmp39        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V38.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M26020_IG01:\n        push     rbp\n@@ -67,8 \u002B67,8 @@ G_M26020_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -139,90 \u002B139,70 @@ G_M26020_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,byte]:Render(MongoDB.Driver.RenderArgs\u00601[System.__Canon]):MongoDB.Driver.RenderedPipelineDefinition\u00601[byte]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M26020_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M26020_IG06\n-\t\t\t\t\t\t;; size=203 bbWeight=1 PerfScore 45.75\n-G_M26020_IG05:\n-       lea      rsi, [rbp-0x68]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M26020_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M26020_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M26020_IG23\n        lea      rdx, [rbp-0x68]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M26020_IG07:\n        test     rax, rax\n-       je       SHORT G_M26020_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M26020_IG08:\n\u002B       je       SHORT G_M26020_IG06\n\u002B\t\t\t\t\t\t;; size=197 bbWeight=1 PerfScore 45.00\n\u002BG_M26020_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M26020_IG10\n\u002B       jmp      SHORT G_M26020_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M26020_IG09:\n\u002BG_M26020_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M26020_IG10:\n\u002BG_M26020_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M26020_IG14\n\u002B       je       SHORT G_M26020_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M26020_IG11:\n\u002BG_M26020_IG08:\n        test     rax, rax\n-       je       SHORT G_M26020_IG15\n\u002B       je       SHORT G_M26020_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M26020_IG12:\n\u002BG_M26020_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M26020_IG15\n\u002B       jne      SHORT G_M26020_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M26020_IG13:\n\u002BG_M26020_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M26020_IG15\n\u002B       je       SHORT G_M26020_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M26020_IG14:\n\u002BG_M26020_IG11:\n        mov      edi, 1\n-       jmp      SHORT G_M26020_IG21\n\u002B       jmp      SHORT G_M26020_IG18\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M26020_IG15:\n\u002BG_M26020_IG12:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M26020_IG20\n\u002B       je       SHORT G_M26020_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M26020_IG16:\n\u002BG_M26020_IG13:\n        test     rax, rax\n-       je       SHORT G_M26020_IG18\n\u002B       je       SHORT G_M26020_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M26020_IG17:\n\u002BG_M26020_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M26020_IG19\n\u002B       je       SHORT G_M26020_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M26020_IG18:\n\u002BG_M26020_IG15:\n        xor      edi, edi\n-       jmp      SHORT G_M26020_IG21\n\u002B       jmp      SHORT G_M26020_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M26020_IG19:\n\u002BG_M26020_IG16:\n        mov      rdi, 0xD1FFAB1E\n        xor      rdi, qword ptr [rax\u002B0x0C]\n        mov      esi, dword ptr [rax\u002B0x14]\n@@ -230,14 \u002B210,14 @@ G_M26020_IG19:\n        or       rdi, rsi\n        sete     dil\n        movzx    rdi, dil\n-       jmp      SHORT G_M26020_IG21\n\u002B       jmp      SHORT G_M26020_IG18\n \t\t\t\t\t\t;; size=36 bbWeight=0.06 PerfScore 0.47\n-G_M26020_IG20:\n\u002BG_M26020_IG17:\n        mov      edi, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M26020_IG21:\n\u002BG_M26020_IG18:\n        test     edi, edi\n-       je       G_M26020_IG27\n\u002B       je       G_M26020_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -253,7 \u002B233,7 @@ G_M26020_IG21:\n        mov      byte  ptr [rbp-0x90], sil\n        mov      qword ptr [rbp-0x88], rdi\n \t\t\t\t\t\t;; size=82 bbWeight=1 PerfScore 15.50\n-G_M26020_IG22:\n\u002BG_M26020_IG19:\n        mov      gword ptr [rbp-0xB0], rcx\n        mov      gword ptr [rbp-0x80], r12\n        mov      dword ptr [rbp-0xA0], -1\n@@ -263,19 \u002B243,19 @@ G_M26020_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoDatabase\u002B\u003CExecuteWriteOperationAsync\u003Ed__79\u00601[System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0x98]\n        test     rax, rax\n-       jne      SHORT G_M26020_IG24\n\u002B       jne      SHORT G_M26020_IG21\n \t\t\t\t\t\t;; size=62 bbWeight=1 PerfScore 9.25\n-G_M26020_IG23:\n\u002BG_M26020_IG20:\n        lea      rdi, [rbp-0x98]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M26020_IG24:\n\u002BG_M26020_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M26020_IG25:\n-       add      rsp, 232\n\u002BG_M26020_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -284,13 \u002B264,13 @@ G_M26020_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M26020_IG26:\n\u002BG_M26020_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M26020_IG27:\n\u002BG_M26020_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -303,5 \u002B283,5 @@ G_M26020_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 844, prolog size 62, PerfScore 125.90, instruction count 188, allocated bytes for code 844 (MethodHash=c5e29a5b) for method MongoDB.Driver.MongoDatabase:AggregateToCollectionAsync[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 781, prolog size 62, PerfScore 116.52, instruction count 174, allocated bytes for code 781 (MethodHash=c5e29a5b) for method MongoDB.Driver.MongoDatabase:AggregateToCollectionAsync[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":844,"DiffBytes":781},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase:AggregateToCollectionAsync[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"844 -\u003E 781 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,21 \u002B9,21 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T01] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoDatabase\u003E\n-;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T03] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,double]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V10 tmp1         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.NoPipelineInputSerializer\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n-;  V12 tmp3         [V12,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V12 tmp3         [V12,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V14 tmp5         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n-;  V15 tmp6         [V15,T05] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n\u002B;  V15 tmp6         [V15,T04] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n ;* V16 tmp7         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V17 tmp8         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V18 tmp9         [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -36,29 \u002B36,29 @@\n ;* V25 tmp16        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp18        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp19        [V28,T13] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp20        [V29,T03] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp21        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp22        [V31,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp23        [V32,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp19        [V28,T12] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp20        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp21        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp22        [V31,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp24        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp25        [V34,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp26        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp27        [V36,T19] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp27        [V36,T18] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;  V37 tmp28        [V37    ] ( 12, 11.50)  struct (96) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoDatabase\u002B\u003CExecuteWriteOperationAsync\u003Ed__79\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V38 tmp29        [V38    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V39 tmp30        [V39,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V40 tmp31        [V40,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V41 tmp32        [V41,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V43 tmp34        [V43,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V43 tmp34        [V43,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V46 tmp37        [V46,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V20._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V20._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V48 tmp39        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V38.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M64900_IG01:\n        push     rbp\n@@ -67,8 \u002B67,8 @@ G_M64900_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -139,90 \u002B139,70 @@ G_M64900_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,double]:Render(MongoDB.Driver.RenderArgs\u00601[System.__Canon]):MongoDB.Driver.RenderedPipelineDefinition\u00601[double]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M64900_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M64900_IG06\n-\t\t\t\t\t\t;; size=203 bbWeight=1 PerfScore 45.75\n-G_M64900_IG05:\n-       lea      rsi, [rbp-0x68]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M64900_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M64900_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M64900_IG23\n        lea      rdx, [rbp-0x68]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M64900_IG07:\n        test     rax, rax\n-       je       SHORT G_M64900_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M64900_IG08:\n\u002B       je       SHORT G_M64900_IG06\n\u002B\t\t\t\t\t\t;; size=197 bbWeight=1 PerfScore 45.00\n\u002BG_M64900_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M64900_IG10\n\u002B       jmp      SHORT G_M64900_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M64900_IG09:\n\u002BG_M64900_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M64900_IG10:\n\u002BG_M64900_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M64900_IG14\n\u002B       je       SHORT G_M64900_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M64900_IG11:\n\u002BG_M64900_IG08:\n        test     rax, rax\n-       je       SHORT G_M64900_IG15\n\u002B       je       SHORT G_M64900_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M64900_IG12:\n\u002BG_M64900_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M64900_IG15\n\u002B       jne      SHORT G_M64900_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M64900_IG13:\n\u002BG_M64900_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M64900_IG15\n\u002B       je       SHORT G_M64900_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M64900_IG14:\n\u002BG_M64900_IG11:\n        mov      edi, 1\n-       jmp      SHORT G_M64900_IG21\n\u002B       jmp      SHORT G_M64900_IG18\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M64900_IG15:\n\u002BG_M64900_IG12:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M64900_IG20\n\u002B       je       SHORT G_M64900_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M64900_IG16:\n\u002BG_M64900_IG13:\n        test     rax, rax\n-       je       SHORT G_M64900_IG18\n\u002B       je       SHORT G_M64900_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M64900_IG17:\n\u002BG_M64900_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M64900_IG19\n\u002B       je       SHORT G_M64900_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M64900_IG18:\n\u002BG_M64900_IG15:\n        xor      edi, edi\n-       jmp      SHORT G_M64900_IG21\n\u002B       jmp      SHORT G_M64900_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M64900_IG19:\n\u002BG_M64900_IG16:\n        mov      rdi, 0xD1FFAB1E\n        xor      rdi, qword ptr [rax\u002B0x0C]\n        mov      esi, dword ptr [rax\u002B0x14]\n@@ -230,14 \u002B210,14 @@ G_M64900_IG19:\n        or       rdi, rsi\n        sete     dil\n        movzx    rdi, dil\n-       jmp      SHORT G_M64900_IG21\n\u002B       jmp      SHORT G_M64900_IG18\n \t\t\t\t\t\t;; size=36 bbWeight=0.06 PerfScore 0.47\n-G_M64900_IG20:\n\u002BG_M64900_IG17:\n        mov      edi, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M64900_IG21:\n\u002BG_M64900_IG18:\n        test     edi, edi\n-       je       G_M64900_IG27\n\u002B       je       G_M64900_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -253,7 \u002B233,7 @@ G_M64900_IG21:\n        mov      byte  ptr [rbp-0x90], sil\n        mov      qword ptr [rbp-0x88], rdi\n \t\t\t\t\t\t;; size=82 bbWeight=1 PerfScore 15.50\n-G_M64900_IG22:\n\u002BG_M64900_IG19:\n        mov      gword ptr [rbp-0xB0], rcx\n        mov      gword ptr [rbp-0x80], r12\n        mov      dword ptr [rbp-0xA0], -1\n@@ -263,19 \u002B243,19 @@ G_M64900_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoDatabase\u002B\u003CExecuteWriteOperationAsync\u003Ed__79\u00601[System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0x98]\n        test     rax, rax\n-       jne      SHORT G_M64900_IG24\n\u002B       jne      SHORT G_M64900_IG21\n \t\t\t\t\t\t;; size=62 bbWeight=1 PerfScore 9.25\n-G_M64900_IG23:\n\u002BG_M64900_IG20:\n        lea      rdi, [rbp-0x98]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M64900_IG24:\n\u002BG_M64900_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M64900_IG25:\n-       add      rsp, 232\n\u002BG_M64900_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -284,13 \u002B264,13 @@ G_M64900_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M64900_IG26:\n\u002BG_M64900_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M64900_IG27:\n\u002BG_M64900_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -303,5 \u002B283,5 @@ G_M64900_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 844, prolog size 62, PerfScore 125.90, instruction count 188, allocated bytes for code 844 (MethodHash=b9d3027b) for method MongoDB.Driver.MongoDatabase:AggregateToCollectionAsync[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 781, prolog size 62, PerfScore 116.52, instruction count 174, allocated bytes for code 781 (MethodHash=b9d3027b) for method MongoDB.Driver.MongoDatabase:AggregateToCollectionAsync[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":844,"DiffBytes":781},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase:AggregateToCollectionAsync[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"844 -\u003E 781 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,21 \u002B9,21 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T01] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoDatabase\u003E\n-;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T03] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,int]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V10 tmp1         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.NoPipelineInputSerializer\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n-;  V12 tmp3         [V12,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V12 tmp3         [V12,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V14 tmp5         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n-;  V15 tmp6         [V15,T05] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n\u002B;  V15 tmp6         [V15,T04] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n ;* V16 tmp7         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V17 tmp8         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V18 tmp9         [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -36,29 \u002B36,29 @@\n ;* V25 tmp16        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp18        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp19        [V28,T13] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp20        [V29,T03] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp21        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp22        [V31,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp23        [V32,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp19        [V28,T12] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp20        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp21        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp22        [V31,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp24        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp25        [V34,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp26        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp27        [V36,T19] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp27        [V36,T18] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;  V37 tmp28        [V37    ] ( 12, 11.50)  struct (96) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoDatabase\u002B\u003CExecuteWriteOperationAsync\u003Ed__79\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V38 tmp29        [V38    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V39 tmp30        [V39,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V40 tmp31        [V40,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V41 tmp32        [V41,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V43 tmp34        [V43,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V43 tmp34        [V43,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V46 tmp37        [V46,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V20._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V20._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V48 tmp39        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V38.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M64356_IG01:\n        push     rbp\n@@ -67,8 \u002B67,8 @@ G_M64356_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -139,90 \u002B139,70 @@ G_M64356_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,int]:Render(MongoDB.Driver.RenderArgs\u00601[System.__Canon]):MongoDB.Driver.RenderedPipelineDefinition\u00601[int]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M64356_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M64356_IG06\n-\t\t\t\t\t\t;; size=203 bbWeight=1 PerfScore 45.75\n-G_M64356_IG05:\n-       lea      rsi, [rbp-0x68]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M64356_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M64356_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M64356_IG23\n        lea      rdx, [rbp-0x68]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M64356_IG07:\n        test     rax, rax\n-       je       SHORT G_M64356_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M64356_IG08:\n\u002B       je       SHORT G_M64356_IG06\n\u002B\t\t\t\t\t\t;; size=197 bbWeight=1 PerfScore 45.00\n\u002BG_M64356_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M64356_IG10\n\u002B       jmp      SHORT G_M64356_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M64356_IG09:\n\u002BG_M64356_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M64356_IG10:\n\u002BG_M64356_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M64356_IG14\n\u002B       je       SHORT G_M64356_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M64356_IG11:\n\u002BG_M64356_IG08:\n        test     rax, rax\n-       je       SHORT G_M64356_IG15\n\u002B       je       SHORT G_M64356_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M64356_IG12:\n\u002BG_M64356_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M64356_IG15\n\u002B       jne      SHORT G_M64356_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M64356_IG13:\n\u002BG_M64356_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M64356_IG15\n\u002B       je       SHORT G_M64356_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M64356_IG14:\n\u002BG_M64356_IG11:\n        mov      edi, 1\n-       jmp      SHORT G_M64356_IG21\n\u002B       jmp      SHORT G_M64356_IG18\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M64356_IG15:\n\u002BG_M64356_IG12:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M64356_IG20\n\u002B       je       SHORT G_M64356_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M64356_IG16:\n\u002BG_M64356_IG13:\n        test     rax, rax\n-       je       SHORT G_M64356_IG18\n\u002B       je       SHORT G_M64356_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M64356_IG17:\n\u002BG_M64356_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M64356_IG19\n\u002B       je       SHORT G_M64356_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M64356_IG18:\n\u002BG_M64356_IG15:\n        xor      edi, edi\n-       jmp      SHORT G_M64356_IG21\n\u002B       jmp      SHORT G_M64356_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M64356_IG19:\n\u002BG_M64356_IG16:\n        mov      rdi, 0xD1FFAB1E\n        xor      rdi, qword ptr [rax\u002B0x0C]\n        mov      esi, dword ptr [rax\u002B0x14]\n@@ -230,14 \u002B210,14 @@ G_M64356_IG19:\n        or       rdi, rsi\n        sete     dil\n        movzx    rdi, dil\n-       jmp      SHORT G_M64356_IG21\n\u002B       jmp      SHORT G_M64356_IG18\n \t\t\t\t\t\t;; size=36 bbWeight=0.06 PerfScore 0.47\n-G_M64356_IG20:\n\u002BG_M64356_IG17:\n        mov      edi, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M64356_IG21:\n\u002BG_M64356_IG18:\n        test     edi, edi\n-       je       G_M64356_IG27\n\u002B       je       G_M64356_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -253,7 \u002B233,7 @@ G_M64356_IG21:\n        mov      byte  ptr [rbp-0x90], sil\n        mov      qword ptr [rbp-0x88], rdi\n \t\t\t\t\t\t;; size=82 bbWeight=1 PerfScore 15.50\n-G_M64356_IG22:\n\u002BG_M64356_IG19:\n        mov      gword ptr [rbp-0xB0], rcx\n        mov      gword ptr [rbp-0x80], r12\n        mov      dword ptr [rbp-0xA0], -1\n@@ -263,19 \u002B243,19 @@ G_M64356_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoDatabase\u002B\u003CExecuteWriteOperationAsync\u003Ed__79\u00601[System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0x98]\n        test     rax, rax\n-       jne      SHORT G_M64356_IG24\n\u002B       jne      SHORT G_M64356_IG21\n \t\t\t\t\t\t;; size=62 bbWeight=1 PerfScore 9.25\n-G_M64356_IG23:\n\u002BG_M64356_IG20:\n        lea      rdi, [rbp-0x98]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M64356_IG24:\n\u002BG_M64356_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M64356_IG25:\n-       add      rsp, 232\n\u002BG_M64356_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -284,13 \u002B264,13 @@ G_M64356_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M64356_IG26:\n\u002BG_M64356_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M64356_IG27:\n\u002BG_M64356_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -303,5 \u002B283,5 @@ G_M64356_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 844, prolog size 62, PerfScore 125.90, instruction count 188, allocated bytes for code 844 (MethodHash=204e049b) for method MongoDB.Driver.MongoDatabase:AggregateToCollectionAsync[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 781, prolog size 62, PerfScore 116.52, instruction count 174, allocated bytes for code 781 (MethodHash=204e049b) for method MongoDB.Driver.MongoDatabase:AggregateToCollectionAsync[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":844,"DiffBytes":781},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase:AggregateToCollectionAsync[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"844 -\u003E 781 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,21 \u002B9,21 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T01] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoDatabase\u003E\n-;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T03] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,long]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V10 tmp1         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.NoPipelineInputSerializer\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n-;  V12 tmp3         [V12,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V12 tmp3         [V12,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V14 tmp5         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n-;  V15 tmp6         [V15,T05] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n\u002B;  V15 tmp6         [V15,T04] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n ;* V16 tmp7         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V17 tmp8         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V18 tmp9         [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -36,29 \u002B36,29 @@\n ;* V25 tmp16        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp18        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp19        [V28,T13] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp20        [V29,T03] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp21        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp22        [V31,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp23        [V32,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp19        [V28,T12] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp20        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp21        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp22        [V31,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp24        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp25        [V34,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp26        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp27        [V36,T19] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp27        [V36,T18] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;  V37 tmp28        [V37    ] ( 12, 11.50)  struct (96) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoDatabase\u002B\u003CExecuteWriteOperationAsync\u003Ed__79\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V38 tmp29        [V38    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V39 tmp30        [V39,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V40 tmp31        [V40,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V41 tmp32        [V41,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V43 tmp34        [V43,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V43 tmp34        [V43,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V46 tmp37        [V46,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V20._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V20._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V48 tmp39        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V38.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M16548_IG01:\n        push     rbp\n@@ -67,8 \u002B67,8 @@ G_M16548_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -139,90 \u002B139,70 @@ G_M16548_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,long]:Render(MongoDB.Driver.RenderArgs\u00601[System.__Canon]):MongoDB.Driver.RenderedPipelineDefinition\u00601[long]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M16548_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M16548_IG06\n-\t\t\t\t\t\t;; size=203 bbWeight=1 PerfScore 45.75\n-G_M16548_IG05:\n-       lea      rsi, [rbp-0x68]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M16548_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M16548_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M16548_IG23\n        lea      rdx, [rbp-0x68]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M16548_IG07:\n        test     rax, rax\n-       je       SHORT G_M16548_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M16548_IG08:\n\u002B       je       SHORT G_M16548_IG06\n\u002B\t\t\t\t\t\t;; size=197 bbWeight=1 PerfScore 45.00\n\u002BG_M16548_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M16548_IG10\n\u002B       jmp      SHORT G_M16548_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M16548_IG09:\n\u002BG_M16548_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M16548_IG10:\n\u002BG_M16548_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M16548_IG14\n\u002B       je       SHORT G_M16548_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M16548_IG11:\n\u002BG_M16548_IG08:\n        test     rax, rax\n-       je       SHORT G_M16548_IG15\n\u002B       je       SHORT G_M16548_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M16548_IG12:\n\u002BG_M16548_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M16548_IG15\n\u002B       jne      SHORT G_M16548_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M16548_IG13:\n\u002BG_M16548_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M16548_IG15\n\u002B       je       SHORT G_M16548_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M16548_IG14:\n\u002BG_M16548_IG11:\n        mov      edi, 1\n-       jmp      SHORT G_M16548_IG21\n\u002B       jmp      SHORT G_M16548_IG18\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M16548_IG15:\n\u002BG_M16548_IG12:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M16548_IG20\n\u002B       je       SHORT G_M16548_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M16548_IG16:\n\u002BG_M16548_IG13:\n        test     rax, rax\n-       je       SHORT G_M16548_IG18\n\u002B       je       SHORT G_M16548_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M16548_IG17:\n\u002BG_M16548_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M16548_IG19\n\u002B       je       SHORT G_M16548_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M16548_IG18:\n\u002BG_M16548_IG15:\n        xor      edi, edi\n-       jmp      SHORT G_M16548_IG21\n\u002B       jmp      SHORT G_M16548_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M16548_IG19:\n\u002BG_M16548_IG16:\n        mov      rdi, 0xD1FFAB1E\n        xor      rdi, qword ptr [rax\u002B0x0C]\n        mov      esi, dword ptr [rax\u002B0x14]\n@@ -230,14 \u002B210,14 @@ G_M16548_IG19:\n        or       rdi, rsi\n        sete     dil\n        movzx    rdi, dil\n-       jmp      SHORT G_M16548_IG21\n\u002B       jmp      SHORT G_M16548_IG18\n \t\t\t\t\t\t;; size=36 bbWeight=0.06 PerfScore 0.47\n-G_M16548_IG20:\n\u002BG_M16548_IG17:\n        mov      edi, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M16548_IG21:\n\u002BG_M16548_IG18:\n        test     edi, edi\n-       je       G_M16548_IG27\n\u002B       je       G_M16548_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -253,7 \u002B233,7 @@ G_M16548_IG21:\n        mov      byte  ptr [rbp-0x90], sil\n        mov      qword ptr [rbp-0x88], rdi\n \t\t\t\t\t\t;; size=82 bbWeight=1 PerfScore 15.50\n-G_M16548_IG22:\n\u002BG_M16548_IG19:\n        mov      gword ptr [rbp-0xB0], rcx\n        mov      gword ptr [rbp-0x80], r12\n        mov      dword ptr [rbp-0xA0], -1\n@@ -263,19 \u002B243,19 @@ G_M16548_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoDatabase\u002B\u003CExecuteWriteOperationAsync\u003Ed__79\u00601[System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0x98]\n        test     rax, rax\n-       jne      SHORT G_M16548_IG24\n\u002B       jne      SHORT G_M16548_IG21\n \t\t\t\t\t\t;; size=62 bbWeight=1 PerfScore 9.25\n-G_M16548_IG23:\n\u002BG_M16548_IG20:\n        lea      rdi, [rbp-0x98]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M16548_IG24:\n\u002BG_M16548_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M16548_IG25:\n-       add      rsp, 232\n\u002BG_M16548_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -284,13 \u002B264,13 @@ G_M16548_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M16548_IG26:\n\u002BG_M16548_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M16548_IG27:\n\u002BG_M16548_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -303,5 \u002B283,5 @@ G_M16548_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 844, prolog size 62, PerfScore 125.90, instruction count 188, allocated bytes for code 844 (MethodHash=0d15bf5b) for method MongoDB.Driver.MongoDatabase:AggregateToCollectionAsync[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 781, prolog size 62, PerfScore 116.52, instruction count 174, allocated bytes for code 781 (MethodHash=0d15bf5b) for method MongoDB.Driver.MongoDatabase:AggregateToCollectionAsync[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":844,"DiffBytes":781},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase:AggregateToCollectionAsync[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)","Category":"improvement","Description":"844 -\u003E 781 bytes (-63)","ExtraInfo":null,"Diff":"@@ -9,21 \u002B9,21 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T01] (  5,  5   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoDatabase\u003E\n-;  V01 arg1         [V01,T04] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V01 arg1         [V01,T03] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;  V02 arg2         [V02,T02] (  5,  5   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,short]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T15] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n\u002B;  V05 loc0         [V05,T14] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n-;  V07 loc2         [V07,T16] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T14] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T15] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T13] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V10 tmp1         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.NoPipelineInputSerializer\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n-;  V12 tmp3         [V12,T22] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V12 tmp3         [V12,T21] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V14 tmp5         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n-;  V15 tmp6         [V15,T05] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n\u002B;  V15 tmp6         [V15,T04] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n ;* V16 tmp7         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V17 tmp8         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V18 tmp9         [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -36,29 \u002B36,29 @@\n ;* V25 tmp16        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp18        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp19        [V28,T13] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp20        [V29,T03] (  4,  7   )     ref  -\u003E  [rbp-0xD0]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp21        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp22        [V31,T11] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp23        [V32,T12] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp19        [V28,T12] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp20        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp21        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp22        [V31,T11] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp24        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp25        [V34,T06] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp26        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp27        [V36,T19] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp27        [V36,T18] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;  V37 tmp28        [V37    ] ( 12, 11.50)  struct (96) [rbp-0xC8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoDatabase\u002B\u003CExecuteWriteOperationAsync\u003Ed__79\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V38 tmp29        [V38    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;  V39 tmp30        [V39,T08] (  2,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Threading.Tasks.Task\u00601[System.__Canon]\u003E\n ;  V40 tmp31        [V40,T10] (  4,  3.50)     ref  -\u003E  rax        \n ;  V41 tmp32        [V41,T09] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V42 tmp33        [V42,T17] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V43 tmp34        [V43,T18] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V42 tmp33        [V42,T16] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V43 tmp34        [V43,T17] (  2,  2   )    long  -\u003E  rdi         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V46 tmp37        [V46,T20] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T21] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V20._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V46 tmp37        [V46,T19] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T20] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V20._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V48 tmp39        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V38.m_task (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 232\n\u002B; Lcl frame size = 216\n \n G_M43364_IG01:\n        push     rbp\n@@ -67,8 \u002B67,8 @@ G_M43364_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 232\n-       lea      rbp, [rsp\u002B0x110]\n\u002B       sub      rsp, 216\n\u002B       lea      rbp, [rsp\u002B0x100]\n        xor      eax, eax\n        mov      qword ptr [rbp-0xC8], rax\n        vxorps   xmm8, xmm8, xmm8\n@@ -139,90 \u002B139,70 @@ G_M43364_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,short]:Render(MongoDB.Driver.RenderArgs\u00601[System.__Canon]):MongoDB.Driver.RenderedPipelineDefinition\u00601[short]:this\n        mov      r14, rax\n-       mov      rax, gword ptr [r14\u002B0x08]\n-       mov      gword ptr [rbp-0xD0], rax\n-       test     rax, rax\n-       je       G_M43364_IG26\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M43364_IG06\n-\t\t\t\t\t\t;; size=203 bbWeight=1 PerfScore 45.75\n-G_M43364_IG05:\n-       lea      rsi, [rbp-0x68]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M43364_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M43364_IG06:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M43364_IG23\n        lea      rdx, [rbp-0x68]\n-       mov      rsi, gword ptr [rbp-0xD0]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 2.50\n-G_M43364_IG07:\n        test     rax, rax\n-       je       SHORT G_M43364_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M43364_IG08:\n\u002B       je       SHORT G_M43364_IG06\n\u002B\t\t\t\t\t\t;; size=197 bbWeight=1 PerfScore 45.00\n\u002BG_M43364_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M43364_IG10\n\u002B       jmp      SHORT G_M43364_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M43364_IG09:\n\u002BG_M43364_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M43364_IG10:\n\u002BG_M43364_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M43364_IG14\n\u002B       je       SHORT G_M43364_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M43364_IG11:\n\u002BG_M43364_IG08:\n        test     rax, rax\n-       je       SHORT G_M43364_IG15\n\u002B       je       SHORT G_M43364_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M43364_IG12:\n\u002BG_M43364_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M43364_IG15\n\u002B       jne      SHORT G_M43364_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M43364_IG13:\n\u002BG_M43364_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M43364_IG15\n\u002B       je       SHORT G_M43364_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M43364_IG14:\n\u002BG_M43364_IG11:\n        mov      edi, 1\n-       jmp      SHORT G_M43364_IG21\n\u002B       jmp      SHORT G_M43364_IG18\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M43364_IG15:\n\u002BG_M43364_IG12:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M43364_IG20\n\u002B       je       SHORT G_M43364_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M43364_IG16:\n\u002BG_M43364_IG13:\n        test     rax, rax\n-       je       SHORT G_M43364_IG18\n\u002B       je       SHORT G_M43364_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M43364_IG17:\n\u002BG_M43364_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M43364_IG19\n\u002B       je       SHORT G_M43364_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M43364_IG18:\n\u002BG_M43364_IG15:\n        xor      edi, edi\n-       jmp      SHORT G_M43364_IG21\n\u002B       jmp      SHORT G_M43364_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M43364_IG19:\n\u002BG_M43364_IG16:\n        mov      rdi, 0xD1FFAB1E\n        xor      rdi, qword ptr [rax\u002B0x0C]\n        mov      esi, dword ptr [rax\u002B0x14]\n@@ -230,14 \u002B210,14 @@ G_M43364_IG19:\n        or       rdi, rsi\n        sete     dil\n        movzx    rdi, dil\n-       jmp      SHORT G_M43364_IG21\n\u002B       jmp      SHORT G_M43364_IG18\n \t\t\t\t\t\t;; size=36 bbWeight=0.06 PerfScore 0.47\n-G_M43364_IG20:\n\u002BG_M43364_IG17:\n        mov      edi, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M43364_IG21:\n\u002BG_M43364_IG18:\n        test     edi, edi\n-       je       G_M43364_IG27\n\u002B       je       G_M43364_IG24\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rdx, rbx\n@@ -253,7 \u002B233,7 @@ G_M43364_IG21:\n        mov      byte  ptr [rbp-0x90], sil\n        mov      qword ptr [rbp-0x88], rdi\n \t\t\t\t\t\t;; size=82 bbWeight=1 PerfScore 15.50\n-G_M43364_IG22:\n\u002BG_M43364_IG19:\n        mov      gword ptr [rbp-0xB0], rcx\n        mov      gword ptr [rbp-0x80], r12\n        mov      dword ptr [rbp-0xA0], -1\n@@ -263,19 \u002B243,19 @@ G_M43364_IG22:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoDatabase\u002B\u003CExecuteWriteOperationAsync\u003Ed__79\u00601[System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0x98]\n        test     rax, rax\n-       jne      SHORT G_M43364_IG24\n\u002B       jne      SHORT G_M43364_IG21\n \t\t\t\t\t\t;; size=62 bbWeight=1 PerfScore 9.25\n-G_M43364_IG23:\n\u002BG_M43364_IG20:\n        lea      rdi, [rbp-0x98]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.00\n-G_M43364_IG24:\n\u002BG_M43364_IG21:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M43364_IG25:\n-       add      rsp, 232\n\u002BG_M43364_IG22:\n\u002B       add      rsp, 216\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -284,13 \u002B264,13 @@ G_M43364_IG25:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M43364_IG26:\n\u002BG_M43364_IG23:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M43364_IG27:\n\u002BG_M43364_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -303,5 \u002B283,5 @@ G_M43364_IG27:\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 844, prolog size 62, PerfScore 125.90, instruction count 188, allocated bytes for code 844 (MethodHash=fff1569b) for method MongoDB.Driver.MongoDatabase:AggregateToCollectionAsync[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n\u002B; Total bytes of code 781, prolog size 62, PerfScore 116.52, instruction count 174, allocated bytes for code 781 (MethodHash=fff1569b) for method MongoDB.Driver.MongoDatabase:AggregateToCollectionAsync[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":844,"DiffBytes":781},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase:AggregateToCollection[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,104 -\u003E 1,041 bytes (-63)","ExtraInfo":null,"Diff":"@@ -14,20 \u002B14,20 @@\n ;  V03 arg2         [V03,T04] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.__Canon]\u003E\n ;  V04 arg3         [V04,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T24] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n\u002B;  V06 loc0         [V06,T23] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n-;  V08 loc2         [V08,T25] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V09 loc3         [V09,T22] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V08 loc2         [V08,T24] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V09 loc3         [V09,T21] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V11 tmp1         [V11    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V12 tmp2         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.NoPipelineInputSerializer\u003E\n ;* V13 tmp3         [V13    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V14 tmp4         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V15 tmp5         [V15    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n-;  V16 tmp6         [V16,T31] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V16 tmp6         [V16,T30] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V17 tmp7         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V18 tmp8         [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n-;  V19 tmp9         [V19,T06] (  3,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n\u002B;  V19 tmp9         [V19,T05] (  3,  6   )     ref  -\u003E  r12         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n ;* V20 tmp10        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V21 tmp11        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V22 tmp12        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -40,17 \u002B40,17 @@\n ;* V29 tmp19        [V29    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V30 tmp20        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V31 tmp21        [V31    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V32 tmp22        [V32,T23] (  3,  2   )     int  -\u003E  rdi        \n-;  V33 tmp23        [V33,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V34 tmp24        [V34    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V35 tmp25        [V35,T20] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V36 tmp26        [V36,T21] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V32 tmp22        [V32,T22] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V33 tmp23        [V33,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V34 tmp24        [V34    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V35 tmp25        [V35,T20] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V36 tmp26        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V37 tmp27        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V38 tmp28        [V38,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V39 tmp29        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V40 tmp30        [V40,T28] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V40 tmp30        [V40,T27] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V41 tmp31        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V42 tmp32        [V42,T19] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V42 tmp32        [V42,T19] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V43 tmp33        [V43,T07] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V44 tmp34        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V45 tmp35        [V45,T10] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -59,13 \u002B59,13 @@\n ;* V48 tmp38        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V49 tmp39        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V50 tmp40        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n-;  V51 tmp41        [V51,T16] (  2,  2   )     ref  -\u003E  [rbp-0x88]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp42        [V52,T26] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V15.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V53 tmp43        [V53,T27] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V15.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp41        [V51,T16] (  2,  2   )     ref  -\u003E  [rbp-0x80]  single-def \u0022field V05._source (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp42        [V52,T25] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V15.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V53 tmp43        [V53,T26] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V15.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V54 tmp44        [V54    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V23._name (fldOffset=0x0)\u0022 P-DEP\n ;* V55 tmp45        [V55    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V23._value (fldOffset=0x8)\u0022 P-DEP\n-;  V56 tmp46        [V56,T29] (  2,  1   )     ref  -\u003E  rax         \u0022field V24._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V57 tmp47        [V57,T30] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V24._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V56 tmp46        [V56,T28] (  2,  1   )     ref  -\u003E  rax         \u0022field V24._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V57 tmp47        [V57,T29] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V24._value (fldOffset=0x8)\u0022 P-INDEP\n ;  V58 tmp48        [V58,T17] (  2,  4   )    long  -\u003E  rdi         \u0022argument with side effect\u0022\n ;  V59 tmp49        [V59,T18] (  2,  4   )    long  -\u003E  rsi         \u0022argument with side effect\u0022\n ;  V60 rat0         [V60,T14] (  3,  4   )    long  -\u003E  rdi         \u0022runtime lookup\u0022\n@@ -87,13 \u002B87,13 @@ G_M59073_IG01:\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        mov      qword ptr [rbp-0x30], rsi\n-       mov      gword ptr [rbp-0x88], r9\n\u002B       mov      gword ptr [rbp-0x80], r9\n        mov      r15, rdi\n        mov      r14, rsi\n        mov      r13, rdx\n        mov      r12, rcx\n        mov      rbx, r8\n-\t\t\t\t\t\t;; size=66 bbWeight=1 PerfScore 12.33\n\u002B\t\t\t\t\t\t;; size=63 bbWeight=1 PerfScore 12.33\n G_M59073_IG02:\n        mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.Core.Misc.Ensure:IsNotNull[MongoDB.Driver.IClientSessionHandle](MongoDB.Driver.IClientSessionHandle,System.String):MongoDB.Driver.IClientSessionHandle\n@@ -103,7 \u002B103,7 @@ G_M59073_IG02:\n        mov      rdi, qword ptr [r14\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M59073_IG30\n... diff truncated; middle omitted ...\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M59073_IG16\n\u002B       je       SHORT G_M59073_IG13\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M59073_IG15:\n\u002BG_M59073_IG12:\n        mov      edi, 1\n-       jmp      SHORT G_M59073_IG22\n\u002B       jmp      SHORT G_M59073_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M59073_IG16:\n\u002BG_M59073_IG13:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M59073_IG21\n\u002B       je       SHORT G_M59073_IG18\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M59073_IG17:\n\u002BG_M59073_IG14:\n        test     rax, rax\n-       je       SHORT G_M59073_IG19\n\u002B       je       SHORT G_M59073_IG16\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M59073_IG18:\n\u002BG_M59073_IG15:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M59073_IG20\n\u002B       je       SHORT G_M59073_IG17\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M59073_IG19:\n\u002BG_M59073_IG16:\n        xor      edi, edi\n-       jmp      SHORT G_M59073_IG22\n\u002B       jmp      SHORT G_M59073_IG19\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M59073_IG20:\n\u002BG_M59073_IG17:\n        mov      rdi, 0xD1FFAB1E\n        xor      rdi, qword ptr [rax\u002B0x0C]\n        mov      esi, dword ptr [rax\u002B0x14]\n@@ -247,20 \u002B227,20 @@ G_M59073_IG20:\n        or       rdi, rsi\n        sete     dil\n        movzx    rdi, dil\n-       jmp      SHORT G_M59073_IG22\n\u002B       jmp      SHORT G_M59073_IG19\n \t\t\t\t\t\t;; size=36 bbWeight=0.06 PerfScore 0.47\n-G_M59073_IG21:\n\u002BG_M59073_IG18:\n        mov      edi, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M59073_IG22:\n\u002BG_M59073_IG19:\n        test     edi, edi\n-       je       G_M59073_IG33\n\u002B       je       G_M59073_IG30\n        mov      rdi, qword ptr [r14\u002B0x18]\n        mov      rsi, qword ptr [rdi\u002B0x20]\n        test     rsi, rsi\n-       je       G_M59073_IG31\n\u002B       je       G_M59073_IG28\n \t\t\t\t\t\t;; size=25 bbWeight=1 PerfScore 6.50\n-G_M59073_IG23:\n\u002BG_M59073_IG20:\n        mov      rdi, r15\n        mov      rdx, r12\n        mov      rcx, rbx\n@@ -270,7 \u002B250,7 @@ G_M59073_IG23:\n        movzx    rdx, byte  ptr [rbx\u002B0x60]\n        mov      rcx, qword ptr [rbx\u002B0x68]\n        cmp      byte  ptr [r14], r14b\n-       mov      rbx, gword ptr [rbp-0x88]\n\u002B       mov      rbx, gword ptr [rbp-0x80]\n        mov      gword ptr [rsp], rbx\n        mov      rdi, r15\n        mov      rsi, r13\n@@ -278,9 \u002B258,9 @@ G_M59073_IG23:\n        xor      r9, r9\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoDatabase:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoDatabase:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n-\t\t\t\t\t\t;; size=81 bbWeight=1 PerfScore 17.50\n-G_M59073_IG24:\n\u002B       mov      gword ptr [rbp-0x78], rax\n\u002B\t\t\t\t\t\t;; size=78 bbWeight=1 PerfScore 17.50\n\u002BG_M59073_IG21:\n        mov      rbx, gword ptr [r15\u002B0x20]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -288,22 \u002B268,22 @@ G_M59073_IG24:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r13\n        mov      rcx, r14\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M59073_IG25:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M59073_IG28\n\u002BG_M59073_IG22:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M59073_IG25\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M59073_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M59073_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M59073_IG27\n\u002B       je       SHORT G_M59073_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -313,11 \u002B293,11 @@ G_M59073_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M59073_IG27:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M59073_IG24:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M59073_IG28\n\u002B       je       SHORT G_M59073_IG25\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -327,10 \u002B307,10 @@ G_M59073_IG27:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M59073_IG28:\n\u002BG_M59073_IG25:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M59073_IG29:\n\u002BG_M59073_IG26:\n        add      rsp, 152\n        pop      rbx\n        pop      r12\n@@ -340,7 \u002B320,7 @@ G_M59073_IG29:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M59073_IG30:\n\u002BG_M59073_IG27:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -348,21 \u002B328,21 @@ G_M59073_IG30:\n        mov      rdi, rax\n        jmp      G_M59073_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M59073_IG31:\n\u002BG_M59073_IG28:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M59073_IG23\n\u002B       jmp      G_M59073_IG20\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M59073_IG32:\n\u002BG_M59073_IG29:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M59073_IG33:\n\u002BG_M59073_IG30:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -374,16 \u002B354,16 @@ G_M59073_IG33:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M59073_IG34:\n\u002BG_M59073_IG31:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M59073_IG35:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M59073_IG37\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M59073_IG32:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M59073_IG34\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M59073_IG36\n\u002B       je       SHORT G_M59073_IG33\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -393,11 \u002B373,11 @@ G_M59073_IG35:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M59073_IG36:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M59073_IG33:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M59073_IG37\n\u002B       je       SHORT G_M59073_IG34\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -407,13 \u002B387,13 @@ G_M59073_IG36:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M59073_IG37:\n\u002BG_M59073_IG34:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M59073_IG38:\n\u002BG_M59073_IG35:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1104, prolog size 66, PerfScore 155.80, instruction count 263, allocated bytes for code 1104 (MethodHash=0622193e) for method MongoDB.Driver.MongoDatabase:AggregateToCollection[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 1041, prolog size 63, PerfScore 146.42, instruction count 249, allocated bytes for code 1041 (MethodHash=0622193e) for method MongoDB.Driver.MongoDatabase:AggregateToCollection[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1104,"DiffBytes":1041},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase:Aggregate[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)","Category":"improvement","Description":"1,850 -\u003E 1,787 bytes (-63)","ExtraInfo":null,"Diff":"@@ -14,17 \u002B14,17 @@\n ;  V03 arg2         [V03,T04] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.__Canon]\u003E\n ;  V04 arg3         [V04,T00] ( 12,  8   )     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V05 arg4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V06 loc0         [V06,T39] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n\u002B;  V06 loc0         [V06,T38] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n ;* V07 loc1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n-;  V08 loc2         [V08,T40] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V09 loc3         [V09,T46] (  3,  1.50)     ref  -\u003E  [rbp-0x80]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n-;  V10 loc4         [V10,T47] (  3,  1.50)     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.__Canon]\u003E\n\u002B;  V08 loc2         [V08,T39] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V09 loc3         [V09,T45] (  3,  1.50)     ref  -\u003E  [rbp-0x80]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V10 loc4         [V10,T46] (  3,  1.50)     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.__Canon]\u003E\n ;  V11 OutArgs      [V11    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V12 tmp1         [V12    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V13 tmp2         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.NoPipelineInputSerializer\u003E\n ;* V14 tmp3         [V14    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V15 tmp4         [V15    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V16 tmp5         [V16,T29] (  4,  2.20)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n\u002B;  V16 tmp5         [V16,T28] (  4,  2.20)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n ;* V17 tmp6         [V17    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V18 tmp7         [V18    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V19 tmp8         [V19    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n@@ -44,22 \u002B44,22 @@\n ;* V33 tmp22        [V33    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V34 tmp23        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V35 tmp24        [V35    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V36 tmp25        [V36,T33] (  3,  2   )     int  -\u003E  rdi        \n-;  V37 tmp26        [V37,T06] (  4,  7   )     ref  -\u003E  [rbp-0x88]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V38 tmp27        [V38    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V39 tmp28        [V39,T17] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V40 tmp29        [V40,T18] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V36 tmp25        [V36,T32] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V37 tmp26        [V37,T06] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V38 tmp27        [V38    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V39 tmp28        [V39,T17] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V40 tmp29        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V41 tmp30        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V42 tmp31        [V42,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V43 tmp32        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V44 tmp33        [V44,T45] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V44 tmp33        [V44,T44] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V45 tmp34        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V46 tmp35        [V46,T31] (  8,  2   )     ref  -\u003E  [rbp-0x90]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V47 tmp36        [V47,T19] (  3,  3   )     ref  -\u003E  [rbp-0x98]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V46 tmp35        [V46,T30] (  8,  2   )     ref  -\u003E  [rbp-0x88]  class-hnd exact EH-live single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V47 tmp36        [V47,T18] (  3,  3   )     ref  -\u003E  [rbp-0x90]  class-hnd spill-single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V48 tmp37        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V49 tmp38        [V49,T08] ( 10,  5   )     ref  -\u003E  [rbp-0xA0]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;  V49 tmp38        [V49,T08] ( 10,  5   )     ref  -\u003E  [rbp-0x98]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V50 tmp39        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V51 tmp40        [V51,T09] ( 10,  5   )     ref  -\u003E  [rbp-0xA8]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n\u002B;  V51 tmp40        [V51,T09] ( 10,  5   )     ref  -\u003E  [rbp-0xA0]  class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V52 tmp41        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V53 tmp42        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V54 tmp43        [V54    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -68,14 \u002B68,14 @@\n ;* V57 tmp46        [V57    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.__Canon]\u003E\n ;* V58 tmp47        [V58    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V59 tmp48        [V59    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V60 tmp49        [V60,T48] (  2,  1   )     ref  -\u003E  [rbp-0xB0]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n-;  V61 tmp50        [V61,T30] (  4,  2.20)    long  -\u003E  [rbp-0x78]  \u0022Inlining Arg\u0022\n\u002B;  V60 tmp49        [V60,T47] (  2,  1   )     ref  -\u003E  [rbp-0xA8]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.ReadPreference\u003E\n\u002B;  V61 tmp50        [V61,T29] (  4,  2.20)    long  -\u003E  [rbp-0x78]  \u0022Inlining Arg\u0022\n ;* V62 tmp51        [V62    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V63 tmp52        [V63,T32] (  8,  2   )     ref  -\u003E  [rbp-0xB8]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n-;  V64 tmp53        [V64,T20] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n\u002B;  V63 tmp52        [V63,T31] (  8,  2   )     ref  -\u003E  [rbp-0xB0]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V64 tmp53        [V64,T19] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V65 tmp54        [V65    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V66 tmp55        [V66,T49] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.__Canon]\u003E\n-;  V67 tmp56        [V67,T38] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoDatabaseSettings\u003E\n\u002B;  V66 tmp55        [V66,T48] (  2,  1   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.IAsyncCursor\u00601[System.__Canon]\u003E\n\u002B;  V67 tmp56        [V67,T37] (  2,  2   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoDatabaseSettings\u003E\n ;* V68 tmp57        [V68    ] (  0,  0   )   byref  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;  V69 tmp58        [V69,T10] ( 10,  5   )     ref  -\u003E  registers   class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n... diff truncated; middle omitted ...\n\u002B\t\t\t\t\t\t;; size=77 bbWeight=0.50 PerfScore 9.62\n\u002BG_M52990_IG37:\n\u002B       mov      rsi, gword ptr [rbp-0x88]\n\u002B       mov      rdi, gword ptr [rsi\u002B0x10]\n\u002B       mov      rax, rdi\n\u002B       test     rax, rax\n\u002B       je       SHORT G_M52990_IG38\n        mov      rdi, rax\n        mov      esi, 1\n        mov      gword ptr [rbp-0xA0], rax\n@@ -481,35 \u002B477,19 @@ G_M52990_IG39:\n        call     [rcx\u002B0x28]System.Threading.CancellationTokenSource:Dispose(bool):this\n        mov      rdi, gword ptr [rbp-0xA0]\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n-       call     [rax]System.GC:SuppressFinalize(System.Object)\n-\t\t\t\t\t\t;; size=77 bbWeight=0.50 PerfScore 9.62\n-G_M52990_IG40:\n-       mov      rsi, gword ptr [rbp-0x90]\n-       mov      rdi, gword ptr [rsi\u002B0x10]\n-       mov      rax, rdi\n-       test     rax, rax\n-       je       SHORT G_M52990_IG41\n-       mov      rdi, rax\n-       mov      esi, 1\n-       mov      gword ptr [rbp-0xA8], rax\n-       mov      rcx, qword ptr [rax]\n-       mov      rcx, qword ptr [rcx\u002B0x40]\n-       call     [rcx\u002B0x28]System.Threading.CancellationTokenSource:Dispose(bool):this\n-       mov      rdi, gword ptr [rbp-0xA8]\n-       mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 8.62\n-G_M52990_IG41:\n\u002BG_M52990_IG38:\n        mov      rdi, qword ptr [r14\u002B0x18]\n        cmp      qword ptr [rdi\u002B0x08], 56\n-       jle      SHORT G_M52990_IG45\n\u002B       jle      SHORT G_M52990_IG42\n \t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 2.50\n-G_M52990_IG42:\n\u002BG_M52990_IG39:\n        mov      rsi, qword ptr [rdi\u002B0x38]\n        test     rsi, rsi\n-       je       SHORT G_M52990_IG45\n\u002B       je       SHORT G_M52990_IG42\n \t\t\t\t\t\t;; size=9 bbWeight=0.40 PerfScore 1.30\n-G_M52990_IG43:\n\u002BG_M52990_IG40:\n        mov      rdi, r15\n        mov      rdx, r13\n        mov      rcx, r12\n@@ -518,8 \u002B498,8 @@ G_M52990_IG43:\n        call     [rax]MongoDB.Driver.MongoDatabase:CreateAggregateToCollectionResultCursor[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this\n        nop      \n \t\t\t\t\t\t;; size=25 bbWeight=0.50 PerfScore 2.25\n-G_M52990_IG44:\n-       add      rsp, 216\n\u002BG_M52990_IG41:\n\u002B       add      rsp, 200\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -528,15 \u002B508,15 @@ G_M52990_IG44:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 2.12\n-G_M52990_IG45:\n\u002BG_M52990_IG42:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      SHORT G_M52990_IG43\n\u002B       jmp      SHORT G_M52990_IG40\n \t\t\t\t\t\t;; size=30 bbWeight=0.18 PerfScore 1.08\n-G_M52990_IG46:\n\u002BG_M52990_IG43:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -544,53 \u002B524,53 @@ G_M52990_IG46:\n        mov      rdi, rax\n        jmp      G_M52990_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M52990_IG47:\n\u002BG_M52990_IG44:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M52990_IG37\n\u002B       jmp      G_M52990_IG34\n \t\t\t\t\t\t;; size=33 bbWeight=0.18 PerfScore 1.08\n-G_M52990_IG48:\n\u002BG_M52990_IG45:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rsi, rax\n-       jmp      G_M52990_IG24\n\u002B       jmp      G_M52990_IG21\n \t\t\t\t\t\t;; size=33 bbWeight=0.10 PerfScore 0.60\n-G_M52990_IG49:\n\u002BG_M52990_IG46:\n        mov      rdi, r14\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M52990_IG25\n\u002B       jmp      G_M52990_IG22\n \t\t\t\t\t\t;; size=33 bbWeight=0.10 PerfScore 0.60\n-G_M52990_IG50:\n\u002BG_M52990_IG47:\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      qword ptr [rbp-0x78], rax\n-       jmp      G_M52990_IG27\n\u002B       jmp      G_M52990_IG24\n \t\t\t\t\t\t;; size=31 bbWeight=0.10 PerfScore 0.65\n-G_M52990_IG51:\n\u002BG_M52990_IG48:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M52990_IG52:\n\u002BG_M52990_IG49:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M52990_IG53:\n-       cmp      gword ptr [rbp-0x90], 0\n-       je       SHORT G_M52990_IG55\n-       mov      rsi, gword ptr [rbp-0x90]\n\u002BG_M52990_IG50:\n\u002B       cmp      gword ptr [rbp-0x88], 0\n\u002B       je       SHORT G_M52990_IG52\n\u002B       mov      rsi, gword ptr [rbp-0x88]\n        mov      r14, gword ptr [rsi\u002B0x08]\n        test     r14, r14\n-       je       SHORT G_M52990_IG54\n\u002B       je       SHORT G_M52990_IG51\n        mov      rdi, r14\n        mov      esi, 1\n        mov      rax, qword ptr [r14]\n@@ -600,11 \u002B580,11 @@ G_M52990_IG53:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=59 bbWeight=0 PerfScore 0.00\n-G_M52990_IG54:\n-       mov      rsi, gword ptr [rbp-0x90]\n\u002BG_M52990_IG51:\n\u002B       mov      rsi, gword ptr [rbp-0x88]\n        mov      r15, gword ptr [rsi\u002B0x10]\n        test     r15, r15\n-       je       SHORT G_M52990_IG55\n\u002B       je       SHORT G_M52990_IG52\n        mov      rdi, r15\n        mov      esi, 1\n        mov      rax, qword ptr [r15]\n@@ -614,23 \u002B594,23 @@ G_M52990_IG54:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M52990_IG55:\n\u002BG_M52990_IG52:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M52990_IG56:\n\u002BG_M52990_IG53:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M52990_IG57:\n\u002BG_M52990_IG54:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M52990_IG58:\n-       cmp      gword ptr [rbp-0xB8], 0\n-       je       SHORT G_M52990_IG60\n-       mov      rsi, gword ptr [rbp-0xB8]\n\u002BG_M52990_IG55:\n\u002B       cmp      gword ptr [rbp-0xB0], 0\n\u002B       je       SHORT G_M52990_IG57\n\u002B       mov      rsi, gword ptr [rbp-0xB0]\n        mov      r13, gword ptr [rsi\u002B0x08]\n        test     r13, r13\n-       je       SHORT G_M52990_IG59\n\u002B       je       SHORT G_M52990_IG56\n        mov      rdi, r13\n        mov      esi, 1\n        mov      rax, qword ptr [r13]\n@@ -640,11 \u002B620,11 @@ G_M52990_IG58:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M52990_IG59:\n-       mov      rsi, gword ptr [rbp-0xB8]\n\u002BG_M52990_IG56:\n\u002B       mov      rsi, gword ptr [rbp-0xB0]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M52990_IG60\n\u002B       je       SHORT G_M52990_IG57\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -654,13 \u002B634,13 @@ G_M52990_IG59:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M52990_IG60:\n\u002BG_M52990_IG57:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M52990_IG61:\n\u002BG_M52990_IG58:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1850, prolog size 66, PerfScore 199.96, instruction count 425, allocated bytes for code 1850 (MethodHash=02c83101) for method MongoDB.Driver.MongoDatabase:Aggregate[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)\n\u002B; Total bytes of code 1787, prolog size 66, PerfScore 190.58, instruction count 411, allocated bytes for code 1787 (MethodHash=02c83101) for method MongoDB.Driver.MongoDatabase:Aggregate[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.__Canon],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1850,"DiffBytes":1787},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.Linq.Linq3Implementation.Translators.DiscriminatorAstFilter:TypeIs(MongoDB.Driver.Linq.Linq3Implementation.Ast.Filters.AstFilterField,MongoDB.Bson.Serialization.Conventions.IHierarchicalDiscriminatorConvention,System.Type,System.Type):MongoDB.Driver.Linq.Linq3Implementation.Ast.Filters.AstFieldOperationFilter (FullOpts)","Category":"improvement","Description":"467 -\u003E 406 bytes (-61)","ExtraInfo":null,"Diff":"@@ -14,37 \u002B14,36 @@\n ;  V03 arg3         [V03,T02] (  4,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Type\u003E\n ;  V04 loc0         [V04,T06] (  4,  3.50)     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Bson.BsonValue\u003E\n ;* V05 loc1         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Bson.BsonValue\u003E\n-;  V06 loc2         [V06,T07] (  4,  3   )     ref  -\u003E  rbx         class-hnd single-def \u003CMongoDB.Bson.BsonArray\u003E\n\u002B;  V06 loc2         [V06,T08] (  3,  2.50)     ref  -\u003E  rax         class-hnd single-def \u003CMongoDB.Bson.BsonArray\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V08 tmp1         [V08,T08] (  4,  3   )     ref  -\u003E  r13        \n-;  V09 tmp2         [V09,T11] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.NotSupportedException\u003E\n\u002B;  V08 tmp1         [V08,T07] (  4,  3   )     ref  -\u003E  rbx        \n\u002B;  V09 tmp2         [V09,T10] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.NotSupportedException\u003E\n ;* V10 tmp3         [V10    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n-;  V11 tmp4         [V11    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V11 tmp4         [V11    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V12 tmp5         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V13 tmp6         [V13,T10] (  3,  1.50)     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n-;  V14 tmp7         [V14,T09] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonValue]\u003E\n-;  V15 tmp8         [V15,T00] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Filters.AstComparisonFilterOperation\u003E\n-;  V16 tmp9         [V16,T01] (  3,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Filters.AstFieldOperationFilter\u003E\n-;  V17 tmp10        [V17,T12] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V18 tmp11        [V18,T13] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V19 tmp12        [V19,T14] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V13 tmp6         [V13,T09] (  2,  1   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n\u002B;* V14 tmp7         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonValue]\u003E\n\u002B;  V15 tmp8         [V15,T00] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Filters.AstComparisonFilterOperation\u003E\n\u002B;  V16 tmp9         [V16,T01] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Filters.AstFieldOperationFilter\u003E\n\u002B;  V17 tmp10        [V17,T11] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V18 tmp11        [V18,T12] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V19 tmp12        [V19,T13] (  2,  0   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;\n-; Lcl frame size = 16\n\u002B; Lcl frame size = 8\n \n G_M6807_IG01:\n        push     rbp\n        push     r15\n        push     r14\n-       push     r13\n        push     rbx\n-       sub      rsp, 16\n-       lea      rbp, [rsp\u002B0x30]\n\u002B       push     rax\n\u002B       lea      rbp, [rsp\u002B0x20]\n        xor      eax, eax\n-       mov      qword ptr [rbp-0x28], rax\n\u002B       mov      qword ptr [rbp-0x20], rax\n        mov      r15, rdi\n        mov      r11, rdx\n        mov      rbx, rcx\n-\t\t\t\t\t\t;; size=32 bbWeight=1 PerfScore 7.75\n\u002B\t\t\t\t\t\t;; size=27 bbWeight=1 PerfScore 7.50\n G_M6807_IG02:\n        mov      rdi, rsi\n        mov      rdx, rbx\n@@ -53,77 \u002B52,58 @@ G_M6807_IG02:\n        call     [r11]MongoDB.Bson.Serialization.Conventions.IDiscriminatorConvention:GetDiscriminator(System.Type,System.Type):MongoDB.Bson.BsonValue:this\n        mov      r14, rax\n        test     r14, r14\n-       je       G_M6807_IG09\n\u002B       je       G_M6807_IG07\n        mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonArray\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      rbx, rax\n-       test     rbx, rbx\n-       je       SHORT G_M6807_IG06\n-\t\t\t\t\t\t;; size=67 bbWeight=1 PerfScore 10.75\n-G_M6807_IG03:\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonValue]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n        je       SHORT G_M6807_IG04\n-       lea      rsi, [rbp-0x28]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       mov      r13, rax\n-       jmp      SHORT G_M6807_IG05\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 7.50\n-G_M6807_IG04:\n-       lea      rdx, [rbp-0x28]\n-       mov      rsi, rbx\n\u002B\t\t\t\t\t\t;; size=64 bbWeight=1 PerfScore 10.50\n\u002BG_M6807_IG03:\n\u002B       lea      rdx, [rbp-0x20]\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonValue](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonValue],byref):MongoDB.Bson.BsonValue\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      r13, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M6807_IG05:\n-       cmp      byte  ptr [rbp-0x28], 0\n-       je       G_M6807_IG10\n-       jmp      SHORT G_M6807_IG07\n-\t\t\t\t\t\t;; size=12 bbWeight=0.50 PerfScore 2.00\n-G_M6807_IG06:\n-       mov      r13, r14\n\u002B       mov      rbx, rax\n\u002B       cmp      byte  ptr [rbp-0x20], 0\n\u002B       je       G_M6807_IG08\n\u002B       jmp      SHORT G_M6807_IG05\n\u002B\t\t\t\t\t\t;; size=44 bbWeight=0.50 PerfScore 4.25\n\u002BG_M6807_IG04:\n\u002B       mov      rbx, r14\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M6807_IG07:\n\u002BG_M6807_IG05:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.Linq.Linq3Implementation.Ast.Filters.AstComparisonFilterOperation\n        call     CORINFO_HELP_NEWSFAST\n-       mov      rbx, rax\n\u002B       mov      r14, rax\n        xor      edi, edi\n-       mov      dword ptr [rbx\u002B0x10], edi\n-       test     r13, r13\n-       je       G_M6807_IG11\n-       lea      rdi, bword ptr [rbx\u002B0x08]\n-       mov      rsi, r13\n\u002B       mov      dword ptr [r14\u002B0x10], edi\n\u002B       test     rbx, rbx\n\u002B       je       G_M6807_IG09\n\u002B       lea      rdi, bword ptr [r14\u002B0x08]\n\u002B       mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.Linq.Linq3Implementation.Ast.Filters.AstFieldOperationFilter\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n-       mov      rdi, r14\n\u002B       mov      rbx, rax\n\u002B       mov      rdi, rbx\n        mov      rsi, r15\n-       mov      rdx, rbx\n\u002B       mov      rdx, r14\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Linq.Linq3Implementation.Ast.Filters.AstFieldOperationFilter:.ctor(MongoDB.Driver.Linq.Linq3Implementation.Ast.Filters.AstFilterField,MongoDB.Driver.Linq.Linq3Implementation.Ast.Filters.AstFilterOperation):this\n        call     [rax]MongoDB.Driver.Linq.Linq3Implementation.Ast.Filters.AstFieldOperationFilter:.ctor(MongoDB.Driver.Linq.Linq3Implementation.Ast.Filters.AstFilterField,MongoDB.Driver.Linq.Linq3Implementation.Ast.Filters.AstFilterOperation):this\n-       mov      rax, r14\n-\t\t\t\t\t\t;; size=86 bbWeight=1 PerfScore 11.50\n-G_M6807_IG08:\n-       add      rsp, 16\n\u002B       mov      rax, rbx\n\u002B\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 11.50\n\u002BG_M6807_IG06:\n\u002B       add      rsp, 8\n        pop      rbx\n-       pop      r13\n        pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n-G_M6807_IG09:\n\u002B\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n\u002BG_M6807_IG07:\n        mov      rdi, 0xD1FFAB1E      ; System.NotSupportedException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -143,12 \u002B123,12 @@ G_M6807_IG09:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=95 bbWeight=0 PerfScore 0.00\n-G_M6807_IG10:\n\u002BG_M6807_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M6807_IG11:\n\u002BG_M6807_IG09:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -162,5 \u002B142,5 @@ G_M6807_IG11:\n        int3     \n \t\t\t\t\t\t;; size=62 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 467, prolog size 23, PerfScore 45.62, instruction count 108, allocated bytes for code 467 (MethodHash=6aa3e568) for method MongoDB.Driver.Linq.Linq3Implementation.Translators.DiscriminatorAstFilter:TypeIs(MongoDB.Driver.Linq.Linq3Implementation.Ast.Filters.AstFilterField,MongoDB.Bson.Serialization.Conventions.IHierarchicalDiscriminatorConvention,System.Type,System.Type):MongoDB.Driver.Linq.Linq3Implementation.Ast.Filters.AstFieldOperationFilter (FullOpts)\n\u002B; Total bytes of code 406, prolog size 18, PerfScore 37.12, instruction count 92, allocated bytes for code 406 (MethodHash=6aa3e568) for method MongoDB.Driver.Linq.Linq3Implementation.Translators.DiscriminatorAstFilter:TypeIs(MongoDB.Driver.Linq.Linq3Implementation.Ast.Filters.AstFilterField,MongoDB.Bson.Serialization.Conventions.IHierarchicalDiscriminatorConvention,System.Type,System.Type):MongoDB.Driver.Linq.Linq3Implementation.Ast.Filters.AstFieldOperationFilter (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":467,"DiffBytes":406},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToExecutableQueryTranslators.Finalizers.FirstFinalizer\u00601[System.Numerics.Vector\u00601[float]]:Finalize(MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]],System.Threading.CancellationToken):System.Numerics.Vector\u00601[float]:this (FullOpts)","Category":"improvement","Description":"179 -\u003E 119 bytes (-60)","ExtraInfo":null,"Diff":"@@ -1,92 \u002B1,70 @@\n ; Assembly listing for method MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToExecutableQueryTranslators.Finalizers.FirstFinalizer\u00601[System.Numerics.Vector\u00601[float]]:Finalize(MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]],System.Threading.CancellationToken):System.Numerics.Vector\u00601[float]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;* V00 this         [V00    ] (  0,  0   )     ref  -\u003E  zero-ref    this class-hnd single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToExecutableQueryTranslators.Finalizers.FirstFinalizer\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V01 RetBuf       [V01,T01] (  4,  4   )    long  -\u003E  rbx         single-def\n\u002B;  V01 RetBuf       [V01,T00] (  4,  4   )    long  -\u003E  rbx         single-def\n ;  V02 arg1         [V02,T02] (  3,  3   )     ref  -\u003E  rdx         class-hnd single-def \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V03 arg2         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V05 tmp1         [V05,T00] (  4,  7   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V06 tmp2         [V06    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V05 tmp1         [V05,T01] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V06 tmp2         [V06    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x10]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V07 tmp3         [V07    ] (  0,  0   )  simd32  -\u003E  zero-ref   \n-;  V08 tmp4         [V08,T05] (  3,  2   )  simd32  -\u003E  [rbp-0x50]  do-not-enreg[DAS] defined-via-address \u0022Inline return value spill temp\u0022 \u003CSystem.Numerics.Vector\u00601[float]\u003E\n-;  V09 tmp5         [V09,T04] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V08 tmp4         [V08,T04] (  2,  2   )  simd32  -\u003E  [rbp-0x30]  do-not-enreg[DAS] defined-via-address \u0022Inline return value spill temp\u0022 \u003CSystem.Numerics.Vector\u00601[float]\u003E\n\u002B;* V09 tmp5         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V10 tmp6         [V10,T03] (  2,  2   )     ref  -\u003E  rcx         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 64\n\u002B; Lcl frame size = 40\n \n G_M38149_IG01:\n        push     rbp\n-       push     r15\n        push     rbx\n-       sub      rsp, 64\n-       lea      rbp, [rsp\u002B0x50]\n\u002B       sub      rsp, 40\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rsi\n-\t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 4.00\n\u002B\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 3.00\n G_M38149_IG02:\n        mov      rdi, rdx\n        mov      rsi, rcx\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.IAsyncCursorExtensions:ToList[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]],System.Threading.CancellationToken):System.Collections.Generic.List\u00601[System.Numerics.Vector\u00601[float]]\n        call     [rax]MongoDB.Driver.IAsyncCursorExtensions:ToList[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]],System.Threading.CancellationToken):System.Collections.Generic.List\u00601[System.Numerics.Vector\u00601[float]]\n-       mov      r15, rax\n-       test     r15, r15\n-       je       SHORT G_M38149_IG07\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Numerics.Vector\u00601[float]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n        je       SHORT G_M38149_IG04\n-\t\t\t\t\t\t;; size=56 bbWeight=1 PerfScore 10.25\n-G_M38149_IG03:\n-       lea      rdx, [rbp-0x18]\n-       lea      rsi, [rbp-0x50]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.Numerics.Vector\u00601[float]]:TryGetFirst(byref):System.Numerics.Vector\u00601[float]:this\n-       jmp      SHORT G_M38149_IG05\n-\t\t\t\t\t\t;; size=23 bbWeight=0.50 PerfScore 5.12\n-G_M38149_IG04:\n-       lea      rdi, [rbp-0x50]\n-       lea      rdx, [rbp-0x18]\n-       mov      rsi, r15\n\u002B       lea      rdi, [rbp-0x30]\n\u002B       lea      rdx, [rbp-0x10]\n\u002B       mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.Numerics.Vector\u00601[float]](System.Collections.Generic.IEnumerable\u00601[System.Numerics.Vector\u00601[float]],byref):System.Numerics.Vector\u00601[float]\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.Numerics.Vector\u00601[float]](System.Collections.Generic.IEnumerable\u00601[System.Numerics.Vector\u00601[float]],byref):System.Numerics.Vector\u00601[float]\n-\t\t\t\t\t\t;; size=23 bbWeight=0.50 PerfScore 2.25\n-G_M38149_IG05:\n-       cmp      byte  ptr [rbp-0x18], 0\n-       je       SHORT G_M38149_IG08\n-       vmovups  ymm0, ymmword ptr [rbp-0x50]\n\u002B       cmp      byte  ptr [rbp-0x10], 0\n\u002B       je       SHORT G_M38149_IG05\n\u002B       vmovups  ymm0, ymmword ptr [rbp-0x30]\n        vmovups  ymmword ptr [rbx], ymm0\n        mov      rax, rbx\n-\t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 5.25\n-G_M38149_IG06:\n\u002B\t\t\t\t\t\t;; size=64 bbWeight=1 PerfScore 14.75\n\u002BG_M38149_IG03:\n        vzeroupper \n-       add      rsp, 64\n\u002B       add      rsp, 40\n        pop      rbx\n-       pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=12 bbWeight=1 PerfScore 3.75\n-G_M38149_IG07:\n\u002B\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.25\n\u002BG_M38149_IG04:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M38149_IG08:\n\u002BG_M38149_IG05:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 179, prolog size 13, PerfScore 30.62, instruction count 49, allocated bytes for code 179 (MethodHash=2b876afa) for method MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToExecutableQueryTranslators.Finalizers.FirstFinalizer\u00601[System.Numerics.Vector\u00601[float]]:Finalize(MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]],System.Threading.CancellationToken):System.Numerics.Vector\u00601[float]:this (FullOpts)\n\u002B; Total bytes of code 119, prolog size 11, PerfScore 21.00, instruction count 33, allocated bytes for code 119 (MethodHash=2b876afa) for method MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToExecutableQueryTranslators.Finalizers.FirstFinalizer\u00601[System.Numerics.Vector\u00601[float]]:Finalize(MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]],System.Threading.CancellationToken):System.Numerics.Vector\u00601[float]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":179,"DiffBytes":119},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToExecutableQueryTranslators.Finalizers.FirstOrDefaultFinalizer\u00601[System.Numerics.Vector\u00601[float]]:Finalize(MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]],System.Threading.CancellationToken):System.Numerics.Vector\u00601[float]:this (FullOpts)","Category":"improvement","Description":"160 -\u003E 100 bytes (-60)","ExtraInfo":null,"Diff":"@@ -1,84 \u002B1,62 @@\n ; Assembly listing for method MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToExecutableQueryTranslators.Finalizers.FirstOrDefaultFinalizer\u00601[System.Numerics.Vector\u00601[float]]:Finalize(MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]],System.Threading.CancellationToken):System.Numerics.Vector\u00601[float]:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;* V00 this         [V00    ] (  0,  0   )     ref  -\u003E  zero-ref    this class-hnd single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToExecutableQueryTranslators.Finalizers.FirstOrDefaultFinalizer\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V01 RetBuf       [V01,T01] (  4,  4   )    long  -\u003E  rbx         single-def\n\u002B;  V01 RetBuf       [V01,T00] (  4,  4   )    long  -\u003E  rbx         single-def\n ;  V02 arg1         [V02,T02] (  3,  3   )     ref  -\u003E  rdx         class-hnd single-def \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V03 arg2         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V05 tmp1         [V05,T00] (  4,  7   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V06 tmp2         [V06    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V07 tmp3         [V07,T05] (  3,  2   )  simd32  -\u003E  [rbp-0x50]  do-not-enreg[DAS] defined-via-address \u0022Inline return value spill temp\u0022 \u003CSystem.Numerics.Vector\u00601[float]\u003E\n-;  V08 tmp4         [V08,T04] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V05 tmp1         [V05,T01] (  3,  6   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V06 tmp2         [V06    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x10]  do-not-enreg[X] addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V07 tmp3         [V07,T04] (  2,  2   )  simd32  -\u003E  [rbp-0x30]  do-not-enreg[DAS] defined-via-address \u0022Inline return value spill temp\u0022 \u003CSystem.Numerics.Vector\u00601[float]\u003E\n\u002B;* V08 tmp4         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V09 tmp5         [V09,T03] (  2,  2   )     ref  -\u003E  rcx         single-def \u0022field V03._source (fldOffset=0x0)\u0022 P-INDEP\n ;\n-; Lcl frame size = 64\n\u002B; Lcl frame size = 40\n \n G_M34803_IG01:\n        push     rbp\n-       push     r15\n        push     rbx\n-       sub      rsp, 64\n-       lea      rbp, [rsp\u002B0x50]\n\u002B       sub      rsp, 40\n\u002B       lea      rbp, [rsp\u002B0x30]\n        mov      rbx, rsi\n-\t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 4.00\n\u002B\t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 3.00\n G_M34803_IG02:\n        mov      rdi, rdx\n        mov      rsi, rcx\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.IAsyncCursorExtensions:ToList[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]],System.Threading.CancellationToken):System.Collections.Generic.List\u00601[System.Numerics.Vector\u00601[float]]\n        call     [rax]MongoDB.Driver.IAsyncCursorExtensions:ToList[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]],System.Threading.CancellationToken):System.Collections.Generic.List\u00601[System.Numerics.Vector\u00601[float]]\n-       mov      r15, rax\n-       test     r15, r15\n-       je       SHORT G_M34803_IG07\n-       mov      rsi, r15\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Numerics.Vector\u00601[float]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n        je       SHORT G_M34803_IG04\n-\t\t\t\t\t\t;; size=56 bbWeight=1 PerfScore 10.25\n-G_M34803_IG03:\n-       lea      rdx, [rbp-0x18]\n-       lea      rsi, [rbp-0x50]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.Numerics.Vector\u00601[float]]:TryGetFirst(byref):System.Numerics.Vector\u00601[float]:this\n-       jmp      SHORT G_M34803_IG05\n-\t\t\t\t\t\t;; size=23 bbWeight=0.50 PerfScore 5.12\n-G_M34803_IG04:\n-       lea      rdi, [rbp-0x50]\n-       lea      rdx, [rbp-0x18]\n-       mov      rsi, r15\n\u002B       lea      rdi, [rbp-0x30]\n\u002B       lea      rdx, [rbp-0x10]\n\u002B       mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.Numerics.Vector\u00601[float]](System.Collections.Generic.IEnumerable\u00601[System.Numerics.Vector\u00601[float]],byref):System.Numerics.Vector\u00601[float]\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.Numerics.Vector\u00601[float]](System.Collections.Generic.IEnumerable\u00601[System.Numerics.Vector\u00601[float]],byref):System.Numerics.Vector\u00601[float]\n-\t\t\t\t\t\t;; size=23 bbWeight=0.50 PerfScore 2.25\n-G_M34803_IG05:\n-       vmovups  ymm0, ymmword ptr [rbp-0x50]\n\u002B       vmovups  ymm0, ymmword ptr [rbp-0x30]\n        vmovups  ymmword ptr [rbx], ymm0\n        mov      rax, rbx\n-\t\t\t\t\t\t;; size=12 bbWeight=1 PerfScore 3.25\n-G_M34803_IG06:\n\u002B\t\t\t\t\t\t;; size=58 bbWeight=1 PerfScore 12.75\n\u002BG_M34803_IG03:\n        vzeroupper \n-       add      rsp, 64\n\u002B       add      rsp, 40\n        pop      rbx\n-       pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=12 bbWeight=1 PerfScore 3.75\n-G_M34803_IG07:\n\u002B\t\t\t\t\t\t;; size=10 bbWeight=1 PerfScore 3.25\n\u002BG_M34803_IG04:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 160, prolog size 13, PerfScore 28.62, instruction count 44, allocated bytes for code 160 (MethodHash=4890780c) for method MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToExecutableQueryTranslators.Finalizers.FirstOrDefaultFinalizer\u00601[System.Numerics.Vector\u00601[float]]:Finalize(MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]],System.Threading.CancellationToken):System.Numerics.Vector\u00601[float]:this (FullOpts)\n\u002B; Total bytes of code 100, prolog size 11, PerfScore 19.00, instruction count 28, allocated bytes for code 100 (MethodHash=4890780c) for method MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToExecutableQueryTranslators.Finalizers.FirstOrDefaultFinalizer\u00601[System.Numerics.Vector\u00601[float]]:Finalize(MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]],System.Threading.CancellationToken):System.Numerics.Vector\u00601[float]:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":160,"DiffBytes":100},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToFilterTranslators.MethodTranslators.StringExpressionToRegexFilterTranslator:TranslateStringIndexOfComparison(MongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,int,System.Linq.Expressions.Expression):MongoDB.Driver.Linq.Linq3Implementation.Ast.Filters.AstFilter (FullOpts)","Category":"improvement","Description":"5,078 -\u003E 5,019 bytes (-59)","ExtraInfo":null,"Diff":"@@ -14,30 \u002B14,30 @@\n ;  V03 arg3         [V03,T04] (  7,  4.50)     int  -\u003E  r15         single-def\n ;  V04 arg4         [V04,T16] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Linq.Expressions.Expression\u003E\n ;  V05 loc0         [V05,T03] (  9,  6.50)     ref  -\u003E  [rbp-0x1A0]  class-hnd spill-single-def \u003CSystem.Reflection.MethodInfo\u003E\n-;  V06 loc1         [V06,T19] (  8,  4.50)     ref  -\u003E  [rbp-0x1A8]  class-hnd spill-single-def \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V06 loc1         [V06,T20] (  7,  4   )     ref  -\u003E  [rbp-0x1A8]  class-hnd spill-single-def \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n ;* V07 loc2         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Linq.Expressions.Expression\u003E\n ;* V08 loc3         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Filters.AstFilterField\u003E\n-;  V09 loc4         [V09,T52] (  3,  2   )     ref  -\u003E  [rbp-0x1B0]  class-hnd \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToFilterTranslators.MethodTranslators.StringExpressionToRegexFilterTranslator\u002BModifiers\u003E\n\u002B;  V09 loc4         [V09,T51] (  3,  2   )     ref  -\u003E  [rbp-0x1B0]  class-hnd \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToFilterTranslators.MethodTranslators.StringExpressionToRegexFilterTranslator\u002BModifiers\u003E\n ;  V10 loc5         [V10,T06] ( 10,  5.50)     int  -\u003E  [rbp-0x2C] \n ;* V11 loc6         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u003CSystem.Nullable\u00601[int]\u003E\n ;  V12 loc7         [V12,T41] (  5,  3.50)     int  -\u003E  r13         single-def\n-;  V13 loc8         [V13,T117] (  3,  1   )     ref  -\u003E  [rbp-0x1B8]  class-hnd single-def \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V14 loc9         [V14,T118] (  3,  1   )     ref  -\u003E  [rbp-0x1C0]  class-hnd single-def \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;  V13 loc8         [V13,T115] (  3,  1   )     ref  -\u003E  [rbp-0x1B8]  class-hnd single-def \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;  V14 loc9         [V14,T116] (  3,  1   )     ref  -\u003E  [rbp-0x1C0]  class-hnd single-def \u003CSystem.Linq.Expressions.Expression\u003E\n ;* V15 loc10        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u003CSystem.Nullable\u00601[int]\u003E\n ;* V16 loc11        [V16    ] (  0,  0   )     int  -\u003E  zero-ref   \n ;  V17 loc12        [V17    ] ( 17,  0   )  struct (40) [rbp-0x58]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.DefaultInterpolatedStringHandler\u003E\n ;  V18 loc13        [V18,T50] (  4,  2   )     ref  -\u003E  [rbp-0x1C8]  class-hnd \u003Cchar[]\u003E\n ;  V19 loc14        [V19,T17] (  9,  4.50)     ref  -\u003E  [rbp-0x1D0]  class-hnd exact spill-single-def \u003CSystem.String\u003E\n ;  V20 loc15        [V20,T05] ( 11,  5.50)     ref  -\u003E  [rbp-0x1D8]  class-hnd \u003CSystem.String\u003E\n-;  V21 loc16        [V21,T107] (  3,  1.50)     int  -\u003E  r13         single-def\n-;  V22 loc17        [V22,T119] (  2,  1   )  ushort  -\u003E  [rbp-0x5C]  spill-single-def\n\u002B;  V21 loc16        [V21,T105] (  3,  1.50)     int  -\u003E  r13         single-def\n\u002B;  V22 loc17        [V22,T118] (  2,  1   )  ushort  -\u003E  [rbp-0x5C]  spill-single-def\n ;  V23 loc18        [V23    ] ( 22, 11   )  struct (40) [rbp-0x88]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.DefaultInterpolatedStringHandler\u003E\n ;  V24 loc19        [V24    ] ( 22, 11   )  struct (40) [rbp-0xB0]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.DefaultInterpolatedStringHandler\u003E\n ;  V25 loc20        [V25    ] ( 37, 18.50)  struct (40) [rbp-0xD8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.DefaultInterpolatedStringHandler\u003E\n-;  V26 loc21        [V26,T20] (  8,  4   )     ref  -\u003E  [rbp-0x1E0]  class-hnd exact spill-single-def \u003CSystem.String\u003E\n\u002B;  V26 loc21        [V26,T19] (  8,  4   )     ref  -\u003E  [rbp-0x1E0]  class-hnd exact spill-single-def \u003CSystem.String\u003E\n ;  V27 loc22        [V27,T18] (  9,  4.50)     ref  -\u003E  [rbp-0x1E8]  class-hnd \u003CSystem.String\u003E\n-;  V28 loc23        [V28,T108] (  3,  1.50)     int  -\u003E  [rbp-0xDC]  spill-single-def\n-;  V29 loc24        [V29,T109] (  3,  1.50)     int  -\u003E  r13         single-def\n\u002B;  V28 loc23        [V28,T106] (  3,  1.50)     int  -\u003E  [rbp-0xDC]  spill-single-def\n\u002B;  V29 loc24        [V29,T107] (  3,  1.50)     int  -\u003E  r13         single-def\n ;* V30 loc25        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CSystem.Linq.Expressions.Expression\u003E\n ;  V31 loc26        [V31    ] ( 22, 11   )  struct (40) [rbp-0x108]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.DefaultInterpolatedStringHandler\u003E\n ;  V32 loc27        [V32    ] ( 22, 11   )  struct (40) [rbp-0x130]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.DefaultInterpolatedStringHandler\u003E\n@@ -47,36 \u002B47,36 @@\n ;  V36 tmp1         [V36,T01] (  5, 10   )     ref  -\u003E  r12         class-hnd single-def \u0022dup spill\u0022 \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n ;* V37 tmp2         [V37    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest single-def \u0022Return value temp for multireg return\u0022 \u003CSystem.ValueTuple\u00602[MongoDB.Driver.Linq.Linq3Implementation.Ast.Filters.AstFilterField,MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToFilterTranslators.MethodTranslators.StringExpressionToRegexFilterTranslator\u002BModifiers]\u003E\n ;* V38 tmp3         [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Reflection.MethodInfoSet\u003E\n-;  V39 tmp4         [V39,T141] (  3,  0   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.ExpressionNotSupportedException\u003E\n-;  V40 tmp5         [V40,T142] (  3,  0   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.ExpressionNotSupportedException\u003E\n\u002B;  V39 tmp4         [V39,T140] (  3,  0   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.ExpressionNotSupportedException\u003E\n\u002B;  V40 tmp5         [V40,T141] (  3,  0   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.ExpressionNotSupportedException\u003E\n ;  V41 tmp6         [V41,T44] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022NewArr temp\u0022 \u003Cchar[]\u003E\n-;  V42 tmp7         [V42,T143] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.ExpressionNotSupportedException\u003E\n-;  V43 tmp8         [V43,T144] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.ExpressionNotSupportedException\u003E\n\u002B;  V42 tmp7         [V42,T142] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.ExpressionNotSupportedException\u003E\n\u002B;  V43 tmp8         [V43,T143] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.ExpressionNotSupportedException\u003E\n ;* V44 tmp9         [V44    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022impAppendStmt\u0022\n-;  V45 tmp10        [V45,T145] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.ExpressionNotSupportedException\u003E\n-;  V46 tmp11        [V46,T146] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.ExpressionNotSupportedException\u003E\n\u002B;  V45 tmp10        [V45,T144] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.ExpressionNotSupportedException\u003E\n\u002B;  V46 tmp11        [V46,T145] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.ExpressionNotSupportedException\u003E\n ;* V47 tmp12        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Reflection.MethodInfoSet\u003E\n ;* V48 tmp13        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Reflection.MethodInfoSet\u003E\n ;* V49 tmp14        [V49    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n ;* V50 tmp15        [V50    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;  V51 tmp16        [V51,T139] (  4,  0   )     int  -\u003E  rdi         \u0022Inlining Arg\u0022\n\u002B;  V51 tmp16        [V51,T138] (  4,  0   )     int  -\u003E  rdi         \u0022Inlining Arg\u0022\n ;* V52 tmp17        [V52    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Span\u00601[char]\u003E\n-;  V53 tmp18        [V53,T147] (  3,  0   )   byref  -\u003E  r14         single-def \u0022Inlining Arg\u0022\n-;  V54 tmp19        [V54,T150] (  2,  0   )     int  -\u003E  rsi         \u0022Inlining Arg\u0022\n-;* V55 tmp20        [V55,T151] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline stloc first use temp\u0022\n\u002B;  V53 tmp18        [V53,T146] (  3,  0   )   byref  -\u003E  r14         single-def \u0022Inlining Arg\u0022\n\u002B;  V54 tmp19        [V54,T149] (  2,  0   )     int  -\u003E  rsi         \u0022Inlining Arg\u0022\n... diff truncated; middle omitted ...\n@@ -1494,10 \u002B1478,10 @@ G_M1076_IG85:\n        mov      rcx, r13\n        mov      rax, gword ptr [rbp-0x1D0]\n \t\t\t\t\t\t;; size=54 bbWeight=0.50 PerfScore 4.88\n-G_M1076_IG86:\n\u002BG_M1076_IG84:\n        mov      r13, gword ptr [rbp-0x1C8]\n        cmp      dword ptr [r13\u002B0x08], 1\n-       je       SHORT G_M1076_IG87\n\u002B       je       SHORT G_M1076_IG85\n        mov      rdi, rcx\n        mov      rdx, rax\n        mov      rsi, 0xD1FFAB1E      ; \u0027[\u0027\n@@ -1505,16 \u002B1489,16 @@ G_M1076_IG86:\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Concat(System.String,System.String,System.String,System.String):System.String\n        call     [rax]System.String:Concat(System.String,System.String,System.String,System.String):System.String\n        mov      r13, rax\n-       jmp      SHORT G_M1076_IG88\n\u002B       jmp      SHORT G_M1076_IG86\n \t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 5.25\n-G_M1076_IG87:\n\u002BG_M1076_IG85:\n        mov      rdi, rcx\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Concat(System.String,System.String):System.String\n        call     [rax]System.String:Concat(System.String,System.String):System.String\n        mov      r13, rax\n \t\t\t\t\t\t;; size=21 bbWeight=0.50 PerfScore 2.00\n-G_M1076_IG88:\n\u002BG_M1076_IG86:\n        mov      rdi, r13\n        mov      rsi, 0xD1FFAB1E      ; \u0027.*\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.String:Concat(System.String,System.String):System.String\n@@ -1528,7 \u002B1512,7 @@ G_M1076_IG88:\n        call     [rax]MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToFilterTranslators.MethodTranslators.StringExpressionToRegexFilterTranslator:\u003CTranslateStringIndexOfComparison\u003Eg__CreateFilter|29_0(System.Linq.Expressions.Expression,MongoDB.Driver.Linq.Linq3Implementation.Ast.Filters.AstFilterField,MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToFilterTranslators.MethodTranslators.StringExpressionToRegexFilterTranslator\u002BModifiers,int,System.String):MongoDB.Driver.Linq.Linq3Implementation.Ast.Filters.AstFilter\n        nop      \n \t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 4.25\n-G_M1076_IG89:\n\u002BG_M1076_IG87:\n        vzeroupper \n        add      rsp, 456\n        pop      rbx\n@@ -1539,7 \u002B1523,7 @@ G_M1076_IG89:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=21 bbWeight=0.50 PerfScore 2.62\n-G_M1076_IG90:\n\u002BG_M1076_IG88:\n        mov      rbx, gword ptr [rbp-0x1B8]\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.Linq.ExpressionNotSupportedException\n        call     CORINFO_HELP_NEWSFAST\n@@ -1552,7 \u002B1536,7 @@ G_M1076_IG90:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M1076_IG91:\n\u002BG_M1076_IG89:\n        mov      rbx, gword ptr [rbp-0x1C0]\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.Linq.ExpressionNotSupportedException\n        call     CORINFO_HELP_NEWSFAST\n@@ -1565,7 \u002B1549,7 @@ G_M1076_IG91:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M1076_IG92:\n\u002BG_M1076_IG90:\n        lea      rdi, [rbp-0x58]\n        mov      esi, 37\n        mov      edx, 1\n@@ -1573,21 \u002B1557,21 @@ G_M1076_IG92:\n        call     [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:.ctor(int,int):this\n        mov      edi, dword ptr [rbp-0x48]\n        cmp      edi, dword ptr [rbp-0x38]\n-       jbe      SHORT G_M1076_IG94\n\u002B       jbe      SHORT G_M1076_IG92\n \t\t\t\t\t\t;; size=34 bbWeight=0 PerfScore 0.00\n-G_M1076_IG93:\n\u002BG_M1076_IG91:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()\n        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M1076_IG94:\n\u002BG_M1076_IG92:\n        mov      rsi, bword ptr [rbp-0x40]\n        mov      eax, edi\n        lea      r14, bword ptr [rsi\u002B2*rax]\n        mov      esi, dword ptr [rbp-0x38]\n        sub      esi, edi\n        cmp      esi, 20\n-       jb       SHORT G_M1076_IG95\n\u002B       jb       SHORT G_M1076_IG93\n        vmovups  ymm0, ymmword ptr [reloc @RWD00]\n        vmovups  ymmword ptr [r14], ymm0\n        mov      rdi, 0xD1FFAB1E\n@@ -1595,44 \u002B1579,44 @@ G_M1076_IG94:\n        mov      edi, dword ptr [rbp-0x48]\n        add      edi, 20\n        mov      dword ptr [rbp-0x48], edi\n-       jmp      SHORT G_M1076_IG96\n\u002B       jmp      SHORT G_M1076_IG94\n \t\t\t\t\t\t;; size=58 bbWeight=0 PerfScore 0.00\n-G_M1076_IG95:\n\u002BG_M1076_IG93:\n        lea      rdi, [rbp-0x58]\n        mov      rsi, 0xD1FFAB1E      ; \u0027comparison operator \u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this\n        call     [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this\n \t\t\t\t\t\t;; size=26 bbWeight=0 PerfScore 0.00\n-G_M1076_IG96:\n\u002BG_M1076_IG94:\n        lea      rdi, [rbp-0x58]\n        mov      esi, r15d\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this\n        call     [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this\n        mov      edi, dword ptr [rbp-0x48]\n        cmp      edi, dword ptr [rbp-0x38]\n-       ja       SHORT G_M1076_IG93\n\u002B       ja       SHORT G_M1076_IG91\n        mov      rsi, bword ptr [rbp-0x40]\n        mov      eax, edi\n        lea      r15, bword ptr [rsi\u002B2*rax]\n        mov      esi, dword ptr [rbp-0x38]\n        sub      esi, edi\n        cmp      esi, 17\n-       jb       SHORT G_M1076_IG97\n\u002B       jb       SHORT G_M1076_IG95\n        vmovups  ymm0, ymmword ptr [reloc @RWD32]\n        vmovups  ymmword ptr [r15], ymm0\n        mov      word  ptr [r15\u002B0x20], 100\n        mov      edi, dword ptr [rbp-0x48]\n        add      edi, 17\n        mov      dword ptr [rbp-0x48], edi\n-       jmp      SHORT G_M1076_IG98\n\u002B       jmp      SHORT G_M1076_IG96\n \t\t\t\t\t\t;; size=78 bbWeight=0 PerfScore 0.00\n-G_M1076_IG97:\n\u002BG_M1076_IG95:\n        lea      rdi, [rbp-0x58]\n        mov      rsi, 0xD1FFAB1E      ; \u0027 is not supported\u0027\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this\n        call     [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this\n \t\t\t\t\t\t;; size=26 bbWeight=0 PerfScore 0.00\n-G_M1076_IG98:\n\u002BG_M1076_IG96:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.Linq.ExpressionNotSupportedException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -1648,7 \u002B1632,7 @@ G_M1076_IG98:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=64 bbWeight=0 PerfScore 0.00\n-G_M1076_IG99:\n\u002BG_M1076_IG97:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.Linq.ExpressionNotSupportedException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -1661,7 \u002B1645,7 @@ G_M1076_IG99:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=55 bbWeight=0 PerfScore 0.00\n-G_M1076_IG100:\n\u002BG_M1076_IG98:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.Linq.ExpressionNotSupportedException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n@@ -1673,12 \u002B1657,12 @@ G_M1076_IG100:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=45 bbWeight=0 PerfScore 0.00\n-G_M1076_IG101:\n\u002BG_M1076_IG99:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M1076_IG102:\n\u002BG_M1076_IG100:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.Linq.ExpressionNotSupportedException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -1694,5 \u002B1678,5 @@ RWD00  \tdq\t0070006D006F0063h, 0073006900720061h, 006F0020006E006Fh, 006100720065\n RWD32  \tdq\t0020007300690020h, 00200074006F006Eh, 0070007000750073h, 006500740072006Fh\n \n \n-; Total bytes of code 5078, prolog size 79, PerfScore 467.40, instruction count 1041, allocated bytes for code 5078 (MethodHash=cf8cfbcb) for method MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToFilterTranslators.MethodTranslators.StringExpressionToRegexFilterTranslator:TranslateStringIndexOfComparison(MongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,int,System.Linq.Expressions.Expression):MongoDB.Driver.Linq.Linq3Implementation.Ast.Filters.AstFilter (FullOpts)\n\u002B; Total bytes of code 5019, prolog size 79, PerfScore 459.65, instruction count 1029, allocated bytes for code 5019 (MethodHash=cf8cfbcb) for method MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToFilterTranslators.MethodTranslators.StringExpressionToRegexFilterTranslator:TranslateStringIndexOfComparison(MongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,int,System.Linq.Expressions.Expression):MongoDB.Driver.Linq.Linq3Implementation.Ast.Filters.AstFilter (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":5078,"DiffBytes":5019},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollection[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M50939_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M50939_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M50939_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]:Render(MongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M50939_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M50939_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M50939_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M50939_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M50939_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M50939_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n... diff truncated; middle omitted ...\n        cmp      rax, rdi\n-       je       SHORT G_M50939_IG14\n\u002B       je       SHORT G_M50939_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M50939_IG11:\n\u002BG_M50939_IG08:\n        test     rax, rax\n-       je       SHORT G_M50939_IG15\n\u002B       je       SHORT G_M50939_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M50939_IG12:\n\u002BG_M50939_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M50939_IG15\n\u002B       jne      SHORT G_M50939_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M50939_IG13:\n\u002BG_M50939_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M50939_IG15\n\u002B       je       SHORT G_M50939_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M50939_IG14:\n\u002BG_M50939_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M50939_IG22\n\u002B       jmp      SHORT G_M50939_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M50939_IG15:\n\u002BG_M50939_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M50939_IG20\n\u002B       je       SHORT G_M50939_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M50939_IG16:\n\u002BG_M50939_IG13:\n        test     rax, rax\n-       je       SHORT G_M50939_IG18\n\u002B       je       SHORT G_M50939_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M50939_IG17:\n\u002BG_M50939_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M50939_IG19\n\u002B       je       SHORT G_M50939_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M50939_IG18:\n\u002BG_M50939_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M50939_IG21\n\u002B       jmp      SHORT G_M50939_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M50939_IG19:\n\u002BG_M50939_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M50939_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M50939_IG21\n\u002B       jmp      SHORT G_M50939_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M50939_IG20:\n\u002BG_M50939_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M50939_IG21:\n\u002BG_M50939_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M50939_IG22:\n\u002BG_M50939_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M50939_IG30\n\u002B       je       G_M50939_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M50939_IG30\n\u002B       je       G_M50939_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M50939_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M50939_IG23:\n\u002BG_M50939_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M50939_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M50939_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M50939_IG27\n\u002BG_M50939_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M50939_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M50939_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M50939_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M50939_IG26\n\u002B       je       SHORT G_M50939_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M50939_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M50939_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M50939_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M50939_IG27\n\u002B       je       SHORT G_M50939_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M50939_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M50939_IG27:\n\u002BG_M50939_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M50939_IG28:\n-       add      rsp, 152\n\u002BG_M50939_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M50939_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M50939_IG29:\n\u002BG_M50939_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M50939_IG30:\n\u002BG_M50939_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M50939_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M50939_IG31:\n\u002BG_M50939_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M50939_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M50939_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M50939_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M50939_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M50939_IG33\n\u002B       je       SHORT G_M50939_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M50939_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M50939_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M50939_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M50939_IG34\n\u002B       je       SHORT G_M50939_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M50939_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M50939_IG34:\n\u002BG_M50939_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M50939_IG35:\n\u002BG_M50939_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=6d553904) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollection[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=6d553904) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollection[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollection[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.Numerics.Vector\u00601[float]]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M58715_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M58715_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M58715_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.Numerics.Vector\u00601[float]]:Render(MongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M58715_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M58715_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M58715_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M58715_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M58715_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M58715_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n... diff truncated; middle omitted ...\n-       je       SHORT G_M58715_IG14\n\u002B       je       SHORT G_M58715_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M58715_IG11:\n\u002BG_M58715_IG08:\n        test     rax, rax\n-       je       SHORT G_M58715_IG15\n\u002B       je       SHORT G_M58715_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M58715_IG12:\n\u002BG_M58715_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M58715_IG15\n\u002B       jne      SHORT G_M58715_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M58715_IG13:\n\u002BG_M58715_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M58715_IG15\n\u002B       je       SHORT G_M58715_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M58715_IG14:\n\u002BG_M58715_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M58715_IG22\n\u002B       jmp      SHORT G_M58715_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M58715_IG15:\n\u002BG_M58715_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M58715_IG20\n\u002B       je       SHORT G_M58715_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M58715_IG16:\n\u002BG_M58715_IG13:\n        test     rax, rax\n-       je       SHORT G_M58715_IG18\n\u002B       je       SHORT G_M58715_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M58715_IG17:\n\u002BG_M58715_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M58715_IG19\n\u002B       je       SHORT G_M58715_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M58715_IG18:\n\u002BG_M58715_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M58715_IG21\n\u002B       jmp      SHORT G_M58715_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M58715_IG19:\n\u002BG_M58715_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M58715_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M58715_IG21\n\u002B       jmp      SHORT G_M58715_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M58715_IG20:\n\u002BG_M58715_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M58715_IG21:\n\u002BG_M58715_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M58715_IG22:\n\u002BG_M58715_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M58715_IG30\n\u002B       je       G_M58715_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M58715_IG30\n\u002B       je       G_M58715_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M58715_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M58715_IG23:\n\u002BG_M58715_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M58715_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M58715_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M58715_IG27\n\u002BG_M58715_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M58715_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M58715_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M58715_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M58715_IG26\n\u002B       je       SHORT G_M58715_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M58715_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M58715_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M58715_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M58715_IG27\n\u002B       je       SHORT G_M58715_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M58715_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M58715_IG27:\n\u002BG_M58715_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M58715_IG28:\n-       add      rsp, 152\n\u002BG_M58715_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M58715_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M58715_IG29:\n\u002BG_M58715_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M58715_IG30:\n\u002BG_M58715_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M58715_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M58715_IG31:\n\u002BG_M58715_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M58715_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M58715_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M58715_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M58715_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M58715_IG33\n\u002B       je       SHORT G_M58715_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M58715_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M58715_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M58715_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M58715_IG34\n\u002B       je       SHORT G_M58715_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M58715_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M58715_IG34:\n\u002BG_M58715_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M58715_IG35:\n\u002BG_M58715_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=c1a01aa4) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollection[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=c1a01aa4) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollection[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollection[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],byte]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M40955_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M40955_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M40955_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],byte]:Render(MongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]):MongoDB.Driver.RenderedPipelineDefinition\u00601[byte]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M40955_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M40955_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M40955_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M40955_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M40955_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M40955_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n-G_M40955_IG07:\n... diff truncated; middle omitted ...\n-G_M40955_IG10:\n\u002BG_M40955_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M40955_IG14\n\u002B       je       SHORT G_M40955_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M40955_IG11:\n\u002BG_M40955_IG08:\n        test     rax, rax\n-       je       SHORT G_M40955_IG15\n\u002B       je       SHORT G_M40955_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M40955_IG12:\n\u002BG_M40955_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M40955_IG15\n\u002B       jne      SHORT G_M40955_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M40955_IG13:\n\u002BG_M40955_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M40955_IG15\n\u002B       je       SHORT G_M40955_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M40955_IG14:\n\u002BG_M40955_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M40955_IG22\n\u002B       jmp      SHORT G_M40955_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M40955_IG15:\n\u002BG_M40955_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M40955_IG20\n\u002B       je       SHORT G_M40955_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M40955_IG16:\n\u002BG_M40955_IG13:\n        test     rax, rax\n-       je       SHORT G_M40955_IG18\n\u002B       je       SHORT G_M40955_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M40955_IG17:\n\u002BG_M40955_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M40955_IG19\n\u002B       je       SHORT G_M40955_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M40955_IG18:\n\u002BG_M40955_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M40955_IG21\n\u002B       jmp      SHORT G_M40955_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M40955_IG19:\n\u002BG_M40955_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M40955_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M40955_IG21\n\u002B       jmp      SHORT G_M40955_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M40955_IG20:\n\u002BG_M40955_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M40955_IG21:\n\u002BG_M40955_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M40955_IG22:\n\u002BG_M40955_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M40955_IG30\n\u002B       je       G_M40955_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M40955_IG30\n\u002B       je       G_M40955_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M40955_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M40955_IG23:\n\u002BG_M40955_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M40955_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M40955_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M40955_IG27\n\u002BG_M40955_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M40955_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M40955_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M40955_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M40955_IG26\n\u002B       je       SHORT G_M40955_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M40955_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M40955_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M40955_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M40955_IG27\n\u002B       je       SHORT G_M40955_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M40955_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M40955_IG27:\n\u002BG_M40955_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M40955_IG28:\n-       add      rsp, 152\n\u002BG_M40955_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M40955_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M40955_IG29:\n\u002BG_M40955_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M40955_IG30:\n\u002BG_M40955_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M40955_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M40955_IG31:\n\u002BG_M40955_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M40955_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M40955_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M40955_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M40955_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M40955_IG33\n\u002B       je       SHORT G_M40955_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M40955_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M40955_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M40955_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M40955_IG34\n\u002B       je       SHORT G_M40955_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M40955_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M40955_IG34:\n\u002BG_M40955_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M40955_IG35:\n\u002BG_M40955_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=0cc76004) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollection[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=0cc76004) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollection[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollection[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],double]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M54235_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M54235_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M54235_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],double]:Render(MongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]):MongoDB.Driver.RenderedPipelineDefinition\u00601[double]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M54235_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M54235_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M54235_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M54235_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M54235_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M54235_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n-G_M54235_IG07:\n... diff truncated; middle omitted ...\n-G_M54235_IG10:\n\u002BG_M54235_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M54235_IG14\n\u002B       je       SHORT G_M54235_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M54235_IG11:\n\u002BG_M54235_IG08:\n        test     rax, rax\n-       je       SHORT G_M54235_IG15\n\u002B       je       SHORT G_M54235_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M54235_IG12:\n\u002BG_M54235_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M54235_IG15\n\u002B       jne      SHORT G_M54235_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M54235_IG13:\n\u002BG_M54235_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M54235_IG15\n\u002B       je       SHORT G_M54235_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M54235_IG14:\n\u002BG_M54235_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M54235_IG22\n\u002B       jmp      SHORT G_M54235_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M54235_IG15:\n\u002BG_M54235_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M54235_IG20\n\u002B       je       SHORT G_M54235_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M54235_IG16:\n\u002BG_M54235_IG13:\n        test     rax, rax\n-       je       SHORT G_M54235_IG18\n\u002B       je       SHORT G_M54235_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M54235_IG17:\n\u002BG_M54235_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M54235_IG19\n\u002B       je       SHORT G_M54235_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M54235_IG18:\n\u002BG_M54235_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M54235_IG21\n\u002B       jmp      SHORT G_M54235_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M54235_IG19:\n\u002BG_M54235_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M54235_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M54235_IG21\n\u002B       jmp      SHORT G_M54235_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M54235_IG20:\n\u002BG_M54235_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M54235_IG21:\n\u002BG_M54235_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M54235_IG22:\n\u002BG_M54235_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M54235_IG30\n\u002B       je       G_M54235_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M54235_IG30\n\u002B       je       G_M54235_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M54235_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M54235_IG23:\n\u002BG_M54235_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M54235_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M54235_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M54235_IG27\n\u002BG_M54235_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M54235_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M54235_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M54235_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M54235_IG26\n\u002B       je       SHORT G_M54235_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M54235_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M54235_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M54235_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M54235_IG27\n\u002B       je       SHORT G_M54235_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M54235_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M54235_IG27:\n\u002BG_M54235_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M54235_IG28:\n-       add      rsp, 152\n\u002BG_M54235_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M54235_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M54235_IG29:\n\u002BG_M54235_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M54235_IG30:\n\u002BG_M54235_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M54235_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M54235_IG31:\n\u002BG_M54235_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M54235_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M54235_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M54235_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M54235_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M54235_IG33\n\u002B       je       SHORT G_M54235_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M54235_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M54235_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M54235_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M54235_IG34\n\u002B       je       SHORT G_M54235_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M54235_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M54235_IG34:\n\u002BG_M54235_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M54235_IG35:\n\u002BG_M54235_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=e3e52c24) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollection[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=e3e52c24) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollection[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollection[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],int]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M16027_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M16027_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M16027_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],int]:Render(MongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]):MongoDB.Driver.RenderedPipelineDefinition\u00601[int]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M16027_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M16027_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M16027_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M16027_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M16027_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M16027_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n-G_M16027_IG07:\n        test     rax, rax\n... diff truncated; middle omitted ...\n-G_M16027_IG10:\n\u002BG_M16027_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M16027_IG14\n\u002B       je       SHORT G_M16027_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M16027_IG11:\n\u002BG_M16027_IG08:\n        test     rax, rax\n-       je       SHORT G_M16027_IG15\n\u002B       je       SHORT G_M16027_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M16027_IG12:\n\u002BG_M16027_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M16027_IG15\n\u002B       jne      SHORT G_M16027_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M16027_IG13:\n\u002BG_M16027_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M16027_IG15\n\u002B       je       SHORT G_M16027_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M16027_IG14:\n\u002BG_M16027_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M16027_IG22\n\u002B       jmp      SHORT G_M16027_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M16027_IG15:\n\u002BG_M16027_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M16027_IG20\n\u002B       je       SHORT G_M16027_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M16027_IG16:\n\u002BG_M16027_IG13:\n        test     rax, rax\n-       je       SHORT G_M16027_IG18\n\u002B       je       SHORT G_M16027_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M16027_IG17:\n\u002BG_M16027_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M16027_IG19\n\u002B       je       SHORT G_M16027_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M16027_IG18:\n\u002BG_M16027_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M16027_IG21\n\u002B       jmp      SHORT G_M16027_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M16027_IG19:\n\u002BG_M16027_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M16027_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M16027_IG21\n\u002B       jmp      SHORT G_M16027_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M16027_IG20:\n\u002BG_M16027_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M16027_IG21:\n\u002BG_M16027_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M16027_IG22:\n\u002BG_M16027_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M16027_IG30\n\u002B       je       G_M16027_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M16027_IG30\n\u002B       je       G_M16027_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M16027_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M16027_IG23:\n\u002BG_M16027_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M16027_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M16027_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M16027_IG27\n\u002BG_M16027_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M16027_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M16027_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M16027_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M16027_IG26\n\u002B       je       SHORT G_M16027_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M16027_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M16027_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M16027_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M16027_IG27\n\u002B       je       SHORT G_M16027_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M16027_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M16027_IG27:\n\u002BG_M16027_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M16027_IG28:\n-       add      rsp, 152\n\u002BG_M16027_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M16027_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M16027_IG29:\n\u002BG_M16027_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M16027_IG30:\n\u002BG_M16027_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M16027_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M16027_IG31:\n\u002BG_M16027_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M16027_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M16027_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M16027_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M16027_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M16027_IG33\n\u002B       je       SHORT G_M16027_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M16027_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M16027_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M16027_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M16027_IG34\n\u002B       je       SHORT G_M16027_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M16027_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M16027_IG34:\n\u002BG_M16027_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M16027_IG35:\n\u002BG_M16027_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=68b4c164) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollection[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=68b4c164) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollection[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollection[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],long]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M57595_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M57595_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M57595_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],long]:Render(MongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]):MongoDB.Driver.RenderedPipelineDefinition\u00601[long]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M57595_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M57595_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M57595_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M57595_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M57595_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M57595_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n-G_M57595_IG07:\n... diff truncated; middle omitted ...\n-G_M57595_IG10:\n\u002BG_M57595_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M57595_IG14\n\u002B       je       SHORT G_M57595_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M57595_IG11:\n\u002BG_M57595_IG08:\n        test     rax, rax\n-       je       SHORT G_M57595_IG15\n\u002B       je       SHORT G_M57595_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M57595_IG12:\n\u002BG_M57595_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M57595_IG15\n\u002B       jne      SHORT G_M57595_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M57595_IG13:\n\u002BG_M57595_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M57595_IG15\n\u002B       je       SHORT G_M57595_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M57595_IG14:\n\u002BG_M57595_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M57595_IG22\n\u002B       jmp      SHORT G_M57595_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M57595_IG15:\n\u002BG_M57595_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M57595_IG20\n\u002B       je       SHORT G_M57595_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M57595_IG16:\n\u002BG_M57595_IG13:\n        test     rax, rax\n-       je       SHORT G_M57595_IG18\n\u002B       je       SHORT G_M57595_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M57595_IG17:\n\u002BG_M57595_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M57595_IG19\n\u002B       je       SHORT G_M57595_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M57595_IG18:\n\u002BG_M57595_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M57595_IG21\n\u002B       jmp      SHORT G_M57595_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M57595_IG19:\n\u002BG_M57595_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M57595_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M57595_IG21\n\u002B       jmp      SHORT G_M57595_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M57595_IG20:\n\u002BG_M57595_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M57595_IG21:\n\u002BG_M57595_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M57595_IG22:\n\u002BG_M57595_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M57595_IG30\n\u002B       je       G_M57595_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M57595_IG30\n\u002B       je       G_M57595_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M57595_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M57595_IG23:\n\u002BG_M57595_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M57595_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M57595_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M57595_IG27\n\u002BG_M57595_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M57595_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M57595_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M57595_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M57595_IG26\n\u002B       je       SHORT G_M57595_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M57595_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M57595_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M57595_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M57595_IG27\n\u002B       je       SHORT G_M57595_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M57595_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M57595_IG27:\n\u002BG_M57595_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M57595_IG28:\n-       add      rsp, 152\n\u002BG_M57595_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M57595_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M57595_IG29:\n\u002BG_M57595_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M57595_IG30:\n\u002BG_M57595_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M57595_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M57595_IG31:\n\u002BG_M57595_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M57595_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M57595_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M57595_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M57595_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M57595_IG33\n\u002B       je       SHORT G_M57595_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M57595_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M57595_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M57595_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M57595_IG34\n\u002B       je       SHORT G_M57595_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M57595_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M57595_IG34:\n\u002BG_M57595_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M57595_IG35:\n\u002BG_M57595_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=f4771f04) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollection[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=f4771f04) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollection[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollection[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],short]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M40667_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M40667_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M40667_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],short]:Render(MongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]):MongoDB.Driver.RenderedPipelineDefinition\u00601[short]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M40667_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M40667_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M40667_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M40667_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M40667_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M40667_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n-G_M40667_IG07:\n... diff truncated; middle omitted ...\n-G_M40667_IG10:\n\u002BG_M40667_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M40667_IG14\n\u002B       je       SHORT G_M40667_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M40667_IG11:\n\u002BG_M40667_IG08:\n        test     rax, rax\n-       je       SHORT G_M40667_IG15\n\u002B       je       SHORT G_M40667_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M40667_IG12:\n\u002BG_M40667_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M40667_IG15\n\u002B       jne      SHORT G_M40667_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M40667_IG13:\n\u002BG_M40667_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M40667_IG15\n\u002B       je       SHORT G_M40667_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M40667_IG14:\n\u002BG_M40667_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M40667_IG22\n\u002B       jmp      SHORT G_M40667_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M40667_IG15:\n\u002BG_M40667_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M40667_IG20\n\u002B       je       SHORT G_M40667_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M40667_IG16:\n\u002BG_M40667_IG13:\n        test     rax, rax\n-       je       SHORT G_M40667_IG18\n\u002B       je       SHORT G_M40667_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M40667_IG17:\n\u002BG_M40667_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M40667_IG19\n\u002B       je       SHORT G_M40667_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M40667_IG18:\n\u002BG_M40667_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M40667_IG21\n\u002B       jmp      SHORT G_M40667_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M40667_IG19:\n\u002BG_M40667_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M40667_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M40667_IG21\n\u002B       jmp      SHORT G_M40667_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M40667_IG20:\n\u002BG_M40667_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M40667_IG21:\n\u002BG_M40667_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M40667_IG22:\n\u002BG_M40667_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M40667_IG30\n\u002B       je       G_M40667_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M40667_IG30\n\u002B       je       G_M40667_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M40667_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M40667_IG23:\n\u002BG_M40667_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M40667_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M40667_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M40667_IG27\n\u002BG_M40667_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M40667_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M40667_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M40667_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M40667_IG26\n\u002B       je       SHORT G_M40667_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M40667_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M40667_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M40667_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M40667_IG27\n\u002B       je       SHORT G_M40667_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M40667_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M40667_IG27:\n\u002BG_M40667_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M40667_IG28:\n-       add      rsp, 152\n\u002BG_M40667_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M40667_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M40667_IG29:\n\u002BG_M40667_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M40667_IG30:\n\u002BG_M40667_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M40667_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M40667_IG31:\n\u002BG_M40667_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M40667_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M40667_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M40667_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M40667_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M40667_IG33\n\u002B       je       SHORT G_M40667_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M40667_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M40667_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M40667_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M40667_IG34\n\u002B       je       SHORT G_M40667_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M40667_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M40667_IG34:\n\u002BG_M40667_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M40667_IG35:\n\u002BG_M40667_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=00a26124) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollection[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=00a26124) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:AggregateToCollection[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollection[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M20987_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M20987_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M20987_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]]:Render(MongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M20987_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M20987_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M20987_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M20987_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M20987_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M20987_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n... diff truncated; middle omitted ...\n-       je       SHORT G_M20987_IG14\n\u002B       je       SHORT G_M20987_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M20987_IG11:\n\u002BG_M20987_IG08:\n        test     rax, rax\n-       je       SHORT G_M20987_IG15\n\u002B       je       SHORT G_M20987_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M20987_IG12:\n\u002BG_M20987_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M20987_IG15\n\u002B       jne      SHORT G_M20987_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M20987_IG13:\n\u002BG_M20987_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M20987_IG15\n\u002B       je       SHORT G_M20987_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M20987_IG14:\n\u002BG_M20987_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M20987_IG22\n\u002B       jmp      SHORT G_M20987_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M20987_IG15:\n\u002BG_M20987_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M20987_IG20\n\u002B       je       SHORT G_M20987_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M20987_IG16:\n\u002BG_M20987_IG13:\n        test     rax, rax\n-       je       SHORT G_M20987_IG18\n\u002B       je       SHORT G_M20987_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M20987_IG17:\n\u002BG_M20987_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M20987_IG19\n\u002B       je       SHORT G_M20987_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M20987_IG18:\n\u002BG_M20987_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M20987_IG21\n\u002B       jmp      SHORT G_M20987_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M20987_IG19:\n\u002BG_M20987_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M20987_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M20987_IG21\n\u002B       jmp      SHORT G_M20987_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M20987_IG20:\n\u002BG_M20987_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M20987_IG21:\n\u002BG_M20987_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M20987_IG22:\n\u002BG_M20987_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M20987_IG30\n\u002B       je       G_M20987_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M20987_IG30\n\u002B       je       G_M20987_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M20987_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M20987_IG23:\n\u002BG_M20987_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M20987_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M20987_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M20987_IG27\n\u002BG_M20987_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M20987_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M20987_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M20987_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M20987_IG26\n\u002B       je       SHORT G_M20987_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M20987_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M20987_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M20987_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M20987_IG27\n\u002B       je       SHORT G_M20987_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M20987_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M20987_IG27:\n\u002BG_M20987_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M20987_IG28:\n-       add      rsp, 152\n\u002BG_M20987_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M20987_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M20987_IG29:\n\u002BG_M20987_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M20987_IG30:\n\u002BG_M20987_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M20987_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M20987_IG31:\n\u002BG_M20987_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M20987_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M20987_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M20987_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M20987_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M20987_IG33\n\u002B       je       SHORT G_M20987_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M20987_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M20987_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M20987_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M20987_IG34\n\u002B       je       SHORT G_M20987_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M20987_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M20987_IG34:\n\u002BG_M20987_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M20987_IG35:\n\u002BG_M20987_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=032dae04) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollection[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=032dae04) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollection[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollection[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.Numerics.Vector\u00601[float]]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M33179_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M33179_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M33179_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.Numerics.Vector\u00601[float]]:Render(MongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M33179_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M33179_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M33179_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M33179_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M33179_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M33179_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n... diff truncated; middle omitted ...\n\u002B       je       SHORT G_M33179_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M33179_IG11:\n\u002BG_M33179_IG08:\n        test     rax, rax\n-       je       SHORT G_M33179_IG15\n\u002B       je       SHORT G_M33179_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M33179_IG12:\n\u002BG_M33179_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M33179_IG15\n\u002B       jne      SHORT G_M33179_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M33179_IG13:\n\u002BG_M33179_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M33179_IG15\n\u002B       je       SHORT G_M33179_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M33179_IG14:\n\u002BG_M33179_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M33179_IG22\n\u002B       jmp      SHORT G_M33179_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M33179_IG15:\n\u002BG_M33179_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M33179_IG20\n\u002B       je       SHORT G_M33179_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M33179_IG16:\n\u002BG_M33179_IG13:\n        test     rax, rax\n-       je       SHORT G_M33179_IG18\n\u002B       je       SHORT G_M33179_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M33179_IG17:\n\u002BG_M33179_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M33179_IG19\n\u002B       je       SHORT G_M33179_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M33179_IG18:\n\u002BG_M33179_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M33179_IG21\n\u002B       jmp      SHORT G_M33179_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M33179_IG19:\n\u002BG_M33179_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M33179_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M33179_IG21\n\u002B       jmp      SHORT G_M33179_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M33179_IG20:\n\u002BG_M33179_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M33179_IG21:\n\u002BG_M33179_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M33179_IG22:\n\u002BG_M33179_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M33179_IG30\n\u002B       je       G_M33179_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M33179_IG30\n\u002B       je       G_M33179_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M33179_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M33179_IG23:\n\u002BG_M33179_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M33179_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M33179_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M33179_IG27\n\u002BG_M33179_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M33179_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M33179_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M33179_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M33179_IG26\n\u002B       je       SHORT G_M33179_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M33179_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M33179_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M33179_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M33179_IG27\n\u002B       je       SHORT G_M33179_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M33179_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M33179_IG27:\n\u002BG_M33179_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M33179_IG28:\n-       add      rsp, 152\n\u002BG_M33179_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M33179_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M33179_IG29:\n\u002BG_M33179_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M33179_IG30:\n\u002BG_M33179_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M33179_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M33179_IG31:\n\u002BG_M33179_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M33179_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M33179_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M33179_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M33179_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M33179_IG33\n\u002B       je       SHORT G_M33179_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M33179_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M33179_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M33179_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M33179_IG34\n\u002B       je       SHORT G_M33179_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M33179_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M33179_IG34:\n\u002BG_M33179_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M33179_IG35:\n\u002BG_M33179_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=c63f7e64) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollection[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=c63f7e64) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollection[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollection[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],byte]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M58235_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M58235_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M58235_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],byte]:Render(MongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]):MongoDB.Driver.RenderedPipelineDefinition\u00601[byte]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M58235_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M58235_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M58235_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M58235_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M58235_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M58235_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n... diff truncated; middle omitted ...\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M58235_IG14\n\u002B       je       SHORT G_M58235_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M58235_IG11:\n\u002BG_M58235_IG08:\n        test     rax, rax\n-       je       SHORT G_M58235_IG15\n\u002B       je       SHORT G_M58235_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M58235_IG12:\n\u002BG_M58235_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M58235_IG15\n\u002B       jne      SHORT G_M58235_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M58235_IG13:\n\u002BG_M58235_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M58235_IG15\n\u002B       je       SHORT G_M58235_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M58235_IG14:\n\u002BG_M58235_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M58235_IG22\n\u002B       jmp      SHORT G_M58235_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M58235_IG15:\n\u002BG_M58235_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M58235_IG20\n\u002B       je       SHORT G_M58235_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M58235_IG16:\n\u002BG_M58235_IG13:\n        test     rax, rax\n-       je       SHORT G_M58235_IG18\n\u002B       je       SHORT G_M58235_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M58235_IG17:\n\u002BG_M58235_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M58235_IG19\n\u002B       je       SHORT G_M58235_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M58235_IG18:\n\u002BG_M58235_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M58235_IG21\n\u002B       jmp      SHORT G_M58235_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M58235_IG19:\n\u002BG_M58235_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M58235_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M58235_IG21\n\u002B       jmp      SHORT G_M58235_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M58235_IG20:\n\u002BG_M58235_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M58235_IG21:\n\u002BG_M58235_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M58235_IG22:\n\u002BG_M58235_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M58235_IG30\n\u002B       je       G_M58235_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M58235_IG30\n\u002B       je       G_M58235_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M58235_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M58235_IG23:\n\u002BG_M58235_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M58235_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M58235_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M58235_IG27\n\u002BG_M58235_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M58235_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M58235_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M58235_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M58235_IG26\n\u002B       je       SHORT G_M58235_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M58235_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M58235_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M58235_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M58235_IG27\n\u002B       je       SHORT G_M58235_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M58235_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M58235_IG27:\n\u002BG_M58235_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M58235_IG28:\n-       add      rsp, 152\n\u002BG_M58235_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M58235_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M58235_IG29:\n\u002BG_M58235_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M58235_IG30:\n\u002BG_M58235_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M58235_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M58235_IG31:\n\u002BG_M58235_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M58235_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M58235_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M58235_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M58235_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M58235_IG33\n\u002B       je       SHORT G_M58235_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M58235_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M58235_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M58235_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M58235_IG34\n\u002B       je       SHORT G_M58235_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M58235_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M58235_IG34:\n\u002BG_M58235_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M58235_IG35:\n\u002BG_M58235_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=83411c84) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollection[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=83411c84) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollection[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollection[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],double]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M39291_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M39291_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M39291_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],double]:Render(MongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]):MongoDB.Driver.RenderedPipelineDefinition\u00601[double]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M39291_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M39291_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M39291_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M39291_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M39291_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M39291_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n... diff truncated; middle omitted ...\n        cmp      rax, rdi\n-       je       SHORT G_M39291_IG14\n\u002B       je       SHORT G_M39291_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M39291_IG11:\n\u002BG_M39291_IG08:\n        test     rax, rax\n-       je       SHORT G_M39291_IG15\n\u002B       je       SHORT G_M39291_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M39291_IG12:\n\u002BG_M39291_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M39291_IG15\n\u002B       jne      SHORT G_M39291_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M39291_IG13:\n\u002BG_M39291_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M39291_IG15\n\u002B       je       SHORT G_M39291_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M39291_IG14:\n\u002BG_M39291_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M39291_IG22\n\u002B       jmp      SHORT G_M39291_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M39291_IG15:\n\u002BG_M39291_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M39291_IG20\n\u002B       je       SHORT G_M39291_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M39291_IG16:\n\u002BG_M39291_IG13:\n        test     rax, rax\n-       je       SHORT G_M39291_IG18\n\u002B       je       SHORT G_M39291_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M39291_IG17:\n\u002BG_M39291_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M39291_IG19\n\u002B       je       SHORT G_M39291_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M39291_IG18:\n\u002BG_M39291_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M39291_IG21\n\u002B       jmp      SHORT G_M39291_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M39291_IG19:\n\u002BG_M39291_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M39291_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M39291_IG21\n\u002B       jmp      SHORT G_M39291_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M39291_IG20:\n\u002BG_M39291_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M39291_IG21:\n\u002BG_M39291_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M39291_IG22:\n\u002BG_M39291_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M39291_IG30\n\u002B       je       G_M39291_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M39291_IG30\n\u002B       je       G_M39291_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M39291_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M39291_IG23:\n\u002BG_M39291_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M39291_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M39291_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M39291_IG27\n\u002BG_M39291_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M39291_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M39291_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M39291_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M39291_IG26\n\u002B       je       SHORT G_M39291_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M39291_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M39291_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M39291_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M39291_IG27\n\u002B       je       SHORT G_M39291_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M39291_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M39291_IG27:\n\u002BG_M39291_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M39291_IG28:\n-       add      rsp, 152\n\u002BG_M39291_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M39291_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M39291_IG29:\n\u002BG_M39291_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M39291_IG30:\n\u002BG_M39291_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M39291_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M39291_IG31:\n\u002BG_M39291_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M39291_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M39291_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M39291_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M39291_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M39291_IG33\n\u002B       je       SHORT G_M39291_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M39291_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M39291_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M39291_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M39291_IG34\n\u002B       je       SHORT G_M39291_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M39291_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M39291_IG34:\n\u002BG_M39291_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M39291_IG35:\n\u002BG_M39291_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=bdb86684) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollection[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=bdb86684) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollection[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollection[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],int]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M45147_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M45147_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M45147_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],int]:Render(MongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]):MongoDB.Driver.RenderedPipelineDefinition\u00601[int]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M45147_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M45147_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M45147_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M45147_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M45147_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M45147_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n... diff truncated; middle omitted ...\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M45147_IG14\n\u002B       je       SHORT G_M45147_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M45147_IG11:\n\u002BG_M45147_IG08:\n        test     rax, rax\n-       je       SHORT G_M45147_IG15\n\u002B       je       SHORT G_M45147_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M45147_IG12:\n\u002BG_M45147_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M45147_IG15\n\u002B       jne      SHORT G_M45147_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M45147_IG13:\n\u002BG_M45147_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M45147_IG15\n\u002B       je       SHORT G_M45147_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M45147_IG14:\n\u002BG_M45147_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M45147_IG22\n\u002B       jmp      SHORT G_M45147_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M45147_IG15:\n\u002BG_M45147_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M45147_IG20\n\u002B       je       SHORT G_M45147_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M45147_IG16:\n\u002BG_M45147_IG13:\n        test     rax, rax\n-       je       SHORT G_M45147_IG18\n\u002B       je       SHORT G_M45147_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M45147_IG17:\n\u002BG_M45147_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M45147_IG19\n\u002B       je       SHORT G_M45147_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M45147_IG18:\n\u002BG_M45147_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M45147_IG21\n\u002B       jmp      SHORT G_M45147_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M45147_IG19:\n\u002BG_M45147_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M45147_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M45147_IG21\n\u002B       jmp      SHORT G_M45147_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M45147_IG20:\n\u002BG_M45147_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M45147_IG21:\n\u002BG_M45147_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M45147_IG22:\n\u002BG_M45147_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M45147_IG30\n\u002B       je       G_M45147_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M45147_IG30\n\u002B       je       G_M45147_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M45147_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M45147_IG23:\n\u002BG_M45147_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M45147_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M45147_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M45147_IG27\n\u002BG_M45147_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M45147_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M45147_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M45147_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M45147_IG26\n\u002B       je       SHORT G_M45147_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M45147_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M45147_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M45147_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M45147_IG27\n\u002B       je       SHORT G_M45147_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M45147_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M45147_IG27:\n\u002BG_M45147_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M45147_IG28:\n-       add      rsp, 152\n\u002BG_M45147_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M45147_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M45147_IG29:\n\u002BG_M45147_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M45147_IG30:\n\u002BG_M45147_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M45147_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M45147_IG31:\n\u002BG_M45147_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M45147_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M45147_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M45147_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M45147_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M45147_IG33\n\u002B       je       SHORT G_M45147_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M45147_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M45147_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M45147_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M45147_IG34\n\u002B       je       SHORT G_M45147_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M45147_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M45147_IG34:\n\u002BG_M45147_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M45147_IG35:\n\u002BG_M45147_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=44774fa4) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollection[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=44774fa4) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollection[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollection[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],long]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M18299_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M18299_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M18299_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],long]:Render(MongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]):MongoDB.Driver.RenderedPipelineDefinition\u00601[long]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M18299_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M18299_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M18299_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M18299_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M18299_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M18299_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n... diff truncated; middle omitted ...\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M18299_IG14\n\u002B       je       SHORT G_M18299_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M18299_IG11:\n\u002BG_M18299_IG08:\n        test     rax, rax\n-       je       SHORT G_M18299_IG15\n\u002B       je       SHORT G_M18299_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M18299_IG12:\n\u002BG_M18299_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M18299_IG15\n\u002B       jne      SHORT G_M18299_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M18299_IG13:\n\u002BG_M18299_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M18299_IG15\n\u002B       je       SHORT G_M18299_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M18299_IG14:\n\u002BG_M18299_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M18299_IG22\n\u002B       jmp      SHORT G_M18299_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M18299_IG15:\n\u002BG_M18299_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M18299_IG20\n\u002B       je       SHORT G_M18299_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M18299_IG16:\n\u002BG_M18299_IG13:\n        test     rax, rax\n-       je       SHORT G_M18299_IG18\n\u002B       je       SHORT G_M18299_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M18299_IG17:\n\u002BG_M18299_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M18299_IG19\n\u002B       je       SHORT G_M18299_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M18299_IG18:\n\u002BG_M18299_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M18299_IG21\n\u002B       jmp      SHORT G_M18299_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M18299_IG19:\n\u002BG_M18299_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M18299_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M18299_IG21\n\u002B       jmp      SHORT G_M18299_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M18299_IG20:\n\u002BG_M18299_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M18299_IG21:\n\u002BG_M18299_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M18299_IG22:\n\u002BG_M18299_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M18299_IG30\n\u002B       je       G_M18299_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M18299_IG30\n\u002B       je       G_M18299_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M18299_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M18299_IG23:\n\u002BG_M18299_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M18299_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M18299_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M18299_IG27\n\u002BG_M18299_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M18299_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M18299_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M18299_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M18299_IG26\n\u002B       je       SHORT G_M18299_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M18299_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M18299_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M18299_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M18299_IG27\n\u002B       je       SHORT G_M18299_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M18299_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M18299_IG27:\n\u002BG_M18299_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M18299_IG28:\n-       add      rsp, 152\n\u002BG_M18299_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M18299_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M18299_IG29:\n\u002BG_M18299_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M18299_IG30:\n\u002BG_M18299_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M18299_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M18299_IG31:\n\u002BG_M18299_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M18299_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M18299_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M18299_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M18299_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M18299_IG33\n\u002B       je       SHORT G_M18299_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M18299_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M18299_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M18299_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M18299_IG34\n\u002B       je       SHORT G_M18299_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M18299_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M18299_IG34:\n\u002BG_M18299_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M18299_IG35:\n\u002BG_M18299_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=b69db884) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollection[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=b69db884) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollection[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollection[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],short]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M64699_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M64699_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M64699_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],short]:Render(MongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]):MongoDB.Driver.RenderedPipelineDefinition\u00601[short]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M64699_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M64699_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M64699_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M64699_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M64699_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M64699_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n... diff truncated; middle omitted ...\n        cmp      rax, rdi\n-       je       SHORT G_M64699_IG14\n\u002B       je       SHORT G_M64699_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M64699_IG11:\n\u002BG_M64699_IG08:\n        test     rax, rax\n-       je       SHORT G_M64699_IG15\n\u002B       je       SHORT G_M64699_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M64699_IG12:\n\u002BG_M64699_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M64699_IG15\n\u002B       jne      SHORT G_M64699_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M64699_IG13:\n\u002BG_M64699_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M64699_IG15\n\u002B       je       SHORT G_M64699_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M64699_IG14:\n\u002BG_M64699_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M64699_IG22\n\u002B       jmp      SHORT G_M64699_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M64699_IG15:\n\u002BG_M64699_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M64699_IG20\n\u002B       je       SHORT G_M64699_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M64699_IG16:\n\u002BG_M64699_IG13:\n        test     rax, rax\n-       je       SHORT G_M64699_IG18\n\u002B       je       SHORT G_M64699_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M64699_IG17:\n\u002BG_M64699_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M64699_IG19\n\u002B       je       SHORT G_M64699_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M64699_IG18:\n\u002BG_M64699_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M64699_IG21\n\u002B       jmp      SHORT G_M64699_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M64699_IG19:\n\u002BG_M64699_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M64699_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M64699_IG21\n\u002B       jmp      SHORT G_M64699_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M64699_IG20:\n\u002BG_M64699_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M64699_IG21:\n\u002BG_M64699_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M64699_IG22:\n\u002BG_M64699_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M64699_IG30\n\u002B       je       G_M64699_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M64699_IG30\n\u002B       je       G_M64699_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M64699_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M64699_IG23:\n\u002BG_M64699_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M64699_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M64699_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M64699_IG27\n\u002BG_M64699_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M64699_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M64699_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M64699_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M64699_IG26\n\u002B       je       SHORT G_M64699_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M64699_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M64699_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M64699_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M64699_IG27\n\u002B       je       SHORT G_M64699_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M64699_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M64699_IG27:\n\u002BG_M64699_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M64699_IG28:\n-       add      rsp, 152\n\u002BG_M64699_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M64699_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M64699_IG29:\n\u002BG_M64699_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M64699_IG30:\n\u002BG_M64699_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M64699_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M64699_IG31:\n\u002BG_M64699_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M64699_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M64699_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M64699_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M64699_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M64699_IG33\n\u002B       je       SHORT G_M64699_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M64699_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M64699_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M64699_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M64699_IG34\n\u002B       je       SHORT G_M64699_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M64699_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M64699_IG34:\n\u002BG_M64699_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M64699_IG35:\n\u002BG_M64699_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=a4a80344) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollection[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=a4a80344) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:AggregateToCollection[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollection[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[byte,System.Nullable\u00601[int]]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M8059_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M8059_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M8059_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[byte,System.Nullable\u00601[int]]:Render(MongoDB.Driver.RenderArgs\u00601[byte]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M8059_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M8059_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M8059_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M8059_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M8059_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M8059_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n-G_M8059_IG07:\n        test     rax, rax\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M8059_IG09:\n\u002BG_M8059_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M8059_IG10:\n\u002BG_M8059_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M8059_IG14\n\u002B       je       SHORT G_M8059_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M8059_IG11:\n\u002BG_M8059_IG08:\n        test     rax, rax\n-       je       SHORT G_M8059_IG15\n\u002B       je       SHORT G_M8059_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M8059_IG12:\n\u002BG_M8059_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M8059_IG15\n\u002B       jne      SHORT G_M8059_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M8059_IG13:\n\u002BG_M8059_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M8059_IG15\n\u002B       je       SHORT G_M8059_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M8059_IG14:\n\u002BG_M8059_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M8059_IG22\n\u002B       jmp      SHORT G_M8059_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M8059_IG15:\n\u002BG_M8059_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M8059_IG20\n\u002B       je       SHORT G_M8059_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M8059_IG16:\n\u002BG_M8059_IG13:\n        test     rax, rax\n-       je       SHORT G_M8059_IG18\n\u002B       je       SHORT G_M8059_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M8059_IG17:\n\u002BG_M8059_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M8059_IG19\n\u002B       je       SHORT G_M8059_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M8059_IG18:\n\u002BG_M8059_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M8059_IG21\n\u002B       jmp      SHORT G_M8059_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M8059_IG19:\n\u002BG_M8059_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M8059_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M8059_IG21\n\u002B       jmp      SHORT G_M8059_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M8059_IG20:\n\u002BG_M8059_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M8059_IG21:\n\u002BG_M8059_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M8059_IG22:\n\u002BG_M8059_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M8059_IG30\n\u002B       je       G_M8059_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M8059_IG30\n\u002B       je       G_M8059_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M8059_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M8059_IG23:\n\u002BG_M8059_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M8059_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M8059_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M8059_IG27\n\u002BG_M8059_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M8059_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M8059_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M8059_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M8059_IG26\n\u002B       je       SHORT G_M8059_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M8059_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M8059_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M8059_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M8059_IG27\n\u002B       je       SHORT G_M8059_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M8059_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M8059_IG27:\n\u002BG_M8059_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M8059_IG28:\n-       add      rsp, 152\n\u002BG_M8059_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M8059_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M8059_IG29:\n\u002BG_M8059_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M8059_IG30:\n\u002BG_M8059_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M8059_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M8059_IG31:\n\u002BG_M8059_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M8059_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M8059_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M8059_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M8059_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M8059_IG33\n\u002B       je       SHORT G_M8059_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M8059_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M8059_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M8059_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M8059_IG34\n\u002B       je       SHORT G_M8059_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M8059_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M8059_IG34:\n\u002BG_M8059_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M8059_IG35:\n\u002BG_M8059_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=e48ae084) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollection[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=e48ae084) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollection[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollection[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[byte,System.Numerics.Vector\u00601[float]]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M35803_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M35803_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M35803_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[byte,System.Numerics.Vector\u00601[float]]:Render(MongoDB.Driver.RenderArgs\u00601[byte]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M35803_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M35803_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M35803_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M35803_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M35803_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M35803_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n... diff truncated; middle omitted ...\n-G_M35803_IG10:\n\u002BG_M35803_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M35803_IG14\n\u002B       je       SHORT G_M35803_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M35803_IG11:\n\u002BG_M35803_IG08:\n        test     rax, rax\n-       je       SHORT G_M35803_IG15\n\u002B       je       SHORT G_M35803_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M35803_IG12:\n\u002BG_M35803_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M35803_IG15\n\u002B       jne      SHORT G_M35803_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M35803_IG13:\n\u002BG_M35803_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M35803_IG15\n\u002B       je       SHORT G_M35803_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M35803_IG14:\n\u002BG_M35803_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M35803_IG22\n\u002B       jmp      SHORT G_M35803_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M35803_IG15:\n\u002BG_M35803_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M35803_IG20\n\u002B       je       SHORT G_M35803_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M35803_IG16:\n\u002BG_M35803_IG13:\n        test     rax, rax\n-       je       SHORT G_M35803_IG18\n\u002B       je       SHORT G_M35803_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M35803_IG17:\n\u002BG_M35803_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M35803_IG19\n\u002B       je       SHORT G_M35803_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M35803_IG18:\n\u002BG_M35803_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M35803_IG21\n\u002B       jmp      SHORT G_M35803_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M35803_IG19:\n\u002BG_M35803_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M35803_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M35803_IG21\n\u002B       jmp      SHORT G_M35803_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M35803_IG20:\n\u002BG_M35803_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M35803_IG21:\n\u002BG_M35803_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M35803_IG22:\n\u002BG_M35803_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M35803_IG30\n\u002B       je       G_M35803_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M35803_IG30\n\u002B       je       G_M35803_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M35803_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M35803_IG23:\n\u002BG_M35803_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M35803_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M35803_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M35803_IG27\n\u002BG_M35803_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M35803_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M35803_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M35803_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M35803_IG26\n\u002B       je       SHORT G_M35803_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M35803_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M35803_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M35803_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M35803_IG27\n\u002B       je       SHORT G_M35803_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M35803_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M35803_IG27:\n\u002BG_M35803_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M35803_IG28:\n-       add      rsp, 152\n\u002BG_M35803_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M35803_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M35803_IG29:\n\u002BG_M35803_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M35803_IG30:\n\u002BG_M35803_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M35803_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M35803_IG31:\n\u002BG_M35803_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M35803_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M35803_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M35803_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M35803_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M35803_IG33\n\u002B       je       SHORT G_M35803_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M35803_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M35803_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M35803_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M35803_IG34\n\u002B       je       SHORT G_M35803_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M35803_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M35803_IG34:\n\u002BG_M35803_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M35803_IG35:\n\u002BG_M35803_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=6e717424) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollection[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=6e717424) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollection[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollection[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[byte,byte]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M46715_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M46715_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M46715_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[byte,byte]:Render(MongoDB.Driver.RenderArgs\u00601[byte]):MongoDB.Driver.RenderedPipelineDefinition\u00601[byte]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M46715_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M46715_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M46715_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M46715_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M46715_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M46715_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n-G_M46715_IG07:\n        test     rax, rax\n-       je       SHORT G_M46715_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n... diff truncated; middle omitted ...\n-G_M46715_IG09:\n\u002BG_M46715_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M46715_IG10:\n\u002BG_M46715_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M46715_IG14\n\u002B       je       SHORT G_M46715_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M46715_IG11:\n\u002BG_M46715_IG08:\n        test     rax, rax\n-       je       SHORT G_M46715_IG15\n\u002B       je       SHORT G_M46715_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M46715_IG12:\n\u002BG_M46715_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M46715_IG15\n\u002B       jne      SHORT G_M46715_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M46715_IG13:\n\u002BG_M46715_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M46715_IG15\n\u002B       je       SHORT G_M46715_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M46715_IG14:\n\u002BG_M46715_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M46715_IG22\n\u002B       jmp      SHORT G_M46715_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M46715_IG15:\n\u002BG_M46715_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M46715_IG20\n\u002B       je       SHORT G_M46715_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M46715_IG16:\n\u002BG_M46715_IG13:\n        test     rax, rax\n-       je       SHORT G_M46715_IG18\n\u002B       je       SHORT G_M46715_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M46715_IG17:\n\u002BG_M46715_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M46715_IG19\n\u002B       je       SHORT G_M46715_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M46715_IG18:\n\u002BG_M46715_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M46715_IG21\n\u002B       jmp      SHORT G_M46715_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M46715_IG19:\n\u002BG_M46715_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M46715_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M46715_IG21\n\u002B       jmp      SHORT G_M46715_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M46715_IG20:\n\u002BG_M46715_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M46715_IG21:\n\u002BG_M46715_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M46715_IG22:\n\u002BG_M46715_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M46715_IG30\n\u002B       je       G_M46715_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M46715_IG30\n\u002B       je       G_M46715_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M46715_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M46715_IG23:\n\u002BG_M46715_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M46715_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M46715_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M46715_IG27\n\u002BG_M46715_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M46715_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M46715_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M46715_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M46715_IG26\n\u002B       je       SHORT G_M46715_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M46715_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M46715_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M46715_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M46715_IG27\n\u002B       je       SHORT G_M46715_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M46715_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M46715_IG27:\n\u002BG_M46715_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M46715_IG28:\n-       add      rsp, 152\n\u002BG_M46715_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M46715_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M46715_IG29:\n\u002BG_M46715_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M46715_IG30:\n\u002BG_M46715_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M46715_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M46715_IG31:\n\u002BG_M46715_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M46715_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M46715_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M46715_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M46715_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M46715_IG33\n\u002B       je       SHORT G_M46715_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M46715_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M46715_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M46715_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M46715_IG34\n\u002B       je       SHORT G_M46715_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M46715_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M46715_IG34:\n\u002BG_M46715_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M46715_IG35:\n\u002BG_M46715_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=b7664984) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollection[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=b7664984) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollection[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollection[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[byte,double]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M46427_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M46427_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M46427_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[byte,double]:Render(MongoDB.Driver.RenderArgs\u00601[byte]):MongoDB.Driver.RenderedPipelineDefinition\u00601[double]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M46427_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M46427_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M46427_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M46427_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M46427_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M46427_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n-G_M46427_IG07:\n        test     rax, rax\n-       je       SHORT G_M46427_IG09\n... diff truncated; middle omitted ...\n-G_M46427_IG09:\n\u002BG_M46427_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M46427_IG10:\n\u002BG_M46427_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M46427_IG14\n\u002B       je       SHORT G_M46427_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M46427_IG11:\n\u002BG_M46427_IG08:\n        test     rax, rax\n-       je       SHORT G_M46427_IG15\n\u002B       je       SHORT G_M46427_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M46427_IG12:\n\u002BG_M46427_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M46427_IG15\n\u002B       jne      SHORT G_M46427_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M46427_IG13:\n\u002BG_M46427_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M46427_IG15\n\u002B       je       SHORT G_M46427_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M46427_IG14:\n\u002BG_M46427_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M46427_IG22\n\u002B       jmp      SHORT G_M46427_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M46427_IG15:\n\u002BG_M46427_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M46427_IG20\n\u002B       je       SHORT G_M46427_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M46427_IG16:\n\u002BG_M46427_IG13:\n        test     rax, rax\n-       je       SHORT G_M46427_IG18\n\u002B       je       SHORT G_M46427_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M46427_IG17:\n\u002BG_M46427_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M46427_IG19\n\u002B       je       SHORT G_M46427_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M46427_IG18:\n\u002BG_M46427_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M46427_IG21\n\u002B       jmp      SHORT G_M46427_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M46427_IG19:\n\u002BG_M46427_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M46427_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M46427_IG21\n\u002B       jmp      SHORT G_M46427_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M46427_IG20:\n\u002BG_M46427_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M46427_IG21:\n\u002BG_M46427_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M46427_IG22:\n\u002BG_M46427_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M46427_IG30\n\u002B       je       G_M46427_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M46427_IG30\n\u002B       je       G_M46427_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M46427_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M46427_IG23:\n\u002BG_M46427_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M46427_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M46427_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M46427_IG27\n\u002BG_M46427_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M46427_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M46427_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M46427_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M46427_IG26\n\u002B       je       SHORT G_M46427_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M46427_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M46427_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M46427_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M46427_IG27\n\u002B       je       SHORT G_M46427_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M46427_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M46427_IG27:\n\u002BG_M46427_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M46427_IG28:\n-       add      rsp, 152\n\u002BG_M46427_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M46427_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M46427_IG29:\n\u002BG_M46427_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M46427_IG30:\n\u002BG_M46427_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M46427_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M46427_IG31:\n\u002BG_M46427_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M46427_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M46427_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M46427_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M46427_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M46427_IG33\n\u002B       je       SHORT G_M46427_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M46427_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M46427_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M46427_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M46427_IG34\n\u002B       je       SHORT G_M46427_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M46427_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M46427_IG34:\n\u002BG_M46427_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M46427_IG35:\n\u002BG_M46427_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=dca54aa4) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollection[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=dca54aa4) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollection[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollection[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[byte,int]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M47067_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M47067_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M47067_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[byte,int]:Render(MongoDB.Driver.RenderArgs\u00601[byte]):MongoDB.Driver.RenderedPipelineDefinition\u00601[int]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M47067_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M47067_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M47067_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M47067_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M47067_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M47067_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n-G_M47067_IG07:\n        test     rax, rax\n-       je       SHORT G_M47067_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n... diff truncated; middle omitted ...\n-G_M47067_IG09:\n\u002BG_M47067_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M47067_IG10:\n\u002BG_M47067_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M47067_IG14\n\u002B       je       SHORT G_M47067_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M47067_IG11:\n\u002BG_M47067_IG08:\n        test     rax, rax\n-       je       SHORT G_M47067_IG15\n\u002B       je       SHORT G_M47067_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M47067_IG12:\n\u002BG_M47067_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M47067_IG15\n\u002B       jne      SHORT G_M47067_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M47067_IG13:\n\u002BG_M47067_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M47067_IG15\n\u002B       je       SHORT G_M47067_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M47067_IG14:\n\u002BG_M47067_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M47067_IG22\n\u002B       jmp      SHORT G_M47067_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M47067_IG15:\n\u002BG_M47067_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M47067_IG20\n\u002B       je       SHORT G_M47067_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M47067_IG16:\n\u002BG_M47067_IG13:\n        test     rax, rax\n-       je       SHORT G_M47067_IG18\n\u002B       je       SHORT G_M47067_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M47067_IG17:\n\u002BG_M47067_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M47067_IG19\n\u002B       je       SHORT G_M47067_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M47067_IG18:\n\u002BG_M47067_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M47067_IG21\n\u002B       jmp      SHORT G_M47067_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M47067_IG19:\n\u002BG_M47067_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M47067_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M47067_IG21\n\u002B       jmp      SHORT G_M47067_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M47067_IG20:\n\u002BG_M47067_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M47067_IG21:\n\u002BG_M47067_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M47067_IG22:\n\u002BG_M47067_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M47067_IG30\n\u002B       je       G_M47067_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M47067_IG30\n\u002B       je       G_M47067_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M47067_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M47067_IG23:\n\u002BG_M47067_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M47067_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M47067_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M47067_IG27\n\u002BG_M47067_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M47067_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M47067_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M47067_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M47067_IG26\n\u002B       je       SHORT G_M47067_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M47067_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M47067_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M47067_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M47067_IG27\n\u002B       je       SHORT G_M47067_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M47067_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M47067_IG27:\n\u002BG_M47067_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M47067_IG28:\n-       add      rsp, 152\n\u002BG_M47067_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M47067_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M47067_IG29:\n\u002BG_M47067_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M47067_IG30:\n\u002BG_M47067_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M47067_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M47067_IG31:\n\u002BG_M47067_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M47067_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M47067_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M47067_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M47067_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M47067_IG33\n\u002B       je       SHORT G_M47067_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M47067_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M47067_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M47067_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M47067_IG34\n\u002B       je       SHORT G_M47067_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M47067_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M47067_IG34:\n\u002BG_M47067_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M47067_IG35:\n\u002BG_M47067_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=cd304824) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollection[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=cd304824) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollection[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollection[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[byte,long]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M31355_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M31355_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M31355_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[byte,long]:Render(MongoDB.Driver.RenderArgs\u00601[byte]):MongoDB.Driver.RenderedPipelineDefinition\u00601[long]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M31355_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M31355_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M31355_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M31355_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M31355_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M31355_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n-G_M31355_IG07:\n        test     rax, rax\n-       je       SHORT G_M31355_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n... diff truncated; middle omitted ...\n-G_M31355_IG09:\n\u002BG_M31355_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M31355_IG10:\n\u002BG_M31355_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M31355_IG14\n\u002B       je       SHORT G_M31355_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M31355_IG11:\n\u002BG_M31355_IG08:\n        test     rax, rax\n-       je       SHORT G_M31355_IG15\n\u002B       je       SHORT G_M31355_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M31355_IG12:\n\u002BG_M31355_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M31355_IG15\n\u002B       jne      SHORT G_M31355_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M31355_IG13:\n\u002BG_M31355_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M31355_IG15\n\u002B       je       SHORT G_M31355_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M31355_IG14:\n\u002BG_M31355_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M31355_IG22\n\u002B       jmp      SHORT G_M31355_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M31355_IG15:\n\u002BG_M31355_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M31355_IG20\n\u002B       je       SHORT G_M31355_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M31355_IG16:\n\u002BG_M31355_IG13:\n        test     rax, rax\n-       je       SHORT G_M31355_IG18\n\u002B       je       SHORT G_M31355_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M31355_IG17:\n\u002BG_M31355_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M31355_IG19\n\u002B       je       SHORT G_M31355_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M31355_IG18:\n\u002BG_M31355_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M31355_IG21\n\u002B       jmp      SHORT G_M31355_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M31355_IG19:\n\u002BG_M31355_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M31355_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M31355_IG21\n\u002B       jmp      SHORT G_M31355_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M31355_IG20:\n\u002BG_M31355_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M31355_IG21:\n\u002BG_M31355_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M31355_IG22:\n\u002BG_M31355_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M31355_IG30\n\u002B       je       G_M31355_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M31355_IG30\n\u002B       je       G_M31355_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M31355_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M31355_IG23:\n\u002BG_M31355_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M31355_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M31355_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M31355_IG27\n\u002BG_M31355_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M31355_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M31355_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M31355_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M31355_IG26\n\u002B       je       SHORT G_M31355_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M31355_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M31355_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M31355_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M31355_IG27\n\u002B       je       SHORT G_M31355_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M31355_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M31355_IG27:\n\u002BG_M31355_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M31355_IG28:\n-       add      rsp, 152\n\u002BG_M31355_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M31355_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M31355_IG29:\n\u002BG_M31355_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M31355_IG30:\n\u002BG_M31355_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M31355_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M31355_IG31:\n\u002BG_M31355_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M31355_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M31355_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M31355_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M31355_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M31355_IG33\n\u002B       je       SHORT G_M31355_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M31355_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M31355_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M31355_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M31355_IG34\n\u002B       je       SHORT G_M31355_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M31355_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M31355_IG34:\n\u002BG_M31355_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M31355_IG35:\n\u002BG_M31355_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=d77a8584) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollection[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=d77a8584) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollection[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollection[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[byte,short]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M32539_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M32539_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M32539_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[byte,short]:Render(MongoDB.Driver.RenderArgs\u00601[byte]):MongoDB.Driver.RenderedPipelineDefinition\u00601[short]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M32539_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M32539_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M32539_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M32539_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M32539_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M32539_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n-G_M32539_IG07:\n        test     rax, rax\n-       je       SHORT G_M32539_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n... diff truncated; middle omitted ...\n-G_M32539_IG09:\n\u002BG_M32539_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M32539_IG10:\n\u002BG_M32539_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M32539_IG14\n\u002B       je       SHORT G_M32539_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M32539_IG11:\n\u002BG_M32539_IG08:\n        test     rax, rax\n-       je       SHORT G_M32539_IG15\n\u002B       je       SHORT G_M32539_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M32539_IG12:\n\u002BG_M32539_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M32539_IG15\n\u002B       jne      SHORT G_M32539_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M32539_IG13:\n\u002BG_M32539_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M32539_IG15\n\u002B       je       SHORT G_M32539_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M32539_IG14:\n\u002BG_M32539_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M32539_IG22\n\u002B       jmp      SHORT G_M32539_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M32539_IG15:\n\u002BG_M32539_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M32539_IG20\n\u002B       je       SHORT G_M32539_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M32539_IG16:\n\u002BG_M32539_IG13:\n        test     rax, rax\n-       je       SHORT G_M32539_IG18\n\u002B       je       SHORT G_M32539_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M32539_IG17:\n\u002BG_M32539_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M32539_IG19\n\u002B       je       SHORT G_M32539_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M32539_IG18:\n\u002BG_M32539_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M32539_IG21\n\u002B       jmp      SHORT G_M32539_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M32539_IG19:\n\u002BG_M32539_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M32539_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M32539_IG21\n\u002B       jmp      SHORT G_M32539_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M32539_IG20:\n\u002BG_M32539_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M32539_IG21:\n\u002BG_M32539_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M32539_IG22:\n\u002BG_M32539_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M32539_IG30\n\u002B       je       G_M32539_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M32539_IG30\n\u002B       je       G_M32539_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M32539_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M32539_IG23:\n\u002BG_M32539_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M32539_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M32539_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M32539_IG27\n\u002BG_M32539_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M32539_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M32539_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M32539_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M32539_IG26\n\u002B       je       SHORT G_M32539_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M32539_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M32539_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M32539_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M32539_IG27\n\u002B       je       SHORT G_M32539_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M32539_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M32539_IG27:\n\u002BG_M32539_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M32539_IG28:\n-       add      rsp, 152\n\u002BG_M32539_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M32539_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M32539_IG29:\n\u002BG_M32539_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M32539_IG30:\n\u002BG_M32539_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M32539_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M32539_IG31:\n\u002BG_M32539_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M32539_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M32539_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M32539_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M32539_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M32539_IG33\n\u002B       je       SHORT G_M32539_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M32539_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M32539_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M32539_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M32539_IG34\n\u002B       je       SHORT G_M32539_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M32539_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M32539_IG34:\n\u002BG_M32539_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M32539_IG35:\n\u002BG_M32539_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=d51180e4) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollection[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=d51180e4) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:AggregateToCollection[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[byte,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollection[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[double,System.Nullable\u00601[int]]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M61115_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M61115_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M61115_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[double,System.Nullable\u00601[int]]:Render(MongoDB.Driver.RenderArgs\u00601[double]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M61115_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M61115_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M61115_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M61115_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M61115_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M61115_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n-G_M61115_IG07:\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M61115_IG10:\n\u002BG_M61115_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M61115_IG14\n\u002B       je       SHORT G_M61115_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M61115_IG11:\n\u002BG_M61115_IG08:\n        test     rax, rax\n-       je       SHORT G_M61115_IG15\n\u002B       je       SHORT G_M61115_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M61115_IG12:\n\u002BG_M61115_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M61115_IG15\n\u002B       jne      SHORT G_M61115_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M61115_IG13:\n\u002BG_M61115_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M61115_IG15\n\u002B       je       SHORT G_M61115_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M61115_IG14:\n\u002BG_M61115_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M61115_IG22\n\u002B       jmp      SHORT G_M61115_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M61115_IG15:\n\u002BG_M61115_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M61115_IG20\n\u002B       je       SHORT G_M61115_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M61115_IG16:\n\u002BG_M61115_IG13:\n        test     rax, rax\n-       je       SHORT G_M61115_IG18\n\u002B       je       SHORT G_M61115_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M61115_IG17:\n\u002BG_M61115_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M61115_IG19\n\u002B       je       SHORT G_M61115_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M61115_IG18:\n\u002BG_M61115_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M61115_IG21\n\u002B       jmp      SHORT G_M61115_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M61115_IG19:\n\u002BG_M61115_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M61115_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M61115_IG21\n\u002B       jmp      SHORT G_M61115_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M61115_IG20:\n\u002BG_M61115_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M61115_IG21:\n\u002BG_M61115_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M61115_IG22:\n\u002BG_M61115_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M61115_IG30\n\u002B       je       G_M61115_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M61115_IG30\n\u002B       je       G_M61115_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M61115_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M61115_IG23:\n\u002BG_M61115_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M61115_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M61115_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M61115_IG27\n\u002BG_M61115_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M61115_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M61115_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M61115_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M61115_IG26\n\u002B       je       SHORT G_M61115_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M61115_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M61115_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M61115_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M61115_IG27\n\u002B       je       SHORT G_M61115_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M61115_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M61115_IG27:\n\u002BG_M61115_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M61115_IG28:\n-       add      rsp, 152\n\u002BG_M61115_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M61115_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M61115_IG29:\n\u002BG_M61115_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M61115_IG30:\n\u002BG_M61115_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M61115_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M61115_IG31:\n\u002BG_M61115_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M61115_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M61115_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M61115_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M61115_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M61115_IG33\n\u002B       je       SHORT G_M61115_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M61115_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M61115_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M61115_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M61115_IG34\n\u002B       je       SHORT G_M61115_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M61115_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M61115_IG34:\n\u002BG_M61115_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M61115_IG35:\n\u002BG_M61115_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=3e921144) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollection[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=3e921144) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollection[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollection[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[double,System.Numerics.Vector\u00601[float]]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M43451_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M43451_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M43451_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[double,System.Numerics.Vector\u00601[float]]:Render(MongoDB.Driver.RenderArgs\u00601[double]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M43451_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M43451_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M43451_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M43451_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M43451_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M43451_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n... diff truncated; middle omitted ...\n-G_M43451_IG10:\n\u002BG_M43451_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M43451_IG14\n\u002B       je       SHORT G_M43451_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M43451_IG11:\n\u002BG_M43451_IG08:\n        test     rax, rax\n-       je       SHORT G_M43451_IG15\n\u002B       je       SHORT G_M43451_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M43451_IG12:\n\u002BG_M43451_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M43451_IG15\n\u002B       jne      SHORT G_M43451_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M43451_IG13:\n\u002BG_M43451_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M43451_IG15\n\u002B       je       SHORT G_M43451_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M43451_IG14:\n\u002BG_M43451_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M43451_IG22\n\u002B       jmp      SHORT G_M43451_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M43451_IG15:\n\u002BG_M43451_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M43451_IG20\n\u002B       je       SHORT G_M43451_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M43451_IG16:\n\u002BG_M43451_IG13:\n        test     rax, rax\n-       je       SHORT G_M43451_IG18\n\u002B       je       SHORT G_M43451_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M43451_IG17:\n\u002BG_M43451_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M43451_IG19\n\u002B       je       SHORT G_M43451_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M43451_IG18:\n\u002BG_M43451_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M43451_IG21\n\u002B       jmp      SHORT G_M43451_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M43451_IG19:\n\u002BG_M43451_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M43451_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M43451_IG21\n\u002B       jmp      SHORT G_M43451_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M43451_IG20:\n\u002BG_M43451_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M43451_IG21:\n\u002BG_M43451_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M43451_IG22:\n\u002BG_M43451_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M43451_IG30\n\u002B       je       G_M43451_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M43451_IG30\n\u002B       je       G_M43451_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M43451_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M43451_IG23:\n\u002BG_M43451_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M43451_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M43451_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M43451_IG27\n\u002BG_M43451_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M43451_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M43451_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M43451_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M43451_IG26\n\u002B       je       SHORT G_M43451_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M43451_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M43451_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M43451_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M43451_IG27\n\u002B       je       SHORT G_M43451_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M43451_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M43451_IG27:\n\u002BG_M43451_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M43451_IG28:\n-       add      rsp, 152\n\u002BG_M43451_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M43451_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M43451_IG29:\n\u002BG_M43451_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M43451_IG30:\n\u002BG_M43451_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M43451_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M43451_IG31:\n\u002BG_M43451_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M43451_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M43451_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M43451_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M43451_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M43451_IG33\n\u002B       je       SHORT G_M43451_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M43451_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M43451_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M43451_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M43451_IG34\n\u002B       je       SHORT G_M43451_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M43451_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M43451_IG34:\n\u002BG_M43451_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M43451_IG35:\n\u002BG_M43451_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=30cc5644) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollection[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=30cc5644) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollection[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollection[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[double,byte]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M57531_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M57531_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M57531_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[double,byte]:Render(MongoDB.Driver.RenderArgs\u00601[double]):MongoDB.Driver.RenderedPipelineDefinition\u00601[byte]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M57531_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M57531_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M57531_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M57531_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M57531_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M57531_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n-G_M57531_IG07:\n        test     rax, rax\n-       je       SHORT G_M57531_IG09\n... diff truncated; middle omitted ...\n-G_M57531_IG09:\n\u002BG_M57531_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M57531_IG10:\n\u002BG_M57531_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M57531_IG14\n\u002B       je       SHORT G_M57531_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M57531_IG11:\n\u002BG_M57531_IG08:\n        test     rax, rax\n-       je       SHORT G_M57531_IG15\n\u002B       je       SHORT G_M57531_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M57531_IG12:\n\u002BG_M57531_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M57531_IG15\n\u002B       jne      SHORT G_M57531_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M57531_IG13:\n\u002BG_M57531_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M57531_IG15\n\u002B       je       SHORT G_M57531_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M57531_IG14:\n\u002BG_M57531_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M57531_IG22\n\u002B       jmp      SHORT G_M57531_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M57531_IG15:\n\u002BG_M57531_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M57531_IG20\n\u002B       je       SHORT G_M57531_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M57531_IG16:\n\u002BG_M57531_IG13:\n        test     rax, rax\n-       je       SHORT G_M57531_IG18\n\u002B       je       SHORT G_M57531_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M57531_IG17:\n\u002BG_M57531_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M57531_IG19\n\u002B       je       SHORT G_M57531_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M57531_IG18:\n\u002BG_M57531_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M57531_IG21\n\u002B       jmp      SHORT G_M57531_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M57531_IG19:\n\u002BG_M57531_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M57531_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M57531_IG21\n\u002B       jmp      SHORT G_M57531_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M57531_IG20:\n\u002BG_M57531_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M57531_IG21:\n\u002BG_M57531_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M57531_IG22:\n\u002BG_M57531_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M57531_IG30\n\u002B       je       G_M57531_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M57531_IG30\n\u002B       je       G_M57531_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M57531_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M57531_IG23:\n\u002BG_M57531_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M57531_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M57531_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M57531_IG27\n\u002BG_M57531_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M57531_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M57531_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M57531_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M57531_IG26\n\u002B       je       SHORT G_M57531_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M57531_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M57531_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M57531_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M57531_IG27\n\u002B       je       SHORT G_M57531_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M57531_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M57531_IG27:\n\u002BG_M57531_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M57531_IG28:\n-       add      rsp, 152\n\u002BG_M57531_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M57531_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M57531_IG29:\n\u002BG_M57531_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M57531_IG30:\n\u002BG_M57531_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M57531_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M57531_IG31:\n\u002BG_M57531_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M57531_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M57531_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M57531_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M57531_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M57531_IG33\n\u002B       je       SHORT G_M57531_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M57531_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M57531_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M57531_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M57531_IG34\n\u002B       je       SHORT G_M57531_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M57531_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M57531_IG34:\n\u002BG_M57531_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M57531_IG35:\n\u002BG_M57531_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=23f51f44) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollection[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=23f51f44) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollection[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollection[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[double,double]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M18843_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M18843_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M18843_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[double,double]:Render(MongoDB.Driver.RenderArgs\u00601[double]):MongoDB.Driver.RenderedPipelineDefinition\u00601[double]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M18843_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M18843_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M18843_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M18843_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M18843_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M18843_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n-G_M18843_IG07:\n        test     rax, rax\n-       je       SHORT G_M18843_IG09\n... diff truncated; middle omitted ...\n-G_M18843_IG09:\n\u002BG_M18843_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M18843_IG10:\n\u002BG_M18843_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M18843_IG14\n\u002B       je       SHORT G_M18843_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M18843_IG11:\n\u002BG_M18843_IG08:\n        test     rax, rax\n-       je       SHORT G_M18843_IG15\n\u002B       je       SHORT G_M18843_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M18843_IG12:\n\u002BG_M18843_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M18843_IG15\n\u002B       jne      SHORT G_M18843_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M18843_IG13:\n\u002BG_M18843_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M18843_IG15\n\u002B       je       SHORT G_M18843_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M18843_IG14:\n\u002BG_M18843_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M18843_IG22\n\u002B       jmp      SHORT G_M18843_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M18843_IG15:\n\u002BG_M18843_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M18843_IG20\n\u002B       je       SHORT G_M18843_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M18843_IG16:\n\u002BG_M18843_IG13:\n        test     rax, rax\n-       je       SHORT G_M18843_IG18\n\u002B       je       SHORT G_M18843_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M18843_IG17:\n\u002BG_M18843_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M18843_IG19\n\u002B       je       SHORT G_M18843_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M18843_IG18:\n\u002BG_M18843_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M18843_IG21\n\u002B       jmp      SHORT G_M18843_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M18843_IG19:\n\u002BG_M18843_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M18843_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M18843_IG21\n\u002B       jmp      SHORT G_M18843_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M18843_IG20:\n\u002BG_M18843_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M18843_IG21:\n\u002BG_M18843_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M18843_IG22:\n\u002BG_M18843_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M18843_IG30\n\u002B       je       G_M18843_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M18843_IG30\n\u002B       je       G_M18843_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M18843_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M18843_IG23:\n\u002BG_M18843_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M18843_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M18843_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M18843_IG27\n\u002BG_M18843_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M18843_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M18843_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M18843_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M18843_IG26\n\u002B       je       SHORT G_M18843_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M18843_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M18843_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M18843_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M18843_IG27\n\u002B       je       SHORT G_M18843_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M18843_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M18843_IG27:\n\u002BG_M18843_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M18843_IG28:\n-       add      rsp, 152\n\u002BG_M18843_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M18843_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M18843_IG29:\n\u002BG_M18843_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M18843_IG30:\n\u002BG_M18843_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M18843_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M18843_IG31:\n\u002BG_M18843_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M18843_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M18843_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M18843_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M18843_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M18843_IG33\n\u002B       je       SHORT G_M18843_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M18843_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M18843_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M18843_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M18843_IG34\n\u002B       je       SHORT G_M18843_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M18843_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M18843_IG34:\n\u002BG_M18843_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M18843_IG35:\n\u002BG_M18843_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=9a9cb664) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollection[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=9a9cb664) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollection[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollection[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[double,int]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M9595_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M9595_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M9595_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[double,int]:Render(MongoDB.Driver.RenderArgs\u00601[double]):MongoDB.Driver.RenderedPipelineDefinition\u00601[int]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M9595_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M9595_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M9595_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M9595_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M9595_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M9595_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n-G_M9595_IG07:\n        test     rax, rax\n-       je       SHORT G_M9595_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M9595_IG08:\n... diff truncated; middle omitted ...\n-       jmp      SHORT G_M9595_IG10\n\u002B       jmp      SHORT G_M9595_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M9595_IG09:\n\u002BG_M9595_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M9595_IG10:\n\u002BG_M9595_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M9595_IG14\n\u002B       je       SHORT G_M9595_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M9595_IG11:\n\u002BG_M9595_IG08:\n        test     rax, rax\n-       je       SHORT G_M9595_IG15\n\u002B       je       SHORT G_M9595_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M9595_IG12:\n\u002BG_M9595_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M9595_IG15\n\u002B       jne      SHORT G_M9595_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M9595_IG13:\n\u002BG_M9595_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M9595_IG15\n\u002B       je       SHORT G_M9595_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M9595_IG14:\n\u002BG_M9595_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M9595_IG22\n\u002B       jmp      SHORT G_M9595_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M9595_IG15:\n\u002BG_M9595_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M9595_IG20\n\u002B       je       SHORT G_M9595_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M9595_IG16:\n\u002BG_M9595_IG13:\n        test     rax, rax\n-       je       SHORT G_M9595_IG18\n\u002B       je       SHORT G_M9595_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M9595_IG17:\n\u002BG_M9595_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M9595_IG19\n\u002B       je       SHORT G_M9595_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M9595_IG18:\n\u002BG_M9595_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M9595_IG21\n\u002B       jmp      SHORT G_M9595_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M9595_IG19:\n\u002BG_M9595_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M9595_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M9595_IG21\n\u002B       jmp      SHORT G_M9595_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M9595_IG20:\n\u002BG_M9595_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M9595_IG21:\n\u002BG_M9595_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M9595_IG22:\n\u002BG_M9595_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M9595_IG30\n\u002B       je       G_M9595_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M9595_IG30\n\u002B       je       G_M9595_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M9595_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M9595_IG23:\n\u002BG_M9595_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M9595_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M9595_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M9595_IG27\n\u002BG_M9595_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M9595_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M9595_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M9595_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M9595_IG26\n\u002B       je       SHORT G_M9595_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M9595_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M9595_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M9595_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M9595_IG27\n\u002B       je       SHORT G_M9595_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M9595_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M9595_IG27:\n\u002BG_M9595_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M9595_IG28:\n-       add      rsp, 152\n\u002BG_M9595_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M9595_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M9595_IG29:\n\u002BG_M9595_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M9595_IG30:\n\u002BG_M9595_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M9595_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M9595_IG31:\n\u002BG_M9595_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M9595_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M9595_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M9595_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M9595_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M9595_IG33\n\u002B       je       SHORT G_M9595_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M9595_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M9595_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M9595_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M9595_IG34\n\u002B       je       SHORT G_M9595_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M9595_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M9595_IG34:\n\u002BG_M9595_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M9595_IG35:\n\u002BG_M9595_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=c60ada84) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollection[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=c60ada84) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollection[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollection[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[double,long]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M33467_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M33467_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M33467_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[double,long]:Render(MongoDB.Driver.RenderArgs\u00601[double]):MongoDB.Driver.RenderedPipelineDefinition\u00601[long]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M33467_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M33467_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M33467_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M33467_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M33467_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M33467_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n-G_M33467_IG07:\n        test     rax, rax\n-       je       SHORT G_M33467_IG09\n... diff truncated; middle omitted ...\n-G_M33467_IG09:\n\u002BG_M33467_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M33467_IG10:\n\u002BG_M33467_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M33467_IG14\n\u002B       je       SHORT G_M33467_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M33467_IG11:\n\u002BG_M33467_IG08:\n        test     rax, rax\n-       je       SHORT G_M33467_IG15\n\u002B       je       SHORT G_M33467_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M33467_IG12:\n\u002BG_M33467_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M33467_IG15\n\u002B       jne      SHORT G_M33467_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M33467_IG13:\n\u002BG_M33467_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M33467_IG15\n\u002B       je       SHORT G_M33467_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M33467_IG14:\n\u002BG_M33467_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M33467_IG22\n\u002B       jmp      SHORT G_M33467_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M33467_IG15:\n\u002BG_M33467_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M33467_IG20\n\u002B       je       SHORT G_M33467_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M33467_IG16:\n\u002BG_M33467_IG13:\n        test     rax, rax\n-       je       SHORT G_M33467_IG18\n\u002B       je       SHORT G_M33467_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M33467_IG17:\n\u002BG_M33467_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M33467_IG19\n\u002B       je       SHORT G_M33467_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M33467_IG18:\n\u002BG_M33467_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M33467_IG21\n\u002B       jmp      SHORT G_M33467_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M33467_IG19:\n\u002BG_M33467_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M33467_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M33467_IG21\n\u002B       jmp      SHORT G_M33467_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M33467_IG20:\n\u002BG_M33467_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M33467_IG21:\n\u002BG_M33467_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M33467_IG22:\n\u002BG_M33467_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M33467_IG30\n\u002B       je       G_M33467_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M33467_IG30\n\u002B       je       G_M33467_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M33467_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M33467_IG23:\n\u002BG_M33467_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M33467_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M33467_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M33467_IG27\n\u002BG_M33467_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M33467_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M33467_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M33467_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M33467_IG26\n\u002B       je       SHORT G_M33467_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M33467_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M33467_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M33467_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M33467_IG27\n\u002B       je       SHORT G_M33467_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M33467_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M33467_IG27:\n\u002BG_M33467_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M33467_IG28:\n-       add      rsp, 152\n\u002BG_M33467_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M33467_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M33467_IG29:\n\u002BG_M33467_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M33467_IG30:\n\u002BG_M33467_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M33467_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M33467_IG31:\n\u002BG_M33467_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M33467_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M33467_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M33467_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M33467_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M33467_IG33\n\u002B       je       SHORT G_M33467_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M33467_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M33467_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M33467_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M33467_IG34\n\u002B       je       SHORT G_M33467_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M33467_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M33467_IG34:\n\u002BG_M33467_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M33467_IG35:\n\u002BG_M33467_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=8d9e7d44) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollection[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=8d9e7d44) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollection[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollection[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[double,short]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M8827_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M8827_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M8827_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[double,short]:Render(MongoDB.Driver.RenderArgs\u00601[double]):MongoDB.Driver.RenderedPipelineDefinition\u00601[short]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M8827_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M8827_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M8827_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M8827_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M8827_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M8827_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n-G_M8827_IG07:\n        test     rax, rax\n-       je       SHORT G_M8827_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n... diff truncated; middle omitted ...\n\u002B       jmp      SHORT G_M8827_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M8827_IG09:\n\u002BG_M8827_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M8827_IG10:\n\u002BG_M8827_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M8827_IG14\n\u002B       je       SHORT G_M8827_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M8827_IG11:\n\u002BG_M8827_IG08:\n        test     rax, rax\n-       je       SHORT G_M8827_IG15\n\u002B       je       SHORT G_M8827_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M8827_IG12:\n\u002BG_M8827_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M8827_IG15\n\u002B       jne      SHORT G_M8827_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M8827_IG13:\n\u002BG_M8827_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M8827_IG15\n\u002B       je       SHORT G_M8827_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M8827_IG14:\n\u002BG_M8827_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M8827_IG22\n\u002B       jmp      SHORT G_M8827_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M8827_IG15:\n\u002BG_M8827_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M8827_IG20\n\u002B       je       SHORT G_M8827_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M8827_IG16:\n\u002BG_M8827_IG13:\n        test     rax, rax\n-       je       SHORT G_M8827_IG18\n\u002B       je       SHORT G_M8827_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M8827_IG17:\n\u002BG_M8827_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M8827_IG19\n\u002B       je       SHORT G_M8827_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M8827_IG18:\n\u002BG_M8827_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M8827_IG21\n\u002B       jmp      SHORT G_M8827_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M8827_IG19:\n\u002BG_M8827_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M8827_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M8827_IG21\n\u002B       jmp      SHORT G_M8827_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M8827_IG20:\n\u002BG_M8827_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M8827_IG21:\n\u002BG_M8827_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M8827_IG22:\n\u002BG_M8827_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M8827_IG30\n\u002B       je       G_M8827_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M8827_IG30\n\u002B       je       G_M8827_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M8827_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M8827_IG23:\n\u002BG_M8827_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M8827_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M8827_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M8827_IG27\n\u002BG_M8827_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M8827_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M8827_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M8827_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M8827_IG26\n\u002B       je       SHORT G_M8827_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M8827_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M8827_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M8827_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M8827_IG27\n\u002B       je       SHORT G_M8827_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M8827_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M8827_IG27:\n\u002BG_M8827_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M8827_IG28:\n-       add      rsp, 152\n\u002BG_M8827_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M8827_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M8827_IG29:\n\u002BG_M8827_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M8827_IG30:\n\u002BG_M8827_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M8827_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M8827_IG31:\n\u002BG_M8827_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M8827_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M8827_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M8827_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M8827_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M8827_IG33\n\u002B       je       SHORT G_M8827_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M8827_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M8827_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M8827_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M8827_IG34\n\u002B       je       SHORT G_M8827_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M8827_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M8827_IG34:\n\u002BG_M8827_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M8827_IG35:\n\u002BG_M8827_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=8362dd84) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollection[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=8362dd84) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:AggregateToCollection[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[double,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollection[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[int,System.Nullable\u00601[int]]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M62203_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M62203_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M62203_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[int,System.Nullable\u00601[int]]:Render(MongoDB.Driver.RenderArgs\u00601[int]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M62203_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M62203_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M62203_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M62203_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M62203_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M62203_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n-G_M62203_IG07:\n        test     rax, rax\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M62203_IG10:\n\u002BG_M62203_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M62203_IG14\n\u002B       je       SHORT G_M62203_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M62203_IG11:\n\u002BG_M62203_IG08:\n        test     rax, rax\n-       je       SHORT G_M62203_IG15\n\u002B       je       SHORT G_M62203_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M62203_IG12:\n\u002BG_M62203_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M62203_IG15\n\u002B       jne      SHORT G_M62203_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M62203_IG13:\n\u002BG_M62203_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M62203_IG15\n\u002B       je       SHORT G_M62203_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M62203_IG14:\n\u002BG_M62203_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M62203_IG22\n\u002B       jmp      SHORT G_M62203_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M62203_IG15:\n\u002BG_M62203_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M62203_IG20\n\u002B       je       SHORT G_M62203_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M62203_IG16:\n\u002BG_M62203_IG13:\n        test     rax, rax\n-       je       SHORT G_M62203_IG18\n\u002B       je       SHORT G_M62203_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M62203_IG17:\n\u002BG_M62203_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M62203_IG19\n\u002B       je       SHORT G_M62203_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M62203_IG18:\n\u002BG_M62203_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M62203_IG21\n\u002B       jmp      SHORT G_M62203_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M62203_IG19:\n\u002BG_M62203_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M62203_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M62203_IG21\n\u002B       jmp      SHORT G_M62203_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M62203_IG20:\n\u002BG_M62203_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M62203_IG21:\n\u002BG_M62203_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M62203_IG22:\n\u002BG_M62203_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M62203_IG30\n\u002B       je       G_M62203_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M62203_IG30\n\u002B       je       G_M62203_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M62203_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M62203_IG23:\n\u002BG_M62203_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M62203_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M62203_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M62203_IG27\n\u002BG_M62203_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M62203_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M62203_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M62203_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M62203_IG26\n\u002B       je       SHORT G_M62203_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M62203_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M62203_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M62203_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M62203_IG27\n\u002B       je       SHORT G_M62203_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M62203_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M62203_IG27:\n\u002BG_M62203_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M62203_IG28:\n-       add      rsp, 152\n\u002BG_M62203_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M62203_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M62203_IG29:\n\u002BG_M62203_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M62203_IG30:\n\u002BG_M62203_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M62203_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M62203_IG31:\n\u002BG_M62203_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M62203_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M62203_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M62203_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M62203_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M62203_IG33\n\u002B       je       SHORT G_M62203_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M62203_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M62203_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M62203_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M62203_IG34\n\u002B       je       SHORT G_M62203_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M62203_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M62203_IG34:\n\u002BG_M62203_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M62203_IG35:\n\u002BG_M62203_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=54ef0d04) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollection[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=54ef0d04) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollection[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollection[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[int,System.Numerics.Vector\u00601[float]]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M6107_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M6107_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M6107_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[int,System.Numerics.Vector\u00601[float]]:Render(MongoDB.Driver.RenderArgs\u00601[int]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M6107_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M6107_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M6107_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M6107_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M6107_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M6107_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n... diff truncated; middle omitted ...\n-G_M6107_IG09:\n\u002BG_M6107_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M6107_IG10:\n\u002BG_M6107_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M6107_IG14\n\u002B       je       SHORT G_M6107_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M6107_IG11:\n\u002BG_M6107_IG08:\n        test     rax, rax\n-       je       SHORT G_M6107_IG15\n\u002B       je       SHORT G_M6107_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M6107_IG12:\n\u002BG_M6107_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M6107_IG15\n\u002B       jne      SHORT G_M6107_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M6107_IG13:\n\u002BG_M6107_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M6107_IG15\n\u002B       je       SHORT G_M6107_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M6107_IG14:\n\u002BG_M6107_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M6107_IG22\n\u002B       jmp      SHORT G_M6107_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M6107_IG15:\n\u002BG_M6107_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M6107_IG20\n\u002B       je       SHORT G_M6107_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M6107_IG16:\n\u002BG_M6107_IG13:\n        test     rax, rax\n-       je       SHORT G_M6107_IG18\n\u002B       je       SHORT G_M6107_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M6107_IG17:\n\u002BG_M6107_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M6107_IG19\n\u002B       je       SHORT G_M6107_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M6107_IG18:\n\u002BG_M6107_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M6107_IG21\n\u002B       jmp      SHORT G_M6107_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M6107_IG19:\n\u002BG_M6107_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M6107_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M6107_IG21\n\u002B       jmp      SHORT G_M6107_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M6107_IG20:\n\u002BG_M6107_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M6107_IG21:\n\u002BG_M6107_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M6107_IG22:\n\u002BG_M6107_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M6107_IG30\n\u002B       je       G_M6107_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M6107_IG30\n\u002B       je       G_M6107_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M6107_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M6107_IG23:\n\u002BG_M6107_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M6107_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M6107_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M6107_IG27\n\u002BG_M6107_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M6107_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M6107_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M6107_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M6107_IG26\n\u002B       je       SHORT G_M6107_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M6107_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M6107_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M6107_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M6107_IG27\n\u002B       je       SHORT G_M6107_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M6107_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M6107_IG27:\n\u002BG_M6107_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M6107_IG28:\n-       add      rsp, 152\n\u002BG_M6107_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M6107_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M6107_IG29:\n\u002BG_M6107_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M6107_IG30:\n\u002BG_M6107_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M6107_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M6107_IG31:\n\u002BG_M6107_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M6107_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M6107_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M6107_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M6107_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M6107_IG33\n\u002B       je       SHORT G_M6107_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M6107_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M6107_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M6107_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M6107_IG34\n\u002B       je       SHORT G_M6107_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M6107_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M6107_IG34:\n\u002BG_M6107_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M6107_IG35:\n\u002BG_M6107_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=cc47e824) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollection[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=cc47e824) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollection[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollection[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[int,byte]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M40891_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M40891_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M40891_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[int,byte]:Render(MongoDB.Driver.RenderArgs\u00601[int]):MongoDB.Driver.RenderedPipelineDefinition\u00601[byte]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M40891_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M40891_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M40891_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M40891_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M40891_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M40891_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n-G_M40891_IG07:\n        test     rax, rax\n-       je       SHORT G_M40891_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n... diff truncated; middle omitted ...\n-G_M40891_IG09:\n\u002BG_M40891_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M40891_IG10:\n\u002BG_M40891_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M40891_IG14\n\u002B       je       SHORT G_M40891_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M40891_IG11:\n\u002BG_M40891_IG08:\n        test     rax, rax\n-       je       SHORT G_M40891_IG15\n\u002B       je       SHORT G_M40891_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M40891_IG12:\n\u002BG_M40891_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M40891_IG15\n\u002B       jne      SHORT G_M40891_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M40891_IG13:\n\u002BG_M40891_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M40891_IG15\n\u002B       je       SHORT G_M40891_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M40891_IG14:\n\u002BG_M40891_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M40891_IG22\n\u002B       jmp      SHORT G_M40891_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M40891_IG15:\n\u002BG_M40891_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M40891_IG20\n\u002B       je       SHORT G_M40891_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M40891_IG16:\n\u002BG_M40891_IG13:\n        test     rax, rax\n-       je       SHORT G_M40891_IG18\n\u002B       je       SHORT G_M40891_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M40891_IG17:\n\u002BG_M40891_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M40891_IG19\n\u002B       je       SHORT G_M40891_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M40891_IG18:\n\u002BG_M40891_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M40891_IG21\n\u002B       jmp      SHORT G_M40891_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M40891_IG19:\n\u002BG_M40891_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M40891_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M40891_IG21\n\u002B       jmp      SHORT G_M40891_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M40891_IG20:\n\u002BG_M40891_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M40891_IG21:\n\u002BG_M40891_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M40891_IG22:\n\u002BG_M40891_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M40891_IG30\n\u002B       je       G_M40891_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M40891_IG30\n\u002B       je       G_M40891_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M40891_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M40891_IG23:\n\u002BG_M40891_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M40891_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M40891_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M40891_IG27\n\u002BG_M40891_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M40891_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M40891_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M40891_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M40891_IG26\n\u002B       je       SHORT G_M40891_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M40891_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M40891_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M40891_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M40891_IG27\n\u002B       je       SHORT G_M40891_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M40891_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M40891_IG27:\n\u002BG_M40891_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M40891_IG28:\n-       add      rsp, 152\n\u002BG_M40891_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M40891_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M40891_IG29:\n\u002BG_M40891_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M40891_IG30:\n\u002BG_M40891_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M40891_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M40891_IG31:\n\u002BG_M40891_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M40891_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M40891_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M40891_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M40891_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M40891_IG33\n\u002B       je       SHORT G_M40891_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M40891_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M40891_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M40891_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M40891_IG34\n\u002B       je       SHORT G_M40891_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M40891_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M40891_IG34:\n\u002BG_M40891_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M40891_IG35:\n\u002BG_M40891_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=fa746044) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollection[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=fa746044) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollection[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollection[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[int,double]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M29371_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M29371_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M29371_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[int,double]:Render(MongoDB.Driver.RenderArgs\u00601[int]):MongoDB.Driver.RenderedPipelineDefinition\u00601[double]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M29371_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M29371_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M29371_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M29371_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M29371_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M29371_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n-G_M29371_IG07:\n        test     rax, rax\n-       je       SHORT G_M29371_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n... diff truncated; middle omitted ...\n-G_M29371_IG09:\n\u002BG_M29371_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M29371_IG10:\n\u002BG_M29371_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M29371_IG14\n\u002B       je       SHORT G_M29371_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M29371_IG11:\n\u002BG_M29371_IG08:\n        test     rax, rax\n-       je       SHORT G_M29371_IG15\n\u002B       je       SHORT G_M29371_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M29371_IG12:\n\u002BG_M29371_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M29371_IG15\n\u002B       jne      SHORT G_M29371_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M29371_IG13:\n\u002BG_M29371_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M29371_IG15\n\u002B       je       SHORT G_M29371_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M29371_IG14:\n\u002BG_M29371_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M29371_IG22\n\u002B       jmp      SHORT G_M29371_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M29371_IG15:\n\u002BG_M29371_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M29371_IG20\n\u002B       je       SHORT G_M29371_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M29371_IG16:\n\u002BG_M29371_IG13:\n        test     rax, rax\n-       je       SHORT G_M29371_IG18\n\u002B       je       SHORT G_M29371_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M29371_IG17:\n\u002BG_M29371_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M29371_IG19\n\u002B       je       SHORT G_M29371_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M29371_IG18:\n\u002BG_M29371_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M29371_IG21\n\u002B       jmp      SHORT G_M29371_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M29371_IG19:\n\u002BG_M29371_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M29371_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M29371_IG21\n\u002B       jmp      SHORT G_M29371_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M29371_IG20:\n\u002BG_M29371_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M29371_IG21:\n\u002BG_M29371_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M29371_IG22:\n\u002BG_M29371_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M29371_IG30\n\u002B       je       G_M29371_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M29371_IG30\n\u002B       je       G_M29371_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M29371_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M29371_IG23:\n\u002BG_M29371_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M29371_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M29371_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M29371_IG27\n\u002BG_M29371_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M29371_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M29371_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M29371_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M29371_IG26\n\u002B       je       SHORT G_M29371_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M29371_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M29371_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M29371_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M29371_IG27\n\u002B       je       SHORT G_M29371_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M29371_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M29371_IG27:\n\u002BG_M29371_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M29371_IG28:\n-       add      rsp, 152\n\u002BG_M29371_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M29371_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M29371_IG29:\n\u002BG_M29371_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M29371_IG30:\n\u002BG_M29371_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M29371_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M29371_IG31:\n\u002BG_M29371_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M29371_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M29371_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M29371_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M29371_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M29371_IG33\n\u002B       je       SHORT G_M29371_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M29371_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M29371_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M29371_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M29371_IG34\n\u002B       je       SHORT G_M29371_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M29371_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M29371_IG34:\n\u002BG_M29371_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M29371_IG35:\n\u002BG_M29371_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=880a8d44) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollection[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=880a8d44) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollection[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollection[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[int,int]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M63515_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M63515_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M63515_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[int,int]:Render(MongoDB.Driver.RenderArgs\u00601[int]):MongoDB.Driver.RenderedPipelineDefinition\u00601[int]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M63515_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M63515_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M63515_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M63515_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M63515_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M63515_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n-G_M63515_IG07:\n        test     rax, rax\n-       je       SHORT G_M63515_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M63515_IG08:\n... diff truncated; middle omitted ...\n-G_M63515_IG09:\n\u002BG_M63515_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M63515_IG10:\n\u002BG_M63515_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M63515_IG14\n\u002B       je       SHORT G_M63515_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M63515_IG11:\n\u002BG_M63515_IG08:\n        test     rax, rax\n-       je       SHORT G_M63515_IG15\n\u002B       je       SHORT G_M63515_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M63515_IG12:\n\u002BG_M63515_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M63515_IG15\n\u002B       jne      SHORT G_M63515_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M63515_IG13:\n\u002BG_M63515_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M63515_IG15\n\u002B       je       SHORT G_M63515_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M63515_IG14:\n\u002BG_M63515_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M63515_IG22\n\u002B       jmp      SHORT G_M63515_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M63515_IG15:\n\u002BG_M63515_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M63515_IG20\n\u002B       je       SHORT G_M63515_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M63515_IG16:\n\u002BG_M63515_IG13:\n        test     rax, rax\n-       je       SHORT G_M63515_IG18\n\u002B       je       SHORT G_M63515_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M63515_IG17:\n\u002BG_M63515_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M63515_IG19\n\u002B       je       SHORT G_M63515_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M63515_IG18:\n\u002BG_M63515_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M63515_IG21\n\u002B       jmp      SHORT G_M63515_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M63515_IG19:\n\u002BG_M63515_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M63515_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M63515_IG21\n\u002B       jmp      SHORT G_M63515_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M63515_IG20:\n\u002BG_M63515_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M63515_IG21:\n\u002BG_M63515_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M63515_IG22:\n\u002BG_M63515_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M63515_IG30\n\u002B       je       G_M63515_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M63515_IG30\n\u002B       je       G_M63515_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M63515_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M63515_IG23:\n\u002BG_M63515_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M63515_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M63515_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M63515_IG27\n\u002BG_M63515_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M63515_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M63515_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M63515_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M63515_IG26\n\u002B       je       SHORT G_M63515_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M63515_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M63515_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M63515_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M63515_IG27\n\u002B       je       SHORT G_M63515_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M63515_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M63515_IG27:\n\u002BG_M63515_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M63515_IG28:\n-       add      rsp, 152\n\u002BG_M63515_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M63515_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M63515_IG29:\n\u002BG_M63515_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M63515_IG30:\n\u002BG_M63515_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M63515_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M63515_IG31:\n\u002BG_M63515_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M63515_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M63515_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M63515_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M63515_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M63515_IG33\n\u002B       je       SHORT G_M63515_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M63515_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M63515_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M63515_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M63515_IG34\n\u002B       je       SHORT G_M63515_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M63515_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M63515_IG34:\n\u002BG_M63515_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M63515_IG35:\n\u002BG_M63515_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=173f07e4) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollection[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=173f07e4) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollection[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollection[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[int,long]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M8123_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M8123_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M8123_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[int,long]:Render(MongoDB.Driver.RenderArgs\u00601[int]):MongoDB.Driver.RenderedPipelineDefinition\u00601[long]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M8123_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M8123_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M8123_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M8123_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M8123_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M8123_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n-G_M8123_IG07:\n        test     rax, rax\n-       je       SHORT G_M8123_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M8123_IG08:\n... diff truncated; middle omitted ...\n-       jmp      SHORT G_M8123_IG10\n\u002B       jmp      SHORT G_M8123_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M8123_IG09:\n\u002BG_M8123_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M8123_IG10:\n\u002BG_M8123_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M8123_IG14\n\u002B       je       SHORT G_M8123_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M8123_IG11:\n\u002BG_M8123_IG08:\n        test     rax, rax\n-       je       SHORT G_M8123_IG15\n\u002B       je       SHORT G_M8123_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M8123_IG12:\n\u002BG_M8123_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M8123_IG15\n\u002B       jne      SHORT G_M8123_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M8123_IG13:\n\u002BG_M8123_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M8123_IG15\n\u002B       je       SHORT G_M8123_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M8123_IG14:\n\u002BG_M8123_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M8123_IG22\n\u002B       jmp      SHORT G_M8123_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M8123_IG15:\n\u002BG_M8123_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M8123_IG20\n\u002B       je       SHORT G_M8123_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M8123_IG16:\n\u002BG_M8123_IG13:\n        test     rax, rax\n-       je       SHORT G_M8123_IG18\n\u002B       je       SHORT G_M8123_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M8123_IG17:\n\u002BG_M8123_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M8123_IG19\n\u002B       je       SHORT G_M8123_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M8123_IG18:\n\u002BG_M8123_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M8123_IG21\n\u002B       jmp      SHORT G_M8123_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M8123_IG19:\n\u002BG_M8123_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M8123_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M8123_IG21\n\u002B       jmp      SHORT G_M8123_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M8123_IG20:\n\u002BG_M8123_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M8123_IG21:\n\u002BG_M8123_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M8123_IG22:\n\u002BG_M8123_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M8123_IG30\n\u002B       je       G_M8123_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M8123_IG30\n\u002B       je       G_M8123_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M8123_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M8123_IG23:\n\u002BG_M8123_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M8123_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M8123_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M8123_IG27\n\u002BG_M8123_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M8123_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M8123_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M8123_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M8123_IG26\n\u002B       je       SHORT G_M8123_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M8123_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M8123_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M8123_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M8123_IG27\n\u002B       je       SHORT G_M8123_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M8123_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M8123_IG27:\n\u002BG_M8123_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M8123_IG28:\n-       add      rsp, 152\n\u002BG_M8123_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M8123_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M8123_IG29:\n\u002BG_M8123_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M8123_IG30:\n\u002BG_M8123_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M8123_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M8123_IG31:\n\u002BG_M8123_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M8123_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M8123_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M8123_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M8123_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M8123_IG33\n\u002B       je       SHORT G_M8123_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M8123_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M8123_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M8123_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M8123_IG34\n\u002B       je       SHORT G_M8123_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M8123_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M8123_IG34:\n\u002BG_M8123_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M8123_IG35:\n\u002BG_M8123_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=0ceee044) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollection[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=0ceee044) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollection[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollection[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[int,short]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M24763_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M24763_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M24763_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[int,short]:Render(MongoDB.Driver.RenderArgs\u00601[int]):MongoDB.Driver.RenderedPipelineDefinition\u00601[short]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M24763_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M24763_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M24763_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M24763_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M24763_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M24763_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n-G_M24763_IG07:\n        test     rax, rax\n-       je       SHORT G_M24763_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n... diff truncated; middle omitted ...\n-G_M24763_IG09:\n\u002BG_M24763_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M24763_IG10:\n\u002BG_M24763_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M24763_IG14\n\u002B       je       SHORT G_M24763_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M24763_IG11:\n\u002BG_M24763_IG08:\n        test     rax, rax\n-       je       SHORT G_M24763_IG15\n\u002B       je       SHORT G_M24763_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M24763_IG12:\n\u002BG_M24763_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M24763_IG15\n\u002B       jne      SHORT G_M24763_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M24763_IG13:\n\u002BG_M24763_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M24763_IG15\n\u002B       je       SHORT G_M24763_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M24763_IG14:\n\u002BG_M24763_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M24763_IG22\n\u002B       jmp      SHORT G_M24763_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M24763_IG15:\n\u002BG_M24763_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M24763_IG20\n\u002B       je       SHORT G_M24763_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M24763_IG16:\n\u002BG_M24763_IG13:\n        test     rax, rax\n-       je       SHORT G_M24763_IG18\n\u002B       je       SHORT G_M24763_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M24763_IG17:\n\u002BG_M24763_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M24763_IG19\n\u002B       je       SHORT G_M24763_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M24763_IG18:\n\u002BG_M24763_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M24763_IG21\n\u002B       jmp      SHORT G_M24763_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M24763_IG19:\n\u002BG_M24763_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M24763_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M24763_IG21\n\u002B       jmp      SHORT G_M24763_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M24763_IG20:\n\u002BG_M24763_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M24763_IG21:\n\u002BG_M24763_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M24763_IG22:\n\u002BG_M24763_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M24763_IG30\n\u002B       je       G_M24763_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M24763_IG30\n\u002B       je       G_M24763_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M24763_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M24763_IG23:\n\u002BG_M24763_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M24763_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M24763_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M24763_IG27\n\u002BG_M24763_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M24763_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M24763_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M24763_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M24763_IG26\n\u002B       je       SHORT G_M24763_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M24763_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M24763_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M24763_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M24763_IG27\n\u002B       je       SHORT G_M24763_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M24763_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M24763_IG27:\n\u002BG_M24763_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M24763_IG28:\n-       add      rsp, 152\n\u002BG_M24763_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M24763_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M24763_IG29:\n\u002BG_M24763_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M24763_IG30:\n\u002BG_M24763_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M24763_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M24763_IG31:\n\u002BG_M24763_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M24763_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M24763_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M24763_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M24763_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M24763_IG33\n\u002B       je       SHORT G_M24763_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M24763_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M24763_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M24763_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M24763_IG34\n\u002B       je       SHORT G_M24763_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M24763_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M24763_IG34:\n\u002BG_M24763_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M24763_IG35:\n\u002BG_M24763_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=77699f44) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollection[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=77699f44) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:AggregateToCollection[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[int,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollection[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[long,System.Nullable\u00601[int]]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M32123_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M32123_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M32123_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[long,System.Nullable\u00601[int]]:Render(MongoDB.Driver.RenderArgs\u00601[long]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M32123_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M32123_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M32123_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M32123_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M32123_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M32123_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n-G_M32123_IG07:\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M32123_IG10:\n\u002BG_M32123_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M32123_IG14\n\u002B       je       SHORT G_M32123_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M32123_IG11:\n\u002BG_M32123_IG08:\n        test     rax, rax\n-       je       SHORT G_M32123_IG15\n\u002B       je       SHORT G_M32123_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M32123_IG12:\n\u002BG_M32123_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M32123_IG15\n\u002B       jne      SHORT G_M32123_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M32123_IG13:\n\u002BG_M32123_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M32123_IG15\n\u002B       je       SHORT G_M32123_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M32123_IG14:\n\u002BG_M32123_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M32123_IG22\n\u002B       jmp      SHORT G_M32123_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M32123_IG15:\n\u002BG_M32123_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M32123_IG20\n\u002B       je       SHORT G_M32123_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M32123_IG16:\n\u002BG_M32123_IG13:\n        test     rax, rax\n-       je       SHORT G_M32123_IG18\n\u002B       je       SHORT G_M32123_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M32123_IG17:\n\u002BG_M32123_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M32123_IG19\n\u002B       je       SHORT G_M32123_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M32123_IG18:\n\u002BG_M32123_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M32123_IG21\n\u002B       jmp      SHORT G_M32123_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M32123_IG19:\n\u002BG_M32123_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M32123_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M32123_IG21\n\u002B       jmp      SHORT G_M32123_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M32123_IG20:\n\u002BG_M32123_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M32123_IG21:\n\u002BG_M32123_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M32123_IG22:\n\u002BG_M32123_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M32123_IG30\n\u002B       je       G_M32123_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M32123_IG30\n\u002B       je       G_M32123_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M32123_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M32123_IG23:\n\u002BG_M32123_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M32123_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M32123_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M32123_IG27\n\u002BG_M32123_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M32123_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M32123_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M32123_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M32123_IG26\n\u002B       je       SHORT G_M32123_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M32123_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M32123_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M32123_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M32123_IG27\n\u002B       je       SHORT G_M32123_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M32123_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M32123_IG27:\n\u002BG_M32123_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M32123_IG28:\n-       add      rsp, 152\n\u002BG_M32123_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M32123_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M32123_IG29:\n\u002BG_M32123_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M32123_IG30:\n\u002BG_M32123_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M32123_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M32123_IG31:\n\u002BG_M32123_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M32123_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M32123_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M32123_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M32123_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M32123_IG33\n\u002B       je       SHORT G_M32123_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M32123_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M32123_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M32123_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M32123_IG34\n\u002B       je       SHORT G_M32123_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M32123_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M32123_IG34:\n\u002BG_M32123_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M32123_IG35:\n\u002BG_M32123_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=33ba8284) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollection[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=33ba8284) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollection[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollection[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[long,System.Numerics.Vector\u00601[float]]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M60379_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M60379_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M60379_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[long,System.Numerics.Vector\u00601[float]]:Render(MongoDB.Driver.RenderArgs\u00601[long]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M60379_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M60379_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M60379_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M60379_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M60379_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M60379_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n... diff truncated; middle omitted ...\n-G_M60379_IG10:\n\u002BG_M60379_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M60379_IG14\n\u002B       je       SHORT G_M60379_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M60379_IG11:\n\u002BG_M60379_IG08:\n        test     rax, rax\n-       je       SHORT G_M60379_IG15\n\u002B       je       SHORT G_M60379_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M60379_IG12:\n\u002BG_M60379_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M60379_IG15\n\u002B       jne      SHORT G_M60379_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M60379_IG13:\n\u002BG_M60379_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M60379_IG15\n\u002B       je       SHORT G_M60379_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M60379_IG14:\n\u002BG_M60379_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M60379_IG22\n\u002B       jmp      SHORT G_M60379_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M60379_IG15:\n\u002BG_M60379_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M60379_IG20\n\u002B       je       SHORT G_M60379_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M60379_IG16:\n\u002BG_M60379_IG13:\n        test     rax, rax\n-       je       SHORT G_M60379_IG18\n\u002B       je       SHORT G_M60379_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M60379_IG17:\n\u002BG_M60379_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M60379_IG19\n\u002B       je       SHORT G_M60379_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M60379_IG18:\n\u002BG_M60379_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M60379_IG21\n\u002B       jmp      SHORT G_M60379_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M60379_IG19:\n\u002BG_M60379_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M60379_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M60379_IG21\n\u002B       jmp      SHORT G_M60379_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M60379_IG20:\n\u002BG_M60379_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M60379_IG21:\n\u002BG_M60379_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M60379_IG22:\n\u002BG_M60379_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M60379_IG30\n\u002B       je       G_M60379_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M60379_IG30\n\u002B       je       G_M60379_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M60379_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M60379_IG23:\n\u002BG_M60379_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M60379_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M60379_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M60379_IG27\n\u002BG_M60379_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M60379_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M60379_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M60379_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M60379_IG26\n\u002B       je       SHORT G_M60379_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M60379_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M60379_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M60379_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M60379_IG27\n\u002B       je       SHORT G_M60379_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M60379_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M60379_IG27:\n\u002BG_M60379_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M60379_IG28:\n-       add      rsp, 152\n\u002BG_M60379_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M60379_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M60379_IG29:\n\u002BG_M60379_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M60379_IG30:\n\u002BG_M60379_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M60379_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M60379_IG31:\n\u002BG_M60379_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M60379_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M60379_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M60379_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M60379_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M60379_IG33\n\u002B       je       SHORT G_M60379_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M60379_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M60379_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M60379_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M60379_IG34\n\u002B       je       SHORT G_M60379_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M60379_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M60379_IG34:\n\u002BG_M60379_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M60379_IG35:\n\u002BG_M60379_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=90521424) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollection[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=90521424) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollection[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollection[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[long,byte]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M46715_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M46715_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M46715_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[long,byte]:Render(MongoDB.Driver.RenderArgs\u00601[long]):MongoDB.Driver.RenderedPipelineDefinition\u00601[byte]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M46715_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M46715_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M46715_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M46715_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M46715_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M46715_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n-G_M46715_IG07:\n        test     rax, rax\n-       je       SHORT G_M46715_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n... diff truncated; middle omitted ...\n-G_M46715_IG09:\n\u002BG_M46715_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M46715_IG10:\n\u002BG_M46715_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M46715_IG14\n\u002B       je       SHORT G_M46715_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M46715_IG11:\n\u002BG_M46715_IG08:\n        test     rax, rax\n-       je       SHORT G_M46715_IG15\n\u002B       je       SHORT G_M46715_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M46715_IG12:\n\u002BG_M46715_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M46715_IG15\n\u002B       jne      SHORT G_M46715_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M46715_IG13:\n\u002BG_M46715_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M46715_IG15\n\u002B       je       SHORT G_M46715_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M46715_IG14:\n\u002BG_M46715_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M46715_IG22\n\u002B       jmp      SHORT G_M46715_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M46715_IG15:\n\u002BG_M46715_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M46715_IG20\n\u002B       je       SHORT G_M46715_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M46715_IG16:\n\u002BG_M46715_IG13:\n        test     rax, rax\n-       je       SHORT G_M46715_IG18\n\u002B       je       SHORT G_M46715_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M46715_IG17:\n\u002BG_M46715_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M46715_IG19\n\u002B       je       SHORT G_M46715_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M46715_IG18:\n\u002BG_M46715_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M46715_IG21\n\u002B       jmp      SHORT G_M46715_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M46715_IG19:\n\u002BG_M46715_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M46715_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M46715_IG21\n\u002B       jmp      SHORT G_M46715_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M46715_IG20:\n\u002BG_M46715_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M46715_IG21:\n\u002BG_M46715_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M46715_IG22:\n\u002BG_M46715_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M46715_IG30\n\u002B       je       G_M46715_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M46715_IG30\n\u002B       je       G_M46715_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M46715_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M46715_IG23:\n\u002BG_M46715_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M46715_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M46715_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M46715_IG27\n\u002BG_M46715_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M46715_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M46715_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M46715_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M46715_IG26\n\u002B       je       SHORT G_M46715_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M46715_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M46715_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M46715_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M46715_IG27\n\u002B       je       SHORT G_M46715_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M46715_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M46715_IG27:\n\u002BG_M46715_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M46715_IG28:\n-       add      rsp, 152\n\u002BG_M46715_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M46715_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M46715_IG29:\n\u002BG_M46715_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M46715_IG30:\n\u002BG_M46715_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M46715_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M46715_IG31:\n\u002BG_M46715_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M46715_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M46715_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M46715_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M46715_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M46715_IG33\n\u002B       je       SHORT G_M46715_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M46715_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M46715_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M46715_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M46715_IG34\n\u002B       je       SHORT G_M46715_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M46715_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M46715_IG34:\n\u002BG_M46715_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M46715_IG35:\n\u002BG_M46715_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=9aff4984) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollection[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=9aff4984) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollection[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollection[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[long,double]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M29275_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M29275_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M29275_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[long,double]:Render(MongoDB.Driver.RenderArgs\u00601[long]):MongoDB.Driver.RenderedPipelineDefinition\u00601[double]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M29275_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M29275_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M29275_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M29275_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M29275_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M29275_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n-G_M29275_IG07:\n        test     rax, rax\n-       je       SHORT G_M29275_IG09\n... diff truncated; middle omitted ...\n-G_M29275_IG09:\n\u002BG_M29275_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M29275_IG10:\n\u002BG_M29275_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M29275_IG14\n\u002B       je       SHORT G_M29275_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M29275_IG11:\n\u002BG_M29275_IG08:\n        test     rax, rax\n-       je       SHORT G_M29275_IG15\n\u002B       je       SHORT G_M29275_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M29275_IG12:\n\u002BG_M29275_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M29275_IG15\n\u002B       jne      SHORT G_M29275_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M29275_IG13:\n\u002BG_M29275_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M29275_IG15\n\u002B       je       SHORT G_M29275_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M29275_IG14:\n\u002BG_M29275_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M29275_IG22\n\u002B       jmp      SHORT G_M29275_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M29275_IG15:\n\u002BG_M29275_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M29275_IG20\n\u002B       je       SHORT G_M29275_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M29275_IG16:\n\u002BG_M29275_IG13:\n        test     rax, rax\n-       je       SHORT G_M29275_IG18\n\u002B       je       SHORT G_M29275_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M29275_IG17:\n\u002BG_M29275_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M29275_IG19\n\u002B       je       SHORT G_M29275_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M29275_IG18:\n\u002BG_M29275_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M29275_IG21\n\u002B       jmp      SHORT G_M29275_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M29275_IG19:\n\u002BG_M29275_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M29275_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M29275_IG21\n\u002B       jmp      SHORT G_M29275_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M29275_IG20:\n\u002BG_M29275_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M29275_IG21:\n\u002BG_M29275_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M29275_IG22:\n\u002BG_M29275_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M29275_IG30\n\u002B       je       G_M29275_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M29275_IG30\n\u002B       je       G_M29275_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M29275_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M29275_IG23:\n\u002BG_M29275_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M29275_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M29275_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M29275_IG27\n\u002BG_M29275_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M29275_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M29275_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M29275_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M29275_IG26\n\u002B       je       SHORT G_M29275_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M29275_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M29275_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M29275_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M29275_IG27\n\u002B       je       SHORT G_M29275_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M29275_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M29275_IG27:\n\u002BG_M29275_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M29275_IG28:\n-       add      rsp, 152\n\u002BG_M29275_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M29275_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M29275_IG29:\n\u002BG_M29275_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M29275_IG30:\n\u002BG_M29275_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M29275_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M29275_IG31:\n\u002BG_M29275_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M29275_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M29275_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M29275_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M29275_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M29275_IG33\n\u002B       je       SHORT G_M29275_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M29275_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M29275_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M29275_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M29275_IG34\n\u002B       je       SHORT G_M29275_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M29275_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M29275_IG34:\n\u002BG_M29275_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M29275_IG35:\n\u002BG_M29275_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=0ab38da4) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollection[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=0ab38da4) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollection[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollection[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[long,int]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M62427_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M62427_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M62427_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[long,int]:Render(MongoDB.Driver.RenderArgs\u00601[long]):MongoDB.Driver.RenderedPipelineDefinition\u00601[int]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M62427_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M62427_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M62427_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M62427_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M62427_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M62427_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n-G_M62427_IG07:\n        test     rax, rax\n-       je       SHORT G_M62427_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n... diff truncated; middle omitted ...\n-G_M62427_IG09:\n\u002BG_M62427_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M62427_IG10:\n\u002BG_M62427_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M62427_IG14\n\u002B       je       SHORT G_M62427_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M62427_IG11:\n\u002BG_M62427_IG08:\n        test     rax, rax\n-       je       SHORT G_M62427_IG15\n\u002B       je       SHORT G_M62427_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M62427_IG12:\n\u002BG_M62427_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M62427_IG15\n\u002B       jne      SHORT G_M62427_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M62427_IG13:\n\u002BG_M62427_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M62427_IG15\n\u002B       je       SHORT G_M62427_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M62427_IG14:\n\u002BG_M62427_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M62427_IG22\n\u002B       jmp      SHORT G_M62427_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M62427_IG15:\n\u002BG_M62427_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M62427_IG20\n\u002B       je       SHORT G_M62427_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M62427_IG16:\n\u002BG_M62427_IG13:\n        test     rax, rax\n-       je       SHORT G_M62427_IG18\n\u002B       je       SHORT G_M62427_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M62427_IG17:\n\u002BG_M62427_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M62427_IG19\n\u002B       je       SHORT G_M62427_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M62427_IG18:\n\u002BG_M62427_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M62427_IG21\n\u002B       jmp      SHORT G_M62427_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M62427_IG19:\n\u002BG_M62427_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M62427_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M62427_IG21\n\u002B       jmp      SHORT G_M62427_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M62427_IG20:\n\u002BG_M62427_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M62427_IG21:\n\u002BG_M62427_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M62427_IG22:\n\u002BG_M62427_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M62427_IG30\n\u002B       je       G_M62427_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M62427_IG30\n\u002B       je       G_M62427_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M62427_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M62427_IG23:\n\u002BG_M62427_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M62427_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M62427_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M62427_IG27\n\u002BG_M62427_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M62427_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M62427_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M62427_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M62427_IG26\n\u002B       je       SHORT G_M62427_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M62427_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M62427_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M62427_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M62427_IG27\n\u002B       je       SHORT G_M62427_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M62427_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M62427_IG27:\n\u002BG_M62427_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M62427_IG28:\n-       add      rsp, 152\n\u002BG_M62427_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M62427_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M62427_IG29:\n\u002BG_M62427_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M62427_IG30:\n\u002BG_M62427_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M62427_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M62427_IG31:\n\u002BG_M62427_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M62427_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M62427_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M62427_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M62427_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M62427_IG33\n\u002B       je       SHORT G_M62427_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M62427_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M62427_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M62427_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M62427_IG34\n\u002B       je       SHORT G_M62427_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M62427_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M62427_IG34:\n\u002BG_M62427_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M62427_IG35:\n\u002BG_M62427_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=e4d90c24) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollection[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=e4d90c24) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollection[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollection[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[long,long]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M31355_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M31355_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M31355_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[long,long]:Render(MongoDB.Driver.RenderArgs\u00601[long]):MongoDB.Driver.RenderedPipelineDefinition\u00601[long]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M31355_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M31355_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M31355_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M31355_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M31355_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M31355_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n-G_M31355_IG07:\n        test     rax, rax\n-       je       SHORT G_M31355_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n... diff truncated; middle omitted ...\n-G_M31355_IG09:\n\u002BG_M31355_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M31355_IG10:\n\u002BG_M31355_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M31355_IG14\n\u002B       je       SHORT G_M31355_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M31355_IG11:\n\u002BG_M31355_IG08:\n        test     rax, rax\n-       je       SHORT G_M31355_IG15\n\u002B       je       SHORT G_M31355_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M31355_IG12:\n\u002BG_M31355_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M31355_IG15\n\u002B       jne      SHORT G_M31355_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M31355_IG13:\n\u002BG_M31355_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M31355_IG15\n\u002B       je       SHORT G_M31355_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M31355_IG14:\n\u002BG_M31355_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M31355_IG22\n\u002B       jmp      SHORT G_M31355_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M31355_IG15:\n\u002BG_M31355_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M31355_IG20\n\u002B       je       SHORT G_M31355_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M31355_IG16:\n\u002BG_M31355_IG13:\n        test     rax, rax\n-       je       SHORT G_M31355_IG18\n\u002B       je       SHORT G_M31355_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M31355_IG17:\n\u002BG_M31355_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M31355_IG19\n\u002B       je       SHORT G_M31355_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M31355_IG18:\n\u002BG_M31355_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M31355_IG21\n\u002B       jmp      SHORT G_M31355_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M31355_IG19:\n\u002BG_M31355_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M31355_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M31355_IG21\n\u002B       jmp      SHORT G_M31355_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M31355_IG20:\n\u002BG_M31355_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M31355_IG21:\n\u002BG_M31355_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M31355_IG22:\n\u002BG_M31355_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M31355_IG30\n\u002B       je       G_M31355_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M31355_IG30\n\u002B       je       G_M31355_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M31355_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M31355_IG23:\n\u002BG_M31355_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M31355_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M31355_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M31355_IG27\n\u002BG_M31355_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M31355_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M31355_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M31355_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M31355_IG26\n\u002B       je       SHORT G_M31355_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M31355_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M31355_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M31355_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M31355_IG27\n\u002B       je       SHORT G_M31355_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M31355_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M31355_IG27:\n\u002BG_M31355_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M31355_IG28:\n-       add      rsp, 152\n\u002BG_M31355_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M31355_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M31355_IG29:\n\u002BG_M31355_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M31355_IG30:\n\u002BG_M31355_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M31355_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M31355_IG31:\n\u002BG_M31355_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M31355_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M31355_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M31355_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M31355_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M31355_IG33\n\u002B       je       SHORT G_M31355_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M31355_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M31355_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M31355_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M31355_IG34\n\u002B       je       SHORT G_M31355_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M31355_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M31355_IG34:\n\u002BG_M31355_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M31355_IG35:\n\u002BG_M31355_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=bb138584) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollection[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=bb138584) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollection[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollection[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[long,short]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M39707_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M39707_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M39707_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[long,short]:Render(MongoDB.Driver.RenderArgs\u00601[long]):MongoDB.Driver.RenderedPipelineDefinition\u00601[short]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M39707_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M39707_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M39707_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M39707_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M39707_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M39707_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n-G_M39707_IG07:\n        test     rax, rax\n-       je       SHORT G_M39707_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n... diff truncated; middle omitted ...\n-G_M39707_IG09:\n\u002BG_M39707_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M39707_IG10:\n\u002BG_M39707_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M39707_IG14\n\u002B       je       SHORT G_M39707_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M39707_IG11:\n\u002BG_M39707_IG08:\n        test     rax, rax\n-       je       SHORT G_M39707_IG15\n\u002B       je       SHORT G_M39707_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M39707_IG12:\n\u002BG_M39707_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M39707_IG15\n\u002B       jne      SHORT G_M39707_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M39707_IG13:\n\u002BG_M39707_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M39707_IG15\n\u002B       je       SHORT G_M39707_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M39707_IG14:\n\u002BG_M39707_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M39707_IG22\n\u002B       jmp      SHORT G_M39707_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M39707_IG15:\n\u002BG_M39707_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M39707_IG20\n\u002B       je       SHORT G_M39707_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M39707_IG16:\n\u002BG_M39707_IG13:\n        test     rax, rax\n-       je       SHORT G_M39707_IG18\n\u002B       je       SHORT G_M39707_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M39707_IG17:\n\u002BG_M39707_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M39707_IG19\n\u002B       je       SHORT G_M39707_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M39707_IG18:\n\u002BG_M39707_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M39707_IG21\n\u002B       jmp      SHORT G_M39707_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M39707_IG19:\n\u002BG_M39707_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M39707_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M39707_IG21\n\u002B       jmp      SHORT G_M39707_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M39707_IG20:\n\u002BG_M39707_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M39707_IG21:\n\u002BG_M39707_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M39707_IG22:\n\u002BG_M39707_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M39707_IG30\n\u002B       je       G_M39707_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M39707_IG30\n\u002B       je       G_M39707_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M39707_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M39707_IG23:\n\u002BG_M39707_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M39707_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M39707_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M39707_IG27\n\u002BG_M39707_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M39707_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M39707_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M39707_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M39707_IG26\n\u002B       je       SHORT G_M39707_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M39707_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M39707_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M39707_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M39707_IG27\n\u002B       je       SHORT G_M39707_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M39707_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M39707_IG27:\n\u002BG_M39707_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M39707_IG28:\n-       add      rsp, 152\n\u002BG_M39707_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M39707_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M39707_IG29:\n\u002BG_M39707_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M39707_IG30:\n\u002BG_M39707_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M39707_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M39707_IG31:\n\u002BG_M39707_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M39707_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M39707_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M39707_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M39707_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M39707_IG33\n\u002B       je       SHORT G_M39707_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M39707_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M39707_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M39707_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M39707_IG34\n\u002B       je       SHORT G_M39707_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M39707_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M39707_IG34:\n\u002BG_M39707_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M39707_IG35:\n\u002BG_M39707_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=45c364e4) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollection[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=45c364e4) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:AggregateToCollection[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[long,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollection[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[short,System.Nullable\u00601[int]]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M60571_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M60571_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M60571_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[short,System.Nullable\u00601[int]]:Render(MongoDB.Driver.RenderArgs\u00601[short]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M60571_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M60571_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M60571_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M60571_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M60571_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M60571_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n-G_M60571_IG07:\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M60571_IG10:\n\u002BG_M60571_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M60571_IG14\n\u002B       je       SHORT G_M60571_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M60571_IG11:\n\u002BG_M60571_IG08:\n        test     rax, rax\n-       je       SHORT G_M60571_IG15\n\u002B       je       SHORT G_M60571_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M60571_IG12:\n\u002BG_M60571_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M60571_IG15\n\u002B       jne      SHORT G_M60571_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M60571_IG13:\n\u002BG_M60571_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M60571_IG15\n\u002B       je       SHORT G_M60571_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M60571_IG14:\n\u002BG_M60571_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M60571_IG22\n\u002B       jmp      SHORT G_M60571_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M60571_IG15:\n\u002BG_M60571_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M60571_IG20\n\u002B       je       SHORT G_M60571_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M60571_IG16:\n\u002BG_M60571_IG13:\n        test     rax, rax\n-       je       SHORT G_M60571_IG18\n\u002B       je       SHORT G_M60571_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M60571_IG17:\n\u002BG_M60571_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M60571_IG19\n\u002B       je       SHORT G_M60571_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M60571_IG18:\n\u002BG_M60571_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M60571_IG21\n\u002B       jmp      SHORT G_M60571_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M60571_IG19:\n\u002BG_M60571_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M60571_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M60571_IG21\n\u002B       jmp      SHORT G_M60571_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M60571_IG20:\n\u002BG_M60571_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M60571_IG21:\n\u002BG_M60571_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M60571_IG22:\n\u002BG_M60571_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M60571_IG30\n\u002B       je       G_M60571_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M60571_IG30\n\u002B       je       G_M60571_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M60571_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M60571_IG23:\n\u002BG_M60571_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M60571_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M60571_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M60571_IG27\n\u002BG_M60571_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M60571_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M60571_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M60571_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M60571_IG26\n\u002B       je       SHORT G_M60571_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M60571_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M60571_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M60571_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M60571_IG27\n\u002B       je       SHORT G_M60571_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M60571_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M60571_IG27:\n\u002BG_M60571_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M60571_IG28:\n-       add      rsp, 152\n\u002BG_M60571_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M60571_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M60571_IG29:\n\u002BG_M60571_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M60571_IG30:\n\u002BG_M60571_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M60571_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M60571_IG31:\n\u002BG_M60571_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M60571_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M60571_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M60571_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M60571_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M60571_IG33\n\u002B       je       SHORT G_M60571_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M60571_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M60571_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M60571_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M60571_IG34\n\u002B       je       SHORT G_M60571_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M60571_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M60571_IG34:\n\u002BG_M60571_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M60571_IG35:\n\u002BG_M60571_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=4da11364) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollection[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=4da11364) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollection[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollection[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[short,System.Numerics.Vector\u00601[float]]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M30427_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M30427_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M30427_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[short,System.Numerics.Vector\u00601[float]]:Render(MongoDB.Driver.RenderArgs\u00601[short]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M30427_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M30427_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M30427_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M30427_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M30427_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M30427_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n... diff truncated; middle omitted ...\n-G_M30427_IG10:\n\u002BG_M30427_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M30427_IG14\n\u002B       je       SHORT G_M30427_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M30427_IG11:\n\u002BG_M30427_IG08:\n        test     rax, rax\n-       je       SHORT G_M30427_IG15\n\u002B       je       SHORT G_M30427_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M30427_IG12:\n\u002BG_M30427_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M30427_IG15\n\u002B       jne      SHORT G_M30427_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M30427_IG13:\n\u002BG_M30427_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M30427_IG15\n\u002B       je       SHORT G_M30427_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M30427_IG14:\n\u002BG_M30427_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M30427_IG22\n\u002B       jmp      SHORT G_M30427_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M30427_IG15:\n\u002BG_M30427_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M30427_IG20\n\u002B       je       SHORT G_M30427_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M30427_IG16:\n\u002BG_M30427_IG13:\n        test     rax, rax\n-       je       SHORT G_M30427_IG18\n\u002B       je       SHORT G_M30427_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M30427_IG17:\n\u002BG_M30427_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M30427_IG19\n\u002B       je       SHORT G_M30427_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M30427_IG18:\n\u002BG_M30427_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M30427_IG21\n\u002B       jmp      SHORT G_M30427_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M30427_IG19:\n\u002BG_M30427_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M30427_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M30427_IG21\n\u002B       jmp      SHORT G_M30427_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M30427_IG20:\n\u002BG_M30427_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M30427_IG21:\n\u002BG_M30427_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M30427_IG22:\n\u002BG_M30427_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M30427_IG30\n\u002B       je       G_M30427_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M30427_IG30\n\u002B       je       G_M30427_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M30427_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M30427_IG23:\n\u002BG_M30427_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M30427_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M30427_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M30427_IG27\n\u002BG_M30427_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M30427_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M30427_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M30427_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M30427_IG26\n\u002B       je       SHORT G_M30427_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M30427_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M30427_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M30427_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M30427_IG27\n\u002B       je       SHORT G_M30427_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M30427_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M30427_IG27:\n\u002BG_M30427_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M30427_IG28:\n-       add      rsp, 152\n\u002BG_M30427_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M30427_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M30427_IG29:\n\u002BG_M30427_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M30427_IG30:\n\u002BG_M30427_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M30427_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M30427_IG31:\n\u002BG_M30427_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M30427_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M30427_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M30427_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M30427_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M30427_IG33\n\u002B       je       SHORT G_M30427_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M30427_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M30427_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M30427_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M30427_IG34\n\u002B       je       SHORT G_M30427_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M30427_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M30427_IG34:\n\u002BG_M30427_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M30427_IG35:\n\u002BG_M30427_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=45aa8924) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollection[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=45aa8924) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollection[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollection[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[short,byte]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M44507_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M44507_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M44507_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[short,byte]:Render(MongoDB.Driver.RenderArgs\u00601[short]):MongoDB.Driver.RenderedPipelineDefinition\u00601[byte]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M44507_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M44507_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M44507_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M44507_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M44507_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M44507_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n-G_M44507_IG07:\n        test     rax, rax\n-       je       SHORT G_M44507_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n... diff truncated; middle omitted ...\n-G_M44507_IG09:\n\u002BG_M44507_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M44507_IG10:\n\u002BG_M44507_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M44507_IG14\n\u002B       je       SHORT G_M44507_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M44507_IG11:\n\u002BG_M44507_IG08:\n        test     rax, rax\n-       je       SHORT G_M44507_IG15\n\u002B       je       SHORT G_M44507_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M44507_IG12:\n\u002BG_M44507_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M44507_IG15\n\u002B       jne      SHORT G_M44507_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M44507_IG13:\n\u002BG_M44507_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M44507_IG15\n\u002B       je       SHORT G_M44507_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M44507_IG14:\n\u002BG_M44507_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M44507_IG22\n\u002B       jmp      SHORT G_M44507_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M44507_IG15:\n\u002BG_M44507_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M44507_IG20\n\u002B       je       SHORT G_M44507_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M44507_IG16:\n\u002BG_M44507_IG13:\n        test     rax, rax\n-       je       SHORT G_M44507_IG18\n\u002B       je       SHORT G_M44507_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M44507_IG17:\n\u002BG_M44507_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M44507_IG19\n\u002B       je       SHORT G_M44507_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M44507_IG18:\n\u002BG_M44507_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M44507_IG21\n\u002B       jmp      SHORT G_M44507_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M44507_IG19:\n\u002BG_M44507_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M44507_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M44507_IG21\n\u002B       jmp      SHORT G_M44507_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M44507_IG20:\n\u002BG_M44507_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M44507_IG21:\n\u002BG_M44507_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M44507_IG22:\n\u002BG_M44507_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M44507_IG30\n\u002B       je       G_M44507_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M44507_IG30\n\u002B       je       G_M44507_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M44507_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M44507_IG23:\n\u002BG_M44507_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M44507_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M44507_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M44507_IG27\n\u002BG_M44507_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M44507_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M44507_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M44507_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M44507_IG26\n\u002B       je       SHORT G_M44507_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M44507_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M44507_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M44507_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M44507_IG27\n\u002B       je       SHORT G_M44507_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M44507_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M44507_IG27:\n\u002BG_M44507_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M44507_IG28:\n-       add      rsp, 152\n\u002BG_M44507_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M44507_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M44507_IG29:\n\u002BG_M44507_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M44507_IG30:\n\u002BG_M44507_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M44507_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M44507_IG31:\n\u002BG_M44507_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M44507_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M44507_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M44507_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M44507_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M44507_IG33\n\u002B       je       SHORT G_M44507_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M44507_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M44507_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M44507_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M44507_IG34\n\u002B       je       SHORT G_M44507_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M44507_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M44507_IG34:\n\u002BG_M44507_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M44507_IG35:\n\u002BG_M44507_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=9c0d5224) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollection[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=9c0d5224) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollection[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollection[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[short,double]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M6747_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M6747_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M6747_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[short,double]:Render(MongoDB.Driver.RenderArgs\u00601[short]):MongoDB.Driver.RenderedPipelineDefinition\u00601[double]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M6747_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M6747_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M6747_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M6747_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M6747_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M6747_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n-G_M6747_IG07:\n        test     rax, rax\n-       je       SHORT G_M6747_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n... diff truncated; middle omitted ...\n\u002B       jmp      SHORT G_M6747_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M6747_IG09:\n\u002BG_M6747_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M6747_IG10:\n\u002BG_M6747_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M6747_IG14\n\u002B       je       SHORT G_M6747_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M6747_IG11:\n\u002BG_M6747_IG08:\n        test     rax, rax\n-       je       SHORT G_M6747_IG15\n\u002B       je       SHORT G_M6747_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M6747_IG12:\n\u002BG_M6747_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M6747_IG15\n\u002B       jne      SHORT G_M6747_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M6747_IG13:\n\u002BG_M6747_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M6747_IG15\n\u002B       je       SHORT G_M6747_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M6747_IG14:\n\u002BG_M6747_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M6747_IG22\n\u002B       jmp      SHORT G_M6747_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M6747_IG15:\n\u002BG_M6747_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M6747_IG20\n\u002B       je       SHORT G_M6747_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M6747_IG16:\n\u002BG_M6747_IG13:\n        test     rax, rax\n-       je       SHORT G_M6747_IG18\n\u002B       je       SHORT G_M6747_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M6747_IG17:\n\u002BG_M6747_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M6747_IG19\n\u002B       je       SHORT G_M6747_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M6747_IG18:\n\u002BG_M6747_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M6747_IG21\n\u002B       jmp      SHORT G_M6747_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M6747_IG19:\n\u002BG_M6747_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M6747_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M6747_IG21\n\u002B       jmp      SHORT G_M6747_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M6747_IG20:\n\u002BG_M6747_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M6747_IG21:\n\u002BG_M6747_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M6747_IG22:\n\u002BG_M6747_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M6747_IG30\n\u002B       je       G_M6747_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M6747_IG30\n\u002B       je       G_M6747_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M6747_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M6747_IG23:\n\u002BG_M6747_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M6747_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M6747_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M6747_IG27\n\u002BG_M6747_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M6747_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M6747_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M6747_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M6747_IG26\n\u002B       je       SHORT G_M6747_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M6747_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M6747_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M6747_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M6747_IG27\n\u002B       je       SHORT G_M6747_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M6747_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M6747_IG27:\n\u002BG_M6747_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M6747_IG28:\n-       add      rsp, 152\n\u002BG_M6747_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M6747_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M6747_IG29:\n\u002BG_M6747_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M6747_IG30:\n\u002BG_M6747_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M6747_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M6747_IG31:\n\u002BG_M6747_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M6747_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M6747_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M6747_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M6747_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M6747_IG33\n\u002B       je       SHORT G_M6747_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M6747_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M6747_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M6747_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M6747_IG34\n\u002B       je       SHORT G_M6747_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M6747_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M6747_IG34:\n\u002BG_M6747_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M6747_IG35:\n\u002BG_M6747_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=de6ee5a4) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollection[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=de6ee5a4) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollection[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollection[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[short,int]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M14939_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M14939_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M14939_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[short,int]:Render(MongoDB.Driver.RenderArgs\u00601[short]):MongoDB.Driver.RenderedPipelineDefinition\u00601[int]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M14939_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M14939_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M14939_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M14939_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M14939_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M14939_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n-G_M14939_IG07:\n        test     rax, rax\n-       je       SHORT G_M14939_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n... diff truncated; middle omitted ...\n-G_M14939_IG09:\n\u002BG_M14939_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M14939_IG10:\n\u002BG_M14939_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M14939_IG14\n\u002B       je       SHORT G_M14939_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M14939_IG11:\n\u002BG_M14939_IG08:\n        test     rax, rax\n-       je       SHORT G_M14939_IG15\n\u002B       je       SHORT G_M14939_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M14939_IG12:\n\u002BG_M14939_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M14939_IG15\n\u002B       jne      SHORT G_M14939_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M14939_IG13:\n\u002BG_M14939_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M14939_IG15\n\u002B       je       SHORT G_M14939_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M14939_IG14:\n\u002BG_M14939_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M14939_IG22\n\u002B       jmp      SHORT G_M14939_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M14939_IG15:\n\u002BG_M14939_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M14939_IG20\n\u002B       je       SHORT G_M14939_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M14939_IG16:\n\u002BG_M14939_IG13:\n        test     rax, rax\n-       je       SHORT G_M14939_IG18\n\u002B       je       SHORT G_M14939_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M14939_IG17:\n\u002BG_M14939_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M14939_IG19\n\u002B       je       SHORT G_M14939_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M14939_IG18:\n\u002BG_M14939_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M14939_IG21\n\u002B       jmp      SHORT G_M14939_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M14939_IG19:\n\u002BG_M14939_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M14939_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M14939_IG21\n\u002B       jmp      SHORT G_M14939_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M14939_IG20:\n\u002BG_M14939_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M14939_IG21:\n\u002BG_M14939_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M14939_IG22:\n\u002BG_M14939_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M14939_IG30\n\u002B       je       G_M14939_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M14939_IG30\n\u002B       je       G_M14939_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M14939_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M14939_IG23:\n\u002BG_M14939_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M14939_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M14939_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M14939_IG27\n\u002BG_M14939_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M14939_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M14939_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M14939_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M14939_IG26\n\u002B       je       SHORT G_M14939_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M14939_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M14939_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M14939_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M14939_IG27\n\u002B       je       SHORT G_M14939_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M14939_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M14939_IG27:\n\u002BG_M14939_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M14939_IG28:\n-       add      rsp, 152\n\u002BG_M14939_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M14939_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M14939_IG29:\n\u002BG_M14939_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M14939_IG30:\n\u002BG_M14939_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M14939_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M14939_IG31:\n\u002BG_M14939_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M14939_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M14939_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M14939_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M14939_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M14939_IG33\n\u002B       je       SHORT G_M14939_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M14939_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M14939_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M14939_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M14939_IG34\n\u002B       je       SHORT G_M14939_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M14939_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M14939_IG34:\n\u002BG_M14939_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M14939_IG35:\n\u002BG_M14939_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=6a58c5a4) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollection[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=6a58c5a4) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollection[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollection[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[short,long]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M60635_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M60635_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M60635_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[short,long]:Render(MongoDB.Driver.RenderArgs\u00601[short]):MongoDB.Driver.RenderedPipelineDefinition\u00601[long]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M60635_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M60635_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M60635_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M60635_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M60635_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M60635_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n-G_M60635_IG07:\n        test     rax, rax\n-       je       SHORT G_M60635_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n... diff truncated; middle omitted ...\n-G_M60635_IG09:\n\u002BG_M60635_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M60635_IG10:\n\u002BG_M60635_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M60635_IG14\n\u002B       je       SHORT G_M60635_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M60635_IG11:\n\u002BG_M60635_IG08:\n        test     rax, rax\n-       je       SHORT G_M60635_IG15\n\u002B       je       SHORT G_M60635_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M60635_IG12:\n\u002BG_M60635_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M60635_IG15\n\u002B       jne      SHORT G_M60635_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M60635_IG13:\n\u002BG_M60635_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M60635_IG15\n\u002B       je       SHORT G_M60635_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M60635_IG14:\n\u002BG_M60635_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M60635_IG22\n\u002B       jmp      SHORT G_M60635_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M60635_IG15:\n\u002BG_M60635_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M60635_IG20\n\u002B       je       SHORT G_M60635_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M60635_IG16:\n\u002BG_M60635_IG13:\n        test     rax, rax\n-       je       SHORT G_M60635_IG18\n\u002B       je       SHORT G_M60635_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M60635_IG17:\n\u002BG_M60635_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M60635_IG19\n\u002B       je       SHORT G_M60635_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M60635_IG18:\n\u002BG_M60635_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M60635_IG21\n\u002B       jmp      SHORT G_M60635_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M60635_IG19:\n\u002BG_M60635_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M60635_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M60635_IG21\n\u002B       jmp      SHORT G_M60635_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M60635_IG20:\n\u002BG_M60635_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M60635_IG21:\n\u002BG_M60635_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M60635_IG22:\n\u002BG_M60635_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M60635_IG30\n\u002B       je       G_M60635_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M60635_IG30\n\u002B       je       G_M60635_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M60635_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M60635_IG23:\n\u002BG_M60635_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M60635_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M60635_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M60635_IG27\n\u002BG_M60635_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M60635_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M60635_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M60635_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M60635_IG26\n\u002B       je       SHORT G_M60635_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M60635_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M60635_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M60635_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M60635_IG27\n\u002B       je       SHORT G_M60635_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M60635_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M60635_IG27:\n\u002BG_M60635_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M60635_IG28:\n-       add      rsp, 152\n\u002BG_M60635_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M60635_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M60635_IG29:\n\u002BG_M60635_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M60635_IG30:\n\u002BG_M60635_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M60635_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M60635_IG31:\n\u002BG_M60635_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M60635_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M60635_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M60635_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M60635_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M60635_IG33\n\u002B       je       SHORT G_M60635_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M60635_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M60635_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M60635_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M60635_IG34\n\u002B       je       SHORT G_M60635_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M60635_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M60635_IG34:\n\u002BG_M60635_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M60635_IG35:\n\u002BG_M60635_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=d99e1324) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollection[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=d99e1324) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollection[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollection[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,007 -\u003E 950 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,12 \u002B13,12 @@\n ;  V02 arg2         [V02,T04] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[short,short]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  [rbp-0x64]  ld-addr-op spill-single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V10 tmp1         [V10,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V10 tmp1         [V10,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V12 tmp3         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n@@ -35,17 \u002B35,17 @@\n ;* V24 tmp15        [V24    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V25 tmp16        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V27 tmp18        [V27,T16] (  3,  2   )     int  -\u003E  registers  \n-;  V28 tmp19        [V28,T05] (  4,  7   )     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp20        [V29    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V30 tmp21        [V30,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V31 tmp22        [V31,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V27 tmp18        [V27,T15] (  3,  2   )     int  -\u003E  registers  \n\u002B;  V28 tmp19        [V28,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp20        [V29    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V30 tmp21        [V30,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V31 tmp22        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V33 tmp24        [V33,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V34 tmp25        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V35 tmp26        [V35,T21] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n\u002B;  V35 tmp26        [V35,T20] (  4,  1.88)     int  -\u003E  rcx         \u0022spilling unroll qmark\u0022\n ;* V36 tmp27        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V37 tmp28        [V37,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V38 tmp29        [V38,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V39 tmp30        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V40 tmp31        [V40,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -55,14 \u002B55,14 @@\n ;* V44 tmp35        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V46 tmp37        [V46,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp38        [V47,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V47 tmp38        [V47,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V49 tmp40        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._name (fldOffset=0x0)\u0022 P-DEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V18._value (fldOffset=0x8)\u0022 P-DEP\n-;  V51 tmp42        [V51,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V52 tmp43        [V52,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V51 tmp42        [V51,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V19._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V19._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n-; Lcl frame size = 152\n\u002B; Lcl frame size = 136\n \n G_M39099_IG01:\n        push     rbp\n@@ -71,8 \u002B71,8 @@ G_M39099_IG01:\n        push     r13\n        push     r12\n        push     rbx\n-       sub      rsp, 152\n-       lea      rbp, [rsp\u002B0xC0]\n\u002B       sub      rsp, 136\n\u002B       lea      rbp, [rsp\u002B0xB0]\n        vxorps   xmm8, xmm8, xmm8\n        vmovdqu32 zmmword ptr [rbp-0x70], zmm8\n        xor      eax, eax\n@@ -137,90 \u002B137,70 @@ G_M39099_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[short,short]:Render(MongoDB.Driver.RenderArgs\u00601[short]):MongoDB.Driver.RenderedPipelineDefinition\u00601[short]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x78], rax\n-       test     rax, rax\n-       je       G_M39099_IG29\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M39099_IG06\n-\t\t\t\t\t\t;; size=178 bbWeight=1 PerfScore 43.25\n-G_M39099_IG05:\n-       lea      rsi, [rbp-0x70]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M39099_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M39099_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M39099_IG26\n        lea      rdx, [rbp-0x70]\n-       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.50\n-G_M39099_IG07:\n        test     rax, rax\n-       je       SHORT G_M39099_IG09\n... diff truncated; middle omitted ...\n-G_M39099_IG09:\n\u002BG_M39099_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M39099_IG10:\n\u002BG_M39099_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M39099_IG14\n\u002B       je       SHORT G_M39099_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M39099_IG11:\n\u002BG_M39099_IG08:\n        test     rax, rax\n-       je       SHORT G_M39099_IG15\n\u002B       je       SHORT G_M39099_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M39099_IG12:\n\u002BG_M39099_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M39099_IG15\n\u002B       jne      SHORT G_M39099_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M39099_IG13:\n\u002BG_M39099_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M39099_IG15\n\u002B       je       SHORT G_M39099_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M39099_IG14:\n\u002BG_M39099_IG11:\n        mov      ecx, 1\n-       jmp      SHORT G_M39099_IG22\n\u002B       jmp      SHORT G_M39099_IG19\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M39099_IG15:\n\u002BG_M39099_IG12:\n        mov      rcx, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rcx\n-       je       SHORT G_M39099_IG20\n\u002B       je       SHORT G_M39099_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M39099_IG16:\n\u002BG_M39099_IG13:\n        test     rax, rax\n-       je       SHORT G_M39099_IG18\n\u002B       je       SHORT G_M39099_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M39099_IG17:\n\u002BG_M39099_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M39099_IG19\n\u002B       je       SHORT G_M39099_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M39099_IG18:\n\u002BG_M39099_IG15:\n        xor      ecx, ecx\n-       jmp      SHORT G_M39099_IG21\n\u002B       jmp      SHORT G_M39099_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M39099_IG19:\n\u002BG_M39099_IG16:\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x0C]\n        mov      edi, dword ptr [rax\u002B0x14]\n@@ -228,24 \u002B208,24 @@ G_M39099_IG19:\n        or       rdi, rcx\n        sete     cl\n        movzx    rcx, cl\n-       jmp      SHORT G_M39099_IG21\n\u002B       jmp      SHORT G_M39099_IG18\n \t\t\t\t\t\t;; size=34 bbWeight=0.06 PerfScore 0.47\n-G_M39099_IG20:\n\u002BG_M39099_IG17:\n        mov      ecx, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M39099_IG21:\n\u002BG_M39099_IG18:\n        mov      eax, ecx\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.25\n-G_M39099_IG22:\n\u002BG_M39099_IG19:\n        mov      dword ptr [rbp-0x64], ecx\n        mov      rdi, gword ptr [r13\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.ICollection\u00601[System.__Canon]:get_Count():int:this\n        test     eax, eax\n-       je       G_M39099_IG30\n\u002B       je       G_M39099_IG27\n        cmp      dword ptr [rbp-0x64], 0\n-       je       G_M39099_IG30\n\u002B       je       G_M39099_IG27\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -261,9 \u002B241,9 @@ G_M39099_IG22:\n        mov      r8, 0xD1FFAB1E      ; \u0027aggregate\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x80], rax\n\u002B       mov      gword ptr [rbp-0x78], rax\n \t\t\t\t\t\t;; size=109 bbWeight=1 PerfScore 25.00\n-G_M39099_IG23:\n\u002BG_M39099_IG20:\n        mov      rbx, gword ptr [r15\u002B0x28]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -271,22 \u002B251,22 @@ G_M39099_IG23:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M39099_IG24:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M39099_IG27\n\u002BG_M39099_IG21:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M39099_IG24\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M39099_IG25:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M39099_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M39099_IG26\n\u002B       je       SHORT G_M39099_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -296,11 \u002B276,11 @@ G_M39099_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M39099_IG26:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M39099_IG23:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M39099_IG27\n\u002B       je       SHORT G_M39099_IG24\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -310,11 \u002B290,11 @@ G_M39099_IG26:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M39099_IG27:\n\u002BG_M39099_IG24:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M39099_IG28:\n-       add      rsp, 152\n\u002BG_M39099_IG25:\n\u002B       add      rsp, 136\n        pop      rbx\n        pop      r12\n        pop      r13\n@@ -323,13 \u002B303,13 @@ G_M39099_IG28:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M39099_IG29:\n\u002BG_M39099_IG26:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M39099_IG30:\n\u002BG_M39099_IG27:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -341,16 \u002B321,16 @@ G_M39099_IG30:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M39099_IG31:\n\u002BG_M39099_IG28:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M39099_IG32:\n-       cmp      gword ptr [rbp-0x80], 0\n-       je       SHORT G_M39099_IG34\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M39099_IG29:\n\u002B       cmp      gword ptr [rbp-0x78], 0\n\u002B       je       SHORT G_M39099_IG31\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M39099_IG33\n\u002B       je       SHORT G_M39099_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -360,11 \u002B340,11 @@ G_M39099_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M39099_IG33:\n-       mov      rsi, gword ptr [rbp-0x80]\n\u002BG_M39099_IG30:\n\u002B       mov      rsi, gword ptr [rbp-0x78]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M39099_IG34\n\u002B       je       SHORT G_M39099_IG31\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -374,13 \u002B354,13 @@ G_M39099_IG33:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M39099_IG34:\n\u002BG_M39099_IG31:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M39099_IG35:\n\u002BG_M39099_IG32:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1007, prolog size 61, PerfScore 146.40, instruction count 247, allocated bytes for code 1007 (MethodHash=ebf86744) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollection[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 950, prolog size 61, PerfScore 137.02, instruction count 233, allocated bytes for code 950 (MethodHash=ebf86744) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:AggregateToCollection[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[short,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1007,"DiffBytes":950},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase:AggregateToCollection[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,006 -\u003E 949 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,17 \u002B13,17 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,System.Nullable\u00601[int]]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V10 tmp1         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.NoPipelineInputSerializer\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n-;  V12 tmp3         [V12,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V12 tmp3         [V12,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V14 tmp5         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n-;  V15 tmp6         [V15,T05] (  3,  6   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V15 tmp6         [V15,T04] (  3,  6   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;* V16 tmp7         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V17 tmp8         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V18 tmp9         [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -36,17 \u002B36,17 @@\n ;* V25 tmp16        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp18        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp19        [V28,T16] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp20        [V29,T04] (  4,  7   )     ref  -\u003E  [rbp-0x70]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp21        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp22        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp23        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp19        [V28,T15] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp20        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp21        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp22        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp24        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp25        [V34,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp26        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp27        [V36,T21] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp27        [V36,T20] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp28        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp29        [V38,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V38 tmp29        [V38,T12] (  8,  3   )     ref  -\u003E  [rbp-0x70]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V39 tmp30        [V39,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp31        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp32        [V41,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -56,12 \u002B56,12 @@\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V46 tmp37        [V46    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V47 tmp38        [V47,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V49 tmp40        [V49,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V49 tmp40        [V49,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V51 tmp42        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V52 tmp43        [V52,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V53 tmp44        [V53,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V20._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V53 tmp44        [V53,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V20._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n ; Lcl frame size = 136\n \n@@ -143,90 \u002B143,70 @@ G_M14798_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Nullable\u00601[int]]:Render(MongoDB.Driver.RenderArgs\u00601[System.__Canon]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x70], rax\n-       test     rax, rax\n-       je       G_M14798_IG28\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M14798_IG06\n-\t\t\t\t\t\t;; size=201 bbWeight=1 PerfScore 45.75\n-G_M14798_IG05:\n-       lea      rsi, [rbp-0x68]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M14798_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M14798_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M14798_IG25\n        lea      rdx, [rbp-0x68]\n-       mov      rsi, gword ptr [rbp-0x70]\n... diff truncated; middle omitted ...\n-       je       SHORT G_M14798_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M14798_IG08:\n\u002B       je       SHORT G_M14798_IG06\n\u002B\t\t\t\t\t\t;; size=198 bbWeight=1 PerfScore 45.00\n\u002BG_M14798_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M14798_IG10\n\u002B       jmp      SHORT G_M14798_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M14798_IG09:\n\u002BG_M14798_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M14798_IG10:\n\u002BG_M14798_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M14798_IG14\n\u002B       je       SHORT G_M14798_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M14798_IG11:\n\u002BG_M14798_IG08:\n        test     rax, rax\n-       je       SHORT G_M14798_IG15\n\u002B       je       SHORT G_M14798_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M14798_IG12:\n\u002BG_M14798_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M14798_IG15\n\u002B       jne      SHORT G_M14798_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M14798_IG13:\n\u002BG_M14798_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M14798_IG15\n\u002B       je       SHORT G_M14798_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M14798_IG14:\n\u002BG_M14798_IG11:\n        mov      edi, 1\n-       jmp      SHORT G_M14798_IG21\n\u002B       jmp      SHORT G_M14798_IG18\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M14798_IG15:\n\u002BG_M14798_IG12:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M14798_IG20\n\u002B       je       SHORT G_M14798_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M14798_IG16:\n\u002BG_M14798_IG13:\n        test     rax, rax\n-       je       SHORT G_M14798_IG18\n\u002B       je       SHORT G_M14798_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M14798_IG17:\n\u002BG_M14798_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M14798_IG19\n\u002B       je       SHORT G_M14798_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M14798_IG18:\n\u002BG_M14798_IG15:\n        xor      edi, edi\n-       jmp      SHORT G_M14798_IG21\n\u002B       jmp      SHORT G_M14798_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M14798_IG19:\n\u002BG_M14798_IG16:\n        mov      rdi, 0xD1FFAB1E\n        xor      rdi, qword ptr [rax\u002B0x0C]\n        mov      esi, dword ptr [rax\u002B0x14]\n@@ -234,14 \u002B214,14 @@ G_M14798_IG19:\n        or       rdi, rsi\n        sete     dil\n        movzx    rdi, dil\n-       jmp      SHORT G_M14798_IG21\n\u002B       jmp      SHORT G_M14798_IG18\n \t\t\t\t\t\t;; size=36 bbWeight=0.06 PerfScore 0.47\n-G_M14798_IG20:\n\u002BG_M14798_IG17:\n        mov      edi, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M14798_IG21:\n\u002BG_M14798_IG18:\n        test     edi, edi\n-       je       G_M14798_IG29\n\u002B       je       G_M14798_IG26\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -258,9 \u002B238,9 @@ G_M14798_IG21:\n        xor      r9, r9\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoDatabase:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoDatabase:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x78], rax\n\u002B       mov      gword ptr [rbp-0x70], rax\n \t\t\t\t\t\t;; size=83 bbWeight=1 PerfScore 17.75\n-G_M14798_IG22:\n\u002BG_M14798_IG19:\n        mov      rbx, gword ptr [r15\u002B0x20]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -268,22 \u002B248,22 @@ G_M14798_IG22:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x78]\n\u002B       mov      rsi, gword ptr [rbp-0x70]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M14798_IG23:\n-       cmp      gword ptr [rbp-0x78], 0\n-       je       SHORT G_M14798_IG26\n\u002BG_M14798_IG20:\n\u002B       cmp      gword ptr [rbp-0x70], 0\n\u002B       je       SHORT G_M14798_IG23\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M14798_IG24:\n-       mov      rsi, gword ptr [rbp-0x78]\n\u002BG_M14798_IG21:\n\u002B       mov      rsi, gword ptr [rbp-0x70]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M14798_IG25\n\u002B       je       SHORT G_M14798_IG22\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -293,11 \u002B273,11 @@ G_M14798_IG24:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M14798_IG25:\n-       mov      rsi, gword ptr [rbp-0x78]\n\u002BG_M14798_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x70]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M14798_IG26\n\u002B       je       SHORT G_M14798_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -307,10 \u002B287,10 @@ G_M14798_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M14798_IG26:\n\u002BG_M14798_IG23:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M14798_IG27:\n\u002BG_M14798_IG24:\n        add      rsp, 136\n        pop      rbx\n        pop      r12\n@@ -320,13 \u002B300,13 @@ G_M14798_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M14798_IG28:\n\u002BG_M14798_IG25:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M14798_IG29:\n\u002BG_M14798_IG26:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -338,16 \u002B318,16 @@ G_M14798_IG29:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M14798_IG30:\n\u002BG_M14798_IG27:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M14798_IG31:\n-       cmp      gword ptr [rbp-0x78], 0\n-       je       SHORT G_M14798_IG33\n-       mov      rsi, gword ptr [rbp-0x78]\n\u002BG_M14798_IG28:\n\u002B       cmp      gword ptr [rbp-0x70], 0\n\u002B       je       SHORT G_M14798_IG30\n\u002B       mov      rsi, gword ptr [rbp-0x70]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M14798_IG32\n\u002B       je       SHORT G_M14798_IG29\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -357,11 \u002B337,11 @@ G_M14798_IG31:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M14798_IG32:\n-       mov      rsi, gword ptr [rbp-0x78]\n\u002BG_M14798_IG29:\n\u002B       mov      rsi, gword ptr [rbp-0x70]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M14798_IG33\n\u002B       je       SHORT G_M14798_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -371,13 \u002B351,13 @@ G_M14798_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M14798_IG33:\n\u002BG_M14798_IG30:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M14798_IG34:\n\u002BG_M14798_IG31:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1006, prolog size 65, PerfScore 142.40, instruction count 245, allocated bytes for code 1006 (MethodHash=f31bc631) for method MongoDB.Driver.MongoDatabase:AggregateToCollection[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 949, prolog size 65, PerfScore 133.02, instruction count 231, allocated bytes for code 949 (MethodHash=f31bc631) for method MongoDB.Driver.MongoDatabase:AggregateToCollection[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1006,"DiffBytes":949},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase:AggregateToCollection[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,006 -\u003E 949 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,17 \u002B13,17 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,System.Numerics.Vector\u00601[float]]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V10 tmp1         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.NoPipelineInputSerializer\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n-;  V12 tmp3         [V12,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V12 tmp3         [V12,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V14 tmp5         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V15 tmp6         [V15,T05] (  3,  6   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V15 tmp6         [V15,T04] (  3,  6   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V16 tmp7         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V17 tmp8         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V18 tmp9         [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -36,17 \u002B36,17 @@\n ;* V25 tmp16        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp18        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp19        [V28,T16] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp20        [V29,T04] (  4,  7   )     ref  -\u003E  [rbp-0x70]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp21        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp22        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp23        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp19        [V28,T15] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp20        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp21        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp22        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp24        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp25        [V34,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp26        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp27        [V36,T21] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp27        [V36,T20] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp28        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp29        [V38,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V38 tmp29        [V38,T12] (  8,  3   )     ref  -\u003E  [rbp-0x70]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V39 tmp30        [V39,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp31        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp32        [V41,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -56,12 \u002B56,12 @@\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V46 tmp37        [V46    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V47 tmp38        [V47,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V49 tmp40        [V49,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V49 tmp40        [V49,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V51 tmp42        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V52 tmp43        [V52,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V53 tmp44        [V53,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V20._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V53 tmp44        [V53,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V20._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n ; Lcl frame size = 136\n \n@@ -143,90 \u002B143,70 @@ G_M40462_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Numerics.Vector\u00601[float]]:Render(MongoDB.Driver.RenderArgs\u00601[System.__Canon]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x70], rax\n-       test     rax, rax\n-       je       G_M40462_IG28\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M40462_IG06\n-\t\t\t\t\t\t;; size=201 bbWeight=1 PerfScore 45.75\n-G_M40462_IG05:\n-       lea      rsi, [rbp-0x68]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M40462_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M40462_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M40462_IG25\n        lea      rdx, [rbp-0x68]\n-       mov      rsi, gword ptr [rbp-0x70]\n... diff truncated; middle omitted ...\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M40462_IG08:\n\u002B       je       SHORT G_M40462_IG06\n\u002B\t\t\t\t\t\t;; size=198 bbWeight=1 PerfScore 45.00\n\u002BG_M40462_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M40462_IG10\n\u002B       jmp      SHORT G_M40462_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M40462_IG09:\n\u002BG_M40462_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M40462_IG10:\n\u002BG_M40462_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M40462_IG14\n\u002B       je       SHORT G_M40462_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M40462_IG11:\n\u002BG_M40462_IG08:\n        test     rax, rax\n-       je       SHORT G_M40462_IG15\n\u002B       je       SHORT G_M40462_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M40462_IG12:\n\u002BG_M40462_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M40462_IG15\n\u002B       jne      SHORT G_M40462_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M40462_IG13:\n\u002BG_M40462_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M40462_IG15\n\u002B       je       SHORT G_M40462_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M40462_IG14:\n\u002BG_M40462_IG11:\n        mov      edi, 1\n-       jmp      SHORT G_M40462_IG21\n\u002B       jmp      SHORT G_M40462_IG18\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M40462_IG15:\n\u002BG_M40462_IG12:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M40462_IG20\n\u002B       je       SHORT G_M40462_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M40462_IG16:\n\u002BG_M40462_IG13:\n        test     rax, rax\n-       je       SHORT G_M40462_IG18\n\u002B       je       SHORT G_M40462_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M40462_IG17:\n\u002BG_M40462_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M40462_IG19\n\u002B       je       SHORT G_M40462_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M40462_IG18:\n\u002BG_M40462_IG15:\n        xor      edi, edi\n-       jmp      SHORT G_M40462_IG21\n\u002B       jmp      SHORT G_M40462_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M40462_IG19:\n\u002BG_M40462_IG16:\n        mov      rdi, 0xD1FFAB1E\n        xor      rdi, qword ptr [rax\u002B0x0C]\n        mov      esi, dword ptr [rax\u002B0x14]\n@@ -234,14 \u002B214,14 @@ G_M40462_IG19:\n        or       rdi, rsi\n        sete     dil\n        movzx    rdi, dil\n-       jmp      SHORT G_M40462_IG21\n\u002B       jmp      SHORT G_M40462_IG18\n \t\t\t\t\t\t;; size=36 bbWeight=0.06 PerfScore 0.47\n-G_M40462_IG20:\n\u002BG_M40462_IG17:\n        mov      edi, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M40462_IG21:\n\u002BG_M40462_IG18:\n        test     edi, edi\n-       je       G_M40462_IG29\n\u002B       je       G_M40462_IG26\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -258,9 \u002B238,9 @@ G_M40462_IG21:\n        xor      r9, r9\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoDatabase:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoDatabase:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x78], rax\n\u002B       mov      gword ptr [rbp-0x70], rax\n \t\t\t\t\t\t;; size=83 bbWeight=1 PerfScore 17.75\n-G_M40462_IG22:\n\u002BG_M40462_IG19:\n        mov      rbx, gword ptr [r15\u002B0x20]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -268,22 \u002B248,22 @@ G_M40462_IG22:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x78]\n\u002B       mov      rsi, gword ptr [rbp-0x70]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M40462_IG23:\n-       cmp      gword ptr [rbp-0x78], 0\n-       je       SHORT G_M40462_IG26\n\u002BG_M40462_IG20:\n\u002B       cmp      gword ptr [rbp-0x70], 0\n\u002B       je       SHORT G_M40462_IG23\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M40462_IG24:\n-       mov      rsi, gword ptr [rbp-0x78]\n\u002BG_M40462_IG21:\n\u002B       mov      rsi, gword ptr [rbp-0x70]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M40462_IG25\n\u002B       je       SHORT G_M40462_IG22\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -293,11 \u002B273,11 @@ G_M40462_IG24:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M40462_IG25:\n-       mov      rsi, gword ptr [rbp-0x78]\n\u002BG_M40462_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x70]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M40462_IG26\n\u002B       je       SHORT G_M40462_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -307,10 \u002B287,10 @@ G_M40462_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M40462_IG26:\n\u002BG_M40462_IG23:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M40462_IG27:\n\u002BG_M40462_IG24:\n        add      rsp, 136\n        pop      rbx\n        pop      r12\n@@ -320,13 \u002B300,13 @@ G_M40462_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M40462_IG28:\n\u002BG_M40462_IG25:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M40462_IG29:\n\u002BG_M40462_IG26:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -338,16 \u002B318,16 @@ G_M40462_IG29:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M40462_IG30:\n\u002BG_M40462_IG27:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M40462_IG31:\n-       cmp      gword ptr [rbp-0x78], 0\n-       je       SHORT G_M40462_IG33\n-       mov      rsi, gword ptr [rbp-0x78]\n\u002BG_M40462_IG28:\n\u002B       cmp      gword ptr [rbp-0x70], 0\n\u002B       je       SHORT G_M40462_IG30\n\u002B       mov      rsi, gword ptr [rbp-0x70]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M40462_IG32\n\u002B       je       SHORT G_M40462_IG29\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -357,11 \u002B337,11 @@ G_M40462_IG31:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M40462_IG32:\n-       mov      rsi, gword ptr [rbp-0x78]\n\u002BG_M40462_IG29:\n\u002B       mov      rsi, gword ptr [rbp-0x70]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M40462_IG33\n\u002B       je       SHORT G_M40462_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -371,13 \u002B351,13 @@ G_M40462_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M40462_IG33:\n\u002BG_M40462_IG30:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M40462_IG34:\n\u002BG_M40462_IG31:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1006, prolog size 65, PerfScore 142.40, instruction count 245, allocated bytes for code 1006 (MethodHash=16c861f1) for method MongoDB.Driver.MongoDatabase:AggregateToCollection[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 949, prolog size 65, PerfScore 133.02, instruction count 231, allocated bytes for code 949 (MethodHash=16c861f1) for method MongoDB.Driver.MongoDatabase:AggregateToCollection[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1006,"DiffBytes":949},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase:AggregateToCollection[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,006 -\u003E 949 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,17 \u002B13,17 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,byte]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V10 tmp1         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.NoPipelineInputSerializer\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n-;  V12 tmp3         [V12,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V12 tmp3         [V12,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V14 tmp5         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n-;  V15 tmp6         [V15,T05] (  3,  6   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n\u002B;  V15 tmp6         [V15,T04] (  3,  6   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n ;* V16 tmp7         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V17 tmp8         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V18 tmp9         [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -36,17 \u002B36,17 @@\n ;* V25 tmp16        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp18        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp19        [V28,T16] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp20        [V29,T04] (  4,  7   )     ref  -\u003E  [rbp-0x70]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp21        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp22        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp23        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp19        [V28,T15] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp20        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp21        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp22        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp24        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp25        [V34,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp26        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp27        [V36,T21] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp27        [V36,T20] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp28        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp29        [V38,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V38 tmp29        [V38,T12] (  8,  3   )     ref  -\u003E  [rbp-0x70]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V39 tmp30        [V39,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp31        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp32        [V41,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -56,12 \u002B56,12 @@\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V46 tmp37        [V46    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V47 tmp38        [V47,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V49 tmp40        [V49,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V49 tmp40        [V49,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V51 tmp42        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V52 tmp43        [V52,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V53 tmp44        [V53,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V20._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V53 tmp44        [V53,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V20._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n ; Lcl frame size = 136\n \n@@ -143,90 \u002B143,70 @@ G_M34830_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,byte]:Render(MongoDB.Driver.RenderArgs\u00601[System.__Canon]):MongoDB.Driver.RenderedPipelineDefinition\u00601[byte]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x70], rax\n-       test     rax, rax\n-       je       G_M34830_IG28\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M34830_IG06\n-\t\t\t\t\t\t;; size=201 bbWeight=1 PerfScore 45.75\n-G_M34830_IG05:\n-       lea      rsi, [rbp-0x68]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M34830_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M34830_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M34830_IG25\n        lea      rdx, [rbp-0x68]\n-       mov      rsi, gword ptr [rbp-0x70]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n... diff truncated; middle omitted ...\n-G_M34830_IG07:\n        test     rax, rax\n-       je       SHORT G_M34830_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M34830_IG08:\n\u002B       je       SHORT G_M34830_IG06\n\u002B\t\t\t\t\t\t;; size=198 bbWeight=1 PerfScore 45.00\n\u002BG_M34830_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M34830_IG10\n\u002B       jmp      SHORT G_M34830_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M34830_IG09:\n\u002BG_M34830_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M34830_IG10:\n\u002BG_M34830_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M34830_IG14\n\u002B       je       SHORT G_M34830_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M34830_IG11:\n\u002BG_M34830_IG08:\n        test     rax, rax\n-       je       SHORT G_M34830_IG15\n\u002B       je       SHORT G_M34830_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M34830_IG12:\n\u002BG_M34830_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M34830_IG15\n\u002B       jne      SHORT G_M34830_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M34830_IG13:\n\u002BG_M34830_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M34830_IG15\n\u002B       je       SHORT G_M34830_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M34830_IG14:\n\u002BG_M34830_IG11:\n        mov      edi, 1\n-       jmp      SHORT G_M34830_IG21\n\u002B       jmp      SHORT G_M34830_IG18\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M34830_IG15:\n\u002BG_M34830_IG12:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M34830_IG20\n\u002B       je       SHORT G_M34830_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M34830_IG16:\n\u002BG_M34830_IG13:\n        test     rax, rax\n-       je       SHORT G_M34830_IG18\n\u002B       je       SHORT G_M34830_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M34830_IG17:\n\u002BG_M34830_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M34830_IG19\n\u002B       je       SHORT G_M34830_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M34830_IG18:\n\u002BG_M34830_IG15:\n        xor      edi, edi\n-       jmp      SHORT G_M34830_IG21\n\u002B       jmp      SHORT G_M34830_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M34830_IG19:\n\u002BG_M34830_IG16:\n        mov      rdi, 0xD1FFAB1E\n        xor      rdi, qword ptr [rax\u002B0x0C]\n        mov      esi, dword ptr [rax\u002B0x14]\n@@ -234,14 \u002B214,14 @@ G_M34830_IG19:\n        or       rdi, rsi\n        sete     dil\n        movzx    rdi, dil\n-       jmp      SHORT G_M34830_IG21\n\u002B       jmp      SHORT G_M34830_IG18\n \t\t\t\t\t\t;; size=36 bbWeight=0.06 PerfScore 0.47\n-G_M34830_IG20:\n\u002BG_M34830_IG17:\n        mov      edi, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M34830_IG21:\n\u002BG_M34830_IG18:\n        test     edi, edi\n-       je       G_M34830_IG29\n\u002B       je       G_M34830_IG26\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -258,9 \u002B238,9 @@ G_M34830_IG21:\n        xor      r9, r9\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoDatabase:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoDatabase:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x78], rax\n\u002B       mov      gword ptr [rbp-0x70], rax\n \t\t\t\t\t\t;; size=83 bbWeight=1 PerfScore 17.75\n-G_M34830_IG22:\n\u002BG_M34830_IG19:\n        mov      rbx, gword ptr [r15\u002B0x20]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -268,22 \u002B248,22 @@ G_M34830_IG22:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x78]\n\u002B       mov      rsi, gword ptr [rbp-0x70]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M34830_IG23:\n-       cmp      gword ptr [rbp-0x78], 0\n-       je       SHORT G_M34830_IG26\n\u002BG_M34830_IG20:\n\u002B       cmp      gword ptr [rbp-0x70], 0\n\u002B       je       SHORT G_M34830_IG23\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M34830_IG24:\n-       mov      rsi, gword ptr [rbp-0x78]\n\u002BG_M34830_IG21:\n\u002B       mov      rsi, gword ptr [rbp-0x70]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M34830_IG25\n\u002B       je       SHORT G_M34830_IG22\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -293,11 \u002B273,11 @@ G_M34830_IG24:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M34830_IG25:\n-       mov      rsi, gword ptr [rbp-0x78]\n\u002BG_M34830_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x70]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M34830_IG26\n\u002B       je       SHORT G_M34830_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -307,10 \u002B287,10 @@ G_M34830_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M34830_IG26:\n\u002BG_M34830_IG23:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M34830_IG27:\n\u002BG_M34830_IG24:\n        add      rsp, 136\n        pop      rbx\n        pop      r12\n@@ -320,13 \u002B300,13 @@ G_M34830_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M34830_IG28:\n\u002BG_M34830_IG25:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M34830_IG29:\n\u002BG_M34830_IG26:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -338,16 \u002B318,16 @@ G_M34830_IG29:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M34830_IG30:\n\u002BG_M34830_IG27:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M34830_IG31:\n-       cmp      gword ptr [rbp-0x78], 0\n-       je       SHORT G_M34830_IG33\n-       mov      rsi, gword ptr [rbp-0x78]\n\u002BG_M34830_IG28:\n\u002B       cmp      gword ptr [rbp-0x70], 0\n\u002B       je       SHORT G_M34830_IG30\n\u002B       mov      rsi, gword ptr [rbp-0x70]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M34830_IG32\n\u002B       je       SHORT G_M34830_IG29\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -357,11 \u002B337,11 @@ G_M34830_IG31:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M34830_IG32:\n-       mov      rsi, gword ptr [rbp-0x78]\n\u002BG_M34830_IG29:\n\u002B       mov      rsi, gword ptr [rbp-0x70]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M34830_IG33\n\u002B       je       SHORT G_M34830_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -371,13 \u002B351,13 @@ G_M34830_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M34830_IG33:\n\u002BG_M34830_IG30:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M34830_IG34:\n\u002BG_M34830_IG31:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1006, prolog size 65, PerfScore 142.40, instruction count 245, allocated bytes for code 1006 (MethodHash=aaf977f1) for method MongoDB.Driver.MongoDatabase:AggregateToCollection[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 949, prolog size 65, PerfScore 133.02, instruction count 231, allocated bytes for code 949 (MethodHash=aaf977f1) for method MongoDB.Driver.MongoDatabase:AggregateToCollection[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,byte],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1006,"DiffBytes":949},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase:AggregateToCollection[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,006 -\u003E 949 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,17 \u002B13,17 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,double]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V10 tmp1         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.NoPipelineInputSerializer\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n-;  V12 tmp3         [V12,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V12 tmp3         [V12,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V14 tmp5         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n-;  V15 tmp6         [V15,T05] (  3,  6   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n\u002B;  V15 tmp6         [V15,T04] (  3,  6   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n ;* V16 tmp7         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V17 tmp8         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V18 tmp9         [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -36,17 \u002B36,17 @@\n ;* V25 tmp16        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp18        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp19        [V28,T16] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp20        [V29,T04] (  4,  7   )     ref  -\u003E  [rbp-0x70]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp21        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp22        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp23        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp19        [V28,T15] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp20        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp21        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp22        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp24        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp25        [V34,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp26        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp27        [V36,T21] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp27        [V36,T20] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp28        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp29        [V38,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V38 tmp29        [V38,T12] (  8,  3   )     ref  -\u003E  [rbp-0x70]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V39 tmp30        [V39,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp31        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp32        [V41,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -56,12 \u002B56,12 @@\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V46 tmp37        [V46    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V47 tmp38        [V47,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V49 tmp40        [V49,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V49 tmp40        [V49,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V51 tmp42        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V52 tmp43        [V52,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V53 tmp44        [V53,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V20._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V53 tmp44        [V53,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V20._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n ; Lcl frame size = 136\n \n@@ -143,90 \u002B143,70 @@ G_M40814_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,double]:Render(MongoDB.Driver.RenderArgs\u00601[System.__Canon]):MongoDB.Driver.RenderedPipelineDefinition\u00601[double]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x70], rax\n-       test     rax, rax\n-       je       G_M40814_IG28\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M40814_IG06\n-\t\t\t\t\t\t;; size=201 bbWeight=1 PerfScore 45.75\n-G_M40814_IG05:\n-       lea      rsi, [rbp-0x68]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M40814_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M40814_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M40814_IG25\n        lea      rdx, [rbp-0x68]\n-       mov      rsi, gword ptr [rbp-0x70]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n... diff truncated; middle omitted ...\n-G_M40814_IG07:\n        test     rax, rax\n-       je       SHORT G_M40814_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M40814_IG08:\n\u002B       je       SHORT G_M40814_IG06\n\u002B\t\t\t\t\t\t;; size=198 bbWeight=1 PerfScore 45.00\n\u002BG_M40814_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M40814_IG10\n\u002B       jmp      SHORT G_M40814_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M40814_IG09:\n\u002BG_M40814_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M40814_IG10:\n\u002BG_M40814_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M40814_IG14\n\u002B       je       SHORT G_M40814_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M40814_IG11:\n\u002BG_M40814_IG08:\n        test     rax, rax\n-       je       SHORT G_M40814_IG15\n\u002B       je       SHORT G_M40814_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M40814_IG12:\n\u002BG_M40814_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M40814_IG15\n\u002B       jne      SHORT G_M40814_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M40814_IG13:\n\u002BG_M40814_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M40814_IG15\n\u002B       je       SHORT G_M40814_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M40814_IG14:\n\u002BG_M40814_IG11:\n        mov      edi, 1\n-       jmp      SHORT G_M40814_IG21\n\u002B       jmp      SHORT G_M40814_IG18\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M40814_IG15:\n\u002BG_M40814_IG12:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M40814_IG20\n\u002B       je       SHORT G_M40814_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M40814_IG16:\n\u002BG_M40814_IG13:\n        test     rax, rax\n-       je       SHORT G_M40814_IG18\n\u002B       je       SHORT G_M40814_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M40814_IG17:\n\u002BG_M40814_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M40814_IG19\n\u002B       je       SHORT G_M40814_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M40814_IG18:\n\u002BG_M40814_IG15:\n        xor      edi, edi\n-       jmp      SHORT G_M40814_IG21\n\u002B       jmp      SHORT G_M40814_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M40814_IG19:\n\u002BG_M40814_IG16:\n        mov      rdi, 0xD1FFAB1E\n        xor      rdi, qword ptr [rax\u002B0x0C]\n        mov      esi, dword ptr [rax\u002B0x14]\n@@ -234,14 \u002B214,14 @@ G_M40814_IG19:\n        or       rdi, rsi\n        sete     dil\n        movzx    rdi, dil\n-       jmp      SHORT G_M40814_IG21\n\u002B       jmp      SHORT G_M40814_IG18\n \t\t\t\t\t\t;; size=36 bbWeight=0.06 PerfScore 0.47\n-G_M40814_IG20:\n\u002BG_M40814_IG17:\n        mov      edi, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M40814_IG21:\n\u002BG_M40814_IG18:\n        test     edi, edi\n-       je       G_M40814_IG29\n\u002B       je       G_M40814_IG26\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -258,9 \u002B238,9 @@ G_M40814_IG21:\n        xor      r9, r9\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoDatabase:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoDatabase:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x78], rax\n\u002B       mov      gword ptr [rbp-0x70], rax\n \t\t\t\t\t\t;; size=83 bbWeight=1 PerfScore 17.75\n-G_M40814_IG22:\n\u002BG_M40814_IG19:\n        mov      rbx, gword ptr [r15\u002B0x20]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -268,22 \u002B248,22 @@ G_M40814_IG22:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x78]\n\u002B       mov      rsi, gword ptr [rbp-0x70]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M40814_IG23:\n-       cmp      gword ptr [rbp-0x78], 0\n-       je       SHORT G_M40814_IG26\n\u002BG_M40814_IG20:\n\u002B       cmp      gword ptr [rbp-0x70], 0\n\u002B       je       SHORT G_M40814_IG23\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M40814_IG24:\n-       mov      rsi, gword ptr [rbp-0x78]\n\u002BG_M40814_IG21:\n\u002B       mov      rsi, gword ptr [rbp-0x70]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M40814_IG25\n\u002B       je       SHORT G_M40814_IG22\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -293,11 \u002B273,11 @@ G_M40814_IG24:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M40814_IG25:\n-       mov      rsi, gword ptr [rbp-0x78]\n\u002BG_M40814_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x70]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M40814_IG26\n\u002B       je       SHORT G_M40814_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -307,10 \u002B287,10 @@ G_M40814_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M40814_IG26:\n\u002BG_M40814_IG23:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M40814_IG27:\n\u002BG_M40814_IG24:\n        add      rsp, 136\n        pop      rbx\n        pop      r12\n@@ -320,13 \u002B300,13 @@ G_M40814_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M40814_IG28:\n\u002BG_M40814_IG25:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M40814_IG29:\n\u002BG_M40814_IG26:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -338,16 \u002B318,16 @@ G_M40814_IG29:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M40814_IG30:\n\u002BG_M40814_IG27:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M40814_IG31:\n-       cmp      gword ptr [rbp-0x78], 0\n-       je       SHORT G_M40814_IG33\n-       mov      rsi, gword ptr [rbp-0x78]\n\u002BG_M40814_IG28:\n\u002B       cmp      gword ptr [rbp-0x70], 0\n\u002B       je       SHORT G_M40814_IG30\n\u002B       mov      rsi, gword ptr [rbp-0x70]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M40814_IG32\n\u002B       je       SHORT G_M40814_IG29\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -357,11 \u002B337,11 @@ G_M40814_IG31:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M40814_IG32:\n-       mov      rsi, gword ptr [rbp-0x78]\n\u002BG_M40814_IG29:\n\u002B       mov      rsi, gword ptr [rbp-0x70]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M40814_IG33\n\u002B       je       SHORT G_M40814_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -371,13 \u002B351,13 @@ G_M40814_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M40814_IG33:\n\u002BG_M40814_IG30:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M40814_IG34:\n\u002BG_M40814_IG31:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1006, prolog size 65, PerfScore 142.40, instruction count 245, allocated bytes for code 1006 (MethodHash=4b6e6091) for method MongoDB.Driver.MongoDatabase:AggregateToCollection[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 949, prolog size 65, PerfScore 133.02, instruction count 231, allocated bytes for code 949 (MethodHash=4b6e6091) for method MongoDB.Driver.MongoDatabase:AggregateToCollection[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,double],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1006,"DiffBytes":949},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase:AggregateToCollection[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,006 -\u003E 949 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,17 \u002B13,17 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,int]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V10 tmp1         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.NoPipelineInputSerializer\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n-;  V12 tmp3         [V12,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V12 tmp3         [V12,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V14 tmp5         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n-;  V15 tmp6         [V15,T05] (  3,  6   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n\u002B;  V15 tmp6         [V15,T04] (  3,  6   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n ;* V16 tmp7         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V17 tmp8         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V18 tmp9         [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -36,17 \u002B36,17 @@\n ;* V25 tmp16        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp18        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp19        [V28,T16] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp20        [V29,T04] (  4,  7   )     ref  -\u003E  [rbp-0x70]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp21        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp22        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp23        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp19        [V28,T15] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp20        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp21        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp22        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp24        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp25        [V34,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp26        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp27        [V36,T21] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp27        [V36,T20] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp28        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp29        [V38,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V38 tmp29        [V38,T12] (  8,  3   )     ref  -\u003E  [rbp-0x70]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V39 tmp30        [V39,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp31        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp32        [V41,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -56,12 \u002B56,12 @@\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V46 tmp37        [V46    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V47 tmp38        [V47,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V49 tmp40        [V49,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V49 tmp40        [V49,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V51 tmp42        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V52 tmp43        [V52,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V53 tmp44        [V53,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V20._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V53 tmp44        [V53,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V20._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n ; Lcl frame size = 136\n \n@@ -143,90 \u002B143,70 @@ G_M55758_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,int]:Render(MongoDB.Driver.RenderArgs\u00601[System.__Canon]):MongoDB.Driver.RenderedPipelineDefinition\u00601[int]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x70], rax\n-       test     rax, rax\n-       je       G_M55758_IG28\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M55758_IG06\n-\t\t\t\t\t\t;; size=201 bbWeight=1 PerfScore 45.75\n-G_M55758_IG05:\n-       lea      rsi, [rbp-0x68]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M55758_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M55758_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M55758_IG25\n        lea      rdx, [rbp-0x68]\n-       mov      rsi, gword ptr [rbp-0x70]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n... diff truncated; middle omitted ...\n-G_M55758_IG07:\n        test     rax, rax\n-       je       SHORT G_M55758_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M55758_IG08:\n\u002B       je       SHORT G_M55758_IG06\n\u002B\t\t\t\t\t\t;; size=198 bbWeight=1 PerfScore 45.00\n\u002BG_M55758_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M55758_IG10\n\u002B       jmp      SHORT G_M55758_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M55758_IG09:\n\u002BG_M55758_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M55758_IG10:\n\u002BG_M55758_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M55758_IG14\n\u002B       je       SHORT G_M55758_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M55758_IG11:\n\u002BG_M55758_IG08:\n        test     rax, rax\n-       je       SHORT G_M55758_IG15\n\u002B       je       SHORT G_M55758_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M55758_IG12:\n\u002BG_M55758_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M55758_IG15\n\u002B       jne      SHORT G_M55758_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M55758_IG13:\n\u002BG_M55758_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M55758_IG15\n\u002B       je       SHORT G_M55758_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M55758_IG14:\n\u002BG_M55758_IG11:\n        mov      edi, 1\n-       jmp      SHORT G_M55758_IG21\n\u002B       jmp      SHORT G_M55758_IG18\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M55758_IG15:\n\u002BG_M55758_IG12:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M55758_IG20\n\u002B       je       SHORT G_M55758_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M55758_IG16:\n\u002BG_M55758_IG13:\n        test     rax, rax\n-       je       SHORT G_M55758_IG18\n\u002B       je       SHORT G_M55758_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M55758_IG17:\n\u002BG_M55758_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M55758_IG19\n\u002B       je       SHORT G_M55758_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M55758_IG18:\n\u002BG_M55758_IG15:\n        xor      edi, edi\n-       jmp      SHORT G_M55758_IG21\n\u002B       jmp      SHORT G_M55758_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M55758_IG19:\n\u002BG_M55758_IG16:\n        mov      rdi, 0xD1FFAB1E\n        xor      rdi, qword ptr [rax\u002B0x0C]\n        mov      esi, dword ptr [rax\u002B0x14]\n@@ -234,14 \u002B214,14 @@ G_M55758_IG19:\n        or       rdi, rsi\n        sete     dil\n        movzx    rdi, dil\n-       jmp      SHORT G_M55758_IG21\n\u002B       jmp      SHORT G_M55758_IG18\n \t\t\t\t\t\t;; size=36 bbWeight=0.06 PerfScore 0.47\n-G_M55758_IG20:\n\u002BG_M55758_IG17:\n        mov      edi, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M55758_IG21:\n\u002BG_M55758_IG18:\n        test     edi, edi\n-       je       G_M55758_IG29\n\u002B       je       G_M55758_IG26\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -258,9 \u002B238,9 @@ G_M55758_IG21:\n        xor      r9, r9\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoDatabase:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoDatabase:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x78], rax\n\u002B       mov      gword ptr [rbp-0x70], rax\n \t\t\t\t\t\t;; size=83 bbWeight=1 PerfScore 17.75\n-G_M55758_IG22:\n\u002BG_M55758_IG19:\n        mov      rbx, gword ptr [r15\u002B0x20]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -268,22 \u002B248,22 @@ G_M55758_IG22:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x78]\n\u002B       mov      rsi, gword ptr [rbp-0x70]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M55758_IG23:\n-       cmp      gword ptr [rbp-0x78], 0\n-       je       SHORT G_M55758_IG26\n\u002BG_M55758_IG20:\n\u002B       cmp      gword ptr [rbp-0x70], 0\n\u002B       je       SHORT G_M55758_IG23\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M55758_IG24:\n-       mov      rsi, gword ptr [rbp-0x78]\n\u002BG_M55758_IG21:\n\u002B       mov      rsi, gword ptr [rbp-0x70]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M55758_IG25\n\u002B       je       SHORT G_M55758_IG22\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -293,11 \u002B273,11 @@ G_M55758_IG24:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M55758_IG25:\n-       mov      rsi, gword ptr [rbp-0x78]\n\u002BG_M55758_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x70]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M55758_IG26\n\u002B       je       SHORT G_M55758_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -307,10 \u002B287,10 @@ G_M55758_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M55758_IG26:\n\u002BG_M55758_IG23:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M55758_IG27:\n\u002BG_M55758_IG24:\n        add      rsp, 136\n        pop      rbx\n        pop      r12\n@@ -320,13 \u002B300,13 @@ G_M55758_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M55758_IG28:\n\u002BG_M55758_IG25:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M55758_IG29:\n\u002BG_M55758_IG26:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -338,16 \u002B318,16 @@ G_M55758_IG29:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M55758_IG30:\n\u002BG_M55758_IG27:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M55758_IG31:\n-       cmp      gword ptr [rbp-0x78], 0\n-       je       SHORT G_M55758_IG33\n-       mov      rsi, gword ptr [rbp-0x78]\n\u002BG_M55758_IG28:\n\u002B       cmp      gword ptr [rbp-0x70], 0\n\u002B       je       SHORT G_M55758_IG30\n\u002B       mov      rsi, gword ptr [rbp-0x70]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M55758_IG32\n\u002B       je       SHORT G_M55758_IG29\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -357,11 \u002B337,11 @@ G_M55758_IG31:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M55758_IG32:\n-       mov      rsi, gword ptr [rbp-0x78]\n\u002BG_M55758_IG29:\n\u002B       mov      rsi, gword ptr [rbp-0x70]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M55758_IG33\n\u002B       je       SHORT G_M55758_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -371,13 \u002B351,13 @@ G_M55758_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M55758_IG33:\n\u002BG_M55758_IG30:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M55758_IG34:\n\u002BG_M55758_IG31:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1006, prolog size 65, PerfScore 142.40, instruction count 245, allocated bytes for code 1006 (MethodHash=1c722631) for method MongoDB.Driver.MongoDatabase:AggregateToCollection[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 949, prolog size 65, PerfScore 133.02, instruction count 231, allocated bytes for code 949 (MethodHash=1c722631) for method MongoDB.Driver.MongoDatabase:AggregateToCollection[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,int],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1006,"DiffBytes":949},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase:AggregateToCollection[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,006 -\u003E 949 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,17 \u002B13,17 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,long]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V10 tmp1         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.NoPipelineInputSerializer\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n-;  V12 tmp3         [V12,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V12 tmp3         [V12,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V14 tmp5         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n-;  V15 tmp6         [V15,T05] (  3,  6   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n\u002B;  V15 tmp6         [V15,T04] (  3,  6   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n ;* V16 tmp7         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V17 tmp8         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V18 tmp9         [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -36,17 \u002B36,17 @@\n ;* V25 tmp16        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp18        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp19        [V28,T16] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp20        [V29,T04] (  4,  7   )     ref  -\u003E  [rbp-0x70]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp21        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp22        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp23        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp19        [V28,T15] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp20        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp21        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp22        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp24        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp25        [V34,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp26        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp27        [V36,T21] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp27        [V36,T20] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp28        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp29        [V38,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V38 tmp29        [V38,T12] (  8,  3   )     ref  -\u003E  [rbp-0x70]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V39 tmp30        [V39,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp31        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp32        [V41,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -56,12 \u002B56,12 @@\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V46 tmp37        [V46    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V47 tmp38        [V47,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V49 tmp40        [V49,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V49 tmp40        [V49,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V51 tmp42        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V52 tmp43        [V52,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V53 tmp44        [V53,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V20._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V53 tmp44        [V53,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V20._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n ; Lcl frame size = 136\n \n@@ -143,90 \u002B143,70 @@ G_M18190_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,long]:Render(MongoDB.Driver.RenderArgs\u00601[System.__Canon]):MongoDB.Driver.RenderedPipelineDefinition\u00601[long]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x70], rax\n-       test     rax, rax\n-       je       G_M18190_IG28\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M18190_IG06\n-\t\t\t\t\t\t;; size=201 bbWeight=1 PerfScore 45.75\n-G_M18190_IG05:\n-       lea      rsi, [rbp-0x68]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M18190_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M18190_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M18190_IG25\n        lea      rdx, [rbp-0x68]\n-       mov      rsi, gword ptr [rbp-0x70]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n... diff truncated; middle omitted ...\n-G_M18190_IG07:\n        test     rax, rax\n-       je       SHORT G_M18190_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M18190_IG08:\n\u002B       je       SHORT G_M18190_IG06\n\u002B\t\t\t\t\t\t;; size=198 bbWeight=1 PerfScore 45.00\n\u002BG_M18190_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M18190_IG10\n\u002B       jmp      SHORT G_M18190_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M18190_IG09:\n\u002BG_M18190_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M18190_IG10:\n\u002BG_M18190_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M18190_IG14\n\u002B       je       SHORT G_M18190_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M18190_IG11:\n\u002BG_M18190_IG08:\n        test     rax, rax\n-       je       SHORT G_M18190_IG15\n\u002B       je       SHORT G_M18190_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M18190_IG12:\n\u002BG_M18190_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M18190_IG15\n\u002B       jne      SHORT G_M18190_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M18190_IG13:\n\u002BG_M18190_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M18190_IG15\n\u002B       je       SHORT G_M18190_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M18190_IG14:\n\u002BG_M18190_IG11:\n        mov      edi, 1\n-       jmp      SHORT G_M18190_IG21\n\u002B       jmp      SHORT G_M18190_IG18\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M18190_IG15:\n\u002BG_M18190_IG12:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M18190_IG20\n\u002B       je       SHORT G_M18190_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M18190_IG16:\n\u002BG_M18190_IG13:\n        test     rax, rax\n-       je       SHORT G_M18190_IG18\n\u002B       je       SHORT G_M18190_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M18190_IG17:\n\u002BG_M18190_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M18190_IG19\n\u002B       je       SHORT G_M18190_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M18190_IG18:\n\u002BG_M18190_IG15:\n        xor      edi, edi\n-       jmp      SHORT G_M18190_IG21\n\u002B       jmp      SHORT G_M18190_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M18190_IG19:\n\u002BG_M18190_IG16:\n        mov      rdi, 0xD1FFAB1E\n        xor      rdi, qword ptr [rax\u002B0x0C]\n        mov      esi, dword ptr [rax\u002B0x14]\n@@ -234,14 \u002B214,14 @@ G_M18190_IG19:\n        or       rdi, rsi\n        sete     dil\n        movzx    rdi, dil\n-       jmp      SHORT G_M18190_IG21\n\u002B       jmp      SHORT G_M18190_IG18\n \t\t\t\t\t\t;; size=36 bbWeight=0.06 PerfScore 0.47\n-G_M18190_IG20:\n\u002BG_M18190_IG17:\n        mov      edi, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M18190_IG21:\n\u002BG_M18190_IG18:\n        test     edi, edi\n-       je       G_M18190_IG29\n\u002B       je       G_M18190_IG26\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -258,9 \u002B238,9 @@ G_M18190_IG21:\n        xor      r9, r9\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoDatabase:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoDatabase:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x78], rax\n\u002B       mov      gword ptr [rbp-0x70], rax\n \t\t\t\t\t\t;; size=83 bbWeight=1 PerfScore 17.75\n-G_M18190_IG22:\n\u002BG_M18190_IG19:\n        mov      rbx, gword ptr [r15\u002B0x20]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -268,22 \u002B248,22 @@ G_M18190_IG22:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x78]\n\u002B       mov      rsi, gword ptr [rbp-0x70]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M18190_IG23:\n-       cmp      gword ptr [rbp-0x78], 0\n-       je       SHORT G_M18190_IG26\n\u002BG_M18190_IG20:\n\u002B       cmp      gword ptr [rbp-0x70], 0\n\u002B       je       SHORT G_M18190_IG23\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M18190_IG24:\n-       mov      rsi, gword ptr [rbp-0x78]\n\u002BG_M18190_IG21:\n\u002B       mov      rsi, gword ptr [rbp-0x70]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M18190_IG25\n\u002B       je       SHORT G_M18190_IG22\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -293,11 \u002B273,11 @@ G_M18190_IG24:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M18190_IG25:\n-       mov      rsi, gword ptr [rbp-0x78]\n\u002BG_M18190_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x70]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M18190_IG26\n\u002B       je       SHORT G_M18190_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -307,10 \u002B287,10 @@ G_M18190_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M18190_IG26:\n\u002BG_M18190_IG23:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M18190_IG27:\n\u002BG_M18190_IG24:\n        add      rsp, 136\n        pop      rbx\n        pop      r12\n@@ -320,13 \u002B300,13 @@ G_M18190_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M18190_IG28:\n\u002BG_M18190_IG25:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M18190_IG29:\n\u002BG_M18190_IG26:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -338,16 \u002B318,16 @@ G_M18190_IG29:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M18190_IG30:\n\u002BG_M18190_IG27:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M18190_IG31:\n-       cmp      gword ptr [rbp-0x78], 0\n-       je       SHORT G_M18190_IG33\n-       mov      rsi, gword ptr [rbp-0x78]\n\u002BG_M18190_IG28:\n\u002B       cmp      gword ptr [rbp-0x70], 0\n\u002B       je       SHORT G_M18190_IG30\n\u002B       mov      rsi, gword ptr [rbp-0x70]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M18190_IG32\n\u002B       je       SHORT G_M18190_IG29\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -357,11 \u002B337,11 @@ G_M18190_IG31:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M18190_IG32:\n-       mov      rsi, gword ptr [rbp-0x78]\n\u002BG_M18190_IG29:\n\u002B       mov      rsi, gword ptr [rbp-0x70]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M18190_IG33\n\u002B       je       SHORT G_M18190_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -371,13 \u002B351,13 @@ G_M18190_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M18190_IG33:\n\u002BG_M18190_IG30:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M18190_IG34:\n\u002BG_M18190_IG31:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1006, prolog size 65, PerfScore 142.40, instruction count 245, allocated bytes for code 1006 (MethodHash=9410b8f1) for method MongoDB.Driver.MongoDatabase:AggregateToCollection[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 949, prolog size 65, PerfScore 133.02, instruction count 231, allocated bytes for code 949 (MethodHash=9410b8f1) for method MongoDB.Driver.MongoDatabase:AggregateToCollection[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,long],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1006,"DiffBytes":949},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase:AggregateToCollection[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)","Category":"improvement","Description":"1,006 -\u003E 949 bytes (-57)","ExtraInfo":null,"Diff":"@@ -13,17 \u002B13,17 @@\n ;  V02 arg2         [V02,T03] (  5,  5   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,short]\u003E\n ;  V03 arg3         [V03,T00] (  8,  7.50)     ref  -\u003E  rbx         class-hnd \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def \u003CSystem.Threading.CancellationToken\u003E\n-;  V05 loc0         [V05,T17] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n\u002B;  V05 loc0         [V05,T16] (  2,  2   )  struct (56) [rbp-0x60]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n ;* V06 loc1         [V06    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n-;  V07 loc2         [V07,T18] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n-;  V08 loc3         [V08,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V07 loc2         [V07,T17] (  2,  2   )   ubyte  -\u003E  rdi         ld-addr-op single-def\n\u002B;  V08 loc3         [V08,T14] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V10 tmp1         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.NoPipelineInputSerializer\u003E\n ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n-;  V12 tmp3         [V12,T24] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V12 tmp3         [V12,T23] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;* V13 tmp4         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V14 tmp5         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n-;  V15 tmp6         [V15,T05] (  3,  6   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n\u002B;  V15 tmp6         [V15,T04] (  3,  6   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n ;* V16 tmp7         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V17 tmp8         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V18 tmp9         [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -36,17 \u002B36,17 @@\n ;* V25 tmp16        [V25    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V26 tmp17        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V27 tmp18        [V27    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V28 tmp19        [V28,T16] (  3,  2   )     int  -\u003E  rdi        \n-;  V29 tmp20        [V29,T04] (  4,  7   )     ref  -\u003E  [rbp-0x70]  class-hnd spill-single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V30 tmp21        [V30    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V31 tmp22        [V31,T13] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V32 tmp23        [V32,T14] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V28 tmp19        [V28,T15] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V29 tmp20        [V29,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V30 tmp21        [V30    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp22        [V31,T13] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V32 tmp23        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V33 tmp24        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V34 tmp25        [V34,T09] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V35 tmp26        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V36 tmp27        [V36,T21] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V36 tmp27        [V36,T20] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V37 tmp28        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V38 tmp29        [V38,T12] (  8,  3   )     ref  -\u003E  [rbp-0x78]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n\u002B;  V38 tmp29        [V38,T12] (  8,  3   )     ref  -\u003E  [rbp-0x70]  class-hnd exact EH-live spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.OperationContext\u003E\n ;  V39 tmp30        [V39,T06] (  3,  6   )     ref  -\u003E  rbx         class-hnd single-def \u0022LDVIRTFTN this pointer\u0022 \u003CMongoDB.Driver.IOperationExecutor\u003E\n ;* V40 tmp31        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;  V41 tmp32        [V41,T07] ( 10,  5   )     ref  -\u003E  rbx         class-hnd \u0022dup spill\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n@@ -56,12 \u002B56,12 @@\n ;* V45 tmp36        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;* V46 tmp37        [V46    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationTokenSource\u003E\n ;  V47 tmp38        [V47,T11] (  2,  2   )     ref  -\u003E  r12         single-def \u0022field V04._source (fldOffset=0x0)\u0022 P-INDEP\n-;  V48 tmp39        [V48,T19] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V49 tmp40        [V49,T20] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V48 tmp39        [V48,T18] (  2,  2   )   ubyte  -\u003E  rdx         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V49 tmp40        [V49,T19] (  2,  2   )    long  -\u003E  rcx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V50 tmp41        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._name (fldOffset=0x0)\u0022 P-DEP\n ;* V51 tmp42        [V51    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V19._value (fldOffset=0x8)\u0022 P-DEP\n-;  V52 tmp43        [V52,T22] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V53 tmp44        [V53,T23] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V20._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V52 tmp43        [V52,T21] (  2,  1   )     ref  -\u003E  rax         \u0022field V20._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V53 tmp44        [V53,T22] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V20._value (fldOffset=0x8)\u0022 P-INDEP\n ;\n ; Lcl frame size = 136\n \n@@ -143,90 \u002B143,70 @@ G_M19278_IG04:\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,short]:Render(MongoDB.Driver.RenderArgs\u00601[System.__Canon]):MongoDB.Driver.RenderedPipelineDefinition\u00601[short]:this\n        mov      r13, rax\n-       mov      rax, gword ptr [r13\u002B0x08]\n-       mov      gword ptr [rbp-0x70], rax\n-       test     rax, rax\n-       je       G_M19278_IG28\n-       mov      rsi, rax\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M19278_IG06\n-\t\t\t\t\t\t;; size=201 bbWeight=1 PerfScore 45.75\n-G_M19278_IG05:\n-       lea      rsi, [rbp-0x68]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M19278_IG07\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M19278_IG06:\n\u002B       mov      rsi, gword ptr [r13\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M19278_IG25\n        lea      rdx, [rbp-0x68]\n-       mov      rsi, gword ptr [rbp-0x70]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n... diff truncated; middle omitted ...\n-G_M19278_IG07:\n        test     rax, rax\n-       je       SHORT G_M19278_IG09\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M19278_IG08:\n\u002B       je       SHORT G_M19278_IG06\n\u002B\t\t\t\t\t\t;; size=198 bbWeight=1 PerfScore 45.00\n\u002BG_M19278_IG05:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M19278_IG10\n\u002B       jmp      SHORT G_M19278_IG07\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M19278_IG09:\n\u002BG_M19278_IG06:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M19278_IG10:\n\u002BG_M19278_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M19278_IG14\n\u002B       je       SHORT G_M19278_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M19278_IG11:\n\u002BG_M19278_IG08:\n        test     rax, rax\n-       je       SHORT G_M19278_IG15\n\u002B       je       SHORT G_M19278_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M19278_IG12:\n\u002BG_M19278_IG09:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M19278_IG15\n\u002B       jne      SHORT G_M19278_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M19278_IG13:\n\u002BG_M19278_IG10:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M19278_IG15\n\u002B       je       SHORT G_M19278_IG12\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M19278_IG14:\n\u002BG_M19278_IG11:\n        mov      edi, 1\n-       jmp      SHORT G_M19278_IG21\n\u002B       jmp      SHORT G_M19278_IG18\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M19278_IG15:\n\u002BG_M19278_IG12:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M19278_IG20\n\u002B       je       SHORT G_M19278_IG17\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M19278_IG16:\n\u002BG_M19278_IG13:\n        test     rax, rax\n-       je       SHORT G_M19278_IG18\n\u002B       je       SHORT G_M19278_IG15\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M19278_IG17:\n\u002BG_M19278_IG14:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M19278_IG19\n\u002B       je       SHORT G_M19278_IG16\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M19278_IG18:\n\u002BG_M19278_IG15:\n        xor      edi, edi\n-       jmp      SHORT G_M19278_IG21\n\u002B       jmp      SHORT G_M19278_IG18\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M19278_IG19:\n\u002BG_M19278_IG16:\n        mov      rdi, 0xD1FFAB1E\n        xor      rdi, qword ptr [rax\u002B0x0C]\n        mov      esi, dword ptr [rax\u002B0x14]\n@@ -234,14 \u002B214,14 @@ G_M19278_IG19:\n        or       rdi, rsi\n        sete     dil\n        movzx    rdi, dil\n-       jmp      SHORT G_M19278_IG21\n\u002B       jmp      SHORT G_M19278_IG18\n \t\t\t\t\t\t;; size=36 bbWeight=0.06 PerfScore 0.47\n-G_M19278_IG20:\n\u002BG_M19278_IG17:\n        mov      edi, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M19278_IG21:\n\u002BG_M19278_IG18:\n        test     edi, edi\n-       je       G_M19278_IG29\n\u002B       je       G_M19278_IG26\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rdx, rbx\n@@ -258,9 \u002B238,9 @@ G_M19278_IG21:\n        xor      r9, r9\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.MongoDatabase:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n        call     [rax]MongoDB.Driver.MongoDatabase:CreateOperationContext(MongoDB.Driver.IClientSessionHandle,System.Nullable\u00601[System.TimeSpan],System.String,System.String,System.Threading.CancellationToken):MongoDB.Driver.OperationContext:this\n-       mov      gword ptr [rbp-0x78], rax\n\u002B       mov      gword ptr [rbp-0x70], rax\n \t\t\t\t\t\t;; size=83 bbWeight=1 PerfScore 17.75\n-G_M19278_IG22:\n\u002BG_M19278_IG19:\n        mov      rbx, gword ptr [r15\u002B0x20]\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; MongoDB.Driver.IOperationExecutor\n@@ -268,22 \u002B248,22 @@ G_M19278_IG22:\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR\n        call     [rcx]CORINFO_HELP_VIRTUAL_FUNC_PTR\n        mov      rdi, rbx\n-       mov      rsi, gword ptr [rbp-0x78]\n\u002B       mov      rsi, gword ptr [rbp-0x70]\n        mov      rdx, r14\n        mov      rcx, r13\n        mov      r8d, 1\n        call     rax\n        nop      \n \t\t\t\t\t\t;; size=61 bbWeight=1 PerfScore 11.25\n-G_M19278_IG23:\n-       cmp      gword ptr [rbp-0x78], 0\n-       je       SHORT G_M19278_IG26\n\u002BG_M19278_IG20:\n\u002B       cmp      gword ptr [rbp-0x70], 0\n\u002B       je       SHORT G_M19278_IG23\n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.00\n-G_M19278_IG24:\n-       mov      rsi, gword ptr [rbp-0x78]\n\u002BG_M19278_IG21:\n\u002B       mov      rsi, gword ptr [rbp-0x70]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M19278_IG25\n\u002B       je       SHORT G_M19278_IG22\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -293,11 \u002B273,11 @@ G_M19278_IG24:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M19278_IG25:\n-       mov      rsi, gword ptr [rbp-0x78]\n\u002BG_M19278_IG22:\n\u002B       mov      rsi, gword ptr [rbp-0x70]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M19278_IG26\n\u002B       je       SHORT G_M19278_IG23\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -307,10 \u002B287,10 @@ G_M19278_IG25:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0.50 PerfScore 7.62\n-G_M19278_IG26:\n\u002BG_M19278_IG23:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M19278_IG27:\n\u002BG_M19278_IG24:\n        add      rsp, 136\n        pop      rbx\n        pop      r12\n@@ -320,13 \u002B300,13 @@ G_M19278_IG27:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M19278_IG28:\n\u002BG_M19278_IG25:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M19278_IG29:\n\u002BG_M19278_IG26:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -338,16 \u002B318,16 @@ G_M19278_IG29:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=52 bbWeight=0 PerfScore 0.00\n-G_M19278_IG30:\n\u002BG_M19278_IG27:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M19278_IG31:\n-       cmp      gword ptr [rbp-0x78], 0\n-       je       SHORT G_M19278_IG33\n-       mov      rsi, gword ptr [rbp-0x78]\n\u002BG_M19278_IG28:\n\u002B       cmp      gword ptr [rbp-0x70], 0\n\u002B       je       SHORT G_M19278_IG30\n\u002B       mov      rsi, gword ptr [rbp-0x70]\n        mov      rbx, gword ptr [rsi\u002B0x08]\n        test     rbx, rbx\n-       je       SHORT G_M19278_IG32\n\u002B       je       SHORT G_M19278_IG29\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -357,11 \u002B337,11 @@ G_M19278_IG31:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=53 bbWeight=0 PerfScore 0.00\n-G_M19278_IG32:\n-       mov      rsi, gword ptr [rbp-0x78]\n\u002BG_M19278_IG29:\n\u002B       mov      rsi, gword ptr [rbp-0x70]\n        mov      rbx, gword ptr [rsi\u002B0x10]\n        test     rbx, rbx\n-       je       SHORT G_M19278_IG33\n\u002B       je       SHORT G_M19278_IG30\n        mov      rdi, rbx\n        mov      esi, 1\n        mov      rax, qword ptr [rbx]\n@@ -371,13 \u002B351,13 @@ G_M19278_IG32:\n        mov      rax, 0xD1FFAB1E      ; code for System.GC:SuppressFinalize(System.Object)\n        call     [rax]System.GC:SuppressFinalize(System.Object)\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M19278_IG33:\n\u002BG_M19278_IG30:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M19278_IG34:\n\u002BG_M19278_IG31:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1006, prolog size 65, PerfScore 142.40, instruction count 245, allocated bytes for code 1006 (MethodHash=b921b4b1) for method MongoDB.Driver.MongoDatabase:AggregateToCollection[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n\u002B; Total bytes of code 949, prolog size 65, PerfScore 133.02, instruction count 231, allocated bytes for code 949 (MethodHash=b921b4b1) for method MongoDB.Driver.MongoDatabase:AggregateToCollection[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,short],MongoDB.Driver.AggregateOptions,System.Threading.CancellationToken):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1006,"DiffBytes":949},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.AggregateHelper:RenderAggregatePipeline[System.Nullable\u00601[int],System.Nullable\u00601[int]](MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]],MongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]],byref):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]] (FullOpts)","Category":"improvement","Description":"418 -\u003E 362 bytes (-56)","ExtraInfo":null,"Diff":"@@ -8,13 \u002B8,13 @@\n ; 0 inlinees with PGO data; 5 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T01] (  4,  4   )     ref  -\u003E  [rbp-0x28]  class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]\u003E\n-;  V01 arg1         [V01,T11] (  1,  1   )  struct (56) [rbp\u002B0x10]  do-not-enreg[S] single-def \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V00 arg0         [V00,T00] (  4,  4   )     ref  -\u003E  [rbp-0x20]  class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]\u003E\n\u002B;  V01 arg1         [V01,T10] (  1,  1   )  struct (56) [rbp\u002B0x10]  do-not-enreg[S] single-def \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n ;  V02 arg2         [V02,T03] (  3,  3   )   byref  -\u003E  rbx         single-def\n ;* V03 loc0         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.String\u003E\n ;* V04 loc1         [V04    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op single-def \u003CMongoDB.Bson.BsonElement\u003E\n ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V06 tmp1         [V06,T02] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V06 tmp1         [V06,T01] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;* V07 tmp2         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V08 tmp3         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V09 tmp4         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -25,34 \u002B25,33 @@\n ;* V14 tmp9         [V14    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def\n ;* V15 tmp10        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V16 tmp11        [V16    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V17 tmp12        [V17,T08] (  3,  2   )     int  -\u003E  rdi        \n-;  V18 tmp13        [V18,T00] (  4,  7   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V19 tmp14        [V19    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V20 tmp15        [V20,T06] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V21 tmp16        [V21,T07] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp12        [V17,T07] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V18 tmp13        [V18,T02] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp14        [V19    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V20 tmp15        [V20,T06] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V21 tmp16        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V22 tmp17        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V23 tmp18        [V23,T04] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V24 tmp19        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V25 tmp20        [V25,T09] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n-;  V26 tmp21        [V26,T10] (  2,  1   )     ref  -\u003E  rax         \u0022field V04._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V27 tmp22        [V27,T12] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V04._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V25 tmp20        [V25,T08] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V26 tmp21        [V26,T09] (  2,  1   )     ref  -\u003E  rax         \u0022field V04._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V27 tmp22        [V27,T11] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V04._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V28 tmp23        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V10._name (fldOffset=0x0)\u0022 P-DEP\n ;* V29 tmp24        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V10._value (fldOffset=0x8)\u0022 P-DEP\n ;\n-; Lcl frame size = 72\n\u002B; Lcl frame size = 80\n \n G_M21707_IG01:\n        push     rbp\n        push     r15\n-       push     r14\n        push     rbx\n-       sub      rsp, 72\n\u002B       sub      rsp, 80\n        lea      rbp, [rsp\u002B0x60]\n        xor      eax, eax\n-       mov      qword ptr [rbp-0x20], rax\n-       mov      gword ptr [rbp-0x28], rdi\n\u002B       mov      qword ptr [rbp-0x18], rax\n\u002B       mov      gword ptr [rbp-0x20], rdi\n        mov      rbx, rsi\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 7.25\n\u002B\t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 6.25\n G_M21707_IG02:\n        lea      rdi, [rsp]\n        lea      rsi, [rbp\u002B0x10]\n@@ -78,94 \u002B77,75 @@ G_M21707_IG02:\n        add      rsi, 8\n        add      rdi, 8\n        movsq    \n-       mov      rdi, gword ptr [rbp-0x28]\n\u002B       mov      rdi, gword ptr [rbp-0x20]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]:Render(MongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]:this\n        mov      r15, rax\n-       mov      r14, gword ptr [r15\u002B0x08]\n-       test     r14, r14\n-       je       G_M21707_IG21\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M21707_IG04\n-\t\t\t\t\t\t;; size=151 bbWeight=1 PerfScore 37.00\n-G_M21707_IG03:\n-       lea      rsi, [rbp-0x20]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M21707_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M21707_IG04:\n-       lea      rdx, [rbp-0x20]\n-       mov      rsi, r14\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M21707_IG18\n\u002B       lea      rdx, [rbp-0x18]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M21707_IG05:\n        test     rax, rax\n-       je       SHORT G_M21707_IG07\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M21707_IG06:\n\u002B       je       SHORT G_M21707_IG04\n\u002B\t\t\t\t\t\t;; size=152 bbWeight=1 PerfScore 37.25\n\u002BG_M21707_IG03:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M21707_IG08\n\u002B       jmp      SHORT G_M21707_IG05\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M21707_IG07:\n\u002BG_M21707_IG04:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M21707_IG08:\n\u002BG_M21707_IG05:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M21707_IG12\n\u002B       je       SHORT G_M21707_IG09\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M21707_IG09:\n\u002BG_M21707_IG06:\n        test     rax, rax\n-       je       SHORT G_M21707_IG13\n\u002B       je       SHORT G_M21707_IG10\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M21707_IG10:\n\u002BG_M21707_IG07:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M21707_IG13\n\u002B       jne      SHORT G_M21707_IG10\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M21707_IG11:\n\u002BG_M21707_IG08:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M21707_IG13\n\u002B       je       SHORT G_M21707_IG10\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M21707_IG12:\n\u002BG_M21707_IG09:\n        mov      edi, 1\n-       jmp      SHORT G_M21707_IG19\n\u002B       jmp      SHORT G_M21707_IG16\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M21707_IG13:\n\u002BG_M21707_IG10:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M21707_IG18\n\u002B       je       SHORT G_M21707_IG15\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M21707_IG14:\n\u002BG_M21707_IG11:\n        test     rax, rax\n-       je       SHORT G_M21707_IG16\n\u002B       je       SHORT G_M21707_IG13\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M21707_IG15:\n\u002BG_M21707_IG12:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M21707_IG17\n\u002B       je       SHORT G_M21707_IG14\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M21707_IG16:\n\u002BG_M21707_IG13:\n        xor      edi, edi\n-       jmp      SHORT G_M21707_IG19\n\u002B       jmp      SHORT G_M21707_IG16\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M21707_IG17:\n\u002BG_M21707_IG14:\n        mov      rdi, 0xD1FFAB1E\n        xor      rdi, qword ptr [rax\u002B0x0C]\n        mov      eax, dword ptr [rax\u002B0x14]\n@@ -173,29 \u002B153,28 @@ G_M21707_IG17:\n        or       rax, rdi\n        sete     dil\n        movzx    rdi, dil\n-       jmp      SHORT G_M21707_IG19\n\u002B       jmp      SHORT G_M21707_IG16\n \t\t\t\t\t\t;; size=35 bbWeight=0.06 PerfScore 0.47\n-G_M21707_IG18:\n\u002BG_M21707_IG15:\n        mov      edi, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M21707_IG19:\n\u002BG_M21707_IG16:\n        mov      byte  ptr [rbx], dil\n        mov      rax, r15\n \t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 1.25\n-G_M21707_IG20:\n-       add      rsp, 72\n\u002BG_M21707_IG17:\n\u002B       add      rsp, 80\n        pop      rbx\n-       pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M21707_IG21:\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 2.75\n\u002BG_M21707_IG18:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 418, prolog size 21, PerfScore 71.69, instruction count 113, allocated bytes for code 418 (MethodHash=1144ab34) for method MongoDB.Driver.AggregateHelper:RenderAggregatePipeline[System.Nullable\u00601[int],System.Nullable\u00601[int]](MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]],MongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]],byref):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]] (FullOpts)\n\u002B; Total bytes of code 362, prolog size 19, PerfScore 62.19, instruction count 98, allocated bytes for code 362 (MethodHash=1144ab34) for method MongoDB.Driver.AggregateHelper:RenderAggregatePipeline[System.Nullable\u00601[int],System.Nullable\u00601[int]](MongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]],MongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]],byref):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]] (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":418,"DiffBytes":362},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.AggregateHelper:RenderAggregatePipeline[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]](MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]],MongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]],byref):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]] (FullOpts)","Category":"improvement","Description":"418 -\u003E 362 bytes (-56)","ExtraInfo":null,"Diff":"@@ -8,13 \u002B8,13 @@\n ; 0 inlinees with PGO data; 5 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T01] (  4,  4   )     ref  -\u003E  [rbp-0x28]  class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]]\u003E\n-;  V01 arg1         [V01,T11] (  1,  1   )  struct (56) [rbp\u002B0x10]  do-not-enreg[S] single-def \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V00 arg0         [V00,T00] (  4,  4   )     ref  -\u003E  [rbp-0x20]  class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]]\u003E\n\u002B;  V01 arg1         [V01,T10] (  1,  1   )  struct (56) [rbp\u002B0x10]  do-not-enreg[S] single-def \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V02 arg2         [V02,T03] (  3,  3   )   byref  -\u003E  rbx         single-def\n ;* V03 loc0         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.String\u003E\n ;* V04 loc1         [V04    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op single-def \u003CMongoDB.Bson.BsonElement\u003E\n ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V06 tmp1         [V06,T02] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V06 tmp1         [V06,T01] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;* V07 tmp2         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V08 tmp3         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V09 tmp4         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -25,34 \u002B25,33 @@\n ;* V14 tmp9         [V14    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def\n ;* V15 tmp10        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V16 tmp11        [V16    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V17 tmp12        [V17,T08] (  3,  2   )     int  -\u003E  rdi        \n-;  V18 tmp13        [V18,T00] (  4,  7   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V19 tmp14        [V19    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V20 tmp15        [V20,T06] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V21 tmp16        [V21,T07] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp12        [V17,T07] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V18 tmp13        [V18,T02] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp14        [V19    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V20 tmp15        [V20,T06] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V21 tmp16        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V22 tmp17        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V23 tmp18        [V23,T04] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V24 tmp19        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V25 tmp20        [V25,T09] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n-;  V26 tmp21        [V26,T10] (  2,  1   )     ref  -\u003E  rax         \u0022field V04._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V27 tmp22        [V27,T12] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V04._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V25 tmp20        [V25,T08] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V26 tmp21        [V26,T09] (  2,  1   )     ref  -\u003E  rax         \u0022field V04._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V27 tmp22        [V27,T11] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V04._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V28 tmp23        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V10._name (fldOffset=0x0)\u0022 P-DEP\n ;* V29 tmp24        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V10._value (fldOffset=0x8)\u0022 P-DEP\n ;\n-; Lcl frame size = 72\n\u002B; Lcl frame size = 80\n \n G_M54614_IG01:\n        push     rbp\n        push     r15\n-       push     r14\n        push     rbx\n-       sub      rsp, 72\n\u002B       sub      rsp, 80\n        lea      rbp, [rsp\u002B0x60]\n        xor      eax, eax\n-       mov      qword ptr [rbp-0x20], rax\n-       mov      gword ptr [rbp-0x28], rdi\n\u002B       mov      qword ptr [rbp-0x18], rax\n\u002B       mov      gword ptr [rbp-0x20], rdi\n        mov      rbx, rsi\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 7.25\n\u002B\t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 6.25\n G_M54614_IG02:\n        lea      rdi, [rsp]\n        lea      rsi, [rbp\u002B0x10]\n@@ -78,94 \u002B77,75 @@ G_M54614_IG02:\n        add      rsi, 8\n        add      rdi, 8\n        movsq    \n-       mov      rdi, gword ptr [rbp-0x28]\n\u002B       mov      rdi, gword ptr [rbp-0x20]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]]:Render(MongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]:this\n        mov      r15, rax\n-       mov      r14, gword ptr [r15\u002B0x08]\n-       test     r14, r14\n-       je       G_M54614_IG21\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M54614_IG04\n-\t\t\t\t\t\t;; size=151 bbWeight=1 PerfScore 37.00\n-G_M54614_IG03:\n-       lea      rsi, [rbp-0x20]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M54614_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M54614_IG04:\n-       lea      rdx, [rbp-0x20]\n-       mov      rsi, r14\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M54614_IG18\n\u002B       lea      rdx, [rbp-0x18]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M54614_IG05:\n        test     rax, rax\n-       je       SHORT G_M54614_IG07\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M54614_IG06:\n\u002B       je       SHORT G_M54614_IG04\n\u002B\t\t\t\t\t\t;; size=152 bbWeight=1 PerfScore 37.25\n\u002BG_M54614_IG03:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M54614_IG08\n\u002B       jmp      SHORT G_M54614_IG05\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M54614_IG07:\n\u002BG_M54614_IG04:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M54614_IG08:\n\u002BG_M54614_IG05:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M54614_IG12\n\u002B       je       SHORT G_M54614_IG09\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M54614_IG09:\n\u002BG_M54614_IG06:\n        test     rax, rax\n-       je       SHORT G_M54614_IG13\n\u002B       je       SHORT G_M54614_IG10\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M54614_IG10:\n\u002BG_M54614_IG07:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M54614_IG13\n\u002B       jne      SHORT G_M54614_IG10\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M54614_IG11:\n\u002BG_M54614_IG08:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M54614_IG13\n\u002B       je       SHORT G_M54614_IG10\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M54614_IG12:\n\u002BG_M54614_IG09:\n        mov      edi, 1\n-       jmp      SHORT G_M54614_IG19\n\u002B       jmp      SHORT G_M54614_IG16\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M54614_IG13:\n\u002BG_M54614_IG10:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M54614_IG18\n\u002B       je       SHORT G_M54614_IG15\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M54614_IG14:\n\u002BG_M54614_IG11:\n        test     rax, rax\n-       je       SHORT G_M54614_IG16\n\u002B       je       SHORT G_M54614_IG13\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M54614_IG15:\n\u002BG_M54614_IG12:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M54614_IG17\n\u002B       je       SHORT G_M54614_IG14\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M54614_IG16:\n\u002BG_M54614_IG13:\n        xor      edi, edi\n-       jmp      SHORT G_M54614_IG19\n\u002B       jmp      SHORT G_M54614_IG16\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M54614_IG17:\n\u002BG_M54614_IG14:\n        mov      rdi, 0xD1FFAB1E\n        xor      rdi, qword ptr [rax\u002B0x0C]\n        mov      eax, dword ptr [rax\u002B0x14]\n@@ -173,29 \u002B153,28 @@ G_M54614_IG17:\n        or       rax, rdi\n        sete     dil\n        movzx    rdi, dil\n-       jmp      SHORT G_M54614_IG19\n\u002B       jmp      SHORT G_M54614_IG16\n \t\t\t\t\t\t;; size=35 bbWeight=0.06 PerfScore 0.47\n-G_M54614_IG18:\n\u002BG_M54614_IG15:\n        mov      edi, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M54614_IG19:\n\u002BG_M54614_IG16:\n        mov      byte  ptr [rbx], dil\n        mov      rax, r15\n \t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 1.25\n-G_M54614_IG20:\n-       add      rsp, 72\n\u002BG_M54614_IG17:\n\u002B       add      rsp, 80\n        pop      rbx\n-       pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M54614_IG21:\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 2.75\n\u002BG_M54614_IG18:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 418, prolog size 21, PerfScore 71.69, instruction count 113, allocated bytes for code 418 (MethodHash=ba8e2aa9) for method MongoDB.Driver.AggregateHelper:RenderAggregatePipeline[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]](MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]],MongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]],byref):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]] (FullOpts)\n\u002B; Total bytes of code 362, prolog size 19, PerfScore 62.19, instruction count 98, allocated bytes for code 362 (MethodHash=ba8e2aa9) for method MongoDB.Driver.AggregateHelper:RenderAggregatePipeline[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]](MongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]],MongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]],byref):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]] (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":418,"DiffBytes":362},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.AggregateHelper:RenderAggregatePipeline[System.__Canon,System.Nullable\u00601[int]](MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Nullable\u00601[int]],MongoDB.Driver.RenderArgs\u00601[System.__Canon],byref):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]] (FullOpts)","Category":"improvement","Description":"418 -\u003E 362 bytes (-56)","ExtraInfo":null,"Diff":"@@ -9,13 \u002B9,13 @@\n ; Final local variable assignments\n ;\n ;* V00 TypeCtx      [V00    ] (  0,  0   )    long  -\u003E  zero-ref    single-def\n-;  V01 arg0         [V01,T01] (  4,  4   )     ref  -\u003E  [rbp-0x28]  class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Nullable\u00601[int]]\u003E\n-;  V02 arg1         [V02,T11] (  1,  1   )  struct (56) [rbp\u002B0x10]  do-not-enreg[S] single-def \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n\u002B;  V01 arg0         [V01,T00] (  4,  4   )     ref  -\u003E  [rbp-0x20]  class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Nullable\u00601[int]]\u003E\n\u002B;  V02 arg1         [V02,T10] (  1,  1   )  struct (56) [rbp\u002B0x10]  do-not-enreg[S] single-def \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n ;  V03 arg2         [V03,T03] (  3,  3   )   byref  -\u003E  rbx         single-def\n ;* V04 loc0         [V04    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.String\u003E\n ;* V05 loc1         [V05    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op single-def \u003CMongoDB.Bson.BsonElement\u003E\n ;  V06 OutArgs      [V06    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V07 tmp1         [V07,T02] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V07 tmp1         [V07,T01] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V09 tmp3         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V10 tmp4         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -26,34 \u002B26,33 @@\n ;* V15 tmp9         [V15    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def\n ;* V16 tmp10        [V16    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V17 tmp11        [V17    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V18 tmp12        [V18,T08] (  3,  2   )     int  -\u003E  rdi        \n-;  V19 tmp13        [V19,T00] (  4,  7   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V20 tmp14        [V20    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V21 tmp15        [V21,T06] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V22 tmp16        [V22,T07] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V18 tmp12        [V18,T07] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V19 tmp13        [V19,T02] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V20 tmp14        [V20    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V21 tmp15        [V21,T06] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V24 tmp18        [V24,T04] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V25 tmp19        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V26 tmp20        [V26,T09] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n-;  V27 tmp21        [V27,T10] (  2,  1   )     ref  -\u003E  rax         \u0022field V05._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V28 tmp22        [V28,T12] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V05._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V26 tmp20        [V26,T08] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V27 tmp21        [V27,T09] (  2,  1   )     ref  -\u003E  rax         \u0022field V05._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V28 tmp22        [V28,T11] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V05._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V29 tmp23        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V11._name (fldOffset=0x0)\u0022 P-DEP\n ;* V30 tmp24        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V11._value (fldOffset=0x8)\u0022 P-DEP\n ;\n-; Lcl frame size = 72\n\u002B; Lcl frame size = 80\n \n G_M34675_IG01:\n        push     rbp\n        push     r15\n-       push     r14\n        push     rbx\n-       sub      rsp, 72\n\u002B       sub      rsp, 80\n        lea      rbp, [rsp\u002B0x60]\n        xor      eax, eax\n-       mov      qword ptr [rbp-0x20], rax\n-       mov      gword ptr [rbp-0x28], rsi\n\u002B       mov      qword ptr [rbp-0x18], rax\n\u002B       mov      gword ptr [rbp-0x20], rsi\n        mov      rbx, rdx\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 7.25\n\u002B\t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 6.25\n G_M34675_IG02:\n        lea      rdi, [rsp]\n        lea      rsi, [rbp\u002B0x10]\n@@ -79,94 \u002B78,75 @@ G_M34675_IG02:\n        add      rsi, 8\n        add      rdi, 8\n        movsq    \n-       mov      rdi, gword ptr [rbp-0x28]\n\u002B       mov      rdi, gword ptr [rbp-0x20]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Nullable\u00601[int]]:Render(MongoDB.Driver.RenderArgs\u00601[System.__Canon]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]:this\n        mov      r15, rax\n-       mov      r14, gword ptr [r15\u002B0x08]\n-       test     r14, r14\n-       je       G_M34675_IG21\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M34675_IG04\n-\t\t\t\t\t\t;; size=151 bbWeight=1 PerfScore 37.00\n-G_M34675_IG03:\n-       lea      rsi, [rbp-0x20]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M34675_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M34675_IG04:\n-       lea      rdx, [rbp-0x20]\n-       mov      rsi, r14\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M34675_IG18\n\u002B       lea      rdx, [rbp-0x18]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M34675_IG05:\n        test     rax, rax\n-       je       SHORT G_M34675_IG07\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M34675_IG06:\n\u002B       je       SHORT G_M34675_IG04\n\u002B\t\t\t\t\t\t;; size=152 bbWeight=1 PerfScore 37.25\n\u002BG_M34675_IG03:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M34675_IG08\n\u002B       jmp      SHORT G_M34675_IG05\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M34675_IG07:\n\u002BG_M34675_IG04:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M34675_IG08:\n\u002BG_M34675_IG05:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M34675_IG12\n\u002B       je       SHORT G_M34675_IG09\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M34675_IG09:\n\u002BG_M34675_IG06:\n        test     rax, rax\n-       je       SHORT G_M34675_IG13\n\u002B       je       SHORT G_M34675_IG10\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M34675_IG10:\n\u002BG_M34675_IG07:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M34675_IG13\n\u002B       jne      SHORT G_M34675_IG10\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M34675_IG11:\n\u002BG_M34675_IG08:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M34675_IG13\n\u002B       je       SHORT G_M34675_IG10\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M34675_IG12:\n\u002BG_M34675_IG09:\n        mov      edi, 1\n-       jmp      SHORT G_M34675_IG19\n\u002B       jmp      SHORT G_M34675_IG16\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M34675_IG13:\n\u002BG_M34675_IG10:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M34675_IG18\n\u002B       je       SHORT G_M34675_IG15\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M34675_IG14:\n\u002BG_M34675_IG11:\n        test     rax, rax\n-       je       SHORT G_M34675_IG16\n\u002B       je       SHORT G_M34675_IG13\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M34675_IG15:\n\u002BG_M34675_IG12:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M34675_IG17\n\u002B       je       SHORT G_M34675_IG14\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M34675_IG16:\n\u002BG_M34675_IG13:\n        xor      edi, edi\n-       jmp      SHORT G_M34675_IG19\n\u002B       jmp      SHORT G_M34675_IG16\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M34675_IG17:\n\u002BG_M34675_IG14:\n        mov      rdi, 0xD1FFAB1E\n        xor      rdi, qword ptr [rax\u002B0x0C]\n        mov      eax, dword ptr [rax\u002B0x14]\n@@ -174,29 \u002B154,28 @@ G_M34675_IG17:\n        or       rax, rdi\n        sete     dil\n        movzx    rdi, dil\n-       jmp      SHORT G_M34675_IG19\n\u002B       jmp      SHORT G_M34675_IG16\n \t\t\t\t\t\t;; size=35 bbWeight=0.06 PerfScore 0.47\n-G_M34675_IG18:\n\u002BG_M34675_IG15:\n        mov      edi, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M34675_IG19:\n\u002BG_M34675_IG16:\n        mov      byte  ptr [rbx], dil\n        mov      rax, r15\n \t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 1.25\n-G_M34675_IG20:\n-       add      rsp, 72\n\u002BG_M34675_IG17:\n\u002B       add      rsp, 80\n        pop      rbx\n-       pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M34675_IG21:\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 2.75\n\u002BG_M34675_IG18:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 418, prolog size 21, PerfScore 71.69, instruction count 113, allocated bytes for code 418 (MethodHash=8132788c) for method MongoDB.Driver.AggregateHelper:RenderAggregatePipeline[System.__Canon,System.Nullable\u00601[int]](MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Nullable\u00601[int]],MongoDB.Driver.RenderArgs\u00601[System.__Canon],byref):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]] (FullOpts)\n\u002B; Total bytes of code 362, prolog size 19, PerfScore 62.19, instruction count 98, allocated bytes for code 362 (MethodHash=8132788c) for method MongoDB.Driver.AggregateHelper:RenderAggregatePipeline[System.__Canon,System.Nullable\u00601[int]](MongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Nullable\u00601[int]],MongoDB.Driver.RenderArgs\u00601[System.__Canon],byref):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]] (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":418,"DiffBytes":362},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.AggregateHelper:RenderAggregatePipeline[byte,System.Nullable\u00601[int]](MongoDB.Driver.PipelineDefinition\u00602[byte,System.Nullable\u00601[int]],MongoDB.Driver.RenderArgs\u00601[byte],byref):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]] (FullOpts)","Category":"improvement","Description":"418 -\u003E 362 bytes (-56)","ExtraInfo":null,"Diff":"@@ -8,13 \u002B8,13 @@\n ; 0 inlinees with PGO data; 5 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T01] (  4,  4   )     ref  -\u003E  [rbp-0x28]  class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[byte,System.Nullable\u00601[int]]\u003E\n-;  V01 arg1         [V01,T11] (  1,  1   )  struct (56) [rbp\u002B0x10]  do-not-enreg[S] single-def \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n\u002B;  V00 arg0         [V00,T00] (  4,  4   )     ref  -\u003E  [rbp-0x20]  class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[byte,System.Nullable\u00601[int]]\u003E\n\u002B;  V01 arg1         [V01,T10] (  1,  1   )  struct (56) [rbp\u002B0x10]  do-not-enreg[S] single-def \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n ;  V02 arg2         [V02,T03] (  3,  3   )   byref  -\u003E  rbx         single-def\n ;* V03 loc0         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.String\u003E\n ;* V04 loc1         [V04    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op single-def \u003CMongoDB.Bson.BsonElement\u003E\n ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V06 tmp1         [V06,T02] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V06 tmp1         [V06,T01] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;* V07 tmp2         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V08 tmp3         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V09 tmp4         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -25,34 \u002B25,33 @@\n ;* V14 tmp9         [V14    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def\n ;* V15 tmp10        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V16 tmp11        [V16    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V17 tmp12        [V17,T08] (  3,  2   )     int  -\u003E  rdi        \n-;  V18 tmp13        [V18,T00] (  4,  7   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V19 tmp14        [V19    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V20 tmp15        [V20,T06] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V21 tmp16        [V21,T07] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp12        [V17,T07] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V18 tmp13        [V18,T02] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp14        [V19    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V20 tmp15        [V20,T06] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V21 tmp16        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V22 tmp17        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V23 tmp18        [V23,T04] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V24 tmp19        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V25 tmp20        [V25,T09] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n-;  V26 tmp21        [V26,T10] (  2,  1   )     ref  -\u003E  rax         \u0022field V04._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V27 tmp22        [V27,T12] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V04._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V25 tmp20        [V25,T08] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V26 tmp21        [V26,T09] (  2,  1   )     ref  -\u003E  rax         \u0022field V04._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V27 tmp22        [V27,T11] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V04._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V28 tmp23        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V10._name (fldOffset=0x0)\u0022 P-DEP\n ;* V29 tmp24        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V10._value (fldOffset=0x8)\u0022 P-DEP\n ;\n-; Lcl frame size = 72\n\u002B; Lcl frame size = 80\n \n G_M13951_IG01:\n        push     rbp\n        push     r15\n-       push     r14\n        push     rbx\n-       sub      rsp, 72\n\u002B       sub      rsp, 80\n        lea      rbp, [rsp\u002B0x60]\n        xor      eax, eax\n-       mov      qword ptr [rbp-0x20], rax\n-       mov      gword ptr [rbp-0x28], rdi\n\u002B       mov      qword ptr [rbp-0x18], rax\n\u002B       mov      gword ptr [rbp-0x20], rdi\n        mov      rbx, rsi\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 7.25\n\u002B\t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 6.25\n G_M13951_IG02:\n        lea      rdi, [rsp]\n        lea      rsi, [rbp\u002B0x10]\n@@ -78,94 \u002B77,75 @@ G_M13951_IG02:\n        add      rsi, 8\n        add      rdi, 8\n        movsq    \n-       mov      rdi, gword ptr [rbp-0x28]\n\u002B       mov      rdi, gword ptr [rbp-0x20]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[byte,System.Nullable\u00601[int]]:Render(MongoDB.Driver.RenderArgs\u00601[byte]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]:this\n        mov      r15, rax\n-       mov      r14, gword ptr [r15\u002B0x08]\n-       test     r14, r14\n-       je       G_M13951_IG21\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M13951_IG04\n-\t\t\t\t\t\t;; size=151 bbWeight=1 PerfScore 37.00\n-G_M13951_IG03:\n-       lea      rsi, [rbp-0x20]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M13951_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M13951_IG04:\n-       lea      rdx, [rbp-0x20]\n-       mov      rsi, r14\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M13951_IG18\n\u002B       lea      rdx, [rbp-0x18]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M13951_IG05:\n        test     rax, rax\n-       je       SHORT G_M13951_IG07\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M13951_IG06:\n\u002B       je       SHORT G_M13951_IG04\n\u002B\t\t\t\t\t\t;; size=152 bbWeight=1 PerfScore 37.25\n\u002BG_M13951_IG03:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M13951_IG08\n\u002B       jmp      SHORT G_M13951_IG05\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M13951_IG07:\n\u002BG_M13951_IG04:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M13951_IG08:\n\u002BG_M13951_IG05:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M13951_IG12\n\u002B       je       SHORT G_M13951_IG09\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M13951_IG09:\n\u002BG_M13951_IG06:\n        test     rax, rax\n-       je       SHORT G_M13951_IG13\n\u002B       je       SHORT G_M13951_IG10\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M13951_IG10:\n\u002BG_M13951_IG07:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M13951_IG13\n\u002B       jne      SHORT G_M13951_IG10\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M13951_IG11:\n\u002BG_M13951_IG08:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M13951_IG13\n\u002B       je       SHORT G_M13951_IG10\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M13951_IG12:\n\u002BG_M13951_IG09:\n        mov      edi, 1\n-       jmp      SHORT G_M13951_IG19\n\u002B       jmp      SHORT G_M13951_IG16\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M13951_IG13:\n\u002BG_M13951_IG10:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M13951_IG18\n\u002B       je       SHORT G_M13951_IG15\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M13951_IG14:\n\u002BG_M13951_IG11:\n        test     rax, rax\n-       je       SHORT G_M13951_IG16\n\u002B       je       SHORT G_M13951_IG13\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M13951_IG15:\n\u002BG_M13951_IG12:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M13951_IG17\n\u002B       je       SHORT G_M13951_IG14\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M13951_IG16:\n\u002BG_M13951_IG13:\n        xor      edi, edi\n-       jmp      SHORT G_M13951_IG19\n\u002B       jmp      SHORT G_M13951_IG16\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M13951_IG17:\n\u002BG_M13951_IG14:\n        mov      rdi, 0xD1FFAB1E\n        xor      rdi, qword ptr [rax\u002B0x0C]\n        mov      eax, dword ptr [rax\u002B0x14]\n@@ -173,29 \u002B153,28 @@ G_M13951_IG17:\n        or       rax, rdi\n        sete     dil\n        movzx    rdi, dil\n-       jmp      SHORT G_M13951_IG19\n\u002B       jmp      SHORT G_M13951_IG16\n \t\t\t\t\t\t;; size=35 bbWeight=0.06 PerfScore 0.47\n-G_M13951_IG18:\n\u002BG_M13951_IG15:\n        mov      edi, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M13951_IG19:\n\u002BG_M13951_IG16:\n        mov      byte  ptr [rbx], dil\n        mov      rax, r15\n \t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 1.25\n-G_M13951_IG20:\n-       add      rsp, 72\n\u002BG_M13951_IG17:\n\u002B       add      rsp, 80\n        pop      rbx\n-       pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M13951_IG21:\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 2.75\n\u002BG_M13951_IG18:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 418, prolog size 21, PerfScore 71.69, instruction count 113, allocated bytes for code 418 (MethodHash=22dbc980) for method MongoDB.Driver.AggregateHelper:RenderAggregatePipeline[byte,System.Nullable\u00601[int]](MongoDB.Driver.PipelineDefinition\u00602[byte,System.Nullable\u00601[int]],MongoDB.Driver.RenderArgs\u00601[byte],byref):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]] (FullOpts)\n\u002B; Total bytes of code 362, prolog size 19, PerfScore 62.19, instruction count 98, allocated bytes for code 362 (MethodHash=22dbc980) for method MongoDB.Driver.AggregateHelper:RenderAggregatePipeline[byte,System.Nullable\u00601[int]](MongoDB.Driver.PipelineDefinition\u00602[byte,System.Nullable\u00601[int]],MongoDB.Driver.RenderArgs\u00601[byte],byref):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]] (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":418,"DiffBytes":362},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.AggregateHelper:RenderAggregatePipeline[double,System.Nullable\u00601[int]](MongoDB.Driver.PipelineDefinition\u00602[double,System.Nullable\u00601[int]],MongoDB.Driver.RenderArgs\u00601[double],byref):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]] (FullOpts)","Category":"improvement","Description":"418 -\u003E 362 bytes (-56)","ExtraInfo":null,"Diff":"@@ -8,13 \u002B8,13 @@\n ; 0 inlinees with PGO data; 5 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T01] (  4,  4   )     ref  -\u003E  [rbp-0x28]  class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[double,System.Nullable\u00601[int]]\u003E\n-;  V01 arg1         [V01,T11] (  1,  1   )  struct (56) [rbp\u002B0x10]  do-not-enreg[S] single-def \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n\u002B;  V00 arg0         [V00,T00] (  4,  4   )     ref  -\u003E  [rbp-0x20]  class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[double,System.Nullable\u00601[int]]\u003E\n\u002B;  V01 arg1         [V01,T10] (  1,  1   )  struct (56) [rbp\u002B0x10]  do-not-enreg[S] single-def \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n ;  V02 arg2         [V02,T03] (  3,  3   )   byref  -\u003E  rbx         single-def\n ;* V03 loc0         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.String\u003E\n ;* V04 loc1         [V04    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op single-def \u003CMongoDB.Bson.BsonElement\u003E\n ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V06 tmp1         [V06,T02] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V06 tmp1         [V06,T01] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;* V07 tmp2         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V08 tmp3         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V09 tmp4         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -25,34 \u002B25,33 @@\n ;* V14 tmp9         [V14    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def\n ;* V15 tmp10        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V16 tmp11        [V16    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V17 tmp12        [V17,T08] (  3,  2   )     int  -\u003E  rdi        \n-;  V18 tmp13        [V18,T00] (  4,  7   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V19 tmp14        [V19    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V20 tmp15        [V20,T06] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V21 tmp16        [V21,T07] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp12        [V17,T07] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V18 tmp13        [V18,T02] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp14        [V19    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V20 tmp15        [V20,T06] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V21 tmp16        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V22 tmp17        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V23 tmp18        [V23,T04] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V24 tmp19        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V25 tmp20        [V25,T09] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n-;  V26 tmp21        [V26,T10] (  2,  1   )     ref  -\u003E  rax         \u0022field V04._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V27 tmp22        [V27,T12] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V04._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V25 tmp20        [V25,T08] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V26 tmp21        [V26,T09] (  2,  1   )     ref  -\u003E  rax         \u0022field V04._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V27 tmp22        [V27,T11] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V04._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V28 tmp23        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V10._name (fldOffset=0x0)\u0022 P-DEP\n ;* V29 tmp24        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V10._value (fldOffset=0x8)\u0022 P-DEP\n ;\n-; Lcl frame size = 72\n\u002B; Lcl frame size = 80\n \n G_M53472_IG01:\n        push     rbp\n        push     r15\n-       push     r14\n        push     rbx\n-       sub      rsp, 72\n\u002B       sub      rsp, 80\n        lea      rbp, [rsp\u002B0x60]\n        xor      eax, eax\n-       mov      qword ptr [rbp-0x20], rax\n-       mov      gword ptr [rbp-0x28], rdi\n\u002B       mov      qword ptr [rbp-0x18], rax\n\u002B       mov      gword ptr [rbp-0x20], rdi\n        mov      rbx, rsi\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 7.25\n\u002B\t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 6.25\n G_M53472_IG02:\n        lea      rdi, [rsp]\n        lea      rsi, [rbp\u002B0x10]\n@@ -78,94 \u002B77,75 @@ G_M53472_IG02:\n        add      rsi, 8\n        add      rdi, 8\n        movsq    \n-       mov      rdi, gword ptr [rbp-0x28]\n\u002B       mov      rdi, gword ptr [rbp-0x20]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[double,System.Nullable\u00601[int]]:Render(MongoDB.Driver.RenderArgs\u00601[double]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]:this\n        mov      r15, rax\n-       mov      r14, gword ptr [r15\u002B0x08]\n-       test     r14, r14\n-       je       G_M53472_IG21\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M53472_IG04\n-\t\t\t\t\t\t;; size=151 bbWeight=1 PerfScore 37.00\n-G_M53472_IG03:\n-       lea      rsi, [rbp-0x20]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M53472_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M53472_IG04:\n-       lea      rdx, [rbp-0x20]\n-       mov      rsi, r14\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M53472_IG18\n\u002B       lea      rdx, [rbp-0x18]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M53472_IG05:\n        test     rax, rax\n-       je       SHORT G_M53472_IG07\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M53472_IG06:\n\u002B       je       SHORT G_M53472_IG04\n\u002B\t\t\t\t\t\t;; size=152 bbWeight=1 PerfScore 37.25\n\u002BG_M53472_IG03:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M53472_IG08\n\u002B       jmp      SHORT G_M53472_IG05\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M53472_IG07:\n\u002BG_M53472_IG04:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M53472_IG08:\n\u002BG_M53472_IG05:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M53472_IG12\n\u002B       je       SHORT G_M53472_IG09\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M53472_IG09:\n\u002BG_M53472_IG06:\n        test     rax, rax\n-       je       SHORT G_M53472_IG13\n\u002B       je       SHORT G_M53472_IG10\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M53472_IG10:\n\u002BG_M53472_IG07:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M53472_IG13\n\u002B       jne      SHORT G_M53472_IG10\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M53472_IG11:\n\u002BG_M53472_IG08:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M53472_IG13\n\u002B       je       SHORT G_M53472_IG10\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M53472_IG12:\n\u002BG_M53472_IG09:\n        mov      edi, 1\n-       jmp      SHORT G_M53472_IG19\n\u002B       jmp      SHORT G_M53472_IG16\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M53472_IG13:\n\u002BG_M53472_IG10:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M53472_IG18\n\u002B       je       SHORT G_M53472_IG15\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M53472_IG14:\n\u002BG_M53472_IG11:\n        test     rax, rax\n-       je       SHORT G_M53472_IG16\n\u002B       je       SHORT G_M53472_IG13\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M53472_IG15:\n\u002BG_M53472_IG12:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M53472_IG17\n\u002B       je       SHORT G_M53472_IG14\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M53472_IG16:\n\u002BG_M53472_IG13:\n        xor      edi, edi\n-       jmp      SHORT G_M53472_IG19\n\u002B       jmp      SHORT G_M53472_IG16\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M53472_IG17:\n\u002BG_M53472_IG14:\n        mov      rdi, 0xD1FFAB1E\n        xor      rdi, qword ptr [rax\u002B0x0C]\n        mov      eax, dword ptr [rax\u002B0x14]\n@@ -173,29 \u002B153,28 @@ G_M53472_IG17:\n        or       rax, rdi\n        sete     dil\n        movzx    rdi, dil\n-       jmp      SHORT G_M53472_IG19\n\u002B       jmp      SHORT G_M53472_IG16\n \t\t\t\t\t\t;; size=35 bbWeight=0.06 PerfScore 0.47\n-G_M53472_IG18:\n\u002BG_M53472_IG15:\n        mov      edi, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M53472_IG19:\n\u002BG_M53472_IG16:\n        mov      byte  ptr [rbx], dil\n        mov      rax, r15\n \t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 1.25\n-G_M53472_IG20:\n-       add      rsp, 72\n\u002BG_M53472_IG17:\n\u002B       add      rsp, 80\n        pop      rbx\n-       pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M53472_IG21:\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 2.75\n\u002BG_M53472_IG18:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 418, prolog size 21, PerfScore 71.69, instruction count 113, allocated bytes for code 418 (MethodHash=83f52f1f) for method MongoDB.Driver.AggregateHelper:RenderAggregatePipeline[double,System.Nullable\u00601[int]](MongoDB.Driver.PipelineDefinition\u00602[double,System.Nullable\u00601[int]],MongoDB.Driver.RenderArgs\u00601[double],byref):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]] (FullOpts)\n\u002B; Total bytes of code 362, prolog size 19, PerfScore 62.19, instruction count 98, allocated bytes for code 362 (MethodHash=83f52f1f) for method MongoDB.Driver.AggregateHelper:RenderAggregatePipeline[double,System.Nullable\u00601[int]](MongoDB.Driver.PipelineDefinition\u00602[double,System.Nullable\u00601[int]],MongoDB.Driver.RenderArgs\u00601[double],byref):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]] (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":418,"DiffBytes":362},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.AggregateHelper:RenderAggregatePipeline[int,System.Nullable\u00601[int]](MongoDB.Driver.PipelineDefinition\u00602[int,System.Nullable\u00601[int]],MongoDB.Driver.RenderArgs\u00601[int],byref):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]] (FullOpts)","Category":"improvement","Description":"418 -\u003E 362 bytes (-56)","ExtraInfo":null,"Diff":"@@ -8,13 \u002B8,13 @@\n ; 0 inlinees with PGO data; 5 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T01] (  4,  4   )     ref  -\u003E  [rbp-0x28]  class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[int,System.Nullable\u00601[int]]\u003E\n-;  V01 arg1         [V01,T11] (  1,  1   )  struct (56) [rbp\u002B0x10]  do-not-enreg[S] single-def \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n\u002B;  V00 arg0         [V00,T00] (  4,  4   )     ref  -\u003E  [rbp-0x20]  class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[int,System.Nullable\u00601[int]]\u003E\n\u002B;  V01 arg1         [V01,T10] (  1,  1   )  struct (56) [rbp\u002B0x10]  do-not-enreg[S] single-def \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n ;  V02 arg2         [V02,T03] (  3,  3   )   byref  -\u003E  rbx         single-def\n ;* V03 loc0         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.String\u003E\n ;* V04 loc1         [V04    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op single-def \u003CMongoDB.Bson.BsonElement\u003E\n ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V06 tmp1         [V06,T02] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V06 tmp1         [V06,T01] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;* V07 tmp2         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V08 tmp3         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V09 tmp4         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -25,34 \u002B25,33 @@\n ;* V14 tmp9         [V14    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def\n ;* V15 tmp10        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V16 tmp11        [V16    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V17 tmp12        [V17,T08] (  3,  2   )     int  -\u003E  rdi        \n-;  V18 tmp13        [V18,T00] (  4,  7   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V19 tmp14        [V19    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V20 tmp15        [V20,T06] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V21 tmp16        [V21,T07] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp12        [V17,T07] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V18 tmp13        [V18,T02] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp14        [V19    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V20 tmp15        [V20,T06] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V21 tmp16        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V22 tmp17        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V23 tmp18        [V23,T04] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V24 tmp19        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V25 tmp20        [V25,T09] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n-;  V26 tmp21        [V26,T10] (  2,  1   )     ref  -\u003E  rax         \u0022field V04._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V27 tmp22        [V27,T12] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V04._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V25 tmp20        [V25,T08] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V26 tmp21        [V26,T09] (  2,  1   )     ref  -\u003E  rax         \u0022field V04._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V27 tmp22        [V27,T11] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V04._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V28 tmp23        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V10._name (fldOffset=0x0)\u0022 P-DEP\n ;* V29 tmp24        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V10._value (fldOffset=0x8)\u0022 P-DEP\n ;\n-; Lcl frame size = 72\n\u002B; Lcl frame size = 80\n \n G_M19974_IG01:\n        push     rbp\n        push     r15\n-       push     r14\n        push     rbx\n-       sub      rsp, 72\n\u002B       sub      rsp, 80\n        lea      rbp, [rsp\u002B0x60]\n        xor      eax, eax\n-       mov      qword ptr [rbp-0x20], rax\n-       mov      gword ptr [rbp-0x28], rdi\n\u002B       mov      qword ptr [rbp-0x18], rax\n\u002B       mov      gword ptr [rbp-0x20], rdi\n        mov      rbx, rsi\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 7.25\n\u002B\t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 6.25\n G_M19974_IG02:\n        lea      rdi, [rsp]\n        lea      rsi, [rbp\u002B0x10]\n@@ -78,94 \u002B77,75 @@ G_M19974_IG02:\n        add      rsi, 8\n        add      rdi, 8\n        movsq    \n-       mov      rdi, gword ptr [rbp-0x28]\n\u002B       mov      rdi, gword ptr [rbp-0x20]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[int,System.Nullable\u00601[int]]:Render(MongoDB.Driver.RenderArgs\u00601[int]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]:this\n        mov      r15, rax\n-       mov      r14, gword ptr [r15\u002B0x08]\n-       test     r14, r14\n-       je       G_M19974_IG21\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M19974_IG04\n-\t\t\t\t\t\t;; size=151 bbWeight=1 PerfScore 37.00\n-G_M19974_IG03:\n-       lea      rsi, [rbp-0x20]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M19974_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M19974_IG04:\n-       lea      rdx, [rbp-0x20]\n-       mov      rsi, r14\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M19974_IG18\n\u002B       lea      rdx, [rbp-0x18]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M19974_IG05:\n        test     rax, rax\n-       je       SHORT G_M19974_IG07\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M19974_IG06:\n\u002B       je       SHORT G_M19974_IG04\n\u002B\t\t\t\t\t\t;; size=152 bbWeight=1 PerfScore 37.25\n\u002BG_M19974_IG03:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M19974_IG08\n\u002B       jmp      SHORT G_M19974_IG05\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M19974_IG07:\n\u002BG_M19974_IG04:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M19974_IG08:\n\u002BG_M19974_IG05:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M19974_IG12\n\u002B       je       SHORT G_M19974_IG09\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M19974_IG09:\n\u002BG_M19974_IG06:\n        test     rax, rax\n-       je       SHORT G_M19974_IG13\n\u002B       je       SHORT G_M19974_IG10\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M19974_IG10:\n\u002BG_M19974_IG07:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M19974_IG13\n\u002B       jne      SHORT G_M19974_IG10\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M19974_IG11:\n\u002BG_M19974_IG08:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M19974_IG13\n\u002B       je       SHORT G_M19974_IG10\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M19974_IG12:\n\u002BG_M19974_IG09:\n        mov      edi, 1\n-       jmp      SHORT G_M19974_IG19\n\u002B       jmp      SHORT G_M19974_IG16\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M19974_IG13:\n\u002BG_M19974_IG10:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M19974_IG18\n\u002B       je       SHORT G_M19974_IG15\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M19974_IG14:\n\u002BG_M19974_IG11:\n        test     rax, rax\n-       je       SHORT G_M19974_IG16\n\u002B       je       SHORT G_M19974_IG13\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M19974_IG15:\n\u002BG_M19974_IG12:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M19974_IG17\n\u002B       je       SHORT G_M19974_IG14\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M19974_IG16:\n\u002BG_M19974_IG13:\n        xor      edi, edi\n-       jmp      SHORT G_M19974_IG19\n\u002B       jmp      SHORT G_M19974_IG16\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M19974_IG17:\n\u002BG_M19974_IG14:\n        mov      rdi, 0xD1FFAB1E\n        xor      rdi, qword ptr [rax\u002B0x0C]\n        mov      eax, dword ptr [rax\u002B0x14]\n@@ -173,29 \u002B153,28 @@ G_M19974_IG17:\n        or       rax, rdi\n        sete     dil\n        movzx    rdi, dil\n-       jmp      SHORT G_M19974_IG19\n\u002B       jmp      SHORT G_M19974_IG16\n \t\t\t\t\t\t;; size=35 bbWeight=0.06 PerfScore 0.47\n-G_M19974_IG18:\n\u002BG_M19974_IG15:\n        mov      edi, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M19974_IG19:\n\u002BG_M19974_IG16:\n        mov      byte  ptr [rbx], dil\n        mov      rax, r15\n \t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 1.25\n-G_M19974_IG20:\n-       add      rsp, 72\n\u002BG_M19974_IG17:\n\u002B       add      rsp, 80\n        pop      rbx\n-       pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M19974_IG21:\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 2.75\n\u002BG_M19974_IG18:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 418, prolog size 21, PerfScore 71.69, instruction count 113, allocated bytes for code 418 (MethodHash=4755b1f9) for method MongoDB.Driver.AggregateHelper:RenderAggregatePipeline[int,System.Nullable\u00601[int]](MongoDB.Driver.PipelineDefinition\u00602[int,System.Nullable\u00601[int]],MongoDB.Driver.RenderArgs\u00601[int],byref):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]] (FullOpts)\n\u002B; Total bytes of code 362, prolog size 19, PerfScore 62.19, instruction count 98, allocated bytes for code 362 (MethodHash=4755b1f9) for method MongoDB.Driver.AggregateHelper:RenderAggregatePipeline[int,System.Nullable\u00601[int]](MongoDB.Driver.PipelineDefinition\u00602[int,System.Nullable\u00601[int]],MongoDB.Driver.RenderArgs\u00601[int],byref):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]] (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":418,"DiffBytes":362},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.AggregateHelper:RenderAggregatePipeline[long,System.Nullable\u00601[int]](MongoDB.Driver.PipelineDefinition\u00602[long,System.Nullable\u00601[int]],MongoDB.Driver.RenderArgs\u00601[long],byref):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]] (FullOpts)","Category":"improvement","Description":"418 -\u003E 362 bytes (-56)","ExtraInfo":null,"Diff":"@@ -8,13 \u002B8,13 @@\n ; 0 inlinees with PGO data; 5 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T01] (  4,  4   )     ref  -\u003E  [rbp-0x28]  class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[long,System.Nullable\u00601[int]]\u003E\n-;  V01 arg1         [V01,T11] (  1,  1   )  struct (56) [rbp\u002B0x10]  do-not-enreg[S] single-def \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n\u002B;  V00 arg0         [V00,T00] (  4,  4   )     ref  -\u003E  [rbp-0x20]  class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[long,System.Nullable\u00601[int]]\u003E\n\u002B;  V01 arg1         [V01,T10] (  1,  1   )  struct (56) [rbp\u002B0x10]  do-not-enreg[S] single-def \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n ;  V02 arg2         [V02,T03] (  3,  3   )   byref  -\u003E  rbx         single-def\n ;* V03 loc0         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.String\u003E\n ;* V04 loc1         [V04    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op single-def \u003CMongoDB.Bson.BsonElement\u003E\n ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V06 tmp1         [V06,T02] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V06 tmp1         [V06,T01] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;* V07 tmp2         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V08 tmp3         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V09 tmp4         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -25,34 \u002B25,33 @@\n ;* V14 tmp9         [V14    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def\n ;* V15 tmp10        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V16 tmp11        [V16    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V17 tmp12        [V17,T08] (  3,  2   )     int  -\u003E  rdi        \n-;  V18 tmp13        [V18,T00] (  4,  7   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V19 tmp14        [V19    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V20 tmp15        [V20,T06] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V21 tmp16        [V21,T07] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp12        [V17,T07] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V18 tmp13        [V18,T02] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp14        [V19    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V20 tmp15        [V20,T06] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V21 tmp16        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V22 tmp17        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V23 tmp18        [V23,T04] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V24 tmp19        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V25 tmp20        [V25,T09] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n-;  V26 tmp21        [V26,T10] (  2,  1   )     ref  -\u003E  rax         \u0022field V04._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V27 tmp22        [V27,T12] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V04._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V25 tmp20        [V25,T08] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V26 tmp21        [V26,T09] (  2,  1   )     ref  -\u003E  rax         \u0022field V04._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V27 tmp22        [V27,T11] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V04._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V28 tmp23        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V10._name (fldOffset=0x0)\u0022 P-DEP\n ;* V29 tmp24        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V10._value (fldOffset=0x8)\u0022 P-DEP\n ;\n-; Lcl frame size = 72\n\u002B; Lcl frame size = 80\n \n G_M45695_IG01:\n        push     rbp\n        push     r15\n-       push     r14\n        push     rbx\n-       sub      rsp, 72\n\u002B       sub      rsp, 80\n        lea      rbp, [rsp\u002B0x60]\n        xor      eax, eax\n-       mov      qword ptr [rbp-0x20], rax\n-       mov      gword ptr [rbp-0x28], rdi\n\u002B       mov      qword ptr [rbp-0x18], rax\n\u002B       mov      gword ptr [rbp-0x20], rdi\n        mov      rbx, rsi\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 7.25\n\u002B\t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 6.25\n G_M45695_IG02:\n        lea      rdi, [rsp]\n        lea      rsi, [rbp\u002B0x10]\n@@ -78,94 \u002B77,75 @@ G_M45695_IG02:\n        add      rsi, 8\n        add      rdi, 8\n        movsq    \n-       mov      rdi, gword ptr [rbp-0x28]\n\u002B       mov      rdi, gword ptr [rbp-0x20]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[long,System.Nullable\u00601[int]]:Render(MongoDB.Driver.RenderArgs\u00601[long]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]:this\n        mov      r15, rax\n-       mov      r14, gword ptr [r15\u002B0x08]\n-       test     r14, r14\n-       je       G_M45695_IG21\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M45695_IG04\n-\t\t\t\t\t\t;; size=151 bbWeight=1 PerfScore 37.00\n-G_M45695_IG03:\n-       lea      rsi, [rbp-0x20]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M45695_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M45695_IG04:\n-       lea      rdx, [rbp-0x20]\n-       mov      rsi, r14\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M45695_IG18\n\u002B       lea      rdx, [rbp-0x18]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M45695_IG05:\n        test     rax, rax\n-       je       SHORT G_M45695_IG07\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M45695_IG06:\n\u002B       je       SHORT G_M45695_IG04\n\u002B\t\t\t\t\t\t;; size=152 bbWeight=1 PerfScore 37.25\n\u002BG_M45695_IG03:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M45695_IG08\n\u002B       jmp      SHORT G_M45695_IG05\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M45695_IG07:\n\u002BG_M45695_IG04:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M45695_IG08:\n\u002BG_M45695_IG05:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M45695_IG12\n\u002B       je       SHORT G_M45695_IG09\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M45695_IG09:\n\u002BG_M45695_IG06:\n        test     rax, rax\n-       je       SHORT G_M45695_IG13\n\u002B       je       SHORT G_M45695_IG10\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M45695_IG10:\n\u002BG_M45695_IG07:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M45695_IG13\n\u002B       jne      SHORT G_M45695_IG10\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M45695_IG11:\n\u002BG_M45695_IG08:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M45695_IG13\n\u002B       je       SHORT G_M45695_IG10\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M45695_IG12:\n\u002BG_M45695_IG09:\n        mov      edi, 1\n-       jmp      SHORT G_M45695_IG19\n\u002B       jmp      SHORT G_M45695_IG16\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M45695_IG13:\n\u002BG_M45695_IG10:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M45695_IG18\n\u002B       je       SHORT G_M45695_IG15\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M45695_IG14:\n\u002BG_M45695_IG11:\n        test     rax, rax\n-       je       SHORT G_M45695_IG16\n\u002B       je       SHORT G_M45695_IG13\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M45695_IG15:\n\u002BG_M45695_IG12:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M45695_IG17\n\u002B       je       SHORT G_M45695_IG14\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M45695_IG16:\n\u002BG_M45695_IG13:\n        xor      edi, edi\n-       jmp      SHORT G_M45695_IG19\n\u002B       jmp      SHORT G_M45695_IG16\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M45695_IG17:\n\u002BG_M45695_IG14:\n        mov      rdi, 0xD1FFAB1E\n        xor      rdi, qword ptr [rax\u002B0x0C]\n        mov      eax, dword ptr [rax\u002B0x14]\n@@ -173,29 \u002B153,28 @@ G_M45695_IG17:\n        or       rax, rdi\n        sete     dil\n        movzx    rdi, dil\n-       jmp      SHORT G_M45695_IG19\n\u002B       jmp      SHORT G_M45695_IG16\n \t\t\t\t\t\t;; size=35 bbWeight=0.06 PerfScore 0.47\n-G_M45695_IG18:\n\u002BG_M45695_IG15:\n        mov      edi, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M45695_IG19:\n\u002BG_M45695_IG16:\n        mov      byte  ptr [rbx], dil\n        mov      rax, r15\n \t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 1.25\n-G_M45695_IG20:\n-       add      rsp, 72\n\u002BG_M45695_IG17:\n\u002B       add      rsp, 80\n        pop      rbx\n-       pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M45695_IG21:\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 2.75\n\u002BG_M45695_IG18:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 418, prolog size 21, PerfScore 71.69, instruction count 113, allocated bytes for code 418 (MethodHash=5c174d80) for method MongoDB.Driver.AggregateHelper:RenderAggregatePipeline[long,System.Nullable\u00601[int]](MongoDB.Driver.PipelineDefinition\u00602[long,System.Nullable\u00601[int]],MongoDB.Driver.RenderArgs\u00601[long],byref):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]] (FullOpts)\n\u002B; Total bytes of code 362, prolog size 19, PerfScore 62.19, instruction count 98, allocated bytes for code 362 (MethodHash=5c174d80) for method MongoDB.Driver.AggregateHelper:RenderAggregatePipeline[long,System.Nullable\u00601[int]](MongoDB.Driver.PipelineDefinition\u00602[long,System.Nullable\u00601[int]],MongoDB.Driver.RenderArgs\u00601[long],byref):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]] (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":418,"DiffBytes":362},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.AggregateHelper:RenderAggregatePipeline[short,System.Nullable\u00601[int]](MongoDB.Driver.PipelineDefinition\u00602[short,System.Nullable\u00601[int]],MongoDB.Driver.RenderArgs\u00601[short],byref):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]] (FullOpts)","Category":"improvement","Description":"418 -\u003E 362 bytes (-56)","ExtraInfo":null,"Diff":"@@ -8,13 \u002B8,13 @@\n ; 0 inlinees with PGO data; 5 single block inlinees; 1 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T01] (  4,  4   )     ref  -\u003E  [rbp-0x28]  class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[short,System.Nullable\u00601[int]]\u003E\n-;  V01 arg1         [V01,T11] (  1,  1   )  struct (56) [rbp\u002B0x10]  do-not-enreg[S] single-def \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n\u002B;  V00 arg0         [V00,T00] (  4,  4   )     ref  -\u003E  [rbp-0x20]  class-hnd single-def \u003CMongoDB.Driver.PipelineDefinition\u00602[short,System.Nullable\u00601[int]]\u003E\n\u002B;  V01 arg1         [V01,T10] (  1,  1   )  struct (56) [rbp\u002B0x10]  do-not-enreg[S] single-def \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n ;  V02 arg2         [V02,T03] (  3,  3   )   byref  -\u003E  rbx         single-def\n ;* V03 loc0         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.String\u003E\n ;* V04 loc1         [V04    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op single-def \u003CMongoDB.Bson.BsonElement\u003E\n ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n-;  V06 tmp1         [V06,T02] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V06 tmp1         [V06,T01] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;* V07 tmp2         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V08 tmp3         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V09 tmp4         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n@@ -25,34 \u002B25,33 @@\n ;* V14 tmp9         [V14    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def\n ;* V15 tmp10        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V16 tmp11        [V16    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V17 tmp12        [V17,T08] (  3,  2   )     int  -\u003E  rdi        \n-;  V18 tmp13        [V18,T00] (  4,  7   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V19 tmp14        [V19    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V20 tmp15        [V20,T06] (  5,  3   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V21 tmp16        [V21,T07] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp12        [V17,T07] (  3,  2   )     int  -\u003E  rdi        \n\u002B;  V18 tmp13        [V18,T02] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp14        [V19    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x18]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V20 tmp15        [V20,T06] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V21 tmp16        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V22 tmp17        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V23 tmp18        [V23,T04] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V24 tmp19        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V25 tmp20        [V25,T09] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n-;  V26 tmp21        [V26,T10] (  2,  1   )     ref  -\u003E  rax         \u0022field V04._name (fldOffset=0x0)\u0022 P-INDEP\n-;  V27 tmp22        [V27,T12] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V04._value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V25 tmp20        [V25,T08] (  4,  1.88)     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V26 tmp21        [V26,T09] (  2,  1   )     ref  -\u003E  rax         \u0022field V04._name (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V27 tmp22        [V27,T11] (  1,  0.50)     ref  -\u003E  rdx         \u0022field V04._value (fldOffset=0x8)\u0022 P-INDEP\n ;* V28 tmp23        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V10._name (fldOffset=0x0)\u0022 P-DEP\n ;* V29 tmp24        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V10._value (fldOffset=0x8)\u0022 P-DEP\n ;\n-; Lcl frame size = 72\n\u002B; Lcl frame size = 80\n \n G_M26055_IG01:\n        push     rbp\n        push     r15\n-       push     r14\n        push     rbx\n-       sub      rsp, 72\n\u002B       sub      rsp, 80\n        lea      rbp, [rsp\u002B0x60]\n        xor      eax, eax\n-       mov      qword ptr [rbp-0x20], rax\n-       mov      gword ptr [rbp-0x28], rdi\n\u002B       mov      qword ptr [rbp-0x18], rax\n\u002B       mov      gword ptr [rbp-0x20], rdi\n        mov      rbx, rsi\n-\t\t\t\t\t\t;; size=28 bbWeight=1 PerfScore 7.25\n\u002B\t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 6.25\n G_M26055_IG02:\n        lea      rdi, [rsp]\n        lea      rsi, [rbp\u002B0x10]\n@@ -78,94 \u002B77,75 @@ G_M26055_IG02:\n        add      rsi, 8\n        add      rdi, 8\n        movsq    \n-       mov      rdi, gword ptr [rbp-0x28]\n\u002B       mov      rdi, gword ptr [rbp-0x20]\n        mov      rax, qword ptr [rdi]\n        mov      rax, qword ptr [rax\u002B0x40]\n        call     [rax\u002B0x30]MongoDB.Driver.PipelineDefinition\u00602[short,System.Nullable\u00601[int]]:Render(MongoDB.Driver.RenderArgs\u00601[short]):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]:this\n        mov      r15, rax\n-       mov      r14, gword ptr [r15\u002B0x08]\n-       test     r14, r14\n-       je       G_M26055_IG21\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M26055_IG04\n-\t\t\t\t\t\t;; size=151 bbWeight=1 PerfScore 37.00\n-G_M26055_IG03:\n-       lea      rsi, [rbp-0x20]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M26055_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M26055_IG04:\n-       lea      rdx, [rbp-0x20]\n-       mov      rsi, r14\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M26055_IG18\n\u002B       lea      rdx, [rbp-0x18]\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M26055_IG05:\n        test     rax, rax\n-       je       SHORT G_M26055_IG07\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M26055_IG06:\n\u002B       je       SHORT G_M26055_IG04\n\u002B\t\t\t\t\t\t;; size=152 bbWeight=1 PerfScore 37.25\n\u002BG_M26055_IG03:\n        mov      rdi, rax\n        xor      esi, esi\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x88]\n        call     [rax\u002B0x18]MongoDB.Bson.BsonDocument:GetElement(int):MongoDB.Bson.BsonElement:this\n-       jmp      SHORT G_M26055_IG08\n\u002B       jmp      SHORT G_M26055_IG05\n \t\t\t\t\t\t;; size=20 bbWeight=0.50 PerfScore 4.75\n-G_M26055_IG07:\n\u002BG_M26055_IG04:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M26055_IG08:\n\u002BG_M26055_IG05:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$out\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M26055_IG12\n\u002B       je       SHORT G_M26055_IG09\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 1.50\n-G_M26055_IG09:\n\u002BG_M26055_IG06:\n        test     rax, rax\n-       je       SHORT G_M26055_IG13\n\u002B       je       SHORT G_M26055_IG10\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M26055_IG10:\n\u002BG_M26055_IG07:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M26055_IG13\n\u002B       jne      SHORT G_M26055_IG10\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M26055_IG11:\n\u002BG_M26055_IG08:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       SHORT G_M26055_IG13\n\u002B       je       SHORT G_M26055_IG10\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 4.25\n-G_M26055_IG12:\n\u002BG_M26055_IG09:\n        mov      edi, 1\n-       jmp      SHORT G_M26055_IG19\n\u002B       jmp      SHORT G_M26055_IG16\n \t\t\t\t\t\t;; size=7 bbWeight=0.50 PerfScore 1.12\n-G_M26055_IG13:\n\u002BG_M26055_IG10:\n        mov      rdi, 0xD1FFAB1E      ; \u0027$merge\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M26055_IG18\n\u002B       je       SHORT G_M26055_IG15\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M26055_IG14:\n\u002BG_M26055_IG11:\n        test     rax, rax\n-       je       SHORT G_M26055_IG16\n\u002B       je       SHORT G_M26055_IG13\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M26055_IG15:\n\u002BG_M26055_IG12:\n        cmp      dword ptr [rax\u002B0x08], 6\n-       je       SHORT G_M26055_IG17\n\u002B       je       SHORT G_M26055_IG14\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M26055_IG16:\n\u002BG_M26055_IG13:\n        xor      edi, edi\n-       jmp      SHORT G_M26055_IG19\n\u002B       jmp      SHORT G_M26055_IG16\n \t\t\t\t\t\t;; size=4 bbWeight=0.12 PerfScore 0.28\n-G_M26055_IG17:\n\u002BG_M26055_IG14:\n        mov      rdi, 0xD1FFAB1E\n        xor      rdi, qword ptr [rax\u002B0x0C]\n        mov      eax, dword ptr [rax\u002B0x14]\n@@ -173,29 \u002B153,28 @@ G_M26055_IG17:\n        or       rax, rdi\n        sete     dil\n        movzx    rdi, dil\n-       jmp      SHORT G_M26055_IG19\n\u002B       jmp      SHORT G_M26055_IG16\n \t\t\t\t\t\t;; size=35 bbWeight=0.06 PerfScore 0.47\n-G_M26055_IG18:\n\u002BG_M26055_IG15:\n        mov      edi, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.06\n-G_M26055_IG19:\n\u002BG_M26055_IG16:\n        mov      byte  ptr [rbx], dil\n        mov      rax, r15\n \t\t\t\t\t\t;; size=6 bbWeight=1 PerfScore 1.25\n-G_M26055_IG20:\n-       add      rsp, 72\n\u002BG_M26055_IG17:\n\u002B       add      rsp, 80\n        pop      rbx\n-       pop      r14\n        pop      r15\n        pop      rbp\n        ret      \n-\t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 3.25\n-G_M26055_IG21:\n\u002B\t\t\t\t\t\t;; size=9 bbWeight=1 PerfScore 2.75\n\u002BG_M26055_IG18:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 418, prolog size 21, PerfScore 71.69, instruction count 113, allocated bytes for code 418 (MethodHash=98b29a38) for method MongoDB.Driver.AggregateHelper:RenderAggregatePipeline[short,System.Nullable\u00601[int]](MongoDB.Driver.PipelineDefinition\u00602[short,System.Nullable\u00601[int]],MongoDB.Driver.RenderArgs\u00601[short],byref):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]] (FullOpts)\n\u002B; Total bytes of code 362, prolog size 19, PerfScore 62.19, instruction count 98, allocated bytes for code 362 (MethodHash=98b29a38) for method MongoDB.Driver.AggregateHelper:RenderAggregatePipeline[short,System.Nullable\u00601[int]](MongoDB.Driver.PipelineDefinition\u00602[short,System.Nullable\u00601[int]],MongoDB.Driver.RenderArgs\u00601[short],byref):MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]] (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":418,"DiffBytes":362},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.GridFS.GridFSForwardOnlyDownloadStream\u00601[System.Nullable\u00601[int]]:ProcessNextBatch(System.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]):this (FullOpts)","Category":"improvement","Description":"854 -\u003E 799 bytes (-55)","ExtraInfo":null,"Diff":"@@ -9,8 \u002B9,8 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T00] ( 23, 27.50)     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.GridFS.GridFSForwardOnlyDownloadStream\u00601[System.Nullable\u00601[int]]\u003E\n-;  V01 arg1         [V01,T15] (  4,  4   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V02 loc0         [V02,T24] (  3,  2.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V01 arg1         [V01,T14] (  4,  4   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V02 loc0         [V02,T23] (  3,  2.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V03 loc1         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V04 loc2         [V04    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[MongoDB.Bson.BsonDocument]\u003E\n ;  V05 loc3         [V05,T09] (  3, 10   )     int  -\u003E  [rbp-0x2C]  spill-single-def\n@@ -22,48 \u002B22,48 @@\n ;* V11 tmp4         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V12 tmp5         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;  V13 tmp6         [V13,T12] (  3,  8   )     int  -\u003E  rcx        \n-;  V14 tmp7         [V14,T35] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n-;  V15 tmp8         [V15,T36] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n\u002B;  V14 tmp7         [V14,T34] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n\u002B;  V15 tmp8         [V15,T35] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n ;* V16 tmp9         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp10        [V17,T27] (  2,  2   )    long  -\u003E  r14         \u0022impAppendStmt\u0022\n-;  V18 tmp11        [V18,T28] (  2,  2   )    long  -\u003E  r15         \u0022non-inline candidate call\u0022\n-;  V19 tmp12        [V19,T37] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n-;  V20 tmp13        [V20,T23] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.GridFS.GridFSFileInfo\u00601[System.Nullable\u00601[int]]\u003E\n-;  V21 tmp14        [V21,T14] (  4,  7   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V22 tmp15        [V22    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V17 tmp10        [V17,T26] (  2,  2   )    long  -\u003E  r14         \u0022impAppendStmt\u0022\n\u002B;  V18 tmp11        [V18,T27] (  2,  2   )    long  -\u003E  r15         \u0022non-inline candidate call\u0022\n\u002B;  V19 tmp12        [V19,T36] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n\u002B;  V20 tmp13        [V20,T22] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.GridFS.GridFSFileInfo\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V21 tmp14        [V21,T15] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V22 tmp15        [V22    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V23 tmp16        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V24 tmp17        [V24,T21] (  5,  3.25)     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V25 tmp18        [V25,T22] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V26 tmp19        [V26,T31] (  4,  1.75)     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n\u002B;  V24 tmp17        [V24,T21] (  4,  3.25)     ref  -\u003E  r15         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V25 tmp18        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V26 tmp19        [V26,T30] (  4,  1.75)     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n ;* V27 tmp20        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n ;* V28 tmp21        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp22        [V29,T16] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp22        [V29,T16] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V30 tmp23        [V30    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[MongoDB.Bson.BsonDocument]\u003E\n ;  V31 tmp24        [V31,T04] (  4, 14   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n ;* V32 tmp25        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n ;  V33 tmp26        [V33,T06] (  3, 12   )     ref  -\u003E  rax         class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.GridFS.GridFSFileInfo\u00601[System.Nullable\u00601[int]]\u003E\n ;* V34 tmp27        [V34    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V35 tmp28        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V36 tmp29        [V36,T03] (  4, 15   )     ref  -\u003E  r14         single-def \u0022field V04._list (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V36 tmp29        [V36,T03] (  4, 15   )     ref  -\u003E  r15         single-def \u0022field V04._list (fldOffset=0x0)\u0022 P-INDEP\n ;  V37 tmp30        [V37,T11] (  4,  8   )     ref  -\u003E  [rbp-0x58]  spill-single-def \u0022field V04._current (fldOffset=0x8)\u0022 P-INDEP\n ;  V38 tmp31        [V38,T19] (  2,  5   )     int  -\u003E  r13         single-def \u0022field V04._version (fldOffset=0x10)\u0022 P-INDEP\n-;* V39 tmp32        [V39,T34] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V04._index (fldOffset=0x14)\u0022 P-INDEP\n\u002B;* V39 tmp32        [V39,T33] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V04._index (fldOffset=0x14)\u0022 P-INDEP\n ;* V40 tmp33        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V30._list (fldOffset=0x0)\u0022 P-INDEP\n ;* V41 tmp34        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V30._current (fldOffset=0x8)\u0022 P-INDEP\n-;  V42 tmp35        [V42,T29] (  2,  2   )     int  -\u003E  r13         single-def \u0022field V30._version (fldOffset=0x10)\u0022 P-INDEP\n\u002B;  V42 tmp35        [V42,T28] (  2,  2   )     int  -\u003E  r13         single-def \u0022field V30._version (fldOffset=0x10)\u0022 P-INDEP\n ;* V43 tmp36        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V30._index (fldOffset=0x14)\u0022 P-INDEP\n ;  V44 tmp37        [V44,T17] (  3,  6   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n ;  V45 tmp38        [V45,T07] (  3, 12   )     ref  -\u003E  rdi         \u0022arr expr\u0022\n ;  V46 tmp39        [V46,T08] (  3, 12   )     ref  -\u003E  rax         \u0022argument with side effect\u0022\n ;  V47 cse0         [V47,T18] (  3,  6   )    long  -\u003E  [rbp-0x40]  spill-single-def \u0022CSE #14: moderate\u0022\n-;  V48 cse1         [V48,T26] (  3,  2.25)    long  -\u003E  r13         \u0022CSE #02: moderate\u0022\n\u002B;  V48 cse1         [V48,T25] (  3,  2.25)    long  -\u003E  r13         \u0022CSE #02: moderate\u0022\n ;  V49 cse2         [V49,T05] (  4, 12   )     int  -\u003E  [rbp-0x44]  spill-single-def \u0022CSE #07: moderate\u0022\n-;  V50 cse3         [V50,T30] (  2,  2   )     int  -\u003E  r13         \u0022CSE #04: moderate\u0022\n-;  V51 cse4         [V51,T32] (  3,  1.50)     ref  -\u003E  rdi         \u0022CSE #03: conservative\u0022\n-;  V52 cse5         [V52,T20] (  3,  4   )     ref  -\u003E  r15         \u0022CSE #11: moderate\u0022\n\u002B;  V50 cse3         [V50,T29] (  2,  2   )     int  -\u003E  r13         \u0022CSE #04: moderate\u0022\n\u002B;  V51 cse4         [V51,T31] (  3,  1.50)     ref  -\u003E  rdi         \u0022CSE #03: conservative\u0022\n\u002B;  V52 cse5         [V52,T20] (  3,  4   )     ref  -\u003E  r14         \u0022CSE #11: moderate\u0022\n ;  V53 rat0         [V53,T02] (  6, 17   )    long  -\u003E  r12         \u0022Widened IV V39\u0022\n-;  V54 rat1         [V54,T25] (  4,  2.25)     ref  -\u003E  rcx         \u0022replacement local\u0022\n-;  V55 rat2         [V55,T33] (  3,  1.25)    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n\u002B;  V54 rat1         [V54,T24] (  4,  2.25)     ref  -\u003E  rcx         \u0022replacement local\u0022\n\u002B;  V55 rat2         [V55,T32] (  3,  1.25)    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n... diff truncated; middle omitted ...\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       mov      r14, rax\n-       jmp      SHORT G_M10262_IG07\n-\t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 5.00\n-G_M10262_IG06:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x30]\n\u002B       test     rsi, rsi\n\u002B       je       G_M10262_IG18\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      r14, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M10262_IG07:\n\u002B       mov      r15, rax\n        cmp      byte  ptr [rbp-0x38], 0\n-       je       G_M10262_IG22\n-       mov      rdi, r14\n-       mov      r15, 0xD1FFAB1E      ; \u0027n\u0027\n-       mov      rsi, r15\n-       mov      rax, qword ptr [r14]\n\u002B       je       G_M10262_IG19\n\u002B       mov      rdi, r15\n\u002B       mov      r14, 0xD1FFAB1E      ; \u0027n\u0027\n\u002B       mov      rsi, r14\n\u002B       mov      rax, qword ptr [r15]\n        mov      r13, qword ptr [rax\u002B0x48]\n        call     [r13]MongoDB.Bson.BsonValue:get_Item(System.String):MongoDB.Bson.BsonValue:this\n        mov      rdi, rax\n@@ -152,49 \u002B132,49 @@ G_M10262_IG07:\n        mov      edi, dword ptr [rbx\u002B0x2C]\n        inc      edi\n        cmp      eax, edi\n-       jne      SHORT G_M10262_IG11\n-\t\t\t\t\t\t;; size=59 bbWeight=1 PerfScore 20.50\n-G_M10262_IG08:\n-       mov      rdi, r14\n\u002B       jne      SHORT G_M10262_IG08\n\u002B\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 28.00\n\u002BG_M10262_IG05:\n\u002B       mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; \u0027data\u0027\n        call     [r13]MongoDB.Bson.BsonValue:get_Item(System.String):MongoDB.Bson.BsonValue:this\n        cmp      byte  ptr [rax], al\n        mov      rcx, rax\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonBinaryData\n        cmp      qword ptr [rcx], rdi\n-       je       SHORT G_M10262_IG10\n\u002B       je       SHORT G_M10262_IG07\n \t\t\t\t\t\t;; size=37 bbWeight=0.25 PerfScore 2.25\n-G_M10262_IG09:\n\u002BG_M10262_IG06:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        mov      rcx, rax\n \t\t\t\t\t\t;; size=18 bbWeight=0.12 PerfScore 0.47\n-G_M10262_IG10:\n\u002BG_M10262_IG07:\n        mov      rsi, gword ptr [rcx\u002B0x08]\n        cmp      dword ptr [rsi\u002B0x08], 0\n-       jne      SHORT G_M10262_IG11\n\u002B       jne      SHORT G_M10262_IG08\n        mov      rdi, gword ptr [rbx\u002B0x30]\n        mov      esi, dword ptr [rdi\u002B0x10]\n        dec      esi\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:RemoveAt(int):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:RemoveAt(int):this\n \t\t\t\t\t\t;; size=31 bbWeight=0.50 PerfScore 6.25\n-G_M10262_IG11:\n-       mov      r14, gword ptr [rbx\u002B0x30]\n-       mov      r13d, dword ptr [r14\u002B0x14]\n\u002BG_M10262_IG08:\n\u002B       mov      r15, gword ptr [rbx\u002B0x30]\n\u002B       mov      r13d, dword ptr [r15\u002B0x14]\n        xor      r12d, r12d\n-       jmp      G_M10262_IG18\n\u002B       jmp      G_M10262_IG15\n \t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 6.25\n-G_M10262_IG12:\n-       mov      rdi, gword ptr [r14\u002B0x08]\n\u002BG_M10262_IG09:\n\u002B       mov      rdi, gword ptr [r15\u002B0x08]\n        cmp      r12d, dword ptr [rdi\u002B0x08]\n-       jae      G_M10262_IG26\n\u002B       jae      G_M10262_IG23\n        mov      rax, gword ptr [rdi\u002B8*r12\u002B0x10]\n        mov      gword ptr [rbp-0x58], rax\n        inc      r12d\n        mov      rdi, rax\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        mov      rcx, qword ptr [rax]\n        mov      rcx, qword ptr [rcx\u002B0x48]\n        mov      qword ptr [rbp-0x40], rcx\n@@ -212,32 \u002B192,32 @@ G_M10262_IG12:\n        mov      rcx, rax\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonBinaryData\n        cmp      qword ptr [rcx], rdi\n-       je       SHORT G_M10262_IG14\n\u002B       je       SHORT G_M10262_IG11\n \t\t\t\t\t\t;; size=101 bbWeight=2 PerfScore 71.50\n-G_M10262_IG13:\n\u002BG_M10262_IG10:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        mov      rcx, rax\n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 3.75\n-G_M10262_IG14:\n\u002BG_M10262_IG11:\n        mov      rax, gword ptr [rcx\u002B0x08]\n        mov      gword ptr [rbp-0x50], rax\n        mov      edi, dword ptr [rbx\u002B0x5C]\n        mov      dword ptr [rbp-0x44], edi\n        mov      ecx, dword ptr [rbp-0x2C]\n        cmp      ecx, edi\n-       jne      G_M10262_IG23\n\u002B       jne      G_M10262_IG20\n        inc      edi\n        mov      dword ptr [rbx\u002B0x5C], edi\n        cmp      ecx, dword ptr [rbx\u002B0x2C]\n-       jne      SHORT G_M10262_IG16\n\u002B       jne      SHORT G_M10262_IG13\n \t\t\t\t\t\t;; size=35 bbWeight=4 PerfScore 50.00\n-G_M10262_IG15:\n\u002BG_M10262_IG12:\n        mov      ecx, dword ptr [rbx\u002B0x58]\n-       jmp      SHORT G_M10262_IG17\n\u002B       jmp      SHORT G_M10262_IG14\n \t\t\t\t\t\t;; size=5 bbWeight=2 PerfScore 8.00\n-G_M10262_IG16:\n\u002BG_M10262_IG13:\n        mov      rdi, rbx\n        mov      rcx, qword ptr [rbx]\n        mov      rcx, qword ptr [rcx\u002B0x70]\n@@ -249,18 \u002B229,18 @@ G_M10262_IG16:\n        call     [rax]MongoDB.Bson.Serialization.BsonDocumentBackedClass:GetValue[int](System.String):int:this\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=42 bbWeight=2 PerfScore 26.50\n-G_M10262_IG17:\n\u002BG_M10262_IG14:\n        mov      rax, gword ptr [rbp-0x50]\n        cmp      dword ptr [rax\u002B0x08], ecx\n-       jne      G_M10262_IG24\n-       cmp      r13d, dword ptr [r14\u002B0x14]\n-       jne      G_M10262_IG25\n\u002B       jne      G_M10262_IG21\n\u002B       cmp      r13d, dword ptr [r15\u002B0x14]\n\u002B       jne      G_M10262_IG22\n \t\t\t\t\t\t;; size=23 bbWeight=4 PerfScore 28.00\n-G_M10262_IG18:\n-       cmp      r12d, dword ptr [r14\u002B0x10]\n-       jb       G_M10262_IG12\n\u002BG_M10262_IG15:\n\u002B       cmp      r12d, dword ptr [r15\u002B0x10]\n\u002B       jb       G_M10262_IG09\n \t\t\t\t\t\t;; size=10 bbWeight=8 PerfScore 24.00\n-G_M10262_IG19:\n\u002BG_M10262_IG16:\n        add      rsp, 56\n        pop      rbx\n        pop      r12\n@@ -270,7 \u002B250,7 @@ G_M10262_IG19:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M10262_IG20:\n\u002BG_M10262_IG17:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.GridFS.GridFSChunkException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -284,18 \u002B264,18 @@ G_M10262_IG20:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M10262_IG21:\n\u002BG_M10262_IG18:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M10262_IG22:\n\u002BG_M10262_IG19:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M10262_IG23:\n\u002BG_M10262_IG20:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.GridFS.GridFSChunkException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -309,7 \u002B289,7 @@ G_M10262_IG23:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M10262_IG24:\n\u002BG_M10262_IG21:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.GridFS.GridFSChunkException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -323,15 \u002B303,15 @@ G_M10262_IG24:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M10262_IG25:\n\u002BG_M10262_IG22:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M10262_IG26:\n\u002BG_M10262_IG23:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 854, prolog size 25, PerfScore 291.72, instruction count 211, allocated bytes for code 854 (MethodHash=acefd7e9) for method MongoDB.Driver.GridFS.GridFSForwardOnlyDownloadStream\u00601[System.Nullable\u00601[int]]:ProcessNextBatch(System.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]):this (FullOpts)\n\u002B; Total bytes of code 799, prolog size 25, PerfScore 283.72, instruction count 197, allocated bytes for code 799 (MethodHash=acefd7e9) for method MongoDB.Driver.GridFS.GridFSForwardOnlyDownloadStream\u00601[System.Nullable\u00601[int]]:ProcessNextBatch(System.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":854,"DiffBytes":799},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.GridFS.GridFSForwardOnlyDownloadStream\u00601[System.Numerics.Vector\u00601[float]]:ProcessNextBatch(System.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]):this (FullOpts)","Category":"improvement","Description":"854 -\u003E 799 bytes (-55)","ExtraInfo":null,"Diff":"@@ -9,8 \u002B9,8 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T00] ( 23, 27.50)     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.GridFS.GridFSForwardOnlyDownloadStream\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V01 arg1         [V01,T15] (  4,  4   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V02 loc0         [V02,T24] (  3,  2.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V01 arg1         [V01,T14] (  4,  4   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V02 loc0         [V02,T23] (  3,  2.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V03 loc1         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V04 loc2         [V04    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[MongoDB.Bson.BsonDocument]\u003E\n ;  V05 loc3         [V05,T09] (  3, 10   )     int  -\u003E  [rbp-0x2C]  spill-single-def\n@@ -22,48 \u002B22,48 @@\n ;* V11 tmp4         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V12 tmp5         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;  V13 tmp6         [V13,T12] (  3,  8   )     int  -\u003E  rcx        \n-;  V14 tmp7         [V14,T35] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n-;  V15 tmp8         [V15,T36] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n\u002B;  V14 tmp7         [V14,T34] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n\u002B;  V15 tmp8         [V15,T35] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n ;* V16 tmp9         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp10        [V17,T27] (  2,  2   )    long  -\u003E  r14         \u0022impAppendStmt\u0022\n-;  V18 tmp11        [V18,T28] (  2,  2   )    long  -\u003E  r15         \u0022non-inline candidate call\u0022\n-;  V19 tmp12        [V19,T37] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n-;  V20 tmp13        [V20,T23] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.GridFS.GridFSFileInfo\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V21 tmp14        [V21,T14] (  4,  7   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V22 tmp15        [V22    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V17 tmp10        [V17,T26] (  2,  2   )    long  -\u003E  r14         \u0022impAppendStmt\u0022\n\u002B;  V18 tmp11        [V18,T27] (  2,  2   )    long  -\u003E  r15         \u0022non-inline candidate call\u0022\n\u002B;  V19 tmp12        [V19,T36] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n\u002B;  V20 tmp13        [V20,T22] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.GridFS.GridFSFileInfo\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V21 tmp14        [V21,T15] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V22 tmp15        [V22    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V23 tmp16        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V24 tmp17        [V24,T21] (  5,  3.25)     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V25 tmp18        [V25,T22] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V26 tmp19        [V26,T31] (  4,  1.75)     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n\u002B;  V24 tmp17        [V24,T21] (  4,  3.25)     ref  -\u003E  r15         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V25 tmp18        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V26 tmp19        [V26,T30] (  4,  1.75)     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n ;* V27 tmp20        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n ;* V28 tmp21        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp22        [V29,T16] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp22        [V29,T16] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V30 tmp23        [V30    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[MongoDB.Bson.BsonDocument]\u003E\n ;  V31 tmp24        [V31,T04] (  4, 14   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n ;* V32 tmp25        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n ;  V33 tmp26        [V33,T06] (  3, 12   )     ref  -\u003E  rax         class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.GridFS.GridFSFileInfo\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V34 tmp27        [V34    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V35 tmp28        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V36 tmp29        [V36,T03] (  4, 15   )     ref  -\u003E  r14         single-def \u0022field V04._list (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V36 tmp29        [V36,T03] (  4, 15   )     ref  -\u003E  r15         single-def \u0022field V04._list (fldOffset=0x0)\u0022 P-INDEP\n ;  V37 tmp30        [V37,T11] (  4,  8   )     ref  -\u003E  [rbp-0x58]  spill-single-def \u0022field V04._current (fldOffset=0x8)\u0022 P-INDEP\n ;  V38 tmp31        [V38,T19] (  2,  5   )     int  -\u003E  r13         single-def \u0022field V04._version (fldOffset=0x10)\u0022 P-INDEP\n-;* V39 tmp32        [V39,T34] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V04._index (fldOffset=0x14)\u0022 P-INDEP\n\u002B;* V39 tmp32        [V39,T33] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V04._index (fldOffset=0x14)\u0022 P-INDEP\n ;* V40 tmp33        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V30._list (fldOffset=0x0)\u0022 P-INDEP\n ;* V41 tmp34        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V30._current (fldOffset=0x8)\u0022 P-INDEP\n-;  V42 tmp35        [V42,T29] (  2,  2   )     int  -\u003E  r13         single-def \u0022field V30._version (fldOffset=0x10)\u0022 P-INDEP\n\u002B;  V42 tmp35        [V42,T28] (  2,  2   )     int  -\u003E  r13         single-def \u0022field V30._version (fldOffset=0x10)\u0022 P-INDEP\n ;* V43 tmp36        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V30._index (fldOffset=0x14)\u0022 P-INDEP\n ;  V44 tmp37        [V44,T17] (  3,  6   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n ;  V45 tmp38        [V45,T07] (  3, 12   )     ref  -\u003E  rdi         \u0022arr expr\u0022\n ;  V46 tmp39        [V46,T08] (  3, 12   )     ref  -\u003E  rax         \u0022argument with side effect\u0022\n ;  V47 cse0         [V47,T18] (  3,  6   )    long  -\u003E  [rbp-0x40]  spill-single-def \u0022CSE #14: moderate\u0022\n-;  V48 cse1         [V48,T26] (  3,  2.25)    long  -\u003E  r13         \u0022CSE #02: moderate\u0022\n\u002B;  V48 cse1         [V48,T25] (  3,  2.25)    long  -\u003E  r13         \u0022CSE #02: moderate\u0022\n ;  V49 cse2         [V49,T05] (  4, 12   )     int  -\u003E  [rbp-0x44]  spill-single-def \u0022CSE #07: moderate\u0022\n-;  V50 cse3         [V50,T30] (  2,  2   )     int  -\u003E  r13         \u0022CSE #04: moderate\u0022\n-;  V51 cse4         [V51,T32] (  3,  1.50)     ref  -\u003E  rdi         \u0022CSE #03: conservative\u0022\n-;  V52 cse5         [V52,T20] (  3,  4   )     ref  -\u003E  r15         \u0022CSE #11: moderate\u0022\n\u002B;  V50 cse3         [V50,T29] (  2,  2   )     int  -\u003E  r13         \u0022CSE #04: moderate\u0022\n\u002B;  V51 cse4         [V51,T31] (  3,  1.50)     ref  -\u003E  rdi         \u0022CSE #03: conservative\u0022\n\u002B;  V52 cse5         [V52,T20] (  3,  4   )     ref  -\u003E  r14         \u0022CSE #11: moderate\u0022\n ;  V53 rat0         [V53,T02] (  6, 17   )    long  -\u003E  r12         \u0022Widened IV V39\u0022\n-;  V54 rat1         [V54,T25] (  4,  2.25)     ref  -\u003E  rcx         \u0022replacement local\u0022\n-;  V55 rat2         [V55,T33] (  3,  1.25)    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n\u002B;  V54 rat1         [V54,T24] (  4,  2.25)     ref  -\u003E  rcx         \u0022replacement local\u0022\n... diff truncated; middle omitted ...\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       mov      r14, rax\n-       jmp      SHORT G_M50219_IG07\n-\t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 5.00\n-G_M50219_IG06:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x30]\n\u002B       test     rsi, rsi\n\u002B       je       G_M50219_IG18\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      r14, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M50219_IG07:\n\u002B       mov      r15, rax\n        cmp      byte  ptr [rbp-0x38], 0\n-       je       G_M50219_IG22\n-       mov      rdi, r14\n-       mov      r15, 0xD1FFAB1E      ; \u0027n\u0027\n-       mov      rsi, r15\n-       mov      rax, qword ptr [r14]\n\u002B       je       G_M50219_IG19\n\u002B       mov      rdi, r15\n\u002B       mov      r14, 0xD1FFAB1E      ; \u0027n\u0027\n\u002B       mov      rsi, r14\n\u002B       mov      rax, qword ptr [r15]\n        mov      r13, qword ptr [rax\u002B0x48]\n        call     [r13]MongoDB.Bson.BsonValue:get_Item(System.String):MongoDB.Bson.BsonValue:this\n        mov      rdi, rax\n@@ -152,49 \u002B132,49 @@ G_M50219_IG07:\n        mov      edi, dword ptr [rbx\u002B0x2C]\n        inc      edi\n        cmp      eax, edi\n-       jne      SHORT G_M50219_IG11\n-\t\t\t\t\t\t;; size=59 bbWeight=1 PerfScore 20.50\n-G_M50219_IG08:\n-       mov      rdi, r14\n\u002B       jne      SHORT G_M50219_IG08\n\u002B\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 28.00\n\u002BG_M50219_IG05:\n\u002B       mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; \u0027data\u0027\n        call     [r13]MongoDB.Bson.BsonValue:get_Item(System.String):MongoDB.Bson.BsonValue:this\n        cmp      byte  ptr [rax], al\n        mov      rcx, rax\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonBinaryData\n        cmp      qword ptr [rcx], rdi\n-       je       SHORT G_M50219_IG10\n\u002B       je       SHORT G_M50219_IG07\n \t\t\t\t\t\t;; size=37 bbWeight=0.25 PerfScore 2.25\n-G_M50219_IG09:\n\u002BG_M50219_IG06:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        mov      rcx, rax\n \t\t\t\t\t\t;; size=18 bbWeight=0.12 PerfScore 0.47\n-G_M50219_IG10:\n\u002BG_M50219_IG07:\n        mov      rsi, gword ptr [rcx\u002B0x08]\n        cmp      dword ptr [rsi\u002B0x08], 0\n-       jne      SHORT G_M50219_IG11\n\u002B       jne      SHORT G_M50219_IG08\n        mov      rdi, gword ptr [rbx\u002B0x30]\n        mov      esi, dword ptr [rdi\u002B0x10]\n        dec      esi\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:RemoveAt(int):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:RemoveAt(int):this\n \t\t\t\t\t\t;; size=31 bbWeight=0.50 PerfScore 6.25\n-G_M50219_IG11:\n-       mov      r14, gword ptr [rbx\u002B0x30]\n-       mov      r13d, dword ptr [r14\u002B0x14]\n\u002BG_M50219_IG08:\n\u002B       mov      r15, gword ptr [rbx\u002B0x30]\n\u002B       mov      r13d, dword ptr [r15\u002B0x14]\n        xor      r12d, r12d\n-       jmp      G_M50219_IG18\n\u002B       jmp      G_M50219_IG15\n \t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 6.25\n-G_M50219_IG12:\n-       mov      rdi, gword ptr [r14\u002B0x08]\n\u002BG_M50219_IG09:\n\u002B       mov      rdi, gword ptr [r15\u002B0x08]\n        cmp      r12d, dword ptr [rdi\u002B0x08]\n-       jae      G_M50219_IG26\n\u002B       jae      G_M50219_IG23\n        mov      rax, gword ptr [rdi\u002B8*r12\u002B0x10]\n        mov      gword ptr [rbp-0x58], rax\n        inc      r12d\n        mov      rdi, rax\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        mov      rcx, qword ptr [rax]\n        mov      rcx, qword ptr [rcx\u002B0x48]\n        mov      qword ptr [rbp-0x40], rcx\n@@ -212,32 \u002B192,32 @@ G_M50219_IG12:\n        mov      rcx, rax\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonBinaryData\n        cmp      qword ptr [rcx], rdi\n-       je       SHORT G_M50219_IG14\n\u002B       je       SHORT G_M50219_IG11\n \t\t\t\t\t\t;; size=101 bbWeight=2 PerfScore 71.50\n-G_M50219_IG13:\n\u002BG_M50219_IG10:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        mov      rcx, rax\n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 3.75\n-G_M50219_IG14:\n\u002BG_M50219_IG11:\n        mov      rax, gword ptr [rcx\u002B0x08]\n        mov      gword ptr [rbp-0x50], rax\n        mov      edi, dword ptr [rbx\u002B0x5C]\n        mov      dword ptr [rbp-0x44], edi\n        mov      ecx, dword ptr [rbp-0x2C]\n        cmp      ecx, edi\n-       jne      G_M50219_IG23\n\u002B       jne      G_M50219_IG20\n        inc      edi\n        mov      dword ptr [rbx\u002B0x5C], edi\n        cmp      ecx, dword ptr [rbx\u002B0x2C]\n-       jne      SHORT G_M50219_IG16\n\u002B       jne      SHORT G_M50219_IG13\n \t\t\t\t\t\t;; size=35 bbWeight=4 PerfScore 50.00\n-G_M50219_IG15:\n\u002BG_M50219_IG12:\n        mov      ecx, dword ptr [rbx\u002B0x58]\n-       jmp      SHORT G_M50219_IG17\n\u002B       jmp      SHORT G_M50219_IG14\n \t\t\t\t\t\t;; size=5 bbWeight=2 PerfScore 8.00\n-G_M50219_IG16:\n\u002BG_M50219_IG13:\n        mov      rdi, rbx\n        mov      rcx, qword ptr [rbx]\n        mov      rcx, qword ptr [rcx\u002B0x70]\n@@ -249,18 \u002B229,18 @@ G_M50219_IG16:\n        call     [rax]MongoDB.Bson.Serialization.BsonDocumentBackedClass:GetValue[int](System.String):int:this\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=42 bbWeight=2 PerfScore 26.50\n-G_M50219_IG17:\n\u002BG_M50219_IG14:\n        mov      rax, gword ptr [rbp-0x50]\n        cmp      dword ptr [rax\u002B0x08], ecx\n-       jne      G_M50219_IG24\n-       cmp      r13d, dword ptr [r14\u002B0x14]\n-       jne      G_M50219_IG25\n\u002B       jne      G_M50219_IG21\n\u002B       cmp      r13d, dword ptr [r15\u002B0x14]\n\u002B       jne      G_M50219_IG22\n \t\t\t\t\t\t;; size=23 bbWeight=4 PerfScore 28.00\n-G_M50219_IG18:\n-       cmp      r12d, dword ptr [r14\u002B0x10]\n-       jb       G_M50219_IG12\n\u002BG_M50219_IG15:\n\u002B       cmp      r12d, dword ptr [r15\u002B0x10]\n\u002B       jb       G_M50219_IG09\n \t\t\t\t\t\t;; size=10 bbWeight=8 PerfScore 24.00\n-G_M50219_IG19:\n\u002BG_M50219_IG16:\n        add      rsp, 56\n        pop      rbx\n        pop      r12\n@@ -270,7 \u002B250,7 @@ G_M50219_IG19:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M50219_IG20:\n\u002BG_M50219_IG17:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.GridFS.GridFSChunkException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -284,18 \u002B264,18 @@ G_M50219_IG20:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M50219_IG21:\n\u002BG_M50219_IG18:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M50219_IG22:\n\u002BG_M50219_IG19:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M50219_IG23:\n\u002BG_M50219_IG20:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.GridFS.GridFSChunkException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -309,7 \u002B289,7 @@ G_M50219_IG23:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M50219_IG24:\n\u002BG_M50219_IG21:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.GridFS.GridFSChunkException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -323,15 \u002B303,15 @@ G_M50219_IG24:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M50219_IG25:\n\u002BG_M50219_IG22:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M50219_IG26:\n\u002BG_M50219_IG23:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 854, prolog size 25, PerfScore 291.72, instruction count 211, allocated bytes for code 854 (MethodHash=e31c3bd4) for method MongoDB.Driver.GridFS.GridFSForwardOnlyDownloadStream\u00601[System.Numerics.Vector\u00601[float]]:ProcessNextBatch(System.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]):this (FullOpts)\n\u002B; Total bytes of code 799, prolog size 25, PerfScore 283.72, instruction count 197, allocated bytes for code 799 (MethodHash=e31c3bd4) for method MongoDB.Driver.GridFS.GridFSForwardOnlyDownloadStream\u00601[System.Numerics.Vector\u00601[float]]:ProcessNextBatch(System.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":854,"DiffBytes":799},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.GridFS.GridFSForwardOnlyDownloadStream\u00601[System.__Canon]:ProcessNextBatch(System.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]):this (FullOpts)","Category":"improvement","Description":"854 -\u003E 799 bytes (-55)","ExtraInfo":null,"Diff":"@@ -9,8 \u002B9,8 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T00] ( 23, 27.50)     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.GridFS.GridFSForwardOnlyDownloadStream\u00601[System.__Canon]\u003E\n-;  V01 arg1         [V01,T15] (  4,  4   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V02 loc0         [V02,T24] (  3,  2.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V01 arg1         [V01,T14] (  4,  4   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V02 loc0         [V02,T23] (  3,  2.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V03 loc1         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V04 loc2         [V04    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[MongoDB.Bson.BsonDocument]\u003E\n ;  V05 loc3         [V05,T09] (  3, 10   )     int  -\u003E  [rbp-0x2C]  spill-single-def\n@@ -22,48 \u002B22,48 @@\n ;* V11 tmp4         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V12 tmp5         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;  V13 tmp6         [V13,T12] (  3,  8   )     int  -\u003E  rcx        \n-;  V14 tmp7         [V14,T35] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n-;  V15 tmp8         [V15,T36] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n\u002B;  V14 tmp7         [V14,T34] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n\u002B;  V15 tmp8         [V15,T35] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n ;* V16 tmp9         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp10        [V17,T27] (  2,  2   )    long  -\u003E  r14         \u0022impAppendStmt\u0022\n-;  V18 tmp11        [V18,T28] (  2,  2   )    long  -\u003E  r15         \u0022non-inline candidate call\u0022\n-;  V19 tmp12        [V19,T37] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n-;  V20 tmp13        [V20,T23] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.GridFS.GridFSFileInfo\u00601[System.__Canon]\u003E\n-;  V21 tmp14        [V21,T14] (  4,  7   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V22 tmp15        [V22    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V17 tmp10        [V17,T26] (  2,  2   )    long  -\u003E  r14         \u0022impAppendStmt\u0022\n\u002B;  V18 tmp11        [V18,T27] (  2,  2   )    long  -\u003E  r15         \u0022non-inline candidate call\u0022\n\u002B;  V19 tmp12        [V19,T36] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n\u002B;  V20 tmp13        [V20,T22] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.GridFS.GridFSFileInfo\u00601[System.__Canon]\u003E\n\u002B;  V21 tmp14        [V21,T15] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V22 tmp15        [V22    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V23 tmp16        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V24 tmp17        [V24,T21] (  5,  3.25)     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V25 tmp18        [V25,T22] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V26 tmp19        [V26,T31] (  4,  1.75)     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n\u002B;  V24 tmp17        [V24,T21] (  4,  3.25)     ref  -\u003E  r15         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V25 tmp18        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V26 tmp19        [V26,T30] (  4,  1.75)     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n ;* V27 tmp20        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n ;* V28 tmp21        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp22        [V29,T16] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp22        [V29,T16] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V30 tmp23        [V30    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[MongoDB.Bson.BsonDocument]\u003E\n ;  V31 tmp24        [V31,T04] (  4, 14   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n ;* V32 tmp25        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n ;  V33 tmp26        [V33,T06] (  3, 12   )     ref  -\u003E  rax         class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.GridFS.GridFSFileInfo\u00601[System.__Canon]\u003E\n ;* V34 tmp27        [V34    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V35 tmp28        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V36 tmp29        [V36,T03] (  4, 15   )     ref  -\u003E  r14         single-def \u0022field V04._list (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V36 tmp29        [V36,T03] (  4, 15   )     ref  -\u003E  r15         single-def \u0022field V04._list (fldOffset=0x0)\u0022 P-INDEP\n ;  V37 tmp30        [V37,T11] (  4,  8   )     ref  -\u003E  [rbp-0x58]  spill-single-def \u0022field V04._current (fldOffset=0x8)\u0022 P-INDEP\n ;  V38 tmp31        [V38,T19] (  2,  5   )     int  -\u003E  r13         single-def \u0022field V04._version (fldOffset=0x10)\u0022 P-INDEP\n-;* V39 tmp32        [V39,T34] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V04._index (fldOffset=0x14)\u0022 P-INDEP\n\u002B;* V39 tmp32        [V39,T33] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V04._index (fldOffset=0x14)\u0022 P-INDEP\n ;* V40 tmp33        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V30._list (fldOffset=0x0)\u0022 P-INDEP\n ;* V41 tmp34        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V30._current (fldOffset=0x8)\u0022 P-INDEP\n-;  V42 tmp35        [V42,T29] (  2,  2   )     int  -\u003E  r13         single-def \u0022field V30._version (fldOffset=0x10)\u0022 P-INDEP\n\u002B;  V42 tmp35        [V42,T28] (  2,  2   )     int  -\u003E  r13         single-def \u0022field V30._version (fldOffset=0x10)\u0022 P-INDEP\n ;* V43 tmp36        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V30._index (fldOffset=0x14)\u0022 P-INDEP\n ;  V44 tmp37        [V44,T17] (  3,  6   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n ;  V45 tmp38        [V45,T07] (  3, 12   )     ref  -\u003E  rdi         \u0022arr expr\u0022\n ;  V46 tmp39        [V46,T08] (  3, 12   )     ref  -\u003E  rax         \u0022argument with side effect\u0022\n ;  V47 cse0         [V47,T18] (  3,  6   )    long  -\u003E  [rbp-0x40]  spill-single-def \u0022CSE #14: moderate\u0022\n-;  V48 cse1         [V48,T26] (  3,  2.25)    long  -\u003E  r13         \u0022CSE #02: moderate\u0022\n\u002B;  V48 cse1         [V48,T25] (  3,  2.25)    long  -\u003E  r13         \u0022CSE #02: moderate\u0022\n ;  V49 cse2         [V49,T05] (  4, 12   )     int  -\u003E  [rbp-0x44]  spill-single-def \u0022CSE #07: moderate\u0022\n-;  V50 cse3         [V50,T30] (  2,  2   )     int  -\u003E  r13         \u0022CSE #04: moderate\u0022\n-;  V51 cse4         [V51,T32] (  3,  1.50)     ref  -\u003E  rdi         \u0022CSE #03: conservative\u0022\n-;  V52 cse5         [V52,T20] (  3,  4   )     ref  -\u003E  r15         \u0022CSE #11: moderate\u0022\n\u002B;  V50 cse3         [V50,T29] (  2,  2   )     int  -\u003E  r13         \u0022CSE #04: moderate\u0022\n\u002B;  V51 cse4         [V51,T31] (  3,  1.50)     ref  -\u003E  rdi         \u0022CSE #03: conservative\u0022\n\u002B;  V52 cse5         [V52,T20] (  3,  4   )     ref  -\u003E  r14         \u0022CSE #11: moderate\u0022\n ;  V53 rat0         [V53,T02] (  6, 17   )    long  -\u003E  r12         \u0022Widened IV V39\u0022\n-;  V54 rat1         [V54,T25] (  4,  2.25)     ref  -\u003E  rcx         \u0022replacement local\u0022\n-;  V55 rat2         [V55,T33] (  3,  1.25)    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n\u002B;  V54 rat1         [V54,T24] (  4,  2.25)     ref  -\u003E  rcx         \u0022replacement local\u0022\n\u002B;  V55 rat2         [V55,T32] (  3,  1.25)    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n... diff truncated; middle omitted ...\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       mov      r14, rax\n-       jmp      SHORT G_M17774_IG07\n-\t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 5.00\n-G_M17774_IG06:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x30]\n\u002B       test     rsi, rsi\n\u002B       je       G_M17774_IG18\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      r14, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M17774_IG07:\n\u002B       mov      r15, rax\n        cmp      byte  ptr [rbp-0x38], 0\n-       je       G_M17774_IG22\n-       mov      rdi, r14\n-       mov      r15, 0xD1FFAB1E      ; \u0027n\u0027\n-       mov      rsi, r15\n-       mov      rax, qword ptr [r14]\n\u002B       je       G_M17774_IG19\n\u002B       mov      rdi, r15\n\u002B       mov      r14, 0xD1FFAB1E      ; \u0027n\u0027\n\u002B       mov      rsi, r14\n\u002B       mov      rax, qword ptr [r15]\n        mov      r13, qword ptr [rax\u002B0x48]\n        call     [r13]MongoDB.Bson.BsonValue:get_Item(System.String):MongoDB.Bson.BsonValue:this\n        mov      rdi, rax\n@@ -152,49 \u002B132,49 @@ G_M17774_IG07:\n        mov      edi, dword ptr [rbx\u002B0x2C]\n        inc      edi\n        cmp      eax, edi\n-       jne      SHORT G_M17774_IG11\n-\t\t\t\t\t\t;; size=59 bbWeight=1 PerfScore 20.50\n-G_M17774_IG08:\n-       mov      rdi, r14\n\u002B       jne      SHORT G_M17774_IG08\n\u002B\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 28.00\n\u002BG_M17774_IG05:\n\u002B       mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; \u0027data\u0027\n        call     [r13]MongoDB.Bson.BsonValue:get_Item(System.String):MongoDB.Bson.BsonValue:this\n        cmp      byte  ptr [rax], al\n        mov      rcx, rax\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonBinaryData\n        cmp      qword ptr [rcx], rdi\n-       je       SHORT G_M17774_IG10\n\u002B       je       SHORT G_M17774_IG07\n \t\t\t\t\t\t;; size=37 bbWeight=0.25 PerfScore 2.25\n-G_M17774_IG09:\n\u002BG_M17774_IG06:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        mov      rcx, rax\n \t\t\t\t\t\t;; size=18 bbWeight=0.12 PerfScore 0.47\n-G_M17774_IG10:\n\u002BG_M17774_IG07:\n        mov      rsi, gword ptr [rcx\u002B0x08]\n        cmp      dword ptr [rsi\u002B0x08], 0\n-       jne      SHORT G_M17774_IG11\n\u002B       jne      SHORT G_M17774_IG08\n        mov      rdi, gword ptr [rbx\u002B0x30]\n        mov      esi, dword ptr [rdi\u002B0x10]\n        dec      esi\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:RemoveAt(int):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:RemoveAt(int):this\n \t\t\t\t\t\t;; size=31 bbWeight=0.50 PerfScore 6.25\n-G_M17774_IG11:\n-       mov      r14, gword ptr [rbx\u002B0x30]\n-       mov      r13d, dword ptr [r14\u002B0x14]\n\u002BG_M17774_IG08:\n\u002B       mov      r15, gword ptr [rbx\u002B0x30]\n\u002B       mov      r13d, dword ptr [r15\u002B0x14]\n        xor      r12d, r12d\n-       jmp      G_M17774_IG18\n\u002B       jmp      G_M17774_IG15\n \t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 6.25\n-G_M17774_IG12:\n-       mov      rdi, gword ptr [r14\u002B0x08]\n\u002BG_M17774_IG09:\n\u002B       mov      rdi, gword ptr [r15\u002B0x08]\n        cmp      r12d, dword ptr [rdi\u002B0x08]\n-       jae      G_M17774_IG26\n\u002B       jae      G_M17774_IG23\n        mov      rax, gword ptr [rdi\u002B8*r12\u002B0x10]\n        mov      gword ptr [rbp-0x58], rax\n        inc      r12d\n        mov      rdi, rax\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        mov      rcx, qword ptr [rax]\n        mov      rcx, qword ptr [rcx\u002B0x48]\n        mov      qword ptr [rbp-0x40], rcx\n@@ -212,32 \u002B192,32 @@ G_M17774_IG12:\n        mov      rcx, rax\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonBinaryData\n        cmp      qword ptr [rcx], rdi\n-       je       SHORT G_M17774_IG14\n\u002B       je       SHORT G_M17774_IG11\n \t\t\t\t\t\t;; size=101 bbWeight=2 PerfScore 71.50\n-G_M17774_IG13:\n\u002BG_M17774_IG10:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        mov      rcx, rax\n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 3.75\n-G_M17774_IG14:\n\u002BG_M17774_IG11:\n        mov      rax, gword ptr [rcx\u002B0x08]\n        mov      gword ptr [rbp-0x50], rax\n        mov      edi, dword ptr [rbx\u002B0x5C]\n        mov      dword ptr [rbp-0x44], edi\n        mov      ecx, dword ptr [rbp-0x2C]\n        cmp      ecx, edi\n-       jne      G_M17774_IG23\n\u002B       jne      G_M17774_IG20\n        inc      edi\n        mov      dword ptr [rbx\u002B0x5C], edi\n        cmp      ecx, dword ptr [rbx\u002B0x2C]\n-       jne      SHORT G_M17774_IG16\n\u002B       jne      SHORT G_M17774_IG13\n \t\t\t\t\t\t;; size=35 bbWeight=4 PerfScore 50.00\n-G_M17774_IG15:\n\u002BG_M17774_IG12:\n        mov      ecx, dword ptr [rbx\u002B0x58]\n-       jmp      SHORT G_M17774_IG17\n\u002B       jmp      SHORT G_M17774_IG14\n \t\t\t\t\t\t;; size=5 bbWeight=2 PerfScore 8.00\n-G_M17774_IG16:\n\u002BG_M17774_IG13:\n        mov      rdi, rbx\n        mov      rcx, qword ptr [rbx]\n        mov      rcx, qword ptr [rcx\u002B0x70]\n@@ -249,18 \u002B229,18 @@ G_M17774_IG16:\n        call     [rax]MongoDB.Bson.Serialization.BsonDocumentBackedClass:GetValue[int](System.String):int:this\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=42 bbWeight=2 PerfScore 26.50\n-G_M17774_IG17:\n\u002BG_M17774_IG14:\n        mov      rax, gword ptr [rbp-0x50]\n        cmp      dword ptr [rax\u002B0x08], ecx\n-       jne      G_M17774_IG24\n-       cmp      r13d, dword ptr [r14\u002B0x14]\n-       jne      G_M17774_IG25\n\u002B       jne      G_M17774_IG21\n\u002B       cmp      r13d, dword ptr [r15\u002B0x14]\n\u002B       jne      G_M17774_IG22\n \t\t\t\t\t\t;; size=23 bbWeight=4 PerfScore 28.00\n-G_M17774_IG18:\n-       cmp      r12d, dword ptr [r14\u002B0x10]\n-       jb       G_M17774_IG12\n\u002BG_M17774_IG15:\n\u002B       cmp      r12d, dword ptr [r15\u002B0x10]\n\u002B       jb       G_M17774_IG09\n \t\t\t\t\t\t;; size=10 bbWeight=8 PerfScore 24.00\n-G_M17774_IG19:\n\u002BG_M17774_IG16:\n        add      rsp, 56\n        pop      rbx\n        pop      r12\n@@ -270,7 \u002B250,7 @@ G_M17774_IG19:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M17774_IG20:\n\u002BG_M17774_IG17:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.GridFS.GridFSChunkException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -284,18 \u002B264,18 @@ G_M17774_IG20:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M17774_IG21:\n\u002BG_M17774_IG18:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M17774_IG22:\n\u002BG_M17774_IG19:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M17774_IG23:\n\u002BG_M17774_IG20:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.GridFS.GridFSChunkException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -309,7 \u002B289,7 @@ G_M17774_IG23:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M17774_IG24:\n\u002BG_M17774_IG21:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.GridFS.GridFSChunkException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -323,15 \u002B303,15 @@ G_M17774_IG24:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M17774_IG25:\n\u002BG_M17774_IG22:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M17774_IG26:\n\u002BG_M17774_IG23:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 854, prolog size 25, PerfScore 291.72, instruction count 211, allocated bytes for code 854 (MethodHash=94bcba91) for method MongoDB.Driver.GridFS.GridFSForwardOnlyDownloadStream\u00601[System.__Canon]:ProcessNextBatch(System.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]):this (FullOpts)\n\u002B; Total bytes of code 799, prolog size 25, PerfScore 283.72, instruction count 197, allocated bytes for code 799 (MethodHash=94bcba91) for method MongoDB.Driver.GridFS.GridFSForwardOnlyDownloadStream\u00601[System.__Canon]:ProcessNextBatch(System.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":854,"DiffBytes":799},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.GridFS.GridFSForwardOnlyDownloadStream\u00601[byte]:ProcessNextBatch(System.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]):this (FullOpts)","Category":"improvement","Description":"854 -\u003E 799 bytes (-55)","ExtraInfo":null,"Diff":"@@ -9,8 \u002B9,8 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T00] ( 23, 27.50)     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.GridFS.GridFSForwardOnlyDownloadStream\u00601[byte]\u003E\n-;  V01 arg1         [V01,T15] (  4,  4   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V02 loc0         [V02,T24] (  3,  2.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V01 arg1         [V01,T14] (  4,  4   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V02 loc0         [V02,T23] (  3,  2.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V03 loc1         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V04 loc2         [V04    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[MongoDB.Bson.BsonDocument]\u003E\n ;  V05 loc3         [V05,T09] (  3, 10   )     int  -\u003E  [rbp-0x2C]  spill-single-def\n@@ -22,48 \u002B22,48 @@\n ;* V11 tmp4         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V12 tmp5         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;  V13 tmp6         [V13,T12] (  3,  8   )     int  -\u003E  rcx        \n-;  V14 tmp7         [V14,T35] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n-;  V15 tmp8         [V15,T36] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n\u002B;  V14 tmp7         [V14,T34] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n\u002B;  V15 tmp8         [V15,T35] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n ;* V16 tmp9         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp10        [V17,T27] (  2,  2   )    long  -\u003E  r14         \u0022impAppendStmt\u0022\n-;  V18 tmp11        [V18,T28] (  2,  2   )    long  -\u003E  r15         \u0022non-inline candidate call\u0022\n-;  V19 tmp12        [V19,T37] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n-;  V20 tmp13        [V20,T23] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.GridFS.GridFSFileInfo\u00601[byte]\u003E\n-;  V21 tmp14        [V21,T14] (  4,  7   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V22 tmp15        [V22    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V17 tmp10        [V17,T26] (  2,  2   )    long  -\u003E  r14         \u0022impAppendStmt\u0022\n\u002B;  V18 tmp11        [V18,T27] (  2,  2   )    long  -\u003E  r15         \u0022non-inline candidate call\u0022\n\u002B;  V19 tmp12        [V19,T36] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n\u002B;  V20 tmp13        [V20,T22] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.GridFS.GridFSFileInfo\u00601[byte]\u003E\n\u002B;  V21 tmp14        [V21,T15] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V22 tmp15        [V22    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V23 tmp16        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V24 tmp17        [V24,T21] (  5,  3.25)     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V25 tmp18        [V25,T22] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V26 tmp19        [V26,T31] (  4,  1.75)     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n\u002B;  V24 tmp17        [V24,T21] (  4,  3.25)     ref  -\u003E  r15         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V25 tmp18        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V26 tmp19        [V26,T30] (  4,  1.75)     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n ;* V27 tmp20        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n ;* V28 tmp21        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp22        [V29,T16] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp22        [V29,T16] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V30 tmp23        [V30    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[MongoDB.Bson.BsonDocument]\u003E\n ;  V31 tmp24        [V31,T04] (  4, 14   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n ;* V32 tmp25        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n ;  V33 tmp26        [V33,T06] (  3, 12   )     ref  -\u003E  rax         class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.GridFS.GridFSFileInfo\u00601[byte]\u003E\n ;* V34 tmp27        [V34    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V35 tmp28        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V36 tmp29        [V36,T03] (  4, 15   )     ref  -\u003E  r14         single-def \u0022field V04._list (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V36 tmp29        [V36,T03] (  4, 15   )     ref  -\u003E  r15         single-def \u0022field V04._list (fldOffset=0x0)\u0022 P-INDEP\n ;  V37 tmp30        [V37,T11] (  4,  8   )     ref  -\u003E  [rbp-0x58]  spill-single-def \u0022field V04._current (fldOffset=0x8)\u0022 P-INDEP\n ;  V38 tmp31        [V38,T19] (  2,  5   )     int  -\u003E  r13         single-def \u0022field V04._version (fldOffset=0x10)\u0022 P-INDEP\n-;* V39 tmp32        [V39,T34] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V04._index (fldOffset=0x14)\u0022 P-INDEP\n\u002B;* V39 tmp32        [V39,T33] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V04._index (fldOffset=0x14)\u0022 P-INDEP\n ;* V40 tmp33        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V30._list (fldOffset=0x0)\u0022 P-INDEP\n ;* V41 tmp34        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V30._current (fldOffset=0x8)\u0022 P-INDEP\n-;  V42 tmp35        [V42,T29] (  2,  2   )     int  -\u003E  r13         single-def \u0022field V30._version (fldOffset=0x10)\u0022 P-INDEP\n\u002B;  V42 tmp35        [V42,T28] (  2,  2   )     int  -\u003E  r13         single-def \u0022field V30._version (fldOffset=0x10)\u0022 P-INDEP\n ;* V43 tmp36        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V30._index (fldOffset=0x14)\u0022 P-INDEP\n ;  V44 tmp37        [V44,T17] (  3,  6   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n ;  V45 tmp38        [V45,T07] (  3, 12   )     ref  -\u003E  rdi         \u0022arr expr\u0022\n ;  V46 tmp39        [V46,T08] (  3, 12   )     ref  -\u003E  rax         \u0022argument with side effect\u0022\n ;  V47 cse0         [V47,T18] (  3,  6   )    long  -\u003E  [rbp-0x40]  spill-single-def \u0022CSE #14: moderate\u0022\n-;  V48 cse1         [V48,T26] (  3,  2.25)    long  -\u003E  r13         \u0022CSE #02: moderate\u0022\n\u002B;  V48 cse1         [V48,T25] (  3,  2.25)    long  -\u003E  r13         \u0022CSE #02: moderate\u0022\n ;  V49 cse2         [V49,T05] (  4, 12   )     int  -\u003E  [rbp-0x44]  spill-single-def \u0022CSE #07: moderate\u0022\n-;  V50 cse3         [V50,T30] (  2,  2   )     int  -\u003E  r13         \u0022CSE #04: moderate\u0022\n-;  V51 cse4         [V51,T32] (  3,  1.50)     ref  -\u003E  rdi         \u0022CSE #03: conservative\u0022\n-;  V52 cse5         [V52,T20] (  3,  4   )     ref  -\u003E  r15         \u0022CSE #11: moderate\u0022\n\u002B;  V50 cse3         [V50,T29] (  2,  2   )     int  -\u003E  r13         \u0022CSE #04: moderate\u0022\n\u002B;  V51 cse4         [V51,T31] (  3,  1.50)     ref  -\u003E  rdi         \u0022CSE #03: conservative\u0022\n\u002B;  V52 cse5         [V52,T20] (  3,  4   )     ref  -\u003E  r14         \u0022CSE #11: moderate\u0022\n ;  V53 rat0         [V53,T02] (  6, 17   )    long  -\u003E  r12         \u0022Widened IV V39\u0022\n-;  V54 rat1         [V54,T25] (  4,  2.25)     ref  -\u003E  rcx         \u0022replacement local\u0022\n-;  V55 rat2         [V55,T33] (  3,  1.25)    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n\u002B;  V54 rat1         [V54,T24] (  4,  2.25)     ref  -\u003E  rcx         \u0022replacement local\u0022\n\u002B;  V55 rat2         [V55,T32] (  3,  1.25)    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n... diff truncated; middle omitted ...\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       mov      r14, rax\n-       jmp      SHORT G_M53474_IG07\n-\t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 5.00\n-G_M53474_IG06:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x30]\n\u002B       test     rsi, rsi\n\u002B       je       G_M53474_IG18\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      r14, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M53474_IG07:\n\u002B       mov      r15, rax\n        cmp      byte  ptr [rbp-0x38], 0\n-       je       G_M53474_IG22\n-       mov      rdi, r14\n-       mov      r15, 0xD1FFAB1E      ; \u0027n\u0027\n-       mov      rsi, r15\n-       mov      rax, qword ptr [r14]\n\u002B       je       G_M53474_IG19\n\u002B       mov      rdi, r15\n\u002B       mov      r14, 0xD1FFAB1E      ; \u0027n\u0027\n\u002B       mov      rsi, r14\n\u002B       mov      rax, qword ptr [r15]\n        mov      r13, qword ptr [rax\u002B0x48]\n        call     [r13]MongoDB.Bson.BsonValue:get_Item(System.String):MongoDB.Bson.BsonValue:this\n        mov      rdi, rax\n@@ -152,49 \u002B132,49 @@ G_M53474_IG07:\n        mov      edi, dword ptr [rbx\u002B0x2C]\n        inc      edi\n        cmp      eax, edi\n-       jne      SHORT G_M53474_IG11\n-\t\t\t\t\t\t;; size=59 bbWeight=1 PerfScore 20.50\n-G_M53474_IG08:\n-       mov      rdi, r14\n\u002B       jne      SHORT G_M53474_IG08\n\u002B\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 28.00\n\u002BG_M53474_IG05:\n\u002B       mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; \u0027data\u0027\n        call     [r13]MongoDB.Bson.BsonValue:get_Item(System.String):MongoDB.Bson.BsonValue:this\n        cmp      byte  ptr [rax], al\n        mov      rcx, rax\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonBinaryData\n        cmp      qword ptr [rcx], rdi\n-       je       SHORT G_M53474_IG10\n\u002B       je       SHORT G_M53474_IG07\n \t\t\t\t\t\t;; size=37 bbWeight=0.25 PerfScore 2.25\n-G_M53474_IG09:\n\u002BG_M53474_IG06:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        mov      rcx, rax\n \t\t\t\t\t\t;; size=18 bbWeight=0.12 PerfScore 0.47\n-G_M53474_IG10:\n\u002BG_M53474_IG07:\n        mov      rsi, gword ptr [rcx\u002B0x08]\n        cmp      dword ptr [rsi\u002B0x08], 0\n-       jne      SHORT G_M53474_IG11\n\u002B       jne      SHORT G_M53474_IG08\n        mov      rdi, gword ptr [rbx\u002B0x30]\n        mov      esi, dword ptr [rdi\u002B0x10]\n        dec      esi\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:RemoveAt(int):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:RemoveAt(int):this\n \t\t\t\t\t\t;; size=31 bbWeight=0.50 PerfScore 6.25\n-G_M53474_IG11:\n-       mov      r14, gword ptr [rbx\u002B0x30]\n-       mov      r13d, dword ptr [r14\u002B0x14]\n\u002BG_M53474_IG08:\n\u002B       mov      r15, gword ptr [rbx\u002B0x30]\n\u002B       mov      r13d, dword ptr [r15\u002B0x14]\n        xor      r12d, r12d\n-       jmp      G_M53474_IG18\n\u002B       jmp      G_M53474_IG15\n \t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 6.25\n-G_M53474_IG12:\n-       mov      rdi, gword ptr [r14\u002B0x08]\n\u002BG_M53474_IG09:\n\u002B       mov      rdi, gword ptr [r15\u002B0x08]\n        cmp      r12d, dword ptr [rdi\u002B0x08]\n-       jae      G_M53474_IG26\n\u002B       jae      G_M53474_IG23\n        mov      rax, gword ptr [rdi\u002B8*r12\u002B0x10]\n        mov      gword ptr [rbp-0x58], rax\n        inc      r12d\n        mov      rdi, rax\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        mov      rcx, qword ptr [rax]\n        mov      rcx, qword ptr [rcx\u002B0x48]\n        mov      qword ptr [rbp-0x40], rcx\n@@ -212,32 \u002B192,32 @@ G_M53474_IG12:\n        mov      rcx, rax\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonBinaryData\n        cmp      qword ptr [rcx], rdi\n-       je       SHORT G_M53474_IG14\n\u002B       je       SHORT G_M53474_IG11\n \t\t\t\t\t\t;; size=101 bbWeight=2 PerfScore 71.50\n-G_M53474_IG13:\n\u002BG_M53474_IG10:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        mov      rcx, rax\n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 3.75\n-G_M53474_IG14:\n\u002BG_M53474_IG11:\n        mov      rax, gword ptr [rcx\u002B0x08]\n        mov      gword ptr [rbp-0x50], rax\n        mov      edi, dword ptr [rbx\u002B0x5C]\n        mov      dword ptr [rbp-0x44], edi\n        mov      ecx, dword ptr [rbp-0x2C]\n        cmp      ecx, edi\n-       jne      G_M53474_IG23\n\u002B       jne      G_M53474_IG20\n        inc      edi\n        mov      dword ptr [rbx\u002B0x5C], edi\n        cmp      ecx, dword ptr [rbx\u002B0x2C]\n-       jne      SHORT G_M53474_IG16\n\u002B       jne      SHORT G_M53474_IG13\n \t\t\t\t\t\t;; size=35 bbWeight=4 PerfScore 50.00\n-G_M53474_IG15:\n\u002BG_M53474_IG12:\n        mov      ecx, dword ptr [rbx\u002B0x58]\n-       jmp      SHORT G_M53474_IG17\n\u002B       jmp      SHORT G_M53474_IG14\n \t\t\t\t\t\t;; size=5 bbWeight=2 PerfScore 8.00\n-G_M53474_IG16:\n\u002BG_M53474_IG13:\n        mov      rdi, rbx\n        mov      rcx, qword ptr [rbx]\n        mov      rcx, qword ptr [rcx\u002B0x70]\n@@ -249,18 \u002B229,18 @@ G_M53474_IG16:\n        call     [rax]MongoDB.Bson.Serialization.BsonDocumentBackedClass:GetValue[int](System.String):int:this\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=42 bbWeight=2 PerfScore 26.50\n-G_M53474_IG17:\n\u002BG_M53474_IG14:\n        mov      rax, gword ptr [rbp-0x50]\n        cmp      dword ptr [rax\u002B0x08], ecx\n-       jne      G_M53474_IG24\n-       cmp      r13d, dword ptr [r14\u002B0x14]\n-       jne      G_M53474_IG25\n\u002B       jne      G_M53474_IG21\n\u002B       cmp      r13d, dword ptr [r15\u002B0x14]\n\u002B       jne      G_M53474_IG22\n \t\t\t\t\t\t;; size=23 bbWeight=4 PerfScore 28.00\n-G_M53474_IG18:\n-       cmp      r12d, dword ptr [r14\u002B0x10]\n-       jb       G_M53474_IG12\n\u002BG_M53474_IG15:\n\u002B       cmp      r12d, dword ptr [r15\u002B0x10]\n\u002B       jb       G_M53474_IG09\n \t\t\t\t\t\t;; size=10 bbWeight=8 PerfScore 24.00\n-G_M53474_IG19:\n\u002BG_M53474_IG16:\n        add      rsp, 56\n        pop      rbx\n        pop      r12\n@@ -270,7 \u002B250,7 @@ G_M53474_IG19:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M53474_IG20:\n\u002BG_M53474_IG17:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.GridFS.GridFSChunkException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -284,18 \u002B264,18 @@ G_M53474_IG20:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M53474_IG21:\n\u002BG_M53474_IG18:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M53474_IG22:\n\u002BG_M53474_IG19:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M53474_IG23:\n\u002BG_M53474_IG20:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.GridFS.GridFSChunkException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -309,7 \u002B289,7 @@ G_M53474_IG23:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M53474_IG24:\n\u002BG_M53474_IG21:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.GridFS.GridFSChunkException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -323,15 \u002B303,15 @@ G_M53474_IG24:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M53474_IG25:\n\u002BG_M53474_IG22:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M53474_IG26:\n\u002BG_M53474_IG23:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 854, prolog size 25, PerfScore 291.72, instruction count 211, allocated bytes for code 854 (MethodHash=d7492f1d) for method MongoDB.Driver.GridFS.GridFSForwardOnlyDownloadStream\u00601[byte]:ProcessNextBatch(System.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]):this (FullOpts)\n\u002B; Total bytes of code 799, prolog size 25, PerfScore 283.72, instruction count 197, allocated bytes for code 799 (MethodHash=d7492f1d) for method MongoDB.Driver.GridFS.GridFSForwardOnlyDownloadStream\u00601[byte]:ProcessNextBatch(System.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":854,"DiffBytes":799},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.GridFS.GridFSForwardOnlyDownloadStream\u00601[double]:ProcessNextBatch(System.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]):this (FullOpts)","Category":"improvement","Description":"854 -\u003E 799 bytes (-55)","ExtraInfo":null,"Diff":"@@ -9,8 \u002B9,8 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T00] ( 23, 27.50)     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.GridFS.GridFSForwardOnlyDownloadStream\u00601[double]\u003E\n-;  V01 arg1         [V01,T15] (  4,  4   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V02 loc0         [V02,T24] (  3,  2.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V01 arg1         [V01,T14] (  4,  4   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V02 loc0         [V02,T23] (  3,  2.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V03 loc1         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V04 loc2         [V04    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[MongoDB.Bson.BsonDocument]\u003E\n ;  V05 loc3         [V05,T09] (  3, 10   )     int  -\u003E  [rbp-0x2C]  spill-single-def\n@@ -22,48 \u002B22,48 @@\n ;* V11 tmp4         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V12 tmp5         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;  V13 tmp6         [V13,T12] (  3,  8   )     int  -\u003E  rcx        \n-;  V14 tmp7         [V14,T35] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n-;  V15 tmp8         [V15,T36] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n\u002B;  V14 tmp7         [V14,T34] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n\u002B;  V15 tmp8         [V15,T35] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n ;* V16 tmp9         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp10        [V17,T27] (  2,  2   )    long  -\u003E  r14         \u0022impAppendStmt\u0022\n-;  V18 tmp11        [V18,T28] (  2,  2   )    long  -\u003E  r15         \u0022non-inline candidate call\u0022\n-;  V19 tmp12        [V19,T37] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n-;  V20 tmp13        [V20,T23] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.GridFS.GridFSFileInfo\u00601[double]\u003E\n-;  V21 tmp14        [V21,T14] (  4,  7   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V22 tmp15        [V22    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V17 tmp10        [V17,T26] (  2,  2   )    long  -\u003E  r14         \u0022impAppendStmt\u0022\n\u002B;  V18 tmp11        [V18,T27] (  2,  2   )    long  -\u003E  r15         \u0022non-inline candidate call\u0022\n\u002B;  V19 tmp12        [V19,T36] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n\u002B;  V20 tmp13        [V20,T22] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.GridFS.GridFSFileInfo\u00601[double]\u003E\n\u002B;  V21 tmp14        [V21,T15] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V22 tmp15        [V22    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V23 tmp16        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V24 tmp17        [V24,T21] (  5,  3.25)     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V25 tmp18        [V25,T22] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V26 tmp19        [V26,T31] (  4,  1.75)     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n\u002B;  V24 tmp17        [V24,T21] (  4,  3.25)     ref  -\u003E  r15         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V25 tmp18        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V26 tmp19        [V26,T30] (  4,  1.75)     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n ;* V27 tmp20        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n ;* V28 tmp21        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp22        [V29,T16] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp22        [V29,T16] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V30 tmp23        [V30    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[MongoDB.Bson.BsonDocument]\u003E\n ;  V31 tmp24        [V31,T04] (  4, 14   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n ;* V32 tmp25        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n ;  V33 tmp26        [V33,T06] (  3, 12   )     ref  -\u003E  rax         class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.GridFS.GridFSFileInfo\u00601[double]\u003E\n ;* V34 tmp27        [V34    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V35 tmp28        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V36 tmp29        [V36,T03] (  4, 15   )     ref  -\u003E  r14         single-def \u0022field V04._list (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V36 tmp29        [V36,T03] (  4, 15   )     ref  -\u003E  r15         single-def \u0022field V04._list (fldOffset=0x0)\u0022 P-INDEP\n ;  V37 tmp30        [V37,T11] (  4,  8   )     ref  -\u003E  [rbp-0x58]  spill-single-def \u0022field V04._current (fldOffset=0x8)\u0022 P-INDEP\n ;  V38 tmp31        [V38,T19] (  2,  5   )     int  -\u003E  r13         single-def \u0022field V04._version (fldOffset=0x10)\u0022 P-INDEP\n-;* V39 tmp32        [V39,T34] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V04._index (fldOffset=0x14)\u0022 P-INDEP\n\u002B;* V39 tmp32        [V39,T33] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V04._index (fldOffset=0x14)\u0022 P-INDEP\n ;* V40 tmp33        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V30._list (fldOffset=0x0)\u0022 P-INDEP\n ;* V41 tmp34        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V30._current (fldOffset=0x8)\u0022 P-INDEP\n-;  V42 tmp35        [V42,T29] (  2,  2   )     int  -\u003E  r13         single-def \u0022field V30._version (fldOffset=0x10)\u0022 P-INDEP\n\u002B;  V42 tmp35        [V42,T28] (  2,  2   )     int  -\u003E  r13         single-def \u0022field V30._version (fldOffset=0x10)\u0022 P-INDEP\n ;* V43 tmp36        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V30._index (fldOffset=0x14)\u0022 P-INDEP\n ;  V44 tmp37        [V44,T17] (  3,  6   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n ;  V45 tmp38        [V45,T07] (  3, 12   )     ref  -\u003E  rdi         \u0022arr expr\u0022\n ;  V46 tmp39        [V46,T08] (  3, 12   )     ref  -\u003E  rax         \u0022argument with side effect\u0022\n ;  V47 cse0         [V47,T18] (  3,  6   )    long  -\u003E  [rbp-0x40]  spill-single-def \u0022CSE #14: moderate\u0022\n-;  V48 cse1         [V48,T26] (  3,  2.25)    long  -\u003E  r13         \u0022CSE #02: moderate\u0022\n\u002B;  V48 cse1         [V48,T25] (  3,  2.25)    long  -\u003E  r13         \u0022CSE #02: moderate\u0022\n ;  V49 cse2         [V49,T05] (  4, 12   )     int  -\u003E  [rbp-0x44]  spill-single-def \u0022CSE #07: moderate\u0022\n-;  V50 cse3         [V50,T30] (  2,  2   )     int  -\u003E  r13         \u0022CSE #04: moderate\u0022\n-;  V51 cse4         [V51,T32] (  3,  1.50)     ref  -\u003E  rdi         \u0022CSE #03: conservative\u0022\n-;  V52 cse5         [V52,T20] (  3,  4   )     ref  -\u003E  r15         \u0022CSE #11: moderate\u0022\n\u002B;  V50 cse3         [V50,T29] (  2,  2   )     int  -\u003E  r13         \u0022CSE #04: moderate\u0022\n\u002B;  V51 cse4         [V51,T31] (  3,  1.50)     ref  -\u003E  rdi         \u0022CSE #03: conservative\u0022\n\u002B;  V52 cse5         [V52,T20] (  3,  4   )     ref  -\u003E  r14         \u0022CSE #11: moderate\u0022\n ;  V53 rat0         [V53,T02] (  6, 17   )    long  -\u003E  r12         \u0022Widened IV V39\u0022\n-;  V54 rat1         [V54,T25] (  4,  2.25)     ref  -\u003E  rcx         \u0022replacement local\u0022\n-;  V55 rat2         [V55,T33] (  3,  1.25)    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n\u002B;  V54 rat1         [V54,T24] (  4,  2.25)     ref  -\u003E  rcx         \u0022replacement local\u0022\n\u002B;  V55 rat2         [V55,T32] (  3,  1.25)    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n... diff truncated; middle omitted ...\n-\t\t\t\t\t\t;; size=43 bbWeight=1 PerfScore 8.25\n-G_M1085_IG05:\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       mov      r14, rax\n-       jmp      SHORT G_M1085_IG07\n-\t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 5.00\n-G_M1085_IG06:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x30]\n\u002B       test     rsi, rsi\n\u002B       je       G_M1085_IG18\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      r14, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M1085_IG07:\n\u002B       mov      r15, rax\n        cmp      byte  ptr [rbp-0x38], 0\n-       je       G_M1085_IG22\n-       mov      rdi, r14\n-       mov      r15, 0xD1FFAB1E      ; \u0027n\u0027\n-       mov      rsi, r15\n-       mov      rax, qword ptr [r14]\n\u002B       je       G_M1085_IG19\n\u002B       mov      rdi, r15\n\u002B       mov      r14, 0xD1FFAB1E      ; \u0027n\u0027\n\u002B       mov      rsi, r14\n\u002B       mov      rax, qword ptr [r15]\n        mov      r13, qword ptr [rax\u002B0x48]\n        call     [r13]MongoDB.Bson.BsonValue:get_Item(System.String):MongoDB.Bson.BsonValue:this\n        mov      rdi, rax\n@@ -152,49 \u002B132,49 @@ G_M1085_IG07:\n        mov      edi, dword ptr [rbx\u002B0x2C]\n        inc      edi\n        cmp      eax, edi\n-       jne      SHORT G_M1085_IG11\n-\t\t\t\t\t\t;; size=59 bbWeight=1 PerfScore 20.50\n-G_M1085_IG08:\n-       mov      rdi, r14\n\u002B       jne      SHORT G_M1085_IG08\n\u002B\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 28.00\n\u002BG_M1085_IG05:\n\u002B       mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; \u0027data\u0027\n        call     [r13]MongoDB.Bson.BsonValue:get_Item(System.String):MongoDB.Bson.BsonValue:this\n        cmp      byte  ptr [rax], al\n        mov      rcx, rax\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonBinaryData\n        cmp      qword ptr [rcx], rdi\n-       je       SHORT G_M1085_IG10\n\u002B       je       SHORT G_M1085_IG07\n \t\t\t\t\t\t;; size=37 bbWeight=0.25 PerfScore 2.25\n-G_M1085_IG09:\n\u002BG_M1085_IG06:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        mov      rcx, rax\n \t\t\t\t\t\t;; size=18 bbWeight=0.12 PerfScore 0.47\n-G_M1085_IG10:\n\u002BG_M1085_IG07:\n        mov      rsi, gword ptr [rcx\u002B0x08]\n        cmp      dword ptr [rsi\u002B0x08], 0\n-       jne      SHORT G_M1085_IG11\n\u002B       jne      SHORT G_M1085_IG08\n        mov      rdi, gword ptr [rbx\u002B0x30]\n        mov      esi, dword ptr [rdi\u002B0x10]\n        dec      esi\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:RemoveAt(int):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:RemoveAt(int):this\n \t\t\t\t\t\t;; size=31 bbWeight=0.50 PerfScore 6.25\n-G_M1085_IG11:\n-       mov      r14, gword ptr [rbx\u002B0x30]\n-       mov      r13d, dword ptr [r14\u002B0x14]\n\u002BG_M1085_IG08:\n\u002B       mov      r15, gword ptr [rbx\u002B0x30]\n\u002B       mov      r13d, dword ptr [r15\u002B0x14]\n        xor      r12d, r12d\n-       jmp      G_M1085_IG18\n\u002B       jmp      G_M1085_IG15\n \t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 6.25\n-G_M1085_IG12:\n-       mov      rdi, gword ptr [r14\u002B0x08]\n\u002BG_M1085_IG09:\n\u002B       mov      rdi, gword ptr [r15\u002B0x08]\n        cmp      r12d, dword ptr [rdi\u002B0x08]\n-       jae      G_M1085_IG26\n\u002B       jae      G_M1085_IG23\n        mov      rax, gword ptr [rdi\u002B8*r12\u002B0x10]\n        mov      gword ptr [rbp-0x58], rax\n        inc      r12d\n        mov      rdi, rax\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        mov      rcx, qword ptr [rax]\n        mov      rcx, qword ptr [rcx\u002B0x48]\n        mov      qword ptr [rbp-0x40], rcx\n@@ -212,32 \u002B192,32 @@ G_M1085_IG12:\n        mov      rcx, rax\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonBinaryData\n        cmp      qword ptr [rcx], rdi\n-       je       SHORT G_M1085_IG14\n\u002B       je       SHORT G_M1085_IG11\n \t\t\t\t\t\t;; size=101 bbWeight=2 PerfScore 71.50\n-G_M1085_IG13:\n\u002BG_M1085_IG10:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        mov      rcx, rax\n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 3.75\n-G_M1085_IG14:\n\u002BG_M1085_IG11:\n        mov      rax, gword ptr [rcx\u002B0x08]\n        mov      gword ptr [rbp-0x50], rax\n        mov      edi, dword ptr [rbx\u002B0x5C]\n        mov      dword ptr [rbp-0x44], edi\n        mov      ecx, dword ptr [rbp-0x2C]\n        cmp      ecx, edi\n-       jne      G_M1085_IG23\n\u002B       jne      G_M1085_IG20\n        inc      edi\n        mov      dword ptr [rbx\u002B0x5C], edi\n        cmp      ecx, dword ptr [rbx\u002B0x2C]\n-       jne      SHORT G_M1085_IG16\n\u002B       jne      SHORT G_M1085_IG13\n \t\t\t\t\t\t;; size=35 bbWeight=4 PerfScore 50.00\n-G_M1085_IG15:\n\u002BG_M1085_IG12:\n        mov      ecx, dword ptr [rbx\u002B0x58]\n-       jmp      SHORT G_M1085_IG17\n\u002B       jmp      SHORT G_M1085_IG14\n \t\t\t\t\t\t;; size=5 bbWeight=2 PerfScore 8.00\n-G_M1085_IG16:\n\u002BG_M1085_IG13:\n        mov      rdi, rbx\n        mov      rcx, qword ptr [rbx]\n        mov      rcx, qword ptr [rcx\u002B0x70]\n@@ -249,18 \u002B229,18 @@ G_M1085_IG16:\n        call     [rax]MongoDB.Bson.Serialization.BsonDocumentBackedClass:GetValue[int](System.String):int:this\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=42 bbWeight=2 PerfScore 26.50\n-G_M1085_IG17:\n\u002BG_M1085_IG14:\n        mov      rax, gword ptr [rbp-0x50]\n        cmp      dword ptr [rax\u002B0x08], ecx\n-       jne      G_M1085_IG24\n-       cmp      r13d, dword ptr [r14\u002B0x14]\n-       jne      G_M1085_IG25\n\u002B       jne      G_M1085_IG21\n\u002B       cmp      r13d, dword ptr [r15\u002B0x14]\n\u002B       jne      G_M1085_IG22\n \t\t\t\t\t\t;; size=23 bbWeight=4 PerfScore 28.00\n-G_M1085_IG18:\n-       cmp      r12d, dword ptr [r14\u002B0x10]\n-       jb       G_M1085_IG12\n\u002BG_M1085_IG15:\n\u002B       cmp      r12d, dword ptr [r15\u002B0x10]\n\u002B       jb       G_M1085_IG09\n \t\t\t\t\t\t;; size=10 bbWeight=8 PerfScore 24.00\n-G_M1085_IG19:\n\u002BG_M1085_IG16:\n        add      rsp, 56\n        pop      rbx\n        pop      r12\n@@ -270,7 \u002B250,7 @@ G_M1085_IG19:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M1085_IG20:\n\u002BG_M1085_IG17:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.GridFS.GridFSChunkException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -284,18 \u002B264,18 @@ G_M1085_IG20:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M1085_IG21:\n\u002BG_M1085_IG18:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M1085_IG22:\n\u002BG_M1085_IG19:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M1085_IG23:\n\u002BG_M1085_IG20:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.GridFS.GridFSChunkException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -309,7 \u002B289,7 @@ G_M1085_IG23:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M1085_IG24:\n\u002BG_M1085_IG21:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.GridFS.GridFSChunkException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -323,15 \u002B303,15 @@ G_M1085_IG24:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M1085_IG25:\n\u002BG_M1085_IG22:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M1085_IG26:\n\u002BG_M1085_IG23:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 854, prolog size 25, PerfScore 291.72, instruction count 211, allocated bytes for code 854 (MethodHash=3792fbc2) for method MongoDB.Driver.GridFS.GridFSForwardOnlyDownloadStream\u00601[double]:ProcessNextBatch(System.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]):this (FullOpts)\n\u002B; Total bytes of code 799, prolog size 25, PerfScore 283.72, instruction count 197, allocated bytes for code 799 (MethodHash=3792fbc2) for method MongoDB.Driver.GridFS.GridFSForwardOnlyDownloadStream\u00601[double]:ProcessNextBatch(System.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":854,"DiffBytes":799},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.GridFS.GridFSForwardOnlyDownloadStream\u00601[int]:ProcessNextBatch(System.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]):this (FullOpts)","Category":"improvement","Description":"854 -\u003E 799 bytes (-55)","ExtraInfo":null,"Diff":"@@ -9,8 \u002B9,8 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T00] ( 23, 27.50)     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.GridFS.GridFSForwardOnlyDownloadStream\u00601[int]\u003E\n-;  V01 arg1         [V01,T15] (  4,  4   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V02 loc0         [V02,T24] (  3,  2.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V01 arg1         [V01,T14] (  4,  4   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V02 loc0         [V02,T23] (  3,  2.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V03 loc1         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V04 loc2         [V04    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[MongoDB.Bson.BsonDocument]\u003E\n ;  V05 loc3         [V05,T09] (  3, 10   )     int  -\u003E  [rbp-0x2C]  spill-single-def\n@@ -22,48 \u002B22,48 @@\n ;* V11 tmp4         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V12 tmp5         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;  V13 tmp6         [V13,T12] (  3,  8   )     int  -\u003E  rcx        \n-;  V14 tmp7         [V14,T35] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n-;  V15 tmp8         [V15,T36] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n\u002B;  V14 tmp7         [V14,T34] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n\u002B;  V15 tmp8         [V15,T35] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n ;* V16 tmp9         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp10        [V17,T27] (  2,  2   )    long  -\u003E  r14         \u0022impAppendStmt\u0022\n-;  V18 tmp11        [V18,T28] (  2,  2   )    long  -\u003E  r15         \u0022non-inline candidate call\u0022\n-;  V19 tmp12        [V19,T37] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n-;  V20 tmp13        [V20,T23] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.GridFS.GridFSFileInfo\u00601[int]\u003E\n-;  V21 tmp14        [V21,T14] (  4,  7   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V22 tmp15        [V22    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V17 tmp10        [V17,T26] (  2,  2   )    long  -\u003E  r14         \u0022impAppendStmt\u0022\n\u002B;  V18 tmp11        [V18,T27] (  2,  2   )    long  -\u003E  r15         \u0022non-inline candidate call\u0022\n\u002B;  V19 tmp12        [V19,T36] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n\u002B;  V20 tmp13        [V20,T22] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.GridFS.GridFSFileInfo\u00601[int]\u003E\n\u002B;  V21 tmp14        [V21,T15] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V22 tmp15        [V22    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V23 tmp16        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V24 tmp17        [V24,T21] (  5,  3.25)     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V25 tmp18        [V25,T22] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V26 tmp19        [V26,T31] (  4,  1.75)     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n\u002B;  V24 tmp17        [V24,T21] (  4,  3.25)     ref  -\u003E  r15         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V25 tmp18        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V26 tmp19        [V26,T30] (  4,  1.75)     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n ;* V27 tmp20        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n ;* V28 tmp21        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp22        [V29,T16] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp22        [V29,T16] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V30 tmp23        [V30    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[MongoDB.Bson.BsonDocument]\u003E\n ;  V31 tmp24        [V31,T04] (  4, 14   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n ;* V32 tmp25        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n ;  V33 tmp26        [V33,T06] (  3, 12   )     ref  -\u003E  rax         class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.GridFS.GridFSFileInfo\u00601[int]\u003E\n ;* V34 tmp27        [V34    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V35 tmp28        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V36 tmp29        [V36,T03] (  4, 15   )     ref  -\u003E  r14         single-def \u0022field V04._list (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V36 tmp29        [V36,T03] (  4, 15   )     ref  -\u003E  r15         single-def \u0022field V04._list (fldOffset=0x0)\u0022 P-INDEP\n ;  V37 tmp30        [V37,T11] (  4,  8   )     ref  -\u003E  [rbp-0x58]  spill-single-def \u0022field V04._current (fldOffset=0x8)\u0022 P-INDEP\n ;  V38 tmp31        [V38,T19] (  2,  5   )     int  -\u003E  r13         single-def \u0022field V04._version (fldOffset=0x10)\u0022 P-INDEP\n-;* V39 tmp32        [V39,T34] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V04._index (fldOffset=0x14)\u0022 P-INDEP\n\u002B;* V39 tmp32        [V39,T33] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V04._index (fldOffset=0x14)\u0022 P-INDEP\n ;* V40 tmp33        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V30._list (fldOffset=0x0)\u0022 P-INDEP\n ;* V41 tmp34        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V30._current (fldOffset=0x8)\u0022 P-INDEP\n-;  V42 tmp35        [V42,T29] (  2,  2   )     int  -\u003E  r13         single-def \u0022field V30._version (fldOffset=0x10)\u0022 P-INDEP\n\u002B;  V42 tmp35        [V42,T28] (  2,  2   )     int  -\u003E  r13         single-def \u0022field V30._version (fldOffset=0x10)\u0022 P-INDEP\n ;* V43 tmp36        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V30._index (fldOffset=0x14)\u0022 P-INDEP\n ;  V44 tmp37        [V44,T17] (  3,  6   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n ;  V45 tmp38        [V45,T07] (  3, 12   )     ref  -\u003E  rdi         \u0022arr expr\u0022\n ;  V46 tmp39        [V46,T08] (  3, 12   )     ref  -\u003E  rax         \u0022argument with side effect\u0022\n ;  V47 cse0         [V47,T18] (  3,  6   )    long  -\u003E  [rbp-0x40]  spill-single-def \u0022CSE #14: moderate\u0022\n-;  V48 cse1         [V48,T26] (  3,  2.25)    long  -\u003E  r13         \u0022CSE #02: moderate\u0022\n\u002B;  V48 cse1         [V48,T25] (  3,  2.25)    long  -\u003E  r13         \u0022CSE #02: moderate\u0022\n ;  V49 cse2         [V49,T05] (  4, 12   )     int  -\u003E  [rbp-0x44]  spill-single-def \u0022CSE #07: moderate\u0022\n-;  V50 cse3         [V50,T30] (  2,  2   )     int  -\u003E  r13         \u0022CSE #04: moderate\u0022\n-;  V51 cse4         [V51,T32] (  3,  1.50)     ref  -\u003E  rdi         \u0022CSE #03: conservative\u0022\n-;  V52 cse5         [V52,T20] (  3,  4   )     ref  -\u003E  r15         \u0022CSE #11: moderate\u0022\n\u002B;  V50 cse3         [V50,T29] (  2,  2   )     int  -\u003E  r13         \u0022CSE #04: moderate\u0022\n\u002B;  V51 cse4         [V51,T31] (  3,  1.50)     ref  -\u003E  rdi         \u0022CSE #03: conservative\u0022\n\u002B;  V52 cse5         [V52,T20] (  3,  4   )     ref  -\u003E  r14         \u0022CSE #11: moderate\u0022\n ;  V53 rat0         [V53,T02] (  6, 17   )    long  -\u003E  r12         \u0022Widened IV V39\u0022\n-;  V54 rat1         [V54,T25] (  4,  2.25)     ref  -\u003E  rcx         \u0022replacement local\u0022\n-;  V55 rat2         [V55,T33] (  3,  1.25)    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n\u002B;  V54 rat1         [V54,T24] (  4,  2.25)     ref  -\u003E  rcx         \u0022replacement local\u0022\n\u002B;  V55 rat2         [V55,T32] (  3,  1.25)    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n... diff truncated; middle omitted ...\n-       test     rax, rax\n-       je       SHORT G_M123_IG06\n-\t\t\t\t\t\t;; size=43 bbWeight=1 PerfScore 8.25\n-G_M123_IG05:\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       mov      r14, rax\n-       jmp      SHORT G_M123_IG07\n-\t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 5.00\n-G_M123_IG06:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x30]\n\u002B       test     rsi, rsi\n\u002B       je       G_M123_IG18\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      r14, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M123_IG07:\n\u002B       mov      r15, rax\n        cmp      byte  ptr [rbp-0x38], 0\n-       je       G_M123_IG22\n-       mov      rdi, r14\n-       mov      r15, 0xD1FFAB1E      ; \u0027n\u0027\n-       mov      rsi, r15\n-       mov      rax, qword ptr [r14]\n\u002B       je       G_M123_IG19\n\u002B       mov      rdi, r15\n\u002B       mov      r14, 0xD1FFAB1E      ; \u0027n\u0027\n\u002B       mov      rsi, r14\n\u002B       mov      rax, qword ptr [r15]\n        mov      r13, qword ptr [rax\u002B0x48]\n        call     [r13]MongoDB.Bson.BsonValue:get_Item(System.String):MongoDB.Bson.BsonValue:this\n        mov      rdi, rax\n@@ -152,49 \u002B132,49 @@ G_M123_IG07:\n        mov      edi, dword ptr [rbx\u002B0x2C]\n        inc      edi\n        cmp      eax, edi\n-       jne      SHORT G_M123_IG11\n-\t\t\t\t\t\t;; size=59 bbWeight=1 PerfScore 20.50\n-G_M123_IG08:\n-       mov      rdi, r14\n\u002B       jne      SHORT G_M123_IG08\n\u002B\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 28.00\n\u002BG_M123_IG05:\n\u002B       mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; \u0027data\u0027\n        call     [r13]MongoDB.Bson.BsonValue:get_Item(System.String):MongoDB.Bson.BsonValue:this\n        cmp      byte  ptr [rax], al\n        mov      rcx, rax\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonBinaryData\n        cmp      qword ptr [rcx], rdi\n-       je       SHORT G_M123_IG10\n\u002B       je       SHORT G_M123_IG07\n \t\t\t\t\t\t;; size=37 bbWeight=0.25 PerfScore 2.25\n-G_M123_IG09:\n\u002BG_M123_IG06:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        mov      rcx, rax\n \t\t\t\t\t\t;; size=18 bbWeight=0.12 PerfScore 0.47\n-G_M123_IG10:\n\u002BG_M123_IG07:\n        mov      rsi, gword ptr [rcx\u002B0x08]\n        cmp      dword ptr [rsi\u002B0x08], 0\n-       jne      SHORT G_M123_IG11\n\u002B       jne      SHORT G_M123_IG08\n        mov      rdi, gword ptr [rbx\u002B0x30]\n        mov      esi, dword ptr [rdi\u002B0x10]\n        dec      esi\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:RemoveAt(int):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:RemoveAt(int):this\n \t\t\t\t\t\t;; size=31 bbWeight=0.50 PerfScore 6.25\n-G_M123_IG11:\n-       mov      r14, gword ptr [rbx\u002B0x30]\n-       mov      r13d, dword ptr [r14\u002B0x14]\n\u002BG_M123_IG08:\n\u002B       mov      r15, gword ptr [rbx\u002B0x30]\n\u002B       mov      r13d, dword ptr [r15\u002B0x14]\n        xor      r12d, r12d\n-       jmp      G_M123_IG18\n\u002B       jmp      G_M123_IG15\n \t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 6.25\n-G_M123_IG12:\n-       mov      rdi, gword ptr [r14\u002B0x08]\n\u002BG_M123_IG09:\n\u002B       mov      rdi, gword ptr [r15\u002B0x08]\n        cmp      r12d, dword ptr [rdi\u002B0x08]\n-       jae      G_M123_IG26\n\u002B       jae      G_M123_IG23\n        mov      rax, gword ptr [rdi\u002B8*r12\u002B0x10]\n        mov      gword ptr [rbp-0x58], rax\n        inc      r12d\n        mov      rdi, rax\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        mov      rcx, qword ptr [rax]\n        mov      rcx, qword ptr [rcx\u002B0x48]\n        mov      qword ptr [rbp-0x40], rcx\n@@ -212,32 \u002B192,32 @@ G_M123_IG12:\n        mov      rcx, rax\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonBinaryData\n        cmp      qword ptr [rcx], rdi\n-       je       SHORT G_M123_IG14\n\u002B       je       SHORT G_M123_IG11\n \t\t\t\t\t\t;; size=101 bbWeight=2 PerfScore 71.50\n-G_M123_IG13:\n\u002BG_M123_IG10:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        mov      rcx, rax\n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 3.75\n-G_M123_IG14:\n\u002BG_M123_IG11:\n        mov      rax, gword ptr [rcx\u002B0x08]\n        mov      gword ptr [rbp-0x50], rax\n        mov      edi, dword ptr [rbx\u002B0x5C]\n        mov      dword ptr [rbp-0x44], edi\n        mov      ecx, dword ptr [rbp-0x2C]\n        cmp      ecx, edi\n-       jne      G_M123_IG23\n\u002B       jne      G_M123_IG20\n        inc      edi\n        mov      dword ptr [rbx\u002B0x5C], edi\n        cmp      ecx, dword ptr [rbx\u002B0x2C]\n-       jne      SHORT G_M123_IG16\n\u002B       jne      SHORT G_M123_IG13\n \t\t\t\t\t\t;; size=35 bbWeight=4 PerfScore 50.00\n-G_M123_IG15:\n\u002BG_M123_IG12:\n        mov      ecx, dword ptr [rbx\u002B0x58]\n-       jmp      SHORT G_M123_IG17\n\u002B       jmp      SHORT G_M123_IG14\n \t\t\t\t\t\t;; size=5 bbWeight=2 PerfScore 8.00\n-G_M123_IG16:\n\u002BG_M123_IG13:\n        mov      rdi, rbx\n        mov      rcx, qword ptr [rbx]\n        mov      rcx, qword ptr [rcx\u002B0x70]\n@@ -249,18 \u002B229,18 @@ G_M123_IG16:\n        call     [rax]MongoDB.Bson.Serialization.BsonDocumentBackedClass:GetValue[int](System.String):int:this\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=42 bbWeight=2 PerfScore 26.50\n-G_M123_IG17:\n\u002BG_M123_IG14:\n        mov      rax, gword ptr [rbp-0x50]\n        cmp      dword ptr [rax\u002B0x08], ecx\n-       jne      G_M123_IG24\n-       cmp      r13d, dword ptr [r14\u002B0x14]\n-       jne      G_M123_IG25\n\u002B       jne      G_M123_IG21\n\u002B       cmp      r13d, dword ptr [r15\u002B0x14]\n\u002B       jne      G_M123_IG22\n \t\t\t\t\t\t;; size=23 bbWeight=4 PerfScore 28.00\n-G_M123_IG18:\n-       cmp      r12d, dword ptr [r14\u002B0x10]\n-       jb       G_M123_IG12\n\u002BG_M123_IG15:\n\u002B       cmp      r12d, dword ptr [r15\u002B0x10]\n\u002B       jb       G_M123_IG09\n \t\t\t\t\t\t;; size=10 bbWeight=8 PerfScore 24.00\n-G_M123_IG19:\n\u002BG_M123_IG16:\n        add      rsp, 56\n        pop      rbx\n        pop      r12\n@@ -270,7 \u002B250,7 @@ G_M123_IG19:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M123_IG20:\n\u002BG_M123_IG17:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.GridFS.GridFSChunkException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -284,18 \u002B264,18 @@ G_M123_IG20:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M123_IG21:\n\u002BG_M123_IG18:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M123_IG22:\n\u002BG_M123_IG19:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M123_IG23:\n\u002BG_M123_IG20:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.GridFS.GridFSChunkException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -309,7 \u002B289,7 @@ G_M123_IG23:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M123_IG24:\n\u002BG_M123_IG21:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.GridFS.GridFSChunkException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -323,15 \u002B303,15 @@ G_M123_IG24:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M123_IG25:\n\u002BG_M123_IG22:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M123_IG26:\n\u002BG_M123_IG23:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 854, prolog size 25, PerfScore 291.72, instruction count 211, allocated bytes for code 854 (MethodHash=bb9cff84) for method MongoDB.Driver.GridFS.GridFSForwardOnlyDownloadStream\u00601[int]:ProcessNextBatch(System.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]):this (FullOpts)\n\u002B; Total bytes of code 799, prolog size 25, PerfScore 283.72, instruction count 197, allocated bytes for code 799 (MethodHash=bb9cff84) for method MongoDB.Driver.GridFS.GridFSForwardOnlyDownloadStream\u00601[int]:ProcessNextBatch(System.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":854,"DiffBytes":799},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.GridFS.GridFSForwardOnlyDownloadStream\u00601[long]:ProcessNextBatch(System.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]):this (FullOpts)","Category":"improvement","Description":"854 -\u003E 799 bytes (-55)","ExtraInfo":null,"Diff":"@@ -9,8 \u002B9,8 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T00] ( 23, 27.50)     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.GridFS.GridFSForwardOnlyDownloadStream\u00601[long]\u003E\n-;  V01 arg1         [V01,T15] (  4,  4   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V02 loc0         [V02,T24] (  3,  2.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V01 arg1         [V01,T14] (  4,  4   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V02 loc0         [V02,T23] (  3,  2.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V03 loc1         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V04 loc2         [V04    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[MongoDB.Bson.BsonDocument]\u003E\n ;  V05 loc3         [V05,T09] (  3, 10   )     int  -\u003E  [rbp-0x2C]  spill-single-def\n@@ -22,48 \u002B22,48 @@\n ;* V11 tmp4         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V12 tmp5         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;  V13 tmp6         [V13,T12] (  3,  8   )     int  -\u003E  rcx        \n-;  V14 tmp7         [V14,T35] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n-;  V15 tmp8         [V15,T36] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n\u002B;  V14 tmp7         [V14,T34] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n\u002B;  V15 tmp8         [V15,T35] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n ;* V16 tmp9         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp10        [V17,T27] (  2,  2   )    long  -\u003E  r14         \u0022impAppendStmt\u0022\n-;  V18 tmp11        [V18,T28] (  2,  2   )    long  -\u003E  r15         \u0022non-inline candidate call\u0022\n-;  V19 tmp12        [V19,T37] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n-;  V20 tmp13        [V20,T23] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.GridFS.GridFSFileInfo\u00601[long]\u003E\n-;  V21 tmp14        [V21,T14] (  4,  7   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V22 tmp15        [V22    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V17 tmp10        [V17,T26] (  2,  2   )    long  -\u003E  r14         \u0022impAppendStmt\u0022\n\u002B;  V18 tmp11        [V18,T27] (  2,  2   )    long  -\u003E  r15         \u0022non-inline candidate call\u0022\n\u002B;  V19 tmp12        [V19,T36] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n\u002B;  V20 tmp13        [V20,T22] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.GridFS.GridFSFileInfo\u00601[long]\u003E\n\u002B;  V21 tmp14        [V21,T15] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V22 tmp15        [V22    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V23 tmp16        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V24 tmp17        [V24,T21] (  5,  3.25)     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V25 tmp18        [V25,T22] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V26 tmp19        [V26,T31] (  4,  1.75)     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n\u002B;  V24 tmp17        [V24,T21] (  4,  3.25)     ref  -\u003E  r15         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V25 tmp18        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V26 tmp19        [V26,T30] (  4,  1.75)     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n ;* V27 tmp20        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n ;* V28 tmp21        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp22        [V29,T16] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp22        [V29,T16] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V30 tmp23        [V30    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[MongoDB.Bson.BsonDocument]\u003E\n ;  V31 tmp24        [V31,T04] (  4, 14   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n ;* V32 tmp25        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n ;  V33 tmp26        [V33,T06] (  3, 12   )     ref  -\u003E  rax         class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.GridFS.GridFSFileInfo\u00601[long]\u003E\n ;* V34 tmp27        [V34    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V35 tmp28        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V36 tmp29        [V36,T03] (  4, 15   )     ref  -\u003E  r14         single-def \u0022field V04._list (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V36 tmp29        [V36,T03] (  4, 15   )     ref  -\u003E  r15         single-def \u0022field V04._list (fldOffset=0x0)\u0022 P-INDEP\n ;  V37 tmp30        [V37,T11] (  4,  8   )     ref  -\u003E  [rbp-0x58]  spill-single-def \u0022field V04._current (fldOffset=0x8)\u0022 P-INDEP\n ;  V38 tmp31        [V38,T19] (  2,  5   )     int  -\u003E  r13         single-def \u0022field V04._version (fldOffset=0x10)\u0022 P-INDEP\n-;* V39 tmp32        [V39,T34] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V04._index (fldOffset=0x14)\u0022 P-INDEP\n\u002B;* V39 tmp32        [V39,T33] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V04._index (fldOffset=0x14)\u0022 P-INDEP\n ;* V40 tmp33        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V30._list (fldOffset=0x0)\u0022 P-INDEP\n ;* V41 tmp34        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V30._current (fldOffset=0x8)\u0022 P-INDEP\n-;  V42 tmp35        [V42,T29] (  2,  2   )     int  -\u003E  r13         single-def \u0022field V30._version (fldOffset=0x10)\u0022 P-INDEP\n\u002B;  V42 tmp35        [V42,T28] (  2,  2   )     int  -\u003E  r13         single-def \u0022field V30._version (fldOffset=0x10)\u0022 P-INDEP\n ;* V43 tmp36        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V30._index (fldOffset=0x14)\u0022 P-INDEP\n ;  V44 tmp37        [V44,T17] (  3,  6   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n ;  V45 tmp38        [V45,T07] (  3, 12   )     ref  -\u003E  rdi         \u0022arr expr\u0022\n ;  V46 tmp39        [V46,T08] (  3, 12   )     ref  -\u003E  rax         \u0022argument with side effect\u0022\n ;  V47 cse0         [V47,T18] (  3,  6   )    long  -\u003E  [rbp-0x40]  spill-single-def \u0022CSE #14: moderate\u0022\n-;  V48 cse1         [V48,T26] (  3,  2.25)    long  -\u003E  r13         \u0022CSE #02: moderate\u0022\n\u002B;  V48 cse1         [V48,T25] (  3,  2.25)    long  -\u003E  r13         \u0022CSE #02: moderate\u0022\n ;  V49 cse2         [V49,T05] (  4, 12   )     int  -\u003E  [rbp-0x44]  spill-single-def \u0022CSE #07: moderate\u0022\n-;  V50 cse3         [V50,T30] (  2,  2   )     int  -\u003E  r13         \u0022CSE #04: moderate\u0022\n-;  V51 cse4         [V51,T32] (  3,  1.50)     ref  -\u003E  rdi         \u0022CSE #03: conservative\u0022\n-;  V52 cse5         [V52,T20] (  3,  4   )     ref  -\u003E  r15         \u0022CSE #11: moderate\u0022\n\u002B;  V50 cse3         [V50,T29] (  2,  2   )     int  -\u003E  r13         \u0022CSE #04: moderate\u0022\n\u002B;  V51 cse4         [V51,T31] (  3,  1.50)     ref  -\u003E  rdi         \u0022CSE #03: conservative\u0022\n\u002B;  V52 cse5         [V52,T20] (  3,  4   )     ref  -\u003E  r14         \u0022CSE #11: moderate\u0022\n ;  V53 rat0         [V53,T02] (  6, 17   )    long  -\u003E  r12         \u0022Widened IV V39\u0022\n-;  V54 rat1         [V54,T25] (  4,  2.25)     ref  -\u003E  rcx         \u0022replacement local\u0022\n-;  V55 rat2         [V55,T33] (  3,  1.25)    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n\u002B;  V54 rat1         [V54,T24] (  4,  2.25)     ref  -\u003E  rcx         \u0022replacement local\u0022\n\u002B;  V55 rat2         [V55,T32] (  3,  1.25)    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n... diff truncated; middle omitted ...\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       mov      r14, rax\n-       jmp      SHORT G_M28386_IG07\n-\t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 5.00\n-G_M28386_IG06:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x30]\n\u002B       test     rsi, rsi\n\u002B       je       G_M28386_IG18\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      r14, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M28386_IG07:\n\u002B       mov      r15, rax\n        cmp      byte  ptr [rbp-0x38], 0\n-       je       G_M28386_IG22\n-       mov      rdi, r14\n-       mov      r15, 0xD1FFAB1E      ; \u0027n\u0027\n-       mov      rsi, r15\n-       mov      rax, qword ptr [r14]\n\u002B       je       G_M28386_IG19\n\u002B       mov      rdi, r15\n\u002B       mov      r14, 0xD1FFAB1E      ; \u0027n\u0027\n\u002B       mov      rsi, r14\n\u002B       mov      rax, qword ptr [r15]\n        mov      r13, qword ptr [rax\u002B0x48]\n        call     [r13]MongoDB.Bson.BsonValue:get_Item(System.String):MongoDB.Bson.BsonValue:this\n        mov      rdi, rax\n@@ -152,49 \u002B132,49 @@ G_M28386_IG07:\n        mov      edi, dword ptr [rbx\u002B0x2C]\n        inc      edi\n        cmp      eax, edi\n-       jne      SHORT G_M28386_IG11\n-\t\t\t\t\t\t;; size=59 bbWeight=1 PerfScore 20.50\n-G_M28386_IG08:\n-       mov      rdi, r14\n\u002B       jne      SHORT G_M28386_IG08\n\u002B\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 28.00\n\u002BG_M28386_IG05:\n\u002B       mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; \u0027data\u0027\n        call     [r13]MongoDB.Bson.BsonValue:get_Item(System.String):MongoDB.Bson.BsonValue:this\n        cmp      byte  ptr [rax], al\n        mov      rcx, rax\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonBinaryData\n        cmp      qword ptr [rcx], rdi\n-       je       SHORT G_M28386_IG10\n\u002B       je       SHORT G_M28386_IG07\n \t\t\t\t\t\t;; size=37 bbWeight=0.25 PerfScore 2.25\n-G_M28386_IG09:\n\u002BG_M28386_IG06:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        mov      rcx, rax\n \t\t\t\t\t\t;; size=18 bbWeight=0.12 PerfScore 0.47\n-G_M28386_IG10:\n\u002BG_M28386_IG07:\n        mov      rsi, gword ptr [rcx\u002B0x08]\n        cmp      dword ptr [rsi\u002B0x08], 0\n-       jne      SHORT G_M28386_IG11\n\u002B       jne      SHORT G_M28386_IG08\n        mov      rdi, gword ptr [rbx\u002B0x30]\n        mov      esi, dword ptr [rdi\u002B0x10]\n        dec      esi\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:RemoveAt(int):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:RemoveAt(int):this\n \t\t\t\t\t\t;; size=31 bbWeight=0.50 PerfScore 6.25\n-G_M28386_IG11:\n-       mov      r14, gword ptr [rbx\u002B0x30]\n-       mov      r13d, dword ptr [r14\u002B0x14]\n\u002BG_M28386_IG08:\n\u002B       mov      r15, gword ptr [rbx\u002B0x30]\n\u002B       mov      r13d, dword ptr [r15\u002B0x14]\n        xor      r12d, r12d\n-       jmp      G_M28386_IG18\n\u002B       jmp      G_M28386_IG15\n \t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 6.25\n-G_M28386_IG12:\n-       mov      rdi, gword ptr [r14\u002B0x08]\n\u002BG_M28386_IG09:\n\u002B       mov      rdi, gword ptr [r15\u002B0x08]\n        cmp      r12d, dword ptr [rdi\u002B0x08]\n-       jae      G_M28386_IG26\n\u002B       jae      G_M28386_IG23\n        mov      rax, gword ptr [rdi\u002B8*r12\u002B0x10]\n        mov      gword ptr [rbp-0x58], rax\n        inc      r12d\n        mov      rdi, rax\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        mov      rcx, qword ptr [rax]\n        mov      rcx, qword ptr [rcx\u002B0x48]\n        mov      qword ptr [rbp-0x40], rcx\n@@ -212,32 \u002B192,32 @@ G_M28386_IG12:\n        mov      rcx, rax\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonBinaryData\n        cmp      qword ptr [rcx], rdi\n-       je       SHORT G_M28386_IG14\n\u002B       je       SHORT G_M28386_IG11\n \t\t\t\t\t\t;; size=101 bbWeight=2 PerfScore 71.50\n-G_M28386_IG13:\n\u002BG_M28386_IG10:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        mov      rcx, rax\n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 3.75\n-G_M28386_IG14:\n\u002BG_M28386_IG11:\n        mov      rax, gword ptr [rcx\u002B0x08]\n        mov      gword ptr [rbp-0x50], rax\n        mov      edi, dword ptr [rbx\u002B0x5C]\n        mov      dword ptr [rbp-0x44], edi\n        mov      ecx, dword ptr [rbp-0x2C]\n        cmp      ecx, edi\n-       jne      G_M28386_IG23\n\u002B       jne      G_M28386_IG20\n        inc      edi\n        mov      dword ptr [rbx\u002B0x5C], edi\n        cmp      ecx, dword ptr [rbx\u002B0x2C]\n-       jne      SHORT G_M28386_IG16\n\u002B       jne      SHORT G_M28386_IG13\n \t\t\t\t\t\t;; size=35 bbWeight=4 PerfScore 50.00\n-G_M28386_IG15:\n\u002BG_M28386_IG12:\n        mov      ecx, dword ptr [rbx\u002B0x58]\n-       jmp      SHORT G_M28386_IG17\n\u002B       jmp      SHORT G_M28386_IG14\n \t\t\t\t\t\t;; size=5 bbWeight=2 PerfScore 8.00\n-G_M28386_IG16:\n\u002BG_M28386_IG13:\n        mov      rdi, rbx\n        mov      rcx, qword ptr [rbx]\n        mov      rcx, qword ptr [rcx\u002B0x70]\n@@ -249,18 \u002B229,18 @@ G_M28386_IG16:\n        call     [rax]MongoDB.Bson.Serialization.BsonDocumentBackedClass:GetValue[int](System.String):int:this\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=42 bbWeight=2 PerfScore 26.50\n-G_M28386_IG17:\n\u002BG_M28386_IG14:\n        mov      rax, gword ptr [rbp-0x50]\n        cmp      dword ptr [rax\u002B0x08], ecx\n-       jne      G_M28386_IG24\n-       cmp      r13d, dword ptr [r14\u002B0x14]\n-       jne      G_M28386_IG25\n\u002B       jne      G_M28386_IG21\n\u002B       cmp      r13d, dword ptr [r15\u002B0x14]\n\u002B       jne      G_M28386_IG22\n \t\t\t\t\t\t;; size=23 bbWeight=4 PerfScore 28.00\n-G_M28386_IG18:\n-       cmp      r12d, dword ptr [r14\u002B0x10]\n-       jb       G_M28386_IG12\n\u002BG_M28386_IG15:\n\u002B       cmp      r12d, dword ptr [r15\u002B0x10]\n\u002B       jb       G_M28386_IG09\n \t\t\t\t\t\t;; size=10 bbWeight=8 PerfScore 24.00\n-G_M28386_IG19:\n\u002BG_M28386_IG16:\n        add      rsp, 56\n        pop      rbx\n        pop      r12\n@@ -270,7 \u002B250,7 @@ G_M28386_IG19:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M28386_IG20:\n\u002BG_M28386_IG17:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.GridFS.GridFSChunkException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -284,18 \u002B264,18 @@ G_M28386_IG20:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M28386_IG21:\n\u002BG_M28386_IG18:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M28386_IG22:\n\u002BG_M28386_IG19:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M28386_IG23:\n\u002BG_M28386_IG20:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.GridFS.GridFSChunkException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -309,7 \u002B289,7 @@ G_M28386_IG23:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M28386_IG24:\n\u002BG_M28386_IG21:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.GridFS.GridFSChunkException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -323,15 \u002B303,15 @@ G_M28386_IG24:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M28386_IG25:\n\u002BG_M28386_IG22:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M28386_IG26:\n\u002BG_M28386_IG23:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 854, prolog size 25, PerfScore 291.72, instruction count 211, allocated bytes for code 854 (MethodHash=db5f911d) for method MongoDB.Driver.GridFS.GridFSForwardOnlyDownloadStream\u00601[long]:ProcessNextBatch(System.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]):this (FullOpts)\n\u002B; Total bytes of code 799, prolog size 25, PerfScore 283.72, instruction count 197, allocated bytes for code 799 (MethodHash=db5f911d) for method MongoDB.Driver.GridFS.GridFSForwardOnlyDownloadStream\u00601[long]:ProcessNextBatch(System.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":854,"DiffBytes":799},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.GridFS.GridFSForwardOnlyDownloadStream\u00601[short]:ProcessNextBatch(System.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]):this (FullOpts)","Category":"improvement","Description":"854 -\u003E 799 bytes (-55)","ExtraInfo":null,"Diff":"@@ -9,8 \u002B9,8 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T00] ( 23, 27.50)     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.GridFS.GridFSForwardOnlyDownloadStream\u00601[short]\u003E\n-;  V01 arg1         [V01,T15] (  4,  4   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V02 loc0         [V02,T24] (  3,  2.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V01 arg1         [V01,T14] (  4,  4   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V02 loc0         [V02,T23] (  3,  2.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V03 loc1         [V03    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V04 loc2         [V04    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[MongoDB.Bson.BsonDocument]\u003E\n ;  V05 loc3         [V05,T09] (  3, 10   )     int  -\u003E  [rbp-0x2C]  spill-single-def\n@@ -22,48 \u002B22,48 @@\n ;* V11 tmp4         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V12 tmp5         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;  V13 tmp6         [V13,T12] (  3,  8   )     int  -\u003E  rcx        \n-;  V14 tmp7         [V14,T35] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n-;  V15 tmp8         [V15,T36] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n\u002B;  V14 tmp7         [V14,T34] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n\u002B;  V15 tmp8         [V15,T35] (  3,  0   )     ref  -\u003E  r15         class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n ;* V16 tmp9         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp10        [V17,T27] (  2,  2   )    long  -\u003E  r14         \u0022impAppendStmt\u0022\n-;  V18 tmp11        [V18,T28] (  2,  2   )    long  -\u003E  r15         \u0022non-inline candidate call\u0022\n-;  V19 tmp12        [V19,T37] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n-;  V20 tmp13        [V20,T23] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.GridFS.GridFSFileInfo\u00601[short]\u003E\n-;  V21 tmp14        [V21,T14] (  4,  7   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V22 tmp15        [V22    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V17 tmp10        [V17,T26] (  2,  2   )    long  -\u003E  r14         \u0022impAppendStmt\u0022\n\u002B;  V18 tmp11        [V18,T27] (  2,  2   )    long  -\u003E  r15         \u0022non-inline candidate call\u0022\n\u002B;  V19 tmp12        [V19,T36] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.GridFS.GridFSChunkException\u003E\n\u002B;  V20 tmp13        [V20,T22] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.GridFS.GridFSFileInfo\u00601[short]\u003E\n\u002B;  V21 tmp14        [V21,T15] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V22 tmp15        [V22    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V23 tmp16        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V24 tmp17        [V24,T21] (  5,  3.25)     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V25 tmp18        [V25,T22] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V26 tmp19        [V26,T31] (  4,  1.75)     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n\u002B;  V24 tmp17        [V24,T21] (  4,  3.25)     ref  -\u003E  r15         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V25 tmp18        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V26 tmp19        [V26,T30] (  4,  1.75)     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n ;* V27 tmp20        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n ;* V28 tmp21        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V29 tmp22        [V29,T16] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V29 tmp22        [V29,T16] (  3,  6   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V30 tmp23        [V30    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.Collections.Generic.List\u00601\u002BEnumerator[MongoDB.Bson.BsonDocument]\u003E\n ;  V31 tmp24        [V31,T04] (  4, 14   )     ref  -\u003E  rax         class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n ;* V32 tmp25        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.BsonBinaryData\u003E\n ;  V33 tmp26        [V33,T06] (  3, 12   )     ref  -\u003E  rax         class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.GridFS.GridFSFileInfo\u00601[short]\u003E\n ;* V34 tmp27        [V34    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;* V35 tmp28        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V36 tmp29        [V36,T03] (  4, 15   )     ref  -\u003E  r14         single-def \u0022field V04._list (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V36 tmp29        [V36,T03] (  4, 15   )     ref  -\u003E  r15         single-def \u0022field V04._list (fldOffset=0x0)\u0022 P-INDEP\n ;  V37 tmp30        [V37,T11] (  4,  8   )     ref  -\u003E  [rbp-0x58]  spill-single-def \u0022field V04._current (fldOffset=0x8)\u0022 P-INDEP\n ;  V38 tmp31        [V38,T19] (  2,  5   )     int  -\u003E  r13         single-def \u0022field V04._version (fldOffset=0x10)\u0022 P-INDEP\n-;* V39 tmp32        [V39,T34] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V04._index (fldOffset=0x14)\u0022 P-INDEP\n\u002B;* V39 tmp32        [V39,T33] (  0,  0   )     int  -\u003E  zero-ref    \u0022field V04._index (fldOffset=0x14)\u0022 P-INDEP\n ;* V40 tmp33        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V30._list (fldOffset=0x0)\u0022 P-INDEP\n ;* V41 tmp34        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V30._current (fldOffset=0x8)\u0022 P-INDEP\n-;  V42 tmp35        [V42,T29] (  2,  2   )     int  -\u003E  r13         single-def \u0022field V30._version (fldOffset=0x10)\u0022 P-INDEP\n\u002B;  V42 tmp35        [V42,T28] (  2,  2   )     int  -\u003E  r13         single-def \u0022field V30._version (fldOffset=0x10)\u0022 P-INDEP\n ;* V43 tmp36        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V30._index (fldOffset=0x14)\u0022 P-INDEP\n ;  V44 tmp37        [V44,T17] (  3,  6   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n ;  V45 tmp38        [V45,T07] (  3, 12   )     ref  -\u003E  rdi         \u0022arr expr\u0022\n ;  V46 tmp39        [V46,T08] (  3, 12   )     ref  -\u003E  rax         \u0022argument with side effect\u0022\n ;  V47 cse0         [V47,T18] (  3,  6   )    long  -\u003E  [rbp-0x40]  spill-single-def \u0022CSE #14: moderate\u0022\n-;  V48 cse1         [V48,T26] (  3,  2.25)    long  -\u003E  r13         \u0022CSE #02: moderate\u0022\n\u002B;  V48 cse1         [V48,T25] (  3,  2.25)    long  -\u003E  r13         \u0022CSE #02: moderate\u0022\n ;  V49 cse2         [V49,T05] (  4, 12   )     int  -\u003E  [rbp-0x44]  spill-single-def \u0022CSE #07: moderate\u0022\n-;  V50 cse3         [V50,T30] (  2,  2   )     int  -\u003E  r13         \u0022CSE #04: moderate\u0022\n-;  V51 cse4         [V51,T32] (  3,  1.50)     ref  -\u003E  rdi         \u0022CSE #03: conservative\u0022\n-;  V52 cse5         [V52,T20] (  3,  4   )     ref  -\u003E  r15         \u0022CSE #11: moderate\u0022\n\u002B;  V50 cse3         [V50,T29] (  2,  2   )     int  -\u003E  r13         \u0022CSE #04: moderate\u0022\n\u002B;  V51 cse4         [V51,T31] (  3,  1.50)     ref  -\u003E  rdi         \u0022CSE #03: conservative\u0022\n\u002B;  V52 cse5         [V52,T20] (  3,  4   )     ref  -\u003E  r14         \u0022CSE #11: moderate\u0022\n ;  V53 rat0         [V53,T02] (  6, 17   )    long  -\u003E  r12         \u0022Widened IV V39\u0022\n-;  V54 rat1         [V54,T25] (  4,  2.25)     ref  -\u003E  rcx         \u0022replacement local\u0022\n-;  V55 rat2         [V55,T33] (  3,  1.25)    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n\u002B;  V54 rat1         [V54,T24] (  4,  2.25)     ref  -\u003E  rcx         \u0022replacement local\u0022\n\u002B;  V55 rat2         [V55,T32] (  3,  1.25)    long  -\u003E  rdi         \u0022CSE for expectedClsNode\u0022\n... diff truncated; middle omitted ...\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       mov      r14, rax\n-       jmp      SHORT G_M60250_IG07\n-\t\t\t\t\t\t;; size=22 bbWeight=0.50 PerfScore 5.00\n-G_M60250_IG06:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x30]\n\u002B       test     rsi, rsi\n\u002B       je       G_M60250_IG18\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r15\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      r14, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M60250_IG07:\n\u002B       mov      r15, rax\n        cmp      byte  ptr [rbp-0x38], 0\n-       je       G_M60250_IG22\n-       mov      rdi, r14\n-       mov      r15, 0xD1FFAB1E      ; \u0027n\u0027\n-       mov      rsi, r15\n-       mov      rax, qword ptr [r14]\n\u002B       je       G_M60250_IG19\n\u002B       mov      rdi, r15\n\u002B       mov      r14, 0xD1FFAB1E      ; \u0027n\u0027\n\u002B       mov      rsi, r14\n\u002B       mov      rax, qword ptr [r15]\n        mov      r13, qword ptr [rax\u002B0x48]\n        call     [r13]MongoDB.Bson.BsonValue:get_Item(System.String):MongoDB.Bson.BsonValue:this\n        mov      rdi, rax\n@@ -152,49 \u002B132,49 @@ G_M60250_IG07:\n        mov      edi, dword ptr [rbx\u002B0x2C]\n        inc      edi\n        cmp      eax, edi\n-       jne      SHORT G_M60250_IG11\n-\t\t\t\t\t\t;; size=59 bbWeight=1 PerfScore 20.50\n-G_M60250_IG08:\n-       mov      rdi, r14\n\u002B       jne      SHORT G_M60250_IG08\n\u002B\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 28.00\n\u002BG_M60250_IG05:\n\u002B       mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; \u0027data\u0027\n        call     [r13]MongoDB.Bson.BsonValue:get_Item(System.String):MongoDB.Bson.BsonValue:this\n        cmp      byte  ptr [rax], al\n        mov      rcx, rax\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonBinaryData\n        cmp      qword ptr [rcx], rdi\n-       je       SHORT G_M60250_IG10\n\u002B       je       SHORT G_M60250_IG07\n \t\t\t\t\t\t;; size=37 bbWeight=0.25 PerfScore 2.25\n-G_M60250_IG09:\n\u002BG_M60250_IG06:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        mov      rcx, rax\n \t\t\t\t\t\t;; size=18 bbWeight=0.12 PerfScore 0.47\n-G_M60250_IG10:\n\u002BG_M60250_IG07:\n        mov      rsi, gword ptr [rcx\u002B0x08]\n        cmp      dword ptr [rsi\u002B0x08], 0\n-       jne      SHORT G_M60250_IG11\n\u002B       jne      SHORT G_M60250_IG08\n        mov      rdi, gword ptr [rbx\u002B0x30]\n        mov      esi, dword ptr [rdi\u002B0x10]\n        dec      esi\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List\u00601[System.__Canon]:RemoveAt(int):this\n        call     [rax]System.Collections.Generic.List\u00601[System.__Canon]:RemoveAt(int):this\n \t\t\t\t\t\t;; size=31 bbWeight=0.50 PerfScore 6.25\n-G_M60250_IG11:\n-       mov      r14, gword ptr [rbx\u002B0x30]\n-       mov      r13d, dword ptr [r14\u002B0x14]\n\u002BG_M60250_IG08:\n\u002B       mov      r15, gword ptr [rbx\u002B0x30]\n\u002B       mov      r13d, dword ptr [r15\u002B0x14]\n        xor      r12d, r12d\n-       jmp      G_M60250_IG18\n\u002B       jmp      G_M60250_IG15\n \t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 6.25\n-G_M60250_IG12:\n-       mov      rdi, gword ptr [r14\u002B0x08]\n\u002BG_M60250_IG09:\n\u002B       mov      rdi, gword ptr [r15\u002B0x08]\n        cmp      r12d, dword ptr [rdi\u002B0x08]\n-       jae      G_M60250_IG26\n\u002B       jae      G_M60250_IG23\n        mov      rax, gword ptr [rdi\u002B8*r12\u002B0x10]\n        mov      gword ptr [rbp-0x58], rax\n        inc      r12d\n        mov      rdi, rax\n-       mov      rsi, r15\n\u002B       mov      rsi, r14\n        mov      rcx, qword ptr [rax]\n        mov      rcx, qword ptr [rcx\u002B0x48]\n        mov      qword ptr [rbp-0x40], rcx\n@@ -212,32 \u002B192,32 @@ G_M60250_IG12:\n        mov      rcx, rax\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonBinaryData\n        cmp      qword ptr [rcx], rdi\n-       je       SHORT G_M60250_IG14\n\u002B       je       SHORT G_M60250_IG11\n \t\t\t\t\t\t;; size=101 bbWeight=2 PerfScore 71.50\n-G_M60250_IG13:\n\u002BG_M60250_IG10:\n        mov      rsi, rax\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL\n        mov      rcx, rax\n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 3.75\n-G_M60250_IG14:\n\u002BG_M60250_IG11:\n        mov      rax, gword ptr [rcx\u002B0x08]\n        mov      gword ptr [rbp-0x50], rax\n        mov      edi, dword ptr [rbx\u002B0x5C]\n        mov      dword ptr [rbp-0x44], edi\n        mov      ecx, dword ptr [rbp-0x2C]\n        cmp      ecx, edi\n-       jne      G_M60250_IG23\n\u002B       jne      G_M60250_IG20\n        inc      edi\n        mov      dword ptr [rbx\u002B0x5C], edi\n        cmp      ecx, dword ptr [rbx\u002B0x2C]\n-       jne      SHORT G_M60250_IG16\n\u002B       jne      SHORT G_M60250_IG13\n \t\t\t\t\t\t;; size=35 bbWeight=4 PerfScore 50.00\n-G_M60250_IG15:\n\u002BG_M60250_IG12:\n        mov      ecx, dword ptr [rbx\u002B0x58]\n-       jmp      SHORT G_M60250_IG17\n\u002B       jmp      SHORT G_M60250_IG14\n \t\t\t\t\t\t;; size=5 bbWeight=2 PerfScore 8.00\n-G_M60250_IG16:\n\u002BG_M60250_IG13:\n        mov      rdi, rbx\n        mov      rcx, qword ptr [rbx]\n        mov      rcx, qword ptr [rcx\u002B0x70]\n@@ -249,18 \u002B229,18 @@ G_M60250_IG16:\n        call     [rax]MongoDB.Bson.Serialization.BsonDocumentBackedClass:GetValue[int](System.String):int:this\n        mov      ecx, eax\n \t\t\t\t\t\t;; size=42 bbWeight=2 PerfScore 26.50\n-G_M60250_IG17:\n\u002BG_M60250_IG14:\n        mov      rax, gword ptr [rbp-0x50]\n        cmp      dword ptr [rax\u002B0x08], ecx\n-       jne      G_M60250_IG24\n-       cmp      r13d, dword ptr [r14\u002B0x14]\n-       jne      G_M60250_IG25\n\u002B       jne      G_M60250_IG21\n\u002B       cmp      r13d, dword ptr [r15\u002B0x14]\n\u002B       jne      G_M60250_IG22\n \t\t\t\t\t\t;; size=23 bbWeight=4 PerfScore 28.00\n-G_M60250_IG18:\n-       cmp      r12d, dword ptr [r14\u002B0x10]\n-       jb       G_M60250_IG12\n\u002BG_M60250_IG15:\n\u002B       cmp      r12d, dword ptr [r15\u002B0x10]\n\u002B       jb       G_M60250_IG09\n \t\t\t\t\t\t;; size=10 bbWeight=8 PerfScore 24.00\n-G_M60250_IG19:\n\u002BG_M60250_IG16:\n        add      rsp, 56\n        pop      rbx\n        pop      r12\n@@ -270,7 \u002B250,7 @@ G_M60250_IG19:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M60250_IG20:\n\u002BG_M60250_IG17:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.GridFS.GridFSChunkException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -284,18 \u002B264,18 @@ G_M60250_IG20:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M60250_IG21:\n\u002BG_M60250_IG18:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M60250_IG22:\n\u002BG_M60250_IG19:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M60250_IG23:\n\u002BG_M60250_IG20:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.GridFS.GridFSChunkException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -309,7 \u002B289,7 @@ G_M60250_IG23:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M60250_IG24:\n\u002BG_M60250_IG21:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.GridFS.GridFSChunkException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -323,15 \u002B303,15 @@ G_M60250_IG24:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=60 bbWeight=0 PerfScore 0.00\n-G_M60250_IG25:\n\u002BG_M60250_IG22:\n        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        call     [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M60250_IG26:\n\u002BG_M60250_IG23:\n        call     CORINFO_HELP_RNGCHKFAIL\n        int3     \n \t\t\t\t\t\t;; size=6 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 854, prolog size 25, PerfScore 291.72, instruction count 211, allocated bytes for code 854 (MethodHash=af1114a5) for method MongoDB.Driver.GridFS.GridFSForwardOnlyDownloadStream\u00601[short]:ProcessNextBatch(System.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]):this (FullOpts)\n\u002B; Total bytes of code 799, prolog size 25, PerfScore 283.72, instruction count 197, allocated bytes for code 799 (MethodHash=af1114a5) for method MongoDB.Driver.GridFS.GridFSForwardOnlyDownloadStream\u00601[short]:ProcessNextBatch(System.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":854,"DiffBytes":799},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.Linq.Linq3Implementation.Translators.DiscriminatorAstExpression:TypeIs(MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstGetFieldExpression,MongoDB.Bson.Serialization.Conventions.IHierarchicalDiscriminatorConvention,System.Type,System.Type):MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression (FullOpts)","Category":"improvement","Description":"646 -\u003E 591 bytes (-55)","ExtraInfo":null,"Diff":"@@ -12,24 \u002B12,24 @@\n ;  V01 arg1         [V01,T10] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CMongoDB.Bson.Serialization.Conventions.IHierarchicalDiscriminatorConvention\u003E\n ;  V02 arg2         [V02,T11] (  3,  3   )     ref  -\u003E  r11         class-hnd single-def \u003CSystem.Type\u003E\n ;  V03 arg3         [V03,T12] (  3,  3   )     ref  -\u003E  rcx         class-hnd single-def \u003CSystem.Type\u003E\n-;  V04 loc0         [V04,T17] (  3,  2.50)     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Bson.BsonValue\u003E\n\u002B;  V04 loc0         [V04,T16] (  3,  2.50)     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Bson.BsonValue\u003E\n ;* V05 loc1         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Bson.BsonValue\u003E\n-;  V06 loc2         [V06,T15] (  4,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Bson.BsonArray\u003E\n\u002B;  V06 loc2         [V06,T17] (  3,  2.50)     ref  -\u003E  rax         class-hnd single-def \u003CMongoDB.Bson.BsonArray\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V08 tmp1         [V08,T16] (  4,  3   )     ref  -\u003E  r13        \n\u002B;  V08 tmp1         [V08,T15] (  4,  3   )     ref  -\u003E  r14        \n ;* V09 tmp2         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstUnaryExpression\u003E\n ;* V10 tmp3         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstBinaryExpression\u003E\n ;* V11 tmp4         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstBinaryExpression\u003E\n-;  V12 tmp5         [V12    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V12 tmp5         [V12    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V13 tmp6         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V14 tmp7         [V14,T19] (  3,  1.50)     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n-;  V15 tmp8         [V15,T18] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonValue]\u003E\n\u002B;  V14 tmp7         [V14,T18] (  2,  1   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n\u002B;* V15 tmp8         [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonValue]\u003E\n ;  V16 tmp9         [V16,T05] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstUnaryExpression\u003E\n-;  V17 tmp10        [V17,T20] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V17 tmp10        [V17,T19] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n ;  V18 tmp11        [V18,T06] (  3,  6   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstConstantExpression\u003E\n ;* V19 tmp12        [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonString\u003E\n ;* V20 tmp13        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonString\u003E\n-;  V21 tmp14        [V21,T07] (  3,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonString\u003E\n\u002B;  V21 tmp14        [V21,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonString\u003E\n ;  V22 tmp15        [V22,T00] (  5, 10   )     ref  -\u003E  [rbp-0x40]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstBinaryExpression\u003E\n ;* V23 tmp16        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n ;* V24 tmp17        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n@@ -46,7 \u002B46,7 @@\n ;* V35 tmp28        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n ;* V36 tmp29        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n ;  V37 cse0         [V37,T13] (  4,  4   )    long  -\u003E  r12         \u0022CSE #01: moderate\u0022\n-;  V38 cse1         [V38,T14] (  4,  4   )    long  -\u003E  r14         \u0022CSE #02: moderate\u0022\n\u002B;  V38 cse1         [V38,T14] (  4,  4   )    long  -\u003E  r13         \u0022CSE #02: moderate\u0022\n ;\n ; Lcl frame size = 40\n \n@@ -75,65 \u002B75,47 @@ G_M61604_IG02:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonArray\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       mov      r14, rax\n-       test     r14, r14\n-       je       SHORT G_M61604_IG06\n-\t\t\t\t\t\t;; size=58 bbWeight=1 PerfScore 9.50\n-G_M61604_IG03:\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonValue]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n        test     rax, rax\n        je       SHORT G_M61604_IG04\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       mov      r13, rax\n-       jmp      SHORT G_M61604_IG05\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 7.50\n-G_M61604_IG04:\n\u002B\t\t\t\t\t\t;; size=55 bbWeight=1 PerfScore 9.25\n\u002BG_M61604_IG03:\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r14\n\u002B       mov      rsi, rax\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonValue](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonValue],byref):MongoDB.Bson.BsonValue\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-       mov      r13, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M61604_IG05:\n\u002B       mov      r14, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M61604_IG10\n-       jmp      SHORT G_M61604_IG07\n-\t\t\t\t\t\t;; size=12 bbWeight=0.50 PerfScore 2.00\n-G_M61604_IG06:\n-       mov      r13, r15\n\u002B       je       G_M61604_IG08\n\u002B       jmp      SHORT G_M61604_IG05\n\u002B\t\t\t\t\t\t;; size=44 bbWeight=0.50 PerfScore 4.25\n\u002BG_M61604_IG04:\n\u002B       mov      r14, r15\n \t\t\t\t\t\t;; size=3 bbWeight=0.50 PerfScore 0.12\n-G_M61604_IG07:\n\u002BG_M61604_IG05:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstUnaryExpression\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        mov      dword ptr [r15\u002B0x10], 66\n        test     rbx, rbx\n-       je       G_M61604_IG11\n\u002B       je       G_M61604_IG09\n        lea      rdi, bword ptr [r15\u002B0x08]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Bson.BsonString\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r14, rax\n\u002B       mov      r13, rax\n        mov      rdi, 0xD1FFAB1E      ; \u0027array\u0027\n-       mov      gword ptr [r14\u002B0x08], rdi\n\u002B       mov      gword ptr [r13\u002B0x08], rdi\n        mov      r12, 0xD1FFAB1E      ; MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstConstantExpression\n        mov      rdi, r12\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x38], rax\n        lea      rdi, bword ptr [rax\u002B0x08]\n-       mov      rsi, r14\n\u002B       mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r14, 0xD1FFAB1E      ; MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstBinaryExpression\n-       mov      rdi, r14\n\u002B       mov      r13, 0xD1FFAB1E      ; MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstBinaryExpression\n\u002B       mov      rdi, r13\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x40], rax\n        mov      dword ptr [rax\u002B0x18], 4\n@@ -148,14 \u002B130,14 @@ G_M61604_IG07:\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x48], rax\n        lea      rdi, bword ptr [rax\u002B0x08]\n-       mov      rsi, r13\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, r14\n\u002B       mov      rdi, r13\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x50], rax\n        mov      dword ptr [rax\u002B0x18], 8\n \t\t\t\t\t\t;; size=214 bbWeight=1 PerfScore 28.50\n-G_M61604_IG08:\n\u002BG_M61604_IG06:\n        lea      rdi, bword ptr [rax\u002B0x08]\n        mov      rsi, gword ptr [rbp-0x48]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -167,9 \u002B149,9 @@ G_M61604_IG08:\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        lea      rdi, bword ptr [r12\u002B0x08]\n-       mov      rsi, r13\n\u002B       mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, r14\n\u002B       mov      rdi, r13\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x18], 4\n@@ -193,7 \u002B175,7 @@ G_M61604_IG08:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=154 bbWeight=1 PerfScore 22.25\n-G_M61604_IG09:\n\u002BG_M61604_IG07:\n        add      rsp, 40\n        pop      rbx\n        pop      r12\n@@ -203,12 \u002B185,12 @@ G_M61604_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M61604_IG10:\n\u002BG_M61604_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M61604_IG11:\n\u002BG_M61604_IG09:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -222,5 \u002B204,5 @@ G_M61604_IG11:\n        int3     \n \t\t\t\t\t\t;; size=62 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 646, prolog size 25, PerfScore 84.88, instruction count 149, allocated bytes for code 646 (MethodHash=87590f5b) for method MongoDB.Driver.Linq.Linq3Implementation.Translators.DiscriminatorAstExpression:TypeIs(MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstGetFieldExpression,MongoDB.Bson.Serialization.Conventions.IHierarchicalDiscriminatorConvention,System.Type,System.Type):MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression (FullOpts)\n\u002B; Total bytes of code 591, prolog size 25, PerfScore 77.12, instruction count 135, allocated bytes for code 591 (MethodHash=87590f5b) for method MongoDB.Driver.Linq.Linq3Implementation.Translators.DiscriminatorAstExpression:TypeIs(MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstGetFieldExpression,MongoDB.Bson.Serialization.Conventions.IHierarchicalDiscriminatorConvention,System.Type,System.Type):MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":646,"DiffBytes":591},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.MethodTranslators.DateTimeAddOrSubtractMethodToAggregationExpressionTranslator:Translate(MongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext,System.Linq.Expressions.MethodCallExpression):MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression (FullOpts)","Category":"improvement","Description":"3,311 -\u003E 3,256 bytes (-55)","ExtraInfo":null,"Diff":"@@ -11,35 \u002B11,35 @@\n ;  V00 arg0         [V00,T06] (  7,  5   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext\u003E\n ;  V01 arg1         [V01,T01] ( 15,  8.50)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n ;  V02 loc0         [V02,T05] ( 10,  8.50)     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Reflection.MethodInfo\u003E\n-;  V03 loc1         [V03,T11] (  7,  4   )     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V03 loc1         [V03,T12] (  6,  3.50)     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n ;  V04 loc2         [V04,T16] (  4,  3   )     ref  -\u003E  r12         class-hnd \u003CSystem.Linq.Expressions.Expression\u003E\n ;  V05 loc3         [V05,T07] ( 13,  5.50)     ref  -\u003E  [rbp-0x40]  class-hnd \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V06 loc4         [V06,T38] (  3,  2   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression\u003E\n\u002B;  V06 loc4         [V06,T36] (  3,  2   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression\u003E\n ;  V07 loc5         [V07,T15] (  6,  3   )     ref  -\u003E  [rbp-0x48]  class-hnd \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression\u003E\n ;  V08 loc6         [V08,T34] (  5,  2.50)     ref  -\u003E  [rbp-0x50]  class-hnd \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression\u003E\n ;  V09 loc7         [V09,T35] (  4,  2.50)     ref  -\u003E  [rbp-0x58]  class-hnd \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression\u003E\n ;* V10 loc8         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression\u003E\n-;  V11 loc9         [V11,T40] (  2,  2   )     ref  -\u003E  r15         class-hnd exact single-def \u003CMongoDB.Bson.Serialization.Serializers.DateTimeSerializer\u003E\n-;  V12 loc10        [V12,T62] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Linq.Expressions.ConstantExpression\u003E\n\u002B;  V11 loc9         [V11,T38] (  2,  2   )     ref  -\u003E  r15         class-hnd exact single-def \u003CMongoDB.Bson.Serialization.Serializers.DateTimeSerializer\u003E\n\u002B;  V12 loc10        [V12,T60] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u003CSystem.Linq.Expressions.ConstantExpression\u003E\n ;* V13 loc11        [V13    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u003CSystem.TimeSpan\u003E\n ;* V14 loc12        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstConstantExpression\u003E\n-;  V15 loc13        [V15,T61] (  3,  1.50)     ref  -\u003E  [rbp-0x60]  class-hnd exact spill-single-def \u003CMongoDB.Bson.Serialization.Serializers.TimeSpanSerializer\u003E\n\u002B;  V15 loc13        [V15,T59] (  3,  1.50)     ref  -\u003E  [rbp-0x60]  class-hnd exact spill-single-def \u003CMongoDB.Bson.Serialization.Serializers.TimeSpanSerializer\u003E\n ;  V16 loc14        [V16,T09] (  9,  4.50)     ref  -\u003E  [rbp-0x68]  class-hnd spill-single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression\u003E\n ;* V17 loc15        [V17    ] (  0,  0   )     int  -\u003E  zero-ref   \n ;* V18 loc16        [V18    ] (  0,  0   )  struct (16) zero-ref    \u003CSystem.ValueTuple\u00602[System.String,MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression]\u003E\n ;* V19 loc17        [V19    ] (  0,  0   )  struct (16) zero-ref    \u003CSystem.ValueTuple\u00602[System.String,MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression]\u003E\n-;  V20 loc18        [V20,T65] (  2,  1   )     ref  -\u003E  [rbp-0x70]  class-hnd spill-single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression\u003E\n-;  V21 loc19        [V21,T63] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression\u003E\n\u002B;  V20 loc18        [V20,T64] (  2,  1   )     ref  -\u003E  [rbp-0x70]  class-hnd spill-single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression\u003E\n\u002B;  V21 loc19        [V21,T61] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd spill-single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression\u003E\n ;  V22 loc20        [V22,T08] ( 11,  5.50)     ref  -\u003E  [rbp-0x80]  class-hnd spill-single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression\u003E\n ;  V23 loc21        [V23,T00] ( 31, 14.62)     ref  -\u003E  rax         class-hnd exact single-def \u003CSystem.String\u003E\n ;* V24 loc22        [V24    ] (  0,  0   )     int  -\u003E  zero-ref   \n ;  V25 loc23        [V25,T10] (  9,  4.50)  ushort  -\u003E  rsi        \n ;* V26 loc24        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Linq.Expressions.Expression\u003E\n ;# V27 OutArgs      [V27    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V28 tmp1         [V28,T80] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.ExpressionNotSupportedException\u003E\n-;  V29 tmp2         [V29,T81] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.ExpressionNotSupportedException\u003E\n\u002B;  V28 tmp1         [V28,T79] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.ExpressionNotSupportedException\u003E\n\u002B;  V29 tmp2         [V29,T80] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.ExpressionNotSupportedException\u003E\n ;* V30 tmp3         [V30    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ValueTuple\u00602[System.String,MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression]\u003E\n-;  V31 tmp4         [V31,T39] (  3,  2   )     ref  -\u003E  r14        \n\u002B;  V31 tmp4         [V31,T37] (  3,  2   )     ref  -\u003E  r14        \n ;  V32 tmp5         [V32,T03] (  5, 10   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression\u003E\n ;* V33 tmp6         [V33    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ValueTuple\u00602[System.String,MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression]\u003E\n ;* V34 tmp7         [V34    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ValueTuple\u00602[System.String,MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression]\u003E\n@@ -54,7 \u002B54,7 @@\n ;  V43 tmp16        [V43,T13] (  4,  3.50)     ref  -\u003E  rcx         single-def \u0022ISINST eval op1\u0022\n ;* V44 tmp17        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CMongoDB.Bson.Serialization.Serializers.TimeSpanSerializer\u003E\n ;* V45 tmp18        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V46 tmp19        [V46,T82] (  3,  0   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.ExpressionNotSupportedException\u003E\n\u002B;  V46 tmp19        [V46,T81] (  3,  0   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.ExpressionNotSupportedException\u003E\n ;* V47 tmp20        [V47    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ValueTuple\u00602[System.String,MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression]\u003E\n ;* V48 tmp21        [V48    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ValueTuple\u00602[System.String,MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression]\u003E\n ;* V49 tmp22        [V49    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ValueTuple\u00602[System.String,MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression]\u003E\n@@ -63,9 \u002B63,9 @@\n ;* V52 tmp25        [V52    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ValueTuple\u00602[System.String,MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression]\u003E\n ;* V53 tmp26        [V53    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ValueTuple\u00602[System.String,MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression]\u003E\n ;* V54 tmp27        [V54    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u0022NewObj constructor temp\u0022 \u003CSystem.ValueTuple\u00602[System.String,MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression]\u003E\n-;  V55 tmp28        [V55,T83] (  3,  0   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.ExpressionNotSupportedException\u003E\n\u002B;  V55 tmp28        [V55,T82] (  3,  0   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.ExpressionNotSupportedException\u003E\n... diff truncated; middle omitted ...\n-\t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 1.50\n\u002B       jmp      SHORT G_M10949_IG53\n\u002B\t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 1.50\n G_M10949_IG52:\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M10949_IG53\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       mov      r13, rax\n-       jmp      SHORT G_M10949_IG54\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 7.50\n-G_M10949_IG53:\n        lea      rdx, [rbp-0x38]\n        mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.Linq.Expressions.Expression](System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.Expression],byref):System.Linq.Expressions.Expression\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        mov      r13, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M10949_IG54:\n        cmp      byte  ptr [rbp-0x38], 0\n-       je       G_M10949_IG63\n\u002B       je       G_M10949_IG61\n        mov      rdi, r15\n        mov      rsi, r13\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.ExpressionToAggregationExpressionTranslator:TranslateWithoutUnwrapping(MongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext,System.Linq.Expressions.Expression):MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression\n@@ -873,17 \u002B856,17 @@ G_M10949_IG54:\n        call     [rax]MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.ExpressionToAggregationExpressionTranslator:UnwrapIfWrapped(System.Linq.Expressions.Expression,MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression):MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression\n        mov      rdx, gword ptr [rax\u002B0x08]\n        mov      r15, rdx\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 5.88\n-G_M10949_IG55:\n\u002B\t\t\t\t\t\t;; size=85 bbWeight=0.50 PerfScore 8.12\n\u002BG_M10949_IG53:\n        mov      rdi, 0xD1FFAB1E      ; const ptr\n        mov      rdi, gword ptr [rdi]\n        mov      rsi, r14\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Linq.Linq3Implementation.Reflection.MethodInfoSet:Contains(System.Reflection.MethodInfo):bool:this\n        call     [rax]MongoDB.Driver.Linq.Linq3Implementation.Reflection.MethodInfoSet:Contains(System.Reflection.MethodInfo):bool:this\n        test     eax, eax\n-       je       SHORT G_M10949_IG57\n\u002B       je       SHORT G_M10949_IG55\n \t\t\t\t\t\t;; size=32 bbWeight=1 PerfScore 7.00\n-G_M10949_IG56:\n\u002BG_M10949_IG54:\n        mov      r12, gword ptr [r12\u002B0x08]\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstDateSubtractExpression\n        call     CORINFO_HELP_NEWSFAST\n@@ -895,9 \u002B878,9 @@ G_M10949_IG56:\n        mov      r8, r15\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstDateSubtractExpression:.ctor(MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression,MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression,MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression,MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression):this\n        call     [rax]MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstDateSubtractExpression:.ctor(MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression,MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression,MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression,MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression):this\n-       jmp      SHORT G_M10949_IG58\n\u002B       jmp      SHORT G_M10949_IG56\n \t\t\t\t\t\t;; size=54 bbWeight=0.50 PerfScore 5.75\n-G_M10949_IG57:\n\u002BG_M10949_IG55:\n        mov      r14, gword ptr [r12\u002B0x08]\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstDateAddExpression\n        call     CORINFO_HELP_NEWSFAST\n@@ -911,7 \u002B894,7 @@ G_M10949_IG57:\n        call     [rax]MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstDateAddExpression:.ctor(MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression,MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression,MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression,MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression):this\n        mov      r14, r13\n \t\t\t\t\t\t;; size=55 bbWeight=0.50 PerfScore 4.88\n-G_M10949_IG58:\n\u002BG_M10949_IG56:\n        mov      rdi, 0xD1FFAB1E      ; const ptr\n        mov      r15, gword ptr [rdi]\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression\n@@ -928,7 \u002B911,7 @@ G_M10949_IG58:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rax, r13\n \t\t\t\t\t\t;; size=70 bbWeight=1 PerfScore 9.25\n-G_M10949_IG59:\n\u002BG_M10949_IG57:\n        add      rsp, 216\n        pop      rbx\n        pop      r12\n@@ -938,7 \u002B921,7 @@ G_M10949_IG59:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M10949_IG60:\n\u002BG_M10949_IG58:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.Linq.ExpressionNotSupportedException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n@@ -951,7 \u002B934,7 @@ G_M10949_IG60:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M10949_IG61:\n\u002BG_M10949_IG59:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.Linq.ExpressionNotSupportedException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -964,7 \u002B947,7 @@ G_M10949_IG61:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=49 bbWeight=0 PerfScore 0.00\n-G_M10949_IG62:\n\u002BG_M10949_IG60:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.Linq.ExpressionNotSupportedException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -976,12 \u002B959,12 @@ G_M10949_IG62:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=45 bbWeight=0 PerfScore 0.00\n-G_M10949_IG63:\n\u002BG_M10949_IG61:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M10949_IG64:\n\u002BG_M10949_IG62:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.Linq.ExpressionNotSupportedException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -998,9 \u002B981,9 @@ RWD00  \tdd\tG_M10949_IG26 - G_M10949_IG02\n        \tdd\tG_M10949_IG16 - G_M10949_IG02\n        \tdd\tG_M10949_IG12 - G_M10949_IG02\n        \tdd\tG_M10949_IG10 - G_M10949_IG02\n-       \tdd\tG_M10949_IG62 - G_M10949_IG02\n-       \tdd\tG_M10949_IG62 - G_M10949_IG02\n-       \tdd\tG_M10949_IG62 - G_M10949_IG02\n\u002B       \tdd\tG_M10949_IG60 - G_M10949_IG02\n\u002B       \tdd\tG_M10949_IG60 - G_M10949_IG02\n\u002B       \tdd\tG_M10949_IG60 - G_M10949_IG02\n        \tdd\tG_M10949_IG08 - G_M10949_IG02\n RWD48  \tdq\t0063006500730069h, 00730064006E006Fh\n RWD64  \tdq\t004D006400640041h, 0069006C006C0069h\n@@ -1029,5 \u002B1012,5 @@ RWD312 \tdq\t412E848000000000h\t;      1000000\n RWD320 \tdq\t408F400000000000h\t;         1000\n \n \n-; Total bytes of code 3311, prolog size 31, PerfScore 360.02, instruction count 662, allocated bytes for code 3311 (MethodHash=3e02d53a) for method MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.MethodTranslators.DateTimeAddOrSubtractMethodToAggregationExpressionTranslator:Translate(MongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext,System.Linq.Expressions.MethodCallExpression):MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression (FullOpts)\n\u002B; Total bytes of code 3256, prolog size 31, PerfScore 352.52, instruction count 649, allocated bytes for code 3256 (MethodHash=3e02d53a) for method MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.MethodTranslators.DateTimeAddOrSubtractMethodToAggregationExpressionTranslator:Translate(MongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext,System.Linq.Expressions.MethodCallExpression):MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":3311,"DiffBytes":3256},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.MethodTranslators.DateTimeSubtractWithDateTimeMethodToAggregationExpressionTranslator:Translate(MongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext,System.Linq.Expressions.MethodCallExpression):MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression (FullOpts)","Category":"improvement","Description":"1,094 -\u003E 1,039 bytes (-55)","ExtraInfo":null,"Diff":"@@ -11,25 \u002B11,25 @@\n ;  V00 arg0         [V00,T02] (  5,  4.50)     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext\u003E\n ;  V01 arg1         [V01,T01] (  9,  7   )     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n ;  V02 loc0         [V02,T03] (  6,  6   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Reflection.MethodInfo\u003E\n-;  V03 loc1         [V03,T06] (  7,  4   )     ref  -\u003E  r12         class-hnd single-def \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V03 loc1         [V03,T11] (  6,  3.50)     ref  -\u003E  r12         class-hnd single-def \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n ;  V04 loc2         [V04,T12] (  4,  3   )     ref  -\u003E  r13         class-hnd \u003CSystem.Linq.Expressions.Expression\u003E\n ;  V05 loc3         [V05,T13] (  4,  3   )     ref  -\u003E  [rbp-0x38]  class-hnd \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V06 loc4         [V06,T28] (  2,  2   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression\u003E\n-;  V07 loc5         [V07,T26] (  3,  2   )     ref  -\u003E  [rbp-0x40]  class-hnd \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression\u003E\n\u002B;  V06 loc4         [V06,T26] (  2,  2   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression\u003E\n\u002B;  V07 loc5         [V07,T24] (  3,  2   )     ref  -\u003E  [rbp-0x40]  class-hnd \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression\u003E\n ;  V08 loc6         [V08,T21] (  4,  2.50)     ref  -\u003E  [rbp-0x48]  class-hnd \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression\u003E\n-;  V09 loc7         [V09,T27] (  3,  2   )     ref  -\u003E  [rbp-0x50]  class-hnd \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n\u002B;  V09 loc7         [V09,T25] (  3,  2   )     ref  -\u003E  [rbp-0x50]  class-hnd \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n ;  V10 loc8         [V10,T22] (  3,  2.50)     ref  -\u003E  [rbp-0x58]  class-hnd \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression\u003E\n ;* V11 loc9         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstDateDiffExpression\u003E\n-;  V12 loc10        [V12,T31] (  2,  1   )     ref  -\u003E  rcx         class-hnd exact \u003CMongoDB.Driver.Linq.WeekWithStartOfWeekDayTimeUnit\u003E\n\u002B;  V12 loc10        [V12,T29] (  2,  1   )     ref  -\u003E  rcx         class-hnd exact \u003CMongoDB.Driver.Linq.WeekWithStartOfWeekDayTimeUnit\u003E\n ;* V13 loc11        [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Linq.Expressions.Expression\u003E\n ;# V14 OutArgs      [V14    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V15 tmp1         [V15,T34] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.ExpressionNotSupportedException\u003E\n-;  V16 tmp2         [V16,T07] (  2,  4   )     ref  -\u003E  [rbp-0x60]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression\u003E\n\u002B;  V15 tmp1         [V15,T33] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.ExpressionNotSupportedException\u003E\n\u002B;  V16 tmp2         [V16,T06] (  2,  4   )     ref  -\u003E  [rbp-0x60]  class-hnd spill-single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression\u003E\n ;* V17 tmp3         [V17    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;  V18 tmp4         [V18,T14] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.Serialization.Serializers.TimeSpanSerializer\u003E\n ;* V19 tmp5         [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V20 tmp6         [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V21 tmp7         [V21,T08] (  2,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression\u003E\n\u002B;  V21 tmp7         [V21,T07] (  2,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression\u003E\n ;  V22 tmp8         [V22,T00] (  5, 10   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression\u003E\n ;  V23 tmp9         [V23,T05] (  5,  5   )     ref  -\u003E  [rbp-0x68]  class-hnd spill-single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.Linq.DateTimeUnit\u003E\n ;* V24 tmp10        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022spilling qmarkNull\u0022 \u003CMongoDB.Driver.Linq.WeekWithStartOfWeekDayTimeUnit\u003E\n@@ -42,30 \u002B42,30 @@\n ;* V31 tmp17        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Reflection.MethodInfoSet\u003E\n ;  V32 tmp18        [V32,T15] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V33 tmp19        [V33,T16] (  3,  3   )     ref  -\u003E  [rbp-0x70]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstConstantExpression\u003E\n-;  V34 tmp20        [V34,T32] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n\u002B;  V34 tmp20        [V34,T30] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n ;  V35 tmp21        [V35,T17] (  3,  3   )     ref  -\u003E  rdi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V36 tmp22        [V36,T18] (  3,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstConstantExpression\u003E\n-;  V37 tmp23        [V37,T33] (  3,  1.50)     ref  -\u003E  [rbp-0x88]  class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n\u002B;  V37 tmp23        [V37,T31] (  3,  1.50)     ref  -\u003E  [rbp-0x88]  class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n ;  V38 tmp24        [V38,T19] (  3,  3   )     ref  -\u003E  [rbp-0x90]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstConstantExpression\u003E\n ;* V39 tmp25        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonString\u003E\n ;* V40 tmp26        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonString\u003E\n ;  V41 tmp27        [V41,T20] (  3,  3   )     ref  -\u003E  [rbp-0x98]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonString\u003E\n ;* V42 tmp28        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Reflection.MethodInfoSet\u003E\n-;  V43 tmp29        [V43    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V43 tmp29        [V43    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V44 tmp30        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V45 tmp31        [V45,T24] (  4,  2   )     ref  -\u003E  r14         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V46 tmp32        [V46,T25] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V45 tmp31        [V45,T32] (  3,  1.50)     ref  -\u003E  r14         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;* V46 tmp32        [V46    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n ;* V47 tmp33        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression\u003E\n ;* V48 tmp34        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression\u003E\n ;* V49 tmp35        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression\u003E\n-;  V50 tmp36        [V50,T09] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression\u003E\n\u002B;  V50 tmp36        [V50,T08] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression\u003E\n ;  V51 tmp37        [V51,T04] (  3,  6   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstDateDiffExpression\u003E\n ;* V52 tmp38        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n ;* V53 tmp39        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V54 tmp40        [V54,T10] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V55 tmp41        [V55,T11] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V56 tmp42        [V56,T29] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n-;  V57 tmp43        [V57,T30] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V54 tmp40        [V54,T09] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V55 tmp41        [V55,T10] (  2,  4   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V56 tmp42        [V56,T27] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n\u002B;  V57 tmp43        [V57,T28] (  2,  2   )     ref  -\u003E  rsi         single-def \u0022argument with side effect\u0022\n ;  V58 cse0         [V58,T23] (  3,  2.50)    long  -\u003E  r13         \u0022CSE #02: moderate\u0022\n ;\n ; Lcl frame size = 120\n@@ -97,7 \u002B97,7 @@ G_M20986_IG02:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Linq.Linq3Implementation.Reflection.MethodInfoSet:Contains(System.Reflection.MethodInfo):bool:this\n        call     [rax]MongoDB.Driver.Linq.Linq3Implementation.Reflection.MethodInfoSet:Contains(System.Reflection.MethodInfo):bool:this\n        test     eax, eax\n-       je       G_M20986_IG22\n\u002B       je       G_M20986_IG20\n        mov      rdi, r14\n        mov      rax, qword ptr [r14]\n        mov      rax, qword ptr [rax\u002B0x50]\n@@ -266,34 \u002B266,17 @@ G_M20986_IG14:\n \t\t\t\t\t\t;; size=39 bbWeight=1 PerfScore 8.25\n G_M20986_IG15:\n        mov      r15, gword ptr [rbp-0x58]\n-       jmp      G_M20986_IG19\n-\t\t\t\t\t\t;; size=9 bbWeight=0.50 PerfScore 1.50\n\u002B       jmp      SHORT G_M20986_IG17\n\u002B\t\t\t\t\t\t;; size=6 bbWeight=0.50 PerfScore 1.50\n G_M20986_IG16:\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M20986_IG17\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       mov      r14, rax\n-       jmp      SHORT G_M20986_IG18\n-\t\t\t\t\t\t;; size=52 bbWeight=0.50 PerfScore 7.50\n-G_M20986_IG17:\n        lea      rdx, [rbp-0x30]\n        mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.Linq.Expressions.Expression](System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.Expression],byref):System.Linq.Expressions.Expression\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        mov      r14, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M20986_IG18:\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M20986_IG21\n\u002B       je       G_M20986_IG19\n        mov      rdi, r15\n        mov      rsi, r14\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.ExpressionToAggregationExpressionTranslator:TranslateWithoutUnwrapping(MongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext,System.Linq.Expressions.Expression):MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression\n@@ -304,8 \u002B287,8 @@ G_M20986_IG18:\n        call     [rax]MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.ExpressionToAggregationExpressionTranslator:UnwrapIfWrapped(System.Linq.Expressions.Expression,MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression):MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression\n        mov      rdx, gword ptr [rax\u002B0x08]\n        mov      r15, rdx\n-\t\t\t\t\t\t;; size=53 bbWeight=0.50 PerfScore 5.88\n-G_M20986_IG19:\n\u002B\t\t\t\t\t\t;; size=85 bbWeight=0.50 PerfScore 8.12\n\u002BG_M20986_IG17:\n        mov      r14, gword ptr [rbp-0x60]\n        mov      r14, gword ptr [r14\u002B0x08]\n        mov      r13, gword ptr [r13\u002B0x08]\n@@ -334,7 \u002B317,7 @@ G_M20986_IG19:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rax, r15\n \t\t\t\t\t\t;; size=120 bbWeight=1 PerfScore 20.50\n-G_M20986_IG20:\n\u002BG_M20986_IG18:\n        add      rsp, 120\n        pop      rbx\n        pop      r12\n@@ -344,12 \u002B327,12 @@ G_M20986_IG20:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M20986_IG21:\n\u002BG_M20986_IG19:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M20986_IG22:\n\u002BG_M20986_IG20:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.Linq.ExpressionNotSupportedException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -362,5 \u002B345,5 @@ G_M20986_IG22:\n        int3     \n \t\t\t\t\t\t;; size=45 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1094, prolog size 28, PerfScore 160.62, instruction count 247, allocated bytes for code 1094 (MethodHash=ccafae05) for method MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.MethodTranslators.DateTimeSubtractWithDateTimeMethodToAggregationExpressionTranslator:Translate(MongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext,System.Linq.Expressions.MethodCallExpression):MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression (FullOpts)\n\u002B; Total bytes of code 1039, prolog size 28, PerfScore 153.12, instruction count 234, allocated bytes for code 1039 (MethodHash=ccafae05) for method MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.MethodTranslators.DateTimeSubtractWithDateTimeMethodToAggregationExpressionTranslator:Translate(MongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext,System.Linq.Expressions.MethodCallExpression):MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1094,"DiffBytes":1039},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CAggregateAsync\u003Ed__26\u00601[System.__Canon,System.Nullable\u00601[int]]:MoveNext():this (FullOpts)","Category":"improvement","Description":"2,674 -\u003E 2,619 bytes (-55)","ExtraInfo":null,"Diff":"@@ -10,15 \u002B10,15 @@\n ;\n ;  V00 this         [V00,T00] ( 46, 43   )   byref  -\u003E  [rbp-0x160]  this EH-live single-def\n ;  V01 TypeCtx      [V01,T01] ( 19, 13.56)    long  -\u003E  r15         single-def\n-;  V02 loc0         [V02,T84] (  3,  3   )     int  -\u003E  rsi         single-def\n-;  V03 loc1         [V03,T05] (  7,  7   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]\u003E\n\u002B;  V02 loc0         [V02,T83] (  3,  3   )     int  -\u003E  rsi         single-def\n\u002B;  V03 loc1         [V03,T04] (  7,  7   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]\u003E\n ;  V04 loc2         [V04,T31] (  5,  5   )     ref  -\u003E  r13         class-hnd \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n-;  V05 loc3         [V05,T91] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n-;  V06 loc4         [V06,T92] (  2,  2   )   ubyte  -\u003E  r12         ld-addr-op single-def\n-;  V07 loc5         [V07,T86] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V05 loc3         [V05,T90] (  2,  2   )  struct (56) [rbp-0x68]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.__Canon]\u003E\n\u002B;  V06 loc4         [V06,T91] (  2,  2   )   ubyte  -\u003E  r12         ld-addr-op single-def\n\u002B;  V07 loc5         [V07,T85] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V08 loc6         [V08    ] ( 10, 10   )  struct (16) [rbp-0x78]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Bson.BsonDocument]\u003E\n ;* V09 loc7         [V09    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V10 loc8         [V10,T87] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V10 loc8         [V10,T86] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Nullable\u00601[int]]\u003E\n ;  V11 loc9         [V11    ] ( 10, 10   )  struct (16) [rbp-0x88]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\u003E\n ;* V12 loc10        [V12    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\u003E\n ;* V13 loc11        [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Exception\u003E\n@@ -29,43 \u002B29,43 @@\n ;* V18 tmp4         [V18    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V19 tmp5         [V19    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V20 tmp6         [V20    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V21 tmp7         [V21,T62] (  2,  4   )     ref  -\u003E  r12         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V22 tmp8         [V22,T43] (  4,  4.40)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n\u002B;  V21 tmp7         [V21,T61] (  2,  4   )     ref  -\u003E  r12         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V22 tmp8         [V22,T42] (  4,  4.40)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n ;* V23 tmp9         [V23    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V24 tmp10        [V24    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;  V25 tmp11        [V25,T44] (  4,  4.40)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n\u002B;  V25 tmp11        [V25,T43] (  4,  4.40)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n ;* V26 tmp12        [V26    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V27 tmp13        [V27,T63] (  2,  4   )     ref  -\u003E  r12         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V28 tmp14        [V28,T45] (  4,  4.40)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n\u002B;  V27 tmp13        [V27,T62] (  2,  4   )     ref  -\u003E  r12         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V28 tmp14        [V28,T44] (  4,  4.40)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n ;* V29 tmp15        [V29    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n-;  V30 tmp16        [V30,T46] (  4,  4.40)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n\u002B;  V30 tmp16        [V30,T45] (  4,  4.40)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n ;* V31 tmp17        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n-;  V32 tmp18        [V32,T100] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V32 tmp18        [V32,T99] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n ;* V33 tmp19        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V34 tmp20        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;* V35 tmp21        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.Nullable\u00601[int]]\u003E\n-;  V36 tmp22        [V36,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V36 tmp22        [V36,T06] (  3,  6   )     ref  -\u003E  r13         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;* V37 tmp23        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V38 tmp24        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V39 tmp25        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V40 tmp26        [V40    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CMongoDB.Bson.BsonElement\u003E\n ;* V41 tmp27        [V41    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonElement\u003E\n ;* V42 tmp28        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V43 tmp29        [V43,T06] ( 11,  6.75)     ref  -\u003E  rax        \n\u002B;  V43 tmp29        [V43,T05] ( 11,  6.75)     ref  -\u003E  rax        \n ;* V44 tmp30        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String\u003E\n ;* V45 tmp31        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V46 tmp32        [V46    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V47 tmp33        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V48 tmp34        [V48    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V49 tmp35        [V49,T85] (  3,  3   )     int  -\u003E  r12        \n-;  V50 tmp36        [V50,T02] (  4,  8   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V51 tmp37        [V51    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x90]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V52 tmp38        [V52,T32] (  5,  5   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V53 tmp39        [V53,T51] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V49 tmp35        [V49,T84] (  3,  3   )     int  -\u003E  r12        \n\u002B;  V50 tmp36        [V50,T07] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V51 tmp37        [V51    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x90]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V52 tmp38        [V52,T50] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V53 tmp39        [V53    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V54 tmp40        [V54    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V55 tmp41        [V55,T30] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V56 tmp42        [V56    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V57 tmp43        [V57,T82] (  4,  3.75)     int  -\u003E  r12         \u0022spilling unroll qmark\u0022\n... diff truncated; middle omitted ...\n        jne      G_M28865_IG06\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 10.25\n-G_M28865_IG71:\n\u002BG_M28865_IG69:\n        xor      edi, edi\n        mov      dword ptr [rbx\u002B0x28], edi\n        lea      rdi, bword ptr [rbx\u002B0x40]\n@@ -798,25 \u002B781,25 @@ G_M28865_IG71:\n        cmp      qword ptr [rdi\u002B0x10], 88\n        jle      G_M28865_IG09\n \t\t\t\t\t\t;; size=42 bbWeight=1 PerfScore 12.75\n-G_M28865_IG72:\n\u002BG_M28865_IG70:\n        mov      rdi, qword ptr [rdi\u002B0x58]\n        test     rdi, rdi\n        je       G_M28865_IG09\n \t\t\t\t\t\t;; size=13 bbWeight=0.80 PerfScore 2.60\n-G_M28865_IG73:\n\u002BG_M28865_IG71:\n        lea      r15, bword ptr [rbx\u002B0x30]\n        mov      rsi, qword ptr [rdi\u002B0x18]\n        mov      rsi, qword ptr [rsi\u002B0x18]\n        test     rsi, rsi\n        je       G_M28865_IG10\n \t\t\t\t\t\t;; size=21 bbWeight=1 PerfScore 5.75\n-G_M28865_IG74:\n\u002BG_M28865_IG72:\n        mov      rdi, qword ptr [rsi\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x18]\n        test     rdi, rdi\n        je       G_M28865_IG11\n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.25\n-G_M28865_IG75:\n\u002BG_M28865_IG73:\n        mov      rsi, rbx\n        mov      rdx, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:GetStateMachineBox[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CAggregateAsync\u003Ed__26\u00601[System.__Canon,System.Nullable\u00601[int]]](byref,byref):System.Runtime.CompilerServices.IAsyncStateMachineBox\n@@ -826,39 \u002B809,39 @@ G_M28865_IG75:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Bson.BsonDocument]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      G_M28865_IG83\n\u002B       jmp      G_M28865_IG81\n \t\t\t\t\t\t;; size=52 bbWeight=1 PerfScore 10.00\n-G_M28865_IG76:\n\u002BG_M28865_IG74:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_CLASS\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_CLASS\n        mov      rsi, rax\n-       jmp      G_M28865_IG63\n\u002B       jmp      G_M28865_IG61\n \t\t\t\t\t\t;; size=33 bbWeight=0.36 PerfScore 2.16\n-G_M28865_IG77:\n\u002BG_M28865_IG75:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_CLASS\n        call     [rcx]CORINFO_HELP_RUNTIMEHANDLE_CLASS\n        mov      rdi, rax\n-       jmp      G_M28865_IG65\n\u002B       jmp      G_M28865_IG63\n \t\t\t\t\t\t;; size=33 bbWeight=0.36 PerfScore 2.16\n-G_M28865_IG78:\n\u002BG_M28865_IG76:\n\u002B       mov      rsi, 0xD1FFAB1E      ; global ptr\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       mov      rdi, rax\n\u002B       jmp      G_M28865_IG65\n\u002B\t\t\t\t\t\t;; size=30 bbWeight=0.20 PerfScore 1.15\n\u002BG_M28865_IG77:\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n        jmp      G_M28865_IG67\n \t\t\t\t\t\t;; size=30 bbWeight=0.20 PerfScore 1.15\n-G_M28865_IG79:\n-       mov      rsi, 0xD1FFAB1E      ; global ptr\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       mov      rdi, rax\n-       jmp      G_M28865_IG69\n-\t\t\t\t\t\t;; size=30 bbWeight=0.20 PerfScore 1.15\n-G_M28865_IG80:\n\u002BG_M28865_IG78:\n        mov      rdi, r15\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_CLASS\n@@ -866,29 \u002B849,29 @@ G_M28865_IG80:\n        mov      rsi, rax\n        jmp      G_M28865_IG08\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M28865_IG81:\n\u002BG_M28865_IG79:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M28865_IG82:\n\u002BG_M28865_IG80:\n        mov      dword ptr [rbx\u002B0x28], -2\n        xor      rsi, rsi\n        mov      gword ptr [rbx\u002B0x20], rsi\n        add      rbx, 48\n        cmp      gword ptr [rbx], 0\n-       je       SHORT G_M28865_IG85\n\u002B       je       SHORT G_M28865_IG83\n        mov      rsi, gword ptr [rbx]\n        mov      rdx, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n \t\t\t\t\t\t;; size=51 bbWeight=1 PerfScore 11.25\n-G_M28865_IG83:\n\u002BG_M28865_IG81:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M28865_IG84:\n\u002BG_M28865_IG82:\n        add      rsp, 408\n        pop      rbx\n        pop      r12\n@@ -898,9 \u002B881,9 @@ G_M28865_IG84:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M28865_IG85:\n\u002BG_M28865_IG83:\n        test     r13, r13\n-       je       SHORT G_M28865_IG86\n\u002B       je       SHORT G_M28865_IG84\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -908,33 \u002B891,33 @@ G_M28865_IG85:\n        lea      rdi, bword ptr [r15\u002B0x38]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      SHORT G_M28865_IG88\n\u002B       jmp      SHORT G_M28865_IG86\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 7.50\n-G_M28865_IG86:\n\u002BG_M28865_IG84:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       SHORT G_M28865_IG89\n\u002B       je       SHORT G_M28865_IG87\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 3.25\n-G_M28865_IG87:\n\u002BG_M28865_IG85:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]:s_defaultResultTask\n        mov      r15, gword ptr [rdi]\n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 2.25\n-G_M28865_IG88:\n\u002BG_M28865_IG86:\n        mov      rdi, rbx\n        mov      rsi, r15\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n-       jmp      SHORT G_M28865_IG83\n\u002B       jmp      SHORT G_M28865_IG81\n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.50\n-G_M28865_IG89:\n\u002BG_M28865_IG87:\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      SHORT G_M28865_IG87\n\u002B       jmp      SHORT G_M28865_IG85\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M28865_IG90:\n\u002BG_M28865_IG88:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M28865_IG91:\n\u002BG_M28865_IG89:\n        mov      rdx, rdi\n        mov      rbx, bword ptr [rbp-0x160]\n        mov      dword ptr [rbx\u002B0x28], -2\n@@ -944,12 \u002B927,12 @@ G_M28865_IG91:\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n-       lea      rax, G_M28865_IG83\n\u002B       lea      rax, G_M28865_IG81\n \t\t\t\t\t\t;; size=56 bbWeight=0 PerfScore 0.00\n-G_M28865_IG92:\n\u002BG_M28865_IG90:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 2674, prolog size 89, PerfScore 498.83, instruction count 560, allocated bytes for code 2674 (MethodHash=56ee8f3e) for method MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CAggregateAsync\u003Ed__26\u00601[System.__Canon,System.Nullable\u00601[int]]:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 2619, prolog size 89, PerfScore 483.83, instruction count 547, allocated bytes for code 2619 (MethodHash=56ee8f3e) for method MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CAggregateAsync\u003Ed__26\u00601[System.__Canon,System.Nullable\u00601[int]]:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":2674,"DiffBytes":2619},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase\u002B\u003CAggregateAsync\u003Ed__15\u00601[System.__Canon]:MoveNext():this (FullOpts)","Category":"improvement","Description":"2,921 -\u003E 2,866 bytes (-55)","ExtraInfo":null,"Diff":"@@ -10,73 \u002B10,73 @@\n ;\n ;  V00 this         [V00,T00] ( 46, 43   )   byref  -\u003E  [rbp-0x170]  this EH-live single-def\n ;  V01 TypeCtx      [V01,T01] ( 21, 13.56)    long  -\u003E  [rbp-0x38]  EH-live single-def\n-;  V02 loc0         [V02,T89] (  3,  3   )     int  -\u003E  rsi         single-def\n-;  V03 loc1         [V03,T05] (  7,  7   )     ref  -\u003E  r15         class-hnd exact single-def \u003CMongoDB.Driver.MongoDatabase\u003E\n\u002B;  V02 loc0         [V02,T88] (  3,  3   )     int  -\u003E  rsi         single-def\n\u002B;  V03 loc1         [V03,T04] (  7,  7   )     ref  -\u003E  r15         class-hnd exact single-def \u003CMongoDB.Driver.MongoDatabase\u003E\n ;  V04 loc2         [V04,T40] (  5,  5   )     ref  -\u003E  r15         class-hnd \u003CMongoDB.Driver.IAsyncCursor\u00601[System.__Canon]\u003E\n-;  V05 loc3         [V05,T98] (  2,  2   )  struct (56) [rbp-0x70]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n-;  V06 loc4         [V06,T99] (  2,  2   )   ubyte  -\u003E  r13         ld-addr-op single-def\n-;  V07 loc5         [V07,T91] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V05 loc3         [V05,T97] (  2,  2   )  struct (56) [rbp-0x70]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n\u002B;  V06 loc4         [V06,T98] (  2,  2   )   ubyte  -\u003E  r13         ld-addr-op single-def\n\u002B;  V07 loc5         [V07,T90] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V08 loc6         [V08    ] ( 10, 10   )  struct (16) [rbp-0x80]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Bson.BsonDocument]\u003E\n ;* V09 loc7         [V09    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V10 loc8         [V10,T92] (  2,  2   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.__Canon]\u003E\n\u002B;  V10 loc8         [V10,T91] (  2,  2   )     ref  -\u003E  r14         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.__Canon]\u003E\n ;  V11 loc9         [V11    ] ( 10, 10   )  struct (16) [rbp-0x90]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]\u003E\n ;* V12 loc10        [V12    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[System.__Canon]\u003E\n ;* V13 loc11        [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Exception\u003E\n ;  V14 OutArgs      [V14    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V15 tmp1         [V15    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;* V16 tmp2         [V16    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V17 tmp3         [V17,T11] (  5,  6.40)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n\u002B;  V17 tmp3         [V17,T10] (  5,  6.40)    long  -\u003E  rdi         \u0022spilling helperCall\u0022\n ;* V18 tmp4         [V18    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;* V19 tmp5         [V19    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V20 tmp6         [V20    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V21 tmp7         [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.NoPipelineInputSerializer\u003E\n ;* V22 tmp8         [V22    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V23 tmp9         [V23    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V24 tmp10        [V24,T68] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V25 tmp11        [V25,T50] (  4,  4.40)    long  -\u003E  rsi         \u0022spilling helperCall\u0022\n\u002B;  V24 tmp10        [V24,T67] (  2,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V25 tmp11        [V25,T49] (  4,  4.40)    long  -\u003E  rsi         \u0022spilling helperCall\u0022\n ;* V26 tmp12        [V26    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V27 tmp13        [V27    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V28 tmp14        [V28    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;* V29 tmp15        [V29    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;  V30 tmp16        [V30,T51] (  4,  4.40)    long  -\u003E  rsi         \u0022spilling helperCall\u0022\n\u002B;  V30 tmp16        [V30,T50] (  4,  4.40)    long  -\u003E  rsi         \u0022spilling helperCall\u0022\n ;* V31 tmp17        [V31    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V32 tmp18        [V32,T69] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V32 tmp18        [V32,T68] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;* V33 tmp19        [V33    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n-;  V34 tmp20        [V34,T52] (  4,  4.40)    long  -\u003E  rsi         \u0022spilling helperCall\u0022\n\u002B;  V34 tmp20        [V34,T51] (  4,  4.40)    long  -\u003E  rsi         \u0022spilling helperCall\u0022\n ;* V35 tmp21        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n-;  V36 tmp22        [V36,T109] (  2,  0   )     ref  -\u003E  rbx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n-;  V37 tmp23        [V37,T107] (  3,  0   )    long  -\u003E  rsi         \u0022spilling helperCall\u0022\n\u002B;  V36 tmp22        [V36,T108] (  2,  0   )     ref  -\u003E  rbx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V37 tmp23        [V37,T106] (  3,  0   )    long  -\u003E  rsi         \u0022spilling helperCall\u0022\n ;* V38 tmp24        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V39 tmp25        [V39    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n ;* V40 tmp26        [V40    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.PipelineDefinition\u00602[System.__Canon,System.__Canon]\u003E\n-;  V41 tmp27        [V41,T12] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n\u002B;  V41 tmp27        [V41,T11] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n ;* V42 tmp28        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V43 tmp29        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V44 tmp30        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V45 tmp31        [V45    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CMongoDB.Bson.BsonElement\u003E\n ;* V46 tmp32        [V46    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonElement\u003E\n ;* V47 tmp33        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V48 tmp34        [V48,T10] ( 11,  6.75)     ref  -\u003E  rax        \n\u002B;  V48 tmp34        [V48,T09] ( 11,  6.75)     ref  -\u003E  rax        \n ;* V49 tmp35        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String\u003E\n ;* V50 tmp36        [V50    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V51 tmp37        [V51    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V52 tmp38        [V52    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V53 tmp39        [V53    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V54 tmp40        [V54,T90] (  3,  3   )     int  -\u003E  r13        \n-;  V55 tmp41        [V55,T02] (  4,  8   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V56 tmp42        [V56    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x98]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V57 tmp43        [V57,T41] (  5,  5   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V58 tmp44        [V58,T54] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V54 tmp40        [V54,T89] (  3,  3   )     int  -\u003E  r13        \n\u002B;  V55 tmp41        [V55,T12] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n... diff truncated; middle omitted ...\n-G_M5545_IG72:\n\u002BG_M5545_IG70:\n        mov      rsi, qword ptr [rsi\u002B0x60]\n        test     rsi, rsi\n        je       G_M5545_IG09\n \t\t\t\t\t\t;; size=13 bbWeight=0.80 PerfScore 2.60\n-G_M5545_IG73:\n\u002BG_M5545_IG71:\n        lea      r15, bword ptr [rbx\u002B0x30]\n        mov      rax, qword ptr [rsi\u002B0x18]\n        mov      r14, qword ptr [rax\u002B0x18]\n        test     r14, r14\n        je       G_M5545_IG10\n \t\t\t\t\t\t;; size=21 bbWeight=1 PerfScore 5.75\n-G_M5545_IG74:\n\u002BG_M5545_IG72:\n        mov      rsi, qword ptr [r14\u002B0x18]\n        mov      rax, qword ptr [rsi\u002B0x18]\n        test     rax, rax\n        je       G_M5545_IG11\n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.25\n-G_M5545_IG75:\n\u002BG_M5545_IG73:\n        mov      rdi, rax\n        mov      rsi, rbx\n        mov      rdx, r15\n@@ -873,34 \u002B856,34 @@ G_M5545_IG75:\n        test     rdi, rdi\n        je       G_M5545_IG12\n \t\t\t\t\t\t;; size=41 bbWeight=1 PerfScore 9.50\n-G_M5545_IG76:\n\u002BG_M5545_IG74:\n        lea      rsi, [rbp-0x80]\n        mov      rdx, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      G_M5545_IG86\n\u002B       jmp      G_M5545_IG84\n \t\t\t\t\t\t;; size=24 bbWeight=1 PerfScore 6.00\n-G_M5545_IG77:\n\u002BG_M5545_IG75:\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_CLASS\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_CLASS\n        mov      rsi, rax\n-       jmp      G_M5545_IG68\n\u002B       jmp      G_M5545_IG66\n \t\t\t\t\t\t;; size=30 bbWeight=0.36 PerfScore 2.07\n-G_M5545_IG78:\n\u002BG_M5545_IG76:\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_CLASS\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_CLASS\n        mov      rsi, rax\n        jmp      G_M5545_IG08\n \t\t\t\t\t\t;; size=30 bbWeight=0.20 PerfScore 1.15\n-G_M5545_IG79:\n\u002BG_M5545_IG77:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M5545_IG80:\n\u002BG_M5545_IG78:\n        mov      dword ptr [rbx\u002B0x28], -2\n        xor      rsi, rsi\n        mov      gword ptr [rbx\u002B0x20], rsi\n@@ -909,43 \u002B892,43 @@ G_M5545_IG80:\n        mov      rsi, qword ptr [rsi]\n        mov      rsi, qword ptr [rsi\u002B0x18]\n        test     rsi, rsi\n-       je       SHORT G_M5545_IG88\n\u002B       je       SHORT G_M5545_IG86\n \t\t\t\t\t\t;; size=33 bbWeight=1 PerfScore 10.50\n-G_M5545_IG81:\n\u002BG_M5545_IG79:\n        mov      rdi, rsi\n \t\t\t\t\t\t;; size=3 bbWeight=0.80 PerfScore 0.20\n-G_M5545_IG82:\n\u002BG_M5545_IG80:\n        add      rbx, 48\n        cmp      gword ptr [rbx], 0\n-       jne      SHORT G_M5545_IG89\n\u002B       jne      SHORT G_M5545_IG87\n        mov      rsi, qword ptr [rdi\u002B0x30]\n        mov      rsi, qword ptr [rsi]\n        mov      rsi, qword ptr [rsi\u002B0x10]\n        test     rsi, rsi\n-       je       SHORT G_M5545_IG90\n\u002B       je       SHORT G_M5545_IG88\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 10.50\n-G_M5545_IG83:\n\u002BG_M5545_IG81:\n        test     r15, r15\n-       jne      G_M5545_IG91\n\u002B       jne      G_M5545_IG89\n        mov      rdi, qword ptr [rsi\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M5545_IG94\n\u002B       je       G_M5545_IG92\n \t\t\t\t\t\t;; size=26 bbWeight=1 PerfScore 6.50\n-G_M5545_IG84:\n\u002BG_M5545_IG82:\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        mov      r14, gword ptr [rax]\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 5.25\n-G_M5545_IG85:\n\u002BG_M5545_IG83:\n        mov      rdi, rbx\n        mov      rsi, r14\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 1.50\n-G_M5545_IG86:\n\u002BG_M5545_IG84:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M5545_IG87:\n\u002BG_M5545_IG85:\n        add      rsp, 408\n        pop      rbx\n        pop      r12\n@@ -955,62 \u002B938,62 @@ G_M5545_IG87:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M5545_IG88:\n\u002BG_M5545_IG86:\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_CLASS\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_CLASS\n        mov      rdi, rax\n-       jmp      SHORT G_M5545_IG82\n\u002B       jmp      SHORT G_M5545_IG80\n \t\t\t\t\t\t;; size=27 bbWeight=0.20 PerfScore 1.15\n-G_M5545_IG89:\n\u002BG_M5545_IG87:\n        mov      rsi, gword ptr [rbx]\n        mov      rdx, r15\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n-       jmp      SHORT G_M5545_IG86\n\u002B       jmp      SHORT G_M5545_IG84\n \t\t\t\t\t\t;; size=20 bbWeight=1 PerfScore 7.50\n-G_M5545_IG90:\n\u002BG_M5545_IG88:\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_CLASS\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_CLASS\n        mov      rsi, rax\n-       jmp      G_M5545_IG83\n\u002B       jmp      G_M5545_IG81\n \t\t\t\t\t\t;; size=30 bbWeight=0.20 PerfScore 1.15\n-G_M5545_IG91:\n\u002BG_M5545_IG89:\n        mov      rdi, qword ptr [rsi\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       SHORT G_M5545_IG93\n\u002B       je       SHORT G_M5545_IG91\n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 5.25\n-G_M5545_IG92:\n\u002BG_M5545_IG90:\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n        mov      dword ptr [r14\u002B0x34], 0xD1FFAB1E\n        lea      rdi, bword ptr [r14\u002B0x38]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M5545_IG85\n\u002B       jmp      G_M5545_IG83\n \t\t\t\t\t\t;; size=33 bbWeight=1 PerfScore 6.00\n-G_M5545_IG93:\n\u002BG_M5545_IG91:\n        mov      rdi, rsi\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      SHORT G_M5545_IG92\n\u002B       jmp      SHORT G_M5545_IG90\n \t\t\t\t\t\t;; size=30 bbWeight=0.20 PerfScore 1.20\n-G_M5545_IG94:\n\u002BG_M5545_IG92:\n        mov      rdi, rsi\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M5545_IG84\n\u002B       jmp      G_M5545_IG82\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M5545_IG95:\n\u002BG_M5545_IG93:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M5545_IG96:\n\u002BG_M5545_IG94:\n        mov      rbx, rdi\n        mov      r15, bword ptr [rbp-0x170]\n        mov      dword ptr [r15\u002B0x28], -2\n@@ -1021,26 \u002B1004,26 @@ G_M5545_IG96:\n        mov      rsi, qword ptr [rsi]\n        mov      rsi, qword ptr [rsi\u002B0x18]\n        test     rsi, rsi\n-       je       SHORT G_M5545_IG97\n-       jmp      SHORT G_M5545_IG98\n\u002B       je       SHORT G_M5545_IG95\n\u002B       jmp      SHORT G_M5545_IG96\n \t\t\t\t\t\t;; size=46 bbWeight=0 PerfScore 0.00\n-G_M5545_IG97:\n\u002BG_M5545_IG95:\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_CLASS\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_CLASS\n        mov      rsi, rax\n \t\t\t\t\t\t;; size=25 bbWeight=0 PerfScore 0.00\n-G_M5545_IG98:\n\u002BG_M5545_IG96:\n        lea      rdi, bword ptr [r15\u002B0x30]\n        mov      rdx, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n-       lea      rax, G_M5545_IG86\n\u002B       lea      rax, G_M5545_IG84\n \t\t\t\t\t\t;; size=26 bbWeight=0 PerfScore 0.00\n-G_M5545_IG99:\n\u002BG_M5545_IG97:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 2921, prolog size 106, PerfScore 534.37, instruction count 618, allocated bytes for code 2921 (MethodHash=acf0ea56) for method MongoDB.Driver.MongoDatabase\u002B\u003CAggregateAsync\u003Ed__15\u00601[System.__Canon]:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 2866, prolog size 106, PerfScore 519.37, instruction count 605, allocated bytes for code 2866 (MethodHash=acf0ea56) for method MongoDB.Driver.MongoDatabase\u002B\u003CAggregateAsync\u003Ed__15\u00601[System.__Canon]:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":2921,"DiffBytes":2866},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.Core.Operations.ClientBulkWriteOperation:ToClientBulkWriteResult(MongoDB.Driver.Core.Operations.ClientBulkWriteOperation\u002BBulkWriteRawResult):MongoDB.Driver.ClientBulkWriteResult:this (FullOpts)","Category":"improvement","Description":"443 -\u003E 390 bytes (-53)","ExtraInfo":null,"Diff":"@@ -14,16 \u002B14,16 @@\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V04 tmp1         [V04,T03] (  3,  5   )     ref  -\u003E  rdi         class-hnd exact single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.WriteConcern\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V06 tmp3         [V06,T13] (  2,  1   )     int  -\u003E  rax        \n\u002B;  V06 tmp3         [V06,T10] (  2,  1   )     int  -\u003E  rax        \n ;  V07 tmp4         [V07,T00] ( 11, 11   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.ClientBulkWriteResult\u003E\n ;* V08 tmp5         [V08    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022non-inline candidate call\u0022\n-;  V09 tmp6         [V09,T05] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.ClientBulkWriteResult\u003E\n-;  V10 tmp7         [V10,T06] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[int,MongoDB.Driver.WriteError]\u003E\n-;  V11 tmp8         [V11,T04] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[int,MongoDB.Driver.WriteError]\u003E\n-;  V12 tmp9         [V12    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V09 tmp6         [V09,T04] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.ClientBulkWriteResult\u003E\n\u002B;  V10 tmp7         [V10,T05] (  3,  3   )     ref  -\u003E  rdx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[int,MongoDB.Driver.WriteError]\u003E\n\u002B;  V11 tmp8         [V11,T06] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[int,MongoDB.Driver.WriteError]\u003E\n\u002B;  V12 tmp9         [V12    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V13 tmp10        [V13    ] (  0,  0   )  struct (16) zero-ref    \u003CSystem.Collections.Generic.KeyValuePair\u00602[int,System.__Canon]\u003E\n-;* V14 tmp11        [V14    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.KeyValuePair\u00602[int,MongoDB.Driver.WriteError]\u003E\n-;  V15 tmp12        [V15,T08] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Collections.Generic.KeyValuePair\u00602[int,MongoDB.Driver.WriteError]]\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.KeyValuePair\u00602[int,MongoDB.Driver.WriteError]\u003E\n\u002B;* V15 tmp12        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Collections.Generic.KeyValuePair\u00602[int,MongoDB.Driver.WriteError]]\u003E\n ;* V16 tmp13        [V16    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CSystem.Collections.Generic.KeyValuePair\u00602[int,MongoDB.Driver.WriteError]\u003E\n ;  V17 tmp14        [V17,T07] (  3,  3   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[int,MongoDB.Driver.WriteError]\u003E\n ;* V18 tmp15        [V18    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n@@ -38,12 \u002B38,12 @@\n ;* V27 tmp24        [V27    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V02.key (fldOffset=0x8)\u0022 P-INDEP\n ;* V28 tmp25        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022field V13.value (fldOffset=0x0)\u0022 P-INDEP\n ;* V29 tmp26        [V29    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V13.key (fldOffset=0x8)\u0022 P-INDEP\n-;  V30 tmp27        [V30,T12] (  2,  1   )     ref  -\u003E  rax         \u0022field V14.value (fldOffset=0x0)\u0022 P-INDEP\n-;  V31 tmp28        [V31,T11] (  3,  1.50)     int  -\u003E  rdx         \u0022field V14.key (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V30 tmp27        [V30,T12] (  1,  0.50)     ref  -\u003E  rax         \u0022field V14.value (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V31 tmp28        [V31,T11] (  2,  1   )     int  -\u003E  rdx         \u0022field V14.key (fldOffset=0x8)\u0022 P-INDEP\n ;* V32 tmp29        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    do-not-enreg[] \u0022field V16.value (fldOffset=0x0)\u0022 P-DEP\n ;* V33 tmp30        [V33    ] (  0,  0   )     int  -\u003E  zero-ref    do-not-enreg[] \u0022field V16.key (fldOffset=0x8)\u0022 P-DEP\n-;  V34 tmp31        [V34,T09] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n-;  V35 cse0         [V35,T10] (  3,  1.50)     ref  -\u003E  r14         \u0022CSE #01: moderate\u0022\n\u002B;  V34 tmp31        [V34,T08] (  2,  2   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n\u002B;  V35 cse0         [V35,T09] (  3,  1.50)     ref  -\u003E  rsi         \u0022CSE #01: moderate\u0022\n ;\n ; Lcl frame size = 8\n \n@@ -70,49 \u002B70,31 @@ G_M40235_IG03:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.WriteConcern:Equals(MongoDB.Driver.WriteConcern):bool:this\n        call     [rax]MongoDB.Driver.WriteConcern:Equals(MongoDB.Driver.WriteConcern):bool:this\n        test     eax, eax\n-       jne      G_M40235_IG12\n\u002B       jne      G_M40235_IG10\n \t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 3.38\n G_M40235_IG04:\n        cmp      byte  ptr [r15\u002B0x2D], 0\n-       je       SHORT G_M40235_IG07\n-       mov      r14, gword ptr [rbx\u002B0x20]\n-       mov      rsi, r14\n-       mov      edi, dword ptr [rsi\u002B0x38]\n-       sub      edi, dword ptr [rsi\u002B0x40]\n-       test     edi, edi\n-       jle      SHORT G_M40235_IG07\n-       test     r14, r14\n-       je       G_M40235_IG14\n-       mov      rsi, r14\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Collections.Generic.KeyValuePair\u00602[int,MongoDB.Driver.WriteError]]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n        je       SHORT G_M40235_IG05\n-       lea      rsi, [rbp-0x20]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.Collections.Generic.KeyValuePair\u00602[int,System.__Canon]]:TryGetFirst(byref):System.Collections.Generic.KeyValuePair\u00602[int,System.__Canon]:this\n-       jmp      SHORT G_M40235_IG06\n-\t\t\t\t\t\t;; size=82 bbWeight=0.50 PerfScore 13.25\n-G_M40235_IG05:\n\u002B       mov      rsi, gword ptr [rbx\u002B0x20]\n\u002B       mov      rdx, rsi\n\u002B       mov      edi, dword ptr [rdx\u002B0x38]\n\u002B       sub      edi, dword ptr [rdx\u002B0x40]\n\u002B       test     edi, edi\n\u002B       jle      SHORT G_M40235_IG05\n\u002B       test     rsi, rsi\n\u002B       je       G_M40235_IG12\n        lea      rdx, [rbp-0x20]\n-       mov      rsi, r14\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[System.Collections.Generic.KeyValuePair\u00602[int,MongoDB.Driver.WriteError]](System.Collections.Generic.IEnumerable\u00601[System.Collections.Generic.KeyValuePair\u00602[int,MongoDB.Driver.WriteError]],byref):System.Collections.Generic.KeyValuePair\u00602[int,MongoDB.Driver.WriteError]\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.Collections.Generic.KeyValuePair\u00602[int,System.__Canon]](System.Collections.Generic.IEnumerable\u00601[System.Collections.Generic.KeyValuePair\u00602[int,System.__Canon]],byref):System.Collections.Generic.KeyValuePair\u00602[int,System.__Canon]\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.Collections.Generic.KeyValuePair\u00602[int,System.__Canon]](System.Collections.Generic.IEnumerable\u00601[System.Collections.Generic.KeyValuePair\u00602[int,System.__Canon]],byref):System.Collections.Generic.KeyValuePair\u00602[int,System.__Canon]\n-       nop      \n-\t\t\t\t\t\t;; size=30 bbWeight=0.50 PerfScore 2.25\n-G_M40235_IG06:\n        cmp      byte  ptr [rbp-0x20], 0\n-       je       G_M40235_IG15\n\u002B       je       G_M40235_IG13\n        test     edx, edx\n-       je       G_M40235_IG10\n-\t\t\t\t\t\t;; size=18 bbWeight=0.50 PerfScore 1.62\n-G_M40235_IG07:\n\u002B       je       G_M40235_IG08\n\u002B\t\t\t\t\t\t;; size=77 bbWeight=0.50 PerfScore 9.50\n\u002BG_M40235_IG05:\n        cmp      byte  ptr [r15\u002B0x2D], 0\n-       jne      SHORT G_M40235_IG08\n\u002B       jne      SHORT G_M40235_IG06\n        mov      rdi, gword ptr [rbx\u002B0x20]\n        mov      r14d, dword ptr [rdi\u002B0x38]\n        sub      r14d, dword ptr [rdi\u002B0x40]\n@@ -123,9 \u002B105,9 @@ G_M40235_IG07:\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IReadOnlyCollection\u00601[System.__Canon]:get_Count():int:this\n        call     [r11]System.Collections.Generic.IReadOnlyCollection\u00601[System.__Canon]:get_Count():int:this\n        cmp      r14d, eax\n-       je       SHORT G_M40235_IG10\n\u002B       je       SHORT G_M40235_IG08\n \t\t\t\t\t\t;; size=57 bbWeight=0.50 PerfScore 9.50\n-G_M40235_IG08:\n\u002BG_M40235_IG06:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.ClientBulkWriteResult\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -151,6 \u002B133,17 @@ G_M40235_IG08:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rax, r15\n \t\t\t\t\t\t;; size=105 bbWeight=0.50 PerfScore 14.12\n\u002BG_M40235_IG07:\n\u002B       add      rsp, 8\n\u002B       pop      rbx\n\u002B       pop      r14\n\u002B       pop      r15\n\u002B       pop      rbp\n\u002B       ret      \n\u002B\t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 1.62\n\u002BG_M40235_IG08:\n\u002B       xor      rax, rax\n\u002B\t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n G_M40235_IG09:\n        add      rsp, 8\n        pop      rbx\n@@ -160,8 \u002B153,10 @@ G_M40235_IG09:\n        ret      \n \t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 1.62\n G_M40235_IG10:\n-       xor      rax, rax\n-\t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n\u002B       mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.ClientBulkWriteResult\n\u002B       call     CORINFO_HELP_NEWSFAST\n\u002B       mov      byte  ptr [rax\u002B0x48], 0\n\u002B\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.12\n G_M40235_IG11:\n        add      rsp, 8\n        pop      rbx\n@@ -171,29 \u002B166,16 @@ G_M40235_IG11:\n        ret      \n \t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 1.62\n G_M40235_IG12:\n-       mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.ClientBulkWriteResult\n-       call     CORINFO_HELP_NEWSFAST\n-       mov      byte  ptr [rax\u002B0x48], 0\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 1.12\n-G_M40235_IG13:\n-       add      rsp, 8\n-       pop      rbx\n-       pop      r14\n-       pop      r15\n-       pop      rbp\n-       ret      \n-\t\t\t\t\t\t;; size=11 bbWeight=0.50 PerfScore 1.62\n-G_M40235_IG14:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M40235_IG15:\n\u002BG_M40235_IG13:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 443, prolog size 18, PerfScore 60.75, instruction count 117, allocated bytes for code 443 (MethodHash=284462d4) for method MongoDB.Driver.Core.Operations.ClientBulkWriteOperation:ToClientBulkWriteResult(MongoDB.Driver.Core.Operations.ClientBulkWriteOperation\u002BBulkWriteRawResult):MongoDB.Driver.ClientBulkWriteResult:this (FullOpts)\n\u002B; Total bytes of code 390, prolog size 18, PerfScore 53.12, instruction count 103, allocated bytes for code 390 (MethodHash=284462d4) for method MongoDB.Driver.Core.Operations.ClientBulkWriteOperation:ToClientBulkWriteResult(MongoDB.Driver.Core.Operations.ClientBulkWriteOperation\u002BBulkWriteRawResult):MongoDB.Driver.ClientBulkWriteResult:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":443,"DiffBytes":390},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.Core.Operations.BulkMixedWriteOperation:BeginOperation():MongoDB.Driver.Core.Events.EventContext\u002BOperationIdDisposer:this (FullOpts)","Category":"improvement","Description":"245 -\u003E 193 bytes (-52)","ExtraInfo":null,"Diff":"@@ -1,129 \u002B1,110 @@\n ; Assembly listing for method MongoDB.Driver.Core.Operations.BulkMixedWriteOperation:BeginOperation():MongoDB.Driver.Core.Events.EventContext\u002BOperationIdDisposer:this (FullOpts)\n ; Emitting BLENDED_CODE for x64 \u002B VEX \u002B EVEX on Unix\n ; FullOpts code\n ; optimized code\n ; rbp based frame\n ; partially interruptible\n ; No PGO data\n ; 0 inlinees with PGO data; 5 single block inlinees; 3 inlinees without PGO data\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T01] (  3,  3   )     ref  -\u003E  rdi         this class-hnd single-def \u003CMongoDB.Driver.Core.Operations.BulkMixedWriteOperation\u003E\n ;* V01 loc0         [V01    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op \u003CSystem.Nullable\u00601[long]\u003E\n-;  V02 loc1         [V02,T09] (  2,  1   )     int  -\u003E  rbx         ld-addr-op single-def\n\u002B;  V02 loc1         [V02,T08] (  2,  1   )     int  -\u003E  rbx         ld-addr-op single-def\n ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V04 tmp1         [V04    ] (  0,  0   )  struct (16) zero-ref    \u0022impAppendStmt\u0022 \u003CSystem.Nullable\u00601[long]\u003E\n ;* V05 tmp2         [V05    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.Core.Operations.WriteRequest\u003E\n ;* V06 tmp3         [V06    ] (  0,  0   )  struct (16) zero-ref    \u003CSystem.Nullable\u00601[long]\u003E\n ;* V07 tmp4         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V08 tmp5         [V08,T03] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CMongoDB.Driver.Core.Operations.WriteRequestType\u003E\n\u002B;  V08 tmp5         [V08,T02] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Single-def Box Helper\u0022 \u003CMongoDB.Driver.Core.Operations.WriteRequestType\u003E\n ;* V09 tmp6         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-arg \u003CSystem.Nullable\u00601[long]\u003E\n-;  V10 tmp7         [V10,T08] (  3,  2   )     ref  -\u003E  rax        \n-;  V11 tmp8         [V11,T00] (  4,  7   )     ref  -\u003E  rbx         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Driver.Core.Operations.WriteRequest]\u003E\n-;  V12 tmp9         [V12    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x10]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V13 tmp10        [V13,T07] (  4,  2.50)     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.Core.Operations.WriteRequest\u003E\n-;  V14 tmp11        [V14,T02] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Driver.Core.Operations.WriteRequest]\u003E\n\u002B;  V10 tmp7         [V10,T07] (  3,  2   )     ref  -\u003E  rax        \n\u002B;  V11 tmp8         [V11,T00] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Driver.Core.Operations.WriteRequest]\u003E\n\u002B;  V12 tmp9         [V12    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x10]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V13 tmp10        [V13,T06] (  3,  2.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.Core.Operations.WriteRequest\u003E\n\u002B;* V14 tmp11        [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Driver.Core.Operations.WriteRequest]\u003E\n ;* V15 tmp12        [V15    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.Core.Operations.WriteRequest\u003E\n-;  V16 tmp13        [V16,T04] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n\u002B;  V16 tmp13        [V16,T03] (  3,  3   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;* V17 tmp14        [V17    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V18 tmp15        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V19 tmp16        [V19,T05] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Globalization.TextInfo\u003E\n\u002B;  V19 tmp16        [V19,T04] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.Globalization.TextInfo\u003E\n ;* V20 tmp17        [V20    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V01.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V21 tmp18        [V21    ] (  0,  0   )    long  -\u003E  zero-ref    single-def \u0022field V01.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V22 tmp19        [V22    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V04.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V23 tmp20        [V23    ] (  0,  0   )    long  -\u003E  zero-ref    single-def \u0022field V04.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V24 tmp21        [V24    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V06.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V25 tmp22        [V25    ] (  0,  0   )    long  -\u003E  zero-ref    single-def \u0022field V06.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V26 tmp23        [V26    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022field V09.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V27 tmp24        [V27    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022field V09.value (fldOffset=0x8)\u0022 P-INDEP\n-;  V28 tmp25        [V28,T06] (  3,  3   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n\u002B;  V28 tmp25        [V28,T05] (  3,  3   )     ref  -\u003E  rax         single-def \u0022argument with side effect\u0022\n ;\n ; Lcl frame size = 8\n \n G_M41228_IG01:\n        push     rbp\n        push     rbx\n        push     rax\n        lea      rbp, [rsp\u002B0x10]\n        xor      eax, eax\n        mov      qword ptr [rbp-0x10], rax\n \t\t\t\t\t\t;; size=14 bbWeight=1 PerfScore 4.75\n G_M41228_IG02:\n-       mov      rbx, gword ptr [rdi\u002B0x30]\n-       test     rbx, rbx\n-       je       G_M41228_IG10\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Driver.Core.Operations.WriteRequest]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M41228_IG04\n-\t\t\t\t\t\t;; size=43 bbWeight=1 PerfScore 8.25\n-G_M41228_IG03:\n-       lea      rsi, [rbp-0x10]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x20]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetFirst(byref):System.__Canon:this\n-       jmp      SHORT G_M41228_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M41228_IG04:\n\u002B       mov      rsi, gword ptr [rdi\u002B0x30]\n\u002B       test     rsi, rsi\n\u002B       je       G_M41228_IG07\n        lea      rdx, [rbp-0x10]\n-       mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetFirstNonIterator[MongoDB.Driver.Core.Operations.WriteRequest](System.Collections.Generic.IEnumerable\u00601[MongoDB.Driver.Core.Operations.WriteRequest],byref):MongoDB.Driver.Core.Operations.WriteRequest\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetFirstNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M41228_IG05:\n        test     rax, rax\n-       je       SHORT G_M41228_IG07\n-\t\t\t\t\t\t;; size=5 bbWeight=1 PerfScore 1.25\n-G_M41228_IG06:\n\u002B       je       SHORT G_M41228_IG04\n\u002B\t\t\t\t\t\t;; size=44 bbWeight=1 PerfScore 8.50\n\u002BG_M41228_IG03:\n        mov      ebx, dword ptr [rax\u002B0x08]\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.Core.Operations.WriteRequestType\n        call     CORINFO_HELP_NEWSFAST\n        mov      dword ptr [rax\u002B0x08], ebx\n        mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for System.Enum:ToString():System.String:this\n        call     [rax]System.Enum:ToString():System.String:this\n        mov      rbx, rax\n        cmp      byte  ptr [rbx], bl\n        mov      rax, 0xD1FFAB1E      ; code for System.Globalization.CultureInfo:get_CurrentCulture():System.Globalization.CultureInfo\n        call     [rax]System.Globalization.CultureInfo:get_CurrentCulture():System.Globalization.CultureInfo\n        mov      rdi, rax\n        mov      rax, qword ptr [rax]\n        mov      rax, qword ptr [rax\u002B0x48]\n        call     [rax\u002B0x38]System.Globalization.CultureInfo:get_TextInfo():System.Globalization.TextInfo:this\n        cmp      byte  ptr [rax], al\n        mov      rdi, rax\n        mov      rsi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo\u002BToLowerConversion](System.Globalization.TextInfo,System.String):System.String\n        call     [rax]System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo\u002BToLowerConversion](System.Globalization.TextInfo,System.String):System.String\n-       jmp      SHORT G_M41228_IG08\n\u002B       jmp      SHORT G_M41228_IG05\n \t\t\t\t\t\t;; size=88 bbWeight=0.50 PerfScore 14.12\n-G_M41228_IG07:\n\u002BG_M41228_IG04:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M41228_IG08:\n\u002BG_M41228_IG05:\n        xor      edi, edi\n        xor      esi, esi\n        mov      rdx, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Events.EventContext:BeginOperation(System.Nullable\u00601[long],System.String):MongoDB.Driver.Core.Events.EventContext\u002BOperationIdDisposer\n        call     [rax]MongoDB.Driver.Core.Events.EventContext:BeginOperation(System.Nullable\u00601[long],System.String):MongoDB.Driver.Core.Events.EventContext\u002BOperationIdDisposer\n        nop      \n \t\t\t\t\t\t;; size=20 bbWeight=1 PerfScore 4.25\n-G_M41228_IG09:\n\u002BG_M41228_IG06:\n        add      rsp, 8\n        pop      rbx\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=7 bbWeight=1 PerfScore 2.25\n-G_M41228_IG10:\n\u002BG_M41228_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 245, prolog size 14, PerfScore 42.00, instruction count 64, allocated bytes for code 245 (MethodHash=66575ef3) for method MongoDB.Driver.Core.Operations.BulkMixedWriteOperation:BeginOperation():MongoDB.Driver.Core.Events.EventContext\u002BOperationIdDisposer:this (FullOpts)\n\u002B; Total bytes of code 193, prolog size 14, PerfScore 34.00, instruction count 51, allocated bytes for code 193 (MethodHash=66575ef3) for method MongoDB.Driver.Core.Operations.BulkMixedWriteOperation:BeginOperation():MongoDB.Driver.Core.Events.EventContext\u002BOperationIdDisposer:this (FullOpts)\n ; ============================================================","Truncated":false,"BaseBytes":245,"DiffBytes":193},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.MethodTranslators.IndexOfMethodToAggregationExpressionTranslator:IsStringIndexOfMethod(System.Linq.Expressions.MethodCallExpression,byref,byref,byref,byref,byref):bool (FullOpts)","Category":"improvement","Description":"772 -\u003E 720 bytes (-52)","ExtraInfo":null,"Diff":"@@ -9,29 \u002B9,29 @@\n ; Final local variable assignments\n ;\n ;  V00 arg0         [V00,T00] (  6,  5.50)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n-;  V01 arg1         [V01,T02] (  5,  3.50)   byref  -\u003E  r15         single-def\n-;  V02 arg2         [V02,T03] (  5,  3.50)   byref  -\u003E  r14         single-def\n-;  V03 arg3         [V03,T04] (  5,  3.50)   byref  -\u003E  r13         single-def\n-;  V04 arg4         [V04,T05] (  5,  3.50)   byref  -\u003E  r12         single-def\n-;  V05 arg5         [V05,T06] (  5,  3.50)   byref  -\u003E  [rbp-0x40]  single-def\n\u002B;  V01 arg1         [V01,T01] (  5,  3.50)   byref  -\u003E  r15         single-def\n\u002B;  V02 arg2         [V02,T02] (  5,  3.50)   byref  -\u003E  r14         single-def\n\u002B;  V03 arg3         [V03,T03] (  5,  3.50)   byref  -\u003E  r13         single-def\n\u002B;  V04 arg4         [V04,T04] (  5,  3.50)   byref  -\u003E  r12         single-def\n\u002B;  V05 arg5         [V05,T05] (  5,  3.50)   byref  -\u003E  [rbp-0x40]  single-def\n ;  V06 loc0         [V06,T07] (  8,  5   )     ref  -\u003E  [rbp-0x48]  class-hnd spill-single-def \u003CSystem.Reflection.MethodInfo\u003E\n-;  V07 loc1         [V07,T01] ( 10,  5.50)     ref  -\u003E  [rbp-0x50]  class-hnd spill-single-def \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V07 loc1         [V07,T06] (  9,  5   )     ref  -\u003E  [rbp-0x50]  class-hnd spill-single-def \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V09 tmp1         [V09    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V10 tmp2         [V10    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def\n-;  V11 tmp3         [V11,T10] (  3,  1.50)     ref  -\u003E  rax        \n\u002B;  V11 tmp3         [V11,T09] (  3,  1.50)     ref  -\u003E  rax        \n ;* V12 tmp4         [V12    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V13 tmp5         [V13    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def\n-;  V14 tmp6         [V14,T11] (  3,  1.50)     ref  -\u003E  rax        \n\u002B;  V14 tmp6         [V14,T10] (  3,  1.50)     ref  -\u003E  rax        \n ;* V15 tmp7         [V15    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def\n ;* V16 tmp8         [V16    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V17 tmp9         [V17,T12] (  3,  1.50)     ref  -\u003E  rsi        \n\u002B;  V17 tmp9         [V17,T11] (  3,  1.50)     ref  -\u003E  rsi        \n ;* V18 tmp10        [V18    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V19 tmp11        [V19    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def\n-;  V20 tmp12        [V20,T13] (  3,  1.50)     ref  -\u003E  rax        \n\u002B;  V20 tmp12        [V20,T12] (  3,  1.50)     ref  -\u003E  rax        \n ;* V21 tmp13        [V21    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V22 tmp14        [V22    ] (  0,  0   )   byref  -\u003E  zero-ref    single-def\n-;  V23 tmp15        [V23,T14] (  3,  1.50)     ref  -\u003E  rax        \n\u002B;  V23 tmp15        [V23,T13] (  3,  1.50)     ref  -\u003E  rax        \n ;* V24 tmp16        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Reflection.MethodInfoSet\u003E\n ;* V25 tmp17        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Reflection.MethodInfoSet\u003E\n ;* V26 tmp18        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Reflection.MethodInfoSet\u003E\n@@ -39,10 \u002B39,10 @@\n ;* V28 tmp20        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Reflection.MethodInfoSet\u003E\n ;* V29 tmp21        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Reflection.MethodInfoSet\u003E\n ;* V30 tmp22        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Reflection.MethodInfoSet\u003E\n-;  V31 tmp23        [V31    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V31 tmp23        [V31    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V32 tmp24        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V33 tmp25        [V33,T15] (  3,  1.50)     ref  -\u003E  rsi         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V34 tmp26        [V34,T09] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V33 tmp25        [V33,T14] (  2,  1   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;* V34 tmp26        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n ;  V35 cse0         [V35,T08] (  3,  2.50)    long  -\u003E  [rbp-0x38]  spill-single-def \u0022CSE #02: moderate\u0022\n ;\n ; Lcl frame size = 40\n@@ -116,7 \u002B116,7 @@ G_M46670_IG09:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Linq.Linq3Implementation.Reflection.MethodInfoSet:Contains(System.Reflection.MethodInfo):bool:this\n        call     [rax]MongoDB.Driver.Linq.Linq3Implementation.Reflection.MethodInfoSet:Contains(System.Reflection.MethodInfo):bool:this\n        test     eax, eax\n-       jne      G_M46670_IG18\n\u002B       jne      G_M46670_IG16\n        mov      rdi, rbx\n        mov      rbx, qword ptr [rbp-0x38]\n        call     [rbx\u002B0x10]System.Linq.Expressions.MethodCallExpression:GetInstance():System.Linq.Expressions.Expression:this\n@@ -177,43 \u002B177,26 @@ G_M46670_IG13:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Linq.Linq3Implementation.Reflection.MethodInfoSet:Contains(System.Reflection.MethodInfo):bool:this\n        call     [rax]MongoDB.Driver.Linq.Linq3Implementation.Reflection.MethodInfoSet:Contains(System.Reflection.MethodInfo):bool:this\n        test     eax, eax\n-       je       SHORT G_M46670_IG16\n-       mov      rsi, rbx\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n        je       SHORT G_M46670_IG14\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       mov      rsi, rax\n-       jmp      SHORT G_M46670_IG15\n-\t\t\t\t\t\t;; size=96 bbWeight=0.50 PerfScore 12.12\n-G_M46670_IG14:\n        lea      rdx, [rbp-0x30]\n        mov      rsi, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.Linq.Expressions.Expression](System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.Expression],byref):System.Linq.Expressions.Expression\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        mov      rsi, rax\n-\t\t\t\t\t\t;; size=32 bbWeight=0.50 PerfScore 2.25\n-G_M46670_IG15:\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M46670_IG25\n-       jmp      SHORT G_M46670_IG17\n-\t\t\t\t\t\t;; size=12 bbWeight=0.50 PerfScore 2.00\n-G_M46670_IG16:\n\u002B       je       G_M46670_IG23\n\u002B       jmp      SHORT G_M46670_IG15\n\u002B\t\t\t\t\t\t;; size=88 bbWeight=0.50 PerfScore 8.88\n\u002BG_M46670_IG14:\n        xor      rsi, rsi\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M46670_IG17:\n\u002BG_M46670_IG15:\n        mov      rdi, bword ptr [rbp-0x40]\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n-       jmp      G_M46670_IG23\n\u002B       jmp      G_M46670_IG21\n \t\t\t\t\t\t;; size=14 bbWeight=0.50 PerfScore 2.00\n-G_M46670_IG18:\n\u002BG_M46670_IG16:\n        mov      rbx, gword ptr [rbp-0x50]\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IList\u00601[System.__Canon]:get_Item(int):System.__Canon:this\n@@ -235,17 \u002B218,17 @@ G_M46670_IG18:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Linq.Linq3Implementation.Reflection.MethodInfoSet:Contains(System.Reflection.MethodInfo):bool:this\n        call     [rax]MongoDB.Driver.Linq.Linq3Implementation.Reflection.MethodInfoSet:Contains(System.Reflection.MethodInfo):bool:this\n        test     eax, eax\n-       je       SHORT G_M46670_IG19\n\u002B       je       SHORT G_M46670_IG17\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IList\u00601[System.__Canon]:get_Item(int):System.__Canon:this\n        mov      esi, 2\n        call     [r11]System.Collections.Generic.IList\u00601[System.__Canon]:get_Item(int):System.__Canon:this\n-       jmp      SHORT G_M46670_IG20\n\u002B       jmp      SHORT G_M46670_IG18\n \t\t\t\t\t\t;; size=124 bbWeight=0.50 PerfScore 15.12\n-G_M46670_IG19:\n\u002BG_M46670_IG17:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M46670_IG20:\n\u002BG_M46670_IG18:\n        mov      rdi, r13\n        mov      rsi, rax\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n@@ -255,17 \u002B238,17 @@ G_M46670_IG20:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Linq.Linq3Implementation.Reflection.MethodInfoSet:Contains(System.Reflection.MethodInfo):bool:this\n        call     [rax]MongoDB.Driver.Linq.Linq3Implementation.Reflection.MethodInfoSet:Contains(System.Reflection.MethodInfo):bool:this\n        test     eax, eax\n-       je       SHORT G_M46670_IG21\n\u002B       je       SHORT G_M46670_IG19\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IList\u00601[System.__Canon]:get_Item(int):System.__Canon:this\n        mov      esi, 3\n        call     [r11]System.Collections.Generic.IList\u00601[System.__Canon]:get_Item(int):System.__Canon:this\n-       jmp      SHORT G_M46670_IG22\n\u002B       jmp      SHORT G_M46670_IG20\n \t\t\t\t\t\t;; size=68 bbWeight=0.50 PerfScore 8.38\n-G_M46670_IG21:\n\u002BG_M46670_IG19:\n        xor      rax, rax\n \t\t\t\t\t\t;; size=2 bbWeight=0.50 PerfScore 0.12\n-G_M46670_IG22:\n\u002BG_M46670_IG20:\n        mov      rdi, r12\n        mov      rsi, rax\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n@@ -273,10 \u002B256,10 @@ G_M46670_IG22:\n        mov      r12, bword ptr [rbp-0x40]\n        mov      gword ptr [r12], rax\n \t\t\t\t\t\t;; size=21 bbWeight=0.50 PerfScore 1.88\n-G_M46670_IG23:\n\u002BG_M46670_IG21:\n        mov      eax, 1\n \t\t\t\t\t\t;; size=5 bbWeight=0.50 PerfScore 0.12\n-G_M46670_IG24:\n\u002BG_M46670_IG22:\n        add      rsp, 40\n        pop      rbx\n        pop      r12\n@@ -286,11 \u002B269,11 @@ G_M46670_IG24:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 2.12\n-G_M46670_IG25:\n\u002BG_M46670_IG23:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 772, prolog size 25, PerfScore 108.88, instruction count 194, allocated bytes for code 772 (MethodHash=187e49b1) for method MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.MethodTranslators.IndexOfMethodToAggregationExpressionTranslator:IsStringIndexOfMethod(System.Linq.Expressions.MethodCallExpression,byref,byref,byref,byref,byref):bool (FullOpts)\n\u002B; Total bytes of code 720, prolog size 25, PerfScore 101.38, instruction count 181, allocated bytes for code 720 (MethodHash=187e49b1) for method MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.MethodTranslators.IndexOfMethodToAggregationExpressionTranslator:IsStringIndexOfMethod(System.Linq.Expressions.MethodCallExpression,byref,byref,byref,byref,byref):bool (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":772,"DiffBytes":720},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateAggregateToCollectionResultCursor[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.Nullable\u00601[int],System.Nullable\u00601[int]]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.Nullable\u00601[int],System.Nullable\u00601[int]]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M24135_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M24135_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M24135_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M24135_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M24135_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M24135_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M24135_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M24135_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M24135_IG11\n\u002B       je       G_M24135_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M24135_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M24135_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M24135_IG06:\n\u002B       je       SHORT G_M24135_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M24135_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M24135_IG07:\n\u002BG_M24135_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M24135_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M24135_IG08:\n\u002BG_M24135_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M24135_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[System.Nullable\u00601[int]]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M24135_IG09:\n\u002BG_M24135_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M24135_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M24135_IG10:\n\u002BG_M24135_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M24135_IG11:\n\u002BG_M24135_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=b9c5a1b8) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateAggregateToCollectionResultCursor[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=b9c5a1b8) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateAggregateToCollectionResultCursor[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateAggregateToCollectionResultCursor[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.Nullable\u00601[int],System.Numerics.Vector\u00601[float]]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.Nullable\u00601[int],System.Numerics.Vector\u00601[float]]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M31354_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M31354_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M31354_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M31354_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M31354_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M31354_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M31354_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M31354_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M31354_IG11\n\u002B       je       G_M31354_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M31354_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M31354_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M31354_IG06:\n\u002B       je       SHORT G_M31354_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M31354_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M31354_IG07:\n\u002BG_M31354_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M31354_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M31354_IG08:\n\u002BG_M31354_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M31354_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M31354_IG09:\n\u002BG_M31354_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M31354_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M31354_IG10:\n\u002BG_M31354_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M31354_IG11:\n\u002BG_M31354_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=e90f8585) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateAggregateToCollectionResultCursor[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=e90f8585) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateAggregateToCollectionResultCursor[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateAggregateToCollectionResultCursor[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)","Category":"improvement","Description":"1,082 -\u003E 1,030 bytes (-52)","ExtraInfo":null,"Diff":"@@ -11,10 \u002B11,10 @@\n ;  V00 this         [V00,T03] (  9,  9   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]\u003E\n ;  V01 TypeCtx      [V01,T01] ( 13,  9.16)    long  -\u003E  rbx         single-def\n ;  V02 arg1         [V02,T18] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V03 arg2         [V03,T08] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n\u002B;  V03 arg2         [V03,T07] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n ;  V04 arg3         [V04,T19] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V05 loc0         [V05,T02] ( 11, 11   )     ref  -\u003E  [rbp-0x48]  class-hnd exact spill-single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.Nullable\u00601[int],System.__Canon]\u003E\n-;  V06 loc1         [V06,T35] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V06 loc1         [V06,T33] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V08 tmp1         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.Nullable\u00601[int],System.__Canon]\u003E\n ;* V09 tmp2         [V09    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n@@ -28,13 \u002B28,13 @@\n ;* V17 tmp10        [V17    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;  V18 tmp11        [V18,T06] (  4,  8   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.__Canon]\u003E\n ;* V19 tmp12        [V19    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V20 tmp13        [V20,T09] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.__Canon]\u003E\n\u002B;  V20 tmp13        [V20,T08] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.__Canon]\u003E\n ;* V21 tmp14        [V21    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V22 tmp15        [V22,T07] (  4,  7   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V23 tmp16        [V23    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V22 tmp15        [V22,T09] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V23 tmp16        [V23    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V24 tmp17        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V25 tmp18        [V25,T34] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V26 tmp19        [V26,T31] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V25 tmp18        [V25,T34] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V26 tmp19        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V27 tmp20        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V28 tmp21        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V29 tmp22        [V29    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -52,14 \u002B52,14 @@\n ;  V41 tmp34        [V41,T27] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V42 tmp35        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V43 tmp36        [V43    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V44 tmp37        [V44,T32] (  3,  3   )   ubyte  -\u003E  r12         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp38        [V45,T33] (  3,  2.50)     int  -\u003E  [rbp-0x3C]  spill-single-def \u0022field V13.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V46 tmp39        [V46,T36] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V14.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp40        [V47,T37] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V14.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp37        [V44,T31] (  3,  3   )   ubyte  -\u003E  r12         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp38        [V45,T32] (  3,  2.50)     int  -\u003E  [rbp-0x3C]  spill-single-def \u0022field V13.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V46 tmp39        [V46,T35] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V14.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V47 tmp40        [V47,T36] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V14.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V48 tmp41        [V48    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V29.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V49 tmp42        [V49    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V29.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V50 tmp43        [V50,T38] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V38.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V51 tmp44        [V51,T39] (  2,  2   )    long  -\u003E  rdx         \u0022field V38.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V50 tmp43        [V50,T37] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V38.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V51 tmp44        [V51,T38] (  2,  2   )    long  -\u003E  rdx         \u0022field V38.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V52 tmp45        [V52,T10] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V53 tmp46        [V53,T28] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V54 tmp47        [V54,T29] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -102,7 \u002B102,7 @@ G_M58431_IG02:\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M58431_IG20\n\u002B       je       G_M58431_IG17\n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.25\n G_M58431_IG03:\n        call     CORINFO_HELP_NEWSFAST\n@@ -114,46 \u002B114,27 @@ G_M58431_IG03:\n        lea      rdi, bword ptr [rax\u002B0x20]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r12, gword ptr [r14\u002B0x08]\n-       test     r12, r12\n-       je       G_M58431_IG21\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M58431_IG05\n-\t\t\t\t\t\t;; size=80 bbWeight=1 PerfScore 14.75\n-G_M58431_IG04:\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M58431_IG06\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M58431_IG05:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M58431_IG18\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M58431_IG06:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x38], 0\n-       je       G_M58431_IG22\n\u002B       je       G_M58431_IG19\n        mov      rsi, gword ptr [r15\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r12, rax\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x18]\n        test     rdi, rdi\n-       je       G_M58431_IG16\n-\t\t\t\t\t\t;; size=53 bbWeight=1 PerfScore 15.00\n-G_M58431_IG07:\n\u002B       je       G_M58431_IG13\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=1 PerfScore 28.75\n\u002BG_M58431_IG04:\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x50], rax\n        mov      rdx, gword ptr [r14\u002B0x10]\n@@ -168,9 \u002B149,9 @@ G_M58431_IG07:\n        mov      eax, dword ptr [rdi\u002B0x38]\n        mov      dword ptr [rbp-0x3C], eax\n        test     r12d, r12d\n-       je       SHORT G_M58431_IG09\n\u002B       je       SHORT G_M58431_IG06\n \t\t\t\t\t\t;; size=60 bbWeight=1 PerfScore 19.00\n-G_M58431_IG08:\n\u002BG_M58431_IG05:\n        mov      edi, eax\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n@@ -178,7 \u002B159,7 @@ G_M58431_IG08:\n        call     [rcx]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        mov      eax, dword ptr [rbp-0x3C]\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.50\n-G_M58431_IG09:\n\u002BG_M58431_IG06:\n        mov      rcx, gword ptr [rbp-0x50]\n        mov      byte  ptr [rcx\u002B0x80], r12b\n        mov      dword ptr [rcx\u002B0x84], eax\n@@ -222,7 \u002B203,7 @@ G_M58431_IG09:\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=228 bbWeight=1 PerfScore 52.25\n-G_M58431_IG10:\n\u002BG_M58431_IG07:\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        mov      rsi, rax\n        lea      rdi, bword ptr [r12\u002B0x58]\n@@ -255,9 \u002B236,9 @@ G_M58431_IG10:\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x20]\n        test     rdi, rdi\n-       je       G_M58431_IG17\n\u002B       je       G_M58431_IG14\n \t\t\t\t\t\t;; size=162 bbWeight=1 PerfScore 33.25\n-G_M58431_IG11:\n\u002BG_M58431_IG08:\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n@@ -268,9 \u002B249,9 @@ G_M58431_IG11:\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x28]\n        test     rdi, rdi\n-       je       G_M58431_IG18\n\u002B       je       G_M58431_IG15\n \t\t\t\t\t\t;; size=51 bbWeight=1 PerfScore 9.50\n-G_M58431_IG12:\n\u002BG_M58431_IG09:\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        lea      rdi, bword ptr [r12\u002B0x10]\n@@ -280,14 \u002B261,14 @@ G_M58431_IG12:\n        mov      qword ptr [r12\u002B0x18], rdi\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        cmp      qword ptr [rdi\u002B0x08], 48\n-       jle      G_M58431_IG19\n\u002B       jle      G_M58431_IG16\n \t\t\t\t\t\t;; size=51 bbWeight=1 PerfScore 9.25\n-G_M58431_IG13:\n\u002BG_M58431_IG10:\n        mov      rdi, qword ptr [rdi\u002B0x30]\n        test     rdi, rdi\n-       je       G_M58431_IG19\n\u002B       je       G_M58431_IG16\n \t\t\t\t\t\t;; size=13 bbWeight=0.80 PerfScore 2.60\n-G_M58431_IG14:\n\u002BG_M58431_IG11:\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n        mov      rdi, rbx\n@@ -298,7 \u002B279,7 @@ G_M58431_IG14:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[System.__Canon]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,System.__Canon],System.Func\u00602[System.Threading.CancellationToken,System.__Canon]):this\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=35 bbWeight=1 PerfScore 5.75\n-G_M58431_IG15:\n\u002BG_M58431_IG12:\n        add      rsp, 56\n        pop      rbx\n        pop      r12\n@@ -308,39 \u002B289,39 @@ G_M58431_IG15:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n\u002BG_M58431_IG13:\n\u002B       mov      rdi, rbx\n\u002B       mov      rsi, 0xD1FFAB1E      ; global ptr\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       mov      rdi, rax\n\u002B       jmp      G_M58431_IG04\n\u002B\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n\u002BG_M58431_IG14:\n\u002B       mov      rdi, rbx\n\u002B       mov      rsi, 0xD1FFAB1E      ; global ptr\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       mov      rdi, rax\n\u002B       jmp      G_M58431_IG08\n\u002B\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n\u002BG_M58431_IG15:\n\u002B       mov      rdi, rbx\n\u002B       mov      rsi, 0xD1FFAB1E      ; global ptr\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       mov      rdi, rax\n\u002B       jmp      G_M58431_IG09\n\u002B\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n G_M58431_IG16:\n-       mov      rdi, rbx\n-       mov      rsi, 0xD1FFAB1E      ; global ptr\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       mov      rdi, rax\n-       jmp      G_M58431_IG07\n-\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M58431_IG17:\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n        jmp      G_M58431_IG11\n-\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M58431_IG18:\n-       mov      rdi, rbx\n-       mov      rsi, 0xD1FFAB1E      ; global ptr\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       mov      rdi, rax\n-       jmp      G_M58431_IG12\n-\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M58431_IG19:\n-       mov      rdi, rbx\n-       mov      rsi, 0xD1FFAB1E      ; global ptr\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       mov      rdi, rax\n-       jmp      G_M58431_IG14\n \t\t\t\t\t\t;; size=33 bbWeight=0.36 PerfScore 2.16\n-G_M58431_IG20:\n\u002BG_M58431_IG17:\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -348,17 \u002B329,17 @@ G_M58431_IG20:\n        mov      rdi, rax\n        jmp      G_M58431_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M58431_IG21:\n\u002BG_M58431_IG18:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M58431_IG22:\n\u002BG_M58431_IG19:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1082, prolog size 29, PerfScore 197.56, instruction count 235, allocated bytes for code 1082 (MethodHash=6e7e1bc0) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateAggregateToCollectionResultCursor[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)\n\u002B; Total bytes of code 1030, prolog size 29, PerfScore 189.56, instruction count 222, allocated bytes for code 1030 (MethodHash=6e7e1bc0) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateAggregateToCollectionResultCursor[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1082,"DiffBytes":1030},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateAggregateToCollectionResultCursor[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[byte],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.Nullable\u00601[int],byte]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.Nullable\u00601[int],byte]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[byte]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[byte]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[byte]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[byte]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M38323_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M38323_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M38323_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M38323_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M38323_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M38323_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M38323_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M38323_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M38323_IG11\n\u002B       je       G_M38323_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M38323_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M38323_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M38323_IG06:\n\u002B       je       SHORT G_M38323_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M38323_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M38323_IG07:\n\u002BG_M38323_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M38323_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M38323_IG08:\n\u002BG_M38323_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M38323_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[byte]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[byte]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[byte]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M38323_IG09:\n\u002BG_M38323_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M38323_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M38323_IG10:\n\u002BG_M38323_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M38323_IG11:\n\u002BG_M38323_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=f55c6a4c) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateAggregateToCollectionResultCursor[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[byte],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=f55c6a4c) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateAggregateToCollectionResultCursor[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[byte],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateAggregateToCollectionResultCursor[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[double],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.Nullable\u00601[int],double]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.Nullable\u00601[int],double]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[double]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[double]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[double]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[double]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M62284_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M62284_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M62284_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M62284_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M62284_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M62284_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M62284_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M62284_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M62284_IG11\n\u002B       je       G_M62284_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M62284_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M62284_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M62284_IG06:\n\u002B       je       SHORT G_M62284_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M62284_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M62284_IG07:\n\u002BG_M62284_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M62284_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M62284_IG08:\n\u002BG_M62284_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M62284_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[double]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[double]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[double]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M62284_IG09:\n\u002BG_M62284_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M62284_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M62284_IG10:\n\u002BG_M62284_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M62284_IG11:\n\u002BG_M62284_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=0a9d0cb3) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateAggregateToCollectionResultCursor[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[double],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=0a9d0cb3) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateAggregateToCollectionResultCursor[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[double],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateAggregateToCollectionResultCursor[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[int],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.Nullable\u00601[int],int]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.Nullable\u00601[int],int]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[int]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[int]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[int]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[int]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M21610_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M21610_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M21610_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M21610_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M21610_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M21610_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M21610_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M21610_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M21610_IG11\n\u002B       je       G_M21610_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M21610_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M21610_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M21610_IG06:\n\u002B       je       SHORT G_M21610_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M21610_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M21610_IG07:\n\u002BG_M21610_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M21610_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M21610_IG08:\n\u002BG_M21610_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M21610_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[int]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[int]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[int]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M21610_IG09:\n\u002BG_M21610_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M21610_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M21610_IG10:\n\u002BG_M21610_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M21610_IG11:\n\u002BG_M21610_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=bb55ab95) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateAggregateToCollectionResultCursor[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[int],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=bb55ab95) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateAggregateToCollectionResultCursor[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[int],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateAggregateToCollectionResultCursor[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[long],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.Nullable\u00601[int],long]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.Nullable\u00601[int],long]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[long]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[long]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[long]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[long]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M46003_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M46003_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M46003_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M46003_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M46003_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M46003_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M46003_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M46003_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M46003_IG11\n\u002B       je       G_M46003_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M46003_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M46003_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M46003_IG06:\n\u002B       je       SHORT G_M46003_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M46003_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M46003_IG07:\n\u002BG_M46003_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M46003_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M46003_IG08:\n\u002BG_M46003_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M46003_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[long]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[long]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[long]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M46003_IG09:\n\u002BG_M46003_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M46003_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M46003_IG10:\n\u002BG_M46003_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M46003_IG11:\n\u002BG_M46003_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=5b4c4c4c) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateAggregateToCollectionResultCursor[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[long],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=5b4c4c4c) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateAggregateToCollectionResultCursor[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[long],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateAggregateToCollectionResultCursor[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[short],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.Nullable\u00601[int],short]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.Nullable\u00601[int],short]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[short]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[short]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[short]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[short]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M2955_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M2955_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M2955_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M2955_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M2955_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M2955_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M2955_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M2955_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M2955_IG11\n\u002B       je       G_M2955_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M2955_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M2955_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M2955_IG06:\n\u002B       je       SHORT G_M2955_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M2955_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M2955_IG07:\n\u002BG_M2955_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M2955_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M2955_IG08:\n\u002BG_M2955_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M2955_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[short]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[short]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[short]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M2955_IG09:\n\u002BG_M2955_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M2955_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M2955_IG10:\n\u002BG_M2955_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M2955_IG11:\n\u002BG_M2955_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=22f7f474) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateAggregateToCollectionResultCursor[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[short],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=22f7f474) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]:CreateAggregateToCollectionResultCursor[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[short],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateAggregateToCollectionResultCursor[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M1114_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M1114_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M1114_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M1114_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M1114_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M1114_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M1114_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M1114_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M1114_IG11\n\u002B       je       G_M1114_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M1114_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M1114_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M1114_IG06:\n\u002B       je       SHORT G_M1114_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M1114_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M1114_IG07:\n\u002BG_M1114_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M1114_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M1114_IG08:\n\u002BG_M1114_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M1114_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[System.Nullable\u00601[int]]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M1114_IG09:\n\u002BG_M1114_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M1114_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M1114_IG10:\n\u002BG_M1114_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M1114_IG11:\n\u002BG_M1114_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=1813fba5) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateAggregateToCollectionResultCursor[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=1813fba5) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateAggregateToCollectionResultCursor[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateAggregateToCollectionResultCursor[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.Numerics.Vector\u00601[float],System.Numerics.Vector\u00601[float]]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.Numerics.Vector\u00601[float],System.Numerics.Vector\u00601[float]]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M13511_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M13511_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M13511_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M13511_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M13511_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M13511_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M13511_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M13511_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M13511_IG11\n\u002B       je       G_M13511_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M13511_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M13511_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M13511_IG06:\n\u002B       je       SHORT G_M13511_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M13511_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M13511_IG07:\n\u002BG_M13511_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M13511_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M13511_IG08:\n\u002BG_M13511_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M13511_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M13511_IG09:\n\u002BG_M13511_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M13511_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M13511_IG10:\n\u002BG_M13511_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M13511_IG11:\n\u002BG_M13511_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=6ae8cb38) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateAggregateToCollectionResultCursor[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=6ae8cb38) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateAggregateToCollectionResultCursor[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateAggregateToCollectionResultCursor[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)","Category":"improvement","Description":"1,082 -\u003E 1,030 bytes (-52)","ExtraInfo":null,"Diff":"@@ -11,10 \u002B11,10 @@\n ;  V00 this         [V00,T03] (  9,  9   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V01 TypeCtx      [V01,T01] ( 13,  9.16)    long  -\u003E  rbx         single-def\n ;  V02 arg1         [V02,T18] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V03 arg2         [V03,T08] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n\u002B;  V03 arg2         [V03,T07] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n ;  V04 arg3         [V04,T19] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V05 loc0         [V05,T02] ( 11, 11   )     ref  -\u003E  [rbp-0x48]  class-hnd exact spill-single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.Numerics.Vector\u00601[float],System.__Canon]\u003E\n-;  V06 loc1         [V06,T35] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V06 loc1         [V06,T33] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V08 tmp1         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.Numerics.Vector\u00601[float],System.__Canon]\u003E\n ;* V09 tmp2         [V09    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n@@ -28,13 \u002B28,13 @@\n ;* V17 tmp10        [V17    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;  V18 tmp11        [V18,T06] (  4,  8   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.__Canon]\u003E\n ;* V19 tmp12        [V19    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V20 tmp13        [V20,T09] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.__Canon]\u003E\n\u002B;  V20 tmp13        [V20,T08] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.__Canon]\u003E\n ;* V21 tmp14        [V21    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V22 tmp15        [V22,T07] (  4,  7   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V23 tmp16        [V23    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V22 tmp15        [V22,T09] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V23 tmp16        [V23    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V24 tmp17        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V25 tmp18        [V25,T34] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V26 tmp19        [V26,T31] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V25 tmp18        [V25,T34] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V26 tmp19        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V27 tmp20        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V28 tmp21        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V29 tmp22        [V29    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -52,14 \u002B52,14 @@\n ;  V41 tmp34        [V41,T27] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V42 tmp35        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V43 tmp36        [V43    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V44 tmp37        [V44,T32] (  3,  3   )   ubyte  -\u003E  r12         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp38        [V45,T33] (  3,  2.50)     int  -\u003E  [rbp-0x3C]  spill-single-def \u0022field V13.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V46 tmp39        [V46,T36] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V14.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp40        [V47,T37] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V14.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp37        [V44,T31] (  3,  3   )   ubyte  -\u003E  r12         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp38        [V45,T32] (  3,  2.50)     int  -\u003E  [rbp-0x3C]  spill-single-def \u0022field V13.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V46 tmp39        [V46,T35] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V14.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V47 tmp40        [V47,T36] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V14.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V48 tmp41        [V48    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V29.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V49 tmp42        [V49    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V29.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V50 tmp43        [V50,T38] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V38.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V51 tmp44        [V51,T39] (  2,  2   )    long  -\u003E  rdx         \u0022field V38.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V50 tmp43        [V50,T37] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V38.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V51 tmp44        [V51,T38] (  2,  2   )    long  -\u003E  rdx         \u0022field V38.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V52 tmp45        [V52,T10] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V53 tmp46        [V53,T28] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V54 tmp47        [V54,T29] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -102,7 \u002B102,7 @@ G_M51490_IG02:\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M51490_IG20\n\u002B       je       G_M51490_IG17\n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.25\n G_M51490_IG03:\n        call     CORINFO_HELP_NEWSFAST\n@@ -114,46 \u002B114,27 @@ G_M51490_IG03:\n        lea      rdi, bword ptr [rax\u002B0x20]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r12, gword ptr [r14\u002B0x08]\n-       test     r12, r12\n-       je       G_M51490_IG21\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M51490_IG05\n-\t\t\t\t\t\t;; size=80 bbWeight=1 PerfScore 14.75\n-G_M51490_IG04:\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M51490_IG06\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M51490_IG05:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M51490_IG18\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M51490_IG06:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x38], 0\n-       je       G_M51490_IG22\n\u002B       je       G_M51490_IG19\n        mov      rsi, gword ptr [r15\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r12, rax\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x18]\n        test     rdi, rdi\n-       je       G_M51490_IG16\n-\t\t\t\t\t\t;; size=53 bbWeight=1 PerfScore 15.00\n-G_M51490_IG07:\n\u002B       je       G_M51490_IG13\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=1 PerfScore 28.75\n\u002BG_M51490_IG04:\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x50], rax\n        mov      rdx, gword ptr [r14\u002B0x10]\n@@ -168,9 \u002B149,9 @@ G_M51490_IG07:\n        mov      eax, dword ptr [rdi\u002B0x38]\n        mov      dword ptr [rbp-0x3C], eax\n        test     r12d, r12d\n-       je       SHORT G_M51490_IG09\n\u002B       je       SHORT G_M51490_IG06\n \t\t\t\t\t\t;; size=60 bbWeight=1 PerfScore 19.00\n-G_M51490_IG08:\n\u002BG_M51490_IG05:\n        mov      edi, eax\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n@@ -178,7 \u002B159,7 @@ G_M51490_IG08:\n        call     [rcx]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        mov      eax, dword ptr [rbp-0x3C]\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.50\n-G_M51490_IG09:\n\u002BG_M51490_IG06:\n        mov      rcx, gword ptr [rbp-0x50]\n        mov      byte  ptr [rcx\u002B0x80], r12b\n        mov      dword ptr [rcx\u002B0x84], eax\n@@ -222,7 \u002B203,7 @@ G_M51490_IG09:\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=228 bbWeight=1 PerfScore 52.25\n-G_M51490_IG10:\n\u002BG_M51490_IG07:\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        mov      rsi, rax\n        lea      rdi, bword ptr [r12\u002B0x58]\n@@ -255,9 \u002B236,9 @@ G_M51490_IG10:\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x20]\n        test     rdi, rdi\n-       je       G_M51490_IG17\n\u002B       je       G_M51490_IG14\n \t\t\t\t\t\t;; size=162 bbWeight=1 PerfScore 33.25\n-G_M51490_IG11:\n\u002BG_M51490_IG08:\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n@@ -268,9 \u002B249,9 @@ G_M51490_IG11:\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x28]\n        test     rdi, rdi\n-       je       G_M51490_IG18\n\u002B       je       G_M51490_IG15\n \t\t\t\t\t\t;; size=51 bbWeight=1 PerfScore 9.50\n-G_M51490_IG12:\n\u002BG_M51490_IG09:\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        lea      rdi, bword ptr [r12\u002B0x10]\n@@ -280,14 \u002B261,14 @@ G_M51490_IG12:\n        mov      qword ptr [r12\u002B0x18], rdi\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        cmp      qword ptr [rdi\u002B0x08], 48\n-       jle      G_M51490_IG19\n\u002B       jle      G_M51490_IG16\n \t\t\t\t\t\t;; size=51 bbWeight=1 PerfScore 9.25\n-G_M51490_IG13:\n\u002BG_M51490_IG10:\n        mov      rdi, qword ptr [rdi\u002B0x30]\n        test     rdi, rdi\n-       je       G_M51490_IG19\n\u002B       je       G_M51490_IG16\n \t\t\t\t\t\t;; size=13 bbWeight=0.80 PerfScore 2.60\n-G_M51490_IG14:\n\u002BG_M51490_IG11:\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n        mov      rdi, rbx\n@@ -298,7 \u002B279,7 @@ G_M51490_IG14:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[System.__Canon]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,System.__Canon],System.Func\u00602[System.Threading.CancellationToken,System.__Canon]):this\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=35 bbWeight=1 PerfScore 5.75\n-G_M51490_IG15:\n\u002BG_M51490_IG12:\n        add      rsp, 56\n        pop      rbx\n        pop      r12\n@@ -308,39 \u002B289,39 @@ G_M51490_IG15:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n\u002BG_M51490_IG13:\n\u002B       mov      rdi, rbx\n\u002B       mov      rsi, 0xD1FFAB1E      ; global ptr\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       mov      rdi, rax\n\u002B       jmp      G_M51490_IG04\n\u002B\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n\u002BG_M51490_IG14:\n\u002B       mov      rdi, rbx\n\u002B       mov      rsi, 0xD1FFAB1E      ; global ptr\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       mov      rdi, rax\n\u002B       jmp      G_M51490_IG08\n\u002B\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n\u002BG_M51490_IG15:\n\u002B       mov      rdi, rbx\n\u002B       mov      rsi, 0xD1FFAB1E      ; global ptr\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       mov      rdi, rax\n\u002B       jmp      G_M51490_IG09\n\u002B\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n G_M51490_IG16:\n-       mov      rdi, rbx\n-       mov      rsi, 0xD1FFAB1E      ; global ptr\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       mov      rdi, rax\n-       jmp      G_M51490_IG07\n-\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M51490_IG17:\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n        jmp      G_M51490_IG11\n-\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M51490_IG18:\n-       mov      rdi, rbx\n-       mov      rsi, 0xD1FFAB1E      ; global ptr\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       mov      rdi, rax\n-       jmp      G_M51490_IG12\n-\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M51490_IG19:\n-       mov      rdi, rbx\n-       mov      rsi, 0xD1FFAB1E      ; global ptr\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       mov      rdi, rax\n-       jmp      G_M51490_IG14\n \t\t\t\t\t\t;; size=33 bbWeight=0.36 PerfScore 2.16\n-G_M51490_IG20:\n\u002BG_M51490_IG17:\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -348,17 \u002B329,17 @@ G_M51490_IG20:\n        mov      rdi, rax\n        jmp      G_M51490_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M51490_IG21:\n\u002BG_M51490_IG18:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M51490_IG22:\n\u002BG_M51490_IG19:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1082, prolog size 29, PerfScore 197.56, instruction count 235, allocated bytes for code 1082 (MethodHash=b8dc36dd) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateAggregateToCollectionResultCursor[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)\n\u002B; Total bytes of code 1030, prolog size 29, PerfScore 189.56, instruction count 222, allocated bytes for code 1030 (MethodHash=b8dc36dd) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateAggregateToCollectionResultCursor[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1082,"DiffBytes":1030},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateAggregateToCollectionResultCursor[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[byte],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.Numerics.Vector\u00601[float],byte]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.Numerics.Vector\u00601[float],byte]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[byte]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[byte]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[byte]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[byte]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M63150_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M63150_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M63150_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M63150_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M63150_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M63150_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M63150_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M63150_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M63150_IG11\n\u002B       je       G_M63150_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M63150_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M63150_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M63150_IG06:\n\u002B       je       SHORT G_M63150_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M63150_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M63150_IG07:\n\u002BG_M63150_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M63150_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M63150_IG08:\n\u002BG_M63150_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M63150_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[byte]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[byte]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[byte]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M63150_IG09:\n\u002BG_M63150_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M63150_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M63150_IG10:\n\u002BG_M63150_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M63150_IG11:\n\u002BG_M63150_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=03cf0951) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateAggregateToCollectionResultCursor[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[byte],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=03cf0951) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateAggregateToCollectionResultCursor[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[byte],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateAggregateToCollectionResultCursor[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[double],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.Numerics.Vector\u00601[float],double]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.Numerics.Vector\u00601[float],double]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[double]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[double]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[double]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[double]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M14609_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M14609_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M14609_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M14609_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M14609_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M14609_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M14609_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M14609_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M14609_IG11\n\u002B       je       G_M14609_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M14609_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M14609_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M14609_IG06:\n\u002B       je       SHORT G_M14609_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M14609_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M14609_IG07:\n\u002BG_M14609_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M14609_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M14609_IG08:\n\u002BG_M14609_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M14609_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[double]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[double]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[double]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M14609_IG09:\n\u002BG_M14609_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M14609_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M14609_IG10:\n\u002BG_M14609_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M14609_IG11:\n\u002BG_M14609_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=e23dc6ee) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateAggregateToCollectionResultCursor[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[double],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=e23dc6ee) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateAggregateToCollectionResultCursor[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[double],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateAggregateToCollectionResultCursor[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[int],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.Numerics.Vector\u00601[float],int]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.Numerics.Vector\u00601[float],int]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[int]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[int]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[int]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[int]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M40023_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M40023_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M40023_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M40023_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M40023_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M40023_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M40023_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M40023_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M40023_IG11\n\u002B       je       G_M40023_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M40023_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M40023_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M40023_IG06:\n\u002B       je       SHORT G_M40023_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M40023_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M40023_IG07:\n\u002BG_M40023_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M40023_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M40023_IG08:\n\u002BG_M40023_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M40023_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[int]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[int]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[int]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M40023_IG09:\n\u002BG_M40023_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M40023_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M40023_IG10:\n\u002BG_M40023_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M40023_IG11:\n\u002BG_M40023_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=332663a8) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateAggregateToCollectionResultCursor[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[int],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=332663a8) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateAggregateToCollectionResultCursor[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[int],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateAggregateToCollectionResultCursor[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[long],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.Numerics.Vector\u00601[float],long]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.Numerics.Vector\u00601[float],long]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[long]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[long]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[long]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[long]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M13998_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M13998_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M13998_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M13998_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M13998_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M13998_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M13998_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M13998_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M13998_IG11\n\u002B       je       G_M13998_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M13998_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M13998_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M13998_IG06:\n\u002B       je       SHORT G_M13998_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M13998_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M13998_IG07:\n\u002BG_M13998_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M13998_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M13998_IG08:\n\u002BG_M13998_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M13998_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[long]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[long]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[long]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M13998_IG09:\n\u002BG_M13998_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M13998_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M13998_IG10:\n\u002BG_M13998_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M13998_IG11:\n\u002BG_M13998_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=f455c951) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateAggregateToCollectionResultCursor[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[long],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=f455c951) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateAggregateToCollectionResultCursor[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[long],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateAggregateToCollectionResultCursor[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[short],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.Numerics.Vector\u00601[float],short]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.Numerics.Vector\u00601[float],short]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[short]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[short]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[short]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[short]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M15670_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M15670_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M15670_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M15670_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M15670_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M15670_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M15670_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M15670_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M15670_IG11\n\u002B       je       G_M15670_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M15670_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M15670_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M15670_IG06:\n\u002B       je       SHORT G_M15670_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M15670_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M15670_IG07:\n\u002BG_M15670_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M15670_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M15670_IG08:\n\u002BG_M15670_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M15670_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[short]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[short]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[short]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M15670_IG09:\n\u002BG_M15670_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M15670_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M15670_IG10:\n\u002BG_M15670_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M15670_IG11:\n\u002BG_M15670_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=2902c2c9) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateAggregateToCollectionResultCursor[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[short],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=2902c2c9) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]:CreateAggregateToCollectionResultCursor[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[short],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateAggregateToCollectionResultCursor[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)","Category":"improvement","Description":"890 -\u003E 838 bytes (-52)","ExtraInfo":null,"Diff":"@@ -9,12 \u002B9,12 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]\u003E\n-;  V01 TypeCtx      [V01,T07] (  5,  4.20)    long  -\u003E  rsi         single-def\n\u002B;  V01 TypeCtx      [V01,T06] (  5,  4.20)    long  -\u003E  rsi         single-def\n ;  V02 arg1         [V02,T14] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V03 arg2         [V03,T08] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V03 arg2         [V03,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;  V04 arg3         [V04,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V05 loc0         [V05,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.__Canon,System.Nullable\u00601[int]]\u003E\n-;  V06 loc1         [V06,T26] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V06 loc1         [V06,T24] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V08 tmp1         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.__Canon,System.Nullable\u00601[int]]\u003E\n ;* V09 tmp2         [V09    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n@@ -25,12 \u002B25,12 @@\n ;  V14 tmp7         [V14,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V15 tmp8         [V15,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\u003E\n ;  V16 tmp9         [V16,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]]\u003E\n-;  V17 tmp10        [V17,T09] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n-;  V18 tmp11        [V18,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V19 tmp12        [V19    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V17 tmp10        [V17,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V18 tmp11        [V18,T09] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp12        [V19    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V20 tmp13        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V21 tmp14        [V21,T25] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V22 tmp15        [V22,T22] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V21 tmp14        [V21,T25] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V22 tmp15        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V23 tmp16        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V24 tmp17        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V25 tmp18        [V25    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -48,14 \u002B48,14 @@\n ;  V37 tmp30        [V37,T18] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V38 tmp31        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V39 tmp32        [V39    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V40 tmp33        [V40,T23] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp34        [V41,T24] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V12.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V42 tmp35        [V42,T27] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V43 tmp36        [V43,T28] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V13.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V40 tmp33        [V40,T22] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp34        [V41,T23] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V12.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V42 tmp35        [V42,T26] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V43 tmp36        [V43,T27] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V13.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V44 tmp37        [V44    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V25.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V45 tmp38        [V45    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V25.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V46 tmp39        [V46,T29] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V34.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp40        [V47,T30] (  2,  2   )    long  -\u003E  rdx         \u0022field V34.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V46 tmp39        [V46,T28] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V34.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V47 tmp40        [V47,T29] (  2,  2   )    long  -\u003E  rdx         \u0022field V34.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V48 tmp41        [V48,T10] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V49 tmp42        [V49,T19] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V50 tmp43        [V50,T20] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -88,7 \u002B88,7 @@ G_M5887_IG02:\n        mov      rdi, qword ptr [rsi\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M5887_IG11\n\u002B       je       G_M5887_IG08\n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.25\n G_M5887_IG03:\n        call     CORINFO_HELP_NEWSFAST\n@@ -99,37 \u002B99,18 @@ G_M5887_IG03:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M5887_IG12\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M5887_IG05\n-\t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 13.00\n-G_M5887_IG04:\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M5887_IG06\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M5887_IG05:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M5887_IG09\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M5887_IG06:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x38], 0\n-       je       G_M5887_IG13\n\u002B       je       G_M5887_IG10\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -146,16 \u002B127,16 @@ G_M5887_IG06:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M5887_IG08\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M5887_IG07:\n\u002B       je       SHORT G_M5887_IG05\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 39.00\n\u002BG_M5887_IG04:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M5887_IG08:\n\u002BG_M5887_IG05:\n        mov      rax, gword ptr [rbp-0x40]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -198,7 \u002B179,7 @@ G_M5887_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M5887_IG09:\n\u002BG_M5887_IG06:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -254,7 \u002B235,7 @@ G_M5887_IG09:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[System.Nullable\u00601[int]]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M5887_IG10:\n\u002BG_M5887_IG07:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -264,7 \u002B245,7 @@ G_M5887_IG10:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M5887_IG11:\n\u002BG_M5887_IG08:\n        mov      rdi, rsi\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -272,17 \u002B253,17 @@ G_M5887_IG11:\n        mov      rdi, rax\n        jmp      G_M5887_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M5887_IG12:\n\u002BG_M5887_IG09:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M5887_IG13:\n\u002BG_M5887_IG10:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 890, prolog size 29, PerfScore 162.95, instruction count 190, allocated bytes for code 890 (MethodHash=a5a6e900) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateAggregateToCollectionResultCursor[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n\u002B; Total bytes of code 838, prolog size 29, PerfScore 154.95, instruction count 177, allocated bytes for code 838 (MethodHash=a5a6e900) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateAggregateToCollectionResultCursor[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":890,"DiffBytes":838},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateAggregateToCollectionResultCursor[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)","Category":"improvement","Description":"890 -\u003E 838 bytes (-52)","ExtraInfo":null,"Diff":"@@ -9,12 \u002B9,12 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]\u003E\n-;  V01 TypeCtx      [V01,T07] (  5,  4.20)    long  -\u003E  rsi         single-def\n\u002B;  V01 TypeCtx      [V01,T06] (  5,  4.20)    long  -\u003E  rsi         single-def\n ;  V02 arg1         [V02,T14] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V03 arg2         [V03,T08] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V03 arg2         [V03,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V04 arg3         [V04,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V05 loc0         [V05,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.__Canon,System.Numerics.Vector\u00601[float]]\u003E\n-;  V06 loc1         [V06,T26] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V06 loc1         [V06,T24] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V08 tmp1         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.__Canon,System.Numerics.Vector\u00601[float]]\u003E\n ;* V09 tmp2         [V09    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n@@ -25,12 \u002B25,12 @@\n ;  V14 tmp7         [V14,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V15 tmp8         [V15,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]\u003E\n ;  V16 tmp9         [V16,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]]\u003E\n-;  V17 tmp10        [V17,T09] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V18 tmp11        [V18,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V19 tmp12        [V19    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V17 tmp10        [V17,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V18 tmp11        [V18,T09] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp12        [V19    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V20 tmp13        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V21 tmp14        [V21,T25] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V22 tmp15        [V22,T22] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V21 tmp14        [V21,T25] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V22 tmp15        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V23 tmp16        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V24 tmp17        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V25 tmp18        [V25    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -48,14 \u002B48,14 @@\n ;  V37 tmp30        [V37,T18] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V38 tmp31        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V39 tmp32        [V39    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V40 tmp33        [V40,T23] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp34        [V41,T24] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V12.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V42 tmp35        [V42,T27] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V43 tmp36        [V43,T28] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V13.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V40 tmp33        [V40,T22] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp34        [V41,T23] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V12.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V42 tmp35        [V42,T26] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V43 tmp36        [V43,T27] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V13.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V44 tmp37        [V44    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V25.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V45 tmp38        [V45    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V25.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V46 tmp39        [V46,T29] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V34.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp40        [V47,T30] (  2,  2   )    long  -\u003E  rdx         \u0022field V34.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V46 tmp39        [V46,T28] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V34.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V47 tmp40        [V47,T29] (  2,  2   )    long  -\u003E  rdx         \u0022field V34.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V48 tmp41        [V48,T10] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V49 tmp42        [V49,T19] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V50 tmp43        [V50,T20] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -88,7 \u002B88,7 @@ G_M35458_IG02:\n        mov      rdi, qword ptr [rsi\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M35458_IG11\n\u002B       je       G_M35458_IG08\n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.25\n G_M35458_IG03:\n        call     CORINFO_HELP_NEWSFAST\n@@ -99,37 \u002B99,18 @@ G_M35458_IG03:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M35458_IG12\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M35458_IG05\n-\t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 13.00\n-G_M35458_IG04:\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M35458_IG06\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M35458_IG05:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M35458_IG09\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M35458_IG06:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x38], 0\n-       je       G_M35458_IG13\n\u002B       je       G_M35458_IG10\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -146,16 \u002B127,16 @@ G_M35458_IG06:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M35458_IG08\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M35458_IG07:\n\u002B       je       SHORT G_M35458_IG05\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 39.00\n\u002BG_M35458_IG04:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M35458_IG08:\n\u002BG_M35458_IG05:\n        mov      rax, gword ptr [rbp-0x40]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -198,7 \u002B179,7 @@ G_M35458_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M35458_IG09:\n\u002BG_M35458_IG06:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -254,7 \u002B235,7 @@ G_M35458_IG09:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M35458_IG10:\n\u002BG_M35458_IG07:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -264,7 \u002B245,7 @@ G_M35458_IG10:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M35458_IG11:\n\u002BG_M35458_IG08:\n        mov      rdi, rsi\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -272,17 \u002B253,17 @@ G_M35458_IG11:\n        mov      rdi, rax\n        jmp      G_M35458_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M35458_IG12:\n\u002BG_M35458_IG09:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M35458_IG13:\n\u002BG_M35458_IG10:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 890, prolog size 29, PerfScore 162.95, instruction count 190, allocated bytes for code 890 (MethodHash=1309757d) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateAggregateToCollectionResultCursor[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n\u002B; Total bytes of code 838, prolog size 29, PerfScore 154.95, instruction count 177, allocated bytes for code 838 (MethodHash=1309757d) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateAggregateToCollectionResultCursor[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":890,"DiffBytes":838},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateAggregateToCollectionResultCursor[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)","Category":"improvement","Description":"1,082 -\u003E 1,030 bytes (-52)","ExtraInfo":null,"Diff":"@@ -11,10 \u002B11,10 @@\n ;  V00 this         [V00,T03] (  9,  9   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]\u003E\n ;  V01 TypeCtx      [V01,T01] ( 13,  9.16)    long  -\u003E  rbx         single-def\n ;  V02 arg1         [V02,T18] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V03 arg2         [V03,T08] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n\u002B;  V03 arg2         [V03,T07] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n ;  V04 arg3         [V04,T19] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V05 loc0         [V05,T02] ( 11, 11   )     ref  -\u003E  [rbp-0x48]  class-hnd exact spill-single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.__Canon,System.__Canon]\u003E\n-;  V06 loc1         [V06,T35] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V06 loc1         [V06,T33] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V08 tmp1         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.__Canon,System.__Canon]\u003E\n ;* V09 tmp2         [V09    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n@@ -28,13 \u002B28,13 @@\n ;* V17 tmp10        [V17    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;  V18 tmp11        [V18,T06] (  4,  8   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.__Canon]\u003E\n ;* V19 tmp12        [V19    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V20 tmp13        [V20,T09] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.__Canon]\u003E\n\u002B;  V20 tmp13        [V20,T08] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.__Canon]\u003E\n ;* V21 tmp14        [V21    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V22 tmp15        [V22,T07] (  4,  7   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V23 tmp16        [V23    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V22 tmp15        [V22,T09] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V23 tmp16        [V23    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V24 tmp17        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V25 tmp18        [V25,T34] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V26 tmp19        [V26,T31] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V25 tmp18        [V25,T34] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V26 tmp19        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V27 tmp20        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V28 tmp21        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V29 tmp22        [V29    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -52,14 \u002B52,14 @@\n ;  V41 tmp34        [V41,T27] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V42 tmp35        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V43 tmp36        [V43    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V44 tmp37        [V44,T32] (  3,  3   )   ubyte  -\u003E  r12         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp38        [V45,T33] (  3,  2.50)     int  -\u003E  [rbp-0x3C]  spill-single-def \u0022field V13.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V46 tmp39        [V46,T36] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V14.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp40        [V47,T37] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V14.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp37        [V44,T31] (  3,  3   )   ubyte  -\u003E  r12         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp38        [V45,T32] (  3,  2.50)     int  -\u003E  [rbp-0x3C]  spill-single-def \u0022field V13.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V46 tmp39        [V46,T35] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V14.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V47 tmp40        [V47,T36] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V14.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V48 tmp41        [V48    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V29.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V49 tmp42        [V49    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V29.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V50 tmp43        [V50,T38] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V38.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V51 tmp44        [V51,T39] (  2,  2   )    long  -\u003E  rdx         \u0022field V38.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V50 tmp43        [V50,T37] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V38.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V51 tmp44        [V51,T38] (  2,  2   )    long  -\u003E  rdx         \u0022field V38.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V52 tmp45        [V52,T10] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V53 tmp46        [V53,T28] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V54 tmp47        [V54,T29] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -102,7 \u002B102,7 @@ G_M33735_IG02:\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M33735_IG20\n\u002B       je       G_M33735_IG17\n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.25\n G_M33735_IG03:\n        call     CORINFO_HELP_NEWSFAST\n@@ -114,46 \u002B114,27 @@ G_M33735_IG03:\n        lea      rdi, bword ptr [rax\u002B0x20]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r12, gword ptr [r14\u002B0x08]\n-       test     r12, r12\n-       je       G_M33735_IG21\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M33735_IG05\n-\t\t\t\t\t\t;; size=80 bbWeight=1 PerfScore 14.75\n-G_M33735_IG04:\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M33735_IG06\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M33735_IG05:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M33735_IG18\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M33735_IG06:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x38], 0\n-       je       G_M33735_IG22\n\u002B       je       G_M33735_IG19\n        mov      rsi, gword ptr [r15\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r12, rax\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x18]\n        test     rdi, rdi\n-       je       G_M33735_IG16\n-\t\t\t\t\t\t;; size=53 bbWeight=1 PerfScore 15.00\n-G_M33735_IG07:\n\u002B       je       G_M33735_IG13\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=1 PerfScore 28.75\n\u002BG_M33735_IG04:\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x50], rax\n        mov      rdx, gword ptr [r14\u002B0x10]\n@@ -168,9 \u002B149,9 @@ G_M33735_IG07:\n        mov      eax, dword ptr [rdi\u002B0x38]\n        mov      dword ptr [rbp-0x3C], eax\n        test     r12d, r12d\n-       je       SHORT G_M33735_IG09\n\u002B       je       SHORT G_M33735_IG06\n \t\t\t\t\t\t;; size=60 bbWeight=1 PerfScore 19.00\n-G_M33735_IG08:\n\u002BG_M33735_IG05:\n        mov      edi, eax\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n@@ -178,7 \u002B159,7 @@ G_M33735_IG08:\n        call     [rcx]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        mov      eax, dword ptr [rbp-0x3C]\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.50\n-G_M33735_IG09:\n\u002BG_M33735_IG06:\n        mov      rcx, gword ptr [rbp-0x50]\n        mov      byte  ptr [rcx\u002B0x80], r12b\n        mov      dword ptr [rcx\u002B0x84], eax\n@@ -222,7 \u002B203,7 @@ G_M33735_IG09:\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=228 bbWeight=1 PerfScore 52.25\n-G_M33735_IG10:\n\u002BG_M33735_IG07:\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        mov      rsi, rax\n        lea      rdi, bword ptr [r12\u002B0x58]\n@@ -255,9 \u002B236,9 @@ G_M33735_IG10:\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x20]\n        test     rdi, rdi\n-       je       G_M33735_IG17\n\u002B       je       G_M33735_IG14\n \t\t\t\t\t\t;; size=162 bbWeight=1 PerfScore 33.25\n-G_M33735_IG11:\n\u002BG_M33735_IG08:\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n@@ -268,9 \u002B249,9 @@ G_M33735_IG11:\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x28]\n        test     rdi, rdi\n-       je       G_M33735_IG18\n\u002B       je       G_M33735_IG15\n \t\t\t\t\t\t;; size=51 bbWeight=1 PerfScore 9.50\n-G_M33735_IG12:\n\u002BG_M33735_IG09:\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        lea      rdi, bword ptr [r12\u002B0x10]\n@@ -280,14 \u002B261,14 @@ G_M33735_IG12:\n        mov      qword ptr [r12\u002B0x18], rdi\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        cmp      qword ptr [rdi\u002B0x08], 48\n-       jle      G_M33735_IG19\n\u002B       jle      G_M33735_IG16\n \t\t\t\t\t\t;; size=51 bbWeight=1 PerfScore 9.25\n-G_M33735_IG13:\n\u002BG_M33735_IG10:\n        mov      rdi, qword ptr [rdi\u002B0x30]\n        test     rdi, rdi\n-       je       G_M33735_IG19\n\u002B       je       G_M33735_IG16\n \t\t\t\t\t\t;; size=13 bbWeight=0.80 PerfScore 2.60\n-G_M33735_IG14:\n\u002BG_M33735_IG11:\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n        mov      rdi, rbx\n@@ -298,7 \u002B279,7 @@ G_M33735_IG14:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[System.__Canon]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,System.__Canon],System.Func\u00602[System.Threading.CancellationToken,System.__Canon]):this\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=35 bbWeight=1 PerfScore 5.75\n-G_M33735_IG15:\n\u002BG_M33735_IG12:\n        add      rsp, 56\n        pop      rbx\n        pop      r12\n@@ -308,39 \u002B289,39 @@ G_M33735_IG15:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n\u002BG_M33735_IG13:\n\u002B       mov      rdi, rbx\n\u002B       mov      rsi, 0xD1FFAB1E      ; global ptr\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       mov      rdi, rax\n\u002B       jmp      G_M33735_IG04\n\u002B\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n\u002BG_M33735_IG14:\n\u002B       mov      rdi, rbx\n\u002B       mov      rsi, 0xD1FFAB1E      ; global ptr\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       mov      rdi, rax\n\u002B       jmp      G_M33735_IG08\n\u002B\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n\u002BG_M33735_IG15:\n\u002B       mov      rdi, rbx\n\u002B       mov      rsi, 0xD1FFAB1E      ; global ptr\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       mov      rdi, rax\n\u002B       jmp      G_M33735_IG09\n\u002B\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n G_M33735_IG16:\n-       mov      rdi, rbx\n-       mov      rsi, 0xD1FFAB1E      ; global ptr\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       mov      rdi, rax\n-       jmp      G_M33735_IG07\n-\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M33735_IG17:\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n        jmp      G_M33735_IG11\n-\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M33735_IG18:\n-       mov      rdi, rbx\n-       mov      rsi, 0xD1FFAB1E      ; global ptr\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       mov      rdi, rax\n-       jmp      G_M33735_IG12\n-\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M33735_IG19:\n-       mov      rdi, rbx\n-       mov      rsi, 0xD1FFAB1E      ; global ptr\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       mov      rdi, rax\n-       jmp      G_M33735_IG14\n \t\t\t\t\t\t;; size=33 bbWeight=0.36 PerfScore 2.16\n-G_M33735_IG20:\n\u002BG_M33735_IG17:\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -348,17 \u002B329,17 @@ G_M33735_IG20:\n        mov      rdi, rax\n        jmp      G_M33735_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M33735_IG21:\n\u002BG_M33735_IG18:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M33735_IG22:\n\u002BG_M33735_IG19:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1082, prolog size 29, PerfScore 197.56, instruction count 235, allocated bytes for code 1082 (MethodHash=e24a7c38) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateAggregateToCollectionResultCursor[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)\n\u002B; Total bytes of code 1030, prolog size 29, PerfScore 189.56, instruction count 222, allocated bytes for code 1030 (MethodHash=e24a7c38) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateAggregateToCollectionResultCursor[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1082,"DiffBytes":1030},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateAggregateToCollectionResultCursor[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[byte],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)","Category":"improvement","Description":"890 -\u003E 838 bytes (-52)","ExtraInfo":null,"Diff":"@@ -9,12 \u002B9,12 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]\u003E\n-;  V01 TypeCtx      [V01,T07] (  5,  4.20)    long  -\u003E  rsi         single-def\n\u002B;  V01 TypeCtx      [V01,T06] (  5,  4.20)    long  -\u003E  rsi         single-def\n ;  V02 arg1         [V02,T14] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V03 arg2         [V03,T08] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n\u002B;  V03 arg2         [V03,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n ;  V04 arg3         [V04,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V05 loc0         [V05,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.__Canon,byte]\u003E\n-;  V06 loc1         [V06,T26] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V06 loc1         [V06,T24] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V08 tmp1         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.__Canon,byte]\u003E\n ;* V09 tmp2         [V09    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n@@ -25,12 \u002B25,12 @@\n ;  V14 tmp7         [V14,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V15 tmp8         [V15,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[byte]]\u003E\n ;  V16 tmp9         [V16,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[byte]]]\u003E\n-;  V17 tmp10        [V17,T09] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[byte]\u003E\n-;  V18 tmp11        [V18,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V19 tmp12        [V19    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V17 tmp10        [V17,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[byte]\u003E\n\u002B;  V18 tmp11        [V18,T09] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp12        [V19    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V20 tmp13        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V21 tmp14        [V21,T25] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V22 tmp15        [V22,T22] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V21 tmp14        [V21,T25] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V22 tmp15        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V23 tmp16        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V24 tmp17        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V25 tmp18        [V25    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -48,14 \u002B48,14 @@\n ;  V37 tmp30        [V37,T18] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V38 tmp31        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V39 tmp32        [V39    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V40 tmp33        [V40,T23] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp34        [V41,T24] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V12.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V42 tmp35        [V42,T27] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V43 tmp36        [V43,T28] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V13.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V40 tmp33        [V40,T22] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp34        [V41,T23] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V12.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V42 tmp35        [V42,T26] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V43 tmp36        [V43,T27] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V13.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V44 tmp37        [V44    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V25.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V45 tmp38        [V45    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V25.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V46 tmp39        [V46,T29] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V34.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp40        [V47,T30] (  2,  2   )    long  -\u003E  rdx         \u0022field V34.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V46 tmp39        [V46,T28] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V34.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V47 tmp40        [V47,T29] (  2,  2   )    long  -\u003E  rdx         \u0022field V34.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V48 tmp41        [V48,T10] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V49 tmp42        [V49,T19] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V50 tmp43        [V50,T20] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -88,7 \u002B88,7 @@ G_M31179_IG02:\n        mov      rdi, qword ptr [rsi\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M31179_IG11\n\u002B       je       G_M31179_IG08\n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.25\n G_M31179_IG03:\n        call     CORINFO_HELP_NEWSFAST\n@@ -99,37 \u002B99,18 @@ G_M31179_IG03:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M31179_IG12\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M31179_IG05\n-\t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 13.00\n-G_M31179_IG04:\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M31179_IG06\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M31179_IG05:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M31179_IG09\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M31179_IG06:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x38], 0\n-       je       G_M31179_IG13\n\u002B       je       G_M31179_IG10\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -146,16 \u002B127,16 @@ G_M31179_IG06:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M31179_IG08\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M31179_IG07:\n\u002B       je       SHORT G_M31179_IG05\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 39.00\n\u002BG_M31179_IG04:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M31179_IG08:\n\u002BG_M31179_IG05:\n        mov      rax, gword ptr [rbp-0x40]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -198,7 \u002B179,7 @@ G_M31179_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M31179_IG09:\n\u002BG_M31179_IG06:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -254,7 \u002B235,7 @@ G_M31179_IG09:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[byte]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[byte]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[byte]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M31179_IG10:\n\u002BG_M31179_IG07:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -264,7 \u002B245,7 @@ G_M31179_IG10:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M31179_IG11:\n\u002BG_M31179_IG08:\n        mov      rdi, rsi\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -272,17 \u002B253,17 @@ G_M31179_IG11:\n        mov      rdi, rax\n        jmp      G_M31179_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M31179_IG12:\n\u002BG_M31179_IG09:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M31179_IG13:\n\u002BG_M31179_IG10:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 890, prolog size 29, PerfScore 162.95, instruction count 190, allocated bytes for code 890 (MethodHash=01ed8634) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateAggregateToCollectionResultCursor[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[byte],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)\n\u002B; Total bytes of code 838, prolog size 29, PerfScore 154.95, instruction count 177, allocated bytes for code 838 (MethodHash=01ed8634) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateAggregateToCollectionResultCursor[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[byte],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":890,"DiffBytes":838},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateAggregateToCollectionResultCursor[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[double],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)","Category":"improvement","Description":"890 -\u003E 838 bytes (-52)","ExtraInfo":null,"Diff":"@@ -9,12 \u002B9,12 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]\u003E\n-;  V01 TypeCtx      [V01,T07] (  5,  4.20)    long  -\u003E  rsi         single-def\n\u002B;  V01 TypeCtx      [V01,T06] (  5,  4.20)    long  -\u003E  rsi         single-def\n ;  V02 arg1         [V02,T14] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V03 arg2         [V03,T08] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n\u002B;  V03 arg2         [V03,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n ;  V04 arg3         [V04,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V05 loc0         [V05,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.__Canon,double]\u003E\n-;  V06 loc1         [V06,T26] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V06 loc1         [V06,T24] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V08 tmp1         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.__Canon,double]\u003E\n ;* V09 tmp2         [V09    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n@@ -25,12 \u002B25,12 @@\n ;  V14 tmp7         [V14,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V15 tmp8         [V15,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[double]]\u003E\n ;  V16 tmp9         [V16,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[double]]]\u003E\n-;  V17 tmp10        [V17,T09] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[double]\u003E\n-;  V18 tmp11        [V18,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V19 tmp12        [V19    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V17 tmp10        [V17,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[double]\u003E\n\u002B;  V18 tmp11        [V18,T09] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp12        [V19    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V20 tmp13        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V21 tmp14        [V21,T25] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V22 tmp15        [V22,T22] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V21 tmp14        [V21,T25] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V22 tmp15        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V23 tmp16        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V24 tmp17        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V25 tmp18        [V25    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -48,14 \u002B48,14 @@\n ;  V37 tmp30        [V37,T18] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V38 tmp31        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V39 tmp32        [V39    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V40 tmp33        [V40,T23] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp34        [V41,T24] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V12.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V42 tmp35        [V42,T27] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V43 tmp36        [V43,T28] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V13.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V40 tmp33        [V40,T22] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp34        [V41,T23] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V12.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V42 tmp35        [V42,T26] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V43 tmp36        [V43,T27] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V13.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V44 tmp37        [V44    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V25.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V45 tmp38        [V45    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V25.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V46 tmp39        [V46,T29] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V34.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp40        [V47,T30] (  2,  2   )    long  -\u003E  rdx         \u0022field V34.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V46 tmp39        [V46,T28] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V34.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V47 tmp40        [V47,T29] (  2,  2   )    long  -\u003E  rdx         \u0022field V34.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V48 tmp41        [V48,T10] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V49 tmp42        [V49,T19] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V50 tmp43        [V50,T20] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -88,7 \u002B88,7 @@ G_M60404_IG02:\n        mov      rdi, qword ptr [rsi\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M60404_IG11\n\u002B       je       G_M60404_IG08\n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.25\n G_M60404_IG03:\n        call     CORINFO_HELP_NEWSFAST\n@@ -99,37 \u002B99,18 @@ G_M60404_IG03:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M60404_IG12\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M60404_IG05\n-\t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 13.00\n-G_M60404_IG04:\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M60404_IG06\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M60404_IG05:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M60404_IG09\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M60404_IG06:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x38], 0\n-       je       G_M60404_IG13\n\u002B       je       G_M60404_IG10\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -146,16 \u002B127,16 @@ G_M60404_IG06:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M60404_IG08\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M60404_IG07:\n\u002B       je       SHORT G_M60404_IG05\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 39.00\n\u002BG_M60404_IG04:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M60404_IG08:\n\u002BG_M60404_IG05:\n        mov      rax, gword ptr [rbp-0x40]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -198,7 \u002B179,7 @@ G_M60404_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M60404_IG09:\n\u002BG_M60404_IG06:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -254,7 \u002B235,7 @@ G_M60404_IG09:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[double]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[double]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[double]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M60404_IG10:\n\u002BG_M60404_IG07:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -264,7 \u002B245,7 @@ G_M60404_IG10:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M60404_IG11:\n\u002BG_M60404_IG08:\n        mov      rdi, rsi\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -272,17 \u002B253,17 @@ G_M60404_IG11:\n        mov      rdi, rax\n        jmp      G_M60404_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M60404_IG12:\n\u002BG_M60404_IG09:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M60404_IG13:\n\u002BG_M60404_IG10:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 890, prolog size 29, PerfScore 162.95, instruction count 190, allocated bytes for code 890 (MethodHash=7890140b) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateAggregateToCollectionResultCursor[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[double],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)\n\u002B; Total bytes of code 838, prolog size 29, PerfScore 154.95, instruction count 177, allocated bytes for code 838 (MethodHash=7890140b) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateAggregateToCollectionResultCursor[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[double],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":890,"DiffBytes":838},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateAggregateToCollectionResultCursor[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[int],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)","Category":"improvement","Description":"890 -\u003E 838 bytes (-52)","ExtraInfo":null,"Diff":"@@ -9,12 \u002B9,12 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]\u003E\n-;  V01 TypeCtx      [V01,T07] (  5,  4.20)    long  -\u003E  rsi         single-def\n\u002B;  V01 TypeCtx      [V01,T06] (  5,  4.20)    long  -\u003E  rsi         single-def\n ;  V02 arg1         [V02,T14] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V03 arg2         [V03,T08] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n\u002B;  V03 arg2         [V03,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n ;  V04 arg3         [V04,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V05 loc0         [V05,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.__Canon,int]\u003E\n-;  V06 loc1         [V06,T26] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V06 loc1         [V06,T24] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V08 tmp1         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.__Canon,int]\u003E\n ;* V09 tmp2         [V09    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n@@ -25,12 \u002B25,12 @@\n ;  V14 tmp7         [V14,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V15 tmp8         [V15,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[int]]\u003E\n ;  V16 tmp9         [V16,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[int]]]\u003E\n-;  V17 tmp10        [V17,T09] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[int]\u003E\n-;  V18 tmp11        [V18,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V19 tmp12        [V19    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V17 tmp10        [V17,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[int]\u003E\n\u002B;  V18 tmp11        [V18,T09] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp12        [V19    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V20 tmp13        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V21 tmp14        [V21,T25] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V22 tmp15        [V22,T22] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V21 tmp14        [V21,T25] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V22 tmp15        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V23 tmp16        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V24 tmp17        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V25 tmp18        [V25    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -48,14 \u002B48,14 @@\n ;  V37 tmp30        [V37,T18] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V38 tmp31        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V39 tmp32        [V39    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V40 tmp33        [V40,T23] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp34        [V41,T24] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V12.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V42 tmp35        [V42,T27] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V43 tmp36        [V43,T28] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V13.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V40 tmp33        [V40,T22] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp34        [V41,T23] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V12.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V42 tmp35        [V42,T26] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V43 tmp36        [V43,T27] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V13.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V44 tmp37        [V44    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V25.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V45 tmp38        [V45    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V25.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V46 tmp39        [V46,T29] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V34.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp40        [V47,T30] (  2,  2   )    long  -\u003E  rdx         \u0022field V34.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V46 tmp39        [V46,T28] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V34.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V47 tmp40        [V47,T29] (  2,  2   )    long  -\u003E  rdx         \u0022field V34.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V48 tmp41        [V48,T10] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V49 tmp42        [V49,T19] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V50 tmp43        [V50,T20] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -88,7 \u002B88,7 @@ G_M6610_IG02:\n        mov      rdi, qword ptr [rsi\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M6610_IG11\n\u002B       je       G_M6610_IG08\n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.25\n G_M6610_IG03:\n        call     CORINFO_HELP_NEWSFAST\n@@ -99,37 \u002B99,18 @@ G_M6610_IG03:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M6610_IG12\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M6610_IG05\n-\t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 13.00\n-G_M6610_IG04:\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M6610_IG06\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M6610_IG05:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M6610_IG09\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M6610_IG06:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x38], 0\n-       je       G_M6610_IG13\n\u002B       je       G_M6610_IG10\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -146,16 \u002B127,16 @@ G_M6610_IG06:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M6610_IG08\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M6610_IG07:\n\u002B       je       SHORT G_M6610_IG05\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 39.00\n\u002BG_M6610_IG04:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M6610_IG08:\n\u002BG_M6610_IG05:\n        mov      rax, gword ptr [rbp-0x40]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -198,7 \u002B179,7 @@ G_M6610_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M6610_IG09:\n\u002BG_M6610_IG06:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -254,7 \u002B235,7 @@ G_M6610_IG09:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[int]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[int]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[int]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M6610_IG10:\n\u002BG_M6610_IG07:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -264,7 \u002B245,7 @@ G_M6610_IG10:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M6610_IG11:\n\u002BG_M6610_IG08:\n        mov      rdi, rsi\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -272,17 \u002B253,17 @@ G_M6610_IG11:\n        mov      rdi, rax\n        jmp      G_M6610_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M6610_IG12:\n\u002BG_M6610_IG09:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M6610_IG13:\n\u002BG_M6610_IG10:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 890, prolog size 29, PerfScore 162.95, instruction count 190, allocated bytes for code 890 (MethodHash=46bfe62d) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateAggregateToCollectionResultCursor[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[int],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)\n\u002B; Total bytes of code 838, prolog size 29, PerfScore 154.95, instruction count 177, allocated bytes for code 838 (MethodHash=46bfe62d) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateAggregateToCollectionResultCursor[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[int],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":890,"DiffBytes":838},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateAggregateToCollectionResultCursor[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[long],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)","Category":"improvement","Description":"890 -\u003E 838 bytes (-52)","ExtraInfo":null,"Diff":"@@ -9,12 \u002B9,12 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]\u003E\n-;  V01 TypeCtx      [V01,T07] (  5,  4.20)    long  -\u003E  rsi         single-def\n\u002B;  V01 TypeCtx      [V01,T06] (  5,  4.20)    long  -\u003E  rsi         single-def\n ;  V02 arg1         [V02,T14] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V03 arg2         [V03,T08] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n\u002B;  V03 arg2         [V03,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n ;  V04 arg3         [V04,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V05 loc0         [V05,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.__Canon,long]\u003E\n-;  V06 loc1         [V06,T26] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V06 loc1         [V06,T24] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V08 tmp1         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.__Canon,long]\u003E\n ;* V09 tmp2         [V09    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n@@ -25,12 \u002B25,12 @@\n ;  V14 tmp7         [V14,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V15 tmp8         [V15,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[long]]\u003E\n ;  V16 tmp9         [V16,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[long]]]\u003E\n-;  V17 tmp10        [V17,T09] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[long]\u003E\n-;  V18 tmp11        [V18,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V19 tmp12        [V19    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V17 tmp10        [V17,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[long]\u003E\n\u002B;  V18 tmp11        [V18,T09] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp12        [V19    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V20 tmp13        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V21 tmp14        [V21,T25] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V22 tmp15        [V22,T22] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V21 tmp14        [V21,T25] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V22 tmp15        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V23 tmp16        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V24 tmp17        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V25 tmp18        [V25    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -48,14 \u002B48,14 @@\n ;  V37 tmp30        [V37,T18] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V38 tmp31        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V39 tmp32        [V39    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V40 tmp33        [V40,T23] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp34        [V41,T24] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V12.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V42 tmp35        [V42,T27] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V43 tmp36        [V43,T28] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V13.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V40 tmp33        [V40,T22] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp34        [V41,T23] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V12.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V42 tmp35        [V42,T26] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V43 tmp36        [V43,T27] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V13.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V44 tmp37        [V44    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V25.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V45 tmp38        [V45    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V25.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V46 tmp39        [V46,T29] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V34.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp40        [V47,T30] (  2,  2   )    long  -\u003E  rdx         \u0022field V34.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V46 tmp39        [V46,T28] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V34.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V47 tmp40        [V47,T29] (  2,  2   )    long  -\u003E  rdx         \u0022field V34.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V48 tmp41        [V48,T10] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V49 tmp42        [V49,T19] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V50 tmp43        [V50,T20] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -88,7 \u002B88,7 @@ G_M64203_IG02:\n        mov      rdi, qword ptr [rsi\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M64203_IG11\n\u002B       je       G_M64203_IG08\n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.25\n G_M64203_IG03:\n        call     CORINFO_HELP_NEWSFAST\n@@ -99,37 \u002B99,18 @@ G_M64203_IG03:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M64203_IG12\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M64203_IG05\n-\t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 13.00\n-G_M64203_IG04:\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M64203_IG06\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M64203_IG05:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M64203_IG09\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M64203_IG06:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x38], 0\n-       je       G_M64203_IG13\n\u002B       je       G_M64203_IG10\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -146,16 \u002B127,16 @@ G_M64203_IG06:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M64203_IG08\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M64203_IG07:\n\u002B       je       SHORT G_M64203_IG05\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 39.00\n\u002BG_M64203_IG04:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M64203_IG08:\n\u002BG_M64203_IG05:\n        mov      rax, gword ptr [rbp-0x40]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -198,7 \u002B179,7 @@ G_M64203_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M64203_IG09:\n\u002BG_M64203_IG06:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -254,7 \u002B235,7 @@ G_M64203_IG09:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[long]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[long]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[long]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M64203_IG10:\n\u002BG_M64203_IG07:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -264,7 \u002B245,7 @@ G_M64203_IG10:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M64203_IG11:\n\u002BG_M64203_IG08:\n        mov      rdi, rsi\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -272,17 \u002B253,17 @@ G_M64203_IG11:\n        mov      rdi, rax\n        jmp      G_M64203_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M64203_IG12:\n\u002BG_M64203_IG09:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M64203_IG13:\n\u002BG_M64203_IG10:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 890, prolog size 29, PerfScore 162.95, instruction count 190, allocated bytes for code 890 (MethodHash=f0f00534) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateAggregateToCollectionResultCursor[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[long],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)\n\u002B; Total bytes of code 838, prolog size 29, PerfScore 154.95, instruction count 177, allocated bytes for code 838 (MethodHash=f0f00534) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateAggregateToCollectionResultCursor[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[long],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":890,"DiffBytes":838},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateAggregateToCollectionResultCursor[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[short],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)","Category":"improvement","Description":"890 -\u003E 838 bytes (-52)","ExtraInfo":null,"Diff":"@@ -9,12 \u002B9,12 @@\n ; Final local variable assignments\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]\u003E\n-;  V01 TypeCtx      [V01,T07] (  5,  4.20)    long  -\u003E  rsi         single-def\n\u002B;  V01 TypeCtx      [V01,T06] (  5,  4.20)    long  -\u003E  rsi         single-def\n ;  V02 arg1         [V02,T14] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V03 arg2         [V03,T08] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n\u002B;  V03 arg2         [V03,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n ;  V04 arg3         [V04,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V05 loc0         [V05,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.__Canon,short]\u003E\n-;  V06 loc1         [V06,T26] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V06 loc1         [V06,T24] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V08 tmp1         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[System.__Canon,short]\u003E\n ;* V09 tmp2         [V09    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n@@ -25,12 \u002B25,12 @@\n ;  V14 tmp7         [V14,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V15 tmp8         [V15,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[short]]\u003E\n ;  V16 tmp9         [V16,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[short]]]\u003E\n-;  V17 tmp10        [V17,T09] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[short]\u003E\n-;  V18 tmp11        [V18,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V19 tmp12        [V19    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V17 tmp10        [V17,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[short]\u003E\n\u002B;  V18 tmp11        [V18,T09] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp12        [V19    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V20 tmp13        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V21 tmp14        [V21,T25] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V22 tmp15        [V22,T22] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V21 tmp14        [V21,T25] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V22 tmp15        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V23 tmp16        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V24 tmp17        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V25 tmp18        [V25    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -48,14 \u002B48,14 @@\n ;  V37 tmp30        [V37,T18] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V38 tmp31        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V39 tmp32        [V39    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V40 tmp33        [V40,T23] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp34        [V41,T24] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V12.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V42 tmp35        [V42,T27] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V43 tmp36        [V43,T28] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V13.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V40 tmp33        [V40,T22] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V12.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp34        [V41,T23] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V12.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V42 tmp35        [V42,T26] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V43 tmp36        [V43,T27] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V13.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V44 tmp37        [V44    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V25.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V45 tmp38        [V45    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V25.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V46 tmp39        [V46,T29] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V34.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp40        [V47,T30] (  2,  2   )    long  -\u003E  rdx         \u0022field V34.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V46 tmp39        [V46,T28] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V34.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V47 tmp40        [V47,T29] (  2,  2   )    long  -\u003E  rdx         \u0022field V34.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V48 tmp41        [V48,T10] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V49 tmp42        [V49,T19] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V50 tmp43        [V50,T20] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -88,7 \u002B88,7 @@ G_M63987_IG02:\n        mov      rdi, qword ptr [rsi\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M63987_IG11\n\u002B       je       G_M63987_IG08\n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.25\n G_M63987_IG03:\n        call     CORINFO_HELP_NEWSFAST\n@@ -99,37 \u002B99,18 @@ G_M63987_IG03:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M63987_IG12\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M63987_IG05\n-\t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 13.00\n-G_M63987_IG04:\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M63987_IG06\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M63987_IG05:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M63987_IG09\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M63987_IG06:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x38], 0\n-       je       G_M63987_IG13\n\u002B       je       G_M63987_IG10\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -146,16 \u002B127,16 @@ G_M63987_IG06:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M63987_IG08\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M63987_IG07:\n\u002B       je       SHORT G_M63987_IG05\n\u002B\t\t\t\t\t\t;; size=174 bbWeight=1 PerfScore 39.00\n\u002BG_M63987_IG04:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M63987_IG08:\n\u002BG_M63987_IG05:\n        mov      rax, gword ptr [rbp-0x40]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -198,7 \u002B179,7 @@ G_M63987_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M63987_IG09:\n\u002BG_M63987_IG06:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -254,7 \u002B235,7 @@ G_M63987_IG09:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[short]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[short]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[short]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M63987_IG10:\n\u002BG_M63987_IG07:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -264,7 \u002B245,7 @@ G_M63987_IG10:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M63987_IG11:\n\u002BG_M63987_IG08:\n        mov      rdi, rsi\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -272,17 \u002B253,17 @@ G_M63987_IG11:\n        mov      rdi, rax\n        jmp      G_M63987_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M63987_IG12:\n\u002BG_M63987_IG09:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M63987_IG13:\n\u002BG_M63987_IG10:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 890, prolog size 29, PerfScore 162.95, instruction count 190, allocated bytes for code 890 (MethodHash=c444060c) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateAggregateToCollectionResultCursor[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[short],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)\n\u002B; Total bytes of code 838, prolog size 29, PerfScore 154.95, instruction count 177, allocated bytes for code 838 (MethodHash=c444060c) for method MongoDB.Driver.MongoCollectionImpl\u00601[System.__Canon]:CreateAggregateToCollectionResultCursor[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[short],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":890,"DiffBytes":838},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateAggregateToCollectionResultCursor[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[byte]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[byte,System.Nullable\u00601[int]]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[byte,System.Nullable\u00601[int]]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M58355_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M58355_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M58355_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M58355_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M58355_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M58355_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M58355_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M58355_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M58355_IG11\n\u002B       je       G_M58355_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M58355_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M58355_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M58355_IG06:\n\u002B       je       SHORT G_M58355_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M58355_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M58355_IG07:\n\u002BG_M58355_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M58355_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M58355_IG08:\n\u002BG_M58355_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M58355_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[System.Nullable\u00601[int]]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M58355_IG09:\n\u002BG_M58355_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M58355_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M58355_IG10:\n\u002BG_M58355_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M58355_IG11:\n\u002BG_M58355_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=d7881c0c) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateAggregateToCollectionResultCursor[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=d7881c0c) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateAggregateToCollectionResultCursor[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateAggregateToCollectionResultCursor[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[byte]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[byte,System.Numerics.Vector\u00601[float]]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[byte,System.Numerics.Vector\u00601[float]]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M30734_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M30734_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M30734_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M30734_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M30734_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M30734_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M30734_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M30734_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M30734_IG11\n\u002B       je       G_M30734_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M30734_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M30734_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M30734_IG06:\n\u002B       je       SHORT G_M30734_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M30734_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M30734_IG07:\n\u002BG_M30734_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M30734_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M30734_IG08:\n\u002BG_M30734_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M30734_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M30734_IG09:\n\u002BG_M30734_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M30734_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M30734_IG10:\n\u002BG_M30734_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M30734_IG11:\n\u002BG_M30734_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=24c287f1) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateAggregateToCollectionResultCursor[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=24c287f1) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateAggregateToCollectionResultCursor[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateAggregateToCollectionResultCursor[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)","Category":"improvement","Description":"1,082 -\u003E 1,030 bytes (-52)","ExtraInfo":null,"Diff":"@@ -11,10 \u002B11,10 @@\n ;  V00 this         [V00,T03] (  9,  9   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[byte]\u003E\n ;  V01 TypeCtx      [V01,T01] ( 13,  9.16)    long  -\u003E  rbx         single-def\n ;  V02 arg1         [V02,T18] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V03 arg2         [V03,T08] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n\u002B;  V03 arg2         [V03,T07] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n ;  V04 arg3         [V04,T19] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V05 loc0         [V05,T02] ( 11, 11   )     ref  -\u003E  [rbp-0x48]  class-hnd exact spill-single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[byte,System.__Canon]\u003E\n-;  V06 loc1         [V06,T35] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V06 loc1         [V06,T33] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V08 tmp1         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[byte,System.__Canon]\u003E\n ;* V09 tmp2         [V09    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n@@ -28,13 \u002B28,13 @@\n ;* V17 tmp10        [V17    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;  V18 tmp11        [V18,T06] (  4,  8   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.__Canon]\u003E\n ;* V19 tmp12        [V19    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V20 tmp13        [V20,T09] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.__Canon]\u003E\n\u002B;  V20 tmp13        [V20,T08] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.__Canon]\u003E\n ;* V21 tmp14        [V21    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V22 tmp15        [V22,T07] (  4,  7   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V23 tmp16        [V23    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V22 tmp15        [V22,T09] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V23 tmp16        [V23    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V24 tmp17        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V25 tmp18        [V25,T34] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V26 tmp19        [V26,T31] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V25 tmp18        [V25,T34] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V26 tmp19        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V27 tmp20        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V28 tmp21        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V29 tmp22        [V29    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -52,14 \u002B52,14 @@\n ;  V41 tmp34        [V41,T27] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V42 tmp35        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V43 tmp36        [V43    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V44 tmp37        [V44,T32] (  3,  3   )   ubyte  -\u003E  r12         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp38        [V45,T33] (  3,  2.50)     int  -\u003E  [rbp-0x3C]  spill-single-def \u0022field V13.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V46 tmp39        [V46,T36] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V14.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp40        [V47,T37] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V14.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp37        [V44,T31] (  3,  3   )   ubyte  -\u003E  r12         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp38        [V45,T32] (  3,  2.50)     int  -\u003E  [rbp-0x3C]  spill-single-def \u0022field V13.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V46 tmp39        [V46,T35] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V14.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V47 tmp40        [V47,T36] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V14.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V48 tmp41        [V48    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V29.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V49 tmp42        [V49    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V29.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V50 tmp43        [V50,T38] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V38.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V51 tmp44        [V51,T39] (  2,  2   )    long  -\u003E  rdx         \u0022field V38.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V50 tmp43        [V50,T37] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V38.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V51 tmp44        [V51,T38] (  2,  2   )    long  -\u003E  rdx         \u0022field V38.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V52 tmp45        [V52,T10] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V53 tmp46        [V53,T28] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V54 tmp47        [V54,T29] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -102,7 \u002B102,7 @@ G_M7883_IG02:\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M7883_IG20\n\u002B       je       G_M7883_IG17\n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.25\n G_M7883_IG03:\n        call     CORINFO_HELP_NEWSFAST\n@@ -114,46 \u002B114,27 @@ G_M7883_IG03:\n        lea      rdi, bword ptr [rax\u002B0x20]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r12, gword ptr [r14\u002B0x08]\n-       test     r12, r12\n-       je       G_M7883_IG21\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M7883_IG05\n-\t\t\t\t\t\t;; size=80 bbWeight=1 PerfScore 14.75\n-G_M7883_IG04:\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M7883_IG06\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M7883_IG05:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M7883_IG18\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M7883_IG06:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x38], 0\n-       je       G_M7883_IG22\n\u002B       je       G_M7883_IG19\n        mov      rsi, gword ptr [r15\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r12, rax\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x18]\n        test     rdi, rdi\n-       je       G_M7883_IG16\n-\t\t\t\t\t\t;; size=53 bbWeight=1 PerfScore 15.00\n-G_M7883_IG07:\n\u002B       je       G_M7883_IG13\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=1 PerfScore 28.75\n\u002BG_M7883_IG04:\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x50], rax\n        mov      rdx, gword ptr [r14\u002B0x10]\n@@ -168,9 \u002B149,9 @@ G_M7883_IG07:\n        mov      eax, dword ptr [rdi\u002B0x38]\n        mov      dword ptr [rbp-0x3C], eax\n        test     r12d, r12d\n-       je       SHORT G_M7883_IG09\n\u002B       je       SHORT G_M7883_IG06\n \t\t\t\t\t\t;; size=60 bbWeight=1 PerfScore 19.00\n-G_M7883_IG08:\n\u002BG_M7883_IG05:\n        mov      edi, eax\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n@@ -178,7 \u002B159,7 @@ G_M7883_IG08:\n        call     [rcx]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        mov      eax, dword ptr [rbp-0x3C]\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.50\n-G_M7883_IG09:\n\u002BG_M7883_IG06:\n        mov      rcx, gword ptr [rbp-0x50]\n        mov      byte  ptr [rcx\u002B0x80], r12b\n        mov      dword ptr [rcx\u002B0x84], eax\n@@ -222,7 \u002B203,7 @@ G_M7883_IG09:\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=228 bbWeight=1 PerfScore 52.25\n-G_M7883_IG10:\n\u002BG_M7883_IG07:\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        mov      rsi, rax\n        lea      rdi, bword ptr [r12\u002B0x58]\n@@ -255,9 \u002B236,9 @@ G_M7883_IG10:\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x20]\n        test     rdi, rdi\n-       je       G_M7883_IG17\n\u002B       je       G_M7883_IG14\n \t\t\t\t\t\t;; size=162 bbWeight=1 PerfScore 33.25\n-G_M7883_IG11:\n\u002BG_M7883_IG08:\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n@@ -268,9 \u002B249,9 @@ G_M7883_IG11:\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x28]\n        test     rdi, rdi\n-       je       G_M7883_IG18\n\u002B       je       G_M7883_IG15\n \t\t\t\t\t\t;; size=51 bbWeight=1 PerfScore 9.50\n-G_M7883_IG12:\n\u002BG_M7883_IG09:\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        lea      rdi, bword ptr [r12\u002B0x10]\n@@ -280,14 \u002B261,14 @@ G_M7883_IG12:\n        mov      qword ptr [r12\u002B0x18], rdi\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        cmp      qword ptr [rdi\u002B0x08], 48\n-       jle      G_M7883_IG19\n\u002B       jle      G_M7883_IG16\n \t\t\t\t\t\t;; size=51 bbWeight=1 PerfScore 9.25\n-G_M7883_IG13:\n\u002BG_M7883_IG10:\n        mov      rdi, qword ptr [rdi\u002B0x30]\n        test     rdi, rdi\n-       je       G_M7883_IG19\n\u002B       je       G_M7883_IG16\n \t\t\t\t\t\t;; size=13 bbWeight=0.80 PerfScore 2.60\n-G_M7883_IG14:\n\u002BG_M7883_IG11:\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n        mov      rdi, rbx\n@@ -298,7 \u002B279,7 @@ G_M7883_IG14:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[System.__Canon]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,System.__Canon],System.Func\u00602[System.Threading.CancellationToken,System.__Canon]):this\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=35 bbWeight=1 PerfScore 5.75\n-G_M7883_IG15:\n\u002BG_M7883_IG12:\n        add      rsp, 56\n        pop      rbx\n        pop      r12\n@@ -308,39 \u002B289,39 @@ G_M7883_IG15:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n\u002BG_M7883_IG13:\n\u002B       mov      rdi, rbx\n\u002B       mov      rsi, 0xD1FFAB1E      ; global ptr\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       mov      rdi, rax\n\u002B       jmp      G_M7883_IG04\n\u002B\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n\u002BG_M7883_IG14:\n\u002B       mov      rdi, rbx\n\u002B       mov      rsi, 0xD1FFAB1E      ; global ptr\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       mov      rdi, rax\n\u002B       jmp      G_M7883_IG08\n\u002B\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n\u002BG_M7883_IG15:\n\u002B       mov      rdi, rbx\n\u002B       mov      rsi, 0xD1FFAB1E      ; global ptr\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       mov      rdi, rax\n\u002B       jmp      G_M7883_IG09\n\u002B\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n G_M7883_IG16:\n-       mov      rdi, rbx\n-       mov      rsi, 0xD1FFAB1E      ; global ptr\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       mov      rdi, rax\n-       jmp      G_M7883_IG07\n-\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M7883_IG17:\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n        jmp      G_M7883_IG11\n-\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M7883_IG18:\n-       mov      rdi, rbx\n-       mov      rsi, 0xD1FFAB1E      ; global ptr\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       mov      rdi, rax\n-       jmp      G_M7883_IG12\n-\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M7883_IG19:\n-       mov      rdi, rbx\n-       mov      rsi, 0xD1FFAB1E      ; global ptr\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       mov      rdi, rax\n-       jmp      G_M7883_IG14\n \t\t\t\t\t\t;; size=33 bbWeight=0.36 PerfScore 2.16\n-G_M7883_IG20:\n\u002BG_M7883_IG17:\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -348,17 \u002B329,17 @@ G_M7883_IG20:\n        mov      rdi, rax\n        jmp      G_M7883_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M7883_IG21:\n\u002BG_M7883_IG18:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M7883_IG22:\n\u002BG_M7883_IG19:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1082, prolog size 29, PerfScore 197.56, instruction count 235, allocated bytes for code 1082 (MethodHash=c4abe134) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateAggregateToCollectionResultCursor[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)\n\u002B; Total bytes of code 1030, prolog size 29, PerfScore 189.56, instruction count 222, allocated bytes for code 1030 (MethodHash=c4abe134) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateAggregateToCollectionResultCursor[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1082,"DiffBytes":1030},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateAggregateToCollectionResultCursor[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[byte],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[byte]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[byte,byte]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[byte,byte]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[byte]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[byte]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[byte]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[byte]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M6343_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M6343_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M6343_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M6343_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M6343_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M6343_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M6343_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M6343_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M6343_IG11\n\u002B       je       G_M6343_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M6343_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M6343_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M6343_IG06:\n\u002B       je       SHORT G_M6343_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M6343_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M6343_IG07:\n\u002BG_M6343_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M6343_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M6343_IG08:\n\u002BG_M6343_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M6343_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[byte]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[byte]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[byte]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M6343_IG09:\n\u002BG_M6343_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M6343_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M6343_IG10:\n\u002BG_M6343_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M6343_IG11:\n\u002BG_M6343_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=0015e738) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateAggregateToCollectionResultCursor[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[byte],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=0015e738) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateAggregateToCollectionResultCursor[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[byte],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateAggregateToCollectionResultCursor[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[double],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[byte]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[byte,double]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[byte,double]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[double]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[double]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[double]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[double]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M43000_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M43000_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M43000_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M43000_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M43000_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M43000_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M43000_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M43000_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M43000_IG11\n\u002B       je       G_M43000_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M43000_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M43000_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M43000_IG06:\n\u002B       je       SHORT G_M43000_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M43000_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M43000_IG07:\n\u002BG_M43000_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M43000_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M43000_IG08:\n\u002BG_M43000_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M43000_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[double]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[double]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[double]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M43000_IG09:\n\u002BG_M43000_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M43000_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M43000_IG10:\n\u002BG_M43000_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M43000_IG11:\n\u002BG_M43000_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=15b25807) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateAggregateToCollectionResultCursor[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[double],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=15b25807) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateAggregateToCollectionResultCursor[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[double],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateAggregateToCollectionResultCursor[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[int],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[byte]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[byte,int]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[byte,int]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[int]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[int]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[int]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[int]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M61022_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M61022_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M61022_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M61022_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M61022_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M61022_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M61022_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M61022_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M61022_IG11\n\u002B       je       G_M61022_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M61022_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M61022_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M61022_IG06:\n\u002B       je       SHORT G_M61022_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M61022_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M61022_IG07:\n\u002BG_M61022_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M61022_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M61022_IG08:\n\u002BG_M61022_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M61022_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[int]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[int]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[int]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M61022_IG09:\n\u002BG_M61022_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M61022_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M61022_IG10:\n\u002BG_M61022_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M61022_IG11:\n\u002BG_M61022_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=346611a1) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateAggregateToCollectionResultCursor[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[int],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=346611a1) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateAggregateToCollectionResultCursor[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[int],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateAggregateToCollectionResultCursor[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[long],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[byte]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[byte,long]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[byte,long]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[long]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[long]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[long]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[long]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M56007_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M56007_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M56007_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M56007_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M56007_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M56007_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M56007_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M56007_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M56007_IG11\n\u002B       je       G_M56007_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M56007_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M56007_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M56007_IG06:\n\u002B       je       SHORT G_M56007_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M56007_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M56007_IG07:\n\u002BG_M56007_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M56007_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M56007_IG08:\n\u002BG_M56007_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M56007_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[long]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[long]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[long]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M56007_IG09:\n\u002BG_M56007_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M56007_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M56007_IG10:\n\u002BG_M56007_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M56007_IG11:\n\u002BG_M56007_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=87902538) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateAggregateToCollectionResultCursor[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[long],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=87902538) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateAggregateToCollectionResultCursor[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[long],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateAggregateToCollectionResultCursor[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[short],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[byte]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[byte,short]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[byte,short]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[short]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[short]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[short]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[short]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M32895_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M32895_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M32895_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M32895_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M32895_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M32895_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M32895_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M32895_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M32895_IG11\n\u002B       je       G_M32895_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M32895_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M32895_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M32895_IG06:\n\u002B       je       SHORT G_M32895_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M32895_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M32895_IG07:\n\u002BG_M32895_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M32895_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M32895_IG08:\n\u002BG_M32895_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M32895_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[short]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[short]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[short]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M32895_IG09:\n\u002BG_M32895_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M32895_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M32895_IG10:\n\u002BG_M32895_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M32895_IG11:\n\u002BG_M32895_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=acd57f80) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateAggregateToCollectionResultCursor[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[short],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=acd57f80) for method MongoDB.Driver.MongoCollectionImpl\u00601[byte]:CreateAggregateToCollectionResultCursor[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[short],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateAggregateToCollectionResultCursor[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[double]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[double,System.Nullable\u00601[int]]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[double,System.Nullable\u00601[int]]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M3052_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M3052_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M3052_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M3052_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M3052_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M3052_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M3052_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M3052_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M3052_IG11\n\u002B       je       G_M3052_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M3052_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M3052_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M3052_IG06:\n\u002B       je       SHORT G_M3052_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M3052_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M3052_IG07:\n\u002BG_M3052_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M3052_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M3052_IG08:\n\u002BG_M3052_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M3052_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[System.Nullable\u00601[int]]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M3052_IG09:\n\u002BG_M3052_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M3052_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M3052_IG10:\n\u002BG_M3052_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M3052_IG11:\n\u002BG_M3052_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=a042f413) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateAggregateToCollectionResultCursor[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=a042f413) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateAggregateToCollectionResultCursor[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateAggregateToCollectionResultCursor[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[double]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[double,System.Numerics.Vector\u00601[float]]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[double,System.Numerics.Vector\u00601[float]]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M18609_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M18609_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M18609_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M18609_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M18609_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M18609_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M18609_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M18609_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M18609_IG11\n\u002B       je       G_M18609_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M18609_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M18609_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M18609_IG06:\n\u002B       je       SHORT G_M18609_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M18609_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M18609_IG07:\n\u002BG_M18609_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M18609_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M18609_IG08:\n\u002BG_M18609_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M18609_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M18609_IG09:\n\u002BG_M18609_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M18609_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M18609_IG10:\n\u002BG_M18609_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M18609_IG11:\n\u002BG_M18609_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=049eb74e) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateAggregateToCollectionResultCursor[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=049eb74e) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateAggregateToCollectionResultCursor[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateAggregateToCollectionResultCursor[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)","Category":"improvement","Description":"1,082 -\u003E 1,030 bytes (-52)","ExtraInfo":null,"Diff":"@@ -11,10 \u002B11,10 @@\n ;  V00 this         [V00,T03] (  9,  9   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[double]\u003E\n ;  V01 TypeCtx      [V01,T01] ( 13,  9.16)    long  -\u003E  rbx         single-def\n ;  V02 arg1         [V02,T18] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V03 arg2         [V03,T08] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n\u002B;  V03 arg2         [V03,T07] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n ;  V04 arg3         [V04,T19] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V05 loc0         [V05,T02] ( 11, 11   )     ref  -\u003E  [rbp-0x48]  class-hnd exact spill-single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[double,System.__Canon]\u003E\n-;  V06 loc1         [V06,T35] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V06 loc1         [V06,T33] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V08 tmp1         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[double,System.__Canon]\u003E\n ;* V09 tmp2         [V09    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n@@ -28,13 \u002B28,13 @@\n ;* V17 tmp10        [V17    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;  V18 tmp11        [V18,T06] (  4,  8   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.__Canon]\u003E\n ;* V19 tmp12        [V19    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V20 tmp13        [V20,T09] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.__Canon]\u003E\n\u002B;  V20 tmp13        [V20,T08] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.__Canon]\u003E\n ;* V21 tmp14        [V21    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V22 tmp15        [V22,T07] (  4,  7   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V23 tmp16        [V23    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V22 tmp15        [V22,T09] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V23 tmp16        [V23    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V24 tmp17        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V25 tmp18        [V25,T34] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V26 tmp19        [V26,T31] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V25 tmp18        [V25,T34] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V26 tmp19        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V27 tmp20        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V28 tmp21        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V29 tmp22        [V29    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -52,14 \u002B52,14 @@\n ;  V41 tmp34        [V41,T27] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V42 tmp35        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V43 tmp36        [V43    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V44 tmp37        [V44,T32] (  3,  3   )   ubyte  -\u003E  r12         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp38        [V45,T33] (  3,  2.50)     int  -\u003E  [rbp-0x3C]  spill-single-def \u0022field V13.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V46 tmp39        [V46,T36] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V14.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp40        [V47,T37] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V14.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp37        [V44,T31] (  3,  3   )   ubyte  -\u003E  r12         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp38        [V45,T32] (  3,  2.50)     int  -\u003E  [rbp-0x3C]  spill-single-def \u0022field V13.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V46 tmp39        [V46,T35] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V14.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V47 tmp40        [V47,T36] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V14.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V48 tmp41        [V48    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V29.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V49 tmp42        [V49    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V29.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V50 tmp43        [V50,T38] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V38.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V51 tmp44        [V51,T39] (  2,  2   )    long  -\u003E  rdx         \u0022field V38.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V50 tmp43        [V50,T37] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V38.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V51 tmp44        [V51,T38] (  2,  2   )    long  -\u003E  rdx         \u0022field V38.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V52 tmp45        [V52,T10] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V53 tmp46        [V53,T28] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V54 tmp47        [V54,T29] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -102,7 \u002B102,7 @@ G_M24020_IG02:\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M24020_IG20\n\u002B       je       G_M24020_IG17\n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.25\n G_M24020_IG03:\n        call     CORINFO_HELP_NEWSFAST\n@@ -114,46 \u002B114,27 @@ G_M24020_IG03:\n        lea      rdi, bword ptr [rax\u002B0x20]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r12, gword ptr [r14\u002B0x08]\n-       test     r12, r12\n-       je       G_M24020_IG21\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M24020_IG05\n-\t\t\t\t\t\t;; size=80 bbWeight=1 PerfScore 14.75\n-G_M24020_IG04:\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M24020_IG06\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M24020_IG05:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M24020_IG18\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M24020_IG06:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x38], 0\n-       je       G_M24020_IG22\n\u002B       je       G_M24020_IG19\n        mov      rsi, gword ptr [r15\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r12, rax\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x18]\n        test     rdi, rdi\n-       je       G_M24020_IG16\n-\t\t\t\t\t\t;; size=53 bbWeight=1 PerfScore 15.00\n-G_M24020_IG07:\n\u002B       je       G_M24020_IG13\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=1 PerfScore 28.75\n\u002BG_M24020_IG04:\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x50], rax\n        mov      rdx, gword ptr [r14\u002B0x10]\n@@ -168,9 \u002B149,9 @@ G_M24020_IG07:\n        mov      eax, dword ptr [rdi\u002B0x38]\n        mov      dword ptr [rbp-0x3C], eax\n        test     r12d, r12d\n-       je       SHORT G_M24020_IG09\n\u002B       je       SHORT G_M24020_IG06\n \t\t\t\t\t\t;; size=60 bbWeight=1 PerfScore 19.00\n-G_M24020_IG08:\n\u002BG_M24020_IG05:\n        mov      edi, eax\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n@@ -178,7 \u002B159,7 @@ G_M24020_IG08:\n        call     [rcx]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        mov      eax, dword ptr [rbp-0x3C]\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.50\n-G_M24020_IG09:\n\u002BG_M24020_IG06:\n        mov      rcx, gword ptr [rbp-0x50]\n        mov      byte  ptr [rcx\u002B0x80], r12b\n        mov      dword ptr [rcx\u002B0x84], eax\n@@ -222,7 \u002B203,7 @@ G_M24020_IG09:\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=228 bbWeight=1 PerfScore 52.25\n-G_M24020_IG10:\n\u002BG_M24020_IG07:\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        mov      rsi, rax\n        lea      rdi, bword ptr [r12\u002B0x58]\n@@ -255,9 \u002B236,9 @@ G_M24020_IG10:\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x20]\n        test     rdi, rdi\n-       je       G_M24020_IG17\n\u002B       je       G_M24020_IG14\n \t\t\t\t\t\t;; size=162 bbWeight=1 PerfScore 33.25\n-G_M24020_IG11:\n\u002BG_M24020_IG08:\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n@@ -268,9 \u002B249,9 @@ G_M24020_IG11:\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x28]\n        test     rdi, rdi\n-       je       G_M24020_IG18\n\u002B       je       G_M24020_IG15\n \t\t\t\t\t\t;; size=51 bbWeight=1 PerfScore 9.50\n-G_M24020_IG12:\n\u002BG_M24020_IG09:\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        lea      rdi, bword ptr [r12\u002B0x10]\n@@ -280,14 \u002B261,14 @@ G_M24020_IG12:\n        mov      qword ptr [r12\u002B0x18], rdi\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        cmp      qword ptr [rdi\u002B0x08], 48\n-       jle      G_M24020_IG19\n\u002B       jle      G_M24020_IG16\n \t\t\t\t\t\t;; size=51 bbWeight=1 PerfScore 9.25\n-G_M24020_IG13:\n\u002BG_M24020_IG10:\n        mov      rdi, qword ptr [rdi\u002B0x30]\n        test     rdi, rdi\n-       je       G_M24020_IG19\n\u002B       je       G_M24020_IG16\n \t\t\t\t\t\t;; size=13 bbWeight=0.80 PerfScore 2.60\n-G_M24020_IG14:\n\u002BG_M24020_IG11:\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n        mov      rdi, rbx\n@@ -298,7 \u002B279,7 @@ G_M24020_IG14:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[System.__Canon]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,System.__Canon],System.Func\u00602[System.Threading.CancellationToken,System.__Canon]):this\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=35 bbWeight=1 PerfScore 5.75\n-G_M24020_IG15:\n\u002BG_M24020_IG12:\n        add      rsp, 56\n        pop      rbx\n        pop      r12\n@@ -308,39 \u002B289,39 @@ G_M24020_IG15:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n\u002BG_M24020_IG13:\n\u002B       mov      rdi, rbx\n\u002B       mov      rsi, 0xD1FFAB1E      ; global ptr\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       mov      rdi, rax\n\u002B       jmp      G_M24020_IG04\n\u002B\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n\u002BG_M24020_IG14:\n\u002B       mov      rdi, rbx\n\u002B       mov      rsi, 0xD1FFAB1E      ; global ptr\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       mov      rdi, rax\n\u002B       jmp      G_M24020_IG08\n\u002B\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n\u002BG_M24020_IG15:\n\u002B       mov      rdi, rbx\n\u002B       mov      rsi, 0xD1FFAB1E      ; global ptr\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       mov      rdi, rax\n\u002B       jmp      G_M24020_IG09\n\u002B\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n G_M24020_IG16:\n-       mov      rdi, rbx\n-       mov      rsi, 0xD1FFAB1E      ; global ptr\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       mov      rdi, rax\n-       jmp      G_M24020_IG07\n-\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M24020_IG17:\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n        jmp      G_M24020_IG11\n-\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M24020_IG18:\n-       mov      rdi, rbx\n-       mov      rsi, 0xD1FFAB1E      ; global ptr\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       mov      rdi, rax\n-       jmp      G_M24020_IG12\n-\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M24020_IG19:\n-       mov      rdi, rbx\n-       mov      rsi, 0xD1FFAB1E      ; global ptr\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       mov      rdi, rax\n-       jmp      G_M24020_IG14\n \t\t\t\t\t\t;; size=33 bbWeight=0.36 PerfScore 2.16\n-G_M24020_IG20:\n\u002BG_M24020_IG17:\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -348,17 \u002B329,17 @@ G_M24020_IG20:\n        mov      rdi, rax\n        jmp      G_M24020_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M24020_IG21:\n\u002BG_M24020_IG18:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M24020_IG22:\n\u002BG_M24020_IG19:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1082, prolog size 29, PerfScore 197.56, instruction count 235, allocated bytes for code 1082 (MethodHash=de20a22b) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateAggregateToCollectionResultCursor[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)\n\u002B; Total bytes of code 1030, prolog size 29, PerfScore 189.56, instruction count 222, allocated bytes for code 1030 (MethodHash=de20a22b) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateAggregateToCollectionResultCursor[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1082,"DiffBytes":1030},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateAggregateToCollectionResultCursor[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[byte],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[double]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[double,byte]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[double,byte]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[byte]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[byte]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[byte]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[byte]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M11224_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M11224_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M11224_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M11224_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M11224_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M11224_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M11224_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M11224_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M11224_IG11\n\u002B       je       G_M11224_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M11224_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M11224_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M11224_IG06:\n\u002B       je       SHORT G_M11224_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M11224_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M11224_IG07:\n\u002BG_M11224_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M11224_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M11224_IG08:\n\u002BG_M11224_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M11224_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[byte]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[byte]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[byte]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M11224_IG09:\n\u002BG_M11224_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M11224_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M11224_IG10:\n\u002BG_M11224_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M11224_IG11:\n\u002BG_M11224_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=fcb2d427) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateAggregateToCollectionResultCursor[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[byte],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=fcb2d427) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateAggregateToCollectionResultCursor[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[byte],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateAggregateToCollectionResultCursor[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[double],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[double]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[double,double]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[double,double]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[double]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[double]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[double]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[double]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M43303_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M43303_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M43303_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M43303_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M43303_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M43303_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M43303_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M43303_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M43303_IG11\n\u002B       je       G_M43303_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M43303_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M43303_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M43303_IG06:\n\u002B       je       SHORT G_M43303_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M43303_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M43303_IG07:\n\u002BG_M43303_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M43303_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M43303_IG08:\n\u002BG_M43303_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M43303_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[double]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[double]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[double]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M43303_IG09:\n\u002BG_M43303_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M43303_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M43303_IG10:\n\u002BG_M43303_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M43303_IG11:\n\u002BG_M43303_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=8c6a56d8) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateAggregateToCollectionResultCursor[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[double],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=8c6a56d8) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateAggregateToCollectionResultCursor[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[double],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateAggregateToCollectionResultCursor[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[int],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[double]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[double,int]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[double,int]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[int]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[int]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[int]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[int]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M49633_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M49633_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M49633_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M49633_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M49633_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M49633_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M49633_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M49633_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M49633_IG11\n\u002B       je       G_M49633_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M49633_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M49633_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M49633_IG06:\n\u002B       je       SHORT G_M49633_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M49633_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M49633_IG07:\n\u002BG_M49633_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M49633_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M49633_IG08:\n\u002BG_M49633_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M49633_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[int]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[int]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[int]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M49633_IG09:\n\u002BG_M49633_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M49633_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M49633_IG10:\n\u002BG_M49633_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M49633_IG11:\n\u002BG_M49633_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=8e083e1e) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateAggregateToCollectionResultCursor[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[int],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=8e083e1e) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateAggregateToCollectionResultCursor[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[int],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateAggregateToCollectionResultCursor[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[long],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[double]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[double,long]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[double,long]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[long]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[long]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[long]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[long]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M27352_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M27352_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M27352_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M27352_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M27352_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M27352_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M27352_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M27352_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M27352_IG11\n\u002B       je       G_M27352_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M27352_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M27352_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M27352_IG06:\n\u002B       je       SHORT G_M27352_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M27352_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M27352_IG07:\n\u002BG_M27352_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M27352_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M27352_IG08:\n\u002BG_M27352_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M27352_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[long]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[long]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[long]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M27352_IG09:\n\u002BG_M27352_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M27352_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M27352_IG10:\n\u002BG_M27352_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M27352_IG11:\n\u002BG_M27352_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=b85b9527) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateAggregateToCollectionResultCursor[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[long],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=b85b9527) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateAggregateToCollectionResultCursor[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[long],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateAggregateToCollectionResultCursor[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[short],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[double]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[double,short]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[double,short]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[short]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[short]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[short]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[short]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M34752_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M34752_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M34752_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M34752_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M34752_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M34752_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M34752_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M34752_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M34752_IG11\n\u002B       je       G_M34752_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M34752_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M34752_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M34752_IG06:\n\u002B       je       SHORT G_M34752_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M34752_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M34752_IG07:\n\u002BG_M34752_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M34752_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M34752_IG08:\n\u002BG_M34752_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M34752_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[short]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[short]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[short]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M34752_IG09:\n\u002BG_M34752_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M34752_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M34752_IG10:\n\u002BG_M34752_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M34752_IG11:\n\u002BG_M34752_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=1d24783f) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateAggregateToCollectionResultCursor[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[short],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=1d24783f) for method MongoDB.Driver.MongoCollectionImpl\u00601[double]:CreateAggregateToCollectionResultCursor[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[short],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateAggregateToCollectionResultCursor[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[int]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[int,System.Nullable\u00601[int]]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[int,System.Nullable\u00601[int]]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M24266_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M24266_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M24266_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M24266_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M24266_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M24266_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M24266_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M24266_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M24266_IG11\n\u002B       je       G_M24266_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M24266_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M24266_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M24266_IG06:\n\u002B       je       SHORT G_M24266_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M24266_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M24266_IG07:\n\u002BG_M24266_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M24266_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M24266_IG08:\n\u002BG_M24266_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M24266_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[System.Nullable\u00601[int]]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M24266_IG09:\n\u002BG_M24266_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M24266_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M24266_IG10:\n\u002BG_M24266_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M24266_IG11:\n\u002BG_M24266_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=c15da135) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateAggregateToCollectionResultCursor[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=c15da135) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateAggregateToCollectionResultCursor[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateAggregateToCollectionResultCursor[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[int]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[int,System.Numerics.Vector\u00601[float]]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[int,System.Numerics.Vector\u00601[float]]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M64855_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M64855_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M64855_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M64855_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M64855_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M64855_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M64855_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M64855_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M64855_IG11\n\u002B       je       G_M64855_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M64855_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M64855_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M64855_IG06:\n\u002B       je       SHORT G_M64855_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M64855_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M64855_IG07:\n\u002BG_M64855_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M64855_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M64855_IG08:\n\u002BG_M64855_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M64855_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M64855_IG09:\n\u002BG_M64855_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M64855_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M64855_IG10:\n\u002BG_M64855_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M64855_IG11:\n\u002BG_M64855_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=646e02a8) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateAggregateToCollectionResultCursor[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=646e02a8) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateAggregateToCollectionResultCursor[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateAggregateToCollectionResultCursor[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)","Category":"improvement","Description":"1,082 -\u003E 1,030 bytes (-52)","ExtraInfo":null,"Diff":"@@ -11,10 \u002B11,10 @@\n ;  V00 this         [V00,T03] (  9,  9   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[int]\u003E\n ;  V01 TypeCtx      [V01,T01] ( 13,  9.16)    long  -\u003E  rbx         single-def\n ;  V02 arg1         [V02,T18] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V03 arg2         [V03,T08] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n\u002B;  V03 arg2         [V03,T07] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n ;  V04 arg3         [V04,T19] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V05 loc0         [V05,T02] ( 11, 11   )     ref  -\u003E  [rbp-0x48]  class-hnd exact spill-single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[int,System.__Canon]\u003E\n-;  V06 loc1         [V06,T35] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V06 loc1         [V06,T33] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V08 tmp1         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[int,System.__Canon]\u003E\n ;* V09 tmp2         [V09    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n@@ -28,13 \u002B28,13 @@\n ;* V17 tmp10        [V17    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;  V18 tmp11        [V18,T06] (  4,  8   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.__Canon]\u003E\n ;* V19 tmp12        [V19    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V20 tmp13        [V20,T09] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.__Canon]\u003E\n\u002B;  V20 tmp13        [V20,T08] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.__Canon]\u003E\n ;* V21 tmp14        [V21    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V22 tmp15        [V22,T07] (  4,  7   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V23 tmp16        [V23    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V22 tmp15        [V22,T09] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V23 tmp16        [V23    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V24 tmp17        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V25 tmp18        [V25,T34] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V26 tmp19        [V26,T31] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V25 tmp18        [V25,T34] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V26 tmp19        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V27 tmp20        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V28 tmp21        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V29 tmp22        [V29    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -52,14 \u002B52,14 @@\n ;  V41 tmp34        [V41,T27] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V42 tmp35        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V43 tmp36        [V43    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V44 tmp37        [V44,T32] (  3,  3   )   ubyte  -\u003E  r12         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp38        [V45,T33] (  3,  2.50)     int  -\u003E  [rbp-0x3C]  spill-single-def \u0022field V13.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V46 tmp39        [V46,T36] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V14.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp40        [V47,T37] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V14.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp37        [V44,T31] (  3,  3   )   ubyte  -\u003E  r12         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp38        [V45,T32] (  3,  2.50)     int  -\u003E  [rbp-0x3C]  spill-single-def \u0022field V13.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V46 tmp39        [V46,T35] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V14.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V47 tmp40        [V47,T36] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V14.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V48 tmp41        [V48    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V29.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V49 tmp42        [V49    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V29.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V50 tmp43        [V50,T38] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V38.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V51 tmp44        [V51,T39] (  2,  2   )    long  -\u003E  rdx         \u0022field V38.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V50 tmp43        [V50,T37] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V38.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V51 tmp44        [V51,T38] (  2,  2   )    long  -\u003E  rdx         \u0022field V38.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V52 tmp45        [V52,T10] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V53 tmp46        [V53,T28] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V54 tmp47        [V54,T29] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -102,7 \u002B102,7 @@ G_M25522_IG02:\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M25522_IG20\n\u002B       je       G_M25522_IG17\n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.25\n G_M25522_IG03:\n        call     CORINFO_HELP_NEWSFAST\n@@ -114,46 \u002B114,27 @@ G_M25522_IG03:\n        lea      rdi, bword ptr [rax\u002B0x20]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r12, gword ptr [r14\u002B0x08]\n-       test     r12, r12\n-       je       G_M25522_IG21\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M25522_IG05\n-\t\t\t\t\t\t;; size=80 bbWeight=1 PerfScore 14.75\n-G_M25522_IG04:\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M25522_IG06\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M25522_IG05:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M25522_IG18\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M25522_IG06:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x38], 0\n-       je       G_M25522_IG22\n\u002B       je       G_M25522_IG19\n        mov      rsi, gword ptr [r15\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r12, rax\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x18]\n        test     rdi, rdi\n-       je       G_M25522_IG16\n-\t\t\t\t\t\t;; size=53 bbWeight=1 PerfScore 15.00\n-G_M25522_IG07:\n\u002B       je       G_M25522_IG13\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=1 PerfScore 28.75\n\u002BG_M25522_IG04:\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x50], rax\n        mov      rdx, gword ptr [r14\u002B0x10]\n@@ -168,9 \u002B149,9 @@ G_M25522_IG07:\n        mov      eax, dword ptr [rdi\u002B0x38]\n        mov      dword ptr [rbp-0x3C], eax\n        test     r12d, r12d\n-       je       SHORT G_M25522_IG09\n\u002B       je       SHORT G_M25522_IG06\n \t\t\t\t\t\t;; size=60 bbWeight=1 PerfScore 19.00\n-G_M25522_IG08:\n\u002BG_M25522_IG05:\n        mov      edi, eax\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n@@ -178,7 \u002B159,7 @@ G_M25522_IG08:\n        call     [rcx]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        mov      eax, dword ptr [rbp-0x3C]\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.50\n-G_M25522_IG09:\n\u002BG_M25522_IG06:\n        mov      rcx, gword ptr [rbp-0x50]\n        mov      byte  ptr [rcx\u002B0x80], r12b\n        mov      dword ptr [rcx\u002B0x84], eax\n@@ -222,7 \u002B203,7 @@ G_M25522_IG09:\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=228 bbWeight=1 PerfScore 52.25\n-G_M25522_IG10:\n\u002BG_M25522_IG07:\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        mov      rsi, rax\n        lea      rdi, bword ptr [r12\u002B0x58]\n@@ -255,9 \u002B236,9 @@ G_M25522_IG10:\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x20]\n        test     rdi, rdi\n-       je       G_M25522_IG17\n\u002B       je       G_M25522_IG14\n \t\t\t\t\t\t;; size=162 bbWeight=1 PerfScore 33.25\n-G_M25522_IG11:\n\u002BG_M25522_IG08:\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n@@ -268,9 \u002B249,9 @@ G_M25522_IG11:\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x28]\n        test     rdi, rdi\n-       je       G_M25522_IG18\n\u002B       je       G_M25522_IG15\n \t\t\t\t\t\t;; size=51 bbWeight=1 PerfScore 9.50\n-G_M25522_IG12:\n\u002BG_M25522_IG09:\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        lea      rdi, bword ptr [r12\u002B0x10]\n@@ -280,14 \u002B261,14 @@ G_M25522_IG12:\n        mov      qword ptr [r12\u002B0x18], rdi\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        cmp      qword ptr [rdi\u002B0x08], 48\n-       jle      G_M25522_IG19\n\u002B       jle      G_M25522_IG16\n \t\t\t\t\t\t;; size=51 bbWeight=1 PerfScore 9.25\n-G_M25522_IG13:\n\u002BG_M25522_IG10:\n        mov      rdi, qword ptr [rdi\u002B0x30]\n        test     rdi, rdi\n-       je       G_M25522_IG19\n\u002B       je       G_M25522_IG16\n \t\t\t\t\t\t;; size=13 bbWeight=0.80 PerfScore 2.60\n-G_M25522_IG14:\n\u002BG_M25522_IG11:\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n        mov      rdi, rbx\n@@ -298,7 \u002B279,7 @@ G_M25522_IG14:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[System.__Canon]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,System.__Canon],System.Func\u00602[System.Threading.CancellationToken,System.__Canon]):this\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=35 bbWeight=1 PerfScore 5.75\n-G_M25522_IG15:\n\u002BG_M25522_IG12:\n        add      rsp, 56\n        pop      rbx\n        pop      r12\n@@ -308,39 \u002B289,39 @@ G_M25522_IG15:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n\u002BG_M25522_IG13:\n\u002B       mov      rdi, rbx\n\u002B       mov      rsi, 0xD1FFAB1E      ; global ptr\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       mov      rdi, rax\n\u002B       jmp      G_M25522_IG04\n\u002B\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n\u002BG_M25522_IG14:\n\u002B       mov      rdi, rbx\n\u002B       mov      rsi, 0xD1FFAB1E      ; global ptr\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       mov      rdi, rax\n\u002B       jmp      G_M25522_IG08\n\u002B\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n\u002BG_M25522_IG15:\n\u002B       mov      rdi, rbx\n\u002B       mov      rsi, 0xD1FFAB1E      ; global ptr\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       mov      rdi, rax\n\u002B       jmp      G_M25522_IG09\n\u002B\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n G_M25522_IG16:\n-       mov      rdi, rbx\n-       mov      rsi, 0xD1FFAB1E      ; global ptr\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       mov      rdi, rax\n-       jmp      G_M25522_IG07\n-\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M25522_IG17:\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n        jmp      G_M25522_IG11\n-\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M25522_IG18:\n-       mov      rdi, rbx\n-       mov      rsi, 0xD1FFAB1E      ; global ptr\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       mov      rdi, rax\n-       jmp      G_M25522_IG12\n-\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M25522_IG19:\n-       mov      rdi, rbx\n-       mov      rsi, 0xD1FFAB1E      ; global ptr\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       mov      rdi, rax\n-       jmp      G_M25522_IG14\n \t\t\t\t\t\t;; size=33 bbWeight=0.36 PerfScore 2.16\n-G_M25522_IG20:\n\u002BG_M25522_IG17:\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -348,17 \u002B329,17 @@ G_M25522_IG20:\n        mov      rdi, rax\n        jmp      G_M25522_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M25522_IG21:\n\u002BG_M25522_IG18:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M25522_IG22:\n\u002BG_M25522_IG19:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1082, prolog size 29, PerfScore 197.56, instruction count 235, allocated bytes for code 1082 (MethodHash=12e09c4d) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateAggregateToCollectionResultCursor[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)\n\u002B; Total bytes of code 1030, prolog size 29, PerfScore 189.56, instruction count 222, allocated bytes for code 1030 (MethodHash=12e09c4d) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateAggregateToCollectionResultCursor[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1082,"DiffBytes":1030},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateAggregateToCollectionResultCursor[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[byte],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[int]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[int,byte]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[int,byte]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[byte]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[byte]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[byte]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[byte]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M32062_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M32062_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M32062_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M32062_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M32062_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M32062_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M32062_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M32062_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M32062_IG11\n\u002B       je       G_M32062_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M32062_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M32062_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M32062_IG06:\n\u002B       je       SHORT G_M32062_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M32062_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M32062_IG07:\n\u002BG_M32062_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M32062_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M32062_IG08:\n\u002BG_M32062_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M32062_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[byte]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[byte]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[byte]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M32062_IG09:\n\u002BG_M32062_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M32062_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M32062_IG10:\n\u002BG_M32062_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M32062_IG11:\n\u002BG_M32062_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=9c3382c1) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateAggregateToCollectionResultCursor[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[byte],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=9c3382c1) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateAggregateToCollectionResultCursor[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[byte],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateAggregateToCollectionResultCursor[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[double],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[int]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[int,double]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[int,double]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[double]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[double]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[double]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[double]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M7041_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M7041_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M7041_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M7041_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M7041_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M7041_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M7041_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M7041_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M7041_IG11\n\u002B       je       G_M7041_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M7041_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M7041_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M7041_IG06:\n\u002B       je       SHORT G_M7041_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M7041_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M7041_IG07:\n\u002BG_M7041_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M7041_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M7041_IG08:\n\u002BG_M7041_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M7041_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[double]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[double]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[double]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M7041_IG09:\n\u002BG_M7041_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M7041_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M7041_IG10:\n\u002BG_M7041_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M7041_IG11:\n\u002BG_M7041_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=9657e47e) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateAggregateToCollectionResultCursor[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[double],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=9657e47e) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateAggregateToCollectionResultCursor[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[double],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateAggregateToCollectionResultCursor[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[int],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[int]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[int,int]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[int,int]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[int]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[int]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[int]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[int]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M62663_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M62663_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M62663_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M62663_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M62663_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M62663_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M62663_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M62663_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M62663_IG11\n\u002B       je       G_M62663_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M62663_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M62663_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M62663_IG06:\n\u002B       je       SHORT G_M62663_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M62663_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M62663_IG07:\n\u002BG_M62663_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M62663_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M62663_IG08:\n\u002BG_M62663_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M62663_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[int]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[int]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[int]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M62663_IG09:\n\u002BG_M62663_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M62663_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M62663_IG10:\n\u002BG_M62663_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M62663_IG11:\n\u002BG_M62663_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=8dd30b38) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateAggregateToCollectionResultCursor[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[int],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=8dd30b38) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateAggregateToCollectionResultCursor[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[int],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateAggregateToCollectionResultCursor[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[long],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[int]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[int,long]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[int,long]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[long]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[long]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[long]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[long]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M14654_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M14654_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M14654_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M14654_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M14654_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M14654_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M14654_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M14654_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M14654_IG11\n\u002B       je       G_M14654_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M14654_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M14654_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M14654_IG06:\n\u002B       je       SHORT G_M14654_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M14654_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M14654_IG07:\n\u002BG_M14654_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M14654_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M14654_IG08:\n\u002BG_M14654_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M14654_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[long]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[long]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[long]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M14654_IG09:\n\u002BG_M14654_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M14654_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M14654_IG10:\n\u002BG_M14654_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M14654_IG11:\n\u002BG_M14654_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=1f0dc6c1) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateAggregateToCollectionResultCursor[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[long],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=1f0dc6c1) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateAggregateToCollectionResultCursor[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[long],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateAggregateToCollectionResultCursor[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[short],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[int]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[int,short]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[int,short]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[short]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[short]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[short]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[short]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M44454_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M44454_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M44454_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M44454_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M44454_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M44454_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M44454_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M44454_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M44454_IG11\n\u002B       je       G_M44454_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M44454_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M44454_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M44454_IG06:\n\u002B       je       SHORT G_M44454_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M44454_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M44454_IG07:\n\u002BG_M44454_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M44454_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M44454_IG08:\n\u002BG_M44454_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M44454_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[short]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[short]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[short]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M44454_IG09:\n\u002BG_M44454_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M44454_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M44454_IG10:\n\u002BG_M44454_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M44454_IG11:\n\u002BG_M44454_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=d36f5259) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateAggregateToCollectionResultCursor[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[short],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=d36f5259) for method MongoDB.Driver.MongoCollectionImpl\u00601[int]:CreateAggregateToCollectionResultCursor[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[short],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateAggregateToCollectionResultCursor[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[long]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[long,System.Nullable\u00601[int]]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[long,System.Nullable\u00601[int]]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M17139_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M17139_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M17139_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M17139_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M17139_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M17139_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M17139_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M17139_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M17139_IG11\n\u002B       je       G_M17139_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M17139_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M17139_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M17139_IG06:\n\u002B       je       SHORT G_M17139_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M17139_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M17139_IG07:\n\u002BG_M17139_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M17139_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M17139_IG08:\n\u002BG_M17139_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M17139_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[System.Nullable\u00601[int]]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M17139_IG09:\n\u002BG_M17139_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M17139_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M17139_IG10:\n\u002BG_M17139_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M17139_IG11:\n\u002BG_M17139_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=13abbd0c) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateAggregateToCollectionResultCursor[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=13abbd0c) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateAggregateToCollectionResultCursor[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateAggregateToCollectionResultCursor[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[long]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[long,System.Numerics.Vector\u00601[float]]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[long,System.Numerics.Vector\u00601[float]]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M30478_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M30478_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M30478_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M30478_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M30478_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M30478_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M30478_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M30478_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M30478_IG11\n\u002B       je       G_M30478_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M30478_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M30478_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M30478_IG06:\n\u002B       je       SHORT G_M30478_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M30478_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M30478_IG07:\n\u002BG_M30478_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M30478_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M30478_IG08:\n\u002BG_M30478_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M30478_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M30478_IG09:\n\u002BG_M30478_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M30478_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M30478_IG10:\n\u002BG_M30478_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M30478_IG11:\n\u002BG_M30478_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=e6a188f1) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateAggregateToCollectionResultCursor[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=e6a188f1) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateAggregateToCollectionResultCursor[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateAggregateToCollectionResultCursor[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)","Category":"improvement","Description":"1,082 -\u003E 1,030 bytes (-52)","ExtraInfo":null,"Diff":"@@ -11,10 \u002B11,10 @@\n ;  V00 this         [V00,T03] (  9,  9   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[long]\u003E\n ;  V01 TypeCtx      [V01,T01] ( 13,  9.16)    long  -\u003E  rbx         single-def\n ;  V02 arg1         [V02,T18] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V03 arg2         [V03,T08] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n\u002B;  V03 arg2         [V03,T07] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n ;  V04 arg3         [V04,T19] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V05 loc0         [V05,T02] ( 11, 11   )     ref  -\u003E  [rbp-0x48]  class-hnd exact spill-single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[long,System.__Canon]\u003E\n-;  V06 loc1         [V06,T35] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V06 loc1         [V06,T33] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V08 tmp1         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[long,System.__Canon]\u003E\n ;* V09 tmp2         [V09    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n@@ -28,13 \u002B28,13 @@\n ;* V17 tmp10        [V17    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;  V18 tmp11        [V18,T06] (  4,  8   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.__Canon]\u003E\n ;* V19 tmp12        [V19    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V20 tmp13        [V20,T09] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.__Canon]\u003E\n\u002B;  V20 tmp13        [V20,T08] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.__Canon]\u003E\n ;* V21 tmp14        [V21    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V22 tmp15        [V22,T07] (  4,  7   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V23 tmp16        [V23    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V22 tmp15        [V22,T09] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V23 tmp16        [V23    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V24 tmp17        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V25 tmp18        [V25,T34] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V26 tmp19        [V26,T31] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V25 tmp18        [V25,T34] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V26 tmp19        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V27 tmp20        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V28 tmp21        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V29 tmp22        [V29    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -52,14 \u002B52,14 @@\n ;  V41 tmp34        [V41,T27] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V42 tmp35        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V43 tmp36        [V43    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V44 tmp37        [V44,T32] (  3,  3   )   ubyte  -\u003E  r12         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp38        [V45,T33] (  3,  2.50)     int  -\u003E  [rbp-0x3C]  spill-single-def \u0022field V13.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V46 tmp39        [V46,T36] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V14.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp40        [V47,T37] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V14.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp37        [V44,T31] (  3,  3   )   ubyte  -\u003E  r12         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp38        [V45,T32] (  3,  2.50)     int  -\u003E  [rbp-0x3C]  spill-single-def \u0022field V13.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V46 tmp39        [V46,T35] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V14.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V47 tmp40        [V47,T36] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V14.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V48 tmp41        [V48    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V29.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V49 tmp42        [V49    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V29.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V50 tmp43        [V50,T38] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V38.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V51 tmp44        [V51,T39] (  2,  2   )    long  -\u003E  rdx         \u0022field V38.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V50 tmp43        [V50,T37] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V38.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V51 tmp44        [V51,T38] (  2,  2   )    long  -\u003E  rdx         \u0022field V38.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V52 tmp45        [V52,T10] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V53 tmp46        [V53,T28] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V54 tmp47        [V54,T29] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -102,7 \u002B102,7 @@ G_M32203_IG02:\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M32203_IG20\n\u002B       je       G_M32203_IG17\n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.25\n G_M32203_IG03:\n        call     CORINFO_HELP_NEWSFAST\n@@ -114,46 \u002B114,27 @@ G_M32203_IG03:\n        lea      rdi, bword ptr [rax\u002B0x20]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r12, gword ptr [r14\u002B0x08]\n-       test     r12, r12\n-       je       G_M32203_IG21\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M32203_IG05\n-\t\t\t\t\t\t;; size=80 bbWeight=1 PerfScore 14.75\n-G_M32203_IG04:\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M32203_IG06\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M32203_IG05:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M32203_IG18\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M32203_IG06:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x38], 0\n-       je       G_M32203_IG22\n\u002B       je       G_M32203_IG19\n        mov      rsi, gword ptr [r15\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r12, rax\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x18]\n        test     rdi, rdi\n-       je       G_M32203_IG16\n-\t\t\t\t\t\t;; size=53 bbWeight=1 PerfScore 15.00\n-G_M32203_IG07:\n\u002B       je       G_M32203_IG13\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=1 PerfScore 28.75\n\u002BG_M32203_IG04:\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x50], rax\n        mov      rdx, gword ptr [r14\u002B0x10]\n@@ -168,9 \u002B149,9 @@ G_M32203_IG07:\n        mov      eax, dword ptr [rdi\u002B0x38]\n        mov      dword ptr [rbp-0x3C], eax\n        test     r12d, r12d\n-       je       SHORT G_M32203_IG09\n\u002B       je       SHORT G_M32203_IG06\n \t\t\t\t\t\t;; size=60 bbWeight=1 PerfScore 19.00\n-G_M32203_IG08:\n\u002BG_M32203_IG05:\n        mov      edi, eax\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n@@ -178,7 \u002B159,7 @@ G_M32203_IG08:\n        call     [rcx]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        mov      eax, dword ptr [rbp-0x3C]\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.50\n-G_M32203_IG09:\n\u002BG_M32203_IG06:\n        mov      rcx, gword ptr [rbp-0x50]\n        mov      byte  ptr [rcx\u002B0x80], r12b\n        mov      dword ptr [rcx\u002B0x84], eax\n@@ -222,7 \u002B203,7 @@ G_M32203_IG09:\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=228 bbWeight=1 PerfScore 52.25\n-G_M32203_IG10:\n\u002BG_M32203_IG07:\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        mov      rsi, rax\n        lea      rdi, bword ptr [r12\u002B0x58]\n@@ -255,9 \u002B236,9 @@ G_M32203_IG10:\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x20]\n        test     rdi, rdi\n-       je       G_M32203_IG17\n\u002B       je       G_M32203_IG14\n \t\t\t\t\t\t;; size=162 bbWeight=1 PerfScore 33.25\n-G_M32203_IG11:\n\u002BG_M32203_IG08:\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n@@ -268,9 \u002B249,9 @@ G_M32203_IG11:\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x28]\n        test     rdi, rdi\n-       je       G_M32203_IG18\n\u002B       je       G_M32203_IG15\n \t\t\t\t\t\t;; size=51 bbWeight=1 PerfScore 9.50\n-G_M32203_IG12:\n\u002BG_M32203_IG09:\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        lea      rdi, bword ptr [r12\u002B0x10]\n@@ -280,14 \u002B261,14 @@ G_M32203_IG12:\n        mov      qword ptr [r12\u002B0x18], rdi\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        cmp      qword ptr [rdi\u002B0x08], 48\n-       jle      G_M32203_IG19\n\u002B       jle      G_M32203_IG16\n \t\t\t\t\t\t;; size=51 bbWeight=1 PerfScore 9.25\n-G_M32203_IG13:\n\u002BG_M32203_IG10:\n        mov      rdi, qword ptr [rdi\u002B0x30]\n        test     rdi, rdi\n-       je       G_M32203_IG19\n\u002B       je       G_M32203_IG16\n \t\t\t\t\t\t;; size=13 bbWeight=0.80 PerfScore 2.60\n-G_M32203_IG14:\n\u002BG_M32203_IG11:\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n        mov      rdi, rbx\n@@ -298,7 \u002B279,7 @@ G_M32203_IG14:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[System.__Canon]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,System.__Canon],System.Func\u00602[System.Threading.CancellationToken,System.__Canon]):this\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=35 bbWeight=1 PerfScore 5.75\n-G_M32203_IG15:\n\u002BG_M32203_IG12:\n        add      rsp, 56\n        pop      rbx\n        pop      r12\n@@ -308,39 \u002B289,39 @@ G_M32203_IG15:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n\u002BG_M32203_IG13:\n\u002B       mov      rdi, rbx\n\u002B       mov      rsi, 0xD1FFAB1E      ; global ptr\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       mov      rdi, rax\n\u002B       jmp      G_M32203_IG04\n\u002B\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n\u002BG_M32203_IG14:\n\u002B       mov      rdi, rbx\n\u002B       mov      rsi, 0xD1FFAB1E      ; global ptr\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       mov      rdi, rax\n\u002B       jmp      G_M32203_IG08\n\u002B\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n\u002BG_M32203_IG15:\n\u002B       mov      rdi, rbx\n\u002B       mov      rsi, 0xD1FFAB1E      ; global ptr\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       mov      rdi, rax\n\u002B       jmp      G_M32203_IG09\n\u002B\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n G_M32203_IG16:\n-       mov      rdi, rbx\n-       mov      rsi, 0xD1FFAB1E      ; global ptr\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       mov      rdi, rax\n-       jmp      G_M32203_IG07\n-\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M32203_IG17:\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n        jmp      G_M32203_IG11\n-\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M32203_IG18:\n-       mov      rdi, rbx\n-       mov      rsi, 0xD1FFAB1E      ; global ptr\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       mov      rdi, rax\n-       jmp      G_M32203_IG12\n-\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M32203_IG19:\n-       mov      rdi, rbx\n-       mov      rsi, 0xD1FFAB1E      ; global ptr\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       mov      rdi, rax\n-       jmp      G_M32203_IG14\n \t\t\t\t\t\t;; size=33 bbWeight=0.36 PerfScore 2.16\n-G_M32203_IG20:\n\u002BG_M32203_IG17:\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -348,17 \u002B329,17 @@ G_M32203_IG20:\n        mov      rdi, rax\n        jmp      G_M32203_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M32203_IG21:\n\u002BG_M32203_IG18:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M32203_IG22:\n\u002BG_M32203_IG19:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1082, prolog size 29, PerfScore 197.56, instruction count 235, allocated bytes for code 1082 (MethodHash=e49c8234) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateAggregateToCollectionResultCursor[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)\n\u002B; Total bytes of code 1030, prolog size 29, PerfScore 189.56, instruction count 222, allocated bytes for code 1030 (MethodHash=e49c8234) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateAggregateToCollectionResultCursor[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1082,"DiffBytes":1030},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateAggregateToCollectionResultCursor[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[byte],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[long]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[long,byte]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[long,byte]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[byte]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[byte]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[byte]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[byte]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M14279_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M14279_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M14279_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M14279_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M14279_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M14279_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M14279_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M14279_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M14279_IG11\n\u002B       je       G_M14279_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M14279_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M14279_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M14279_IG06:\n\u002B       je       SHORT G_M14279_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M14279_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M14279_IG07:\n\u002BG_M14279_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M14279_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M14279_IG08:\n\u002BG_M14279_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M14279_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[byte]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[byte]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[byte]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M14279_IG09:\n\u002BG_M14279_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M14279_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M14279_IG10:\n\u002BG_M14279_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M14279_IG11:\n\u002BG_M14279_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=7b6ec838) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateAggregateToCollectionResultCursor[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[byte],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=7b6ec838) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateAggregateToCollectionResultCursor[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[byte],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateAggregateToCollectionResultCursor[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[double],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[long]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[long,double]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[long,double]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[double]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[double]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[double]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[double]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M1784_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M1784_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M1784_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M1784_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M1784_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M1784_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M1784_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M1784_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M1784_IG11\n\u002B       je       G_M1784_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M1784_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M1784_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M1784_IG06:\n\u002B       je       SHORT G_M1784_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M1784_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M1784_IG07:\n\u002BG_M1784_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M1784_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M1784_IG08:\n\u002BG_M1784_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M1784_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[double]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[double]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[double]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M1784_IG09:\n\u002BG_M1784_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M1784_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M1784_IG10:\n\u002BG_M1784_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M1784_IG11:\n\u002BG_M1784_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=a26ff907) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateAggregateToCollectionResultCursor[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[double],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=a26ff907) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateAggregateToCollectionResultCursor[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[double],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateAggregateToCollectionResultCursor[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[int],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[long]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[long,int]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[long,int]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[int]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[int]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[int]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[int]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M27998_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M27998_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M27998_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M27998_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M27998_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M27998_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M27998_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M27998_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M27998_IG11\n\u002B       je       G_M27998_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M27998_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M27998_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M27998_IG06:\n\u002B       je       SHORT G_M27998_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M27998_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M27998_IG07:\n\u002BG_M27998_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M27998_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M27998_IG08:\n\u002BG_M27998_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M27998_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[int]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[int]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[int]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M27998_IG09:\n\u002BG_M27998_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M27998_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M27998_IG10:\n\u002BG_M27998_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M27998_IG11:\n\u002BG_M27998_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=4e8292a1) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateAggregateToCollectionResultCursor[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[int],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=4e8292a1) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateAggregateToCollectionResultCursor[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[int],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateAggregateToCollectionResultCursor[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[long],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[long]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[long,long]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[long,long]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[long]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[long]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[long]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[long]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M63943_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M63943_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M63943_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M63943_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M63943_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M63943_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M63943_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M63943_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M63943_IG11\n\u002B       je       G_M63943_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M63943_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M63943_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M63943_IG06:\n\u002B       je       SHORT G_M63943_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M63943_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M63943_IG07:\n\u002BG_M63943_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M63943_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M63943_IG08:\n\u002BG_M63943_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M63943_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[long]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[long]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[long]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M63943_IG09:\n\u002BG_M63943_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M63943_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M63943_IG10:\n\u002BG_M63943_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M63943_IG11:\n\u002BG_M63943_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=02e90638) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateAggregateToCollectionResultCursor[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[long],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=02e90638) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateAggregateToCollectionResultCursor[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[long],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateAggregateToCollectionResultCursor[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[short],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[long]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[long,short]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[long,short]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[short]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[short]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[short]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[short]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M16255_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M16255_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M16255_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M16255_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M16255_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M16255_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M16255_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M16255_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M16255_IG11\n\u002B       je       G_M16255_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M16255_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M16255_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M16255_IG06:\n\u002B       je       SHORT G_M16255_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M16255_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M16255_IG07:\n\u002BG_M16255_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M16255_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M16255_IG08:\n\u002BG_M16255_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M16255_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[short]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[short]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[short]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M16255_IG09:\n\u002BG_M16255_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M16255_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M16255_IG10:\n\u002BG_M16255_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M16255_IG11:\n\u002BG_M16255_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=048ec080) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateAggregateToCollectionResultCursor[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[short],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=048ec080) for method MongoDB.Driver.MongoCollectionImpl\u00601[long]:CreateAggregateToCollectionResultCursor[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[short],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateAggregateToCollectionResultCursor[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[short]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[short,System.Nullable\u00601[int]]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[short,System.Nullable\u00601[int]]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M23403_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M23403_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M23403_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M23403_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M23403_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M23403_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M23403_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M23403_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M23403_IG11\n\u002B       je       G_M23403_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M23403_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M23403_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M23403_IG06:\n\u002B       je       SHORT G_M23403_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M23403_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M23403_IG07:\n\u002BG_M23403_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M23403_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M23403_IG08:\n\u002BG_M23403_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M23403_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[System.Nullable\u00601[int]]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M23403_IG09:\n\u002BG_M23403_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M23403_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M23403_IG10:\n\u002BG_M23403_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M23403_IG11:\n\u002BG_M23403_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=348fa494) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateAggregateToCollectionResultCursor[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=348fa494) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateAggregateToCollectionResultCursor[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateAggregateToCollectionResultCursor[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[short]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[short,System.Numerics.Vector\u00601[float]]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[short,System.Numerics.Vector\u00601[float]]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M20118_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M20118_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M20118_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M20118_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M20118_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M20118_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M20118_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M20118_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M20118_IG11\n\u002B       je       G_M20118_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M20118_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M20118_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M20118_IG06:\n\u002B       je       SHORT G_M20118_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M20118_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M20118_IG07:\n\u002BG_M20118_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M20118_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M20118_IG08:\n\u002BG_M20118_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M20118_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M20118_IG09:\n\u002BG_M20118_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M20118_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M20118_IG10:\n\u002BG_M20118_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M20118_IG11:\n\u002BG_M20118_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=0d9bb169) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateAggregateToCollectionResultCursor[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=0d9bb169) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateAggregateToCollectionResultCursor[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateAggregateToCollectionResultCursor[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)","Category":"improvement","Description":"1,082 -\u003E 1,030 bytes (-52)","ExtraInfo":null,"Diff":"@@ -11,10 \u002B11,10 @@\n ;  V00 this         [V00,T03] (  9,  9   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[short]\u003E\n ;  V01 TypeCtx      [V01,T01] ( 13,  9.16)    long  -\u003E  rbx         single-def\n ;  V02 arg1         [V02,T18] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V03 arg2         [V03,T08] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n\u002B;  V03 arg2         [V03,T07] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n ;  V04 arg3         [V04,T19] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V05 loc0         [V05,T02] ( 11, 11   )     ref  -\u003E  [rbp-0x48]  class-hnd exact spill-single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[short,System.__Canon]\u003E\n-;  V06 loc1         [V06,T35] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V06 loc1         [V06,T33] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V08 tmp1         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[short,System.__Canon]\u003E\n ;* V09 tmp2         [V09    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n@@ -28,13 \u002B28,13 @@\n ;* V17 tmp10        [V17    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;  V18 tmp11        [V18,T06] (  4,  8   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.__Canon]\u003E\n ;* V19 tmp12        [V19    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V20 tmp13        [V20,T09] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.__Canon]\u003E\n\u002B;  V20 tmp13        [V20,T08] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.__Canon]\u003E\n ;* V21 tmp14        [V21    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V22 tmp15        [V22,T07] (  4,  7   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V23 tmp16        [V23    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V22 tmp15        [V22,T09] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V23 tmp16        [V23    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V24 tmp17        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V25 tmp18        [V25,T34] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V26 tmp19        [V26,T31] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V25 tmp18        [V25,T34] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V26 tmp19        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V27 tmp20        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V28 tmp21        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V29 tmp22        [V29    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -52,14 \u002B52,14 @@\n ;  V41 tmp34        [V41,T27] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V42 tmp35        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V43 tmp36        [V43    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V44 tmp37        [V44,T32] (  3,  3   )   ubyte  -\u003E  r12         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp38        [V45,T33] (  3,  2.50)     int  -\u003E  [rbp-0x3C]  spill-single-def \u0022field V13.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V46 tmp39        [V46,T36] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V14.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V47 tmp40        [V47,T37] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V14.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp37        [V44,T31] (  3,  3   )   ubyte  -\u003E  r12         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp38        [V45,T32] (  3,  2.50)     int  -\u003E  [rbp-0x3C]  spill-single-def \u0022field V13.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V46 tmp39        [V46,T35] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V14.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V47 tmp40        [V47,T36] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V14.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V48 tmp41        [V48    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V29.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V49 tmp42        [V49    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V29.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V50 tmp43        [V50,T38] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V38.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V51 tmp44        [V51,T39] (  2,  2   )    long  -\u003E  rdx         \u0022field V38.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V50 tmp43        [V50,T37] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V38.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V51 tmp44        [V51,T38] (  2,  2   )    long  -\u003E  rdx         \u0022field V38.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V52 tmp45        [V52,T10] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V53 tmp46        [V53,T28] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V54 tmp47        [V54,T29] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -102,7 \u002B102,7 @@ G_M1619_IG02:\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M1619_IG20\n\u002B       je       G_M1619_IG17\n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.25\n G_M1619_IG03:\n        call     CORINFO_HELP_NEWSFAST\n@@ -114,46 \u002B114,27 @@ G_M1619_IG03:\n        lea      rdi, bword ptr [rax\u002B0x20]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r12, gword ptr [r14\u002B0x08]\n-       test     r12, r12\n-       je       G_M1619_IG21\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M1619_IG05\n-\t\t\t\t\t\t;; size=80 bbWeight=1 PerfScore 14.75\n-G_M1619_IG04:\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M1619_IG06\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M1619_IG05:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M1619_IG18\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M1619_IG06:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x38], 0\n-       je       G_M1619_IG22\n\u002B       je       G_M1619_IG19\n        mov      rsi, gword ptr [r15\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r12, rax\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x18]\n        test     rdi, rdi\n-       je       G_M1619_IG16\n-\t\t\t\t\t\t;; size=53 bbWeight=1 PerfScore 15.00\n-G_M1619_IG07:\n\u002B       je       G_M1619_IG13\n\u002B\t\t\t\t\t\t;; size=129 bbWeight=1 PerfScore 28.75\n\u002BG_M1619_IG04:\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x50], rax\n        mov      rdx, gword ptr [r14\u002B0x10]\n@@ -168,9 \u002B149,9 @@ G_M1619_IG07:\n        mov      eax, dword ptr [rdi\u002B0x38]\n        mov      dword ptr [rbp-0x3C], eax\n        test     r12d, r12d\n-       je       SHORT G_M1619_IG09\n\u002B       je       SHORT G_M1619_IG06\n \t\t\t\t\t\t;; size=60 bbWeight=1 PerfScore 19.00\n-G_M1619_IG08:\n\u002BG_M1619_IG05:\n        mov      edi, eax\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n@@ -178,7 \u002B159,7 @@ G_M1619_IG08:\n        call     [rcx]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        mov      eax, dword ptr [rbp-0x3C]\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.50\n-G_M1619_IG09:\n\u002BG_M1619_IG06:\n        mov      rcx, gword ptr [rbp-0x50]\n        mov      byte  ptr [rcx\u002B0x80], r12b\n        mov      dword ptr [rcx\u002B0x84], eax\n@@ -222,7 \u002B203,7 @@ G_M1619_IG09:\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=228 bbWeight=1 PerfScore 52.25\n-G_M1619_IG10:\n\u002BG_M1619_IG07:\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        mov      rsi, rax\n        lea      rdi, bword ptr [r12\u002B0x58]\n@@ -255,9 \u002B236,9 @@ G_M1619_IG10:\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x20]\n        test     rdi, rdi\n-       je       G_M1619_IG17\n\u002B       je       G_M1619_IG14\n \t\t\t\t\t\t;; size=162 bbWeight=1 PerfScore 33.25\n-G_M1619_IG11:\n\u002BG_M1619_IG08:\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n@@ -268,9 \u002B249,9 @@ G_M1619_IG11:\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x28]\n        test     rdi, rdi\n-       je       G_M1619_IG18\n\u002B       je       G_M1619_IG15\n \t\t\t\t\t\t;; size=51 bbWeight=1 PerfScore 9.50\n-G_M1619_IG12:\n\u002BG_M1619_IG09:\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        lea      rdi, bword ptr [r12\u002B0x10]\n@@ -280,14 \u002B261,14 @@ G_M1619_IG12:\n        mov      qword ptr [r12\u002B0x18], rdi\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        cmp      qword ptr [rdi\u002B0x08], 48\n-       jle      G_M1619_IG19\n\u002B       jle      G_M1619_IG16\n \t\t\t\t\t\t;; size=51 bbWeight=1 PerfScore 9.25\n-G_M1619_IG13:\n\u002BG_M1619_IG10:\n        mov      rdi, qword ptr [rdi\u002B0x30]\n        test     rdi, rdi\n-       je       G_M1619_IG19\n\u002B       je       G_M1619_IG16\n \t\t\t\t\t\t;; size=13 bbWeight=0.80 PerfScore 2.60\n-G_M1619_IG14:\n\u002BG_M1619_IG11:\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n        mov      rdi, rbx\n@@ -298,7 \u002B279,7 @@ G_M1619_IG14:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[System.__Canon]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,System.__Canon],System.Func\u00602[System.Threading.CancellationToken,System.__Canon]):this\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=35 bbWeight=1 PerfScore 5.75\n-G_M1619_IG15:\n\u002BG_M1619_IG12:\n        add      rsp, 56\n        pop      rbx\n        pop      r12\n@@ -308,39 \u002B289,39 @@ G_M1619_IG15:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n\u002BG_M1619_IG13:\n\u002B       mov      rdi, rbx\n\u002B       mov      rsi, 0xD1FFAB1E      ; global ptr\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       mov      rdi, rax\n\u002B       jmp      G_M1619_IG04\n\u002B\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n\u002BG_M1619_IG14:\n\u002B       mov      rdi, rbx\n\u002B       mov      rsi, 0xD1FFAB1E      ; global ptr\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       mov      rdi, rax\n\u002B       jmp      G_M1619_IG08\n\u002B\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n\u002BG_M1619_IG15:\n\u002B       mov      rdi, rbx\n\u002B       mov      rsi, 0xD1FFAB1E      ; global ptr\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       mov      rdi, rax\n\u002B       jmp      G_M1619_IG09\n\u002B\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n G_M1619_IG16:\n-       mov      rdi, rbx\n-       mov      rsi, 0xD1FFAB1E      ; global ptr\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       mov      rdi, rax\n-       jmp      G_M1619_IG07\n-\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M1619_IG17:\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n        jmp      G_M1619_IG11\n-\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M1619_IG18:\n-       mov      rdi, rbx\n-       mov      rsi, 0xD1FFAB1E      ; global ptr\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       mov      rdi, rax\n-       jmp      G_M1619_IG12\n-\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M1619_IG19:\n-       mov      rdi, rbx\n-       mov      rsi, 0xD1FFAB1E      ; global ptr\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       mov      rdi, rax\n-       jmp      G_M1619_IG14\n \t\t\t\t\t\t;; size=33 bbWeight=0.36 PerfScore 2.16\n-G_M1619_IG20:\n\u002BG_M1619_IG17:\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -348,17 \u002B329,17 @@ G_M1619_IG20:\n        mov      rdi, rax\n        jmp      G_M1619_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M1619_IG21:\n\u002BG_M1619_IG18:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M1619_IG22:\n\u002BG_M1619_IG19:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1082, prolog size 29, PerfScore 197.56, instruction count 235, allocated bytes for code 1082 (MethodHash=f15df9ac) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateAggregateToCollectionResultCursor[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)\n\u002B; Total bytes of code 1030, prolog size 29, PerfScore 189.56, instruction count 222, allocated bytes for code 1030 (MethodHash=f15df9ac) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateAggregateToCollectionResultCursor[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1082,"DiffBytes":1030},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateAggregateToCollectionResultCursor[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[byte],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[short]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[short,byte]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[short,byte]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[byte]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[byte]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[byte]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[byte]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M56415_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M56415_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M56415_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M56415_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M56415_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M56415_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M56415_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M56415_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M56415_IG11\n\u002B       je       G_M56415_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M56415_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M56415_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M56415_IG06:\n\u002B       je       SHORT G_M56415_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M56415_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M56415_IG07:\n\u002BG_M56415_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M56415_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M56415_IG08:\n\u002BG_M56415_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M56415_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[byte]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[byte]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[byte]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M56415_IG09:\n\u002BG_M56415_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M56415_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M56415_IG10:\n\u002BG_M56415_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M56415_IG11:\n\u002BG_M56415_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=29fe23a0) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateAggregateToCollectionResultCursor[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[byte],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=29fe23a0) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateAggregateToCollectionResultCursor[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[byte],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateAggregateToCollectionResultCursor[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[double],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[short]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[short,double]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[short,double]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[double]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[double]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[double]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[double]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M37728_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M37728_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M37728_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M37728_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M37728_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M37728_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M37728_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M37728_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M37728_IG11\n\u002B       je       G_M37728_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M37728_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M37728_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M37728_IG06:\n\u002B       je       SHORT G_M37728_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M37728_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M37728_IG07:\n\u002BG_M37728_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M37728_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M37728_IG08:\n\u002BG_M37728_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M37728_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[double]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[double]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[double]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M37728_IG09:\n\u002BG_M37728_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M37728_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M37728_IG10:\n\u002BG_M37728_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M37728_IG11:\n\u002BG_M37728_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=d1066c9f) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateAggregateToCollectionResultCursor[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[double],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=d1066c9f) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateAggregateToCollectionResultCursor[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[double],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateAggregateToCollectionResultCursor[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[int],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[short]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[short,int]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[short,int]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[int]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[int]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[int]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[int]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M36550_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M36550_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M36550_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M36550_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M36550_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M36550_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M36550_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M36550_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M36550_IG11\n\u002B       je       G_M36550_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M36550_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M36550_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M36550_IG06:\n\u002B       je       SHORT G_M36550_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M36550_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M36550_IG07:\n\u002BG_M36550_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M36550_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M36550_IG08:\n\u002BG_M36550_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M36550_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[int]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[int]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[int]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M36550_IG09:\n\u002BG_M36550_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M36550_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M36550_IG10:\n\u002BG_M36550_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M36550_IG11:\n\u002BG_M36550_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=fa777139) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateAggregateToCollectionResultCursor[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[int],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=fa777139) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateAggregateToCollectionResultCursor[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[int],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateAggregateToCollectionResultCursor[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[long],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[short]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[short,long]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[short,long]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[long]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[long]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[long]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[long]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M55903_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M55903_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M55903_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M55903_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M55903_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M55903_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M55903_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M55903_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M55903_IG11\n\u002B       je       G_M55903_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M55903_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M55903_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M55903_IG06:\n\u002B       je       SHORT G_M55903_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M55903_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M55903_IG07:\n\u002BG_M55903_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M55903_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M55903_IG08:\n\u002BG_M55903_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M55903_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[long]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[long]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[long]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M55903_IG09:\n\u002BG_M55903_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M55903_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M55903_IG10:\n\u002BG_M55903_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M55903_IG11:\n\u002BG_M55903_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=342325a0) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateAggregateToCollectionResultCursor[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[long],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=342325a0) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateAggregateToCollectionResultCursor[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[long],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateAggregateToCollectionResultCursor[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[short],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)","Category":"improvement","Description":"846 -\u003E 794 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,10 \u002B10,10 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[short]\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[short,short]\u003E\n-;  V05 loc1         [V05,T23] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V05 loc1         [V05,T21] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V07 tmp1         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003C\u003Ec__DisplayClass83_0\u00601[short,short]\u003E\n ;* V08 tmp2         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022impAppendStmt\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp6         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp7         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[short]]\u003E\n ;  V14 tmp8         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[short]]]\u003E\n-;  V15 tmp9         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[short]\u003E\n-;  V16 tmp10        [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp11        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp9         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[short]\u003E\n\u002B;  V16 tmp10        [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp11        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp12        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp13        [V19,T22] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp14        [V20,T19] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp13        [V19,T22] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp14        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp15        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.CollectionNamespace\u003E\n ;* V22 tmp16        [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V23 tmp17        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n@@ -46,14 \u002B46,14 @@\n ;  V35 tmp29        [V35,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V36 tmp30        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V37 tmp31        [V37    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V38 tmp32        [V38,T20] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V39 tmp33        [V39,T21] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V40 tmp34        [V40,T24] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V41 tmp35        [V41,T25] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V38 tmp32        [V38,T19] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V39 tmp33        [V39,T20] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V40 tmp34        [V40,T23] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V41 tmp35        [V41,T24] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V23.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V43 tmp37        [V43    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V23.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V44 tmp38        [V44,T26] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V45 tmp39        [V45,T27] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V44 tmp38        [V44,T25] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V32.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V45 tmp39        [V45,T26] (  2,  2   )    long  -\u003E  rdx         \u0022field V32.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V46 tmp40        [V46,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp41        [V47,T16] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n ;  V48 tmp42        [V48,T17] (  2,  4   )     ref  -\u003E  rdi         single-def \u0022argument with side effect\u0022\n@@ -89,37 \u002B89,18 @@ G_M55015_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M55015_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M55015_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M55015_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M55015_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M55015_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M55015_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M55015_IG05:\n\u002B       mov      rdi, rax\n        cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M55015_IG11\n\u002B       je       G_M55015_IG08\n        mov      rsi, gword ptr [rbx\u002B0x10]\n        mov      rsi, gword ptr [rsi\u002B0x10]\n-       mov      rdi, rax\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -136,16 \u002B117,16 @@ G_M55015_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M55015_IG07\n-\t\t\t\t\t\t;; size=101 bbWeight=1 PerfScore 27.00\n-G_M55015_IG06:\n\u002B       je       SHORT G_M55015_IG04\n\u002B\t\t\t\t\t\t;; size=184 bbWeight=1 PerfScore 39.25\n\u002BG_M55015_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M55015_IG07:\n\u002BG_M55015_IG04:\n        mov      rax, gword ptr [rbp-0x38]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -188,7 \u002B169,7 @@ G_M55015_IG07:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsNotNull[System.__Canon](System.__Canon,System.String):System.__Canon\n \t\t\t\t\t\t;; size=224 bbWeight=1 PerfScore 53.25\n-G_M55015_IG08:\n\u002BG_M55015_IG05:\n        mov      rsi, rax\n        lea      rdi, bword ptr [r15\u002B0x58]\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -244,7 \u002B225,7 @@ G_M55015_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[short]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[short]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[short]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=276 bbWeight=1 PerfScore 40.00\n-G_M55015_IG09:\n\u002BG_M55015_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -254,17 \u002B235,17 @@ G_M55015_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M55015_IG10:\n\u002BG_M55015_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M55015_IG11:\n\u002BG_M55015_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 846, prolog size 25, PerfScore 155.75, instruction count 180, allocated bytes for code 846 (MethodHash=1b3f2918) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateAggregateToCollectionResultCursor[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[short],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)\n\u002B; Total bytes of code 794, prolog size 25, PerfScore 147.75, instruction count 167, allocated bytes for code 794 (MethodHash=1b3f2918) for method MongoDB.Driver.MongoCollectionImpl\u00601[short]:CreateAggregateToCollectionResultCursor[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[short],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":846,"DiffBytes":794},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase:CreateAggregateToCollectionResultCursor[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)","Category":"improvement","Description":"813 -\u003E 761 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,11 \u002B10,11 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoDatabase\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoDatabase\u002B\u003C\u003Ec__DisplayClass61_0\u00601[System.Nullable\u00601[int]]\u003E\n-;  V05 loc1         [V05,T20] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n-;  V06 loc2         [V06,T21] (  2,  2   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.WireProtocol.Messages.Encoders.MessageEncoderSettings\u003E\n\u002B;  V05 loc1         [V05,T18] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V06 loc2         [V06,T19] (  2,  2   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.WireProtocol.Messages.Encoders.MessageEncoderSettings\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V08 tmp1         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoDatabase\u002B\u003C\u003Ec__DisplayClass61_0\u00601[System.Nullable\u00601[int]]\u003E\n ;  V09 tmp2         [V09,T00] ( 11, 22   )     ref  -\u003E  [rbp-0x40]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Core.Operations.FindOperation\u00601[System.Nullable\u00601[int]]\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp5         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp6         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\u003E\n ;  V14 tmp7         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]]\u003E\n-;  V15 tmp8         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n-;  V16 tmp9         [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp10        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp8         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V16 tmp9         [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp10        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp11        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp12        [V19,T19] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp13        [V20,T16] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp12        [V19,T20] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp13        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp14        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V22 tmp15        [V22    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n ;* V23 tmp16        [V23    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n@@ -45,14 \u002B45,14 @@\n ;  V34 tmp27        [V34,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V35 tmp28        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V36 tmp29        [V36    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V37 tmp30        [V37,T17] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V38 tmp31        [V38,T18] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V39 tmp32        [V39,T22] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V40 tmp33        [V40,T23] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V37 tmp30        [V37,T16] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V38 tmp31        [V38,T17] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V39 tmp32        [V39,T21] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V40 tmp33        [V40,T22] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V41 tmp34        [V41    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V22.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V42 tmp35        [V42    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V22.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V43 tmp36        [V43,T24] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V31.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V44 tmp37        [V44,T25] (  2,  2   )    long  -\u003E  rdx         \u0022field V31.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V43 tmp36        [V43,T23] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V31.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V44 tmp37        [V44,T24] (  2,  2   )    long  -\u003E  rdx         \u0022field V31.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V45 tmp38        [V45,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V46 tmp39        [V46,T10] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp40        [V47,T11] (  3,  6   )   byref  -\u003E  r13         single-def \u0022Block morph LHS addr\u0022\n@@ -85,36 \u002B85,17 @@ G_M60677_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M60677_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M60677_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M60677_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M60677_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M60677_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M60677_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M60677_IG05:\n-       cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M60677_IG11\n-       mov      rsi, gword ptr [rbx\u002B0x18]\n        mov      rdi, rax\n\u002B       cmp      byte  ptr [rbp-0x30], 0\n\u002B       je       G_M60677_IG08\n\u002B       mov      rsi, gword ptr [rbx\u002B0x18]\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -135,16 \u002B116,16 @@ G_M60677_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M60677_IG07\n-\t\t\t\t\t\t;; size=116 bbWeight=1 PerfScore 28.50\n-G_M60677_IG06:\n\u002B       je       SHORT G_M60677_IG04\n\u002B\t\t\t\t\t\t;; size=199 bbWeight=1 PerfScore 40.75\n\u002BG_M60677_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M60677_IG07:\n\u002BG_M60677_IG04:\n        mov      rax, gword ptr [rbp-0x40]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -187,7 \u002B168,7 @@ G_M60677_IG07:\n        mov      r11, 0xD1FFAB1E      ; code for MongoDB.Driver.IMongoClient:get_Settings():MongoDB.Driver.MongoClientSettings:this\n        call     [r11]MongoDB.Driver.IMongoClient:get_Settings():MongoDB.Driver.MongoClientSettings:this\n \t\t\t\t\t\t;; size=221 bbWeight=1 PerfScore 53.25\n-G_M60677_IG08:\n\u002BG_M60677_IG05:\n        movzx    rdi, byte  ptr [rax\u002B0xE1]\n        mov      byte  ptr [r15\u002B0x79], dil\n        lea      rdi, bword ptr [r12\u002B0x18]\n@@ -234,7 \u002B215,7 @@ G_M60677_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[System.Nullable\u00601[int]]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=231 bbWeight=1 PerfScore 29.50\n-G_M60677_IG09:\n\u002BG_M60677_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -244,17 \u002B225,17 @@ G_M60677_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M60677_IG10:\n\u002BG_M60677_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M60677_IG11:\n\u002BG_M60677_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 813, prolog size 25, PerfScore 146.75, instruction count 174, allocated bytes for code 813 (MethodHash=f95b12fa) for method MongoDB.Driver.MongoDatabase:CreateAggregateToCollectionResultCursor[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n\u002B; Total bytes of code 761, prolog size 25, PerfScore 138.75, instruction count 161, allocated bytes for code 761 (MethodHash=f95b12fa) for method MongoDB.Driver.MongoDatabase:CreateAggregateToCollectionResultCursor[System.Nullable\u00601[int]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":813,"DiffBytes":761},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase:CreateAggregateToCollectionResultCursor[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)","Category":"improvement","Description":"813 -\u003E 761 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,11 \u002B10,11 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoDatabase\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoDatabase\u002B\u003C\u003Ec__DisplayClass61_0\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V05 loc1         [V05,T20] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n-;  V06 loc2         [V06,T21] (  2,  2   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.WireProtocol.Messages.Encoders.MessageEncoderSettings\u003E\n\u002B;  V05 loc1         [V05,T18] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V06 loc2         [V06,T19] (  2,  2   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.WireProtocol.Messages.Encoders.MessageEncoderSettings\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V08 tmp1         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoDatabase\u002B\u003C\u003Ec__DisplayClass61_0\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V09 tmp2         [V09,T00] ( 11, 22   )     ref  -\u003E  [rbp-0x40]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Core.Operations.FindOperation\u00601[System.Numerics.Vector\u00601[float]]\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp5         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp6         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]\u003E\n ;  V14 tmp7         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]]\u003E\n-;  V15 tmp8         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V16 tmp9         [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp10        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp8         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V16 tmp9         [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp10        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp11        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp12        [V19,T19] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp13        [V20,T16] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp12        [V19,T20] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp13        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp14        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V22 tmp15        [V22    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n ;* V23 tmp16        [V23    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n@@ -45,14 \u002B45,14 @@\n ;  V34 tmp27        [V34,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V35 tmp28        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V36 tmp29        [V36    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V37 tmp30        [V37,T17] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V38 tmp31        [V38,T18] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V39 tmp32        [V39,T22] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V40 tmp33        [V40,T23] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V37 tmp30        [V37,T16] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V38 tmp31        [V38,T17] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V39 tmp32        [V39,T21] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V40 tmp33        [V40,T22] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V41 tmp34        [V41    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V22.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V42 tmp35        [V42    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V22.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V43 tmp36        [V43,T24] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V31.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V44 tmp37        [V44,T25] (  2,  2   )    long  -\u003E  rdx         \u0022field V31.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V43 tmp36        [V43,T23] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V31.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V44 tmp37        [V44,T24] (  2,  2   )    long  -\u003E  rdx         \u0022field V31.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V45 tmp38        [V45,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V46 tmp39        [V46,T10] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp40        [V47,T11] (  3,  6   )   byref  -\u003E  r13         single-def \u0022Block morph LHS addr\u0022\n@@ -85,36 \u002B85,17 @@ G_M28792_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M28792_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M28792_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M28792_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M28792_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M28792_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M28792_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M28792_IG05:\n-       cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M28792_IG11\n-       mov      rsi, gword ptr [rbx\u002B0x18]\n        mov      rdi, rax\n\u002B       cmp      byte  ptr [rbp-0x30], 0\n\u002B       je       G_M28792_IG08\n\u002B       mov      rsi, gword ptr [rbx\u002B0x18]\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -135,16 \u002B116,16 @@ G_M28792_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M28792_IG07\n-\t\t\t\t\t\t;; size=116 bbWeight=1 PerfScore 28.50\n-G_M28792_IG06:\n\u002B       je       SHORT G_M28792_IG04\n\u002B\t\t\t\t\t\t;; size=199 bbWeight=1 PerfScore 40.75\n\u002BG_M28792_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M28792_IG07:\n\u002BG_M28792_IG04:\n        mov      rax, gword ptr [rbp-0x40]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -187,7 \u002B168,7 @@ G_M28792_IG07:\n        mov      r11, 0xD1FFAB1E      ; code for MongoDB.Driver.IMongoClient:get_Settings():MongoDB.Driver.MongoClientSettings:this\n        call     [r11]MongoDB.Driver.IMongoClient:get_Settings():MongoDB.Driver.MongoClientSettings:this\n \t\t\t\t\t\t;; size=221 bbWeight=1 PerfScore 53.25\n-G_M28792_IG08:\n\u002BG_M28792_IG05:\n        movzx    rdi, byte  ptr [rax\u002B0xE1]\n        mov      byte  ptr [r15\u002B0x79], dil\n        lea      rdi, bword ptr [r12\u002B0x18]\n@@ -234,7 \u002B215,7 @@ G_M28792_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=231 bbWeight=1 PerfScore 29.50\n-G_M28792_IG09:\n\u002BG_M28792_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -244,17 \u002B225,17 @@ G_M28792_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M28792_IG10:\n\u002BG_M28792_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M28792_IG11:\n\u002BG_M28792_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 813, prolog size 25, PerfScore 146.75, instruction count 174, allocated bytes for code 813 (MethodHash=5f978f87) for method MongoDB.Driver.MongoDatabase:CreateAggregateToCollectionResultCursor[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n\u002B; Total bytes of code 761, prolog size 25, PerfScore 138.75, instruction count 161, allocated bytes for code 761 (MethodHash=5f978f87) for method MongoDB.Driver.MongoDatabase:CreateAggregateToCollectionResultCursor[System.Numerics.Vector\u00601[float]](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":813,"DiffBytes":761},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase:CreateAggregateToCollectionResultCursor[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)","Category":"improvement","Description":"1,049 -\u003E 997 bytes (-52)","ExtraInfo":null,"Diff":"@@ -11,11 \u002B11,11 @@\n ;  V00 this         [V00,T03] (  9,  9   )     ref  -\u003E  r15         this class-hnd single-def \u003CMongoDB.Driver.MongoDatabase\u003E\n ;  V01 TypeCtx      [V01,T01] ( 13,  9.16)    long  -\u003E  rbx         single-def\n ;  V02 arg1         [V02,T18] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V03 arg2         [V03,T08] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n\u002B;  V03 arg2         [V03,T07] (  4,  4   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon]\u003E\n ;  V04 arg3         [V04,T19] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V05 loc0         [V05,T02] ( 11, 11   )     ref  -\u003E  [rbp-0x48]  class-hnd exact spill-single-def \u003CMongoDB.Driver.MongoDatabase\u002B\u003C\u003Ec__DisplayClass61_0\u00601[System.__Canon]\u003E\n-;  V06 loc1         [V06,T32] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n-;  V07 loc2         [V07,T33] (  2,  2   )     ref  -\u003E  [rbp-0x50]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.WireProtocol.Messages.Encoders.MessageEncoderSettings\u003E\n\u002B;  V06 loc1         [V06,T30] (  2,  2   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V07 loc2         [V07,T31] (  2,  2   )     ref  -\u003E  [rbp-0x50]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.WireProtocol.Messages.Encoders.MessageEncoderSettings\u003E\n ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V09 tmp1         [V09    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoDatabase\u002B\u003C\u003Ec__DisplayClass61_0\u00601[System.__Canon]\u003E\n ;* V10 tmp2         [V10    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n@@ -28,13 \u002B28,13 @@\n ;* V17 tmp9         [V17    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n ;  V18 tmp10        [V18,T06] (  4,  8   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.__Canon]\u003E\n ;* V19 tmp11        [V19    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V20 tmp12        [V20,T09] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.__Canon]\u003E\n\u002B;  V20 tmp12        [V20,T08] (  3,  6   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[System.__Canon]\u003E\n ;* V21 tmp13        [V21    ] (  0,  0   )    long  -\u003E  zero-ref    \u0022spilling helperCall\u0022\n-;  V22 tmp14        [V22,T07] (  4,  7   )     ref  -\u003E  r12         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V23 tmp15        [V23    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V22 tmp14        [V22,T09] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V23 tmp15        [V23    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V24 tmp16        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V25 tmp17        [V25,T31] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V26 tmp18        [V26,T28] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V25 tmp17        [V25,T32] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V26 tmp18        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V27 tmp19        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V28 tmp20        [V28    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n ;* V29 tmp21        [V29    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n@@ -51,14 \u002B51,14 @@\n ;  V40 tmp32        [V40,T27] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V41 tmp33        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V42 tmp34        [V42    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V43 tmp35        [V43,T29] (  3,  3   )   ubyte  -\u003E  r12         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V44 tmp36        [V44,T30] (  3,  2.50)     int  -\u003E  [rbp-0x3C]  spill-single-def \u0022field V13.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V45 tmp37        [V45,T34] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V14.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V46 tmp38        [V46,T35] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V14.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V43 tmp35        [V43,T28] (  3,  3   )   ubyte  -\u003E  r12         single-def \u0022field V13.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V44 tmp36        [V44,T29] (  3,  2.50)     int  -\u003E  [rbp-0x3C]  spill-single-def \u0022field V13.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V45 tmp37        [V45,T33] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V14.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V46 tmp38        [V46,T34] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V14.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V47 tmp39        [V47    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V28.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V48 tmp40        [V48    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V28.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V49 tmp41        [V49,T36] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V37.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V50 tmp42        [V50,T37] (  2,  2   )    long  -\u003E  rdx         \u0022field V37.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V49 tmp41        [V49,T35] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V37.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V50 tmp42        [V50,T36] (  2,  2   )    long  -\u003E  rdx         \u0022field V37.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V51 tmp43        [V51,T10] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V52 tmp44        [V52,T11] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V53 tmp45        [V53,T12] (  3,  6   )   byref  -\u003E  [rbp-0x60]  spill-single-def \u0022Block morph LHS addr\u0022\n@@ -98,7 \u002B98,7 @@ G_M60541_IG02:\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x10]\n        test     rdi, rdi\n-       je       G_M60541_IG20\n\u002B       je       G_M60541_IG17\n \t\t\t\t\t\t;; size=17 bbWeight=1 PerfScore 5.25\n G_M60541_IG03:\n        call     CORINFO_HELP_NEWSFAST\n@@ -110,36 \u002B110,17 @@ G_M60541_IG03:\n        lea      rdi, bword ptr [rax\u002B0x20]\n        mov      rsi, r12\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r12, gword ptr [r14\u002B0x08]\n-       test     r12, r12\n-       je       G_M60541_IG21\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M60541_IG05\n-\t\t\t\t\t\t;; size=80 bbWeight=1 PerfScore 14.75\n-G_M60541_IG04:\n-       lea      rsi, [rbp-0x38]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M60541_IG06\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M60541_IG05:\n\u002B       mov      rsi, gword ptr [r14\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M60541_IG18\n        lea      rdx, [rbp-0x38]\n-       mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M60541_IG06:\n-       cmp      byte  ptr [rbp-0x38], 0\n-       je       G_M60541_IG22\n-       mov      rsi, gword ptr [r15\u002B0x18]\n        mov      rdi, rax\n\u002B       cmp      byte  ptr [rbp-0x38], 0\n\u002B       je       G_M60541_IG19\n\u002B       mov      rsi, gword ptr [r15\u002B0x18]\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r12, rax\n@@ -150,9 \u002B131,9 @@ G_M60541_IG06:\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x18]\n        test     rdi, rdi\n-       je       G_M60541_IG16\n-\t\t\t\t\t\t;; size=68 bbWeight=1 PerfScore 17.50\n-G_M60541_IG07:\n\u002B       je       G_M60541_IG13\n\u002B\t\t\t\t\t\t;; size=144 bbWeight=1 PerfScore 31.25\n\u002BG_M60541_IG04:\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0x58], rax\n        mov      rdx, gword ptr [r14\u002B0x10]\n@@ -167,9 \u002B148,9 @@ G_M60541_IG07:\n        mov      eax, dword ptr [rdi\u002B0x38]\n        mov      dword ptr [rbp-0x3C], eax\n        test     r12d, r12d\n-       je       SHORT G_M60541_IG09\n\u002B       je       SHORT G_M60541_IG06\n \t\t\t\t\t\t;; size=60 bbWeight=1 PerfScore 18.00\n-G_M60541_IG08:\n\u002BG_M60541_IG05:\n        mov      edi, eax\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n@@ -177,7 \u002B158,7 @@ G_M60541_IG08:\n        call     [rcx]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        mov      eax, dword ptr [rbp-0x3C]\n \t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.50\n-G_M60541_IG09:\n\u002BG_M60541_IG06:\n        mov      rcx, gword ptr [rbp-0x58]\n        mov      byte  ptr [rcx\u002B0x80], r12b\n        mov      dword ptr [rcx\u002B0x84], eax\n@@ -221,7 \u002B202,7 @@ G_M60541_IG09:\n        mov      rdi, gword ptr [r15\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for MongoDB.Driver.IMongoClient:get_Settings():MongoDB.Driver.MongoClientSettings:this\n \t\t\t\t\t\t;; size=225 bbWeight=1 PerfScore 52.25\n-G_M60541_IG10:\n\u002BG_M60541_IG07:\n        call     [r11]MongoDB.Driver.IMongoClient:get_Settings():MongoDB.Driver.MongoClientSettings:this\n        movzx    rdi, byte  ptr [rax\u002B0xE1]\n        mov      byte  ptr [r12\u002B0x79], dil\n@@ -245,9 \u002B226,9 @@ G_M60541_IG10:\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x20]\n        test     rdi, rdi\n-       je       G_M60541_IG17\n\u002B       je       G_M60541_IG14\n \t\t\t\t\t\t;; size=117 bbWeight=1 PerfScore 22.75\n-G_M60541_IG11:\n\u002BG_M60541_IG08:\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        lea      rdi, bword ptr [r13\u002B0x10]\n@@ -258,9 \u002B239,9 @@ G_M60541_IG11:\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        mov      rdi, qword ptr [rdi\u002B0x28]\n        test     rdi, rdi\n-       je       G_M60541_IG18\n\u002B       je       G_M60541_IG15\n \t\t\t\t\t\t;; size=51 bbWeight=1 PerfScore 9.50\n-G_M60541_IG12:\n\u002BG_M60541_IG09:\n        call     CORINFO_HELP_NEWSFAST\n        mov      r12, rax\n        lea      rdi, bword ptr [r12\u002B0x10]\n@@ -270,14 \u002B251,14 @@ G_M60541_IG12:\n        mov      qword ptr [r12\u002B0x18], rdi\n        mov      rdi, qword ptr [rbx\u002B0x18]\n        cmp      qword ptr [rdi\u002B0x08], 48\n-       jle      G_M60541_IG19\n\u002B       jle      G_M60541_IG16\n \t\t\t\t\t\t;; size=51 bbWeight=1 PerfScore 9.25\n-G_M60541_IG13:\n\u002BG_M60541_IG10:\n        mov      rdi, qword ptr [rdi\u002B0x30]\n        test     rdi, rdi\n-       je       G_M60541_IG19\n\u002B       je       G_M60541_IG16\n \t\t\t\t\t\t;; size=13 bbWeight=0.80 PerfScore 2.60\n-G_M60541_IG14:\n\u002BG_M60541_IG11:\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n        mov      rdi, rbx\n@@ -288,7 \u002B269,7 @@ G_M60541_IG14:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[System.__Canon]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,System.__Canon],System.Func\u00602[System.Threading.CancellationToken,System.__Canon]):this\n        mov      rax, rbx\n \t\t\t\t\t\t;; size=35 bbWeight=1 PerfScore 5.75\n-G_M60541_IG15:\n\u002BG_M60541_IG12:\n        add      rsp, 56\n        pop      rbx\n        pop      r12\n@@ -298,39 \u002B279,39 @@ G_M60541_IG15:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M60541_IG16:\n\u002BG_M60541_IG13:\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rcx]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n-       jmp      G_M60541_IG07\n\u002B       jmp      G_M60541_IG04\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M60541_IG17:\n\u002BG_M60541_IG14:\n\u002B       mov      rdi, rbx\n\u002B       mov      rsi, 0xD1FFAB1E      ; global ptr\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       mov      rdi, rax\n\u002B       jmp      G_M60541_IG08\n\u002B\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n\u002BG_M60541_IG15:\n\u002B       mov      rdi, rbx\n\u002B       mov      rsi, 0xD1FFAB1E      ; global ptr\n\u002B       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n\u002B       mov      rdi, rax\n\u002B       jmp      G_M60541_IG09\n\u002B\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n\u002BG_M60541_IG16:\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n        mov      rdi, rax\n        jmp      G_M60541_IG11\n-\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M60541_IG18:\n-       mov      rdi, rbx\n-       mov      rsi, 0xD1FFAB1E      ; global ptr\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       mov      rdi, rax\n-       jmp      G_M60541_IG12\n-\t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M60541_IG19:\n-       mov      rdi, rbx\n-       mov      rsi, 0xD1FFAB1E      ; global ptr\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD\n-       mov      rdi, rax\n-       jmp      G_M60541_IG14\n \t\t\t\t\t\t;; size=33 bbWeight=0.36 PerfScore 2.16\n-G_M60541_IG20:\n\u002BG_M60541_IG17:\n        mov      rdi, rbx\n        mov      rsi, 0xD1FFAB1E      ; global ptr\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD\n@@ -338,17 \u002B319,17 @@ G_M60541_IG20:\n        mov      rdi, rax\n        jmp      G_M60541_IG03\n \t\t\t\t\t\t;; size=33 bbWeight=0.20 PerfScore 1.20\n-G_M60541_IG21:\n\u002BG_M60541_IG18:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M60541_IG22:\n\u002BG_M60541_IG19:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1049, prolog size 29, PerfScore 188.56, instruction count 229, allocated bytes for code 1049 (MethodHash=4dd41382) for method MongoDB.Driver.MongoDatabase:CreateAggregateToCollectionResultCursor[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)\n\u002B; Total bytes of code 997, prolog size 29, PerfScore 180.56, instruction count 216, allocated bytes for code 997 (MethodHash=4dd41382) for method MongoDB.Driver.MongoDatabase:CreateAggregateToCollectionResultCursor[System.__Canon](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[System.__Canon],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[System.__Canon]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1049,"DiffBytes":997},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase:CreateAggregateToCollectionResultCursor[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[byte],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)","Category":"improvement","Description":"813 -\u003E 761 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,11 \u002B10,11 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoDatabase\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoDatabase\u002B\u003C\u003Ec__DisplayClass61_0\u00601[byte]\u003E\n-;  V05 loc1         [V05,T20] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n-;  V06 loc2         [V06,T21] (  2,  2   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.WireProtocol.Messages.Encoders.MessageEncoderSettings\u003E\n\u002B;  V05 loc1         [V05,T18] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V06 loc2         [V06,T19] (  2,  2   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.WireProtocol.Messages.Encoders.MessageEncoderSettings\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V08 tmp1         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoDatabase\u002B\u003C\u003Ec__DisplayClass61_0\u00601[byte]\u003E\n ;  V09 tmp2         [V09,T00] ( 11, 22   )     ref  -\u003E  [rbp-0x40]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Core.Operations.FindOperation\u00601[byte]\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp5         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp6         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[byte]]\u003E\n ;  V14 tmp7         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[byte]]]\u003E\n-;  V15 tmp8         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[byte]\u003E\n-;  V16 tmp9         [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp10        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp8         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[byte]\u003E\n\u002B;  V16 tmp9         [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp10        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp11        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp12        [V19,T19] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp13        [V20,T16] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp12        [V19,T20] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp13        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp14        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V22 tmp15        [V22    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n ;* V23 tmp16        [V23    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n@@ -45,14 \u002B45,14 @@\n ;  V34 tmp27        [V34,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V35 tmp28        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V36 tmp29        [V36    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V37 tmp30        [V37,T17] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V38 tmp31        [V38,T18] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V39 tmp32        [V39,T22] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V40 tmp33        [V40,T23] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V37 tmp30        [V37,T16] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V38 tmp31        [V38,T17] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V39 tmp32        [V39,T21] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V40 tmp33        [V40,T22] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V41 tmp34        [V41    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V22.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V42 tmp35        [V42    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V22.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V43 tmp36        [V43,T24] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V31.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V44 tmp37        [V44,T25] (  2,  2   )    long  -\u003E  rdx         \u0022field V31.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V43 tmp36        [V43,T23] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V31.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V44 tmp37        [V44,T24] (  2,  2   )    long  -\u003E  rdx         \u0022field V31.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V45 tmp38        [V45,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V46 tmp39        [V46,T10] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp40        [V47,T11] (  3,  6   )   byref  -\u003E  r13         single-def \u0022Block morph LHS addr\u0022\n@@ -85,36 \u002B85,17 @@ G_M35057_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M35057_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M35057_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M35057_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M35057_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M35057_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M35057_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M35057_IG05:\n-       cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M35057_IG11\n-       mov      rsi, gword ptr [rbx\u002B0x18]\n        mov      rdi, rax\n\u002B       cmp      byte  ptr [rbp-0x30], 0\n\u002B       je       G_M35057_IG08\n\u002B       mov      rsi, gword ptr [rbx\u002B0x18]\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -135,16 \u002B116,16 @@ G_M35057_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M35057_IG07\n-\t\t\t\t\t\t;; size=116 bbWeight=1 PerfScore 28.50\n-G_M35057_IG06:\n\u002B       je       SHORT G_M35057_IG04\n\u002B\t\t\t\t\t\t;; size=199 bbWeight=1 PerfScore 40.75\n\u002BG_M35057_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M35057_IG07:\n\u002BG_M35057_IG04:\n        mov      rax, gword ptr [rbp-0x40]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -187,7 \u002B168,7 @@ G_M35057_IG07:\n        mov      r11, 0xD1FFAB1E      ; code for MongoDB.Driver.IMongoClient:get_Settings():MongoDB.Driver.MongoClientSettings:this\n        call     [r11]MongoDB.Driver.IMongoClient:get_Settings():MongoDB.Driver.MongoClientSettings:this\n \t\t\t\t\t\t;; size=221 bbWeight=1 PerfScore 53.25\n-G_M35057_IG08:\n\u002BG_M35057_IG05:\n        movzx    rdi, byte  ptr [rax\u002B0xE1]\n        mov      byte  ptr [r15\u002B0x79], dil\n        lea      rdi, bword ptr [r12\u002B0x18]\n@@ -234,7 \u002B215,7 @@ G_M35057_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[byte]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[byte]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[byte]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=231 bbWeight=1 PerfScore 29.50\n-G_M35057_IG09:\n\u002BG_M35057_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -244,17 \u002B225,17 @@ G_M35057_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M35057_IG10:\n\u002BG_M35057_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M35057_IG11:\n\u002BG_M35057_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 813, prolog size 25, PerfScore 146.75, instruction count 174, allocated bytes for code 813 (MethodHash=0f5e770e) for method MongoDB.Driver.MongoDatabase:CreateAggregateToCollectionResultCursor[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[byte],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)\n\u002B; Total bytes of code 761, prolog size 25, PerfScore 138.75, instruction count 161, allocated bytes for code 761 (MethodHash=0f5e770e) for method MongoDB.Driver.MongoDatabase:CreateAggregateToCollectionResultCursor[byte](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[byte],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[byte]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":813,"DiffBytes":761},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase:CreateAggregateToCollectionResultCursor[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[double],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)","Category":"improvement","Description":"813 -\u003E 761 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,11 \u002B10,11 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoDatabase\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoDatabase\u002B\u003C\u003Ec__DisplayClass61_0\u00601[double]\u003E\n-;  V05 loc1         [V05,T20] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n-;  V06 loc2         [V06,T21] (  2,  2   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.WireProtocol.Messages.Encoders.MessageEncoderSettings\u003E\n\u002B;  V05 loc1         [V05,T18] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V06 loc2         [V06,T19] (  2,  2   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.WireProtocol.Messages.Encoders.MessageEncoderSettings\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V08 tmp1         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoDatabase\u002B\u003C\u003Ec__DisplayClass61_0\u00601[double]\u003E\n ;  V09 tmp2         [V09,T00] ( 11, 22   )     ref  -\u003E  [rbp-0x40]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Core.Operations.FindOperation\u00601[double]\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp5         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp6         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[double]]\u003E\n ;  V14 tmp7         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[double]]]\u003E\n-;  V15 tmp8         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[double]\u003E\n-;  V16 tmp9         [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp10        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp8         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[double]\u003E\n\u002B;  V16 tmp9         [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp10        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp11        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp12        [V19,T19] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp13        [V20,T16] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp12        [V19,T20] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp13        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp14        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V22 tmp15        [V22    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n ;* V23 tmp16        [V23    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n@@ -45,14 \u002B45,14 @@\n ;  V34 tmp27        [V34,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V35 tmp28        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V36 tmp29        [V36    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V37 tmp30        [V37,T17] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V38 tmp31        [V38,T18] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V39 tmp32        [V39,T22] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V40 tmp33        [V40,T23] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V37 tmp30        [V37,T16] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V38 tmp31        [V38,T17] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V39 tmp32        [V39,T21] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V40 tmp33        [V40,T22] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V41 tmp34        [V41    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V22.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V42 tmp35        [V42    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V22.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V43 tmp36        [V43,T24] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V31.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V44 tmp37        [V44,T25] (  2,  2   )    long  -\u003E  rdx         \u0022field V31.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V43 tmp36        [V43,T23] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V31.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V44 tmp37        [V44,T24] (  2,  2   )    long  -\u003E  rdx         \u0022field V31.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V45 tmp38        [V45,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V46 tmp39        [V46,T10] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp40        [V47,T11] (  3,  6   )   byref  -\u003E  r13         single-def \u0022Block morph LHS addr\u0022\n@@ -85,36 \u002B85,17 @@ G_M37902_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M37902_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M37902_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M37902_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M37902_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M37902_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M37902_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M37902_IG05:\n-       cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M37902_IG11\n-       mov      rsi, gword ptr [rbx\u002B0x18]\n        mov      rdi, rax\n\u002B       cmp      byte  ptr [rbp-0x30], 0\n\u002B       je       G_M37902_IG08\n\u002B       mov      rsi, gword ptr [rbx\u002B0x18]\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -135,16 \u002B116,16 @@ G_M37902_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M37902_IG07\n-\t\t\t\t\t\t;; size=116 bbWeight=1 PerfScore 28.50\n-G_M37902_IG06:\n\u002B       je       SHORT G_M37902_IG04\n\u002B\t\t\t\t\t\t;; size=199 bbWeight=1 PerfScore 40.75\n\u002BG_M37902_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M37902_IG07:\n\u002BG_M37902_IG04:\n        mov      rax, gword ptr [rbp-0x40]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -187,7 \u002B168,7 @@ G_M37902_IG07:\n        mov      r11, 0xD1FFAB1E      ; code for MongoDB.Driver.IMongoClient:get_Settings():MongoDB.Driver.MongoClientSettings:this\n        call     [r11]MongoDB.Driver.IMongoClient:get_Settings():MongoDB.Driver.MongoClientSettings:this\n \t\t\t\t\t\t;; size=221 bbWeight=1 PerfScore 53.25\n-G_M37902_IG08:\n\u002BG_M37902_IG05:\n        movzx    rdi, byte  ptr [rax\u002B0xE1]\n        mov      byte  ptr [r15\u002B0x79], dil\n        lea      rdi, bword ptr [r12\u002B0x18]\n@@ -234,7 \u002B215,7 @@ G_M37902_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[double]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[double]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[double]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=231 bbWeight=1 PerfScore 29.50\n-G_M37902_IG09:\n\u002BG_M37902_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -244,17 \u002B225,17 @@ G_M37902_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M37902_IG10:\n\u002BG_M37902_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M37902_IG11:\n\u002BG_M37902_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 813, prolog size 25, PerfScore 146.75, instruction count 174, allocated bytes for code 813 (MethodHash=adc96bf1) for method MongoDB.Driver.MongoDatabase:CreateAggregateToCollectionResultCursor[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[double],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)\n\u002B; Total bytes of code 761, prolog size 25, PerfScore 138.75, instruction count 161, allocated bytes for code 761 (MethodHash=adc96bf1) for method MongoDB.Driver.MongoDatabase:CreateAggregateToCollectionResultCursor[double](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[double],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[double]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":813,"DiffBytes":761},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase:CreateAggregateToCollectionResultCursor[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[int],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)","Category":"improvement","Description":"813 -\u003E 761 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,11 \u002B10,11 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoDatabase\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoDatabase\u002B\u003C\u003Ec__DisplayClass61_0\u00601[int]\u003E\n-;  V05 loc1         [V05,T20] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n-;  V06 loc2         [V06,T21] (  2,  2   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.WireProtocol.Messages.Encoders.MessageEncoderSettings\u003E\n\u002B;  V05 loc1         [V05,T18] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V06 loc2         [V06,T19] (  2,  2   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.WireProtocol.Messages.Encoders.MessageEncoderSettings\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V08 tmp1         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoDatabase\u002B\u003C\u003Ec__DisplayClass61_0\u00601[int]\u003E\n ;  V09 tmp2         [V09,T00] ( 11, 22   )     ref  -\u003E  [rbp-0x40]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Core.Operations.FindOperation\u00601[int]\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp5         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp6         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[int]]\u003E\n ;  V14 tmp7         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[int]]]\u003E\n-;  V15 tmp8         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[int]\u003E\n-;  V16 tmp9         [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp10        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp8         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[int]\u003E\n\u002B;  V16 tmp9         [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp10        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp11        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp12        [V19,T19] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp13        [V20,T16] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp12        [V19,T20] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp13        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp14        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V22 tmp15        [V22    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n ;* V23 tmp16        [V23    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n@@ -45,14 \u002B45,14 @@\n ;  V34 tmp27        [V34,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V35 tmp28        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V36 tmp29        [V36    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V37 tmp30        [V37,T17] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V38 tmp31        [V38,T18] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V39 tmp32        [V39,T22] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V40 tmp33        [V40,T23] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V37 tmp30        [V37,T16] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V38 tmp31        [V38,T17] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V39 tmp32        [V39,T21] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V40 tmp33        [V40,T22] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V41 tmp34        [V41    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V22.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V42 tmp35        [V42    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V22.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V43 tmp36        [V43,T24] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V31.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V44 tmp37        [V44,T25] (  2,  2   )    long  -\u003E  rdx         \u0022field V31.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V43 tmp36        [V43,T23] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V31.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V44 tmp37        [V44,T24] (  2,  2   )    long  -\u003E  rdx         \u0022field V31.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V45 tmp38        [V45,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V46 tmp39        [V46,T10] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp40        [V47,T11] (  3,  6   )   byref  -\u003E  r13         single-def \u0022Block morph LHS addr\u0022\n@@ -85,36 \u002B85,17 @@ G_M10728_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M10728_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M10728_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M10728_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M10728_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M10728_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M10728_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M10728_IG05:\n-       cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M10728_IG11\n-       mov      rsi, gword ptr [rbx\u002B0x18]\n        mov      rdi, rax\n\u002B       cmp      byte  ptr [rbp-0x30], 0\n\u002B       je       G_M10728_IG08\n\u002B       mov      rsi, gword ptr [rbx\u002B0x18]\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -135,16 \u002B116,16 @@ G_M10728_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M10728_IG07\n-\t\t\t\t\t\t;; size=116 bbWeight=1 PerfScore 28.50\n-G_M10728_IG06:\n\u002B       je       SHORT G_M10728_IG04\n\u002B\t\t\t\t\t\t;; size=199 bbWeight=1 PerfScore 40.75\n\u002BG_M10728_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M10728_IG07:\n\u002BG_M10728_IG04:\n        mov      rax, gword ptr [rbp-0x40]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -187,7 \u002B168,7 @@ G_M10728_IG07:\n        mov      r11, 0xD1FFAB1E      ; code for MongoDB.Driver.IMongoClient:get_Settings():MongoDB.Driver.MongoClientSettings:this\n        call     [r11]MongoDB.Driver.IMongoClient:get_Settings():MongoDB.Driver.MongoClientSettings:this\n \t\t\t\t\t\t;; size=221 bbWeight=1 PerfScore 53.25\n-G_M10728_IG08:\n\u002BG_M10728_IG05:\n        movzx    rdi, byte  ptr [rax\u002B0xE1]\n        mov      byte  ptr [r15\u002B0x79], dil\n        lea      rdi, bword ptr [r12\u002B0x18]\n@@ -234,7 \u002B215,7 @@ G_M10728_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[int]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[int]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[int]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=231 bbWeight=1 PerfScore 29.50\n-G_M10728_IG09:\n\u002BG_M10728_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -244,17 \u002B225,17 @@ G_M10728_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M10728_IG10:\n\u002BG_M10728_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M10728_IG11:\n\u002BG_M10728_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 813, prolog size 25, PerfScore 146.75, instruction count 174, allocated bytes for code 813 (MethodHash=a289d617) for method MongoDB.Driver.MongoDatabase:CreateAggregateToCollectionResultCursor[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[int],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)\n\u002B; Total bytes of code 761, prolog size 25, PerfScore 138.75, instruction count 161, allocated bytes for code 761 (MethodHash=a289d617) for method MongoDB.Driver.MongoDatabase:CreateAggregateToCollectionResultCursor[int](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[int],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[int]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":813,"DiffBytes":761},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase:CreateAggregateToCollectionResultCursor[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[long],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)","Category":"improvement","Description":"813 -\u003E 761 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,11 \u002B10,11 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoDatabase\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoDatabase\u002B\u003C\u003Ec__DisplayClass61_0\u00601[long]\u003E\n-;  V05 loc1         [V05,T20] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n-;  V06 loc2         [V06,T21] (  2,  2   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.WireProtocol.Messages.Encoders.MessageEncoderSettings\u003E\n\u002B;  V05 loc1         [V05,T18] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V06 loc2         [V06,T19] (  2,  2   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.WireProtocol.Messages.Encoders.MessageEncoderSettings\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V08 tmp1         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoDatabase\u002B\u003C\u003Ec__DisplayClass61_0\u00601[long]\u003E\n ;  V09 tmp2         [V09,T00] ( 11, 22   )     ref  -\u003E  [rbp-0x40]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Core.Operations.FindOperation\u00601[long]\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp5         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp6         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[long]]\u003E\n ;  V14 tmp7         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[long]]]\u003E\n-;  V15 tmp8         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[long]\u003E\n-;  V16 tmp9         [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp10        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp8         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[long]\u003E\n\u002B;  V16 tmp9         [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp10        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp11        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp12        [V19,T19] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp13        [V20,T16] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp12        [V19,T20] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp13        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp14        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V22 tmp15        [V22    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n ;* V23 tmp16        [V23    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n@@ -45,14 \u002B45,14 @@\n ;  V34 tmp27        [V34,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V35 tmp28        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V36 tmp29        [V36    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V37 tmp30        [V37,T17] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V38 tmp31        [V38,T18] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V39 tmp32        [V39,T22] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V40 tmp33        [V40,T23] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V37 tmp30        [V37,T16] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V38 tmp31        [V38,T17] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V39 tmp32        [V39,T21] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V40 tmp33        [V40,T22] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V41 tmp34        [V41    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V22.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V42 tmp35        [V42    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V22.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V43 tmp36        [V43,T24] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V31.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V44 tmp37        [V44,T25] (  2,  2   )    long  -\u003E  rdx         \u0022field V31.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V43 tmp36        [V43,T23] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V31.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V44 tmp37        [V44,T24] (  2,  2   )    long  -\u003E  rdx         \u0022field V31.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V45 tmp38        [V45,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V46 tmp39        [V46,T10] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp40        [V47,T11] (  3,  6   )   byref  -\u003E  r13         single-def \u0022Block morph LHS addr\u0022\n@@ -85,36 \u002B85,17 @@ G_M34033_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M34033_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M34033_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M34033_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M34033_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M34033_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M34033_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M34033_IG05:\n-       cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M34033_IG11\n-       mov      rsi, gword ptr [rbx\u002B0x18]\n        mov      rdi, rax\n\u002B       cmp      byte  ptr [rbp-0x30], 0\n\u002B       je       G_M34033_IG08\n\u002B       mov      rsi, gword ptr [rbx\u002B0x18]\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -135,16 \u002B116,16 @@ G_M34033_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M34033_IG07\n-\t\t\t\t\t\t;; size=116 bbWeight=1 PerfScore 28.50\n-G_M34033_IG06:\n\u002B       je       SHORT G_M34033_IG04\n\u002B\t\t\t\t\t\t;; size=199 bbWeight=1 PerfScore 40.75\n\u002BG_M34033_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M34033_IG07:\n\u002BG_M34033_IG04:\n        mov      rax, gword ptr [rbp-0x40]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -187,7 \u002B168,7 @@ G_M34033_IG07:\n        mov      r11, 0xD1FFAB1E      ; code for MongoDB.Driver.IMongoClient:get_Settings():MongoDB.Driver.MongoClientSettings:this\n        call     [r11]MongoDB.Driver.IMongoClient:get_Settings():MongoDB.Driver.MongoClientSettings:this\n \t\t\t\t\t\t;; size=221 bbWeight=1 PerfScore 53.25\n-G_M34033_IG08:\n\u002BG_M34033_IG05:\n        movzx    rdi, byte  ptr [rax\u002B0xE1]\n        mov      byte  ptr [r15\u002B0x79], dil\n        lea      rdi, bword ptr [r12\u002B0x18]\n@@ -234,7 \u002B215,7 @@ G_M34033_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[long]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[long]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[long]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=231 bbWeight=1 PerfScore 29.50\n-G_M34033_IG09:\n\u002BG_M34033_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -244,17 \u002B225,17 @@ G_M34033_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M34033_IG10:\n\u002BG_M34033_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M34033_IG11:\n\u002BG_M34033_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 813, prolog size 25, PerfScore 146.75, instruction count 174, allocated bytes for code 813 (MethodHash=7e8f7b0e) for method MongoDB.Driver.MongoDatabase:CreateAggregateToCollectionResultCursor[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[long],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)\n\u002B; Total bytes of code 761, prolog size 25, PerfScore 138.75, instruction count 161, allocated bytes for code 761 (MethodHash=7e8f7b0e) for method MongoDB.Driver.MongoDatabase:CreateAggregateToCollectionResultCursor[long](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[long],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[long]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":813,"DiffBytes":761},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase:CreateAggregateToCollectionResultCursor[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[short],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)","Category":"improvement","Description":"813 -\u003E 761 bytes (-52)","ExtraInfo":null,"Diff":"@@ -10,11 \u002B10,11 @@\n ;\n ;  V00 this         [V00,T02] (  9,  9   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.MongoDatabase\u003E\n ;  V01 arg1         [V01,T12] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.IClientSessionHandle\u003E\n-;  V02 arg2         [V02,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n\u002B;  V02 arg2         [V02,T06] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n ;  V03 arg3         [V03,T13] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V04 loc0         [V04,T01] ( 11, 11   )     ref  -\u003E  r12         class-hnd exact single-def \u003CMongoDB.Driver.MongoDatabase\u002B\u003C\u003Ec__DisplayClass61_0\u00601[short]\u003E\n-;  V05 loc1         [V05,T20] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n-;  V06 loc2         [V06,T21] (  2,  2   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.WireProtocol.Messages.Encoders.MessageEncoderSettings\u003E\n\u002B;  V05 loc1         [V05,T18] (  2,  2   )     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.CollectionNamespace\u003E\n\u002B;  V06 loc2         [V06,T19] (  2,  2   )     ref  -\u003E  [rbp-0x38]  class-hnd exact spill-single-def \u003CMongoDB.Driver.Core.WireProtocol.Messages.Encoders.MessageEncoderSettings\u003E\n ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V08 tmp1         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.MongoDatabase\u002B\u003C\u003Ec__DisplayClass61_0\u00601[short]\u003E\n ;  V09 tmp2         [V09,T00] ( 11, 22   )     ref  -\u003E  [rbp-0x40]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Core.Operations.FindOperation\u00601[short]\u003E\n@@ -23,12 \u002B23,12 @@\n ;  V12 tmp5         [V12,T03] (  4,  8   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Action\u003E\n ;  V13 tmp6         [V13,T04] (  4,  8   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[short]]\u003E\n ;  V14 tmp7         [V14,T05] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[short]]]\u003E\n-;  V15 tmp8         [V15,T08] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[short]\u003E\n-;  V16 tmp9         [V16,T06] (  4,  7   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V17 tmp10        [V17    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V15 tmp8         [V15,T07] (  3,  6   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.DeferredAsyncCursor\u00601[short]\u003E\n\u002B;  V16 tmp9         [V16,T08] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V17 tmp10        [V17    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V18 tmp11        [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V19 tmp12        [V19,T19] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V20 tmp13        [V20,T16] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V19 tmp12        [V19,T20] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V20 tmp13        [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V21 tmp14        [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V22 tmp15        [V22    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inlining Arg\u0022 \u003CSystem.Nullable\u00601[int]\u003E\n ;* V23 tmp16        [V23    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n@@ -45,14 \u002B45,14 @@\n ;  V34 tmp27        [V34,T15] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;* V35 tmp28        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.MongoClientSettings\u003E\n ;* V36 tmp29        [V36    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inlining Arg\u0022\n-;  V37 tmp30        [V37,T17] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V38 tmp31        [V38,T18] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V39 tmp32        [V39,T22] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V40 tmp33        [V40,T23] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V37 tmp30        [V37,T16] (  3,  3   )   ubyte  -\u003E  r15         single-def \u0022field V10.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V38 tmp31        [V38,T17] (  3,  2.50)     int  -\u003E  r13         single-def \u0022field V10.value (fldOffset=0x4)\u0022 P-INDEP\n\u002B;  V39 tmp32        [V39,T21] (  2,  2   )   ubyte  -\u003E  rsi         single-def \u0022field V11.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V40 tmp33        [V40,T22] (  2,  2   )    long  -\u003E  rdx         single-def \u0022field V11.value (fldOffset=0x8)\u0022 P-INDEP\n ;* V41 tmp34        [V41    ] (  0,  0   )   ubyte  -\u003E  zero-ref    single-def \u0022field V22.hasValue (fldOffset=0x0)\u0022 P-INDEP\n ;* V42 tmp35        [V42    ] (  0,  0   )     int  -\u003E  zero-ref    single-def \u0022field V22.value (fldOffset=0x4)\u0022 P-INDEP\n-;  V43 tmp36        [V43,T24] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V31.hasValue (fldOffset=0x0)\u0022 P-INDEP\n-;  V44 tmp37        [V44,T25] (  2,  2   )    long  -\u003E  rdx         \u0022field V31.value (fldOffset=0x8)\u0022 P-INDEP\n\u002B;  V43 tmp36        [V43,T23] (  2,  2   )   ubyte  -\u003E  rax         \u0022field V31.hasValue (fldOffset=0x0)\u0022 P-INDEP\n\u002B;  V44 tmp37        [V44,T24] (  2,  2   )    long  -\u003E  rdx         \u0022field V31.value (fldOffset=0x8)\u0022 P-INDEP\n ;  V45 tmp38        [V45,T09] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V46 tmp39        [V46,T10] (  3,  6   )     ref  -\u003E  rdi         single-def \u0022BlockOp address local\u0022\n ;  V47 tmp40        [V47,T11] (  3,  6   )   byref  -\u003E  r13         single-def \u0022Block morph LHS addr\u0022\n@@ -85,36 \u002B85,17 @@ G_M7689_IG02:\n        lea      rdi, bword ptr [r12\u002B0x20]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      r13, gword ptr [r15\u002B0x08]\n-       test     r13, r13\n-       je       G_M7689_IG10\n-       mov      rsi, r13\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M7689_IG04\n-\t\t\t\t\t\t;; size=87 bbWeight=1 PerfScore 13.25\n-G_M7689_IG03:\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M7689_IG05\n-\t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 4.88\n-G_M7689_IG04:\n\u002B       mov      rsi, gword ptr [r15\u002B0x08]\n\u002B       test     rsi, rsi\n\u002B       je       G_M7689_IG07\n        lea      rdx, [rbp-0x30]\n-       mov      rsi, r13\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[MongoDB.Bson.BsonDocument](System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.BsonDocument],byref):MongoDB.Bson.BsonDocument\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M7689_IG05:\n-       cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M7689_IG11\n-       mov      rsi, gword ptr [rbx\u002B0x18]\n        mov      rdi, rax\n\u002B       cmp      byte  ptr [rbp-0x30], 0\n\u002B       je       G_M7689_IG08\n\u002B       mov      rsi, gword ptr [rbx\u002B0x18]\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        call     [rax]MongoDB.Driver.AggregateHelper:GetOutCollection(MongoDB.Bson.BsonDocument,MongoDB.Driver.DatabaseNamespace):MongoDB.Driver.CollectionNamespace\n        mov      r13, rax\n@@ -135,16 \u002B116,16 @@ G_M7689_IG05:\n        movzx    r15, byte  ptr [rdi\u002B0x34]\n        mov      r13d, dword ptr [rdi\u002B0x38]\n        test     r15d, r15d\n-       je       SHORT G_M7689_IG07\n-\t\t\t\t\t\t;; size=116 bbWeight=1 PerfScore 28.50\n-G_M7689_IG06:\n\u002B       je       SHORT G_M7689_IG04\n\u002B\t\t\t\t\t\t;; size=199 bbWeight=1 PerfScore 40.75\n\u002BG_M7689_IG03:\n        mov      edi, r13d\n        xor      esi, esi\n        mov      rdx, 0xD1FFAB1E      ; \u0027value\u0027\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n        call     [rax]MongoDB.Driver.Core.Misc.Ensure:IsGreaterThanOrEqualTo[int](int,int,System.String):int\n \t\t\t\t\t\t;; size=27 bbWeight=0.50 PerfScore 2.00\n-G_M7689_IG07:\n\u002BG_M7689_IG04:\n        mov      rax, gword ptr [rbp-0x40]\n        mov      byte  ptr [rax\u002B0x80], r15b\n        mov      dword ptr [rax\u002B0x84], r13d\n@@ -187,7 \u002B168,7 @@ G_M7689_IG07:\n        mov      r11, 0xD1FFAB1E      ; code for MongoDB.Driver.IMongoClient:get_Settings():MongoDB.Driver.MongoClientSettings:this\n        call     [r11]MongoDB.Driver.IMongoClient:get_Settings():MongoDB.Driver.MongoClientSettings:this\n \t\t\t\t\t\t;; size=221 bbWeight=1 PerfScore 53.25\n-G_M7689_IG08:\n\u002BG_M7689_IG05:\n        movzx    rdi, byte  ptr [rax\u002B0xE1]\n        mov      byte  ptr [r15\u002B0x79], dil\n        lea      rdi, bword ptr [r12\u002B0x18]\n@@ -234,7 \u002B215,7 @@ G_M7689_IG08:\n        call     [rax]MongoDB.Driver.DeferredAsyncCursor\u00601[short]:.ctor(System.Action,System.Func\u00602[System.Threading.CancellationToken,MongoDB.Driver.IAsyncCursor\u00601[short]],System.Func\u00602[System.Threading.CancellationToken,System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[short]]]):this\n        mov      rax, r13\n \t\t\t\t\t\t;; size=231 bbWeight=1 PerfScore 29.50\n-G_M7689_IG09:\n\u002BG_M7689_IG06:\n        add      rsp, 24\n        pop      rbx\n        pop      r12\n@@ -244,17 \u002B225,17 @@ G_M7689_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M7689_IG10:\n\u002BG_M7689_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M7689_IG11:\n\u002BG_M7689_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 813, prolog size 25, PerfScore 146.75, instruction count 174, allocated bytes for code 813 (MethodHash=853fe1f6) for method MongoDB.Driver.MongoDatabase:CreateAggregateToCollectionResultCursor[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[short],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)\n\u002B; Total bytes of code 761, prolog size 25, PerfScore 138.75, instruction count 161, allocated bytes for code 761 (MethodHash=853fe1f6) for method MongoDB.Driver.MongoDatabase:CreateAggregateToCollectionResultCursor[short](MongoDB.Driver.IClientSessionHandle,MongoDB.Driver.RenderedPipelineDefinition\u00601[short],MongoDB.Driver.AggregateOptions):MongoDB.Driver.IAsyncCursor\u00601[short]:this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":813,"DiffBytes":761},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.Linq.Linq3Implementation.SerializerFinders.SerializerFinderVisitor:\u003CVisitNewArray\u003Eg__DeduceNewArrayInitSerializers|44_2(byref):this (FullOpts)","Category":"improvement","Description":"1,514 -\u003E 1,465 bytes (-49)","ExtraInfo":null,"Diff":"@@ -10,7 \u002B10,7 @@\n ;\n ;  V00 this         [V00,T00] ( 15, 25   )     ref  -\u003E  rbx         this class-hnd single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.SerializerFinders.SerializerFinderVisitor\u003E\n ;  V01 arg1         [V01,T16] (  7,  5.50)   byref  -\u003E  r15         single-def\n-;  V02 loc0         [V02,T06] ( 16, 16.50)     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V02 loc0         [V02,T06] ( 15, 16   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n ;  V03 loc1         [V03    ] (  8, 10   )     ref  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n ;  V04 loc2         [V04,T22] (  9,  4.50)     ref  -\u003E  r13         ld-addr-op class-hnd \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n ;  V05 loc3         [V05,T30] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Serializers.IPolymorphicArraySerializer\u003E\n@@ -18,21 \u002B18,21 @@\n ;  V07 loc5         [V07,T07] (  4, 12   )     ref  -\u003E  [rbp-0x48]  class-hnd spill-single-def \u003CSystem.Linq.Expressions.Expression\u003E\n ;  V08 loc6         [V08,T05] ( 12, 18   )     ref  -\u003E  [rbp-0x50]  do-not-enreg[M] class-hnd EH-live \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.Expression]\u003E\n ;  V09 loc7         [V09,T08] (  4, 12   )     ref  -\u003E  r13         class-hnd \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V10 loc8         [V10,T39] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.SerializerFinders.SerializerFinderVisitor\u002B\u003C\u003Ec__DisplayClass44_1\u003E\n\u002B;  V10 loc8         [V10,T37] (  3,  1.50)     ref  -\u003E  r13         class-hnd exact single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.SerializerFinders.SerializerFinderVisitor\u002B\u003C\u003Ec__DisplayClass44_1\u003E\n ;  V11 loc9         [V11,T09] (  4, 12   )     ref  -\u003E  r13         class-hnd \u003CSystem.Linq.Expressions.Expression\u003E\n ;  V12 loc10        [V12    ] (  3,  1.50)     ref  -\u003E  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd \u003CSystem.Collections.Generic.IReadOnlyList\u00601[MongoDB.Bson.Serialization.IBsonSerializer]\u003E\n ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;* V14 tmp1         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.SerializerFinders.SerializerFinderVisitor\u002B\u003C\u003Ec__DisplayClass44_1\u003E\n ;  V15 tmp2         [V15,T23] (  4,  4   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Func\u00602[System.Linq.Expressions.Expression,bool]\u003E\n ;* V16 tmp3         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Linq.Expressions.NewArrayExpression\u003E\n-;* V17 tmp4         [V17,T48] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n\u002B;* V17 tmp4         [V17,T47] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V18 tmp5         [V18,T31] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Linq.Expressions.NewArrayExpression\u003E\n ;* V19 tmp6         [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n-;  V20 tmp7         [V20,T45] (  2,  1   )   ubyte  -\u003E  rsi         \u0022Inline return value spill temp\u0022\n\u002B;  V20 tmp7         [V20,T44] (  2,  1   )   ubyte  -\u003E  rsi         \u0022Inline return value spill temp\u0022\n ;  V21 tmp8         [V21,T32] (  3,  3   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.SerializerFinders.SerializerMap\u003E\n-;  V22 tmp9         [V22,T43] (  3,  1.50)   ubyte  -\u003E  rsi         \u0022Inline return value spill temp\u0022\n\u002B;  V22 tmp9         [V22,T42] (  3,  1.50)   ubyte  -\u003E  rsi         \u0022Inline return value spill temp\u0022\n ;  V23 tmp10        [V23,T33] (  3,  3   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Linq.Expressions.Expression,MongoDB.Bson.Serialization.IBsonSerializer]\u003E\n-;  V24 tmp11        [V24,T40] (  3,  1.50)   byref  -\u003E  rax         single-def \u0022Inline stloc first use temp\u0022\n\u002B;  V24 tmp11        [V24,T38] (  3,  1.50)   byref  -\u003E  rax         single-def \u0022Inline stloc first use temp\u0022\n ;* V25 tmp12        [V25    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V26 tmp13        [V26,T01] (  3, 20   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.SerializerFinders.SerializerMap\u003E\n ;* V27 tmp14        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    ld-addr-op class-hnd \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n@@ -42,7 \u002B42,7 @@\n ;  V31 tmp18        [V31,T24] (  2,  4   )   byref  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n ;  V32 tmp19        [V32,T13] (  2,  8   )     ref  -\u003E  rdx         class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n ;* V33 tmp20        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n-;  V34 tmp21        [V34,T41] (  3,  1.50)     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V34 tmp21        [V34,T39] (  3,  1.50)     ref  -\u003E  r12         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.Expression]\u003E\n ;* V35 tmp22        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.Expression]\u003E\n ;* V36 tmp23        [V36    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V37 tmp24        [V37,T02] (  3, 20   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.SerializerFinders.SerializerMap\u003E\n@@ -52,11 \u002B52,11 @@\n ;  V41 tmp28        [V41,T11] (  3, 12   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.Dictionary\u00602[System.Linq.Expressions.Expression,MongoDB.Bson.Serialization.IBsonSerializer]\u003E\n ;  V42 tmp29        [V42,T25] (  2,  4   )   byref  -\u003E  rax         \u0022Inline stloc first use temp\u0022\n ;  V43 tmp30        [V43,T14] (  2,  8   )     ref  -\u003E  rdx         class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n-;  V44 tmp31        [V44    ] (  3,  1.50)   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V44 tmp31        [V44    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V45 tmp32        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V46 tmp33        [V46,T36] (  4,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V47 tmp34        [V47,T37] (  4,  2   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V48 tmp35        [V48,T42] (  3,  1.50)     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V46 tmp33        [V46,T40] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;* V47 tmp34        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V48 tmp35        [V48,T41] (  3,  1.50)     ref  -\u003E  r13         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Collections.Generic.IEnumerator\u00601[System.Linq.Expressions.Expression]\u003E\n ;* V49 tmp36        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline stloc first use temp\u0022 \u003CSystem.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.Expression]\u003E\n ;* V50 tmp37        [V50    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V51 tmp38        [V51,T03] (  3, 20   )     ref  -\u003E  rdi         class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.SerializerFinders.SerializerMap\u003E\n@@ -70,15 \u002B70,15 @@\n ;* V59 tmp46        [V59    ] (  0,  0   )   ubyte  -\u003E  zero-ref    \u0022Inline return value spill temp\u0022\n ;  V60 tmp47        [V60,T21] (  3,  5   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.SerializerFinders.SerializerMap\u003E\n ;* V61 tmp48        [V61    ] (  0,  0   )     ref  -\u003E  zero-ref    ld-addr-op class-hnd \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n-;  V62 tmp49        [V62,T46] (  2,  1   )   ubyte  -\u003E  rdx         \u0022Inline return value spill temp\u0022\n-;  V63 tmp50        [V63,T47] (  2,  1   )   ubyte  -\u003E  rdx         \u0022Inline return value spill temp\u0022\n\u002B;  V62 tmp49        [V62,T45] (  2,  1   )   ubyte  -\u003E  rdx         \u0022Inline return value spill temp\u0022\n... diff truncated; middle omitted ...\n        mov      rsi, r13\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Linq.Linq3Implementation.SerializerFinders.SerializerMap:AddSerializer(System.Linq.Expressions.Expression,MongoDB.Bson.Serialization.IBsonSerializer):this\n        cmp      dword ptr [rdi], edi\n        call     [rax]MongoDB.Driver.Linq.Linq3Implementation.SerializerFinders.SerializerMap:AddSerializer(System.Linq.Expressions.Expression,MongoDB.Bson.Serialization.IBsonSerializer):this\n-       jmp      SHORT G_M58149_IG26\n\u002B       jmp      SHORT G_M58149_IG25\n \t\t\t\t\t\t;; size=27 bbWeight=2 PerfScore 21.00\n-G_M58149_IG31:\n\u002BG_M58149_IG30:\n        mov      rdi, gword ptr [rbp-0x50]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=17 bbWeight=0.50 PerfScore 2.12\n-G_M58149_IG32:\n\u002BG_M58149_IG31:\n        mov      rsi, gword ptr [r15]\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        cmp      byte  ptr [rdi], dil\n        test     rsi, rsi\n-       je       SHORT G_M58149_IG34\n\u002B       je       SHORT G_M58149_IG33\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 7.25\n-G_M58149_IG33:\n\u002BG_M58149_IG32:\n        mov      rdi, gword ptr [rdi\u002B0x08]\n        cmp      byte  ptr [rdi], dil\n        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary\u00602[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this\n@@ -417,22 \u002B403,22 @@ G_M58149_IG33:\n        setne    dl\n        movzx    rdx, dl\n        test     edx, edx\n-       jne      G_M58149_IG37\n\u002B       jne      G_M58149_IG36\n \t\t\t\t\t\t;; size=36 bbWeight=0.50 PerfScore 4.75\n-G_M58149_IG34:\n\u002BG_M58149_IG33:\n        lea      rdx, [rbp-0x38]\n        mov      rdi, rbx\n        mov      rsi, r14\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Linq.Linq3Implementation.SerializerFinders.SerializerFinderVisitor:AreAllKnown(System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.Expression],byref):bool:this\n        call     [rax]MongoDB.Driver.Linq.Linq3Implementation.SerializerFinders.SerializerFinderVisitor:AreAllKnown(System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.Expression],byref):bool:this\n        test     eax, eax\n-       je       SHORT G_M58149_IG37\n\u002B       je       SHORT G_M58149_IG36\n        lea      rsi, [rbp-0x30]\n        mov      rdi, gword ptr [rbp-0x38]\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Linq.Linq3Implementation.SerializerFinders.SerializerFinderVisitor:\u003CVisitNewArray\u003Eg__AllItemSerializersAreEqual|44_3(System.Collections.Generic.IReadOnlyList\u00601[MongoDB.Bson.Serialization.IBsonSerializer],byref):bool\n        call     [rax]MongoDB.Driver.Linq.Linq3Implementation.SerializerFinders.SerializerFinderVisitor:\u003CVisitNewArray\u003Eg__AllItemSerializersAreEqual|44_3(System.Collections.Generic.IReadOnlyList\u00601[MongoDB.Bson.Serialization.IBsonSerializer],byref):bool\n        test     eax, eax\n-       jne      SHORT G_M58149_IG35\n\u002B       jne      SHORT G_M58149_IG34\n        mov      rdi, gword ptr [r15]\n        mov      rdi, gword ptr [rdi\u002B0x08]\n        mov      rax, qword ptr [rdi]\n@@ -443,15 \u002B429,15 @@ G_M58149_IG34:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Linq.Linq3Implementation.Serializers.PolymorphicArraySerializer:Create(System.Type,System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.Serialization.IBsonSerializer]):MongoDB.Bson.Serialization.IBsonSerializer\n        call     [rax]MongoDB.Driver.Linq.Linq3Implementation.Serializers.PolymorphicArraySerializer:Create(System.Type,System.Collections.Generic.IEnumerable\u00601[MongoDB.Bson.Serialization.IBsonSerializer]):MongoDB.Bson.Serialization.IBsonSerializer\n        mov      r13, rax\n-       jmp      SHORT G_M58149_IG36\n\u002B       jmp      SHORT G_M58149_IG35\n \t\t\t\t\t\t;; size=91 bbWeight=0.50 PerfScore 14.62\n-G_M58149_IG35:\n\u002BG_M58149_IG34:\n        mov      rdi, gword ptr [rbp-0x30]\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Bson.Serialization.Serializers.ArraySerializer:Create(MongoDB.Bson.Serialization.IBsonSerializer):MongoDB.Bson.Serialization.IBsonSerializer\n        call     [rax]MongoDB.Bson.Serialization.Serializers.ArraySerializer:Create(MongoDB.Bson.Serialization.IBsonSerializer):MongoDB.Bson.Serialization.IBsonSerializer\n        mov      r13, rax\n \t\t\t\t\t\t;; size=19 bbWeight=0.50 PerfScore 2.25\n-G_M58149_IG36:\n\u002BG_M58149_IG35:\n        mov      rdi, gword ptr [rbx\u002B0x08]\n        mov      rsi, gword ptr [r15]\n        mov      rdx, r13\n@@ -459,10 \u002B445,10 @@ G_M58149_IG36:\n        cmp      dword ptr [rdi], edi\n        call     [rax]MongoDB.Driver.Linq.Linq3Implementation.SerializerFinders.SerializerMap:AddSerializer(System.Linq.Expressions.Expression,MongoDB.Bson.Serialization.IBsonSerializer):this\n \t\t\t\t\t\t;; size=24 bbWeight=0.50 PerfScore 4.75\n-G_M58149_IG37:\n\u002BG_M58149_IG36:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M58149_IG38:\n\u002BG_M58149_IG37:\n        add      rsp, 40\n        pop      rbx\n        pop      r12\n@@ -472,82 \u002B458,82 @@ G_M58149_IG38:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 4.25\n-G_M58149_IG39:\n\u002BG_M58149_IG38:\n        mov      rdi, gword ptr [rdi\u002B0x08]\n        cmp      byte  ptr [rdi], dil\n        mov      rsi, rax\n        mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary\u00602[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this\n        call     [rcx]System.Collections.Generic.Dictionary\u00602[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this\n        test     rax, rax\n-       jne      SHORT G_M58149_IG40\n\u002B       jne      SHORT G_M58149_IG39\n        xor      edi, edi\n-       jmp      SHORT G_M58149_IG41\n\u002B       jmp      SHORT G_M58149_IG40\n \t\t\t\t\t\t;; size=31 bbWeight=2 PerfScore 22.00\n-G_M58149_IG40:\n\u002BG_M58149_IG39:\n        mov      edi, 1\n \t\t\t\t\t\t;; size=5 bbWeight=2 PerfScore 0.50\n-G_M58149_IG41:\n\u002BG_M58149_IG40:\n        test     edi, edi\n        jne      G_M58149_IG18\n        jmp      G_M58149_IG17\n \t\t\t\t\t\t;; size=13 bbWeight=2 PerfScore 6.50\n-G_M58149_IG42:\n\u002BG_M58149_IG41:\n        mov      rdi, 0xD1FFAB1E      ; System.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.Expression]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n        jmp      G_M58149_IG06\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M58149_IG43:\n\u002BG_M58149_IG42:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M58149_IG44:\n\u002BG_M58149_IG43:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M58149_IG45:\n\u002BG_M58149_IG44:\n        mov      rdi, 0xD1FFAB1E      ; System.SZGenericArrayEnumerator\u00601[System.Linq.Expressions.Expression]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      G_M58149_IG23\n\u002B       jmp      G_M58149_IG22\n \t\t\t\t\t\t;; size=27 bbWeight=0 PerfScore 0.00\n-G_M58149_IG46:\n\u002BG_M58149_IG45:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M58149_IG47:\n\u002BG_M58149_IG46:\n        cmp      gword ptr [rbp-0x50], 0\n-       je       SHORT G_M58149_IG48\n\u002B       je       SHORT G_M58149_IG47\n        mov      rdi, gword ptr [rbp-0x50]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M58149_IG48:\n\u002BG_M58149_IG47:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M58149_IG49:\n\u002BG_M58149_IG48:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n-G_M58149_IG50:\n\u002BG_M58149_IG49:\n        push     rax\n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M58149_IG51:\n\u002BG_M58149_IG50:\n        cmp      gword ptr [rbp-0x50], 0\n-       je       SHORT G_M58149_IG52\n\u002B       je       SHORT G_M58149_IG51\n        mov      rdi, gword ptr [rbp-0x50]\n        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this\n        call     [r11]System.IDisposable:Dispose():this\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M58149_IG52:\n\u002BG_M58149_IG51:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=0 PerfScore 0.00\n-G_M58149_IG53:\n\u002BG_M58149_IG52:\n        add      rsp, 8\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1514, prolog size 41, PerfScore 480.83, instruction count 360, allocated bytes for code 1514 (MethodHash=5bb41cda) for method MongoDB.Driver.Linq.Linq3Implementation.SerializerFinders.SerializerFinderVisitor:\u003CVisitNewArray\u003Eg__DeduceNewArrayInitSerializers|44_2(byref):this (FullOpts)\n\u002B; Total bytes of code 1465, prolog size 41, PerfScore 473.46, instruction count 348, allocated bytes for code 1465 (MethodHash=5bb41cda) for method MongoDB.Driver.Linq.Linq3Implementation.SerializerFinders.SerializerFinderVisitor:\u003CVisitNewArray\u003Eg__DeduceNewArrayInitSerializers|44_2(byref):this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1514,"DiffBytes":1465},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.MethodTranslators.SplitMethodToAggregationExpressionTranslator:Translate(MongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext,System.Linq.Expressions.MethodCallExpression):MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression (FullOpts)","Category":"improvement","Description":"2,682 -\u003E 2,633 bytes (-49)","ExtraInfo":null,"Diff":"@@ -8,67 \u002B8,67 @@\n ; 0 inlinees with PGO data; 108 single block inlinees; 21 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 arg0         [V00,T03] (  7,  5   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext\u003E\n\u002B;  V00 arg0         [V00,T02] (  7,  5   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext\u003E\n ;  V01 arg1         [V01,T00] ( 17, 11.50)     ref  -\u003E  rbx         class-hnd single-def \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n ;  V02 loc0         [V02,T01] ( 21, 11.50)     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Reflection.MethodInfo\u003E\n-;  V03 loc1         [V03,T02] ( 13,  7   )     ref  -\u003E  r12         class-hnd single-def \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V03 loc1         [V03,T04] ( 12,  6.50)     ref  -\u003E  r12         class-hnd single-def \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n ;  V04 loc2         [V04,T07] (  8,  5.50)     ref  -\u003E  [rbp-0x38]  class-hnd \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression\u003E\n-;  V05 loc3         [V05,T48] (  3,  1.50)     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression\u003E\n\u002B;  V05 loc3         [V05,T47] (  3,  1.50)     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression\u003E\n ;  V06 loc4         [V06,T32] (  5,  2.50)     ref  -\u003E  [rbp-0x40]  class-hnd \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression\u003E\n-;  V07 loc5         [V07,T61] (  2,  1   )     int  -\u003E  rax        \n-;  V08 loc6         [V08,T49] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u003Cchar[]\u003E\n-;  V09 loc7         [V09,T50] (  3,  1.50)     ref  -\u003E  rax         class-hnd exact single-def \u003CSystem.String[]\u003E\n-;  V10 loc8         [V10,T51] (  3,  1.50)     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;  V07 loc5         [V07,T59] (  2,  1   )     int  -\u003E  rax        \n\u002B;  V08 loc6         [V08,T48] (  3,  1.50)     ref  -\u003E  rax         class-hnd single-def \u003Cchar[]\u003E\n\u002B;  V09 loc7         [V09,T49] (  3,  1.50)     ref  -\u003E  rax         class-hnd exact single-def \u003CSystem.String[]\u003E\n\u002B;  V10 loc8         [V10,T50] (  3,  1.50)     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Linq.Expressions.Expression\u003E\n ;* V11 loc9         [V11    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression\u003E\n ;  V12 loc10        [V12,T33] (  5,  2.50)     ref  -\u003E  [rbp-0x48]  class-hnd \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression\u003E\n ;  V13 loc11        [V13,T14] (  6,  3   )     ref  -\u003E  [rbp-0x50]  class-hnd \u003CSystem.Linq.Expressions.Expression\u003E\n ;* V14 loc12        [V14    ] (  0,  0   )     int  -\u003E  zero-ref    single-def\n-;  V15 loc13        [V15,T35] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n\u002B;  V15 loc13        [V15,T34] (  2,  2   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n ;# V16 OutArgs      [V16    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V17 tmp1         [V17,T69] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.ExpressionNotSupportedException\u003E\n\u002B;  V17 tmp1         [V17,T68] (  3,  0   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.ExpressionNotSupportedException\u003E\n ;  V18 tmp2         [V18,T06] (  3,  6   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression\u003E\n-;  V19 tmp3         [V19,T62] (  3,  1.50)     int  -\u003E  r13        \n\u002B;  V19 tmp3         [V19,T60] (  3,  1.50)     int  -\u003E  r13        \n ;  V20 tmp4         [V20,T16] (  3,  3   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.Text.RegularExpressions.Regex\u003E\n ;  V21 tmp5         [V21,T17] (  3,  3   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Bson.BsonRegularExpression\u003E\n ;* V22 tmp6         [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstVarExpression\u003E\n ;* V23 tmp7         [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Reflection.MethodInfoSet\u003E\n ;* V24 tmp8         [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression\u003E\n ;  V25 tmp9         [V25,T11] (  4,  4   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V26 tmp10        [V26,T52] (  3,  1.50)     ref  -\u003E  [rbp-0x58]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression\u003E\n\u002B;  V26 tmp10        [V26,T51] (  3,  1.50)     ref  -\u003E  [rbp-0x58]  class-hnd spill-single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression\u003E\n ;* V27 tmp11        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression\u003E\n ;* V28 tmp12        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression\u003E\n ;* V29 tmp13        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Reflection.MethodInfoSet\u003E\n ;  V30 tmp14        [V30,T18] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V31 tmp15        [V31,T19] (  3,  3   )     ref  -\u003E  [rbp-0x60]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstConstantExpression\u003E\n-;  V32 tmp16        [V32,T53] (  3,  1.50)     ref  -\u003E  [rbp-0x68]  class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n\u002B;  V32 tmp16        [V32,T52] (  3,  1.50)     ref  -\u003E  [rbp-0x68]  class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n ;* V33 tmp17        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Reflection.MethodInfoSet\u003E\n ;  V34 tmp18        [V34,T20] (  3,  3   )     ref  -\u003E  rax         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V35 tmp19        [V35,T21] (  3,  3   )     ref  -\u003E  [rbp-0x70]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstConstantExpression\u003E\n-;  V36 tmp20        [V36,T54] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n\u002B;  V36 tmp20        [V36,T53] (  3,  1.50)     ref  -\u003E  [rbp-0x78]  class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n ;* V37 tmp21        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Reflection.MethodInfoSet\u003E\n ;  V38 tmp22        [V38,T22] (  3,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.__Canon\u003E\n ;  V39 tmp23        [V39,T23] (  3,  3   )     ref  -\u003E  [rbp-0x80]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstConstantExpression\u003E\n-;  V40 tmp24        [V40,T55] (  3,  1.50)     ref  -\u003E  [rbp-0x88]  class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n\u002B;  V40 tmp24        [V40,T54] (  3,  1.50)     ref  -\u003E  [rbp-0x88]  class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n ;* V41 tmp25        [V41    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Reflection.MethodInfoSet\u003E\n ;  V42 tmp26        [V42,T24] (  3,  3   )     ref  -\u003E  rdi         class-hnd exact single-def \u0022Inlining Arg\u0022 \u003CSystem.String\u003E\n ;  V43 tmp27        [V43,T25] (  3,  3   )     ref  -\u003E  [rbp-0x90]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstConstantExpression\u003E\n-;  V44 tmp28        [V44,T56] (  3,  1.50)     ref  -\u003E  [rbp-0x98]  class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n\u002B;  V44 tmp28        [V44,T55] (  3,  1.50)     ref  -\u003E  [rbp-0x98]  class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonValue\u003E\n... diff truncated; middle omitted ...\n        mov      edi, dword ptr [rax\u002B0x08]\n        cmp      edi, 1\n-       jne      G_M42206_IG45\n\u002B       jne      G_M42206_IG43\n        movzx    rdi, word  ptr [rax\u002B0x10]\n        mov      esi, 1\n        call     System.String:.ctor(char,int):this\n@@ -528,7 \u002B528,7 @@ G_M42206_IG28:\n        mov      gword ptr [rbp-0xA0], rax\n        mov      dword ptr [rax\u002B0x18], 18\n        test     r13, r13\n-       je       G_M42206_IG40\n\u002B       je       G_M42206_IG38\n        lea      rdi, bword ptr [rax\u002B0x08]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -547,44 \u002B547,28 @@ G_M42206_IG28:\n \t\t\t\t\t\t;; size=106 bbWeight=0.50 PerfScore 8.88\n G_M42206_IG29:\n        mov      r13, gword ptr [rbp-0x38]\n-       jmp      G_M42206_IG37\n\u002B       jmp      G_M42206_IG35\n \t\t\t\t\t\t;; size=9 bbWeight=0.25 PerfScore 0.75\n G_M42206_IG30:\n-       mov      rsi, r12\n-       mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\n-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS\n-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS\n-       test     rax, rax\n-       je       SHORT G_M42206_IG31\n-       lea      rsi, [rbp-0x30]\n-       mov      rdi, rax\n-       mov      rax, qword ptr [rax]\n-       mov      rax, qword ptr [rax\u002B0x50]\n-       call     [rax\u002B0x28]System.Linq.Enumerable\u002BIterator\u00601[System.__Canon]:TryGetLast(byref):System.__Canon:this\n-       jmp      SHORT G_M42206_IG32\n-\t\t\t\t\t\t;; size=49 bbWeight=0.50 PerfScore 7.38\n-G_M42206_IG31:\n        lea      rdx, [rbp-0x30]\n        mov      rsi, r12\n        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:TryGetLastNonIterator[System.Linq.Expressions.Expression](System.Collections.Generic.IEnumerable\u00601[System.Linq.Expressions.Expression],byref):System.Linq.Expressions.Expression\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n        call     [rax]System.Linq.Enumerable:TryGetLastNonIterator[System.__Canon](System.Collections.Generic.IEnumerable\u00601[System.__Canon],byref):System.__Canon\n-\t\t\t\t\t\t;; size=29 bbWeight=0.50 PerfScore 2.12\n-G_M42206_IG32:\n-       cmp      byte  ptr [rbp-0x30], 0\n-       je       G_M42206_IG41\n        mov      rdi, rax\n\u002B       cmp      byte  ptr [rbp-0x30], 0\n\u002B       je       G_M42206_IG39\n        mov      rsi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Linq.Linq3Implementation.ExtensionMethods.ExpressionExtensions:GetConstantValue[int](System.Linq.Expressions.Expression,System.Linq.Expressions.Expression):int\n        call     [rax]MongoDB.Driver.Linq.Linq3Implementation.ExtensionMethods.ExpressionExtensions:GetConstantValue[int](System.Linq.Expressions.Expression,System.Linq.Expressions.Expression):int\n        cmp      eax, 1\n-       je       SHORT G_M42206_IG34\n-\t\t\t\t\t\t;; size=33 bbWeight=0.50 PerfScore 3.50\n-G_M42206_IG33:\n\u002B       je       SHORT G_M42206_IG32\n\u002B\t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 5.62\n\u002BG_M42206_IG31:\n        mov      r13, gword ptr [rbp-0x38]\n-       jmp      G_M42206_IG37\n\u002B       jmp      G_M42206_IG35\n \t\t\t\t\t\t;; size=9 bbWeight=0.25 PerfScore 0.75\n-G_M42206_IG34:\n\u002BG_M42206_IG32:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstVarExpression\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0xA8], rax\n@@ -621,7 \u002B605,7 @@ G_M42206_IG34:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstFilterExpression\n        call     CORINFO_HELP_NEWSFAST\n \t\t\t\t\t\t;; size=225 bbWeight=0.50 PerfScore 14.62\n-G_M42206_IG35:\n\u002BG_M42206_IG33:\n        mov      gword ptr [rbp-0xC8], rax\n        lea      rdi, bword ptr [rax\u002B0x20]\n        mov      rsi, r13\n@@ -635,17 \u002B619,17 @@ G_M42206_IG35:\n        xor      rdi, rdi\n        mov      gword ptr [r13\u002B0x28], rdi\n \t\t\t\t\t\t;; size=62 bbWeight=0.50 PerfScore 4.38\n-G_M42206_IG36:\n\u002BG_M42206_IG34:\n        mov      gword ptr [r13\u002B0x08], rdi\n \t\t\t\t\t\t;; size=4 bbWeight=0.50 PerfScore 0.50\n-G_M42206_IG37:\n\u002BG_M42206_IG35:\n        mov      rdi, 0xD1FFAB1E      ; const ptr\n        mov      rdi, gword ptr [rdi]\n        mov      rsi, r14\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Linq.Linq3Implementation.Reflection.MethodInfoSet:Contains(System.Reflection.MethodInfo):bool:this\n        call     [rax]MongoDB.Driver.Linq.Linq3Implementation.Reflection.MethodInfoSet:Contains(System.Reflection.MethodInfo):bool:this\n        test     eax, eax\n-       je       G_M42206_IG38\n\u002B       je       G_M42206_IG36\n        mov      rdi, gword ptr [r12\u002B0x08]\n        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IList\u00601[System.__Canon]:get_Item(int):System.__Canon:this\n        mov      esi, 1\n@@ -669,15 \u002B653,15 @@ G_M42206_IG37:\n        xor      rdi, rdi\n        mov      gword ptr [r12\u002B0x18], rdi\n        test     r14, r14\n-       je       G_M42206_IG42\n\u002B       je       G_M42206_IG40\n        lea      rdi, bword ptr [r12\u002B0x10]\n        mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      r13, r12\n \t\t\t\t\t\t;; size=165 bbWeight=0.50 PerfScore 15.00\n-G_M42206_IG38:\n\u002BG_M42206_IG36:\n        test     r13, r13\n-       je       G_M42206_IG45\n\u002B       je       G_M42206_IG43\n        mov      rdi, gword ptr [r15\u002B0x10]\n        mov      rsi, rbx\n        mov      r11, 0xD1FFAB1E      ; code for MongoDB.Driver.Linq.Linq3Implementation.SerializerFinders.IReadOnlySerializerMap:GetSerializer(System.Linq.Expressions.Expression):MongoDB.Bson.Serialization.IBsonSerializer:this\n@@ -694,7 \u002B678,7 @@ G_M42206_IG38:\n        call     [rax]MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression:.ctor(System.Linq.Expressions.Expression,MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression,MongoDB.Bson.Serialization.IBsonSerializer):this\n        mov      rax, r14\n \t\t\t\t\t\t;; size=77 bbWeight=1 PerfScore 13.00\n-G_M42206_IG39:\n\u002BG_M42206_IG37:\n        add      rsp, 168\n        pop      rbx\n        pop      r12\n@@ -704,7 \u002B688,7 @@ G_M42206_IG39:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M42206_IG40:\n\u002BG_M42206_IG38:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -717,12 \u002B701,12 @@ G_M42206_IG40:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=62 bbWeight=0 PerfScore 0.00\n-G_M42206_IG41:\n\u002BG_M42206_IG39:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n-G_M42206_IG42:\n\u002BG_M42206_IG40:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -735,7 \u002B719,7 @@ G_M42206_IG42:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=62 bbWeight=0 PerfScore 0.00\n-G_M42206_IG43:\n\u002BG_M42206_IG41:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -748,7 \u002B732,7 @@ G_M42206_IG43:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=62 bbWeight=0 PerfScore 0.00\n-G_M42206_IG44:\n\u002BG_M42206_IG42:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -761,7 \u002B745,7 @@ G_M42206_IG44:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=62 bbWeight=0 PerfScore 0.00\n-G_M42206_IG45:\n\u002BG_M42206_IG43:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.Linq.ExpressionNotSupportedException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n@@ -774,5 \u002B758,5 @@ G_M42206_IG45:\n        int3     \n \t\t\t\t\t\t;; size=45 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 2682, prolog size 31, PerfScore 263.25, instruction count 567, allocated bytes for code 2682 (MethodHash=ecfc5b21) for method MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.MethodTranslators.SplitMethodToAggregationExpressionTranslator:Translate(MongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext,System.Linq.Expressions.MethodCallExpression):MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression (FullOpts)\n\u002B; Total bytes of code 2633, prolog size 31, PerfScore 255.88, instruction count 555, allocated bytes for code 2633 (MethodHash=ecfc5b21) for method MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.MethodTranslators.SplitMethodToAggregationExpressionTranslator:Translate(MongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext,System.Linq.Expressions.MethodCallExpression):MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":2682,"DiffBytes":2633},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.MethodTranslators.TrimMethodToAggregationExpressionTranslator:Translate(MongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext,System.Linq.Expressions.MethodCallExpression):MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression (FullOpts)","Category":"improvement","Description":"1,097 -\u003E 1,048 bytes (-49)","ExtraInfo":null,"Diff":"@@ -12,49 \u002B12,49 @@\n ;  V01 arg1         [V01,T06] (  3,  3   )     ref  -\u003E  rsi         class-hnd single-def \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n ;  V02 loc0         [V02    ] (  8,  7   )  struct ( 8) [rbp-0x28]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.MethodTranslators.TrimMethodToAggregationExpressionTranslator\u002B\u003C\u003Ec__DisplayClass0_0\u003E\n ;  V03 loc1         [V03,T07] (  4,  4   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Reflection.MethodInfo\u003E\n-;  V04 loc2         [V04,T14] (  4,  3.50)     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V05 loc3         [V05,T16] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V06 loc4         [V06,T20] (  4,  2.50)     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression\u003E\n-;  V07 loc5         [V07,T21] (  4,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression\u003E\n\u002B;  V04 loc2         [V04,T14] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V05 loc3         [V05,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;  V06 loc4         [V06,T19] (  4,  2.50)     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression\u003E\n\u002B;  V07 loc5         [V07,T20] (  4,  2.50)     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression\u003E\n ;* V08 loc6         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression\u003E\n-;  V09 loc7         [V09,T24] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n-;  V10 loc8         [V10,T22] (  4,  2.50)     ref  -\u003E  r15         class-hnd \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression\u003E\n\u002B;  V09 loc7         [V09,T22] (  2,  2   )     ref  -\u003E  rbx         class-hnd single-def \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n\u002B;  V10 loc8         [V10,T21] (  4,  2.50)     ref  -\u003E  r15         class-hnd \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression\u003E\n ;  V11 loc9         [V11,T05] ( 15,  5.31)     ref  -\u003E  rax         class-hnd exact single-def \u003CSystem.String\u003E\n ;# V12 OutArgs      [V12    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n-;  V13 tmp1         [V13,T27] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.ExpressionNotSupportedException\u003E\n\u002B;  V13 tmp1         [V13,T26] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.ExpressionNotSupportedException\u003E\n ;  V14 tmp2         [V14,T00] (  5, 10   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression\u003E\n-;  V15 tmp3         [V15,T28] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n\u002B;  V15 tmp3         [V15,T27] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.InvalidOperationException\u003E\n ;  V16 tmp4         [V16,T11] (  2,  4   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n ;  V17 tmp5         [V17,T02] (  3,  6   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n ;* V18 tmp6         [V18    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Reflection.MethodInfoSet\u003E\n ;  V19 tmp7         [V19,T03] (  3,  6   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n ;* V20 tmp8         [V20    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression\u003E\n ;* V21 tmp9         [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression\u003E\n-;  V22 tmp10        [V22    ] (  2,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V23 tmp11        [V23,T23] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V24 tmp12        [V24,T15] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V22 tmp10        [V22    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V23 tmp11        [V23,T23] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;* V24 tmp12        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n ;* V25 tmp13        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;* V26 tmp14        [V26    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling unroll qmark\u0022\n ;* V27 tmp15        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;* V28 tmp16        [V28    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022spilling unroll qmark\u0022\n ;* V29 tmp17        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V30 tmp18        [V30,T25] (  2,  2   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n-;  V31 tmp19        [V31,T17] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression\u003E\n\u002B;  V30 tmp18        [V30,T24] (  2,  2   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n\u002B;  V31 tmp19        [V31,T16] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression\u003E\n ;  V32 tmp20        [V32,T08] (  4,  4   )     ref  -\u003E  r15         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstTrimExpression\u003E\n-;  V33 tmp21        [V33,T29] (  3,  0   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V34 tmp22        [V34,T18] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression\u003E\n\u002B;  V33 tmp21        [V33,T28] (  3,  0   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V34 tmp22        [V34,T17] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression\u003E\n ;  V35 tmp23        [V35,T09] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstRTrimExpression\u003E\n-;  V36 tmp24        [V36,T30] (  3,  0   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n-;  V37 tmp25        [V37,T19] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression\u003E\n\u002B;  V36 tmp24        [V36,T29] (  3,  0   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V37 tmp25        [V37,T18] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression\u003E\n ;  V38 tmp26        [V38,T10] (  4,  4   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstLTrimExpression\u003E\n-;  V39 tmp27        [V39,T31] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n\u002B;  V39 tmp27        [V39,T30] (  3,  0   )     ref  -\u003E  rbx         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n ;  V40 tmp28        [V40,T12] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Linq.Expressions.MethodCallExpression\u003E\n... diff truncated; middle omitted ...\n        mov      r14, rax\n@@ -137,64 \u002B119,64 @@ G_M38158_IG05:\n        call     [rax\u002B0x30]System.Reflection.MemberInfo:get_Name():System.String:this\n        mov      rdi, 0xD1FFAB1E      ; \u0027Trim\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M38158_IG09\n-\t\t\t\t\t\t;; size=50 bbWeight=1 PerfScore 13.00\n-G_M38158_IG06:\n\u002B       je       SHORT G_M38158_IG06\n\u002B\t\t\t\t\t\t;; size=209 bbWeight=1 PerfScore 53.75\n\u002BG_M38158_IG03:\n        test     rax, rax\n-       je       SHORT G_M38158_IG10\n\u002B       je       SHORT G_M38158_IG07\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M38158_IG07:\n\u002BG_M38158_IG04:\n        cmp      dword ptr [rax\u002B0x08], 4\n-       jne      SHORT G_M38158_IG10\n\u002B       jne      SHORT G_M38158_IG07\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M38158_IG08:\n\u002BG_M38158_IG05:\n        mov      rdi, 0xD1FFAB1E\n        cmp      qword ptr [rax\u002B0x0C], rdi\n-       jne      SHORT G_M38158_IG10\n\u002B       jne      SHORT G_M38158_IG07\n \t\t\t\t\t\t;; size=16 bbWeight=0.06 PerfScore 0.20\n-G_M38158_IG09:\n\u002BG_M38158_IG06:\n        mov      r13, gword ptr [r13\u002B0x08]\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstTrimExpression\n        call     CORINFO_HELP_NEWSFAST\n        mov      r15, rax\n        test     r13, r13\n-       je       G_M38158_IG24\n\u002B       je       G_M38158_IG21\n        lea      rdi, bword ptr [r15\u002B0x10]\n        mov      rsi, r13\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r15\u002B0x08]\n        mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      G_M38158_IG20\n\u002B       jmp      G_M38158_IG17\n \t\t\t\t\t\t;; size=60 bbWeight=0.50 PerfScore 5.12\n-G_M38158_IG10:\n\u002BG_M38158_IG07:\n        mov      rdi, 0xD1FFAB1E      ; \u0027TrimEnd\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M38158_IG14\n\u002B       je       SHORT G_M38158_IG11\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M38158_IG11:\n\u002BG_M38158_IG08:\n        test     rax, rax\n-       je       SHORT G_M38158_IG15\n\u002B       je       SHORT G_M38158_IG12\n \t\t\t\t\t\t;; size=5 bbWeight=0.25 PerfScore 0.31\n-G_M38158_IG12:\n\u002BG_M38158_IG09:\n        cmp      dword ptr [rax\u002B0x08], 7\n-       jne      SHORT G_M38158_IG15\n\u002B       jne      SHORT G_M38158_IG12\n \t\t\t\t\t\t;; size=6 bbWeight=0.12 PerfScore 0.38\n-G_M38158_IG13:\n\u002BG_M38158_IG10:\n        mov      rdi, 0xD1FFAB1E\n        xor      rdi, qword ptr [rax\u002B0x0C]\n        mov      rcx, 0xD1FFAB1E\n        xor      rcx, qword ptr [rax\u002B0x12]\n        or       rdi, rcx\n-       jne      SHORT G_M38158_IG15\n\u002B       jne      SHORT G_M38158_IG12\n \t\t\t\t\t\t;; size=33 bbWeight=0.06 PerfScore 0.36\n-G_M38158_IG14:\n\u002BG_M38158_IG11:\n        mov      r15, gword ptr [r13\u002B0x08]\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstRTrimExpression\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        test     r15, r15\n-       je       G_M38158_IG25\n\u002B       je       G_M38158_IG22\n        lea      rdi, bword ptr [r13\u002B0x10]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -202,22 \u002B184,22 @@ G_M38158_IG14:\n        mov      rsi, r14\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      r15, r13\n-       jmp      G_M38158_IG20\n\u002B       jmp      G_M38158_IG17\n \t\t\t\t\t\t;; size=63 bbWeight=0.50 PerfScore 5.25\n-G_M38158_IG15:\n\u002BG_M38158_IG12:\n        mov      rdi, 0xD1FFAB1E      ; \u0027TrimStart\u0027\n        cmp      rax, rdi\n-       je       SHORT G_M38158_IG19\n\u002B       je       SHORT G_M38158_IG16\n \t\t\t\t\t\t;; size=15 bbWeight=0.50 PerfScore 0.75\n-G_M38158_IG16:\n\u002BG_M38158_IG13:\n        test     rax, rax\n-       je       G_M38158_IG23\n\u002B       je       G_M38158_IG20\n \t\t\t\t\t\t;; size=9 bbWeight=0.25 PerfScore 0.31\n-G_M38158_IG17:\n\u002BG_M38158_IG14:\n        cmp      dword ptr [rax\u002B0x08], 9\n-       jne      G_M38158_IG23\n\u002B       jne      G_M38158_IG20\n \t\t\t\t\t\t;; size=10 bbWeight=0.12 PerfScore 0.38\n-G_M38158_IG18:\n\u002BG_M38158_IG15:\n        vmovups  xmm0, xmmword ptr [rax\u002B0x0C]\n        vmovups  xmm1, xmmword ptr [rax\u002B0x0E]\n        vpxor    xmm1, xmm1, xmmword ptr [reloc @RWD00]\n@@ -226,15 \u002B208,15 @@ G_M38158_IG18:\n        sete     dil\n        movzx    rdi, dil\n        test     edi, edi\n-       je       G_M38158_IG23\n\u002B       je       G_M38158_IG20\n \t\t\t\t\t\t;; size=50 bbWeight=0.50 PerfScore 6.50\n-G_M38158_IG19:\n\u002BG_M38158_IG16:\n        mov      r15, gword ptr [r13\u002B0x08]\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstLTrimExpression\n        call     CORINFO_HELP_NEWSFAST\n        mov      r13, rax\n        test     r15, r15\n-       je       G_M38158_IG26\n\u002B       je       G_M38158_IG23\n        lea      rdi, bword ptr [r13\u002B0x10]\n        mov      rsi, r15\n        call     CORINFO_HELP_ASSIGN_REF\n@@ -243,7 \u002B225,7 @@ G_M38158_IG19:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      r15, r13\n \t\t\t\t\t\t;; size=58 bbWeight=0.50 PerfScore 4.25\n-G_M38158_IG20:\n\u002BG_M38158_IG17:\n        mov      rsi, gword ptr [rbp-0x28]\n        mov      rdi, gword ptr [rbx\u002B0x10]\n        mov      r11, 0xD1FFAB1E      ; code for MongoDB.Driver.Linq.Linq3Implementation.SerializerFinders.IReadOnlySerializerMap:GetSerializer(System.Linq.Expressions.Expression):MongoDB.Bson.Serialization.IBsonSerializer:this\n@@ -254,7 \u002B236,7 @@ G_M38158_IG20:\n        mov      r14, rax\n        mov      rsi, gword ptr [rbp-0x28]\n        test     rsi, rsi\n-       je       G_M38158_IG27\n\u002B       je       G_M38158_IG24\n        lea      rdi, bword ptr [r14\u002B0x10]\n        call     CORINFO_HELP_ASSIGN_REF\n        lea      rdi, bword ptr [r14\u002B0x08]\n@@ -265,7 \u002B247,7 @@ G_M38158_IG20:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rax, r14\n \t\t\t\t\t\t;; size=91 bbWeight=1 PerfScore 15.50\n-G_M38158_IG21:\n\u002BG_M38158_IG18:\n        add      rsp, 16\n        pop      rbx\n        pop      r13\n@@ -274,13 \u002B256,13 @@ G_M38158_IG21:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 3.75\n-G_M38158_IG22:\n\u002BG_M38158_IG19:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M38158_IG23:\n\u002BG_M38158_IG20:\n        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -291,7 \u002B273,7 @@ G_M38158_IG23:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=42 bbWeight=0 PerfScore 0.00\n-G_M38158_IG24:\n\u002BG_M38158_IG21:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -304,7 \u002B286,7 @@ G_M38158_IG24:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=62 bbWeight=0 PerfScore 0.00\n-G_M38158_IG25:\n\u002BG_M38158_IG22:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -317,7 \u002B299,7 @@ G_M38158_IG25:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=62 bbWeight=0 PerfScore 0.00\n-G_M38158_IG26:\n\u002BG_M38158_IG23:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -330,7 \u002B312,7 @@ G_M38158_IG26:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=62 bbWeight=0 PerfScore 0.00\n-G_M38158_IG27:\n\u002BG_M38158_IG24:\n        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -343,7 \u002B325,7 @@ G_M38158_IG27:\n        call     CORINFO_HELP_THROW\n        int3     \n \t\t\t\t\t\t;; size=62 bbWeight=0 PerfScore 0.00\n-G_M38158_IG28:\n\u002BG_M38158_IG25:\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.Linq.ExpressionNotSupportedException\n        call     CORINFO_HELP_NEWSFAST\n        mov      rbx, rax\n@@ -359,5 \u002B341,5 @@ RWD00  \tdq\t0053006D00690072h, 0074007200610074h\n RWD16  \tdq\t006D006900720054h, 0072006100740053h\n \n \n-; Total bytes of code 1097, prolog size 27, PerfScore 114.25, instruction count 241, allocated bytes for code 1097 (MethodHash=df766af1) for method MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.MethodTranslators.TrimMethodToAggregationExpressionTranslator:Translate(MongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext,System.Linq.Expressions.MethodCallExpression):MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression (FullOpts)\n\u002B; Total bytes of code 1048, prolog size 27, PerfScore 106.50, instruction count 229, allocated bytes for code 1048 (MethodHash=df766af1) for method MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.MethodTranslators.TrimMethodToAggregationExpressionTranslator:Translate(MongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext,System.Linq.Expressions.MethodCallExpression):MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1097,"DiffBytes":1048},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CAggregateAsync\u003Ed__26\u00601[System.Nullable\u00601[int],System.Nullable\u00601[int]]:MoveNext():this (FullOpts)","Category":"improvement","Description":"1,761 -\u003E 1,712 bytes (-49)","ExtraInfo":null,"Diff":"@@ -8,60 \u002B8,60 @@\n ; 0 inlinees with PGO data; 39 single block inlinees; 13 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 46, 43   )   byref  -\u003E  [rbp-0x140]  this EH-live single-def\n-;  V01 loc0         [V01,T30] (  3,  3   )     int  -\u003E  rdi         single-def\n-;  V02 loc1         [V02,T04] (  7,  7   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V00 this         [V00,T00] ( 44, 41   )   byref  -\u003E  [rbp-0x140]  this EH-live single-def\n\u002B;  V01 loc0         [V01,T32] (  3,  3   )     int  -\u003E  rdi         single-def\n\u002B;  V02 loc1         [V02,T02] (  7,  7   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.Nullable\u00601[int]]\u003E\n ;  V03 loc2         [V03,T13] (  5,  5   )     ref  -\u003E  registers   class-hnd \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n-;  V04 loc3         [V04,T37] (  2,  2   )  struct (56) [rbp-0x58]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n-;  V05 loc4         [V05,T38] (  2,  2   )   ubyte  -\u003E  r13         ld-addr-op single-def\n-;  V06 loc5         [V06,T32] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V04 loc3         [V04,T39] (  2,  2   )  struct (56) [rbp-0x58]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V05 loc4         [V05,T40] (  2,  2   )   ubyte  -\u003E  r13         ld-addr-op single-def\n\u002B;  V06 loc5         [V06,T34] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V07 loc6         [V07    ] ( 10, 10   )  struct (16) [rbp-0x68]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Bson.BsonDocument]\u003E\n ;* V08 loc7         [V08    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V09 loc8         [V09,T33] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V09 loc8         [V09,T35] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Nullable\u00601[int]]\u003E\n ;  V10 loc9         [V10    ] ( 10, 10   )  struct (16) [rbp-0x78]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\u003E\n ;* V11 loc10        [V11    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\u003E\n ;* V12 loc11        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Exception\u003E\n ;  V13 OutArgs      [V13    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V14 tmp1         [V14    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;* V15 tmp2         [V15    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;  V16 tmp3         [V16,T18] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V16 tmp3         [V16,T17] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;* V17 tmp4         [V17    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V18 tmp5         [V18    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;  V19 tmp6         [V19,T19] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V19 tmp6         [V19,T18] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;* V20 tmp7         [V20    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V21 tmp8         [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n-;  V22 tmp9         [V22,T46] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V22 tmp9         [V22,T48] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n ;* V23 tmp10        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V24 tmp11        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;* V25 tmp12        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Nullable\u00601[int],System.Nullable\u00601[int]]\u003E\n-;  V26 tmp13        [V26,T06] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V26 tmp13        [V26,T04] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;* V27 tmp14        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V28 tmp15        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V29 tmp16        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V30 tmp17        [V30    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CMongoDB.Bson.BsonElement\u003E\n ;* V31 tmp18        [V31    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonElement\u003E\n ;* V32 tmp19        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V33 tmp20        [V33,T05] ( 11,  6.75)     ref  -\u003E  rax        \n\u002B;  V33 tmp20        [V33,T03] ( 11,  6.75)     ref  -\u003E  rax        \n ;* V34 tmp21        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String\u003E\n ;* V35 tmp22        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V36 tmp23        [V36    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V37 tmp24        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V38 tmp25        [V38    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V39 tmp26        [V39,T31] (  3,  3   )     int  -\u003E  r13        \n-;  V40 tmp27        [V40,T01] (  4,  8   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V41 tmp28        [V41    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x80]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V42 tmp29        [V42,T14] (  5,  5   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V43 tmp30        [V43,T17] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V39 tmp26        [V39,T33] (  3,  3   )     int  -\u003E  r13        \n\u002B;  V40 tmp27        [V40,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V41 tmp28        [V41    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x80]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V42 tmp29        [V42,T16] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V43 tmp30        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V44 tmp31        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V45 tmp32        [V45,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V46 tmp33        [V46    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V47 tmp34        [V47,T28] (  4,  3.75)     int  -\u003E  r13         \u0022spilling unroll qmark\u0022\n\u002B;  V47 tmp34        [V47,T27] (  4,  3.75)     int  -\u003E  r13         \u0022spilling unroll qmark\u0022\n ;* V48 tmp35        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V49 tmp36        [V49    ] ( 11, 11   )  struct (88) [rbp-0xD8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.Nullable\u00601[int],MongoDB.Bson.BsonDocument]\u003E\n ;* V50 tmp37        [V50    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n... diff truncated; middle omitted ...\n        mov      gword ptr [rbp-0x78], rax\n        xor      edi, edi\n        mov      dword ptr [rbp-0x70], edi\n        test     byte  ptr [rbp-0x70], 4\n-       jne      SHORT G_M16633_IG33\n\u002B       jne      SHORT G_M16633_IG31\n        mov      rdi, gword ptr [rbp-0x78]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M16633_IG11\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 10.25\n-G_M16633_IG33:\n\u002BG_M16633_IG31:\n        mov      r15, bword ptr [rbp-0x140]\n        mov      dword ptr [r15\u002B0x28], 1\n        lea      rdi, bword ptr [r15\u002B0x50]\n@@ -455,9 \u002B443,9 @@ G_M16633_IG33:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      G_M16633_IG43\n\u002B       jmp      G_M16633_IG41\n \t\t\t\t\t\t;; size=98 bbWeight=1 PerfScore 17.00\n-G_M16633_IG34:\n\u002BG_M16633_IG32:\n        mov      rdx, gword ptr [r15\u002B0x10]\n        mov      rsi, gword ptr [r15\u002B0x20]\n        mov      rdi, rbx\n@@ -483,24 \u002B471,24 @@ G_M16633_IG34:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.Nullable\u00601[int],System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xB0]\n        test     rax, rax\n-       jne      SHORT G_M16633_IG35\n\u002B       jne      SHORT G_M16633_IG33\n        lea      rdi, [rbp-0xB0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=173 bbWeight=1 PerfScore 36.00\n-G_M16633_IG35:\n\u002BG_M16633_IG33:\n        cmp      byte  ptr [rax], al\n        mov      gword ptr [rbp-0x68], rax\n        xor      edi, edi\n        mov      dword ptr [rbp-0x60], edi\n        test     byte  ptr [rbp-0x60], 4\n-       jne      SHORT G_M16633_IG36\n\u002B       jne      SHORT G_M16633_IG34\n        mov      rdi, gword ptr [rbp-0x68]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M16633_IG06\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 10.25\n-G_M16633_IG36:\n\u002BG_M16633_IG34:\n        xor      edi, edi\n        mov      r15, bword ptr [rbp-0x140]\n        mov      dword ptr [r15\u002B0x28], edi\n@@ -519,31 \u002B507,31 @@ G_M16633_IG36:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Bson.BsonDocument]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      G_M16633_IG43\n\u002B       jmp      G_M16633_IG41\n \t\t\t\t\t\t;; size=96 bbWeight=1 PerfScore 17.25\n-G_M16633_IG37:\n\u002BG_M16633_IG35:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M16633_IG38:\n\u002BG_M16633_IG36:\n        mov      dword ptr [r15\u002B0x28], -2\n        xor      rsi, rsi\n        mov      gword ptr [r15\u002B0x20], rsi\n        add      r15, 48\n-       cmp      gword ptr [r15], 0\n-       je       SHORT G_M16633_IG39\n        mov      rsi, gword ptr [r15]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M16633_IG37\n        mov      rdx, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n-       jmp      SHORT G_M16633_IG43\n-\t\t\t\t\t\t;; size=54 bbWeight=1 PerfScore 13.25\n-G_M16633_IG39:\n\u002B       jmp      SHORT G_M16633_IG41\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=1 PerfScore 11.50\n\u002BG_M16633_IG37:\n        test     rbx, rbx\n-       je       SHORT G_M16633_IG40\n\u002B       je       SHORT G_M16633_IG38\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -551,26 \u002B539,26 @@ G_M16633_IG39:\n        lea      rdi, bword ptr [r14\u002B0x38]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      SHORT G_M16633_IG42\n\u002B       jmp      SHORT G_M16633_IG40\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 7.50\n-G_M16633_IG40:\n\u002BG_M16633_IG38:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       SHORT G_M16633_IG45\n\u002B       je       SHORT G_M16633_IG43\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 3.25\n-G_M16633_IG41:\n\u002BG_M16633_IG39:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]:s_defaultResultTask\n        mov      r14, gword ptr [rdi]\n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 2.25\n-G_M16633_IG42:\n\u002BG_M16633_IG40:\n        mov      rdi, r15\n        mov      rsi, r14\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 1.50\n-G_M16633_IG43:\n\u002BG_M16633_IG41:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M16633_IG44:\n\u002BG_M16633_IG42:\n        add      rsp, 352\n        pop      rbx\n        pop      r13\n@@ -579,16 \u002B567,16 @@ G_M16633_IG44:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 3.75\n-G_M16633_IG45:\n\u002BG_M16633_IG43:\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      SHORT G_M16633_IG41\n\u002B       jmp      SHORT G_M16633_IG39\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M16633_IG46:\n\u002BG_M16633_IG44:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M16633_IG47:\n\u002BG_M16633_IG45:\n        mov      rdx, rdi\n        mov      r15, bword ptr [rbp-0x140]\n        mov      dword ptr [r15\u002B0x28], -2\n@@ -598,12 \u002B586,12 @@ G_M16633_IG47:\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n-       lea      rax, G_M16633_IG43\n\u002B       lea      rax, G_M16633_IG41\n \t\t\t\t\t\t;; size=57 bbWeight=0 PerfScore 0.00\n-G_M16633_IG48:\n\u002BG_M16633_IG46:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1761, prolog size 92, PerfScore 349.71, instruction count 372, allocated bytes for code 1761 (MethodHash=df2cbf06) for method MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CAggregateAsync\u003Ed__26\u00601[System.Nullable\u00601[int],System.Nullable\u00601[int]]:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 1712, prolog size 92, PerfScore 333.96, instruction count 361, allocated bytes for code 1712 (MethodHash=df2cbf06) for method MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CAggregateAsync\u003Ed__26\u00601[System.Nullable\u00601[int],System.Nullable\u00601[int]]:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1761,"DiffBytes":1712},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CAggregateAsync\u003Ed__26\u00601[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]]:MoveNext():this (FullOpts)","Category":"improvement","Description":"1,761 -\u003E 1,712 bytes (-49)","ExtraInfo":null,"Diff":"@@ -8,60 \u002B8,60 @@\n ; 0 inlinees with PGO data; 39 single block inlinees; 13 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 46, 43   )   byref  -\u003E  [rbp-0x140]  this EH-live single-def\n-;  V01 loc0         [V01,T30] (  3,  3   )     int  -\u003E  rdi         single-def\n-;  V02 loc1         [V02,T04] (  7,  7   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V00 this         [V00,T00] ( 44, 41   )   byref  -\u003E  [rbp-0x140]  this EH-live single-def\n\u002B;  V01 loc0         [V01,T32] (  3,  3   )     int  -\u003E  rdi         single-def\n\u002B;  V02 loc1         [V02,T02] (  7,  7   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V03 loc2         [V03,T13] (  5,  5   )     ref  -\u003E  registers   class-hnd \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n-;  V04 loc3         [V04,T37] (  2,  2   )  struct (56) [rbp-0x58]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V05 loc4         [V05,T38] (  2,  2   )   ubyte  -\u003E  r13         ld-addr-op single-def\n-;  V06 loc5         [V06,T32] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V04 loc3         [V04,T39] (  2,  2   )  struct (56) [rbp-0x58]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V05 loc4         [V05,T40] (  2,  2   )   ubyte  -\u003E  r13         ld-addr-op single-def\n\u002B;  V06 loc5         [V06,T34] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V07 loc6         [V07    ] ( 10, 10   )  struct (16) [rbp-0x68]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Bson.BsonDocument]\u003E\n ;* V08 loc7         [V08    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V09 loc8         [V09,T33] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V09 loc8         [V09,T35] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Nullable\u00601[int]]\u003E\n ;  V10 loc9         [V10    ] ( 10, 10   )  struct (16) [rbp-0x78]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\u003E\n ;* V11 loc10        [V11    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\u003E\n ;* V12 loc11        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Exception\u003E\n ;  V13 OutArgs      [V13    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V14 tmp1         [V14    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;* V15 tmp2         [V15    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;  V16 tmp3         [V16,T18] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V16 tmp3         [V16,T17] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;* V17 tmp4         [V17    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V18 tmp5         [V18    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;  V19 tmp6         [V19,T19] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V19 tmp6         [V19,T18] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;* V20 tmp7         [V20    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V21 tmp8         [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n-;  V22 tmp9         [V22,T46] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V22 tmp9         [V22,T48] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n ;* V23 tmp10        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V24 tmp11        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;* V25 tmp12        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.PipelineDefinition\u00602[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]]\u003E\n-;  V26 tmp13        [V26,T06] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V26 tmp13        [V26,T04] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;* V27 tmp14        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V28 tmp15        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V29 tmp16        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V30 tmp17        [V30    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CMongoDB.Bson.BsonElement\u003E\n ;* V31 tmp18        [V31    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonElement\u003E\n ;* V32 tmp19        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V33 tmp20        [V33,T05] ( 11,  6.75)     ref  -\u003E  rax        \n\u002B;  V33 tmp20        [V33,T03] ( 11,  6.75)     ref  -\u003E  rax        \n ;* V34 tmp21        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String\u003E\n ;* V35 tmp22        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V36 tmp23        [V36    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V37 tmp24        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V38 tmp25        [V38    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V39 tmp26        [V39,T31] (  3,  3   )     int  -\u003E  r13        \n-;  V40 tmp27        [V40,T01] (  4,  8   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V41 tmp28        [V41    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x80]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V42 tmp29        [V42,T14] (  5,  5   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V43 tmp30        [V43,T17] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V39 tmp26        [V39,T33] (  3,  3   )     int  -\u003E  r13        \n\u002B;  V40 tmp27        [V40,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V41 tmp28        [V41    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x80]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V42 tmp29        [V42,T16] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V43 tmp30        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V44 tmp31        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V45 tmp32        [V45,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V46 tmp33        [V46    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V47 tmp34        [V47,T28] (  4,  3.75)     int  -\u003E  r13         \u0022spilling unroll qmark\u0022\n\u002B;  V47 tmp34        [V47,T27] (  4,  3.75)     int  -\u003E  r13         \u0022spilling unroll qmark\u0022\n ;* V48 tmp35        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V49 tmp36        [V49    ] ( 11, 11   )  struct (88) [rbp-0xD8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.Numerics.Vector\u00601[float],MongoDB.Bson.BsonDocument]\u003E\n ;* V50 tmp37        [V50    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n... diff truncated; middle omitted ...\n        xor      edi, edi\n        mov      dword ptr [rbp-0x70], edi\n        test     byte  ptr [rbp-0x70], 4\n-       jne      SHORT G_M29476_IG33\n\u002B       jne      SHORT G_M29476_IG31\n        mov      rdi, gword ptr [rbp-0x78]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M29476_IG11\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 10.25\n-G_M29476_IG33:\n\u002BG_M29476_IG31:\n        mov      r15, bword ptr [rbp-0x140]\n        mov      dword ptr [r15\u002B0x28], 1\n        lea      rdi, bword ptr [r15\u002B0x50]\n@@ -455,9 \u002B443,9 @@ G_M29476_IG33:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      G_M29476_IG43\n\u002B       jmp      G_M29476_IG41\n \t\t\t\t\t\t;; size=98 bbWeight=1 PerfScore 17.00\n-G_M29476_IG34:\n\u002BG_M29476_IG32:\n        mov      rdx, gword ptr [r15\u002B0x10]\n        mov      rsi, gword ptr [r15\u002B0x20]\n        mov      rdi, rbx\n@@ -483,24 \u002B471,24 @@ G_M29476_IG34:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[System.Numerics.Vector\u00601[float],System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xB0]\n        test     rax, rax\n-       jne      SHORT G_M29476_IG35\n\u002B       jne      SHORT G_M29476_IG33\n        lea      rdi, [rbp-0xB0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=173 bbWeight=1 PerfScore 36.00\n-G_M29476_IG35:\n\u002BG_M29476_IG33:\n        cmp      byte  ptr [rax], al\n        mov      gword ptr [rbp-0x68], rax\n        xor      edi, edi\n        mov      dword ptr [rbp-0x60], edi\n        test     byte  ptr [rbp-0x60], 4\n-       jne      SHORT G_M29476_IG36\n\u002B       jne      SHORT G_M29476_IG34\n        mov      rdi, gword ptr [rbp-0x68]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M29476_IG06\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 10.25\n-G_M29476_IG36:\n\u002BG_M29476_IG34:\n        xor      edi, edi\n        mov      r15, bword ptr [rbp-0x140]\n        mov      dword ptr [r15\u002B0x28], edi\n@@ -519,31 \u002B507,31 @@ G_M29476_IG36:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Bson.BsonDocument]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      G_M29476_IG43\n\u002B       jmp      G_M29476_IG41\n \t\t\t\t\t\t;; size=96 bbWeight=1 PerfScore 17.25\n-G_M29476_IG37:\n\u002BG_M29476_IG35:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M29476_IG38:\n\u002BG_M29476_IG36:\n        mov      dword ptr [r15\u002B0x28], -2\n        xor      rsi, rsi\n        mov      gword ptr [r15\u002B0x20], rsi\n        add      r15, 48\n-       cmp      gword ptr [r15], 0\n-       je       SHORT G_M29476_IG39\n        mov      rsi, gword ptr [r15]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M29476_IG37\n        mov      rdx, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n-       jmp      SHORT G_M29476_IG43\n-\t\t\t\t\t\t;; size=54 bbWeight=1 PerfScore 13.25\n-G_M29476_IG39:\n\u002B       jmp      SHORT G_M29476_IG41\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=1 PerfScore 11.50\n\u002BG_M29476_IG37:\n        test     rbx, rbx\n-       je       SHORT G_M29476_IG40\n\u002B       je       SHORT G_M29476_IG38\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -551,26 \u002B539,26 @@ G_M29476_IG39:\n        lea      rdi, bword ptr [r14\u002B0x38]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      SHORT G_M29476_IG42\n\u002B       jmp      SHORT G_M29476_IG40\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 7.50\n-G_M29476_IG40:\n\u002BG_M29476_IG38:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       SHORT G_M29476_IG45\n\u002B       je       SHORT G_M29476_IG43\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 3.25\n-G_M29476_IG41:\n\u002BG_M29476_IG39:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]:s_defaultResultTask\n        mov      r14, gword ptr [rdi]\n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 2.25\n-G_M29476_IG42:\n\u002BG_M29476_IG40:\n        mov      rdi, r15\n        mov      rsi, r14\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 1.50\n-G_M29476_IG43:\n\u002BG_M29476_IG41:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M29476_IG44:\n\u002BG_M29476_IG42:\n        add      rsp, 352\n        pop      rbx\n        pop      r13\n@@ -579,16 \u002B567,16 @@ G_M29476_IG44:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 3.75\n-G_M29476_IG45:\n\u002BG_M29476_IG43:\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      SHORT G_M29476_IG41\n\u002B       jmp      SHORT G_M29476_IG39\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M29476_IG46:\n\u002BG_M29476_IG44:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M29476_IG47:\n\u002BG_M29476_IG45:\n        mov      rdx, rdi\n        mov      r15, bword ptr [rbp-0x140]\n        mov      dword ptr [r15\u002B0x28], -2\n@@ -598,12 \u002B586,12 @@ G_M29476_IG47:\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n-       lea      rax, G_M29476_IG43\n\u002B       lea      rax, G_M29476_IG41\n \t\t\t\t\t\t;; size=57 bbWeight=0 PerfScore 0.00\n-G_M29476_IG48:\n\u002BG_M29476_IG46:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1761, prolog size 92, PerfScore 349.71, instruction count 372, allocated bytes for code 1761 (MethodHash=8d358cdb) for method MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CAggregateAsync\u003Ed__26\u00601[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]]:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 1712, prolog size 92, PerfScore 333.96, instruction count 361, allocated bytes for code 1712 (MethodHash=8d358cdb) for method MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CAggregateAsync\u003Ed__26\u00601[System.Numerics.Vector\u00601[float],System.Nullable\u00601[int]]:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1761,"DiffBytes":1712},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CAggregateAsync\u003Ed__26\u00601[byte,System.Nullable\u00601[int]]:MoveNext():this (FullOpts)","Category":"improvement","Description":"1,761 -\u003E 1,712 bytes (-49)","ExtraInfo":null,"Diff":"@@ -8,60 \u002B8,60 @@\n ; 0 inlinees with PGO data; 39 single block inlinees; 13 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 46, 43   )   byref  -\u003E  [rbp-0x140]  this EH-live single-def\n-;  V01 loc0         [V01,T30] (  3,  3   )     int  -\u003E  rdi         single-def\n-;  V02 loc1         [V02,T04] (  7,  7   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[byte]\u003E\n\u002B;  V00 this         [V00,T00] ( 44, 41   )   byref  -\u003E  [rbp-0x140]  this EH-live single-def\n\u002B;  V01 loc0         [V01,T32] (  3,  3   )     int  -\u003E  rdi         single-def\n\u002B;  V02 loc1         [V02,T02] (  7,  7   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[byte]\u003E\n ;  V03 loc2         [V03,T13] (  5,  5   )     ref  -\u003E  registers   class-hnd \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n-;  V04 loc3         [V04,T37] (  2,  2   )  struct (56) [rbp-0x58]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n-;  V05 loc4         [V05,T38] (  2,  2   )   ubyte  -\u003E  r13         ld-addr-op single-def\n-;  V06 loc5         [V06,T32] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V04 loc3         [V04,T39] (  2,  2   )  struct (56) [rbp-0x58]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[byte]\u003E\n\u002B;  V05 loc4         [V05,T40] (  2,  2   )   ubyte  -\u003E  r13         ld-addr-op single-def\n\u002B;  V06 loc5         [V06,T34] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V07 loc6         [V07    ] ( 10, 10   )  struct (16) [rbp-0x68]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Bson.BsonDocument]\u003E\n ;* V08 loc7         [V08    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V09 loc8         [V09,T33] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V09 loc8         [V09,T35] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Nullable\u00601[int]]\u003E\n ;  V10 loc9         [V10    ] ( 10, 10   )  struct (16) [rbp-0x78]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\u003E\n ;* V11 loc10        [V11    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\u003E\n ;* V12 loc11        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Exception\u003E\n ;  V13 OutArgs      [V13    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V14 tmp1         [V14    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;* V15 tmp2         [V15    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;  V16 tmp3         [V16,T18] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V16 tmp3         [V16,T17] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;* V17 tmp4         [V17    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V18 tmp5         [V18    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;  V19 tmp6         [V19,T19] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V19 tmp6         [V19,T18] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;* V20 tmp7         [V20    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V21 tmp8         [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n-;  V22 tmp9         [V22,T46] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V22 tmp9         [V22,T48] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n ;* V23 tmp10        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V24 tmp11        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;* V25 tmp12        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.PipelineDefinition\u00602[byte,System.Nullable\u00601[int]]\u003E\n-;  V26 tmp13        [V26,T06] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V26 tmp13        [V26,T04] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;* V27 tmp14        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V28 tmp15        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V29 tmp16        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V30 tmp17        [V30    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CMongoDB.Bson.BsonElement\u003E\n ;* V31 tmp18        [V31    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonElement\u003E\n ;* V32 tmp19        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V33 tmp20        [V33,T05] ( 11,  6.75)     ref  -\u003E  rax        \n\u002B;  V33 tmp20        [V33,T03] ( 11,  6.75)     ref  -\u003E  rax        \n ;* V34 tmp21        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String\u003E\n ;* V35 tmp22        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V36 tmp23        [V36    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V37 tmp24        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V38 tmp25        [V38    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V39 tmp26        [V39,T31] (  3,  3   )     int  -\u003E  r13        \n-;  V40 tmp27        [V40,T01] (  4,  8   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V41 tmp28        [V41    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x80]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V42 tmp29        [V42,T14] (  5,  5   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V43 tmp30        [V43,T17] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V39 tmp26        [V39,T33] (  3,  3   )     int  -\u003E  r13        \n\u002B;  V40 tmp27        [V40,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V41 tmp28        [V41    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x80]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V42 tmp29        [V42,T16] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V43 tmp30        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V44 tmp31        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V45 tmp32        [V45,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V46 tmp33        [V46    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V47 tmp34        [V47,T28] (  4,  3.75)     int  -\u003E  r13         \u0022spilling unroll qmark\u0022\n\u002B;  V47 tmp34        [V47,T27] (  4,  3.75)     int  -\u003E  r13         \u0022spilling unroll qmark\u0022\n ;* V48 tmp35        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V49 tmp36        [V49    ] ( 11, 11   )  struct (88) [rbp-0xD8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[byte,MongoDB.Bson.BsonDocument]\u003E\n ;* V50 tmp37        [V50    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n... diff truncated; middle omitted ...\n-G_M45261_IG32:\n\u002BG_M45261_IG30:\n        cmp      byte  ptr [rax], al\n        mov      gword ptr [rbp-0x78], rax\n        xor      edi, edi\n        mov      dword ptr [rbp-0x70], edi\n        test     byte  ptr [rbp-0x70], 4\n-       jne      SHORT G_M45261_IG33\n\u002B       jne      SHORT G_M45261_IG31\n        mov      rdi, gword ptr [rbp-0x78]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M45261_IG11\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 10.25\n-G_M45261_IG33:\n\u002BG_M45261_IG31:\n        mov      r15, bword ptr [rbp-0x140]\n        mov      dword ptr [r15\u002B0x28], 1\n        lea      rdi, bword ptr [r15\u002B0x50]\n@@ -455,9 \u002B443,9 @@ G_M45261_IG33:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      G_M45261_IG43\n\u002B       jmp      G_M45261_IG41\n \t\t\t\t\t\t;; size=98 bbWeight=1 PerfScore 17.00\n-G_M45261_IG34:\n\u002BG_M45261_IG32:\n        mov      rdx, gword ptr [r15\u002B0x10]\n        mov      rsi, gword ptr [r15\u002B0x20]\n        mov      rdi, rbx\n@@ -483,24 \u002B471,24 @@ G_M45261_IG34:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[byte,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xB0]\n        test     rax, rax\n-       jne      SHORT G_M45261_IG35\n\u002B       jne      SHORT G_M45261_IG33\n        lea      rdi, [rbp-0xB0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=173 bbWeight=1 PerfScore 36.00\n-G_M45261_IG35:\n\u002BG_M45261_IG33:\n        cmp      byte  ptr [rax], al\n        mov      gword ptr [rbp-0x68], rax\n        xor      edi, edi\n        mov      dword ptr [rbp-0x60], edi\n        test     byte  ptr [rbp-0x60], 4\n-       jne      SHORT G_M45261_IG36\n\u002B       jne      SHORT G_M45261_IG34\n        mov      rdi, gword ptr [rbp-0x68]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M45261_IG06\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 10.25\n-G_M45261_IG36:\n\u002BG_M45261_IG34:\n        xor      edi, edi\n        mov      r15, bword ptr [rbp-0x140]\n        mov      dword ptr [r15\u002B0x28], edi\n@@ -519,31 \u002B507,31 @@ G_M45261_IG36:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Bson.BsonDocument]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      G_M45261_IG43\n\u002B       jmp      G_M45261_IG41\n \t\t\t\t\t\t;; size=96 bbWeight=1 PerfScore 17.25\n-G_M45261_IG37:\n\u002BG_M45261_IG35:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M45261_IG38:\n\u002BG_M45261_IG36:\n        mov      dword ptr [r15\u002B0x28], -2\n        xor      rsi, rsi\n        mov      gword ptr [r15\u002B0x20], rsi\n        add      r15, 48\n-       cmp      gword ptr [r15], 0\n-       je       SHORT G_M45261_IG39\n        mov      rsi, gword ptr [r15]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M45261_IG37\n        mov      rdx, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n-       jmp      SHORT G_M45261_IG43\n-\t\t\t\t\t\t;; size=54 bbWeight=1 PerfScore 13.25\n-G_M45261_IG39:\n\u002B       jmp      SHORT G_M45261_IG41\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=1 PerfScore 11.50\n\u002BG_M45261_IG37:\n        test     rbx, rbx\n-       je       SHORT G_M45261_IG40\n\u002B       je       SHORT G_M45261_IG38\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -551,26 \u002B539,26 @@ G_M45261_IG39:\n        lea      rdi, bword ptr [r14\u002B0x38]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      SHORT G_M45261_IG42\n\u002B       jmp      SHORT G_M45261_IG40\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 7.50\n-G_M45261_IG40:\n\u002BG_M45261_IG38:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       SHORT G_M45261_IG45\n\u002B       je       SHORT G_M45261_IG43\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 3.25\n-G_M45261_IG41:\n\u002BG_M45261_IG39:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]:s_defaultResultTask\n        mov      r14, gword ptr [rdi]\n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 2.25\n-G_M45261_IG42:\n\u002BG_M45261_IG40:\n        mov      rdi, r15\n        mov      rsi, r14\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 1.50\n-G_M45261_IG43:\n\u002BG_M45261_IG41:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M45261_IG44:\n\u002BG_M45261_IG42:\n        add      rsp, 352\n        pop      rbx\n        pop      r13\n@@ -579,16 \u002B567,16 @@ G_M45261_IG44:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 3.75\n-G_M45261_IG45:\n\u002BG_M45261_IG43:\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      SHORT G_M45261_IG41\n\u002B       jmp      SHORT G_M45261_IG39\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M45261_IG46:\n\u002BG_M45261_IG44:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M45261_IG47:\n\u002BG_M45261_IG45:\n        mov      rdx, rdi\n        mov      r15, bword ptr [rbp-0x140]\n        mov      dword ptr [r15\u002B0x28], -2\n@@ -598,12 \u002B586,12 @@ G_M45261_IG47:\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n-       lea      rax, G_M45261_IG43\n\u002B       lea      rax, G_M45261_IG41\n \t\t\t\t\t\t;; size=57 bbWeight=0 PerfScore 0.00\n-G_M45261_IG48:\n\u002BG_M45261_IG46:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1761, prolog size 92, PerfScore 349.71, instruction count 372, allocated bytes for code 1761 (MethodHash=8ec44f32) for method MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CAggregateAsync\u003Ed__26\u00601[byte,System.Nullable\u00601[int]]:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 1712, prolog size 92, PerfScore 333.96, instruction count 361, allocated bytes for code 1712 (MethodHash=8ec44f32) for method MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CAggregateAsync\u003Ed__26\u00601[byte,System.Nullable\u00601[int]]:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1761,"DiffBytes":1712},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CAggregateAsync\u003Ed__26\u00601[double,System.Nullable\u00601[int]]:MoveNext():this (FullOpts)","Category":"improvement","Description":"1,761 -\u003E 1,712 bytes (-49)","ExtraInfo":null,"Diff":"@@ -8,60 \u002B8,60 @@\n ; 0 inlinees with PGO data; 39 single block inlinees; 13 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 46, 43   )   byref  -\u003E  [rbp-0x140]  this EH-live single-def\n-;  V01 loc0         [V01,T30] (  3,  3   )     int  -\u003E  rdi         single-def\n-;  V02 loc1         [V02,T04] (  7,  7   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[double]\u003E\n\u002B;  V00 this         [V00,T00] ( 44, 41   )   byref  -\u003E  [rbp-0x140]  this EH-live single-def\n\u002B;  V01 loc0         [V01,T32] (  3,  3   )     int  -\u003E  rdi         single-def\n\u002B;  V02 loc1         [V02,T02] (  7,  7   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[double]\u003E\n ;  V03 loc2         [V03,T13] (  5,  5   )     ref  -\u003E  registers   class-hnd \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n-;  V04 loc3         [V04,T37] (  2,  2   )  struct (56) [rbp-0x58]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n-;  V05 loc4         [V05,T38] (  2,  2   )   ubyte  -\u003E  r13         ld-addr-op single-def\n-;  V06 loc5         [V06,T32] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V04 loc3         [V04,T39] (  2,  2   )  struct (56) [rbp-0x58]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[double]\u003E\n\u002B;  V05 loc4         [V05,T40] (  2,  2   )   ubyte  -\u003E  r13         ld-addr-op single-def\n\u002B;  V06 loc5         [V06,T34] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V07 loc6         [V07    ] ( 10, 10   )  struct (16) [rbp-0x68]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Bson.BsonDocument]\u003E\n ;* V08 loc7         [V08    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V09 loc8         [V09,T33] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V09 loc8         [V09,T35] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Nullable\u00601[int]]\u003E\n ;  V10 loc9         [V10    ] ( 10, 10   )  struct (16) [rbp-0x78]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\u003E\n ;* V11 loc10        [V11    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\u003E\n ;* V12 loc11        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Exception\u003E\n ;  V13 OutArgs      [V13    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V14 tmp1         [V14    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;* V15 tmp2         [V15    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;  V16 tmp3         [V16,T18] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V16 tmp3         [V16,T17] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;* V17 tmp4         [V17    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V18 tmp5         [V18    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;  V19 tmp6         [V19,T19] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V19 tmp6         [V19,T18] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;* V20 tmp7         [V20    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V21 tmp8         [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n-;  V22 tmp9         [V22,T46] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V22 tmp9         [V22,T48] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n ;* V23 tmp10        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V24 tmp11        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;* V25 tmp12        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.PipelineDefinition\u00602[double,System.Nullable\u00601[int]]\u003E\n-;  V26 tmp13        [V26,T06] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V26 tmp13        [V26,T04] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;* V27 tmp14        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V28 tmp15        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V29 tmp16        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V30 tmp17        [V30    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CMongoDB.Bson.BsonElement\u003E\n ;* V31 tmp18        [V31    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonElement\u003E\n ;* V32 tmp19        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V33 tmp20        [V33,T05] ( 11,  6.75)     ref  -\u003E  rax        \n\u002B;  V33 tmp20        [V33,T03] ( 11,  6.75)     ref  -\u003E  rax        \n ;* V34 tmp21        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String\u003E\n ;* V35 tmp22        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V36 tmp23        [V36    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V37 tmp24        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V38 tmp25        [V38    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V39 tmp26        [V39,T31] (  3,  3   )     int  -\u003E  r13        \n-;  V40 tmp27        [V40,T01] (  4,  8   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V41 tmp28        [V41    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x80]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V42 tmp29        [V42,T14] (  5,  5   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V43 tmp30        [V43,T17] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V39 tmp26        [V39,T33] (  3,  3   )     int  -\u003E  r13        \n\u002B;  V40 tmp27        [V40,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V41 tmp28        [V41    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x80]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V42 tmp29        [V42,T16] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V43 tmp30        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V44 tmp31        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V45 tmp32        [V45,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V46 tmp33        [V46    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V47 tmp34        [V47,T28] (  4,  3.75)     int  -\u003E  r13         \u0022spilling unroll qmark\u0022\n\u002B;  V47 tmp34        [V47,T27] (  4,  3.75)     int  -\u003E  r13         \u0022spilling unroll qmark\u0022\n ;* V48 tmp35        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V49 tmp36        [V49    ] ( 11, 11   )  struct (88) [rbp-0xD8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[double,MongoDB.Bson.BsonDocument]\u003E\n ;* V50 tmp37        [V50    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=107 bbWeight=1 PerfScore 15.25\n-G_M6642_IG32:\n\u002BG_M6642_IG30:\n        cmp      byte  ptr [rax], al\n        mov      gword ptr [rbp-0x78], rax\n        xor      edi, edi\n        mov      dword ptr [rbp-0x70], edi\n        test     byte  ptr [rbp-0x70], 4\n-       jne      SHORT G_M6642_IG33\n\u002B       jne      SHORT G_M6642_IG31\n        mov      rdi, gword ptr [rbp-0x78]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M6642_IG11\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 10.25\n-G_M6642_IG33:\n\u002BG_M6642_IG31:\n        mov      r15, bword ptr [rbp-0x140]\n        mov      dword ptr [r15\u002B0x28], 1\n        lea      rdi, bword ptr [r15\u002B0x50]\n@@ -455,9 \u002B443,9 @@ G_M6642_IG33:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      G_M6642_IG43\n\u002B       jmp      G_M6642_IG41\n \t\t\t\t\t\t;; size=98 bbWeight=1 PerfScore 17.00\n-G_M6642_IG34:\n\u002BG_M6642_IG32:\n        mov      rdx, gword ptr [r15\u002B0x10]\n        mov      rsi, gword ptr [r15\u002B0x20]\n        mov      rdi, rbx\n@@ -483,24 \u002B471,24 @@ G_M6642_IG34:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[double,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xB0]\n        test     rax, rax\n-       jne      SHORT G_M6642_IG35\n\u002B       jne      SHORT G_M6642_IG33\n        lea      rdi, [rbp-0xB0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=173 bbWeight=1 PerfScore 36.00\n-G_M6642_IG35:\n\u002BG_M6642_IG33:\n        cmp      byte  ptr [rax], al\n        mov      gword ptr [rbp-0x68], rax\n        xor      edi, edi\n        mov      dword ptr [rbp-0x60], edi\n        test     byte  ptr [rbp-0x60], 4\n-       jne      SHORT G_M6642_IG36\n\u002B       jne      SHORT G_M6642_IG34\n        mov      rdi, gword ptr [rbp-0x68]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M6642_IG06\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 10.25\n-G_M6642_IG36:\n\u002BG_M6642_IG34:\n        xor      edi, edi\n        mov      r15, bword ptr [rbp-0x140]\n        mov      dword ptr [r15\u002B0x28], edi\n@@ -519,31 \u002B507,31 @@ G_M6642_IG36:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Bson.BsonDocument]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      G_M6642_IG43\n\u002B       jmp      G_M6642_IG41\n \t\t\t\t\t\t;; size=96 bbWeight=1 PerfScore 17.25\n-G_M6642_IG37:\n\u002BG_M6642_IG35:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M6642_IG38:\n\u002BG_M6642_IG36:\n        mov      dword ptr [r15\u002B0x28], -2\n        xor      rsi, rsi\n        mov      gword ptr [r15\u002B0x20], rsi\n        add      r15, 48\n-       cmp      gword ptr [r15], 0\n-       je       SHORT G_M6642_IG39\n        mov      rsi, gword ptr [r15]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M6642_IG37\n        mov      rdx, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n-       jmp      SHORT G_M6642_IG43\n-\t\t\t\t\t\t;; size=54 bbWeight=1 PerfScore 13.25\n-G_M6642_IG39:\n\u002B       jmp      SHORT G_M6642_IG41\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=1 PerfScore 11.50\n\u002BG_M6642_IG37:\n        test     rbx, rbx\n-       je       SHORT G_M6642_IG40\n\u002B       je       SHORT G_M6642_IG38\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -551,26 \u002B539,26 @@ G_M6642_IG39:\n        lea      rdi, bword ptr [r14\u002B0x38]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      SHORT G_M6642_IG42\n\u002B       jmp      SHORT G_M6642_IG40\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 7.50\n-G_M6642_IG40:\n\u002BG_M6642_IG38:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       SHORT G_M6642_IG45\n\u002B       je       SHORT G_M6642_IG43\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 3.25\n-G_M6642_IG41:\n\u002BG_M6642_IG39:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]:s_defaultResultTask\n        mov      r14, gword ptr [rdi]\n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 2.25\n-G_M6642_IG42:\n\u002BG_M6642_IG40:\n        mov      rdi, r15\n        mov      rsi, r14\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 1.50\n-G_M6642_IG43:\n\u002BG_M6642_IG41:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M6642_IG44:\n\u002BG_M6642_IG42:\n        add      rsp, 352\n        pop      rbx\n        pop      r13\n@@ -579,16 \u002B567,16 @@ G_M6642_IG44:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 3.75\n-G_M6642_IG45:\n\u002BG_M6642_IG43:\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      SHORT G_M6642_IG41\n\u002B       jmp      SHORT G_M6642_IG39\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M6642_IG46:\n\u002BG_M6642_IG44:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M6642_IG47:\n\u002BG_M6642_IG45:\n        mov      rdx, rdi\n        mov      r15, bword ptr [rbp-0x140]\n        mov      dword ptr [r15\u002B0x28], -2\n@@ -598,12 \u002B586,12 @@ G_M6642_IG47:\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n-       lea      rax, G_M6642_IG43\n\u002B       lea      rax, G_M6642_IG41\n \t\t\t\t\t\t;; size=57 bbWeight=0 PerfScore 0.00\n-G_M6642_IG48:\n\u002BG_M6642_IG46:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1761, prolog size 92, PerfScore 349.71, instruction count 372, allocated bytes for code 1761 (MethodHash=0574e60d) for method MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CAggregateAsync\u003Ed__26\u00601[double,System.Nullable\u00601[int]]:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 1712, prolog size 92, PerfScore 333.96, instruction count 361, allocated bytes for code 1712 (MethodHash=0574e60d) for method MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CAggregateAsync\u003Ed__26\u00601[double,System.Nullable\u00601[int]]:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1761,"DiffBytes":1712},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CAggregateAsync\u003Ed__26\u00601[int,System.Nullable\u00601[int]]:MoveNext():this (FullOpts)","Category":"improvement","Description":"1,761 -\u003E 1,712 bytes (-49)","ExtraInfo":null,"Diff":"@@ -8,60 \u002B8,60 @@\n ; 0 inlinees with PGO data; 39 single block inlinees; 13 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 46, 43   )   byref  -\u003E  [rbp-0x140]  this EH-live single-def\n-;  V01 loc0         [V01,T30] (  3,  3   )     int  -\u003E  rdi         single-def\n-;  V02 loc1         [V02,T04] (  7,  7   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[int]\u003E\n\u002B;  V00 this         [V00,T00] ( 44, 41   )   byref  -\u003E  [rbp-0x140]  this EH-live single-def\n\u002B;  V01 loc0         [V01,T32] (  3,  3   )     int  -\u003E  rdi         single-def\n\u002B;  V02 loc1         [V02,T02] (  7,  7   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[int]\u003E\n ;  V03 loc2         [V03,T13] (  5,  5   )     ref  -\u003E  registers   class-hnd \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n-;  V04 loc3         [V04,T37] (  2,  2   )  struct (56) [rbp-0x58]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n-;  V05 loc4         [V05,T38] (  2,  2   )   ubyte  -\u003E  r13         ld-addr-op single-def\n-;  V06 loc5         [V06,T32] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V04 loc3         [V04,T39] (  2,  2   )  struct (56) [rbp-0x58]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[int]\u003E\n\u002B;  V05 loc4         [V05,T40] (  2,  2   )   ubyte  -\u003E  r13         ld-addr-op single-def\n\u002B;  V06 loc5         [V06,T34] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V07 loc6         [V07    ] ( 10, 10   )  struct (16) [rbp-0x68]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Bson.BsonDocument]\u003E\n ;* V08 loc7         [V08    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V09 loc8         [V09,T33] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V09 loc8         [V09,T35] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Nullable\u00601[int]]\u003E\n ;  V10 loc9         [V10    ] ( 10, 10   )  struct (16) [rbp-0x78]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\u003E\n ;* V11 loc10        [V11    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\u003E\n ;* V12 loc11        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Exception\u003E\n ;  V13 OutArgs      [V13    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V14 tmp1         [V14    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;* V15 tmp2         [V15    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;  V16 tmp3         [V16,T18] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V16 tmp3         [V16,T17] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;* V17 tmp4         [V17    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V18 tmp5         [V18    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;  V19 tmp6         [V19,T19] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V19 tmp6         [V19,T18] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;* V20 tmp7         [V20    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V21 tmp8         [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n-;  V22 tmp9         [V22,T46] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V22 tmp9         [V22,T48] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n ;* V23 tmp10        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V24 tmp11        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;* V25 tmp12        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.PipelineDefinition\u00602[int,System.Nullable\u00601[int]]\u003E\n-;  V26 tmp13        [V26,T06] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V26 tmp13        [V26,T04] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;* V27 tmp14        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V28 tmp15        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V29 tmp16        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V30 tmp17        [V30    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CMongoDB.Bson.BsonElement\u003E\n ;* V31 tmp18        [V31    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonElement\u003E\n ;* V32 tmp19        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V33 tmp20        [V33,T05] ( 11,  6.75)     ref  -\u003E  rax        \n\u002B;  V33 tmp20        [V33,T03] ( 11,  6.75)     ref  -\u003E  rax        \n ;* V34 tmp21        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String\u003E\n ;* V35 tmp22        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V36 tmp23        [V36    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V37 tmp24        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V38 tmp25        [V38    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V39 tmp26        [V39,T31] (  3,  3   )     int  -\u003E  r13        \n-;  V40 tmp27        [V40,T01] (  4,  8   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V41 tmp28        [V41    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x80]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V42 tmp29        [V42,T14] (  5,  5   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V43 tmp30        [V43,T17] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V39 tmp26        [V39,T33] (  3,  3   )     int  -\u003E  r13        \n\u002B;  V40 tmp27        [V40,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V41 tmp28        [V41    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x80]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V42 tmp29        [V42,T16] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V43 tmp30        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V44 tmp31        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V45 tmp32        [V45,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V46 tmp33        [V46    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V47 tmp34        [V47,T28] (  4,  3.75)     int  -\u003E  r13         \u0022spilling unroll qmark\u0022\n\u002B;  V47 tmp34        [V47,T27] (  4,  3.75)     int  -\u003E  r13         \u0022spilling unroll qmark\u0022\n ;* V48 tmp35        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V49 tmp36        [V49    ] ( 11, 11   )  struct (88) [rbp-0xD8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[int,MongoDB.Bson.BsonDocument]\u003E\n ;* V50 tmp37        [V50    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n ;* V51 tmp38        [V51    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n... diff truncated; middle omitted ...\n-G_M63156_IG32:\n\u002BG_M63156_IG30:\n        cmp      byte  ptr [rax], al\n        mov      gword ptr [rbp-0x78], rax\n        xor      edi, edi\n        mov      dword ptr [rbp-0x70], edi\n        test     byte  ptr [rbp-0x70], 4\n-       jne      SHORT G_M63156_IG33\n\u002B       jne      SHORT G_M63156_IG31\n        mov      rdi, gword ptr [rbp-0x78]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M63156_IG11\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 10.25\n-G_M63156_IG33:\n\u002BG_M63156_IG31:\n        mov      r15, bword ptr [rbp-0x140]\n        mov      dword ptr [r15\u002B0x28], 1\n        lea      rdi, bword ptr [r15\u002B0x50]\n@@ -455,9 \u002B443,9 @@ G_M63156_IG33:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      G_M63156_IG43\n\u002B       jmp      G_M63156_IG41\n \t\t\t\t\t\t;; size=98 bbWeight=1 PerfScore 17.00\n-G_M63156_IG34:\n\u002BG_M63156_IG32:\n        mov      rdx, gword ptr [r15\u002B0x10]\n        mov      rsi, gword ptr [r15\u002B0x20]\n        mov      rdi, rbx\n@@ -483,24 \u002B471,24 @@ G_M63156_IG34:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[int,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xB0]\n        test     rax, rax\n-       jne      SHORT G_M63156_IG35\n\u002B       jne      SHORT G_M63156_IG33\n        lea      rdi, [rbp-0xB0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=173 bbWeight=1 PerfScore 36.00\n-G_M63156_IG35:\n\u002BG_M63156_IG33:\n        cmp      byte  ptr [rax], al\n        mov      gword ptr [rbp-0x68], rax\n        xor      edi, edi\n        mov      dword ptr [rbp-0x60], edi\n        test     byte  ptr [rbp-0x60], 4\n-       jne      SHORT G_M63156_IG36\n\u002B       jne      SHORT G_M63156_IG34\n        mov      rdi, gword ptr [rbp-0x68]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M63156_IG06\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 10.25\n-G_M63156_IG36:\n\u002BG_M63156_IG34:\n        xor      edi, edi\n        mov      r15, bword ptr [rbp-0x140]\n        mov      dword ptr [r15\u002B0x28], edi\n@@ -519,31 \u002B507,31 @@ G_M63156_IG36:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Bson.BsonDocument]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      G_M63156_IG43\n\u002B       jmp      G_M63156_IG41\n \t\t\t\t\t\t;; size=96 bbWeight=1 PerfScore 17.25\n-G_M63156_IG37:\n\u002BG_M63156_IG35:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M63156_IG38:\n\u002BG_M63156_IG36:\n        mov      dword ptr [r15\u002B0x28], -2\n        xor      rsi, rsi\n        mov      gword ptr [r15\u002B0x20], rsi\n        add      r15, 48\n-       cmp      gword ptr [r15], 0\n-       je       SHORT G_M63156_IG39\n        mov      rsi, gword ptr [r15]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M63156_IG37\n        mov      rdx, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n-       jmp      SHORT G_M63156_IG43\n-\t\t\t\t\t\t;; size=54 bbWeight=1 PerfScore 13.25\n-G_M63156_IG39:\n\u002B       jmp      SHORT G_M63156_IG41\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=1 PerfScore 11.50\n\u002BG_M63156_IG37:\n        test     rbx, rbx\n-       je       SHORT G_M63156_IG40\n\u002B       je       SHORT G_M63156_IG38\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -551,26 \u002B539,26 @@ G_M63156_IG39:\n        lea      rdi, bword ptr [r14\u002B0x38]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      SHORT G_M63156_IG42\n\u002B       jmp      SHORT G_M63156_IG40\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 7.50\n-G_M63156_IG40:\n\u002BG_M63156_IG38:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       SHORT G_M63156_IG45\n\u002B       je       SHORT G_M63156_IG43\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 3.25\n-G_M63156_IG41:\n\u002BG_M63156_IG39:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]:s_defaultResultTask\n        mov      r14, gword ptr [rdi]\n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 2.25\n-G_M63156_IG42:\n\u002BG_M63156_IG40:\n        mov      rdi, r15\n        mov      rsi, r14\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 1.50\n-G_M63156_IG43:\n\u002BG_M63156_IG41:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M63156_IG44:\n\u002BG_M63156_IG42:\n        add      rsp, 352\n        pop      rbx\n        pop      r13\n@@ -579,16 \u002B567,16 @@ G_M63156_IG44:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 3.75\n-G_M63156_IG45:\n\u002BG_M63156_IG43:\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      SHORT G_M63156_IG41\n\u002B       jmp      SHORT G_M63156_IG39\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M63156_IG46:\n\u002BG_M63156_IG44:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M63156_IG47:\n\u002BG_M63156_IG45:\n        mov      rdx, rdi\n        mov      r15, bword ptr [rbp-0x140]\n        mov      dword ptr [r15\u002B0x28], -2\n@@ -598,12 \u002B586,12 @@ G_M63156_IG47:\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n-       lea      rax, G_M63156_IG43\n\u002B       lea      rax, G_M63156_IG41\n \t\t\t\t\t\t;; size=57 bbWeight=0 PerfScore 0.00\n-G_M63156_IG48:\n\u002BG_M63156_IG46:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1761, prolog size 92, PerfScore 349.71, instruction count 372, allocated bytes for code 1761 (MethodHash=694c094b) for method MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CAggregateAsync\u003Ed__26\u00601[int,System.Nullable\u00601[int]]:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 1712, prolog size 92, PerfScore 333.96, instruction count 361, allocated bytes for code 1712 (MethodHash=694c094b) for method MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CAggregateAsync\u003Ed__26\u00601[int,System.Nullable\u00601[int]]:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1761,"DiffBytes":1712},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CAggregateAsync\u003Ed__26\u00601[long,System.Nullable\u00601[int]]:MoveNext():this (FullOpts)","Category":"improvement","Description":"1,761 -\u003E 1,712 bytes (-49)","ExtraInfo":null,"Diff":"@@ -8,60 \u002B8,60 @@\n ; 0 inlinees with PGO data; 39 single block inlinees; 13 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 46, 43   )   byref  -\u003E  [rbp-0x140]  this EH-live single-def\n-;  V01 loc0         [V01,T30] (  3,  3   )     int  -\u003E  rdi         single-def\n-;  V02 loc1         [V02,T04] (  7,  7   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[long]\u003E\n\u002B;  V00 this         [V00,T00] ( 44, 41   )   byref  -\u003E  [rbp-0x140]  this EH-live single-def\n\u002B;  V01 loc0         [V01,T32] (  3,  3   )     int  -\u003E  rdi         single-def\n\u002B;  V02 loc1         [V02,T02] (  7,  7   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[long]\u003E\n ;  V03 loc2         [V03,T13] (  5,  5   )     ref  -\u003E  registers   class-hnd \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n-;  V04 loc3         [V04,T37] (  2,  2   )  struct (56) [rbp-0x58]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n-;  V05 loc4         [V05,T38] (  2,  2   )   ubyte  -\u003E  r13         ld-addr-op single-def\n-;  V06 loc5         [V06,T32] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V04 loc3         [V04,T39] (  2,  2   )  struct (56) [rbp-0x58]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[long]\u003E\n\u002B;  V05 loc4         [V05,T40] (  2,  2   )   ubyte  -\u003E  r13         ld-addr-op single-def\n\u002B;  V06 loc5         [V06,T34] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V07 loc6         [V07    ] ( 10, 10   )  struct (16) [rbp-0x68]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Bson.BsonDocument]\u003E\n ;* V08 loc7         [V08    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V09 loc8         [V09,T33] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V09 loc8         [V09,T35] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Nullable\u00601[int]]\u003E\n ;  V10 loc9         [V10    ] ( 10, 10   )  struct (16) [rbp-0x78]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\u003E\n ;* V11 loc10        [V11    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\u003E\n ;* V12 loc11        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Exception\u003E\n ;  V13 OutArgs      [V13    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V14 tmp1         [V14    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;* V15 tmp2         [V15    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;  V16 tmp3         [V16,T18] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V16 tmp3         [V16,T17] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;* V17 tmp4         [V17    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V18 tmp5         [V18    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;  V19 tmp6         [V19,T19] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V19 tmp6         [V19,T18] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;* V20 tmp7         [V20    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V21 tmp8         [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n-;  V22 tmp9         [V22,T46] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V22 tmp9         [V22,T48] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n ;* V23 tmp10        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V24 tmp11        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;* V25 tmp12        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.PipelineDefinition\u00602[long,System.Nullable\u00601[int]]\u003E\n-;  V26 tmp13        [V26,T06] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V26 tmp13        [V26,T04] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;* V27 tmp14        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V28 tmp15        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V29 tmp16        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V30 tmp17        [V30    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CMongoDB.Bson.BsonElement\u003E\n ;* V31 tmp18        [V31    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonElement\u003E\n ;* V32 tmp19        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V33 tmp20        [V33,T05] ( 11,  6.75)     ref  -\u003E  rax        \n\u002B;  V33 tmp20        [V33,T03] ( 11,  6.75)     ref  -\u003E  rax        \n ;* V34 tmp21        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String\u003E\n ;* V35 tmp22        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V36 tmp23        [V36    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V37 tmp24        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V38 tmp25        [V38    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V39 tmp26        [V39,T31] (  3,  3   )     int  -\u003E  r13        \n-;  V40 tmp27        [V40,T01] (  4,  8   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V41 tmp28        [V41    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x80]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V42 tmp29        [V42,T14] (  5,  5   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V43 tmp30        [V43,T17] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V39 tmp26        [V39,T33] (  3,  3   )     int  -\u003E  r13        \n\u002B;  V40 tmp27        [V40,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V41 tmp28        [V41    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x80]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V42 tmp29        [V42,T16] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V43 tmp30        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V44 tmp31        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V45 tmp32        [V45,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V46 tmp33        [V46    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V47 tmp34        [V47,T28] (  4,  3.75)     int  -\u003E  r13         \u0022spilling unroll qmark\u0022\n\u002B;  V47 tmp34        [V47,T27] (  4,  3.75)     int  -\u003E  r13         \u0022spilling unroll qmark\u0022\n ;* V48 tmp35        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V49 tmp36        [V49    ] ( 11, 11   )  struct (88) [rbp-0xD8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[long,MongoDB.Bson.BsonDocument]\u003E\n ;* V50 tmp37        [V50    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n... diff truncated; middle omitted ...\n-G_M62157_IG32:\n\u002BG_M62157_IG30:\n        cmp      byte  ptr [rax], al\n        mov      gword ptr [rbp-0x78], rax\n        xor      edi, edi\n        mov      dword ptr [rbp-0x70], edi\n        test     byte  ptr [rbp-0x70], 4\n-       jne      SHORT G_M62157_IG33\n\u002B       jne      SHORT G_M62157_IG31\n        mov      rdi, gword ptr [rbp-0x78]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M62157_IG11\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 10.25\n-G_M62157_IG33:\n\u002BG_M62157_IG31:\n        mov      r15, bword ptr [rbp-0x140]\n        mov      dword ptr [r15\u002B0x28], 1\n        lea      rdi, bword ptr [r15\u002B0x50]\n@@ -455,9 \u002B443,9 @@ G_M62157_IG33:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      G_M62157_IG43\n\u002B       jmp      G_M62157_IG41\n \t\t\t\t\t\t;; size=98 bbWeight=1 PerfScore 17.00\n-G_M62157_IG34:\n\u002BG_M62157_IG32:\n        mov      rdx, gword ptr [r15\u002B0x10]\n        mov      rsi, gword ptr [r15\u002B0x20]\n        mov      rdi, rbx\n@@ -483,24 \u002B471,24 @@ G_M62157_IG34:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[long,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xB0]\n        test     rax, rax\n-       jne      SHORT G_M62157_IG35\n\u002B       jne      SHORT G_M62157_IG33\n        lea      rdi, [rbp-0xB0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=173 bbWeight=1 PerfScore 36.00\n-G_M62157_IG35:\n\u002BG_M62157_IG33:\n        cmp      byte  ptr [rax], al\n        mov      gword ptr [rbp-0x68], rax\n        xor      edi, edi\n        mov      dword ptr [rbp-0x60], edi\n        test     byte  ptr [rbp-0x60], 4\n-       jne      SHORT G_M62157_IG36\n\u002B       jne      SHORT G_M62157_IG34\n        mov      rdi, gword ptr [rbp-0x68]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M62157_IG06\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 10.25\n-G_M62157_IG36:\n\u002BG_M62157_IG34:\n        xor      edi, edi\n        mov      r15, bword ptr [rbp-0x140]\n        mov      dword ptr [r15\u002B0x28], edi\n@@ -519,31 \u002B507,31 @@ G_M62157_IG36:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Bson.BsonDocument]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      G_M62157_IG43\n\u002B       jmp      G_M62157_IG41\n \t\t\t\t\t\t;; size=96 bbWeight=1 PerfScore 17.25\n-G_M62157_IG37:\n\u002BG_M62157_IG35:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M62157_IG38:\n\u002BG_M62157_IG36:\n        mov      dword ptr [r15\u002B0x28], -2\n        xor      rsi, rsi\n        mov      gword ptr [r15\u002B0x20], rsi\n        add      r15, 48\n-       cmp      gword ptr [r15], 0\n-       je       SHORT G_M62157_IG39\n        mov      rsi, gword ptr [r15]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M62157_IG37\n        mov      rdx, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n-       jmp      SHORT G_M62157_IG43\n-\t\t\t\t\t\t;; size=54 bbWeight=1 PerfScore 13.25\n-G_M62157_IG39:\n\u002B       jmp      SHORT G_M62157_IG41\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=1 PerfScore 11.50\n\u002BG_M62157_IG37:\n        test     rbx, rbx\n-       je       SHORT G_M62157_IG40\n\u002B       je       SHORT G_M62157_IG38\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -551,26 \u002B539,26 @@ G_M62157_IG39:\n        lea      rdi, bword ptr [r14\u002B0x38]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      SHORT G_M62157_IG42\n\u002B       jmp      SHORT G_M62157_IG40\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 7.50\n-G_M62157_IG40:\n\u002BG_M62157_IG38:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       SHORT G_M62157_IG45\n\u002B       je       SHORT G_M62157_IG43\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 3.25\n-G_M62157_IG41:\n\u002BG_M62157_IG39:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]:s_defaultResultTask\n        mov      r14, gword ptr [rdi]\n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 2.25\n-G_M62157_IG42:\n\u002BG_M62157_IG40:\n        mov      rdi, r15\n        mov      rsi, r14\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 1.50\n-G_M62157_IG43:\n\u002BG_M62157_IG41:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M62157_IG44:\n\u002BG_M62157_IG42:\n        add      rsp, 352\n        pop      rbx\n        pop      r13\n@@ -579,16 \u002B567,16 @@ G_M62157_IG44:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 3.75\n-G_M62157_IG45:\n\u002BG_M62157_IG43:\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      SHORT G_M62157_IG41\n\u002B       jmp      SHORT G_M62157_IG39\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M62157_IG46:\n\u002BG_M62157_IG44:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M62157_IG47:\n\u002BG_M62157_IG45:\n        mov      rdx, rdi\n        mov      r15, bword ptr [rbp-0x140]\n        mov      dword ptr [r15\u002B0x28], -2\n@@ -598,12 \u002B586,12 @@ G_M62157_IG47:\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n-       lea      rax, G_M62157_IG43\n\u002B       lea      rax, G_M62157_IG41\n \t\t\t\t\t\t;; size=57 bbWeight=0 PerfScore 0.00\n-G_M62157_IG48:\n\u002BG_M62157_IG46:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1761, prolog size 92, PerfScore 349.71, instruction count 372, allocated bytes for code 1761 (MethodHash=461b0d32) for method MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CAggregateAsync\u003Ed__26\u00601[long,System.Nullable\u00601[int]]:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 1712, prolog size 92, PerfScore 333.96, instruction count 361, allocated bytes for code 1712 (MethodHash=461b0d32) for method MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CAggregateAsync\u003Ed__26\u00601[long,System.Nullable\u00601[int]]:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1761,"DiffBytes":1712},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CAggregateAsync\u003Ed__26\u00601[short,System.Nullable\u00601[int]]:MoveNext():this (FullOpts)","Category":"improvement","Description":"1,761 -\u003E 1,712 bytes (-49)","ExtraInfo":null,"Diff":"@@ -8,60 \u002B8,60 @@\n ; 0 inlinees with PGO data; 39 single block inlinees; 13 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 46, 43   )   byref  -\u003E  [rbp-0x140]  this EH-live single-def\n-;  V01 loc0         [V01,T30] (  3,  3   )     int  -\u003E  rdi         single-def\n-;  V02 loc1         [V02,T04] (  7,  7   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[short]\u003E\n\u002B;  V00 this         [V00,T00] ( 44, 41   )   byref  -\u003E  [rbp-0x140]  this EH-live single-def\n\u002B;  V01 loc0         [V01,T32] (  3,  3   )     int  -\u003E  rdi         single-def\n\u002B;  V02 loc1         [V02,T02] (  7,  7   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CMongoDB.Driver.MongoCollectionImpl\u00601[short]\u003E\n ;  V03 loc2         [V03,T13] (  5,  5   )     ref  -\u003E  registers   class-hnd \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n-;  V04 loc3         [V04,T37] (  2,  2   )  struct (56) [rbp-0x58]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n-;  V05 loc4         [V05,T38] (  2,  2   )   ubyte  -\u003E  r13         ld-addr-op single-def\n-;  V06 loc5         [V06,T32] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V04 loc3         [V04,T39] (  2,  2   )  struct (56) [rbp-0x58]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[short]\u003E\n\u002B;  V05 loc4         [V05,T40] (  2,  2   )   ubyte  -\u003E  r13         ld-addr-op single-def\n\u002B;  V06 loc5         [V06,T34] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V07 loc6         [V07    ] ( 10, 10   )  struct (16) [rbp-0x68]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Bson.BsonDocument]\u003E\n ;* V08 loc7         [V08    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V09 loc8         [V09,T33] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V09 loc8         [V09,T35] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Nullable\u00601[int]]\u003E\n ;  V10 loc9         [V10    ] ( 10, 10   )  struct (16) [rbp-0x78]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\u003E\n ;* V11 loc10        [V11    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\u003E\n ;* V12 loc11        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Exception\u003E\n ;  V13 OutArgs      [V13    ] (  1,  1   )  struct (56) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CUNNAMED\u003E\n ;* V14 tmp1         [V14    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;* V15 tmp2         [V15    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;  V16 tmp3         [V16,T18] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V16 tmp3         [V16,T17] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;* V17 tmp4         [V17    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V18 tmp5         [V18    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;  V19 tmp6         [V19,T19] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V19 tmp6         [V19,T18] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;* V20 tmp7         [V20    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V21 tmp8         [V21    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n-;  V22 tmp9         [V22,T46] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V22 tmp9         [V22,T48] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n ;* V23 tmp10        [V23    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V24 tmp11        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;* V25 tmp12        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.PipelineDefinition\u00602[short,System.Nullable\u00601[int]]\u003E\n-;  V26 tmp13        [V26,T06] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V26 tmp13        [V26,T04] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;* V27 tmp14        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V28 tmp15        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V29 tmp16        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V30 tmp17        [V30    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CMongoDB.Bson.BsonElement\u003E\n ;* V31 tmp18        [V31    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonElement\u003E\n ;* V32 tmp19        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V33 tmp20        [V33,T05] ( 11,  6.75)     ref  -\u003E  rax        \n\u002B;  V33 tmp20        [V33,T03] ( 11,  6.75)     ref  -\u003E  rax        \n ;* V34 tmp21        [V34    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String\u003E\n ;* V35 tmp22        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V36 tmp23        [V36    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V37 tmp24        [V37    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V38 tmp25        [V38    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V39 tmp26        [V39,T31] (  3,  3   )     int  -\u003E  r13        \n-;  V40 tmp27        [V40,T01] (  4,  8   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V41 tmp28        [V41    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x80]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V42 tmp29        [V42,T14] (  5,  5   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V43 tmp30        [V43,T17] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V39 tmp26        [V39,T33] (  3,  3   )     int  -\u003E  r13        \n\u002B;  V40 tmp27        [V40,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V41 tmp28        [V41    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x80]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V42 tmp29        [V42,T16] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V43 tmp30        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V44 tmp31        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V45 tmp32        [V45,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V46 tmp33        [V46    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V47 tmp34        [V47,T28] (  4,  3.75)     int  -\u003E  r13         \u0022spilling unroll qmark\u0022\n\u002B;  V47 tmp34        [V47,T27] (  4,  3.75)     int  -\u003E  r13         \u0022spilling unroll qmark\u0022\n ;* V48 tmp35        [V48    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V49 tmp36        [V49    ] ( 11, 11   )  struct (88) [rbp-0xD8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[short,MongoDB.Bson.BsonDocument]\u003E\n ;* V50 tmp37        [V50    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n... diff truncated; middle omitted ...\n \t\t\t\t\t\t;; size=107 bbWeight=1 PerfScore 15.25\n-G_M1269_IG32:\n\u002BG_M1269_IG30:\n        cmp      byte  ptr [rax], al\n        mov      gword ptr [rbp-0x78], rax\n        xor      edi, edi\n        mov      dword ptr [rbp-0x70], edi\n        test     byte  ptr [rbp-0x70], 4\n-       jne      SHORT G_M1269_IG33\n\u002B       jne      SHORT G_M1269_IG31\n        mov      rdi, gword ptr [rbp-0x78]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M1269_IG11\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 10.25\n-G_M1269_IG33:\n\u002BG_M1269_IG31:\n        mov      r15, bword ptr [rbp-0x140]\n        mov      dword ptr [r15\u002B0x28], 1\n        lea      rdi, bword ptr [r15\u002B0x50]\n@@ -455,9 \u002B443,9 @@ G_M1269_IG33:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      G_M1269_IG43\n\u002B       jmp      G_M1269_IG41\n \t\t\t\t\t\t;; size=98 bbWeight=1 PerfScore 17.00\n-G_M1269_IG34:\n\u002BG_M1269_IG32:\n        mov      rdx, gword ptr [r15\u002B0x10]\n        mov      rsi, gword ptr [r15\u002B0x20]\n        mov      rdi, rbx\n@@ -483,24 \u002B471,24 @@ G_M1269_IG34:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CExecuteWriteOperationAsync\u003Ed__105\u00601[short,System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xB0]\n        test     rax, rax\n-       jne      SHORT G_M1269_IG35\n\u002B       jne      SHORT G_M1269_IG33\n        lea      rdi, [rbp-0xB0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=173 bbWeight=1 PerfScore 36.00\n-G_M1269_IG35:\n\u002BG_M1269_IG33:\n        cmp      byte  ptr [rax], al\n        mov      gword ptr [rbp-0x68], rax\n        xor      edi, edi\n        mov      dword ptr [rbp-0x60], edi\n        test     byte  ptr [rbp-0x60], 4\n-       jne      SHORT G_M1269_IG36\n\u002B       jne      SHORT G_M1269_IG34\n        mov      rdi, gword ptr [rbp-0x68]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M1269_IG06\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 10.25\n-G_M1269_IG36:\n\u002BG_M1269_IG34:\n        xor      edi, edi\n        mov      r15, bword ptr [rbp-0x140]\n        mov      dword ptr [r15\u002B0x28], edi\n@@ -519,31 \u002B507,31 @@ G_M1269_IG36:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Bson.BsonDocument]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      G_M1269_IG43\n\u002B       jmp      G_M1269_IG41\n \t\t\t\t\t\t;; size=96 bbWeight=1 PerfScore 17.25\n-G_M1269_IG37:\n\u002BG_M1269_IG35:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M1269_IG38:\n\u002BG_M1269_IG36:\n        mov      dword ptr [r15\u002B0x28], -2\n        xor      rsi, rsi\n        mov      gword ptr [r15\u002B0x20], rsi\n        add      r15, 48\n-       cmp      gword ptr [r15], 0\n-       je       SHORT G_M1269_IG39\n        mov      rsi, gword ptr [r15]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M1269_IG37\n        mov      rdx, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n-       jmp      SHORT G_M1269_IG43\n-\t\t\t\t\t\t;; size=54 bbWeight=1 PerfScore 13.25\n-G_M1269_IG39:\n\u002B       jmp      SHORT G_M1269_IG41\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=1 PerfScore 11.50\n\u002BG_M1269_IG37:\n        test     rbx, rbx\n-       je       SHORT G_M1269_IG40\n\u002B       je       SHORT G_M1269_IG38\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -551,26 \u002B539,26 @@ G_M1269_IG39:\n        lea      rdi, bword ptr [r14\u002B0x38]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      SHORT G_M1269_IG42\n\u002B       jmp      SHORT G_M1269_IG40\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 7.50\n-G_M1269_IG40:\n\u002BG_M1269_IG38:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       SHORT G_M1269_IG45\n\u002B       je       SHORT G_M1269_IG43\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 3.25\n-G_M1269_IG41:\n\u002BG_M1269_IG39:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]:s_defaultResultTask\n        mov      r14, gword ptr [rdi]\n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 2.25\n-G_M1269_IG42:\n\u002BG_M1269_IG40:\n        mov      rdi, r15\n        mov      rsi, r14\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 1.50\n-G_M1269_IG43:\n\u002BG_M1269_IG41:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M1269_IG44:\n\u002BG_M1269_IG42:\n        add      rsp, 352\n        pop      rbx\n        pop      r13\n@@ -579,16 \u002B567,16 @@ G_M1269_IG44:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 3.75\n-G_M1269_IG45:\n\u002BG_M1269_IG43:\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      SHORT G_M1269_IG41\n\u002B       jmp      SHORT G_M1269_IG39\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M1269_IG46:\n\u002BG_M1269_IG44:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M1269_IG47:\n\u002BG_M1269_IG45:\n        mov      rdx, rdi\n        mov      r15, bword ptr [rbp-0x140]\n        mov      dword ptr [r15\u002B0x28], -2\n@@ -598,12 \u002B586,12 @@ G_M1269_IG47:\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n-       lea      rax, G_M1269_IG43\n\u002B       lea      rax, G_M1269_IG41\n \t\t\t\t\t\t;; size=57 bbWeight=0 PerfScore 0.00\n-G_M1269_IG48:\n\u002BG_M1269_IG46:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1761, prolog size 92, PerfScore 349.71, instruction count 372, allocated bytes for code 1761 (MethodHash=8906fb0a) for method MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CAggregateAsync\u003Ed__26\u00601[short,System.Nullable\u00601[int]]:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 1712, prolog size 92, PerfScore 333.96, instruction count 361, allocated bytes for code 1712 (MethodHash=8906fb0a) for method MongoDB.Driver.MongoCollectionImpl\u00601\u002B\u003CAggregateAsync\u003Ed__26\u00601[short,System.Nullable\u00601[int]]:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1761,"DiffBytes":1712},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase\u002B\u003CAggregateAsync\u003Ed__15\u00601[System.Nullable\u00601[int]]:MoveNext():this (FullOpts)","Category":"improvement","Description":"1,770 -\u003E 1,721 bytes (-49)","ExtraInfo":null,"Diff":"@@ -8,16 \u002B8,16 @@\n ; 0 inlinees with PGO data; 40 single block inlinees; 13 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 46, 43   )   byref  -\u003E  [rbp-0x148]  this EH-live single-def\n-;  V01 loc0         [V01,T30] (  3,  3   )     int  -\u003E  rdi         single-def\n-;  V02 loc1         [V02,T04] (  7,  7   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CMongoDB.Driver.MongoDatabase\u003E\n\u002B;  V00 this         [V00,T00] ( 44, 41   )   byref  -\u003E  [rbp-0x148]  this EH-live single-def\n\u002B;  V01 loc0         [V01,T32] (  3,  3   )     int  -\u003E  rdi         single-def\n\u002B;  V02 loc1         [V02,T02] (  7,  7   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CMongoDB.Driver.MongoDatabase\u003E\n ;  V03 loc2         [V03,T13] (  5,  5   )     ref  -\u003E  registers   class-hnd \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]\u003E\n-;  V04 loc3         [V04,T37] (  2,  2   )  struct (56) [rbp-0x58]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n-;  V05 loc4         [V05,T38] (  2,  2   )   ubyte  -\u003E  r13         ld-addr-op single-def\n-;  V06 loc5         [V06,T32] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V04 loc3         [V04,T39] (  2,  2   )  struct (56) [rbp-0x58]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n\u002B;  V05 loc4         [V05,T40] (  2,  2   )   ubyte  -\u003E  r13         ld-addr-op single-def\n\u002B;  V06 loc5         [V06,T34] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V07 loc6         [V07    ] ( 10, 10   )  struct (16) [rbp-0x68]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Bson.BsonDocument]\u003E\n ;* V08 loc7         [V08    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V09 loc8         [V09,T33] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V09 loc8         [V09,T35] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Nullable\u00601[int]]\u003E\n ;  V10 loc9         [V10    ] ( 10, 10   )  struct (16) [rbp-0x78]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\u003E\n ;* V11 loc10        [V11    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\u003E\n ;* V12 loc11        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Exception\u003E\n@@ -25,44 \u002B25,44 @@\n ;* V14 tmp1         [V14    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;* V15 tmp2         [V15    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;* V16 tmp3         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.NoPipelineInputSerializer\u003E\n-;  V17 tmp4         [V17,T18] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V17 tmp4         [V17,T17] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;* V18 tmp5         [V18    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V19 tmp6         [V19    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;  V20 tmp7         [V20,T19] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V20 tmp7         [V20,T18] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;* V21 tmp8         [V21    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V22 tmp9         [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n-;  V23 tmp10        [V23,T46] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V23 tmp10        [V23,T48] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n ;* V24 tmp11        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V25 tmp12        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;* V26 tmp13        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,System.Nullable\u00601[int]]\u003E\n-;  V27 tmp14        [V27,T06] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n\u002B;  V27 tmp14        [V27,T04] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Nullable\u00601[int]]\u003E\n ;* V28 tmp15        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V29 tmp16        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V30 tmp17        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V31 tmp18        [V31    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CMongoDB.Bson.BsonElement\u003E\n ;* V32 tmp19        [V32    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonElement\u003E\n ;* V33 tmp20        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V34 tmp21        [V34,T05] ( 11,  6.75)     ref  -\u003E  rax        \n\u002B;  V34 tmp21        [V34,T03] ( 11,  6.75)     ref  -\u003E  rax        \n ;* V35 tmp22        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String\u003E\n ;* V36 tmp23        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V37 tmp24        [V37    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V38 tmp25        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V39 tmp26        [V39    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V40 tmp27        [V40,T31] (  3,  3   )     int  -\u003E  r13        \n-;  V41 tmp28        [V41,T01] (  4,  8   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V42 tmp29        [V42    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x80]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V43 tmp30        [V43,T14] (  5,  5   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V44 tmp31        [V44,T17] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V40 tmp27        [V40,T33] (  3,  3   )     int  -\u003E  r13        \n\u002B;  V41 tmp28        [V41,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V42 tmp29        [V42    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x80]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V43 tmp30        [V43,T16] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V44 tmp31        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V45 tmp32        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V46 tmp33        [V46,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V47 tmp34        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V48 tmp35        [V48,T28] (  4,  3.75)     int  -\u003E  r13         \u0022spilling unroll qmark\u0022\n\u002B;  V48 tmp35        [V48,T27] (  4,  3.75)     int  -\u003E  r13         \u0022spilling unroll qmark\u0022\n ;* V49 tmp36        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V50 tmp37        [V50    ] ( 12, 12   )  struct (96) [rbp-0xE0]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoDatabase\u002B\u003CExecuteWriteOperationAsync\u003Ed__79\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V51 tmp38        [V51    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n... diff truncated; middle omitted ...\n-       jne      SHORT G_M3729_IG33\n\u002B       jne      SHORT G_M3729_IG31\n        mov      rdi, gword ptr [rbp-0x78]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M3729_IG11\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 10.25\n-G_M3729_IG33:\n\u002BG_M3729_IG31:\n        mov      r15, bword ptr [rbp-0x148]\n        mov      dword ptr [r15\u002B0x28], 1\n        lea      rdi, bword ptr [r15\u002B0x50]\n@@ -457,9 \u002B445,9 @@ G_M3729_IG33:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      G_M3729_IG44\n\u002B       jmp      G_M3729_IG42\n \t\t\t\t\t\t;; size=98 bbWeight=1 PerfScore 17.00\n-G_M3729_IG34:\n\u002BG_M3729_IG32:\n        mov      rdx, gword ptr [r15\u002B0x10]\n        mov      rsi, gword ptr [r15\u002B0x20]\n        mov      rdi, rbx\n@@ -478,7 \u002B466,7 @@ G_M3729_IG34:\n        mov      byte  ptr [rbp-0xA8], cl\n        mov      qword ptr [rbp-0xA0], rdi\n \t\t\t\t\t\t;; size=86 bbWeight=1 PerfScore 23.75\n-G_M3729_IG35:\n\u002BG_M3729_IG33:\n        mov      gword ptr [rbp-0xC8], r8\n        mov      gword ptr [rbp-0x98], rdx\n        mov      dword ptr [rbp-0xB8], -1\n@@ -488,24 \u002B476,24 @@ G_M3729_IG35:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoDatabase\u002B\u003CExecuteWriteOperationAsync\u003Ed__79\u00601[System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xB0]\n        test     rax, rax\n-       jne      SHORT G_M3729_IG36\n\u002B       jne      SHORT G_M3729_IG34\n        lea      rdi, [rbp-0xB0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=94 bbWeight=1 PerfScore 13.25\n-G_M3729_IG36:\n\u002BG_M3729_IG34:\n        cmp      byte  ptr [rax], al\n        mov      gword ptr [rbp-0x68], rax\n        xor      edi, edi\n        mov      dword ptr [rbp-0x60], edi\n        test     byte  ptr [rbp-0x60], 4\n-       jne      SHORT G_M3729_IG37\n\u002B       jne      SHORT G_M3729_IG35\n        mov      rdi, gword ptr [rbp-0x68]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M3729_IG06\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 10.25\n-G_M3729_IG37:\n\u002BG_M3729_IG35:\n        xor      edi, edi\n        mov      r15, bword ptr [rbp-0x148]\n        mov      dword ptr [r15\u002B0x28], edi\n@@ -524,31 \u002B512,31 @@ G_M3729_IG37:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Bson.BsonDocument]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      G_M3729_IG44\n\u002B       jmp      G_M3729_IG42\n \t\t\t\t\t\t;; size=96 bbWeight=1 PerfScore 17.25\n-G_M3729_IG38:\n\u002BG_M3729_IG36:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M3729_IG39:\n\u002BG_M3729_IG37:\n        mov      dword ptr [r15\u002B0x28], -2\n        xor      rsi, rsi\n        mov      gword ptr [r15\u002B0x20], rsi\n        add      r15, 48\n-       cmp      gword ptr [r15], 0\n-       je       SHORT G_M3729_IG40\n        mov      rsi, gword ptr [r15]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M3729_IG38\n        mov      rdx, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n-       jmp      SHORT G_M3729_IG44\n-\t\t\t\t\t\t;; size=54 bbWeight=1 PerfScore 13.25\n-G_M3729_IG40:\n\u002B       jmp      SHORT G_M3729_IG42\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=1 PerfScore 11.50\n\u002BG_M3729_IG38:\n        test     rbx, rbx\n-       je       SHORT G_M3729_IG41\n\u002B       je       SHORT G_M3729_IG39\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -556,26 \u002B544,26 @@ G_M3729_IG40:\n        lea      rdi, bword ptr [r14\u002B0x38]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      SHORT G_M3729_IG43\n\u002B       jmp      SHORT G_M3729_IG41\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 7.50\n-G_M3729_IG41:\n\u002BG_M3729_IG39:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       SHORT G_M3729_IG46\n\u002B       je       SHORT G_M3729_IG44\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 3.25\n-G_M3729_IG42:\n\u002BG_M3729_IG40:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]:s_defaultResultTask\n        mov      r14, gword ptr [rdi]\n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 2.25\n-G_M3729_IG43:\n\u002BG_M3729_IG41:\n        mov      rdi, r15\n        mov      rsi, r14\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 1.50\n-G_M3729_IG44:\n\u002BG_M3729_IG42:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M3729_IG45:\n\u002BG_M3729_IG43:\n        add      rsp, 368\n        pop      rbx\n        pop      r13\n@@ -584,16 \u002B572,16 @@ G_M3729_IG45:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 3.75\n-G_M3729_IG46:\n\u002BG_M3729_IG44:\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      SHORT G_M3729_IG42\n\u002B       jmp      SHORT G_M3729_IG40\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M3729_IG47:\n\u002BG_M3729_IG45:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M3729_IG48:\n\u002BG_M3729_IG46:\n        mov      rdx, rdi\n        mov      r15, bword ptr [rbp-0x148]\n        mov      dword ptr [r15\u002B0x28], -2\n@@ -603,12 \u002B591,12 @@ G_M3729_IG48:\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Nullable\u00601[int]]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n-       lea      rax, G_M3729_IG44\n\u002B       lea      rax, G_M3729_IG42\n \t\t\t\t\t\t;; size=57 bbWeight=0 PerfScore 0.00\n-G_M3729_IG49:\n\u002BG_M3729_IG47:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1770, prolog size 71, PerfScore 351.96, instruction count 374, allocated bytes for code 1770 (MethodHash=5548f16e) for method MongoDB.Driver.MongoDatabase\u002B\u003CAggregateAsync\u003Ed__15\u00601[System.Nullable\u00601[int]]:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 1721, prolog size 71, PerfScore 336.21, instruction count 363, allocated bytes for code 1721 (MethodHash=5548f16e) for method MongoDB.Driver.MongoDatabase\u002B\u003CAggregateAsync\u003Ed__15\u00601[System.Nullable\u00601[int]]:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1770,"DiffBytes":1721},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase\u002B\u003CAggregateAsync\u003Ed__15\u00601[System.Numerics.Vector\u00601[float]]:MoveNext():this (FullOpts)","Category":"improvement","Description":"1,770 -\u003E 1,721 bytes (-49)","ExtraInfo":null,"Diff":"@@ -8,16 \u002B8,16 @@\n ; 0 inlinees with PGO data; 40 single block inlinees; 13 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 46, 43   )   byref  -\u003E  [rbp-0x148]  this EH-live single-def\n-;  V01 loc0         [V01,T30] (  3,  3   )     int  -\u003E  rdi         single-def\n-;  V02 loc1         [V02,T04] (  7,  7   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CMongoDB.Driver.MongoDatabase\u003E\n\u002B;  V00 this         [V00,T00] ( 44, 41   )   byref  -\u003E  [rbp-0x148]  this EH-live single-def\n\u002B;  V01 loc0         [V01,T32] (  3,  3   )     int  -\u003E  rdi         single-def\n\u002B;  V02 loc1         [V02,T02] (  7,  7   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CMongoDB.Driver.MongoDatabase\u003E\n ;  V03 loc2         [V03,T13] (  5,  5   )     ref  -\u003E  registers   class-hnd \u003CMongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]\u003E\n-;  V04 loc3         [V04,T37] (  2,  2   )  struct (56) [rbp-0x58]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n-;  V05 loc4         [V05,T38] (  2,  2   )   ubyte  -\u003E  r13         ld-addr-op single-def\n-;  V06 loc5         [V06,T32] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V04 loc3         [V04,T39] (  2,  2   )  struct (56) [rbp-0x58]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n\u002B;  V05 loc4         [V05,T40] (  2,  2   )   ubyte  -\u003E  r13         ld-addr-op single-def\n\u002B;  V06 loc5         [V06,T34] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V07 loc6         [V07    ] ( 10, 10   )  struct (16) [rbp-0x68]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Bson.BsonDocument]\u003E\n ;* V08 loc7         [V08    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V09 loc8         [V09,T33] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V09 loc8         [V09,T35] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;  V10 loc9         [V10    ] ( 10, 10   )  struct (16) [rbp-0x78]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]\u003E\n ;* V11 loc10        [V11    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]\u003E\n ;* V12 loc11        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Exception\u003E\n@@ -25,44 \u002B25,44 @@\n ;* V14 tmp1         [V14    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;* V15 tmp2         [V15    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;* V16 tmp3         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.NoPipelineInputSerializer\u003E\n-;  V17 tmp4         [V17,T18] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V17 tmp4         [V17,T17] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;* V18 tmp5         [V18    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V19 tmp6         [V19    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;  V20 tmp7         [V20,T19] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V20 tmp7         [V20,T18] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;* V21 tmp8         [V21    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V22 tmp9         [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n-;  V23 tmp10        [V23,T46] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V23 tmp10        [V23,T48] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n ;* V24 tmp11        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V25 tmp12        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V26 tmp13        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,System.Numerics.Vector\u00601[float]]\u003E\n-;  V27 tmp14        [V27,T06] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n\u002B;  V27 tmp14        [V27,T04] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[System.Numerics.Vector\u00601[float]]\u003E\n ;* V28 tmp15        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V29 tmp16        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V30 tmp17        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V31 tmp18        [V31    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CMongoDB.Bson.BsonElement\u003E\n ;* V32 tmp19        [V32    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonElement\u003E\n ;* V33 tmp20        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V34 tmp21        [V34,T05] ( 11,  6.75)     ref  -\u003E  rax        \n\u002B;  V34 tmp21        [V34,T03] ( 11,  6.75)     ref  -\u003E  rax        \n ;* V35 tmp22        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String\u003E\n ;* V36 tmp23        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V37 tmp24        [V37    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V38 tmp25        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V39 tmp26        [V39    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V40 tmp27        [V40,T31] (  3,  3   )     int  -\u003E  r13        \n-;  V41 tmp28        [V41,T01] (  4,  8   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V42 tmp29        [V42    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x80]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V43 tmp30        [V43,T14] (  5,  5   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V44 tmp31        [V44,T17] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V40 tmp27        [V40,T33] (  3,  3   )     int  -\u003E  r13        \n\u002B;  V41 tmp28        [V41,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V42 tmp29        [V42    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x80]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V43 tmp30        [V43,T16] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V44 tmp31        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V45 tmp32        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V46 tmp33        [V46,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V47 tmp34        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V48 tmp35        [V48,T28] (  4,  3.75)     int  -\u003E  r13         \u0022spilling unroll qmark\u0022\n\u002B;  V48 tmp35        [V48,T27] (  4,  3.75)     int  -\u003E  r13         \u0022spilling unroll qmark\u0022\n ;* V49 tmp36        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V50 tmp37        [V50    ] ( 12, 12   )  struct (96) [rbp-0xE0]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoDatabase\u002B\u003CExecuteWriteOperationAsync\u003Ed__79\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V51 tmp38        [V51    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n... diff truncated; middle omitted ...\n        jne      G_M28396_IG11\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 10.25\n-G_M28396_IG33:\n\u002BG_M28396_IG31:\n        mov      r15, bword ptr [rbp-0x148]\n        mov      dword ptr [r15\u002B0x28], 1\n        lea      rdi, bword ptr [r15\u002B0x50]\n@@ -457,9 \u002B445,9 @@ G_M28396_IG33:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      G_M28396_IG44\n\u002B       jmp      G_M28396_IG42\n \t\t\t\t\t\t;; size=98 bbWeight=1 PerfScore 17.00\n-G_M28396_IG34:\n\u002BG_M28396_IG32:\n        mov      rdx, gword ptr [r15\u002B0x10]\n        mov      rsi, gword ptr [r15\u002B0x20]\n        mov      rdi, rbx\n@@ -478,7 \u002B466,7 @@ G_M28396_IG34:\n        mov      byte  ptr [rbp-0xA8], cl\n        mov      qword ptr [rbp-0xA0], rdi\n \t\t\t\t\t\t;; size=86 bbWeight=1 PerfScore 23.75\n-G_M28396_IG35:\n\u002BG_M28396_IG33:\n        mov      gword ptr [rbp-0xC8], r8\n        mov      gword ptr [rbp-0x98], rdx\n        mov      dword ptr [rbp-0xB8], -1\n@@ -488,24 \u002B476,24 @@ G_M28396_IG35:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoDatabase\u002B\u003CExecuteWriteOperationAsync\u003Ed__79\u00601[System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xB0]\n        test     rax, rax\n-       jne      SHORT G_M28396_IG36\n\u002B       jne      SHORT G_M28396_IG34\n        lea      rdi, [rbp-0xB0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=94 bbWeight=1 PerfScore 13.25\n-G_M28396_IG36:\n\u002BG_M28396_IG34:\n        cmp      byte  ptr [rax], al\n        mov      gword ptr [rbp-0x68], rax\n        xor      edi, edi\n        mov      dword ptr [rbp-0x60], edi\n        test     byte  ptr [rbp-0x60], 4\n-       jne      SHORT G_M28396_IG37\n\u002B       jne      SHORT G_M28396_IG35\n        mov      rdi, gword ptr [rbp-0x68]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M28396_IG06\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 10.25\n-G_M28396_IG37:\n\u002BG_M28396_IG35:\n        xor      edi, edi\n        mov      r15, bword ptr [rbp-0x148]\n        mov      dword ptr [r15\u002B0x28], edi\n@@ -524,31 \u002B512,31 @@ G_M28396_IG37:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Bson.BsonDocument]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      G_M28396_IG44\n\u002B       jmp      G_M28396_IG42\n \t\t\t\t\t\t;; size=96 bbWeight=1 PerfScore 17.25\n-G_M28396_IG38:\n\u002BG_M28396_IG36:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M28396_IG39:\n\u002BG_M28396_IG37:\n        mov      dword ptr [r15\u002B0x28], -2\n        xor      rsi, rsi\n        mov      gword ptr [r15\u002B0x20], rsi\n        add      r15, 48\n-       cmp      gword ptr [r15], 0\n-       je       SHORT G_M28396_IG40\n        mov      rsi, gword ptr [r15]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M28396_IG38\n        mov      rdx, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n-       jmp      SHORT G_M28396_IG44\n-\t\t\t\t\t\t;; size=54 bbWeight=1 PerfScore 13.25\n-G_M28396_IG40:\n\u002B       jmp      SHORT G_M28396_IG42\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=1 PerfScore 11.50\n\u002BG_M28396_IG38:\n        test     rbx, rbx\n-       je       SHORT G_M28396_IG41\n\u002B       je       SHORT G_M28396_IG39\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -556,26 \u002B544,26 @@ G_M28396_IG40:\n        lea      rdi, bword ptr [r14\u002B0x38]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      SHORT G_M28396_IG43\n\u002B       jmp      SHORT G_M28396_IG41\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 7.50\n-G_M28396_IG41:\n\u002BG_M28396_IG39:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       SHORT G_M28396_IG46\n\u002B       je       SHORT G_M28396_IG44\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 3.25\n-G_M28396_IG42:\n\u002BG_M28396_IG40:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]:s_defaultResultTask\n        mov      r14, gword ptr [rdi]\n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 2.25\n-G_M28396_IG43:\n\u002BG_M28396_IG41:\n        mov      rdi, r15\n        mov      rsi, r14\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 1.50\n-G_M28396_IG44:\n\u002BG_M28396_IG42:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M28396_IG45:\n\u002BG_M28396_IG43:\n        add      rsp, 368\n        pop      rbx\n        pop      r13\n@@ -584,16 \u002B572,16 @@ G_M28396_IG45:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 3.75\n-G_M28396_IG46:\n\u002BG_M28396_IG44:\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      SHORT G_M28396_IG42\n\u002B       jmp      SHORT G_M28396_IG40\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M28396_IG47:\n\u002BG_M28396_IG45:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M28396_IG48:\n\u002BG_M28396_IG46:\n        mov      rdx, rdi\n        mov      r15, bword ptr [rbp-0x148]\n        mov      dword ptr [r15\u002B0x28], -2\n@@ -603,12 \u002B591,12 @@ G_M28396_IG48:\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[System.Numerics.Vector\u00601[float]]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n-       lea      rax, G_M28396_IG44\n\u002B       lea      rax, G_M28396_IG42\n \t\t\t\t\t\t;; size=57 bbWeight=0 PerfScore 0.00\n-G_M28396_IG49:\n\u002BG_M28396_IG47:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1770, prolog size 71, PerfScore 351.96, instruction count 374, allocated bytes for code 1770 (MethodHash=11249113) for method MongoDB.Driver.MongoDatabase\u002B\u003CAggregateAsync\u003Ed__15\u00601[System.Numerics.Vector\u00601[float]]:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 1721, prolog size 71, PerfScore 336.21, instruction count 363, allocated bytes for code 1721 (MethodHash=11249113) for method MongoDB.Driver.MongoDatabase\u002B\u003CAggregateAsync\u003Ed__15\u00601[System.Numerics.Vector\u00601[float]]:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1770,"DiffBytes":1721},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase\u002B\u003CAggregateAsync\u003Ed__15\u00601[byte]:MoveNext():this (FullOpts)","Category":"improvement","Description":"1,770 -\u003E 1,721 bytes (-49)","ExtraInfo":null,"Diff":"@@ -8,16 \u002B8,16 @@\n ; 0 inlinees with PGO data; 40 single block inlinees; 13 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 46, 43   )   byref  -\u003E  [rbp-0x148]  this EH-live single-def\n-;  V01 loc0         [V01,T30] (  3,  3   )     int  -\u003E  rdi         single-def\n-;  V02 loc1         [V02,T04] (  7,  7   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CMongoDB.Driver.MongoDatabase\u003E\n\u002B;  V00 this         [V00,T00] ( 44, 41   )   byref  -\u003E  [rbp-0x148]  this EH-live single-def\n\u002B;  V01 loc0         [V01,T32] (  3,  3   )     int  -\u003E  rdi         single-def\n\u002B;  V02 loc1         [V02,T02] (  7,  7   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CMongoDB.Driver.MongoDatabase\u003E\n ;  V03 loc2         [V03,T13] (  5,  5   )     ref  -\u003E  registers   class-hnd \u003CMongoDB.Driver.IAsyncCursor\u00601[byte]\u003E\n-;  V04 loc3         [V04,T37] (  2,  2   )  struct (56) [rbp-0x58]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n-;  V05 loc4         [V05,T38] (  2,  2   )   ubyte  -\u003E  r13         ld-addr-op single-def\n-;  V06 loc5         [V06,T32] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V04 loc3         [V04,T39] (  2,  2   )  struct (56) [rbp-0x58]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n\u002B;  V05 loc4         [V05,T40] (  2,  2   )   ubyte  -\u003E  r13         ld-addr-op single-def\n\u002B;  V06 loc5         [V06,T34] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V07 loc6         [V07    ] ( 10, 10   )  struct (16) [rbp-0x68]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Bson.BsonDocument]\u003E\n ;* V08 loc7         [V08    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V09 loc8         [V09,T33] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[byte]\u003E\n\u002B;  V09 loc8         [V09,T35] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[byte]\u003E\n ;  V10 loc9         [V10    ] ( 10, 10   )  struct (16) [rbp-0x78]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Driver.IAsyncCursor\u00601[byte]]\u003E\n ;* V11 loc10        [V11    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[MongoDB.Driver.IAsyncCursor\u00601[byte]]\u003E\n ;* V12 loc11        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Exception\u003E\n@@ -25,44 \u002B25,44 @@\n ;* V14 tmp1         [V14    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;* V15 tmp2         [V15    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;* V16 tmp3         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.NoPipelineInputSerializer\u003E\n-;  V17 tmp4         [V17,T18] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V17 tmp4         [V17,T17] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;* V18 tmp5         [V18    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V19 tmp6         [V19    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;  V20 tmp7         [V20,T19] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V20 tmp7         [V20,T18] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;* V21 tmp8         [V21    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V22 tmp9         [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n-;  V23 tmp10        [V23,T46] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V23 tmp10        [V23,T48] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n ;* V24 tmp11        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V25 tmp12        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n ;* V26 tmp13        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,byte]\u003E\n-;  V27 tmp14        [V27,T06] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n\u002B;  V27 tmp14        [V27,T04] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[byte]\u003E\n ;* V28 tmp15        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V29 tmp16        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V30 tmp17        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V31 tmp18        [V31    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CMongoDB.Bson.BsonElement\u003E\n ;* V32 tmp19        [V32    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonElement\u003E\n ;* V33 tmp20        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V34 tmp21        [V34,T05] ( 11,  6.75)     ref  -\u003E  rax        \n\u002B;  V34 tmp21        [V34,T03] ( 11,  6.75)     ref  -\u003E  rax        \n ;* V35 tmp22        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String\u003E\n ;* V36 tmp23        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V37 tmp24        [V37    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V38 tmp25        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V39 tmp26        [V39    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V40 tmp27        [V40,T31] (  3,  3   )     int  -\u003E  r13        \n-;  V41 tmp28        [V41,T01] (  4,  8   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V42 tmp29        [V42    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x80]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V43 tmp30        [V43,T14] (  5,  5   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V44 tmp31        [V44,T17] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V40 tmp27        [V40,T33] (  3,  3   )     int  -\u003E  r13        \n\u002B;  V41 tmp28        [V41,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V42 tmp29        [V42    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x80]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V43 tmp30        [V43,T16] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V44 tmp31        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V45 tmp32        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V46 tmp33        [V46,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V47 tmp34        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V48 tmp35        [V48,T28] (  4,  3.75)     int  -\u003E  r13         \u0022spilling unroll qmark\u0022\n\u002B;  V48 tmp35        [V48,T27] (  4,  3.75)     int  -\u003E  r13         \u0022spilling unroll qmark\u0022\n ;* V49 tmp36        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V50 tmp37        [V50    ] ( 12, 12   )  struct (96) [rbp-0xE0]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoDatabase\u002B\u003CExecuteWriteOperationAsync\u003Ed__79\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V51 tmp38        [V51    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n ;* V52 tmp39        [V52    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n... diff truncated; middle omitted ...\n        xor      edi, edi\n        mov      dword ptr [rbp-0x70], edi\n        test     byte  ptr [rbp-0x70], 4\n-       jne      SHORT G_M12709_IG33\n\u002B       jne      SHORT G_M12709_IG31\n        mov      rdi, gword ptr [rbp-0x78]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M12709_IG11\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 10.25\n-G_M12709_IG33:\n\u002BG_M12709_IG31:\n        mov      r15, bword ptr [rbp-0x148]\n        mov      dword ptr [r15\u002B0x28], 1\n        lea      rdi, bword ptr [r15\u002B0x50]\n@@ -457,9 \u002B445,9 @@ G_M12709_IG33:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[byte]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Driver.IAsyncCursor\u00601[byte]]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      G_M12709_IG44\n\u002B       jmp      G_M12709_IG42\n \t\t\t\t\t\t;; size=98 bbWeight=1 PerfScore 17.00\n-G_M12709_IG34:\n\u002BG_M12709_IG32:\n        mov      rdx, gword ptr [r15\u002B0x10]\n        mov      rsi, gword ptr [r15\u002B0x20]\n        mov      rdi, rbx\n@@ -478,7 \u002B466,7 @@ G_M12709_IG34:\n        mov      byte  ptr [rbp-0xA8], cl\n        mov      qword ptr [rbp-0xA0], rdi\n \t\t\t\t\t\t;; size=86 bbWeight=1 PerfScore 23.75\n-G_M12709_IG35:\n\u002BG_M12709_IG33:\n        mov      gword ptr [rbp-0xC8], r8\n        mov      gword ptr [rbp-0x98], rdx\n        mov      dword ptr [rbp-0xB8], -1\n@@ -488,24 \u002B476,24 @@ G_M12709_IG35:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoDatabase\u002B\u003CExecuteWriteOperationAsync\u003Ed__79\u00601[System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xB0]\n        test     rax, rax\n-       jne      SHORT G_M12709_IG36\n\u002B       jne      SHORT G_M12709_IG34\n        lea      rdi, [rbp-0xB0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=94 bbWeight=1 PerfScore 13.25\n-G_M12709_IG36:\n\u002BG_M12709_IG34:\n        cmp      byte  ptr [rax], al\n        mov      gword ptr [rbp-0x68], rax\n        xor      edi, edi\n        mov      dword ptr [rbp-0x60], edi\n        test     byte  ptr [rbp-0x60], 4\n-       jne      SHORT G_M12709_IG37\n\u002B       jne      SHORT G_M12709_IG35\n        mov      rdi, gword ptr [rbp-0x68]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M12709_IG06\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 10.25\n-G_M12709_IG37:\n\u002BG_M12709_IG35:\n        xor      edi, edi\n        mov      r15, bword ptr [rbp-0x148]\n        mov      dword ptr [r15\u002B0x28], edi\n@@ -524,31 \u002B512,31 @@ G_M12709_IG37:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[byte]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Bson.BsonDocument]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      G_M12709_IG44\n\u002B       jmp      G_M12709_IG42\n \t\t\t\t\t\t;; size=96 bbWeight=1 PerfScore 17.25\n-G_M12709_IG38:\n\u002BG_M12709_IG36:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M12709_IG39:\n\u002BG_M12709_IG37:\n        mov      dword ptr [r15\u002B0x28], -2\n        xor      rsi, rsi\n        mov      gword ptr [r15\u002B0x20], rsi\n        add      r15, 48\n-       cmp      gword ptr [r15], 0\n-       je       SHORT G_M12709_IG40\n        mov      rsi, gword ptr [r15]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M12709_IG38\n        mov      rdx, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[byte]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n-       jmp      SHORT G_M12709_IG44\n-\t\t\t\t\t\t;; size=54 bbWeight=1 PerfScore 13.25\n-G_M12709_IG40:\n\u002B       jmp      SHORT G_M12709_IG42\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=1 PerfScore 11.50\n\u002BG_M12709_IG38:\n        test     rbx, rbx\n-       je       SHORT G_M12709_IG41\n\u002B       je       SHORT G_M12709_IG39\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[byte]]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -556,26 \u002B544,26 @@ G_M12709_IG40:\n        lea      rdi, bword ptr [r14\u002B0x38]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      SHORT G_M12709_IG43\n\u002B       jmp      SHORT G_M12709_IG41\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 7.50\n-G_M12709_IG41:\n\u002BG_M12709_IG39:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       SHORT G_M12709_IG46\n\u002B       je       SHORT G_M12709_IG44\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 3.25\n-G_M12709_IG42:\n\u002BG_M12709_IG40:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[byte]]:s_defaultResultTask\n        mov      r14, gword ptr [rdi]\n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 2.25\n-G_M12709_IG43:\n\u002BG_M12709_IG41:\n        mov      rdi, r15\n        mov      rsi, r14\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 1.50\n-G_M12709_IG44:\n\u002BG_M12709_IG42:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M12709_IG45:\n\u002BG_M12709_IG43:\n        add      rsp, 368\n        pop      rbx\n        pop      r13\n@@ -584,16 \u002B572,16 @@ G_M12709_IG45:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 3.75\n-G_M12709_IG46:\n\u002BG_M12709_IG44:\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[byte]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      SHORT G_M12709_IG42\n\u002B       jmp      SHORT G_M12709_IG40\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M12709_IG47:\n\u002BG_M12709_IG45:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M12709_IG48:\n\u002BG_M12709_IG46:\n        mov      rdx, rdi\n        mov      r15, bword ptr [rbp-0x148]\n        mov      dword ptr [r15\u002B0x28], -2\n@@ -603,12 \u002B591,12 @@ G_M12709_IG48:\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[byte]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n-       lea      rax, G_M12709_IG44\n\u002B       lea      rax, G_M12709_IG42\n \t\t\t\t\t\t;; size=57 bbWeight=0 PerfScore 0.00\n-G_M12709_IG49:\n\u002BG_M12709_IG47:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1770, prolog size 71, PerfScore 351.96, instruction count 374, allocated bytes for code 1770 (MethodHash=37dace5a) for method MongoDB.Driver.MongoDatabase\u002B\u003CAggregateAsync\u003Ed__15\u00601[byte]:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 1721, prolog size 71, PerfScore 336.21, instruction count 363, allocated bytes for code 1721 (MethodHash=37dace5a) for method MongoDB.Driver.MongoDatabase\u002B\u003CAggregateAsync\u003Ed__15\u00601[byte]:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1770,"DiffBytes":1721},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase\u002B\u003CAggregateAsync\u003Ed__15\u00601[double]:MoveNext():this (FullOpts)","Category":"improvement","Description":"1,770 -\u003E 1,721 bytes (-49)","ExtraInfo":null,"Diff":"@@ -8,16 \u002B8,16 @@\n ; 0 inlinees with PGO data; 40 single block inlinees; 13 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 46, 43   )   byref  -\u003E  [rbp-0x148]  this EH-live single-def\n-;  V01 loc0         [V01,T30] (  3,  3   )     int  -\u003E  rdi         single-def\n-;  V02 loc1         [V02,T04] (  7,  7   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CMongoDB.Driver.MongoDatabase\u003E\n\u002B;  V00 this         [V00,T00] ( 44, 41   )   byref  -\u003E  [rbp-0x148]  this EH-live single-def\n\u002B;  V01 loc0         [V01,T32] (  3,  3   )     int  -\u003E  rdi         single-def\n\u002B;  V02 loc1         [V02,T02] (  7,  7   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CMongoDB.Driver.MongoDatabase\u003E\n ;  V03 loc2         [V03,T13] (  5,  5   )     ref  -\u003E  registers   class-hnd \u003CMongoDB.Driver.IAsyncCursor\u00601[double]\u003E\n-;  V04 loc3         [V04,T37] (  2,  2   )  struct (56) [rbp-0x58]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n-;  V05 loc4         [V05,T38] (  2,  2   )   ubyte  -\u003E  r13         ld-addr-op single-def\n-;  V06 loc5         [V06,T32] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V04 loc3         [V04,T39] (  2,  2   )  struct (56) [rbp-0x58]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n\u002B;  V05 loc4         [V05,T40] (  2,  2   )   ubyte  -\u003E  r13         ld-addr-op single-def\n\u002B;  V06 loc5         [V06,T34] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V07 loc6         [V07    ] ( 10, 10   )  struct (16) [rbp-0x68]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Bson.BsonDocument]\u003E\n ;* V08 loc7         [V08    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V09 loc8         [V09,T33] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[double]\u003E\n\u002B;  V09 loc8         [V09,T35] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[double]\u003E\n ;  V10 loc9         [V10    ] ( 10, 10   )  struct (16) [rbp-0x78]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Driver.IAsyncCursor\u00601[double]]\u003E\n ;* V11 loc10        [V11    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[MongoDB.Driver.IAsyncCursor\u00601[double]]\u003E\n ;* V12 loc11        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Exception\u003E\n@@ -25,44 \u002B25,44 @@\n ;* V14 tmp1         [V14    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;* V15 tmp2         [V15    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;* V16 tmp3         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.NoPipelineInputSerializer\u003E\n-;  V17 tmp4         [V17,T18] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V17 tmp4         [V17,T17] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;* V18 tmp5         [V18    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V19 tmp6         [V19    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;  V20 tmp7         [V20,T19] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V20 tmp7         [V20,T18] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;* V21 tmp8         [V21    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V22 tmp9         [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n-;  V23 tmp10        [V23,T46] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V23 tmp10        [V23,T48] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n ;* V24 tmp11        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V25 tmp12        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n ;* V26 tmp13        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,double]\u003E\n-;  V27 tmp14        [V27,T06] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n\u002B;  V27 tmp14        [V27,T04] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[double]\u003E\n ;* V28 tmp15        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V29 tmp16        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V30 tmp17        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V31 tmp18        [V31    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CMongoDB.Bson.BsonElement\u003E\n ;* V32 tmp19        [V32    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonElement\u003E\n ;* V33 tmp20        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V34 tmp21        [V34,T05] ( 11,  6.75)     ref  -\u003E  rax        \n\u002B;  V34 tmp21        [V34,T03] ( 11,  6.75)     ref  -\u003E  rax        \n ;* V35 tmp22        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String\u003E\n ;* V36 tmp23        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V37 tmp24        [V37    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V38 tmp25        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V39 tmp26        [V39    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V40 tmp27        [V40,T31] (  3,  3   )     int  -\u003E  r13        \n-;  V41 tmp28        [V41,T01] (  4,  8   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V42 tmp29        [V42    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x80]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V43 tmp30        [V43,T14] (  5,  5   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V44 tmp31        [V44,T17] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V40 tmp27        [V40,T33] (  3,  3   )     int  -\u003E  r13        \n\u002B;  V41 tmp28        [V41,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V42 tmp29        [V42    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x80]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V43 tmp30        [V43,T16] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V44 tmp31        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V45 tmp32        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V46 tmp33        [V46,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V47 tmp34        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V48 tmp35        [V48,T28] (  4,  3.75)     int  -\u003E  r13         \u0022spilling unroll qmark\u0022\n\u002B;  V48 tmp35        [V48,T27] (  4,  3.75)     int  -\u003E  r13         \u0022spilling unroll qmark\u0022\n ;* V49 tmp36        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V50 tmp37        [V50    ] ( 12, 12   )  struct (96) [rbp-0xE0]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoDatabase\u002B\u003CExecuteWriteOperationAsync\u003Ed__79\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V51 tmp38        [V51    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n ;* V52 tmp39        [V52    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n... diff truncated; middle omitted ...\n        xor      edi, edi\n        mov      dword ptr [rbp-0x70], edi\n        test     byte  ptr [rbp-0x70], 4\n-       jne      SHORT G_M11450_IG33\n\u002B       jne      SHORT G_M11450_IG31\n        mov      rdi, gword ptr [rbp-0x78]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M11450_IG11\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 10.25\n-G_M11450_IG33:\n\u002BG_M11450_IG31:\n        mov      r15, bword ptr [rbp-0x148]\n        mov      dword ptr [r15\u002B0x28], 1\n        lea      rdi, bword ptr [r15\u002B0x50]\n@@ -457,9 \u002B445,9 @@ G_M11450_IG33:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[double]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Driver.IAsyncCursor\u00601[double]]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      G_M11450_IG44\n\u002B       jmp      G_M11450_IG42\n \t\t\t\t\t\t;; size=98 bbWeight=1 PerfScore 17.00\n-G_M11450_IG34:\n\u002BG_M11450_IG32:\n        mov      rdx, gword ptr [r15\u002B0x10]\n        mov      rsi, gword ptr [r15\u002B0x20]\n        mov      rdi, rbx\n@@ -478,7 \u002B466,7 @@ G_M11450_IG34:\n        mov      byte  ptr [rbp-0xA8], cl\n        mov      qword ptr [rbp-0xA0], rdi\n \t\t\t\t\t\t;; size=86 bbWeight=1 PerfScore 23.75\n-G_M11450_IG35:\n\u002BG_M11450_IG33:\n        mov      gword ptr [rbp-0xC8], r8\n        mov      gword ptr [rbp-0x98], rdx\n        mov      dword ptr [rbp-0xB8], -1\n@@ -488,24 \u002B476,24 @@ G_M11450_IG35:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoDatabase\u002B\u003CExecuteWriteOperationAsync\u003Ed__79\u00601[System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xB0]\n        test     rax, rax\n-       jne      SHORT G_M11450_IG36\n\u002B       jne      SHORT G_M11450_IG34\n        lea      rdi, [rbp-0xB0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=94 bbWeight=1 PerfScore 13.25\n-G_M11450_IG36:\n\u002BG_M11450_IG34:\n        cmp      byte  ptr [rax], al\n        mov      gword ptr [rbp-0x68], rax\n        xor      edi, edi\n        mov      dword ptr [rbp-0x60], edi\n        test     byte  ptr [rbp-0x60], 4\n-       jne      SHORT G_M11450_IG37\n\u002B       jne      SHORT G_M11450_IG35\n        mov      rdi, gword ptr [rbp-0x68]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M11450_IG06\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 10.25\n-G_M11450_IG37:\n\u002BG_M11450_IG35:\n        xor      edi, edi\n        mov      r15, bword ptr [rbp-0x148]\n        mov      dword ptr [r15\u002B0x28], edi\n@@ -524,31 \u002B512,31 @@ G_M11450_IG37:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[double]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Bson.BsonDocument]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      G_M11450_IG44\n\u002B       jmp      G_M11450_IG42\n \t\t\t\t\t\t;; size=96 bbWeight=1 PerfScore 17.25\n-G_M11450_IG38:\n\u002BG_M11450_IG36:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M11450_IG39:\n\u002BG_M11450_IG37:\n        mov      dword ptr [r15\u002B0x28], -2\n        xor      rsi, rsi\n        mov      gword ptr [r15\u002B0x20], rsi\n        add      r15, 48\n-       cmp      gword ptr [r15], 0\n-       je       SHORT G_M11450_IG40\n        mov      rsi, gword ptr [r15]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M11450_IG38\n        mov      rdx, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[double]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n-       jmp      SHORT G_M11450_IG44\n-\t\t\t\t\t\t;; size=54 bbWeight=1 PerfScore 13.25\n-G_M11450_IG40:\n\u002B       jmp      SHORT G_M11450_IG42\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=1 PerfScore 11.50\n\u002BG_M11450_IG38:\n        test     rbx, rbx\n-       je       SHORT G_M11450_IG41\n\u002B       je       SHORT G_M11450_IG39\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[double]]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -556,26 \u002B544,26 @@ G_M11450_IG40:\n        lea      rdi, bword ptr [r14\u002B0x38]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      SHORT G_M11450_IG43\n\u002B       jmp      SHORT G_M11450_IG41\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 7.50\n-G_M11450_IG41:\n\u002BG_M11450_IG39:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       SHORT G_M11450_IG46\n\u002B       je       SHORT G_M11450_IG44\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 3.25\n-G_M11450_IG42:\n\u002BG_M11450_IG40:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[double]]:s_defaultResultTask\n        mov      r14, gword ptr [rdi]\n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 2.25\n-G_M11450_IG43:\n\u002BG_M11450_IG41:\n        mov      rdi, r15\n        mov      rsi, r14\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 1.50\n-G_M11450_IG44:\n\u002BG_M11450_IG42:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M11450_IG45:\n\u002BG_M11450_IG43:\n        add      rsp, 368\n        pop      rbx\n        pop      r13\n@@ -584,16 \u002B572,16 @@ G_M11450_IG45:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 3.75\n-G_M11450_IG46:\n\u002BG_M11450_IG44:\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[double]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      SHORT G_M11450_IG42\n\u002B       jmp      SHORT G_M11450_IG40\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M11450_IG47:\n\u002BG_M11450_IG45:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M11450_IG48:\n\u002BG_M11450_IG46:\n        mov      rdx, rdi\n        mov      r15, bword ptr [rbp-0x148]\n        mov      dword ptr [r15\u002B0x28], -2\n@@ -603,12 \u002B591,12 @@ G_M11450_IG48:\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[double]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n-       lea      rax, G_M11450_IG44\n\u002B       lea      rax, G_M11450_IG42\n \t\t\t\t\t\t;; size=57 bbWeight=0 PerfScore 0.00\n-G_M11450_IG49:\n\u002BG_M11450_IG47:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1770, prolog size 71, PerfScore 351.96, instruction count 374, allocated bytes for code 1770 (MethodHash=157ed345) for method MongoDB.Driver.MongoDatabase\u002B\u003CAggregateAsync\u003Ed__15\u00601[double]:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 1721, prolog size 71, PerfScore 336.21, instruction count 363, allocated bytes for code 1721 (MethodHash=157ed345) for method MongoDB.Driver.MongoDatabase\u002B\u003CAggregateAsync\u003Ed__15\u00601[double]:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1770,"DiffBytes":1721},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase\u002B\u003CAggregateAsync\u003Ed__15\u00601[int]:MoveNext():this (FullOpts)","Category":"improvement","Description":"1,770 -\u003E 1,721 bytes (-49)","ExtraInfo":null,"Diff":"@@ -8,16 \u002B8,16 @@\n ; 0 inlinees with PGO data; 40 single block inlinees; 13 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 46, 43   )   byref  -\u003E  [rbp-0x148]  this EH-live single-def\n-;  V01 loc0         [V01,T30] (  3,  3   )     int  -\u003E  rdi         single-def\n-;  V02 loc1         [V02,T04] (  7,  7   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CMongoDB.Driver.MongoDatabase\u003E\n\u002B;  V00 this         [V00,T00] ( 44, 41   )   byref  -\u003E  [rbp-0x148]  this EH-live single-def\n\u002B;  V01 loc0         [V01,T32] (  3,  3   )     int  -\u003E  rdi         single-def\n\u002B;  V02 loc1         [V02,T02] (  7,  7   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CMongoDB.Driver.MongoDatabase\u003E\n ;  V03 loc2         [V03,T13] (  5,  5   )     ref  -\u003E  registers   class-hnd \u003CMongoDB.Driver.IAsyncCursor\u00601[int]\u003E\n-;  V04 loc3         [V04,T37] (  2,  2   )  struct (56) [rbp-0x58]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n-;  V05 loc4         [V05,T38] (  2,  2   )   ubyte  -\u003E  r13         ld-addr-op single-def\n-;  V06 loc5         [V06,T32] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V04 loc3         [V04,T39] (  2,  2   )  struct (56) [rbp-0x58]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n\u002B;  V05 loc4         [V05,T40] (  2,  2   )   ubyte  -\u003E  r13         ld-addr-op single-def\n\u002B;  V06 loc5         [V06,T34] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V07 loc6         [V07    ] ( 10, 10   )  struct (16) [rbp-0x68]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Bson.BsonDocument]\u003E\n ;* V08 loc7         [V08    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V09 loc8         [V09,T33] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[int]\u003E\n\u002B;  V09 loc8         [V09,T35] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[int]\u003E\n ;  V10 loc9         [V10    ] ( 10, 10   )  struct (16) [rbp-0x78]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Driver.IAsyncCursor\u00601[int]]\u003E\n ;* V11 loc10        [V11    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[MongoDB.Driver.IAsyncCursor\u00601[int]]\u003E\n ;* V12 loc11        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Exception\u003E\n@@ -25,44 \u002B25,44 @@\n ;* V14 tmp1         [V14    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;* V15 tmp2         [V15    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;* V16 tmp3         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.NoPipelineInputSerializer\u003E\n-;  V17 tmp4         [V17,T18] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V17 tmp4         [V17,T17] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;* V18 tmp5         [V18    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V19 tmp6         [V19    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;  V20 tmp7         [V20,T19] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V20 tmp7         [V20,T18] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;* V21 tmp8         [V21    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V22 tmp9         [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n-;  V23 tmp10        [V23,T46] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V23 tmp10        [V23,T48] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n ;* V24 tmp11        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V25 tmp12        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n ;* V26 tmp13        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,int]\u003E\n-;  V27 tmp14        [V27,T06] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n\u002B;  V27 tmp14        [V27,T04] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[int]\u003E\n ;* V28 tmp15        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V29 tmp16        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V30 tmp17        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V31 tmp18        [V31    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CMongoDB.Bson.BsonElement\u003E\n ;* V32 tmp19        [V32    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonElement\u003E\n ;* V33 tmp20        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V34 tmp21        [V34,T05] ( 11,  6.75)     ref  -\u003E  rax        \n\u002B;  V34 tmp21        [V34,T03] ( 11,  6.75)     ref  -\u003E  rax        \n ;* V35 tmp22        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String\u003E\n ;* V36 tmp23        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V37 tmp24        [V37    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V38 tmp25        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V39 tmp26        [V39    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V40 tmp27        [V40,T31] (  3,  3   )     int  -\u003E  r13        \n-;  V41 tmp28        [V41,T01] (  4,  8   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V42 tmp29        [V42    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x80]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V43 tmp30        [V43,T14] (  5,  5   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V44 tmp31        [V44,T17] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V40 tmp27        [V40,T33] (  3,  3   )     int  -\u003E  r13        \n\u002B;  V41 tmp28        [V41,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V42 tmp29        [V42    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x80]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V43 tmp30        [V43,T16] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V44 tmp31        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V45 tmp32        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V46 tmp33        [V46,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V47 tmp34        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V48 tmp35        [V48,T28] (  4,  3.75)     int  -\u003E  r13         \u0022spilling unroll qmark\u0022\n\u002B;  V48 tmp35        [V48,T27] (  4,  3.75)     int  -\u003E  r13         \u0022spilling unroll qmark\u0022\n ;* V49 tmp36        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V50 tmp37        [V50    ] ( 12, 12   )  struct (96) [rbp-0xE0]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoDatabase\u002B\u003CExecuteWriteOperationAsync\u003Ed__79\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V51 tmp38        [V51    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n ;* V52 tmp39        [V52    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n... diff truncated; middle omitted ...\n        xor      edi, edi\n        mov      dword ptr [rbp-0x70], edi\n        test     byte  ptr [rbp-0x70], 4\n-       jne      SHORT G_M50620_IG33\n\u002B       jne      SHORT G_M50620_IG31\n        mov      rdi, gword ptr [rbp-0x78]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M50620_IG11\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 10.25\n-G_M50620_IG33:\n\u002BG_M50620_IG31:\n        mov      r15, bword ptr [rbp-0x148]\n        mov      dword ptr [r15\u002B0x28], 1\n        lea      rdi, bword ptr [r15\u002B0x50]\n@@ -457,9 \u002B445,9 @@ G_M50620_IG33:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[int]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Driver.IAsyncCursor\u00601[int]]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      G_M50620_IG44\n\u002B       jmp      G_M50620_IG42\n \t\t\t\t\t\t;; size=98 bbWeight=1 PerfScore 17.00\n-G_M50620_IG34:\n\u002BG_M50620_IG32:\n        mov      rdx, gword ptr [r15\u002B0x10]\n        mov      rsi, gword ptr [r15\u002B0x20]\n        mov      rdi, rbx\n@@ -478,7 \u002B466,7 @@ G_M50620_IG34:\n        mov      byte  ptr [rbp-0xA8], cl\n        mov      qword ptr [rbp-0xA0], rdi\n \t\t\t\t\t\t;; size=86 bbWeight=1 PerfScore 23.75\n-G_M50620_IG35:\n\u002BG_M50620_IG33:\n        mov      gword ptr [rbp-0xC8], r8\n        mov      gword ptr [rbp-0x98], rdx\n        mov      dword ptr [rbp-0xB8], -1\n@@ -488,24 \u002B476,24 @@ G_M50620_IG35:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoDatabase\u002B\u003CExecuteWriteOperationAsync\u003Ed__79\u00601[System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xB0]\n        test     rax, rax\n-       jne      SHORT G_M50620_IG36\n\u002B       jne      SHORT G_M50620_IG34\n        lea      rdi, [rbp-0xB0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=94 bbWeight=1 PerfScore 13.25\n-G_M50620_IG36:\n\u002BG_M50620_IG34:\n        cmp      byte  ptr [rax], al\n        mov      gword ptr [rbp-0x68], rax\n        xor      edi, edi\n        mov      dword ptr [rbp-0x60], edi\n        test     byte  ptr [rbp-0x60], 4\n-       jne      SHORT G_M50620_IG37\n\u002B       jne      SHORT G_M50620_IG35\n        mov      rdi, gword ptr [rbp-0x68]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M50620_IG06\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 10.25\n-G_M50620_IG37:\n\u002BG_M50620_IG35:\n        xor      edi, edi\n        mov      r15, bword ptr [rbp-0x148]\n        mov      dword ptr [r15\u002B0x28], edi\n@@ -524,31 \u002B512,31 @@ G_M50620_IG37:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[int]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Bson.BsonDocument]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      G_M50620_IG44\n\u002B       jmp      G_M50620_IG42\n \t\t\t\t\t\t;; size=96 bbWeight=1 PerfScore 17.25\n-G_M50620_IG38:\n\u002BG_M50620_IG36:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M50620_IG39:\n\u002BG_M50620_IG37:\n        mov      dword ptr [r15\u002B0x28], -2\n        xor      rsi, rsi\n        mov      gword ptr [r15\u002B0x20], rsi\n        add      r15, 48\n-       cmp      gword ptr [r15], 0\n-       je       SHORT G_M50620_IG40\n        mov      rsi, gword ptr [r15]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M50620_IG38\n        mov      rdx, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[int]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n-       jmp      SHORT G_M50620_IG44\n-\t\t\t\t\t\t;; size=54 bbWeight=1 PerfScore 13.25\n-G_M50620_IG40:\n\u002B       jmp      SHORT G_M50620_IG42\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=1 PerfScore 11.50\n\u002BG_M50620_IG38:\n        test     rbx, rbx\n-       je       SHORT G_M50620_IG41\n\u002B       je       SHORT G_M50620_IG39\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[int]]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -556,26 \u002B544,26 @@ G_M50620_IG40:\n        lea      rdi, bword ptr [r14\u002B0x38]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      SHORT G_M50620_IG43\n\u002B       jmp      SHORT G_M50620_IG41\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 7.50\n-G_M50620_IG41:\n\u002BG_M50620_IG39:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       SHORT G_M50620_IG46\n\u002B       je       SHORT G_M50620_IG44\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 3.25\n-G_M50620_IG42:\n\u002BG_M50620_IG40:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[int]]:s_defaultResultTask\n        mov      r14, gword ptr [rdi]\n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 2.25\n-G_M50620_IG43:\n\u002BG_M50620_IG41:\n        mov      rdi, r15\n        mov      rsi, r14\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 1.50\n-G_M50620_IG44:\n\u002BG_M50620_IG42:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M50620_IG45:\n\u002BG_M50620_IG43:\n        add      rsp, 368\n        pop      rbx\n        pop      r13\n@@ -584,16 \u002B572,16 @@ G_M50620_IG45:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 3.75\n-G_M50620_IG46:\n\u002BG_M50620_IG44:\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[int]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      SHORT G_M50620_IG42\n\u002B       jmp      SHORT G_M50620_IG40\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M50620_IG47:\n\u002BG_M50620_IG45:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M50620_IG48:\n\u002BG_M50620_IG46:\n        mov      rdx, rdi\n        mov      r15, bword ptr [rbp-0x148]\n        mov      dword ptr [r15\u002B0x28], -2\n@@ -603,12 \u002B591,12 @@ G_M50620_IG48:\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[int]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n-       lea      rax, G_M50620_IG44\n\u002B       lea      rax, G_M50620_IG42\n \t\t\t\t\t\t;; size=57 bbWeight=0 PerfScore 0.00\n-G_M50620_IG49:\n\u002BG_M50620_IG47:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1770, prolog size 71, PerfScore 351.96, instruction count 374, allocated bytes for code 1770 (MethodHash=d3513a43) for method MongoDB.Driver.MongoDatabase\u002B\u003CAggregateAsync\u003Ed__15\u00601[int]:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 1721, prolog size 71, PerfScore 336.21, instruction count 363, allocated bytes for code 1721 (MethodHash=d3513a43) for method MongoDB.Driver.MongoDatabase\u002B\u003CAggregateAsync\u003Ed__15\u00601[int]:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1770,"DiffBytes":1721},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase\u002B\u003CAggregateAsync\u003Ed__15\u00601[long]:MoveNext():this (FullOpts)","Category":"improvement","Description":"1,770 -\u003E 1,721 bytes (-49)","ExtraInfo":null,"Diff":"@@ -8,16 \u002B8,16 @@\n ; 0 inlinees with PGO data; 40 single block inlinees; 13 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 46, 43   )   byref  -\u003E  [rbp-0x148]  this EH-live single-def\n-;  V01 loc0         [V01,T30] (  3,  3   )     int  -\u003E  rdi         single-def\n-;  V02 loc1         [V02,T04] (  7,  7   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CMongoDB.Driver.MongoDatabase\u003E\n\u002B;  V00 this         [V00,T00] ( 44, 41   )   byref  -\u003E  [rbp-0x148]  this EH-live single-def\n\u002B;  V01 loc0         [V01,T32] (  3,  3   )     int  -\u003E  rdi         single-def\n\u002B;  V02 loc1         [V02,T02] (  7,  7   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CMongoDB.Driver.MongoDatabase\u003E\n ;  V03 loc2         [V03,T13] (  5,  5   )     ref  -\u003E  registers   class-hnd \u003CMongoDB.Driver.IAsyncCursor\u00601[long]\u003E\n-;  V04 loc3         [V04,T37] (  2,  2   )  struct (56) [rbp-0x58]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n-;  V05 loc4         [V05,T38] (  2,  2   )   ubyte  -\u003E  r13         ld-addr-op single-def\n-;  V06 loc5         [V06,T32] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V04 loc3         [V04,T39] (  2,  2   )  struct (56) [rbp-0x58]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n\u002B;  V05 loc4         [V05,T40] (  2,  2   )   ubyte  -\u003E  r13         ld-addr-op single-def\n\u002B;  V06 loc5         [V06,T34] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V07 loc6         [V07    ] ( 10, 10   )  struct (16) [rbp-0x68]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Bson.BsonDocument]\u003E\n ;* V08 loc7         [V08    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V09 loc8         [V09,T33] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[long]\u003E\n\u002B;  V09 loc8         [V09,T35] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[long]\u003E\n ;  V10 loc9         [V10    ] ( 10, 10   )  struct (16) [rbp-0x78]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Driver.IAsyncCursor\u00601[long]]\u003E\n ;* V11 loc10        [V11    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[MongoDB.Driver.IAsyncCursor\u00601[long]]\u003E\n ;* V12 loc11        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Exception\u003E\n@@ -25,44 \u002B25,44 @@\n ;* V14 tmp1         [V14    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;* V15 tmp2         [V15    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;* V16 tmp3         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.NoPipelineInputSerializer\u003E\n-;  V17 tmp4         [V17,T18] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V17 tmp4         [V17,T17] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;* V18 tmp5         [V18    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V19 tmp6         [V19    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;  V20 tmp7         [V20,T19] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V20 tmp7         [V20,T18] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;* V21 tmp8         [V21    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V22 tmp9         [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n-;  V23 tmp10        [V23,T46] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V23 tmp10        [V23,T48] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n ;* V24 tmp11        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V25 tmp12        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n ;* V26 tmp13        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,long]\u003E\n-;  V27 tmp14        [V27,T06] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n\u002B;  V27 tmp14        [V27,T04] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[long]\u003E\n ;* V28 tmp15        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V29 tmp16        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V30 tmp17        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V31 tmp18        [V31    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CMongoDB.Bson.BsonElement\u003E\n ;* V32 tmp19        [V32    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonElement\u003E\n ;* V33 tmp20        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V34 tmp21        [V34,T05] ( 11,  6.75)     ref  -\u003E  rax        \n\u002B;  V34 tmp21        [V34,T03] ( 11,  6.75)     ref  -\u003E  rax        \n ;* V35 tmp22        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String\u003E\n ;* V36 tmp23        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V37 tmp24        [V37    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V38 tmp25        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V39 tmp26        [V39    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V40 tmp27        [V40,T31] (  3,  3   )     int  -\u003E  r13        \n-;  V41 tmp28        [V41,T01] (  4,  8   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V42 tmp29        [V42    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x80]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V43 tmp30        [V43,T14] (  5,  5   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V44 tmp31        [V44,T17] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V40 tmp27        [V40,T33] (  3,  3   )     int  -\u003E  r13        \n\u002B;  V41 tmp28        [V41,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V42 tmp29        [V42    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x80]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V43 tmp30        [V43,T16] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V44 tmp31        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V45 tmp32        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V46 tmp33        [V46,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V47 tmp34        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V48 tmp35        [V48,T28] (  4,  3.75)     int  -\u003E  r13         \u0022spilling unroll qmark\u0022\n\u002B;  V48 tmp35        [V48,T27] (  4,  3.75)     int  -\u003E  r13         \u0022spilling unroll qmark\u0022\n ;* V49 tmp36        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V50 tmp37        [V50    ] ( 12, 12   )  struct (96) [rbp-0xE0]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoDatabase\u002B\u003CExecuteWriteOperationAsync\u003Ed__79\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V51 tmp38        [V51    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n ;* V52 tmp39        [V52    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n... diff truncated; middle omitted ...\n        xor      edi, edi\n        mov      dword ptr [rbp-0x70], edi\n        test     byte  ptr [rbp-0x70], 4\n-       jne      SHORT G_M12453_IG33\n\u002B       jne      SHORT G_M12453_IG31\n        mov      rdi, gword ptr [rbp-0x78]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M12453_IG11\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 10.25\n-G_M12453_IG33:\n\u002BG_M12453_IG31:\n        mov      r15, bword ptr [rbp-0x148]\n        mov      dword ptr [r15\u002B0x28], 1\n        lea      rdi, bword ptr [r15\u002B0x50]\n@@ -457,9 \u002B445,9 @@ G_M12453_IG33:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[long]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Driver.IAsyncCursor\u00601[long]]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      G_M12453_IG44\n\u002B       jmp      G_M12453_IG42\n \t\t\t\t\t\t;; size=98 bbWeight=1 PerfScore 17.00\n-G_M12453_IG34:\n\u002BG_M12453_IG32:\n        mov      rdx, gword ptr [r15\u002B0x10]\n        mov      rsi, gword ptr [r15\u002B0x20]\n        mov      rdi, rbx\n@@ -478,7 \u002B466,7 @@ G_M12453_IG34:\n        mov      byte  ptr [rbp-0xA8], cl\n        mov      qword ptr [rbp-0xA0], rdi\n \t\t\t\t\t\t;; size=86 bbWeight=1 PerfScore 23.75\n-G_M12453_IG35:\n\u002BG_M12453_IG33:\n        mov      gword ptr [rbp-0xC8], r8\n        mov      gword ptr [rbp-0x98], rdx\n        mov      dword ptr [rbp-0xB8], -1\n@@ -488,24 \u002B476,24 @@ G_M12453_IG35:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoDatabase\u002B\u003CExecuteWriteOperationAsync\u003Ed__79\u00601[System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xB0]\n        test     rax, rax\n-       jne      SHORT G_M12453_IG36\n\u002B       jne      SHORT G_M12453_IG34\n        lea      rdi, [rbp-0xB0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=94 bbWeight=1 PerfScore 13.25\n-G_M12453_IG36:\n\u002BG_M12453_IG34:\n        cmp      byte  ptr [rax], al\n        mov      gword ptr [rbp-0x68], rax\n        xor      edi, edi\n        mov      dword ptr [rbp-0x60], edi\n        test     byte  ptr [rbp-0x60], 4\n-       jne      SHORT G_M12453_IG37\n\u002B       jne      SHORT G_M12453_IG35\n        mov      rdi, gword ptr [rbp-0x68]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M12453_IG06\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 10.25\n-G_M12453_IG37:\n\u002BG_M12453_IG35:\n        xor      edi, edi\n        mov      r15, bword ptr [rbp-0x148]\n        mov      dword ptr [r15\u002B0x28], edi\n@@ -524,31 \u002B512,31 @@ G_M12453_IG37:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[long]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Bson.BsonDocument]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      G_M12453_IG44\n\u002B       jmp      G_M12453_IG42\n \t\t\t\t\t\t;; size=96 bbWeight=1 PerfScore 17.25\n-G_M12453_IG38:\n\u002BG_M12453_IG36:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M12453_IG39:\n\u002BG_M12453_IG37:\n        mov      dword ptr [r15\u002B0x28], -2\n        xor      rsi, rsi\n        mov      gword ptr [r15\u002B0x20], rsi\n        add      r15, 48\n-       cmp      gword ptr [r15], 0\n-       je       SHORT G_M12453_IG40\n        mov      rsi, gword ptr [r15]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M12453_IG38\n        mov      rdx, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[long]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n-       jmp      SHORT G_M12453_IG44\n-\t\t\t\t\t\t;; size=54 bbWeight=1 PerfScore 13.25\n-G_M12453_IG40:\n\u002B       jmp      SHORT G_M12453_IG42\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=1 PerfScore 11.50\n\u002BG_M12453_IG38:\n        test     rbx, rbx\n-       je       SHORT G_M12453_IG41\n\u002B       je       SHORT G_M12453_IG39\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[long]]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -556,26 \u002B544,26 @@ G_M12453_IG40:\n        lea      rdi, bword ptr [r14\u002B0x38]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      SHORT G_M12453_IG43\n\u002B       jmp      SHORT G_M12453_IG41\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 7.50\n-G_M12453_IG41:\n\u002BG_M12453_IG39:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       SHORT G_M12453_IG46\n\u002B       je       SHORT G_M12453_IG44\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 3.25\n-G_M12453_IG42:\n\u002BG_M12453_IG40:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[long]]:s_defaultResultTask\n        mov      r14, gword ptr [rdi]\n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 2.25\n-G_M12453_IG43:\n\u002BG_M12453_IG41:\n        mov      rdi, r15\n        mov      rsi, r14\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 1.50\n-G_M12453_IG44:\n\u002BG_M12453_IG42:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M12453_IG45:\n\u002BG_M12453_IG43:\n        add      rsp, 368\n        pop      rbx\n        pop      r13\n@@ -584,16 \u002B572,16 @@ G_M12453_IG45:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 3.75\n-G_M12453_IG46:\n\u002BG_M12453_IG44:\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[long]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      SHORT G_M12453_IG42\n\u002B       jmp      SHORT G_M12453_IG40\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M12453_IG47:\n\u002BG_M12453_IG45:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M12453_IG48:\n\u002BG_M12453_IG46:\n        mov      rdx, rdi\n        mov      r15, bword ptr [rbp-0x148]\n        mov      dword ptr [r15\u002B0x28], -2\n@@ -603,12 \u002B591,12 @@ G_M12453_IG48:\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[long]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n-       lea      rax, G_M12453_IG44\n\u002B       lea      rax, G_M12453_IG42\n \t\t\t\t\t\t;; size=57 bbWeight=0 PerfScore 0.00\n-G_M12453_IG49:\n\u002BG_M12453_IG47:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1770, prolog size 71, PerfScore 351.96, instruction count 374, allocated bytes for code 1770 (MethodHash=568fcf5a) for method MongoDB.Driver.MongoDatabase\u002B\u003CAggregateAsync\u003Ed__15\u00601[long]:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 1721, prolog size 71, PerfScore 336.21, instruction count 363, allocated bytes for code 1721 (MethodHash=568fcf5a) for method MongoDB.Driver.MongoDatabase\u002B\u003CAggregateAsync\u003Ed__15\u00601[long]:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1770,"DiffBytes":1721},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.MongoDatabase\u002B\u003CAggregateAsync\u003Ed__15\u00601[short]:MoveNext():this (FullOpts)","Category":"improvement","Description":"1,770 -\u003E 1,721 bytes (-49)","ExtraInfo":null,"Diff":"@@ -8,16 \u002B8,16 @@\n ; 0 inlinees with PGO data; 40 single block inlinees; 13 inlinees without PGO data\n ; Final local variable assignments\n ;\n-;  V00 this         [V00,T00] ( 46, 43   )   byref  -\u003E  [rbp-0x148]  this EH-live single-def\n-;  V01 loc0         [V01,T30] (  3,  3   )     int  -\u003E  rdi         single-def\n-;  V02 loc1         [V02,T04] (  7,  7   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CMongoDB.Driver.MongoDatabase\u003E\n\u002B;  V00 this         [V00,T00] ( 44, 41   )   byref  -\u003E  [rbp-0x148]  this EH-live single-def\n\u002B;  V01 loc0         [V01,T32] (  3,  3   )     int  -\u003E  rdi         single-def\n\u002B;  V02 loc1         [V02,T02] (  7,  7   )     ref  -\u003E  rbx         class-hnd exact single-def \u003CMongoDB.Driver.MongoDatabase\u003E\n ;  V03 loc2         [V03,T13] (  5,  5   )     ref  -\u003E  registers   class-hnd \u003CMongoDB.Driver.IAsyncCursor\u00601[short]\u003E\n-;  V04 loc3         [V04,T37] (  2,  2   )  struct (56) [rbp-0x58]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n-;  V05 loc4         [V05,T38] (  2,  2   )   ubyte  -\u003E  r13         ld-addr-op single-def\n-;  V06 loc5         [V06,T32] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n\u002B;  V04 loc3         [V04,T39] (  2,  2   )  struct (56) [rbp-0x58]  do-not-enreg[DAS] must-init defined-via-address \u003CMongoDB.Driver.RenderArgs\u00601[MongoDB.Driver.NoPipelineInput]\u003E\n\u002B;  V05 loc4         [V05,T40] (  2,  2   )   ubyte  -\u003E  r13         ld-addr-op single-def\n\u002B;  V06 loc5         [V06,T34] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateToCollectionOperation\u003E\n ;  V07 loc6         [V07    ] ( 10, 10   )  struct (16) [rbp-0x68]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Bson.BsonDocument]\u003E\n ;* V08 loc7         [V08    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V09 loc8         [V09,T33] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[short]\u003E\n\u002B;  V09 loc8         [V09,T35] (  2,  2   )     ref  -\u003E  rax         class-hnd exact single-def \u003CMongoDB.Driver.Core.Operations.AggregateOperation\u00601[short]\u003E\n ;  V10 loc9         [V10    ] ( 10, 10   )  struct (16) [rbp-0x78]  do-not-enreg[XS] must-init addr-exposed ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Driver.IAsyncCursor\u00601[short]]\u003E\n ;* V11 loc10        [V11    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op \u003CSystem.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601[MongoDB.Driver.IAsyncCursor\u00601[short]]\u003E\n ;* V12 loc11        [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u003CSystem.Exception\u003E\n@@ -25,44 \u002B25,44 @@\n ;* V14 tmp1         [V14    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;* V15 tmp2         [V15    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n ;* V16 tmp3         [V16    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.NoPipelineInputSerializer\u003E\n-;  V17 tmp4         [V17,T18] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V17 tmp4         [V17,T17] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;* V18 tmp5         [V18    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V19 tmp6         [V19    ] (  0,  0   )     int  -\u003E  zero-ref    \u0022dup spill\u0022\n-;  V20 tmp7         [V20,T19] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n\u002B;  V20 tmp7         [V20,T18] (  2,  4   )     ref  -\u003E  rsi         class-hnd single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.IClientSessionHandle\u003E\n ;* V21 tmp8         [V21    ] (  0,  0   )  struct (16) zero-ref    \u0022spilled call-like call argument\u0022 \u003CSystem.Nullable\u00601[System.TimeSpan]\u003E\n ;* V22 tmp9         [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n-;  V23 tmp10        [V23,T46] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n\u002B;  V23 tmp10        [V23,T48] (  2,  0   )     ref  -\u003E  rdx         class-hnd single-def \u0022impSpillSpecialSideEff\u0022 \u003CSystem.Exception\u003E\n ;* V24 tmp11        [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;* V25 tmp12        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n ;* V26 tmp13        [V26    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.PipelineDefinition\u00602[MongoDB.Driver.NoPipelineInput,short]\u003E\n-;  V27 tmp14        [V27,T06] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n\u002B;  V27 tmp14        [V27,T04] (  3,  6   )     ref  -\u003E  r14         class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Driver.RenderedPipelineDefinition\u00601[short]\u003E\n ;* V28 tmp15        [V28    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022dup spill\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n ;* V29 tmp16        [V29    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V30 tmp17        [V30    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V31 tmp18        [V31    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBRM] multireg-ret multireg-dest \u0022Return value temp for multireg return\u0022 \u003CMongoDB.Bson.BsonElement\u003E\n ;* V32 tmp19        [V32    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Bson.BsonElement\u003E\n ;* V33 tmp20        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref   \n-;  V34 tmp21        [V34,T05] ( 11,  6.75)     ref  -\u003E  rax        \n\u002B;  V34 tmp21        [V34,T03] ( 11,  6.75)     ref  -\u003E  rax        \n ;* V35 tmp22        [V35    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String\u003E\n ;* V36 tmp23        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n ;* V37 tmp24        [V37    ] (  0,  0   )   byref  -\u003E  zero-ref   \n ;* V38 tmp25        [V38    ] (  0,  0   )     ref  -\u003E  zero-ref   \n ;* V39 tmp26        [V39    ] (  0,  0   )   byref  -\u003E  zero-ref   \n-;  V40 tmp27        [V40,T31] (  3,  3   )     int  -\u003E  r13        \n-;  V41 tmp28        [V41,T01] (  4,  8   )     ref  -\u003E  r13         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n-;  V42 tmp29        [V42    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x80]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n-;  V43 tmp30        [V43,T14] (  5,  5   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n-;  V44 tmp31        [V44,T17] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V40 tmp27        [V40,T33] (  3,  3   )     int  -\u003E  r13        \n\u002B;  V41 tmp28        [V41,T05] (  3,  6   )     ref  -\u003E  rsi         class-hnd single-def \u0022Inlining Arg\u0022 \u003CSystem.Collections.Generic.List\u00601[MongoDB.Bson.BsonDocument]\u003E\n\u002B;  V42 tmp29        [V42    ] (  1,  1   )   ubyte  -\u003E  [rbp-0x80]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V43 tmp30        [V43,T16] (  4,  4   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonDocument\u003E\n\u002B;* V44 tmp31        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V45 tmp32        [V45    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n ;  V46 tmp33        [V46,T12] (  2,  4   )     int  -\u003E  rdi         \u0022spilling unroll qmark\u0022\n ;* V47 tmp34        [V47    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def \u0022spilling varStr\u0022\n-;  V48 tmp35        [V48,T28] (  4,  3.75)     int  -\u003E  r13         \u0022spilling unroll qmark\u0022\n\u002B;  V48 tmp35        [V48,T27] (  4,  3.75)     int  -\u003E  r13         \u0022spilling unroll qmark\u0022\n ;* V49 tmp36        [V49    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CMongoDB.Driver.AggregateOptions\u003E\n ;  V50 tmp37        [V50    ] ( 12, 12   )  struct (96) [rbp-0xE0]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CMongoDB.Driver.MongoDatabase\u002B\u003CExecuteWriteOperationAsync\u003Ed__79\u00601[MongoDB.Bson.BsonDocument]\u003E\n ;* V51 tmp38        [V51    ] (  0,  0   )  struct ( 8) zero-ref    \u0022Inlining Arg\u0022 \u003CSystem.Threading.CancellationToken\u003E\n ;* V52 tmp39        [V52    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op \u0022Inline ldloca(s) first use temp\u0022 \u003CSystem.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\u003E\n... diff truncated; middle omitted ...\n        xor      edi, edi\n        mov      dword ptr [rbp-0x70], edi\n        test     byte  ptr [rbp-0x70], 4\n-       jne      SHORT G_M56861_IG33\n\u002B       jne      SHORT G_M56861_IG31\n        mov      rdi, gword ptr [rbp-0x78]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M56861_IG11\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 10.25\n-G_M56861_IG33:\n\u002BG_M56861_IG31:\n        mov      r15, bword ptr [rbp-0x148]\n        mov      dword ptr [r15\u002B0x28], 1\n        lea      rdi, bword ptr [r15\u002B0x50]\n@@ -457,9 \u002B445,9 @@ G_M56861_IG33:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[short]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Driver.IAsyncCursor\u00601[short]]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      G_M56861_IG44\n\u002B       jmp      G_M56861_IG42\n \t\t\t\t\t\t;; size=98 bbWeight=1 PerfScore 17.00\n-G_M56861_IG34:\n\u002BG_M56861_IG32:\n        mov      rdx, gword ptr [r15\u002B0x10]\n        mov      rsi, gword ptr [r15\u002B0x20]\n        mov      rdi, rbx\n@@ -478,7 \u002B466,7 @@ G_M56861_IG34:\n        mov      byte  ptr [rbp-0xA8], cl\n        mov      qword ptr [rbp-0xA0], rdi\n \t\t\t\t\t\t;; size=86 bbWeight=1 PerfScore 23.75\n-G_M56861_IG35:\n\u002BG_M56861_IG33:\n        mov      gword ptr [rbp-0xC8], r8\n        mov      gword ptr [rbp-0x98], rdx\n        mov      dword ptr [rbp-0xB8], -1\n@@ -488,24 \u002B476,24 @@ G_M56861_IG35:\n        call     [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[MongoDB.Driver.MongoDatabase\u002B\u003CExecuteWriteOperationAsync\u003Ed__79\u00601[System.__Canon]](byref)\n        mov      rax, gword ptr [rbp-0xB0]\n        test     rax, rax\n-       jne      SHORT G_M56861_IG36\n\u002B       jne      SHORT G_M56861_IG34\n        lea      rdi, [rbp-0xB0]\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Bson.BsonDocument]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:InitializeTaskAsPromise():System.Threading.Tasks.Task\u00601[System.__Canon]:this\n \t\t\t\t\t\t;; size=94 bbWeight=1 PerfScore 13.25\n-G_M56861_IG36:\n\u002BG_M56861_IG34:\n        cmp      byte  ptr [rax], al\n        mov      gword ptr [rbp-0x68], rax\n        xor      edi, edi\n        mov      dword ptr [rbp-0x60], edi\n        test     byte  ptr [rbp-0x60], 4\n-       jne      SHORT G_M56861_IG37\n\u002B       jne      SHORT G_M56861_IG35\n        mov      rdi, gword ptr [rbp-0x68]\n        test     dword ptr [rdi\u002B0x34], 0xD1FFAB1E\n        jne      G_M56861_IG06\n \t\t\t\t\t\t;; size=34 bbWeight=1 PerfScore 10.25\n-G_M56861_IG37:\n\u002BG_M56861_IG35:\n        xor      edi, edi\n        mov      r15, bword ptr [rbp-0x148]\n        mov      dword ptr [r15\u002B0x28], edi\n@@ -524,31 \u002B512,31 @@ G_M56861_IG37:\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[short]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[MongoDB.Bson.BsonDocument]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable\u00601\u002BConfiguredTaskAwaiter[System.__Canon]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)\n-       jmp      G_M56861_IG44\n\u002B       jmp      G_M56861_IG42\n \t\t\t\t\t\t;; size=96 bbWeight=1 PerfScore 17.25\n-G_M56861_IG38:\n\u002BG_M56861_IG36:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M56861_IG39:\n\u002BG_M56861_IG37:\n        mov      dword ptr [r15\u002B0x28], -2\n        xor      rsi, rsi\n        mov      gword ptr [r15\u002B0x20], rsi\n        add      r15, 48\n-       cmp      gword ptr [r15], 0\n-       je       SHORT G_M56861_IG40\n        mov      rsi, gword ptr [r15]\n\u002B       test     rsi, rsi\n\u002B       je       SHORT G_M56861_IG38\n        mov      rdx, rbx\n        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[short]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetExistingTaskResult(System.Threading.Tasks.Task\u00601[System.__Canon],System.__Canon)\n-       jmp      SHORT G_M56861_IG44\n-\t\t\t\t\t\t;; size=54 bbWeight=1 PerfScore 13.25\n-G_M56861_IG40:\n\u002B       jmp      SHORT G_M56861_IG42\n\u002B\t\t\t\t\t\t;; size=53 bbWeight=1 PerfScore 11.50\n\u002BG_M56861_IG38:\n        test     rbx, rbx\n-       je       SHORT G_M56861_IG41\n\u002B       je       SHORT G_M56861_IG39\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[short]]\n        call     CORINFO_HELP_NEWSFAST\n        mov      r14, rax\n@@ -556,26 \u002B544,26 @@ G_M56861_IG40:\n        lea      rdi, bword ptr [r14\u002B0x38]\n        mov      rsi, rbx\n        call     CORINFO_HELP_ASSIGN_REF\n-       jmp      SHORT G_M56861_IG43\n\u002B       jmp      SHORT G_M56861_IG41\n \t\t\t\t\t\t;; size=45 bbWeight=1 PerfScore 7.50\n-G_M56861_IG41:\n\u002BG_M56861_IG39:\n        mov      rdi, 0xD1FFAB1E      ; global ptr\n        test     byte  ptr [rdi], 1\n-       je       SHORT G_M56861_IG46\n\u002B       je       SHORT G_M56861_IG44\n \t\t\t\t\t\t;; size=15 bbWeight=1 PerfScore 3.25\n-G_M56861_IG42:\n\u002BG_M56861_IG40:\n        mov      rdi, 0xD1FFAB1E      ; data for System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[short]]:s_defaultResultTask\n        mov      r14, gword ptr [rdi]\n \t\t\t\t\t\t;; size=13 bbWeight=1 PerfScore 2.25\n-G_M56861_IG43:\n\u002BG_M56861_IG41:\n        mov      rdi, r15\n        mov      rsi, r14\n        call     CORINFO_HELP_CHECKED_ASSIGN_REF\n \t\t\t\t\t\t;; size=11 bbWeight=1 PerfScore 1.50\n-G_M56861_IG44:\n\u002BG_M56861_IG42:\n        nop      \n \t\t\t\t\t\t;; size=1 bbWeight=1 PerfScore 0.25\n-G_M56861_IG45:\n\u002BG_M56861_IG43:\n        add      rsp, 368\n        pop      rbx\n        pop      r13\n@@ -584,16 \u002B572,16 @@ G_M56861_IG45:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=16 bbWeight=1 PerfScore 3.75\n-G_M56861_IG46:\n\u002BG_M56861_IG44:\n        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task\u00601[MongoDB.Driver.IAsyncCursor\u00601[short]]\n        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE\n        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE\n-       jmp      SHORT G_M56861_IG42\n\u002B       jmp      SHORT G_M56861_IG40\n \t\t\t\t\t\t;; size=24 bbWeight=0 PerfScore 0.00\n-G_M56861_IG47:\n\u002BG_M56861_IG45:\n        sub      rsp, 56\n \t\t\t\t\t\t;; size=4 bbWeight=0 PerfScore 0.00\n-G_M56861_IG48:\n\u002BG_M56861_IG46:\n        mov      rdx, rdi\n        mov      r15, bword ptr [rbp-0x148]\n        mov      dword ptr [r15\u002B0x28], -2\n@@ -603,12 \u002B591,12 @@ G_M56861_IG48:\n        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[MongoDB.Driver.IAsyncCursor\u00601[short]]\n        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder\u00601[System.__Canon]:SetException(System.Exception):this\n-       lea      rax, G_M56861_IG44\n\u002B       lea      rax, G_M56861_IG42\n \t\t\t\t\t\t;; size=57 bbWeight=0 PerfScore 0.00\n-G_M56861_IG49:\n\u002BG_M56861_IG47:\n        add      rsp, 56\n        ret      \n \t\t\t\t\t\t;; size=5 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 1770, prolog size 71, PerfScore 351.96, instruction count 374, allocated bytes for code 1770 (MethodHash=3cc921e2) for method MongoDB.Driver.MongoDatabase\u002B\u003CAggregateAsync\u003Ed__15\u00601[short]:MoveNext():this (FullOpts)\n\u002B; Total bytes of code 1721, prolog size 71, PerfScore 336.21, instruction count 363, allocated bytes for code 1721 (MethodHash=3cc921e2) for method MongoDB.Driver.MongoDatabase\u002B\u003CAggregateAsync\u003Ed__15\u00601[short]:MoveNext():this (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":1770,"DiffBytes":1721},{"Assembly":"MongoDB.Driver.dasm","Method":"MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToPipelineTranslators.GroupByMethodToPipelineTranslator:TranslateResultSelector(MongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext,MongoDB.Driver.Linq.Linq3Implementation.Ast.TranslatedPipeline,System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression],MongoDB.Bson.Serialization.IBsonSerializer,MongoDB.Bson.Serialization.IBsonSerializer):MongoDB.Driver.Linq.Linq3Implementation.Ast.TranslatedPipeline (FullOpts)","Category":"improvement","Description":"951 -\u003E 904 bytes (-47)","ExtraInfo":null,"Diff":"@@ -9,30 \u002B9,30 @@\n ; Final local variable assignments\n ;\n ;  V00 arg0         [V00,T00] (  9,  9   )     ref  -\u003E  rbx         class-hnd single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext\u003E\n-;  V01 arg1         [V01,T14] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.TranslatedPipeline\u003E\n-;  V02 arg2         [V02,T04] (  5,  4.50)     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n-;  V03 arg3         [V03,T15] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n-;  V04 arg4         [V04,T16] (  3,  3   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n-;  V05 loc0         [V05,T13] (  5,  5   )     ref  -\u003E  r15         class-hnd single-def \u003CSystem.Linq.Expressions.LambdaExpression\u003E\n-;  V06 loc1         [V06,T23] (  3,  3   )     ref  -\u003E  [rbp-0x40]  class-hnd spill-single-def \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n\u002B;  V01 arg1         [V01,T14] (  3,  3   )     ref  -\u003E  r15         class-hnd single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.TranslatedPipeline\u003E\n\u002B;  V02 arg2         [V02,T04] (  4,  4   )     ref  -\u003E  rdi         class-hnd single-def \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V03 arg3         [V03,T15] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n\u002B;  V04 arg4         [V04,T16] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n\u002B;  V05 loc0         [V05,T13] (  5,  5   )     ref  -\u003E  r12         class-hnd single-def \u003CSystem.Linq.Expressions.LambdaExpression\u003E\n\u002B;  V06 loc1         [V06,T22] (  3,  3   )     ref  -\u003E  [rbp-0x40]  class-hnd spill-single-def \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n ;* V07 loc2         [V07    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstGetFieldExpression\u003E\n ;* V08 loc3         [V08    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Misc.Symbol\u003E\n-;  V09 loc4         [V09,T24] (  3,  3   )     ref  -\u003E  r13         class-hnd single-def \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n\u002B;  V09 loc4         [V09,T23] (  3,  3   )     ref  -\u003E  r14         class-hnd single-def \u003CSystem.Linq.Expressions.ParameterExpression\u003E\n ;* V10 loc5         [V10    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstGetFieldExpression\u003E\n-;  V11 loc6         [V11,T28] (  2,  2   )     ref  -\u003E  r12         class-hnd single-def \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n\u002B;  V11 loc6         [V11,T26] (  2,  2   )     ref  -\u003E  r13         class-hnd single-def \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n ;* V12 loc7         [V12    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u003CMongoDB.Driver.Linq.Linq3Implementation.Misc.Symbol\u003E\n ;* V13 loc8         [V13    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Stages.AstProjectStage\u003E\n ;* V14 loc9         [V14    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u003CMongoDB.Bson.Serialization.IBsonSerializer\u003E\n ;# V15 OutArgs      [V15    ] (  1,  1   )  struct ( 0) [rsp\u002B0x00]  do-not-enreg[XS] addr-exposed \u0022OutgoingArgSpace\u0022 \u003CEmpty\u003E\n ;  V16 tmp1         [V16,T17] (  2,  4   )     ref  -\u003E  [rbp-0x48]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstVarExpression\u003E\n ;  V17 tmp2         [V17,T18] (  2,  4   )     ref  -\u003E  [rbp-0x50]  class-hnd exact spill-single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstVarExpression\u003E\n-;  V18 tmp3         [V18,T01] (  4,  8   )     ref  -\u003E  r13         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Misc.Symbol[]\u003E\n\u002B;  V18 tmp3         [V18,T01] (  4,  8   )     ref  -\u003E  r14         class-hnd exact single-def \u0022NewArr temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Misc.Symbol[]\u003E\n ;* V19 tmp4         [V19    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022impAppendStmt\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext\u003E\n ;* V20 tmp5         [V20    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest single-def \u0022dup spill\u0022 \u003CSystem.ValueTuple\u00602[MongoDB.Driver.Linq.Linq3Implementation.Ast.Stages.AstProjectStage,MongoDB.Bson.Serialization.IBsonSerializer]\u003E\n-;  V21 tmp6         [V21    ] (  3,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n\u002B;  V21 tmp6         [V21    ] (  2,  2   )   ubyte  -\u003E  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op \u0022Inline ldloca(s) first use temp\u0022\n ;* V22 tmp7         [V22    ] (  0,  0   )     ref  -\u003E  zero-ref    single-def\n-;  V23 tmp8         [V23,T27] (  3,  2   )     ref  -\u003E  rax         class-hnd \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n-;  V24 tmp9         [V24,T22] (  4,  3   )     ref  -\u003E  rax         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n\u002B;  V23 tmp8         [V23,T27] (  2,  2   )     ref  -\u003E  rdi         class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CSystem.Linq.Expressions.Expression\u003E\n\u002B;* V24 tmp9         [V24    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.Linq.Enumerable\u002BIterator\u00601[System.Linq.Expressions.Expression]\u003E\n ;* V25 tmp10        [V25    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;  V26 tmp11        [V26,T05] (  3,  6   )     ref  -\u003E  [rbp-0x58]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstConstantExpression\u003E\n ;* V27 tmp12        [V27    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd single-def \u0022Inline return value spill temp\u0022 \u003CMongoDB.Bson.BsonString\u003E\n@@ -42,7 \u002B42,7 @@\n ;* V31 tmp16        [V31    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n ;* V32 tmp17        [V32    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n ;* V33 tmp18        [V33    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Misc.Symbol\u003E\n-;  V34 tmp19        [V34,T29] (  2,  2   )     ref  -\u003E  [rbp-0x70]  class-hnd exact spill-single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String\u003E\n\u002B;  V34 tmp19        [V34,T28] (  2,  2   )     ref  -\u003E  [rbp-0x70]  class-hnd exact spill-single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String\u003E\n ;  V35 tmp20        [V35,T07] (  3,  6   )     ref  -\u003E  [rbp-0x78]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Misc.Symbol\u003E\n ;* V36 tmp21        [V36    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd \u0022Inlining Arg\u0022 \u003CSystem.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.ParameterExpression]\u003E\n ;  V37 tmp22        [V37,T08] (  3,  6   )     ref  -\u003E  [rbp-0x80]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstConstantExpression\u003E\n@@ -53,20 \u002B53,20 @@\n ;* V42 tmp27        [V42    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n ;* V43 tmp28        [V43    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022NewObj constructor temp\u0022 \u003CSystem.ArgumentNullException\u003E\n ;* V44 tmp29        [V44    ] (  0,  0   )     ref  -\u003E  zero-ref    class-hnd exact \u0022Inline return value spill temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Misc.Symbol\u003E\n-;  V45 tmp30        [V45,T30] (  2,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact spill-single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String\u003E\n\u002B;  V45 tmp30        [V45,T29] (  2,  2   )     ref  -\u003E  [rbp-0x98]  class-hnd exact spill-single-def \u0022Inline stloc first use temp\u0022 \u003CSystem.String\u003E\n ;  V46 tmp31        [V46,T10] (  3,  6   )     ref  -\u003E  [rbp-0xA0]  class-hnd exact spill-single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Misc.Symbol\u003E\n-;  V47 tmp32        [V47,T31] (  2,  2   )     ref  -\u003E  r13         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Misc.SymbolTable\u003E\n-;  V48 tmp33        [V48,T11] (  3,  6   )     ref  -\u003E  r12         class-hnd exact single-def \u0022NewObj constructor temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext\u003E\n\u002B;  V47 tmp32        [V47,T30] (  2,  2   )     ref  -\u003E  r14         class-hnd single-def \u0022Inline stloc first use temp\u0022 \u003CMongoDB.Driver.Linq.Linq3Implementation.Misc.SymbolTable\u003E\n... diff truncated; middle omitted ...\n        call     CORINFO_HELP_ASSIGN_REF\n-       mov      rdi, r12\n\u002B       mov      rdi, r13\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Linq.Linq3Implementation.Serializers.IEnumerableSerializer:Create(MongoDB.Bson.Serialization.IBsonSerializer):MongoDB.Bson.Serialization.IBsonSerializer\n        call     [rax]MongoDB.Driver.Linq.Linq3Implementation.Serializers.IEnumerableSerializer:Create(MongoDB.Bson.Serialization.IBsonSerializer):MongoDB.Bson.Serialization.IBsonSerializer\n-       mov      r12, rax\n\u002B       mov      r13, rax\n        mov      rdi, gword ptr [rbx\u002B0x18]\n-       mov      rsi, r13\n\u002B       mov      rsi, r14\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Linq.Linq3Implementation.Misc.NameGenerator:GetParameterName(System.Linq.Expressions.ParameterExpression):System.String:this\n        cmp      dword ptr [rdi], edi\n        call     [rax]MongoDB.Driver.Linq.Linq3Implementation.Misc.NameGenerator:GetParameterName(System.Linq.Expressions.ParameterExpression):System.String:this\n@@ -220,44 \u002B202,44 @@ G_M35952_IG07:\n        call     CORINFO_HELP_NEWSFAST\n        mov      gword ptr [rbp-0xA0], rax\n        mov      rdi, rax\n-       mov      rsi, r13\n\u002B       mov      rsi, r14\n        mov      rdx, gword ptr [rbp-0x98]\n        mov      rcx, gword ptr [rbp-0x90]\n-       mov      r8, r12\n\u002B       mov      r8, r13\n        xor      r9d, r9d\n        mov      r10, 0xD1FFAB1E      ; code for MongoDB.Driver.Linq.Linq3Implementation.Misc.Symbol:.ctor(System.Linq.Expressions.ParameterExpression,System.String,MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression,MongoDB.Bson.Serialization.IBsonSerializer,bool):this\n        call     [r10]MongoDB.Driver.Linq.Linq3Implementation.Misc.Symbol:.ctor(System.Linq.Expressions.ParameterExpression,System.String,MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions.AstExpression,MongoDB.Bson.Serialization.IBsonSerializer,bool):this\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.Linq.Linq3Implementation.Misc.Symbol[]\n        mov      esi, 2\n\u002B\t\t\t\t\t\t;; size=202 bbWeight=1 PerfScore 34.00\n\u002BG_M35952_IG05:\n        call     CORINFO_HELP_NEWARR_1_PTR\n-       mov      r13, rax\n-       lea      rdi, bword ptr [r13\u002B0x10]\n\u002B       mov      r14, rax\n\u002B       lea      rdi, bword ptr [r14\u002B0x10]\n        mov      rsi, gword ptr [rbp-0x78]\n        call     CORINFO_HELP_ASSIGN_REF\n-       lea      rdi, bword ptr [r13\u002B0x18]\n\u002B       lea      rdi, bword ptr [r14\u002B0x18]\n        mov      rsi, gword ptr [rbp-0xA0]\n-\t\t\t\t\t\t;; size=199 bbWeight=1 PerfScore 34.50\n-G_M35952_IG08:\n        call     CORINFO_HELP_ASSIGN_REF\n        mov      rdi, gword ptr [rbx\u002B0x20]\n-       mov      rsi, r13\n\u002B       mov      rsi, r14\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Linq.Linq3Implementation.Misc.SymbolTable:WithSymbols(MongoDB.Driver.Linq.Linq3Implementation.Misc.Symbol[]):MongoDB.Driver.Linq.Linq3Implementation.Misc.SymbolTable:this\n        cmp      dword ptr [rdi], edi\n        call     [rax]MongoDB.Driver.Linq.Linq3Implementation.Misc.SymbolTable:WithSymbols(MongoDB.Driver.Linq.Linq3Implementation.Misc.Symbol[]):MongoDB.Driver.Linq.Linq3Implementation.Misc.SymbolTable:this\n-       mov      r13, rax\n\u002B       mov      r14, rax\n        mov      rdi, 0xD1FFAB1E      ; MongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext\n        call     CORINFO_HELP_NEWSFAST\n-       mov      r12, rax\n\u002B       mov      r13, rax\n        mov      r9, gword ptr [rbx\u002B0x18]\n        mov      rsi, gword ptr [rbx\u002B0x28]\n        mov      rdx, gword ptr [rbx\u002B0x10]\n        mov      rcx, gword ptr [rbx\u002B0x08]\n-       mov      rdi, r12\n-       mov      r8, r13\n\u002B       mov      rdi, r13\n\u002B       mov      r8, r14\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext:.ctor(MongoDB.Driver.ExpressionTranslationOptions,MongoDB.Driver.Linq.Linq3Implementation.SerializerFinders.IReadOnlySerializerMap,MongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContextData,MongoDB.Driver.Linq.Linq3Implementation.Misc.SymbolTable,MongoDB.Driver.Linq.Linq3Implementation.Misc.NameGenerator):this\n        call     [rax]MongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext:.ctor(MongoDB.Driver.ExpressionTranslationOptions,MongoDB.Driver.Linq.Linq3Implementation.SerializerFinders.IReadOnlySerializerMap,MongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContextData,MongoDB.Driver.Linq.Linq3Implementation.Misc.SymbolTable,MongoDB.Driver.Linq.Linq3Implementation.Misc.NameGenerator):this\n-       mov      rbx, gword ptr [r15\u002B0x08]\n-       mov      rdi, r12\n\u002B       mov      rbx, gword ptr [r12\u002B0x08]\n\u002B       mov      rdi, r13\n        mov      rsi, rbx\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.ExpressionToAggregationExpressionTranslator:TranslateWithoutUnwrapping(MongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext,System.Linq.Expressions.Expression):MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression\n        call     [rax]MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.ExpressionToAggregationExpressionTranslator:TranslateWithoutUnwrapping(MongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext,System.Linq.Expressions.Expression):MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression\n@@ -269,13 \u002B251,13 @@ G_M35952_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Linq.Linq3Implementation.Misc.ProjectionHelper:CreateProjectStage(MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression):System.ValueTuple\u00602[MongoDB.Driver.Linq.Linq3Implementation.Ast.Stages.AstProjectStage,MongoDB.Bson.Serialization.IBsonSerializer]\n        call     [rax]MongoDB.Driver.Linq.Linq3Implementation.Misc.ProjectionHelper:CreateProjectStage(MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.TranslatedExpression):System.ValueTuple\u00602[MongoDB.Driver.Linq.Linq3Implementation.Ast.Stages.AstProjectStage,MongoDB.Bson.Serialization.IBsonSerializer]\n        mov      rsi, rax\n-       mov      rdi, r14\n\u002B       mov      rdi, r15\n        mov      rax, 0xD1FFAB1E      ; code for MongoDB.Driver.Linq.Linq3Implementation.Ast.TranslatedPipeline:AddStage(MongoDB.Driver.Linq.Linq3Implementation.Ast.Stages.AstStage,MongoDB.Bson.Serialization.IBsonSerializer):MongoDB.Driver.Linq.Linq3Implementation.Ast.TranslatedPipeline:this\n        cmp      dword ptr [rdi], edi\n        call     [rax]MongoDB.Driver.Linq.Linq3Implementation.Ast.TranslatedPipeline:AddStage(MongoDB.Driver.Linq.Linq3Implementation.Ast.Stages.AstStage,MongoDB.Bson.Serialization.IBsonSerializer):MongoDB.Driver.Linq.Linq3Implementation.Ast.TranslatedPipeline:this\n        nop      \n-\t\t\t\t\t\t;; size=157 bbWeight=1 PerfScore 41.00\n-G_M35952_IG09:\n\u002B\t\t\t\t\t\t;; size=190 bbWeight=1 PerfScore 46.25\n\u002BG_M35952_IG06:\n        add      rsp, 136\n        pop      rbx\n        pop      r12\n@@ -285,17 \u002B267,17 @@ G_M35952_IG09:\n        pop      rbp\n        ret      \n \t\t\t\t\t\t;; size=18 bbWeight=1 PerfScore 4.25\n-G_M35952_IG10:\n\u002BG_M35952_IG07:\n        mov      edi, 17\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        call     [rax]System.Linq.ThrowHelper:ThrowArgumentNullException(int)\n        int3     \n \t\t\t\t\t\t;; size=18 bbWeight=0 PerfScore 0.00\n-G_M35952_IG11:\n\u002BG_M35952_IG08:\n        mov      rax, 0xD1FFAB1E      ; code for System.Linq.ThrowHelper:ThrowNoElementsException()\n        call     [rax]System.Linq.ThrowHelper:ThrowNoElementsException()\n        int3     \n \t\t\t\t\t\t;; size=13 bbWeight=0 PerfScore 0.00\n \n-; Total bytes of code 951, prolog size 31, PerfScore 182.50, instruction count 204, allocated bytes for code 951 (MethodHash=7fdf738f) for method MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToPipelineTranslators.GroupByMethodToPipelineTranslator:TranslateResultSelector(MongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext,MongoDB.Driver.Linq.Linq3Implementation.Ast.TranslatedPipeline,System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression],MongoDB.Bson.Serialization.IBsonSerializer,MongoDB.Bson.Serialization.IBsonSerializer):MongoDB.Driver.Linq.Linq3Implementation.Ast.TranslatedPipeline (FullOpts)\n\u002B; Total bytes of code 904, prolog size 31, PerfScore 174.75, instruction count 192, allocated bytes for code 904 (MethodHash=7fdf738f) for method MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToPipelineTranslators.GroupByMethodToPipelineTranslator:TranslateResultSelector(MongoDB.Driver.Linq.Linq3Implementation.Translators.TranslationContext,MongoDB.Driver.Linq.Linq3Implementation.Ast.TranslatedPipeline,System.Collections.ObjectModel.ReadOnlyCollection\u00601[System.Linq.Expressions.Expression],MongoDB.Bson.Serialization.IBsonSerializer,MongoDB.Bson.Serialization.IBsonSerializer):MongoDB.Driver.Linq.Linq3Implementation.Ast.TranslatedPipeline (FullOpts)\n ; ============================================================","Truncated":true,"BaseBytes":951,"DiffBytes":904}]}